在工業自動化、智慧製造與 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)更合適