四.帧的结构
LIN报文帧包括帧头(hearder)与应答(response)两部分。主机负责发送至帧头;从机负责接收帧头并作出解析,然后决定是发送应答,还是接收应答或不回复。帧在总线上的传输如下图所示:
帧头结构包括间隔场(BREAK)、同步场(SYNC)以及标识符场(PID),应答部分包括数据场(DATA)与效验和场(CHECKSUM)。标识符场唯一定义了帧的目的。而用于提供与标识符相关的帧响应的从机任务就会输送该目的。总线值“0”为显性电平、“1”为隐性电平,这点与CAN总线相类似。在总线上实行“线-与”:当总线有至少一个节点发送显性电平时,总线呈现显性电平;所有节点均发送隐性电平或者不发送信息时,总线呈隐性电平,即显性电平起着主导作用。
帧的结构
字节场:包括1 位起始位(Start Bit,显性) + 8位数据位 + 1 位停止位(Stop Bit,隐性),总计10Bit,是一种标准UART 数据传输格式,在LIN 的一帧当中,除了间隔场,其他的各场都是通过字节场的格式传输的。在LIN 帧中,数据传输都是先发送LSB(Least Significant Bit,最低有效位),最后发送MSB (Most Significant Bit,最高有效位)。
字节场
(1)间隔场(Break Field):间隔场由同步间隔(Break)和间隔界定符(Break Delimiter)构成。同步间隔是至少持续13位(以主机节点的位速率为准)的显性电平,由于帧中的所有间隔或总线空闲时都应保持隐性电平,并且帧中的任何其它字段都不会发出大于9 位的显性电平,因此同步间隔可以标志一个帧的开始。间隔界定符是至少持续1位的隐性电平。注意:同步间隔发送显性电平的下限为13 位,上限为26位(保证帧的最大传输时间THeader_Maximum在规定范围之内。)间隔界定符发送隐性电平的下限为1位,上限为14位(保证帧的最大传输时间THeader_Maximum在规定范围之内。)
间隔场
(2)同步场(Sync Byte Field):同步场是一个数据值为0x55的字节场(转换为二进制为01010101b)。即使从机任务期望是字节场,从机任务总是能够检测间隔场/同步场序列。当发生间隔场/同步场序列时,应中止正在进行的传输,并开始处理新帧。
同步场
波特率自适应:从机节点可以不采用精度高的时钟,而采用片上振荡器等精度和成本相对较低的时钟,由此带来的与主机节点时钟产生的偏差,需要通过同步场进行调整,调整的结果是使从机节点数据的波特率与主机节点一致。同步场用于同步的基准时钟为主机节点的时钟。
从机节点通过接收主机节点发出的同步场,测量起始位下降沿到第七位下降沿之间的时间,并将得到的值右移3位(除以8),计算出主机节点位速率,根据计算结果对自身的位速率重新作调整。
计算公式:1位时间=(第7位的下降沿时刻 - 起始位的下降沿时刻)/ 8
通过计算,可以得到主机节点实际传输1 位所用的时间,即波特率。
(3)标识符场(Potected Identifier Field):标识符场的前6 位叫作帧ID(Frame ID),加上两个奇偶校验位后称作受保护ID。帧ID 的范围在0x00~0x3F之间,共64 个。帧ID 标识了帧的类别和目的地,也称标识符位。从机任务对于帧头作出的反应(接收/发送/忽略应答部分)都是依据帧ID 判断的。如果帧ID 传输错误,将会导致信号无法正确到达目的地,因此引入奇偶校验位。校验公式如下,其中“⊕”代表“异或”运算,“¬”代表“取非”运算。由公式可以看出,PID 不会出现全0 或全1 的情况,因此,如果从机节点收到了“0xFF”或“0x00”,可判断为传输错误。
标识符场
奇偶检验计算公式:
P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4
P1 = ¬ (ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)
(4)数据场(Data Field):数据场可以包含1-8个字节。先发送编号最低的字节DATA1,编号依次增加至DATA8。对于拥有指定PID的帧来说,其所包含的字节数量应与发送节点和所有接受节点保持一致。
数据场
(5)检验和场(Checksum Field):校验和场是对帧中所传输的内容进行校验,校验和分为传统型校验和(Classic Checksum)及增强型校验和(Enhanced Checksum)。仅根据数据字节进行计算的校验和是传统型校验和,而根据数据字节和标识符进行计算的校验和是增强型校验和。校验方法为将校验对象的各字节作带进位二进制加法(每当结果大于等于256 时就减去255),并将所得最终的和逐位取反,以该结果作为要发送的校验和。接收方根据校验和类型,对接收数据作相同的带进位二进制加法,最终的和不取反,并将该和与接收到的校验和作加法,如果结果为0xFF,则校验和无误,这在一定程度上保证了数据传输的正确性。
检验和场