从图3中可以看到LIN协议数据帧结构由报文头、响应报文以及帧间隔组成。其中:
1、报文头包含同步间隙、同步域和报文标识符场(0~63)。
2、响应报文由1-9个字节构成:其中2、4或8个字节的数据场和1个校验和场(LIN1.3)。
3、报文帧之间有帧间间隔分隔。
4、报文与响应之间有帧内响应空间分隔。
5、最小帧间间隔和帧内响应空间均为0。
6、最大长度收到报文帧的最大长度frame_max限制。
那为什么用户解码LIN协议会出现数据长度识别错误和校验解码出错问题呢?原因是使用了与输入信号不对应的LIN协议版本进行解码,不同版本的LIN协议存在差异,如下所述。
三、LIN2.0相对于LIN1.3最主要的差异
支持最多8个字节的数据序列。
取消了受保护标识符中的数据长度字段,即传输长度不再受限于ID,并将最后一个字节视为校验和。
校验和的验算包括了受保护标识符。
支持自动波特率检测功能。