在PC中使用GPIO


9

我在主机设备上有一个简单的项目,该项目应驱动2个具有高逻辑电平的引脚(电压3.3V,5V或12V-无关紧要),并等待其他2个引脚被外围设备驱动为高电平。

我可以在标准PC上实现这种主机设备吗?应该使用什么硬件(内置或额外的硬件)?


2
您是否要购买像mccdaq.com之类的东西
肯尼,2012年

1
我很感兴趣,也许PC已经为我的目的内置了一些功能(控制器,引脚)?如果不是,-寻找一些解决方案购买(顺便说一句,谢谢您的链接!)
Andrey Pesoshin 2012年

1
一个既简单又经济的潜在解决方案是使用MSP430 Launchpad,该产品通过USB连接到PC,并在Arduino之类的软件环境Energia中编程,价格为4.30美元,包括S / H(Fedex 2天,甚至更便宜的DIY板,使用AVR(例如带bitbanged USB的attiny85)在Arduino的PC端编程(如果您愿意或喜欢)。
icarus74 2013年

Answers:


7

目前尚不清楚您希望PC做什么以及该设备应该做什么(“主机设备”没有意义),但是似乎您希望从PC获得基本的数字I / O。

PC并非真正为直接数字I / O到外部设备而设计的。但是,您可以购买通过USB连接到PC的数字量I / O模块,然后再通过它们读取和写入单个数字信号。通过使微控制器通过COM端口与PC通信,您可以最轻松地自己完成此操作。

但是,如果这真的只是一个简单的控制问题,那么为什么根本需要一台PC?有一个小型微控制器自己完成整个任务。这正是微型控制器的用途。它们是带有数字和其他I / O线的小型计算机,旨在直接连接到外部硬件。


1
我们没有所需功能的完整描述,但是我猜测他需要一个双SR触发器。您可以用十亿个晶体管CPU 模拟它:-)。
stevenvh 2012年

1
感谢您的回答。我知道有很多解决方案可以执行,但是我想肯定要问一下将外部设备直接连接到PC的问题。现在,我看到我无法直接执行此操作,只能使用额外的控制器或I / O板。
Andrey Pesoshin 2012年

@stevenvh我已经简化了对项目的描述,以便更好地理解;)我需要澄清一下接口部分
Andrey Pesoshin

13

如果您仍然可以找到一个,那么值得一提的是,真正的并行端口与GPIO的距离与在现成PC中所能找到的一样近。经典的实现方式缺乏灵活性,因为许多引脚具有固定的方向,而有些引脚却是倒置的,但是人们已经为此工作了多年。

更大的限制是,这些端口正在消失。诸如USB并行转换器之类的更抽象的替代品通常仅可用于控制实际打印机,并且缺少可直接读取/写入以设置或监视引脚状态的寄存器。有传言说有少数具有此功能,但可能很难找到它们,需要驾驶员特别注意。

到那时,使用USB连接的I / O设备变得更加实用。通常,这是一个运行简单固件的微控制器,该固件可以来自制造商或定制公司。

定制实现的一个主要优点是可以将I / O操作的最低级别,最重复和/或时序关键的部分卸载到设备上的处理器,而不是尝试从PC上等待USB数据包化,遍历多条总线和多任务操作系统往往会使逐位操作的速度变慢。

如果您还没有弄清楚解决方案将采用哪种形式,那么一种可能性就是抢购类似Arduino的产品,该产品以硬件和工具链的形式打包在一起,易于使用,并且可以作为独立解决方案或作为I / O助手,可以在连接的PC的命令下执行低级任务。


2
如果OP选择并行端口路由,则值得注意的是,基于NT的OS(即最近十年发布的任何Windows OS)将需要特殊的内核模式驱动程序才能访问并行端口。如果您使用的Windows版本具有内核模式代码签名策略(例如Vista / W7 x64,甚至W7 x86),则该驱动程序也需要进行数字签名。
ajs410 2012年

1
很好的答案,如果可以的话,我会投票赞成:-)
Andrey Pesoshin 2012年

1
@ ajs410-这种代码签名要求可能也适用于其他接口(例如USB)的驱动程序。一个可能的最终结果可能是使用操作系统已经为其提供驱动程序代码的某种东西,而所需的只是一个配置/信息文件,例如虚拟com端口。那不是GPIO,但可以用作命令/状态通道,以与具有GPIO的辅助微控制器通信。
克里斯·斯特拉顿

8

我建议使用带有特殊驱动程序的FTDI FT232RL来启用它的bitbang模式。这种方法几乎可以在所有PC上使用,并允许对简单GPIO的适当延迟访问。
那里有许多FTDI芯片分线板,但我个人使用这一板。


感谢您的建议,听起来更像是破解,但应该可以。我发现了类似的解决方案8通道USB GPIO模块
Andrey Pesoshin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.