CAN协议

1、CAN总线简介
CAN是Controller Area Network的缩写,ISO11898和ISO11519(国际标准),J(美国标准)。

背景:车辆上电控电源数量越来越多。原先点对点连接的方式,成本过高。采用总线形拓扑结构(节点与节点之间的数据共享,通过共享介质。即一条总线传输),降低成本,开发周期快等优点。

分类:高速CAN和低速CAN。
特点:可以联想CAN协议的传输和格式。
传输:
主线空闲时,都可以发送,即没有主从
协议格式:
CRC,错误检测,错误通知,错误恢复。
ACK确认,广播形式传输。

2、CAN总线原理
总线结构:
CAN协议_第1张图片

发送过程:
● 微控制器接收与其他节点的一些应用层数据的交互,当需要有数据需要发送的时候,微控制器(MCU)会将应用层数据传递给CAN控制器;
● CAN控制器进行报文的封装,封装之后以二进制码流的形式传给收发器;
● 收发器将这种二进制位流信号(数字信号)与物理的电平信号(电信号)进行转换,从而实现MCU接收要实现的功能。比如车窗的控制,乘客按键按下,车窗电机转动,实现车窗的打开和关闭。
上面是整体的一个流程,可以说一下帧的传输过程。

接收过程:
● 收发器检测到总线上的数据时,会将CAN高低这两根线的差分电平(电信号),解析成数据链路层传输的0101比特流(数字信号)传给控制器;
● 控制器进行报文的解封装,然后将应用层数据打包传给微控制器进行处理。

3、CAN总线协议
3.1、物理层
1、位电平
CAN控制器根据CAN_H和CAN_L上的电位差来判断总线电平。总线电平分为显性电平和隐形电平,

显性电平对应逻辑:0,隐性电平对应逻辑:1。

CAN_H的电平为3.5V,CAN_L线的电平为1.5V,CAN_H和CAN_L的电压差为2V左右,CAN_H和CAN_L线上的电压均为2.5v, CAN_H和CAN_L之间的电压差为0V。可以用示波器观察。每一帧报文的传输,每一位的电平都是显性。

2、终端电阻
接在CAN_H和CAN_L之间的电阻。
作用:
3、差分电路
CAN使用差分电路:有外来干扰时,CAN_H和CAN_L会同时受到干扰,但是电位差不会改变太多,抗干扰能力强。

3.2、数据链路层
通过CAN ID的可以分类不同报文。网络管理报文(CAN 4开头,CAN FD 5开头),应用报文,诊断报文(7开头,物理寻址:一对一 比如对单体安全访问,在线编程,功能寻址:服务需要一对多,保证ECU的状态相同,比如多个 ECU需要知道车速的信息,温度的信息)
1、帧类别:
数据帧、错误帧常用,远程帧不用。
CAN2.0 ID不一样 标准帧11(乘用车) 扩展帧29(商用车),给ID具体信息,为了把车的发动机、扭矩信息写进去。
标准帧格式:
CAN协议_第2张图片CAN协议_第3张图片

七段。
● 帧起始:SOF
● 仲裁段(Arbitration Field):ID和RTR
RTR:远程发送请求位,区分该帧是数据帧还是远程帧:显性信号(0)代表数据帧(Data Frame),隐性信号(1)代表远程帧(Remote Frame)。
● 控制段:IDE、RB0、DLC;
IDE:扩展位,扩展帧的判断;
RB0:保留位;
DLC:数据长度编码位,数据的长度。
● 数据段:传送数据,最多8个字节。
● 循环校验段:CRC、CRC DEL;
CRC:循环校验序列;
CRC DEL:界定符,表示循环校验序列的结束。隐性信号
● 确认段:ACK SLOT(确认位)和ACK DEL(界定符,隐性信号)
● 帧结束:EOF,7位,隐性信号,表示帧的结束。

DLC和DL的区别:
● CAN message 属性DLC和DataLength 是对应着CAN/CANFD报文的报文结构的
● 如果是标准CAN,因为最多是8字节,两个参数值都一样,但是CAN报文的话,就应该记住那个映射表
● 仿真CAN报文的时候,长度可别设错。

填充位:连续5个相同位,填充反转位,防止累加错误。

2、仲裁
1、显性覆盖隐形
当多个信号在总线上发送数据时,显性信号0覆盖隐形信号1,所以ID 0越多靠前,报文优先级更高,表现ID数字越小,优先级越高。
2、非预期位退出发送。
在多个报文发送位时,与总线报文位进行对比,不相同的退出竞争。
3、同步(位时序分解)
CAN使用"位同步"的方式来抗干扰/吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常。
为了实现位同步,CAN协议把每一个数据位的时序分解成SS(同步)段,PTS(传输)段,PBS1段(相位段1),PBS2段(相位段2),这四段的。
长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是Tq,1bit的时间段(16TQ)。
同步段:电平跳变范围,若超出,则重新;
传输段:补偿网络的物理延时时间,保证数据位都已经传输,从第一位到最后一位,;
相位段1和相位段2。
主要是采样点的知识点,采样点在相位段1和相位段2边界,采样点测试。
4、错误流程:
错误类别:5种;
1、位错误:当总线赢得发送权后,会对总线电平进行侦听,当发送的电平和侦听的电平不一致;
2、填充错误:出现6个连续相同的电平;
3、CRC错误:接收节点按照与发送节点相同的方法计算数据CRC校验值,计算结果与CRC场的数据不一致;
4、ACK错误:发送节点在应答场没有检测到一个显性电平;
5、固定错误:定义固化的某些位出现错误。

5、错误处理机制:
检测到错误,自动重发,同时发送错误帧。
发送节点检测到错误一次,TEC加8,直到加到255(第32次),休眠,避免优先级高的数据帧一致发送占用总线,导致其他报文无法发送。
CAN协议_第4张图片

你可能感兴趣的:(CAN协议,CAN)