LIN协议在汽车电子网络通讯中广泛使用,很多用户在解码LIN协议时,对LIN协议不同版本间的差异不太熟悉,可能导致解码中出现数据长度识别和校验混乱。
LIN协议简介
LIN的全称为Local Interconnect Network。其主要功能是为CAN总线网络提供辅助功能,适用于对总线性能要求不高的车身系统,如车门、车窗、灯光等智能传感器、执行器的连接和控制,如图1所示,为LIN总线在车身的应用。LIN是面向汽车底端分布式应用的低成本、低速率的串行通信总线,属于局部互联网,是SAE规范的汽车A类网络。
图1 LIN在车身上的应用
LIN联盟成立于1999年,并发布了LIN1.0版本。最初的成员有奥迪、宝马、克莱斯勒、摩托罗拉、博世、大众和沃尔沃等,最新的为V2.2版。如下图2为LIN协议的发展史。
图2 LIN协议的发展史
LIN协议的数据帧结构
LIN协议数据帧结构如图3所示。
图3 LIN协议数据帧结构
从图3中可以看到LIN协议数据帧结构由报文头、响应报文以及帧间隔组成。其中:
· 报文头包含同步间隙、同步域和报文标识符场(0~63);
· 响应报文由1-9个字节构成:其中2、4或8个字节的数据场和1个校验和场(LIN1.3);
· 报文帧之间有帧间间隔分隔;
· 报文与响应之间有帧内响应空间分隔;
· 最小帧间间隔和帧内响应空间均为0;
· 最大长度收到报文帧的最大长度frame_max限制。
LIN2.0相对于LIN1.3最主要的差异
· 支持最多8个字节的数据序列;
· 取消了受保护标识符中的数据长度字段,即传输长度不再受限于ID,并将最后一个字节视为校验和;
· 校验和的验算包括了受保护标识符。
· 支持自动波特率检测功能;
· 对零星帧进行了定义;
· 网络管理的定时用秒来定义,而不是用比特数来定义;
…..
对于解码来说主要关注前三点。
ZDS5000系列示波器全面支持LIN协议解码功能
致远电子ZDS全系列示波器支持LIN1.3、LIN2.0协议全内存解码功能,现在使用ZDS5054Pro输入一个LIN1.3信号,使用LIN1.3和LIN2.0协议解码会有什么样的不同效果呢?如下图4、图5所示。
图4 LIN1.3解码
图5 LIN2.0解码
解析:
使用LIN2.0解码LIN1.3协议出现“Checksum Wrong”的错误标志,代表在校验和场上解码错误,原因是LIN2.0的校验包含“标识场”和“数据场”,而LIN1.3仅仅只校验“数据场”,从而导致使用LIN2.0解码LIN1.3协议时出现校验和场数据与所校验的数据不对应,导致解码出错,如图6原理所示。
图6 LIN协议的校验和场
如图7所示,为ZDS5054Pro长时间(70s)解码示意图。