我們來詳細講 CAN 仲裁機制 的原理和工作方式,這是 CAN 總線最核心的特性之一。
1?? 基本概念
CAN 總線是 多主機、多節點的串行總線,所有節點共享一根差分信號線(CAN_H / CAN_L)。
-
每個節點都可以隨時發送消息(多主機機制)
-
總線只能同時有一個節點成功發送
-
仲裁 用于在多節點同時想發送時決定哪條消息先發送,而不會丟包。
2?? 仲裁依據:CAN ID
-
每個 CAN 幀都有一個 標識符(CAN ID)
-
標準幀(SFF):11 位 ID
-
擴展幀(EFF):29 位 ID
-
-
ID 越小 → 優先級越高
-
硬件上是按位比較的**顯性(dominant, 0)/隱性(recessive, 1)**規則。
-
3?? 顯性/隱性位規則
CAN 總線用差分信號表示:
-
顯性位(Dominant) = 0 → 強信號
-
隱性位(Recessive) = 1 → 弱信號
總線邏輯:
-
如果多個節點同時發送,顯性位覆蓋隱性位。
-
節點在發送每個位時都