我目前有一個嵌入式設備通過串行端口連接到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