LIN(Local Interconnect Network)是一种基于UART/SCI(通用异步收发器/串行通信接口)的低成本串行通信协议。它广泛应用于汽车电子系统中,尤其适合座椅、车门、空调等控制模块之间的通信。LIN通常不单独使用,而是与CAN总线配合使用,构成CAN-LIN网关结构,实现整车网络的层次化管理。

本文将从LIN的发展历史、主要特点、通信机制及其实现方式四个方面,带你快速了解LIN总线的基础知识。
#01
LIN总线的发展历史
LIN总线的构想最早出现在1998年10月的德国Baden汽车电子会议上。1999年,LIN联盟正式成立,创始成员包括奥迪、宝马、克莱斯勒、摩托罗拉、博世、大众和沃尔沃等知名汽车与电子企业。
2000年,LIN联盟开始接收第一批成员;
2001年,首辆搭载LIN总线的汽车下线;
2002年,发布LIN规范V1.3;
2003年,发布LIN规范V2.0;
2006年,发布LIN标准规范V2.1;
2010年,发布LIN规范包Revision 2.2A。

LIN总线的发展逐步完善,现已成为汽车车身网络通信的重要标准之一。
#02
LIN总线的主要特点
LIN总线之所以能在汽车电子领域广泛应用,主要得益于以下几个显著特点:
1. 成本低、实现简单
LIN基于通用的UART接口,几乎所有微控制器都支持,无需额外复杂硬件,降低了系统成本。通信只需一根信号线,辅以电源线和地线,大大减少了线束数量和布线复杂度。
2. 协议简洁,易于开发
LIN协议结构简单,对MCU性能要求低,软件实现容易,开发周期短,便于维护和升级。新增节点时无需更改现有从节点的软硬件,系统扩展性强。
3. 单主多从架构
LIN采用单主多从结构,一个主节点最多可连接15个从节点。主节点负责调度通信,确保数据传输的有序性和确定性,从节点只能在主节点授权下响应,避免总线冲突。

4. 通信速率适中,抗干扰能力强
LIN的最大传输速率为20Kbit/s,常用速率为9.6Kbit/s、10.4Kbit/s或19.2Kbit/s,适用于对速率要求不高的场景。由于采用单线通信和较低速率,LIN在汽车电气环境中具备良好的抗干扰能力,通信稳定可靠。
5. 应用场景广泛
LIN总线主要用于以下汽车控制系统:
- 车身控制:如车窗升降、车门锁、座椅调节、后视镜控制等;
- 空调系统:温度调节、风量控制、风向调整等;
- 照明系统:车内外灯光控制,如自动大灯、氛围灯等;
- 雨刮系统:根据雨量传感器信号自动控制雨刮速度。

了解了LIN总线的这些特点,以及在汽车控制器的应用情况,下面通过LIN总线的通讯原理做更近一步的了解。
#03
LIN总线的通信机制
LIN总线采用“单主多从”的通信机制,由主节点控制整个网络的通信节奏,从节点只能在主节点允许的情况下发送数据,从而避免总线冲突。

以电车作为例子介绍LIN通信的这些特征。电车从始发站开始按照时刻表出发。这个时刻表是为了不让电车发生碰撞决定出发时间的。同时,乘客在车站等待电车,等待的电车到了后,上车,向目的地移动。

LIN也是按照这种方式进行通信的。按照事先定义好的“传送时刻表”进行数据的发送。因此,不会发生冲突,各个节点按照一定的间隔进行数据的传送与接收。这样的方式也不会造成bus的过负载,实现稳定的通信。
3.1. LIN报文帧结构
LIN通信通过“报文帧”进行,每帧由“帧头”和“应答”两部分组成:

帧头(由主节点发送):
- 同步间隔段:至少13位显性电平,后跟1位隐性电平,标志帧的开始;
- 同步段:发送0x55,用于从节点同步时钟;
- PID段(受保护ID):前6位为帧ID,后2位为奇偶校验位,用于识别帧类型和确保数据完整性。

应答(由从节点发送):
- 数据段:长度1~8字节,包含控制指令或状态信息;协议未规定数据长度码,协议中并没有规定哪一部分显示数据长度码的信息,数据的内容与长度均是由系统设计者根据帧ID事先约定好的。
- 校验和段:用于校验数据传输的正确性,分为标准型和增强型。通常采用带进位的二进制加法并取反的方式生成校验和。

3.2. LIN通信过程示例
以车窗控制系统为例:
- 主节点(如车身控制模块)负责调度通信;
- 从节点(如车窗电机)根据主节点指令执行动作;
用户按下车窗按钮,主节点发送帧头,包含同步信息和帧ID;
从节点接收到帧头后,解析指令并执行,如“车窗升至80%”;
同时,从节点将执行结果(如“已升至80%”)回传主节点;
通信过程中,校验和机制确保数据传输的准确性;
通信结束时,帧尾标志本次通信结束。

LIN总线使用“显性电平”(逻辑0)和“隐性电平”(逻辑1)进行通信。显性电平具有优先权,当总线上有一个节点发送显性电平时,总线即为显性状态;只有当所有节点都发送隐性电平或不发送时,总线才为隐性状态。这一机制与CAN总线类似,有助于冲突检测和总线仲裁。
3.3. LIN报文帧类型
LIN总线通信中,根据数据传输的不同需求和应用场景,定义了多种帧类型。主要包括无条件帧、事件触发帧、零星帧(偶发帧)、诊断帧和保留帧。下面分别进行详细介绍:
1)无条件帧(Unconditional Frame)
无条件帧是LIN总线中最常用、最基本的帧类型。它的特点是:
- 使用频度最高,无任何发送条件限制;
- 帧ID范围:0到59(0x00~0x3B);
- 通信方式:主节点发送报头,一个从节点负责响应,其他节点接收。如下所示:
帧ID | 发布节点(响应节点) | 收听节点 | 典型应用场景 |
0x30 | 从机节点1 | 主机节点 | 从机节点1向主机节点报告自身状态 |
0x31 | 主机节点 | 从机节点1、2 | 主机节点向多个从机节点发布信息 |
0x32 | 从机节点2 | 从机节点1 | 从机节点之间彼此通信 |
无条件帧适用于节点之间周期性、确定性的数据传输,通信过程简单可靠。
2)事件触发帧(Event-triggered Frame)
事件触发帧的引入,主要是为了节省总线带宽,避免不必要的周期性查询。这里以一个例子来说明:假设车身控制模块(BCM,主节点)需要实时获取4个车门的状态信息。
此时,事件触发帧的响应可能出现以下三种情况:
情况 | 描述 | 处理方式 |
无车门状态变化 | 无节点响应 | 主节点无需进一步处理 |
一个车门状态变化 | 对应车门节点响应 | 主节点接收响应并处理 |
多个车门状态变化 | 多个节点同时响应,产生冲突 | 主节点检测到冲突后,切换为传统方式,分别单独请求每个车门状态 |
这里需要注意2点:
LIN 1.3版本在冲突发生时,不切换调度表,仍在原事件触发帧时隙内处理;
LIN 2.0和LIN 2.1版本则在冲突发生时,主动切换至冲突处理调度表,分别单独请求每个车门状态,避免冲突再次发生。
3)零星帧(偶发帧,Sporadic Frame)
零星帧(也称偶发帧)的引入,同样是为了节省总线带宽,适用于主节点偶尔需要发送的控制指令。比如车身控制模块(BCM,主节点)需要控制4个车窗的升降,但通常不会同时控制多个车窗。如果采用传统方式,每次分别发送控制帧,会浪费大量带宽。而如果使用零星帧,主节点仅在需要时才发送偶发帧,控制对应车窗动作。这样,总线带宽得到有效利用,通信效率更高。
零星帧适用于主节点偶尔发送、非周期性控制指令的场景。
4)诊断帧(Diagnostic Frame)
诊断帧用于传输诊断或配置信息,通常用于节点初始化、故障诊断、参数配置等特殊场景。
- 帧ID:
主请求帧:0x3C(60)
从响应帧:0x3D(61)
- 数据长度:一般为8个字节;
- 通信方式:主节点发送诊断请求帧,从节点接收并执行诊断操作后,返回诊断响应帧。
诊断帧的使用,使得LIN网络具备强大的诊断和配置能力,便于系统维护和故障排查。
5)保留帧(Reserved Frame)
保留帧的帧ID为0x3E(62)和0x3F(63),在LIN 2.1规范中未明确定义其用途,留给用户自定义特殊功能,或用于未来LIN协议版本升级扩展。
#04
LIN总线的实现方式
LIN通信的实现可分为硬件和软件两个层面。
4.1. 硬件实现
LIN通信的基本硬件组成包括:
- 微控制器(MCU):负责实现LIN协议栈,如帧的生成、发送与接收;
- LIN收发器:实现MCU与总线之间的信号转换;以下是各主流厂商中最常用的一款LIN收发器型号,经过优化整理,便于快速对比和选型:
厂商 | 常用型号 | 主要特点 | 典型应用 |
NXP | TJA1021 | 市场主流,支持本地/远程唤醒,INH引脚,低功耗,广泛兼容 | 车身控制、车门、座椅、空调等 |
TI | TLIN1021A | 功能安全型,AEC-Q100认证,支持唤醒,性能稳定可靠 | 汽车辅助系统、后视镜、座椅控制 |
Infineon | TLE7259 | 支持本地唤醒,低功耗,与TJA1021兼容,可靠性高 | 车身电子、照明控制 |
ON Semiconductor | NCV7321 | 与TJA1021兼容,性价比高,可靠性好 | 车门模块、车窗控制 |
ROHM | BD41033FJ-C | 车规级,具备过温保护、显性超时保护、总线限流功能 | 小型电机控制、车身控制 |
- 总线线路:连接各节点,实现物理层数据传输。

4.2. 软件实现(基于AUTOSAR架构)
在AUTOSAR架构中,LIN通信的软件实现主要包括以下几个模块:

- MCAL层(Microcontroller Abstraction Layer):包含LIN驱动,负责访问硬件并实现协议栈;
- LIN接口模块(LINIf):提供统一接口,供上层模块与LIN总线交互;
- LIN传输层模块(LinTp):负责数据打包与解包,处理帧格式、校验等;
- LIN网络管理模块(LinNM):实现节点休眠与唤醒机制;
- LIN状态管理器(LinSM):控制通信的启停,管理通信模式。
对于LIN通讯来说,软件主要要实现以下几个方面的内容:
首先是初始化,即系统启动时配置LIN模块,包括波特率、帧格式、校验方式等;
然后是报文的收发,对于报文发送,上层调用LINIf接口,LinTp打包数据,驱动发送帧;而对于报文接收,则是驱动接收帧并校验,LinTp解包后传递给上层;
接着是网络状态管理,这里需要LinSM与LinNM协同控制通信状态,比如休眠与唤醒;
最后是与诊断支持相关,需要通过诊断帧实现主机对从机的诊断与配置。
#05
总 结
LIN总线作为一种低成本、易于实现的通信协议,在汽车电子系统中发挥着重要作用。它通过简单的硬件结构和清晰的通信机制,实现了车身控制、空调、照明等系统的可靠通信。
本文从LIN的历史、特点、通信机制到实现方式,系统地介绍了LIN总线的基础知识。对于希望深入了解LIN协议的读者,推荐参考Vector的在线学习资源,进一步掌握LIN的高级应用与开发技巧。
/ END /
转载自公众号:汽车电子与软件作者:糊涂振原文链接:https://mp.weixin.qq.com/s/c-hOzfNsTs8XOwyeTbQpYg
