一、CAN协议解析
1、定义与核心特性
CAN(Controller Area Network)是一种多主控制的串行通信协议,采用双绞线(CAN_H/CAN_L)传输差分信号,具有高可靠性和抗干扰能力24。其核心特性包括:
- 多主控制:所有节点可主动发起通信,总线空闲时优先发送高优先级数据。
- 实时性强:支持1Mbps高速传输(ISO11898标准),适用于工业控制、汽车电子等场景。
- 错误处理机制:包含CRC校验、位填充、错误帧自动重传等机制,错误检出率>99%。
2、物理层结构
- 总线拓扑
- 闭环结构:两端接120Ω终端电阻,支持高速通信(1Mbps),最大传输距离40m。
- 开环结构:单端接2.2kΩ电阻,用于低速长距离传输(<125kbps)。
- 电平标准
通过差分电压判定逻辑状态:- 高速CAN:显性电平(0)= 2V压差,隐性电平(1)= 0V压差。
- 低速CAN:显性电平=3V压差,隐性电平=-1.5V压差。
3、协议层与帧结构
-
帧类型
帧类型 功能描述 关键字段 数据帧 传输有效数据 帧ID(11/29位)、数据段(0-8字节)、CRC校验 远程帧 请求数据发送 无数据段,RTR标志位显性 错误帧 错误状态通知 6位显性错误标志 过载帧 延迟数据传输 帧间隔超时触发 -
仲裁机制
- 基于报文ID优先级的非破坏性仲裁:ID值越小优先级越高,仲裁失败节点自动退出发送。
- 采用CSMA/CD+AMP:载波侦听多路访问/冲突检测与仲裁机制。
4、典型应用场景
- 汽车电子:ECU(发动机控制单元)、仪表盘、ADAS系统等车载设备通信。
- 工业控制:PLC、传感器网络、机器人协同控制。
- 医疗设备:医疗仪器数据同步与状态监控。