透過 USB 2.0 串列。它真的比標準串列更快嗎?

透過 USB 2.0 串列。它真的比標準串列更快嗎?

我們科學合作的一位成員設計了一個具有 4 個通道 @ 1 kHz 的資料擷取盒,可與 GPS 同步時間。他使用USB 2.0讓盒子與電腦進行通信,並使用波特率為115200的COM串行接口以ASCII格式將資料傳輸到電腦。製造商將此稱為 USB 2.0 上的「虛擬串行」。因此,所有配置(例如奇偶校驗、工作流程控制等)在串行介面中並不重要,但只需將波特率設為 115200 即可使其工作。

我的問題是:這個數字 115200 是否真的代表了透過該連接埠每秒可以最大傳輸的位元組數,從而限制了 USB 2.0 連接埠的功能?或者這個數字真的不重要,實際傳輸率大約是標準 USB 2.0 為 480 Mbits/s

決定這一點的因素有哪些?

為什麼問?目前盒子採用單向串列通訊方式傳遞數據,有以下問題:計算機過載有時會丟失位元組。可靠的解決方案是使用校驗和建立雙向連接,並請求資料包並在資料損壞時重新請求。然而,如果我們確實受到 115 kB/s 的限制,這意味著我們無法以 1 kHz 傳輸 4 個通道。

如果您需要任何其他信息,請詢問。

答案1

透過 USB 2.0 串列。它真的比串口快嗎?

你的術語很草率。
“透過 USB 2.0 串列”可以參考使用USB轉RS232轉接器,或參考疾病預防控制中心/ACM
您最後一次參考“連續劇”大概是RS-232。

我的問題是:這個數字 115200 真的代表每秒可以通過該連接埠最大傳輸的位元組數,從而限制了 USB 2.0 連接埠的功能嗎?

115200 是波特率,(在本例中)是每秒位數(而不是每秒位元組數)。
由於這是一個非同步通道,因此每個字元/位元組均單獨構成一個起始位元和 1/1.5/2 個停止位元。因此,幀開銷為 25%(假設 8N1 的典型配置)。

USB 是一種匯流排,可以處理多個資料通道。
非同步 RS-232 資料被打包以便透過同步 USB 傳輸,並共享 USB 2.0 的 480 Mbs 總頻寬。 (儘管典型的 USB 轉 RS232 轉接器僅使用 USB 1.1。)

我親眼目睹了四個同步 115200 波特率 RS-232 通道透過單一 USB 1.1 連接傳輸,沒有出現任何問題。

還是這個數字真的不重要,實際傳輸速率約為標準 USB 2.0 的 480 Mbits/s?

該數字確實很重要,因為它是為該通道配置的波特率。

決定這一點的因素有哪些?

最大波特率通常受到硬體和支援軟體的限制。

為什麼問?該盒子目前使用單向串行通訊來傳輸數據,這會導致有時在電腦過載時丟失位元組的問題。

您的資料遺失似乎是系統緩衝區溢位的情況。 資料到達的速度比應用程式讀取/處理的速度快。 資料通道上未採用流量控制來防止溢位。

相關內容