本文引用地址:http://www.eepw.com.cn/article/201612/328875.htm
1、信号报文
——信号位于帧的数据场中,以数字或数组的形式出现
——同一种信号在相同ID的报文数据场中的位置总是固定的
2、诊断报文
——诊断报文由两个保留ID来传输,用来传输节点的诊断信息
而这些数据在LIN总线上进行传送的实体就是帧。
下面是LIN报文传输的原理及方式:
-
通信原理:主任务发送报头,从任务用响应来补充报头形成完整的报文
-
系统灵活性:可以*地增减从节点,而不需要改变其它从节点的软件和硬件
-
报文传输:报文的内容由ID来定义(跟CAN相似)
-
广播:所有节点都能够同时地接受和响应总线上的帧
现在让我们来了解一下LIN报文帧的结构。
-
帧由一个报头(由主机任务提供)和一个帧响应(由从机任务提供)组成。
-
报头包括同步间隔场、同步场和标识符场三个部分;标识符场位置在间隔场和同步场之后。标识符唯一定义了帧的目的。而用于提供与标识符相关的帧响应的从机任务就会输送该目的,过程如上文所示。
-
帧响应由于数据场和校验和场组成。如果从机任务对标识符有关的数据感兴趣,那么它就可以接收这个响应,核实校验和,并使用这些被传送过来的数据。
下图就是LIN报文帧的结构。
其中,除了间隔场以外,其余的场都遵循字节场的格式。
LIN总线是基于SCI的通信格式,字节场以起始位开始,以结束位结束,中间是8个位的数据,所以与CAN总线不同的是,在LIN总线通信中发送一个字节需要10个位时间。
字节场的格式如下图所示。
接下来我们会详细的介绍报头中每一个场的结构。
1间隔场(Break Field)
-
表示一帧报文的起始,由主节点发出
-
间隔信号至少由13个显性位组成,间隔界定符至少由1个隐性位组成
-
间隔场是唯一一个不符合字节场格式的场
-
从节点需要检测到至少连续11个显性位才认为是间隔信号
-
确保所有从节点使用与主节点相同的波特率发送和接收数据
-
一个字节,结构固定: 0X55
-
标识符即ID,起始位之后的6位数据为帧ID,帧ID的范围从0到63(0x3F)
-
奇偶校验符(Parity) P0,P1
4字节间隔与响应间隔
字节间隔位于每个字节之间,响应间隔位于报头与响应之间。
-
留给MCU足够的处理时间
-
帧长度可能增长
-
最小值可以是0
5数据场(Data Field)
-
数据场长度1到8个字节
-
低字节先发,低位先发
-
如果某一信号长度超过1个字节,采用低位在前的方式发送(小端)
6校验和场(Checksum Field)
-
用于校验接收的数据是否正确(1个字节)
-
经典校验(Classic Checksum):仅校验数据场(1.3)
-
增强校验(Enhance Checksum):校验标识符场与数据场内容(2.0)
-
标识符为0x3C(60)和0x3D(61)的帧只能使用经典校验
-
翻转八位和(inverted eight bit sum)
例:Data = 0x4A, 0x55, 0x93, 0xE5;Checksum = 0xE6。
7帧长度(Frame Length)