汽车电子之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)解码示意图。