一、LIN总线帧结构
一个完整的LIN总线报文帧“Message Frame”包含报头“Header”和响应“Response”,主任务发送报头,从任务用响应来补充报头形成完整的报文。
其中帧头包括间隔场、同步段以及标识符场,应答包括数据段和校验和场。每个字节之间存在字节间隔(Inter-byte Space);在报头与响应之间存在响应间隔(Response Space);两帧LIN报文之间存在帧间间隔(Inter-frame Space)。下面将详细介绍每个段的具体内容格式。
1.间隔场
间隔场由间隔信号和间隔界定符组成。间隔场表示一帧报文的起始,由主节点发出。间隔信号至少由13个显性位组成,间隔界定符至少由1个隐形位组成。间隔场是唯一一个不符合字节场格式的场,从节点需要检测到至少连续11个显性位才认为是间隔信号。
2.同步场
同步场顾名思义它的作用是确保所有从节点使用与主节点相同的波特率发送和接收数据,以下降沿为判断标志,同步段采用一个固定的字节结构0X55。从节点通过接收主节点发出的同步段,计算出主节点位速率,根据计算结果对自身的位速率重新作调整。计算公式如下:1位时间 =(第7位的下降沿时刻 - 起始位的下降沿时刻)/ 8
3.标识符场
标识符场由两部分组成,受保护 ID 段的前 6 位叫作帧 ID(Frame ID),加上两个奇偶校验位后称作受保护 ID段。
帧ID的范围在0x00~0x3F之间,共64个。帧ID标识了帧的类别和目的地。从任务对于帧头作出的反应(接收/发送/忽略应答部分)都是依据帧ID判断的。如果帧ID传输错误,将会导致信号无法正确到达目的地,因此引入奇偶校验位。校验公式如下,其中“⊕”代表“异或”运算,“¬”代表“取非”运算。
P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4
P1 = ¬ (ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)
4.数据场
数据场用于存储节点发送的数据,数据场长度1到8个字节,采用低字节先发,低位先发策略,如果某一信号长度超过1个字节,采用低位在前的方式发送。
5.校验和场
检验和场用于校验接收到的数据是否正确。校验分为经典校验(Classic Checksum)和增强校验(Enhance Checksum)。经典校验仅校验数据场,适用于诊断帧和与 LIN1.x 从机节点通信;增强校验校验标识符场和数据场,适用于与 LIN2.x 从机节点通信(诊断帧除外)。采用标准型校验和还是增强型校验和由主机节点管理,发布节点和各收听节点根据帧ID来判断采用哪种校验和。
二、LIN总线帧结构干扰——LIN总线帧结构及各场干扰 下
图片来源:LIN Specification Package Revision 2.1以及Vector