我目前有一个嵌入式设备通过串行端口连接到PC。我在PC上接收数据时遇到问题。当我使用我的PCI串行端口卡时,我能够立即接收数据(无延迟)。当我使用USB-To-Serial插头或串口内置的主板时,我必须延迟读取数据(对于32byte数据包为40ms)。串行传输UART延迟
我可以在硬件之间找到的唯一区别是UART。 PCI卡使用16650,插头/主板使用标准16550A。 PCI卡被设置为在28个字节处中断,并且插头被设置为在14个字节处中断。
我连接在56700波特(如果这有帮助)。
延迟成为占空比的主要部分,确实增加了传输时间。 (10分钟转换与1小时转移)。
有没有人有解释为什么我必须使用插头/主板延迟?任何人都可以提出一个可能的解决方案来最小化或消除这种延迟?
您是否打开了硬件流量控制?您的嵌入式设备是否使用16650? – nmichaels 2010-07-20 12:52:03
否,硬件流量控制未打开。我目前只使用RX/TX和地线。嵌入式设备使用atmel atmega 128L和7.3728 MHz晶振。我认为这被认为是“16650兼容”。 Peter:是的,我可以调整主板的中断点。然而,它的范围也是1-14字节,因为它使用16550 UART(16字节FIFO缓冲区)。延迟实际上有助于在长时间传输过程中将主板连接上的不匹配错误从数百个减少到少于10个。 – 2010-07-20 13:04:51