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