一、什么是 CAN

CAN = Controller Area Network,控制器局域网,1986 年博世推出,专为汽车多 ECU 通信设计,现在大量用于工程机械、工控、光伏、机器人。 核心特点:差分信号、多主竞争、容错强、布线简单

硬件层物理结构

  1. 两根差分线:CAN_H(高)、CAN_L(低)
    • 空闲:CAN_H≈2.5V,CAN_L≈2.5V,压差≈0V → 隐性电平 1
    • 发送数据:CAN_H≈3.5V,CAN_L≈1.5V,压差≈2V → 显性电平 0
  2. 终端电阻 总线两端各 120Ω 电阻,匹配阻抗防止信号反射; 只有首尾 ECU 接,中间节点不加。
  3. 拓扑:总线型,不允许星型长线分支,否则通信不稳定。

二、核心机制:多主逐位仲裁(无固定主机 / 总裁)

CAN 没有唯一主机,所有节点地位平等,任意节点可主动发报文。

  • 报文 ID 越小,优先级越高;
  • 多个节点同时发时,逐位比对 ID,发 1 的节点遇到总线 0 会立刻停止发送,退出竞争;
  • 不会冲突丢包,高优先级报文优先传输。

三、两种标准帧格式

1. CAN 2.0A 标准帧(11 位 ID)

多用于车身、简单工控,ID 范围:0~0x7FF

2. CAN 2.0B 扩展帧(29 位 ID)

车载动力、诊断常用,ID 范围极大

CAN FD(升级)

兼容 CAN2.0,数据段从 8 字节扩到 64 字节,波特率可分段(仲裁段低速、数据段高速)

四、报文结构(最简理解)

ID + RTR (远程帧标志) + DLC (数据长度) + Data [0~8]

  • 数据帧:带数据,ECU 互相传传感器 / 控制信号
  • 远程帧:只发 ID,请求对应节点上传数据(现在车载很少用)

五、通信特点

  1. 无地址,基于 ID 通信 不指定目标设备,广播发送;所有节点接收,硬件过滤 ID 再决定是否处理,效率极高。
  2. 错误检测 + 自动重发 CRC 校验、位校验、填充校验;出错节点自动重发,持续报错会自动离线保护总线。
  3. 抗干扰强 差分传输,电磁干扰同时叠加两根线,压差不变,适合车内复杂电磁环境。

六、车载典型 CAN 网段划分

  1. 动力 CAN:500kbps,发动机、变速箱、BMS、ABS,高实时性
  2. 车身 CAN:125kbps,车窗、车灯、中控、座椅
  3. 诊断 CAN/OBD:500kbps,诊断仪读写 ECU、刷写程序
  4. CAN FD:新能源电池、域控制器大数据交互
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐