FTDI USB到RS232比真正的RS232 COM端口更好吗



我使用Zebra DS457扫描仪通过COM端口(RS232(读取条形码和qr码。在我的测试环境中,我使用了一个带有Win10的MSI终端,它在真正的COM端口上工作,没有任何问题。但在其他设备(Win10和Win7(上,存在一些问题,即软件触发器无法通过,读取的信息无法发送回计算机。当我使用USB到RS232 FTDI适配器时,我没有任何问题。但为什么呢?首先,我认为它是Win10,传统的支持可能会更好,但适配器在所有设备上都能更好更快地使用。这怎么可能?也许是司机特有的东西?我正在使用这个适配器链接到conrad.de.

FTDI串行端口将在字符通过导线到达和应用程序可以看到它之间,以及在应用程序想要发送东西和它通过导线之间施加最小延迟。在较旧的设备上,每个延迟至少为1ms,但我认为一些较新的高速设备已将其减少到125us。此外,由于我不太理解的原因,以错误速度到达的数据有时会导致数百毫秒的额外延迟。

另一方面,FTDI设备可以缓冲来自导线的256字节数据,或来自USB端口的128字节数据,以通过导线发送,并处理RTS/CTS握手,而无需任何软件干预——这是PC串行端口使用的UART芯片所缺乏的能力。如果软件向FTDI设备提供128个字节,则它将开始发送该字节,直到远程设备解除其握手线路的断言,因此一旦当前字节完成,FTDI设备将停止发送;一旦远程设备重新确认握手,它就会恢复传输。如果FTDI设备通过导线接收到足够的数据,其UART将有溢出的危险,它将自动取消其握手输出,而不需要任何软件干预。相比之下,PC串行端口中使用的UART需要一个快速中断处理程序来控制或响应握手线路。如果中断处理程序维护4096字节的缓冲区,那么一旦该缓冲区已满75%,它就可以解除握手线路的断言,但是如果缓冲区已不足75%,并且在UART中断处理程序之前有17个字节通过该线路快速连续到达,则不会解除握手线路。更糟糕的是,如果启用了传输缓冲,并且当远程设备取消其握手线路时,PC已将16个字节馈送到UART进行传输,那么无论远程设备是否准备好接收这些字节,这16个字节都将被发送出去(根据握手线路,很可能不会(。

因此,有些应用程序可以更好地使用FTDI UART,而有些应用程序则更好地使用实际的串行端口

最新更新