USB和CAN都是用差分訊號來傳輸資料,為什麼CAN的傳輸距離能比USB遠那麼多?

小兜兜me發表於2024-09-30

USB和CAN的區別

今天在看USB專案設計例項的時候,突然想到一個問題,從而引發了一些思考。經過思考加上查閱資料,寫出了這一篇文章作為記錄。

問題

​ USB和CAN都是用兩條線作為差分線以差分訊號進行資料傳輸。總所周知,差分訊號有著很強的抗干擾能力。那為什麼USB的一般傳輸距離是5米,最大是10米(USB2.0低俗模式下)。而CAN的一般傳輸距離為幾百米甚至是1KM以上。

區別

  • 供電:
    • USB不僅可以傳輸資料,主裝置還可以向從裝置提供5V的電源。
    • CAN只能傳輸資料
  • 傳輸速率:
    • USB2.0的傳輸速率最高可達480Mbps,USB3.0的傳輸速率更是能到5Gbps。
    • CAN協議的傳輸速率相對而言較低,取決於CAN配置的波特率,一般的傳輸速率在1Mbps
  • 拓撲結構:
    • USB採用星型拓撲結構(一主多從模式)
    • CAN採用匯流排模式,並透過終端電阻減少反射,從而保證訊號能在更長的距離
  • 協議設計(GPT補充,我也認同)
    • USB:在建立連線之後,就直接傳輸資料,沒有報文規範和冗餘校驗機制,也沒有重發機制
    • CAN:往匯流排中傳送訊號,其中CAN報文有15位的CRC校驗碼,可以更好的檢測在資料傳輸中發生干擾導致的資料失真,並且根據重發機制進行重發。

答案

  1. 傳輸速率:CAN的傳輸速率相對更低,更低的傳輸速率代表了電平訊號的持續時間更長,能夠有效的增強資料的可靠性。
  2. 拓撲結構:CAN在匯流排的兩端分別接入了一個120Ω的終端電阻,這個終端電阻能夠減少訊號的反射,提高訊號的完整性
  3. 協議設計:CAN有著很好的錯誤檢測機制和重發機制(CRC校驗,界定符校驗,手動或自動重發)。

以上三點使得CAN在傳輸距離上比USB 更有優勢,如文章中有錯誤的地方,歡迎批評指正。大家有新的想法,請在評論區留下你大膽的想法。

相關文章