CAN报文结构
CAN简介CAN 总线Controller Area Network控制器局域网是德国博世公司 1986 年为解决汽车电子系统复杂化、线束冗余问题而开发的 ISO 标准化串行通信协议以 “减少线束数量、实现多节点高速数据交互” 为目标通过 ISO11898/ISO11519 完成标准化具备实时性强、可靠性高、开发成本低、兼容性好的特点是现代汽车电子架构的核心通信基础支撑动力、底盘、车身、信息娱乐等全领域控制器的数据交互与功能联动。CAN总线原理1. 基本工作原理CAN 总线采用 “无领导小组讨论” 式的多节点广播通信机制所有节点均可主动发送数据且同一时间接收全网信息当多个节点同时发送报文时通过ID 仲裁机制优先级竞争决定发送顺序ID 值越小优先级越高高优先级报文可优先占用总线保证关键数据的实时传输。2. 报文帧工作流程一帧 CAN 报文的完整传输流程与会议沟通逻辑对应节点先以起始帧标识传输开始通过 “标签报文 ID” 声明优先级随后发送数据长度、数据内容对应 “发言”同时持续监听总线仲裁结果接收节点完成数据校验后回复 “接收成功应答ACK 位”最终以帧结尾标识传输结束全程通过位同步、校验机制保障数据可靠传输。3. 网络结构CAN 总线采用双绞线总线拓扑核心组成包括节点每个 ECU 节点内部包含 MCU、CAN ControllerCAN 控制器、Transceiver收发器三层结构总线由 CANH/CANL 双绞线组成通过差分信号传输数据抗干扰能力强终端电阻总线两端各接一个 120Ω 终端电阻实现阻抗匹配消除信号反射保障通信稳定性。4. OSI模型物理层Layer 1标准ISO 11898硬件CAN 收发器、双绞线、终端电阻内容总线电平、差分信号、网络拓扑、波特率数据链路层Layer 2标准CAN 2.0A/B硬件CAN Controller 芯片内容帧格式、ID 仲裁、CRC 校验、位填充、错误处理传输层标准ISO 15765内容单帧、首帧、连续帧、流控帧应用层Layer 7标准CiA DS-301通信规范、CiA DSP-401/404 等设备规范内容报文类型、数据定义、应用协议如 CANopen、UDSCAN总线协议数据帧帧起始(1) 仲裁域{ 帧ID(11)RTR(1) } 控制域{IDE(1)RB0(1)DLC(4)} 数据域(8N,0N8) CRC域{ CRC(15)CRC Del(1)} ACK(1) EOF(7)帧起始(1): 常值为1表示帧的开始仲裁域{ 帧ID(11)RTR(1) } {帧ID(11)帧ID越小优先级越高报文优先发送RTR(1)0数据帧正常发送数据1远程帧请求其他节点发送数据}控制域{IDE(1)RB0(1)DLC(4)} {IDE(1)0标准帧11位ID1扩展帧29位IDRB0(1)保留位始终为0DLC(4)表示数据域的长度}EOF(7)由七个隐形位1组成