CAN 與 Modbus 差在哪?通訊協定完整解析與選型指南

在工業自動化、智慧製造與 IoT 應用中,選擇合適的通訊協定對整體系統的穩定性、擴充性與整合效率有關鍵影響。可是,

CAN 和 Modbus 有什麼差別?

現場要選哪一種才對?

以下將以淺顯易懂但技術精準的方式,讓你看懂這兩大協定的核心差異、優缺點與適合的使用情境,協助你做出最合適的產品選擇。

一、CAN 與 Modbus 基本概念解析

1.1 CAN Bus 是什麼

** CAN(Controller Area Network)** 由 Bosch 在 1980 年代為汽車電子所設計,是一種多主站(multi-master)匯流排通訊協定。其特色包括:

  • 定義 實體層 physical layer資料鏈結層 data link layer
  • 沒有預設應用層,需要上層協定延伸,如:
    • CANopen
    • DeviceNet
    • J1939(車用常用)
  • 適合即時性高的嵌入式系統

總結:CAN 本質上是一個低階、高可靠度的即時通訊架構。

1.2 Modbus 是什麼?

Modbus 由 Modicon 發展,是業界最廣泛使用的 工業應用層通訊協定,支援多種實體媒介:

  • Modbus RTU / ASCII(RS-485)
  • Modbus TCP(Ethernet)

其優勢:

  • 協定簡單、開放、不受授權限制
  • 廣泛應用於:PLC、變頻器、儀表、能源系統、SCADA 等

總結:Modbus 是高階的主從式(Master/Slave)應用層協定。

二、物理層與拓撲結構比較

2.1 傳輸介質與布線方式

CAN

  • 使用雙絞線(CAN_H / CAN_L)
  • 匯流排兩端需接 120 Ω 終端電阻
  • 干擾耐受度高

Modbus RTU(RS485)

  • 亦使用雙絞線
  • 傳輸距離可達 1200 m(低速)
  • 同樣需終端電阻與偏壓電阻配置

Modbus TCP

  • 使用標準 Ethernet(Cat5/6)
  • 可直接沿用既有網路設備

2.2 節點數量與網路架構

CAN

  • 支援約 110 個節點(視收發器負載)
  • 真正的「多主站(peer-to-peer)」架構

Modbus RTU

  • 每個 RS485 匯流排約支援 32 台設備
  • 嚴格的 主從架構(Master Polling)

Modbus TCP

  • 節點數僅受交換器或網路規模限制

三、資料鏈結層機制:存取方式與可靠性

3.1 匯流排存取控制方式

CAN

  • CSMA/CR(載波偵測多重存取 / 碰撞解析)
  • ID 優先權 進行仲裁
  • 確保高優先訊息能即時傳送
    即時性極佳

Modbus

  • 所有資料由 Master 發起
  • Slaves 被動回應
  • 延遲取決於輪詢周期與設備數量
    效率依 Master 設計而定

3.2 錯誤檢測與可靠性

CAN

  • 內建:CRC、Bit-stuffing、ACK、重傳機制
  • 高可靠度為車規標準

Modbus

  • RTU:CRC-16
  • ASCII:LRC
  • 重試與逾時需由設備軟體自行實作
  • 可靠性取決於開發品質

四、資料格式 Frame Structure 與負載能力 Payload

4.1 CAN Frame

  • 11-bit / 29-bit ID
  • Classical CAN:8 Bytes
  • CAN FD:64 Bytes

→ 若需高頻小量資料傳輸,CAN 非常適合。

4.2 Modbus Frame

  • 1-byte 地址 + 1-byte 功能碼 + 資料 + 2-byte CRC
  • RTU:最大約 252 bytes
  • TCP:實務上依 Ethernet MTU 限制(一般 1460 bytes)

→ 若需傳輸大量參數或配方資料,Modbus 更具優勢。

五、速度與距離的取捨(Speed vs. Distance)

CAN

  • 最快 1 Mbps, 典型 ≦ 40 m
  • 距離越長,速度需要降低
    • 125 kbps → 約 500 m

Modbus RTU

  • 常見速率 9600~115200 bps
  • 最遠約 1200 m

Modbus TCP

  • 速度與一般網路相同:
    • 100 Mbps / 1 Gbps
  • 取決於網路設備性能

結論:到底該選 CAN 還是 Modbus?

若你重視:

  • 高频率、小資料量
  • 高可靠性與即時性
  • 嵌入式或車用環境
    CAN 更適合

若你重視:

  • 大量資料交換
  • 輕鬆整合 PLC、儀表、SCADA
  • 既有網路延伸 或 長距離布線
    Modbus(RTU 或 TCP)更合適