一 综述
1基本概念
比特率 = 1/比特时间;
2总线数据传输方法
基于字符的传输(异步传输),在较低比特率采用;
- TICB:内部字符间断时间,每个字符之间的时间间隔;
- TIFB:内部数据帧间断时间,数据信息的最后一个字符与下一个数据信息的第一个字符之间的时间间隔。 这两个值由协议中的最大值和最小值给定。
基于比特流的传输(同步传输),一般在较高的比特率时采用。
二 CAN总线拓扑
- 一种面向比特流的线性总线,广播,确定最大的比特率为1Mbit/s。采用CSMA/CA(载波侦听多路访问冲突避免,控制器可以在任意时间对总线进行访问,如果发生冲突,则由最高优先级的发送端发送消息,低优先级的发送端调整自己的发送策略,这样可以保证优先权较高的数据信息得到确认,优先级可以在数据信息头中进行编码)。总线访问方法及错误识别,只要总线在3位时间内是空闲的,控制器就可以向总线发送消息。
- 要求所有的控制器在比特时间内做出反应,因此总线长度越小,比特率越高。一般来说,总线长度 <= (40~50)m * 1Mbit/s / 比特率;
高速CAN(比特率>=250kbit):使用绞合双绝缘导线
低速CAN(比特率>=125kbit):同样使用双绝缘导线
三 CAN数据链路层
3.1 报文标识符
- 用来标志目标。总线上的控制器接收数据信息后会根据报文标识符来决定是否对该报文数据进行进一步的处理。
- 识别该报文的优先权,低位数有高的优先权。意为,当两个控制器同时向总线传输数据时,比较这两个控制器报文的报文标识符,从第一个不一致的bit位开始,该bit位为0的报文的优先级高,该控制器获得传输权。
3.2 控制位
数据帧中可以传送0-8个有效字节的数据,具体的数据长度表示在控制位中。
远程数据帧是比较特殊的数据帧格