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 |
📊 差分电压波形示意图
说明:当CAN_H与CAN_L电压差为0V时,总线处于隐性电平(逻辑1);当CAN_H上升至3.5V、CAN_L下降至1.5V时,差分电压为+2V,总线处于显性电平(逻辑0)。
2.2 显性电平与隐性电平
CAN总线采用“线与”逻辑:
- 显性电平(Dominant):逻辑0,优先级高。当任意节点输出显性位时,总线被强制为显性状态。
- 隐性电平(Recessive):逻辑1,优先级低。只有当所有节点都输出隐性位时,总线才保持隐性状态。
⚡ 总线仲裁原理(线与逻辑)
仲裁机制:当多个节点同时发送数据时,显性电平(0)会覆盖隐性电平(1)。节点1发送显性位,节点2、3发送隐性位,总线最终呈现显性电平,节点1赢得仲裁继续发送。
2.3 总线拓扑结构
🔹 直线型(总线型)拓扑
直线型是CAN总线最标准、最推荐的拓扑结构。所有节点通过分支线(stub)连接到一根主干总线(backbone)上,主干两端必须各接一个120Ω终端电阻。
📐 直线型拓扑示意图
设计要点:主干线两端必须安装120Ω终端电阻,分支线(stub)长度应尽量短(<0.3m),以避免信号反射。
🔸 星型拓扑
星型拓扑通过一个中央集线器(Hub)连接所有节点。虽然在某些特殊场景(如车辆中央网关)中使用,但星型拓扑容易产生信号反射和时序问题,不推荐用于高速CAN(>125kbps)网络。
⭐ 星型拓扑示意图
注意事项:星型拓扑中,终端电阻不能简单放置在分支末端,需在Hub内部进行阻抗匹配设计。分支线长度不一致会导致信号反射,高速CAN慎用。
2.4 拓扑对比总结
| 特性 | 直线型(总线型) | 星型 |
|---|---|---|
| 信号完整性 | ✅ 优秀,反射小 | ⚠ 较差,易产生反射 |
| 终端电阻 | 主干两端各1个120Ω | 需在Hub内特殊处理 |
| 分支线长度 | ≤ 0.3m | 各分支长度需一致 |
| 推荐速率 | 最高1Mbps | ≤ 125kbps |
| 故障隔离 | 单节点故障影响总线 | Hub故障导致全网瘫痪 |
| 汽车应用 | ✅ 主流方案(动力、车身) | ⚠ 仅用于低速/诊断网络 |
💡 专家建议:在汽车CAN网络设计中,优先选择直线型拓扑。若必须使用星型拓扑,请确保Hub内部集成有源中继器或信号整形电路,并严格控制各分支线长度误差在±5%以内。