【嵌入式】CAN协议学习笔记
CAN(Controller Area Network)和CAN FD(CAN with Flexible Data-Rate)是广泛应用于汽车电子、工业控制等领域的串行通信协议,由德国博世公司开发并已成为国际标准(ISO 11898)。以下从协议特点、帧结构、物理层及差异对比等方面详细介绍:
一、CAN协议基础
-
核心特点
- 多主通信:所有节点可平等发送数据,通过标识符(ID)仲裁优先级(ID值越小优先级越高)。
- 高可靠性:采用差分信号传输(CAN_H与CAN_L电压差表示逻辑0/1),抗电磁干扰强;内置错误检测(CRC、位填充等)和自动重传机制。
- 实时性:最高速率1 Mbps(40米内),支持远距离低速通信(125 kbps可达1公里)。
-
物理层结构
- 使用双绞线(CAN_H/CAN_L)传输差分信号,显性电平(逻辑0)对应电压差≥0.9V,隐性电平(逻辑1)接近0V[[7]][[8]]。
- 终端需连接120Ω电阻匹配阻抗,抑制信号反射。
- 帧类型
- 数据帧:携带实际数据,包含仲裁段(ID)、控制段(数据长度)、数据段(0-8字节)、CRC段等[[11]][[12]]。
- 远程帧:请求其他节点发送数据,无数据段。
- 错误帧:检测到错误时强制发送,中断当前通信。
- 过载帧:用于节点延迟处理。
二、CAN FD协议增强特性
CAN FD在兼容经典CAN的基础上,针对大数据量传输需求优化:
-
更高数据速率与长度
- 数据段速率可提升至5 Mbps(甚至8 Mbps),仲裁段保持1 Mbps以确保兼容性。
- 数据段长度从8字节扩展至64字节,减少协议开销。
-
改进的CRC校验
- 采用更长CRC多项式(21位或17位),适配扩展数据段,增强错误检测能力。
-
帧结构差异
- 新增EDL(Extended Data Length)位标识FD格式,BRS(Bit Rate Switch)位控制数据段速率切换。
三、CAN与CAN FD对比
特性 | CAN | CAN FD |
---|---|---|
最大速率 | 1 Mbps | 仲裁段1 Mbps,数据段5-8 Mbps |
数据长度 | 8字节 | 64字节 |
CRC校验 | 15位多项式 | 17/21位多项式 |
兼容性 | 所有CAN节点 | 需支持FD的控制器和收发器 |
四、应用场景
- 经典CAN:传统车身控制(车窗、仪表)、工业传感器网络等低数据量场景[[23]][[24]]。
- CAN FD:智能驾驶(雷达/摄像头数据传输)、车载以太网网关、高精度工业控制等大数据量需求领域。
五、开发注意事项
- 硬件要求:CAN FD需专用收发器(如支持SIC)和控制器(如STM32H7系列)。
- 网络混合:FD节点与经典CAN节点共存时,需通过网关协议转换。
CAN与CAN FD通过高可靠性、实时性和灵活性,成为复杂嵌入式系统的通信骨干。选择时需根据数据量、速率需求及成本综合考量。
参考资料:
- CAN通信协议入门
- CAN协议简介与接口介绍