我们来详细讲 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 → 弱信号
总线逻辑:
-
如果多个节点同时发送,显性位覆盖隐性位。
-
节点在发送每个位时都