在现代硬件和操作系统上通过USB适配器控制并行端口

时间:2010-07-05 23:20:00

标签: visual-c++ parallel-port

我有一个USB转并口设备,我希望在现代的Windows操作系统(xp和更新版本)上通过c ++进行交互。

我做了一些研究,但是当涉及到这些USB到并行端口设备之一的编程时,信息有点不完整(大部分信息都是过时的,并假设你有一个内置的并行端口主板,我的全新电脑没有的东西)。一个参考文献甚至说,如果没有某种软件更改,就无法从C ++程序与USB接口并行端口。

我想做的就是能够在运行现代Windows操作系统的现代计算机上通过USB转并口设备读取或写入8位到并行端口(端口专用于读取或写入)

有没有快速简便的方法呢?我们非常感谢一些示例代码。

此外,我可以与计算机连接多少个USB并行端口?我是否因为某种传统寻址而限制为3,或者我的USB和CPU能够支持多少?

使用Core i7 860运行Windows 7 x64,使用VC ++ 2008。

编辑:更多信息......

我尝试过使用inpout23以及一些预先编写的测试程序。它编译得很好,运行得很好,声称同时读取和写入并行端口。我把我的USB连接到计算机的并行端口和连接到电缆的端口,我已经识别,剥离并焊接了25根电线中的每根电线到一种插头上,以便快速插入面包板进行测试。没有任何输出引脚改变为程序所说的内容(而是它们都设置为高并且从未改变)。

3 个答案:

答案 0 :(得分:3)

我过去做过这个,我有好消息和坏消息。

好消息是它始终有效(有时会调整),这是对电子制造商设计极其强大的协议的致敬。显然,USB转并口转换器都提供了硬件端口仿真。

坏消息是'bitbanging'接口模型的性能非常糟糕。如果你不介意慢速更新,这根本不是问题。我用它来编程uControllers,不久我的急躁就克服了串口或USB程序员的价格。

只需使用Windows API读取/写入LPT或COM端口,它就可以(慢慢地)工作。

答案 1 :(得分:0)

之前我使用的是USB转串口适配器,我想USB转并行应该是一样的。您应该有一个驱动程序和适配器 - 这将为您完成大部分工作,隐藏USB接口并将其作为传统并行端口呈现给操作系统。例如,当我将适配器插入USB端口时,它只是在设备管理器中显示为COM4。我猜你的将会出现在LPT1之类的东西上。从那以后,这是使用标准Windows API访问这些端口的问题。 (请参阅MSDN上的Communications Resources

答案 2 :(得分:0)

我在 ebay.com 上购买了 USB 转 LPT-DB25 线,我很神秘地成功了。

我们应该在 /LF Line Feed 和 GND 引脚之间连接一个 LED。

在丢弃 USB 寄存器以找到与 USB 电缆关联的寄存器后,我们应该构建一个 API(应用程序编程接口)来与输出/寄存器交互。

我将尝试附上一张图片来看看我是如何管理它的:

enter image description here