2010-11-18 25 views
7

初步故事使用USB至并口适配器时,我可以正常访问并口吗?

有这个程序,它使用并行端口与其他硬件同步。它会将并行端口输出设置为指定的(字节)值。使用PC的内置并行端口时,这种方式没有问题。目标平台是Windows XP到7,到目前为止一切正常。源代码在Delphi中,可访问并且可以修改。

它是如何工作

在Delphi中我可以使用io.dll设置并口的价值,但也有其他可用的解决方案,如inpout32.dllport.dll。我打电话如PortOut,指定一个端口号,并设置字节值和端口。

我现在想做的事 - 和我需要帮助

现在的变化:这需要拥有一台机器上工作,没有并行端口内置(甚至在主板上)。有几个方案可供选择:

  • 使用USB转并口适配器连接到LPT端口添加到PC
  • 使用PCI卡增加了一个LPT端口到PC
  • 使用PCI Express卡其中LPT端口添加到PC

我目前正在前往和集中在最简单和最便宜的可能性:一个USB到并行端口适配器。

主要问题

似乎有成为这些都使得连接只需一台打印机,这似乎是更强大的其它适配器并行端口适配器之间的差异。真的有区别吗?或者我可以使用这5个$打印机适配器之一,插入我自己的硬件并从Delphi代码访问端口?或者我需要一个特殊的适配器?有没有人有这方面的经验?有一个相关的问题here,但不同的适配器类型(如果存在)在那里没有提及。 This page暗示确实存在差异:

与所有其他可以连接到打印机的USB并行端口相反,这可以连接到大多数硬件。

我希望通过USB存在一个解决方案,因为为此您不必打开PC,这意味着可以根据需要添加适配器。

子问题

你有PCI(快递)解决方案的经验?如果USB方法不成功,我必须使用一个。

回答

9

由于我最近一直在与这个事情摔跤,这里是我发现的;如果你的意思是通过使用IO端口寻址(由你对inpout32.dll的引用来表示),否。除非您的USB并行端口驱动程序支持完整的端口仿真或虚拟化(大多数情况下不支持),否则这通常是不可能的。如果您需要直接访问端口以执行正常的“位混合”操作,则应该获得单独的并行端口PCI卡。他们中的大多数在标准地址(es)上表现为正常的IO。我假设你不打算使用并行端口实际与打印机进行通信,对吧?

有趣的是,USB串行适配器更容易使用,因为它们表现为简单的虚拟设备,您只需使用简单的流“打开”它们; TFileStream.Create(“COM1”,fmOpenRead)或Windows.CreateFile(“COM2”,...);

这里是声称通过USB做并行端口的全仿真一些设备:

https://www-user.tu-chemnitz.de/~ygu/bastelecke/PC/USB2LPT/index.en.htm

+1

非常感谢您分享您的见解!我们现在也在这里做了一些测试,我们的发现与您的发现相符。有一些方法可以控制USB设备(也可以通过CreateFile),但通过WriteFile设置单个位失败(可能),因为适配器会发送响应并等待回答。不,我们没有附加打印机。我们只想为自定义设备设置单个位。但没办法:(我也来到了开姆尼茨大学的页面,但这看起来有点过头了,它只需要快速工作,没有定制设备的开销。 – 2010-11-23 09:06:53

相关问题