一、CAN总线简介
控制器局域网CAN(Controller Area Network), 是一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,广泛应用于汽车领域。
CAN 协议有 ISO11898 标准和 ISO11519-2 标准两种,两者对于数据链路层的定义相同,但物理层不同。CAN总线是唯一成为国际标准的现场总线。
二、CAN总线的优势
- 无破坏性的基于优先权的逐位仲裁
- 很远的数据传输距离(长达10Km)
- 高速的数据传输速率(高达1Mbps)
- 低成本:ECUs通过单个CAN接口进行通信,布线成本低。
- 高集成:CAN总线系统允许在所有ECUs上进行集中错误诊断和配置。
- 可靠性:对子系统的故障和电磁干扰具有很强的鲁棒性,是汽车控制的理想选择。
- 高效率:可以通过d对消息进行优先级排序,以便最高优先级的d不被中断。
- 灵活性:每个ECU包含一个用于CAN总线收发芯片,随意添加CAN总线节点。
三、CAN总线基本概念
3.1 CAN总线的基本原理
CAN的数据总线有两条双绞线进行串行通信,一条是黄色的CAN_High,一条是绿色的CAN_Low。当没有数据发送时,两条线的电平一样都为2.5V,称为静电平,也就是隐性电平。当有信号发送时,CAN_High的电平升高1V,即3.5V,CAN_Low的电平降低1V,即1.5V。
CANH-CANL<0.5V时候为隐性的,逻辑信号表现为"逻辑1"高电平。
CAN_H-CANL>0.9V时候为显性的,逻辑信号表现为"逻辑0"低电平。
3.2 CAN总线的常用特征
对于测试人员来说,仪表盘使用的就是高速CAN,波特率是500,CAN总线网络主要挂在CANH和CANL,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CANH和CANL之间接上120欧姆的终端电阻,(常见面试题:为什么是120欧姆呢?那是因为电缆的特性阻抗为120欧)。
四、CAN协议介绍
1. CAN帧格式可分为:
标准帧(Stand Frame):具有11位标识符
扩展帧(Extend Frame):具有29位标识符
2. 通信报文帧类型分为:
数据帧:从发送节点向其它节点发送数据(常用)
远程帧:向其它节点请求发送具有同一识别符的数据帧
错误帧:当检测出错误时向其它节点指明其已检测到总线错误
过载帧:接收单元通知其尚未做好接收准备
3. 构成数据帧的7个段:
帧起始(S0):表示数据帧开始的段,0表示数据开发发送,由一个“显性”位构成。
仲裁段(ID):表示该帧优先级的段(CANoe查看),ID越小优先级越高,由标识符(ID)和远程发送请求(RTR)位组成。
控制段(DLC):表示数据的字节数(数据长度)(CANoe查看),数值0-8
数据段(DATA):数据的内容(CANoe查看),可发送0~8个字节的数据。
CRC段:检查帧的传输错误的段,如果不正确,需要重新传输
ACK段:判断数据是否被正确接收,发送方发出ACK位是1,接收方接收,ACK会0
帧结束(E0F):表示数据帧结束的段。