1.特点
最高20Kbps
采用单主控制器/多从设备的模式,最多可连16个节点(1个主节点,15个从节点),通信只能由主节点发起
主要应用领域是速度要求比较低的车身控制方面的应用,如车窗、车门、车镜、车椅、天窗、空调和照明等
LIN网络的基本结构:
LIN总线采用单线线路,用电平电压的高和低来定义逻辑1和逻辑0,接收器把低于电源电压40%的电平解释为逻辑0,高于电源电压60%的电平解释为逻辑1;发送器会将低于电源电压20%的电平当作逻辑0,高于电源电压80%的电平当作逻辑1。
2.通信机制
主节点发送报文头,从节点发送相应的响应,组合在一起就是一帧。
主节点根据调度表控制报文发送顺序和时序。
通信过程:
示例:假设主节点(ID 0x10)请求从节点(ID 0x20)的温度数据:
-
主节点发送Header:
同步间隔场 + 同步场 + ID 0x20
。 -
从节点0x20识别ID,发送Response:
温度数据(2字节) + 校验和
。 -
主节点接收数据并校验,若成功则更新状态,否则触发错误处理。
3.报文结构
一个报文帧是由一个主节点发送的报文头和一个主/从节点发送的响应组成的
1.报文头
报文头由一个同步间隔长、同步场和标识符场组成(主节点发出)
1.同步间隔场
同步间隔场是由至少持续13位显性总线电平的同步间隔和至少一位隐性总线电平的同步界定符组成。
同步间隔场的作用是标志着一个报文帧的开始
2.同步场
同步场由一位显性起始位、8个数据位和一个隐性结束位组成
数据位的格式是“0x55”,即 0101 0101
同步场利用下降沿(5个下降沿)进行同步,确保所有的节点保持相同的波特率发送和接收信息
3.标识符场
标识符场定义了标识和数据的长度,它由6个标识符(Identifier, ID)位和两个奇偶校验位表示
其中,⊕表示异或, −表示非
2.响应
响应包括数据场和校验和场(主/从节点发出)
1.数据场
数据场长度为1-8个字节
采用LSB发送方式(小端传输),低字节先发,低位先发
2.校验和场
校验和场是数据场所有字节的和的反码,和按“带进位加方式”计算每个进位都被加到本次结果的最低位LSB
例如:
如果是0xFF和0x01,相加为0x100,取低八位,加上进位等于0x01,取反码为0xFE
4.报文类型
1.无条件帧
定义:最基本的帧类型,用于周期性传输固定数据。由主节点触发,从节点必须响应
触发机制:主节点根据调度表定期发送帧头,对应的从节点必须在规定时间内回复数据
优先级:高,按调度表严格周期执行
用途:传输周期性传感器数据(如温度、车速)或执行器状态(如车灯开关)
2.事件触发帧
定义:事件触发帧是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化时使用的帧
触发机制:
当多个从节点可能触发同一事件(如多个车窗开关按下),主节点发送事件触发帧。
从节点仅在自身有事件时响应,否则静默。若多个节点响应,冲突后主节点转为轮询各节点的无条件帧。
用途:处理非周期性事件
特点:允许一帧中只有帧头,无应答
3.偶发帧
定义:主节点使用偶发帧来发送很少使用的信息。偶发帧相当于无条件帧,并和其他无条件帧共享一个时隙,但仅当信号变化或条件满足时触发
触发机制:
主节点根据信号更新状态决定是否发送帧头,从节点返回最新数据
通常用于传输低频变化数据(如燃油液位)
用途:传输非周期性但需及时更新的数据
4.诊断帧
LIN协议定义了两种诊断帧:主请求帧和从属响应帧
定义:用于系统诊断、配置或故障排查,支持主从节点间的长数据交互
结构:
诊断请求帧:ID=0x3C(主节点发送),包含诊断命令(如读故障码)
诊断响应帧:ID=0x3D(从节点回复),包含响应数据
数据段可扩展为多帧传输
触发机制:
主节点发送0x3C帧头 + 自身填充诊断命令数据
主节点发送0x3D帧头,触发从节点回复诊断响应数据
示例:
主节点发送诊断请求:
主节点发送帧头(Header),包含同步间隔、同步字节(0x55)和PID=0x3C
帧响应(Response)由主节点自身发送(因为从节点无法直接响应0x3C的请  求),包含诊断命令和数据
从节点回复诊断响应:
主节点接着发送另一个帧头(PID=0x3D),触发被诊断的从节点回复响应
从节点发送响应数据段,包含诊断结果(如故障码、配置参数等)。
用途:读取故障码(DTC)、刷新配置、固件升级。
主节点发送PID=0x3C报文头,主节点发送诊断命令;然后主节点发送PID=0x3D报文头,从节点发出响应
诊断请求和诊断响应是两次通信过程
5.帧响应结构
无论是主节点还是从节点的帧响应,其第一个字节总是需要配置或诊断的从节点的正式节点地址(NAD)
帧响应的第二个字节是“协议控制信息(PCI)”,它提供有关传输模式的信息(分段传输还是未分段传输)
当数据长度超过8个字节时,就需要采用“分段传输”的传输方式。在这种情况下,数据被分成几段后被分配给多个帧。这个段系列的首帧被称为“第一帧(FF)”,而所有后续的帧都被称作“连续帧(CF)”,整个数据块的大小显示在“第一帧”中