文章目录
- 协议规范
- 一、字节场
- 二、报文头(HEADER FIELDS)
- 同步间隔(synchronisation break)
- 同步场(SYNCH FIELD)
- 标识符场(IDENTIFIER FIELD)
- 三、数据场(DATE FIELDS)
- 四、校验和场(Checksum Field)
协议规范
(1)字节间隔位于每个字节之间;
(2)响应间隔位于报头与响应之间;
(3)留给MCU足够的处理时间;
(4)帧长度可能增长;
一、字节场
1)基于SCI的通信格式;
2)每一个字节场的长度由10个定时位定时(BIT TIME);
①起始位(START BIT)是一个“显性”位,标志字节的开始;
②8为数据位,先发送最低位;
③停止位(STOP BIST)是一个“隐性”位,标志着字节场的结束。
二、报文头(HEADER FIELDS)
同步间隔(synchronisation break)
作用:标识报文的开始,由主节点发送;使得所有的从机任务和总线时钟信号同步。
间隔信号至少由13个显性位组成,之后紧随至少1个隐形位的隔界定符;
间隔界定符的作用:用来检测接下来的同步域(Synch Field)的起始位。
同步场(SYNCH FIELD)
1)确保所有从节点使用与节点相同的波特率发送和接收数据;
2)一个字节,结构固定:0X55;
标识符场(IDENTIFIER FIELD)
6个标识符位(ID0~ID5)和2个标识符奇偶校验位(P0 P1)
1)ID的范围从0到63(0x3f);
2)奇偶校验符(Parity)P0,P1;
①ID4和ID5定义了数据场的数据长度
ID5 | ID4 | 数据场的数量 |
---|---|---|
0 | 0 | 2 |
0 | 1 | 2 |
1 | 0 | 4 |
1 | 1 | 8 |
②奇偶校验位P0 P1(⊕异或运算)
三、数据场(DATE FIELDS)
1)数据场长度1到8个字节;
2)低字节先发,低位先发;
3)如果某信号长度超过1个字节采用低位在前的方式发送(小端);
四、校验和场(Checksum Field)
用于校验接收的数据是否正确
1)经典校验(Classic Checksum)仅校验数据场(LIN1.3)
2)增强校验(Enhance Checksum)校验标识符场与数据场内容(LIN2.0、LIN2.1)
LIN2.0以前 | LIN2.0以及之后 | |
---|---|---|
通讯帧 | 经典型 | 增强型 |
诊断帧 | 经典型 | 经典型 |
标识符为0x3C和0x3D的帧只能使用经典校验
算法(Classical):累加所有字节。对每次加和进行判断,如果和大于0xFF,那么就把高八位的1,与低八位相加,其实就是低八位加1(翻转八位和)。得到最后的结果后,取其反码,我们就得到了最后的校验和。
例如:采用标准型校验和,Data1 = 0x4A,Data2 = 0x55,Data3 = 0x93,Data4 = 0xE5
讲解一下上面的图,0x4A+0x55 = 0x9F这个没有疑问,再加0x93 = 0x132,很明显,超过了0xFF,分解为0x1和0x32,突出的高8位删除,加到低8位中,0x1+0x32=0x33。再加0xE5 = 0x118,又超了,0x1+0x18=0x19。取反(Not),0xE6。