2. CAN物理层基础

2.1 CAN_H与CAN_L电平定义

CAN总线采用差分信号传输,通过两条信号线——CAN_H(高电平线)和CAN_L(低电平线)——之间的电压差来表示逻辑状态。这种差分结构具有极强的抗共模干扰能力,非常适合汽车等电磁环境恶劣的应用场景。

信号状态 CAN_H电压 (V) CAN_L电压 (V) 差分电压 (V) 逻辑电平
显性电平 (Dominant) 3.5 1.5 +2.0 逻辑 0
隐性电平 (Recessive) 2.5 2.5 0 逻辑 1

📊 差分电压波形示意图

2.5V (隐性) CAN_H CAN_L 显性 (逻辑0) 显性 (逻辑0) 显性 (逻辑0) 隐性 (逻辑1) 隐性 (逻辑1) 隐性 (逻辑1)

说明:当CAN_H与CAN_L电压差为0V时,总线处于隐性电平(逻辑1);当CAN_H上升至3.5V、CAN_L下降至1.5V时,差分电压为+2V,总线处于显性电平(逻辑0)。

2.2 显性电平与隐性电平

CAN总线采用“线与”逻辑:

  • 显性电平(Dominant):逻辑0,优先级高。当任意节点输出显性位时,总线被强制为显性状态。
  • 隐性电平(Recessive):逻辑1,优先级低。只有当所有节点都输出隐性位时,总线才保持隐性状态。

⚡ 总线仲裁原理(线与逻辑)

节点1 输出: 显性 (0) 节点2 输出: 隐性 (1) 节点3 输出: 隐性 (1) 总线结果: 显性 (0) — 节点1赢得仲裁

仲裁机制:当多个节点同时发送数据时,显性电平(0)会覆盖隐性电平(1)。节点1发送显性位,节点2、3发送隐性位,总线最终呈现显性电平,节点1赢得仲裁继续发送。

2.3 总线拓扑结构

🔹 直线型(总线型)拓扑

直线型是CAN总线最标准、最推荐的拓扑结构。所有节点通过分支线(stub)连接到一根主干总线(backbone)上,主干两端必须各接一个120Ω终端电阻。

📐 直线型拓扑示意图

120Ω 120Ω ECU 1 ECU 2 ECU 3 ECU 4 主干总线 (CAN_H / CAN_L) 分支线长度 ≤ 0.3m (推荐)

设计要点:主干线两端必须安装120Ω终端电阻,分支线(stub)长度应尽量短(<0.3m),以避免信号反射。

🔸 星型拓扑

星型拓扑通过一个中央集线器(Hub)连接所有节点。虽然在某些特殊场景(如车辆中央网关)中使用,但星型拓扑容易产生信号反射和时序问题,不推荐用于高速CAN(>125kbps)网络。

⭐ 星型拓扑示意图

CAN Hub (星型中心) ECU 1 ECU 2 ECU 3 ECU 4 ⚠ 终端电阻需在Hub内部处理

注意事项:星型拓扑中,终端电阻不能简单放置在分支末端,需在Hub内部进行阻抗匹配设计。分支线长度不一致会导致信号反射,高速CAN慎用。

2.4 拓扑对比总结

特性 直线型(总线型) 星型
信号完整性 ✅ 优秀,反射小 ⚠ 较差,易产生反射
终端电阻 主干两端各1个120Ω 需在Hub内特殊处理
分支线长度 ≤ 0.3m 各分支长度需一致
推荐速率 最高1Mbps ≤ 125kbps
故障隔离 单节点故障影响总线 Hub故障导致全网瘫痪
汽车应用 ✅ 主流方案(动力、车身) ⚠ 仅用于低速/诊断网络

💡 专家建议:在汽车CAN网络设计中,优先选择直线型拓扑。若必须使用星型拓扑,请确保Hub内部集成有源中继器或信号整形电路,并严格控制各分支线长度误差在±5%以内。


专注课程资料整理