LIN总线协议
01、背景
该组织于1999年发布了LIN协议(1.0)并在2000年进行了两次更新。2002年11月,发布了LIN 1.3,主要是对物理层进行了修改,提高了节点之间的兼容性。2003年发布了最新的版本LIN 2.0,其中包括一些重大更新,同时引入了一些新特性(例如诊断功能)。这些更新的主要目标是简化量产从节点的使用。
02、应用领域
03、协议简介
◉ LIN物理层基于ISO 9141(K-line)◉ 主从式结构◉ 单线加上地线◉ 时间触发的调度◉ 1-20 kb/s◉ 显性/隐性位◉ 按字节的串行通信◉ 线长不得超过40米◉ 标准由LIN组织定义
04、物理属性

在总线上,一个逻辑低位(0)为显性,一个逻辑高位(1)为隐性。
ECU的供电电压(Vsup)应该在7 V和18 V之间。图2显示总线逻辑位解释的限制。

05、数据传输
主节点为控制方,确保以正确的时间间隔和周期发送数据帧,并且每个帧都在总线上获得足够的时间片。这种时间调度方法基于下载到主节点软件的LCF(LIN配置文件)。
所有数据都通过一个包含帧头、响应和一些响应间隔的帧进行发送,因此从节点有时间进行应答。每个帧都发送到LCF确定的数据帧槽中。
主节点发送包含帧头的帧时,创建新的报文。然后从节点根据主节点发送的帧头在帧中填充数据。

有三种不同的方法可以在总线上传输帧:无条件帧、事件触发帧和零星帧。
无条件帧
这是“常规”类型的LIN通信。主节点在设置好的帧槽中发送一个帧头,然后指定的从节点为该帧填充数据。事件触发帧
这种方法的目的是在不令总线上帧过载的情况下从从节点接受极可能多的信息。可以在事件触发帧中填充来自多个从节点的数据。从节点仅在值发生改变时才更新事件触发帧中的数据。如果多个从节点想要更新帧中的数据,会发生冲突。这种情况下,主节点应向每个从节点发送无条件帧(从优先级最高的节点开始)。零星帧
这种方法为本来静态的LIN协议提供一些动态行为。仅当主节点知道从节点中信号发生更新时,才发送零星帧的帧头。通常,主节点填充帧本身的数据字节,从节点是信息的接收方。
06、字节字段的定义

主节点任务
主节点发送的帧(头)包含三个部分:同步间隔字段、同步字节字段和一个标识符字段。每个部分都以一个起始位开始,以一个结束位结束。同步间隔字段表示报文的开始,至少13个显性位(包括起始位)。同步间隔以一个“间隔分隔符”结束,该分隔符至少包含一个隐性位。

发送同步字节字段来确定两个下降沿之间的时间,从而确定主节点使用的传输速率。位模式是0x55(01010101,最大下降沿数量)。这对于兼容量产从节点尤其有用。

标识符字段包含6位长的标识符和两个奇偶校验位。6位标识符包含关于发送方和接收方的信息,以及响应中要求的字节数。奇偶校验位如下进行计算:校验位P0是ID0、ID1、ID2和ID4之间进行逻辑“或”运算的结果。校验位P1是ID1、ID3、ID4和ID5之间逻辑“或”运算后再进行反转的结果。


根据主节点发送的标识符的两个MSB(最高有效位),从节点的响应(数据字段)可以是2、4或8字节长。在LIN 2.0中才提供这个能力,以前的版本只有8字节的静态长度。

从节点任务
从节点等待同步间隔字段,然后通过同步字节字段开始主从节点之间的同步。根据主节点发送的标识符,从节点将进行接收、发送或什么都不做。应该进行发送的从节点发送主节点请求的字节数,然后以一个检验和字段结束传输。有两种不同类型的检验和。LIN 1.3中使用传统的检验和,包含报文中所有数据字节(8个字节)的反转八位和。LIN 2.0中使用的新检验和在检验和计算中加入了保护的标识符。反转八位和与modulo-256不同。每次所得和大于256时,就减去255。例如,对于240+32=272,和为272,然后执行272-255=17,得到的检验和为17。
为了节约电力,总线4秒钟没有活动或者主节点发送休眠命令后,从节点将进入休眠模式。通过总线上的显性位(所有节点都可创建)把从节点从休眠模式中唤醒。
07、诊断
基于信号的诊断
基于信号的诊断是最简单的方法,在普通帧中使用标准信号,有以下特性:◉ 从节点上负载较低◉ 标准化的概念◉ 静态,没有灵活性
用户定义的诊断
用户定义的诊断可用来满足特定设备的要求,但是这同时表示它不能用作通用目的。这种方法使用128到255范围的NAD。诊断传输层
对于基于CAN的系统(使用ISO诊断)之上构建的LIN网络,可以使用这种方法。此方法使用NAD 1到127,具备以下特性:◉ 主设备上负载较低◉ 为LIN从节点提供ISO诊断◉ 用于更复杂和强大的LIN节点



诊断响应帧以类似的方式构建,响应服务标识符(RSID)指定响应的内容。


08、版本兼容性