我在主机设备上有一个简单的项目,它应该驱动 2 个具有高逻辑电平的引脚(电压 3.3V、5V 或 12V - 没关系)并等待其他 2 个引脚被外围设备驱动为高电平。
我可以用标准 PC 实现这样的主机设备吗?我应该使用什么硬件(内置或额外的)?
我在主机设备上有一个简单的项目,它应该驱动 2 个具有高逻辑电平的引脚(电压 3.3V、5V 或 12V - 没关系)并等待其他 2 个引脚被外围设备驱动为高电平。
我可以用标准 PC 实现这样的主机设备吗?我应该使用什么硬件(内置或额外的)?
如果您仍然可以找到一个,那么值得一提的是,真正的并行端口与您在现成的 PC 中找到的 GPIO 差不多。经典实现缺乏一些灵活性,因为许多引脚具有固定的方向,有些是倒置的,但人们多年来一直在努力解决这个问题。
更大的限制是这些港口正在消失。更抽象的替代品,如 USB 并行转换器,通常仅用于控制实际打印机,并且缺少可以直接读/写来设置或监控引脚状态的寄存器。有传言说有一些确实具有这种能力,但它们很难找到,并且需要对驱动程序进行详细关注。
到那时,使用 USB 连接的 I/O 设备会变得更加实用。通常这是一个运行来自制造商或定制的简单固件的微控制器。
自定义实现的一个主要优势是可以将 I/O 操作的最低级别、最重复和/或时序关键部分卸载到设备上的处理器,而不是尝试从延迟USB 数据包化、穿越多条总线和多任务操作系统往往会使逐位操作变得非常缓慢。
如果您还没有弄清楚您的解决方案将采用什么形式,一种可能性是抓住像 Arduino 这样的东西,它在硬件和工具链意义上都被打包以方便使用,并且可以作为独立的解决方案或作为 I/O 助手,在连接的 PC 的命令下执行低级任务。
我建议使用 FTDI FT232RL 使用启用它的bitbang 模式的特殊驱动程序。这种方法几乎适用于所有 PC,并允许对简单 GPIO 进行适当的延迟访问。
那里有很多 FTDI 芯片分线板,但我个人使用的是这个。
目前尚不清楚您希望 PC 做什么以及设备应该做什么(“主机设备”没有意义),但您似乎想要来自 PC 的基本数字 I/O。
PC 并不是真正为外部设备的直接数字 I/O 而设计的。但是,您可以购买通过 USB 连接到 PC 的数字 I/O 模块,然后您可以读取和写入单独的数字信号。通过让微控制器通过 COM 端口与 PC 通信,您可以最轻松地自己完成此操作。
但是,如果这真的只是一个简单的控制问题,那你还需要一台 PC 吗?让一个小型微控制器自己完成整个任务。这正是微控制器的用途。它们是带有数字和其他 I/O 线的小型计算机,旨在直接连接到外部硬件。