Lin 通信协议
一.简介
LIN(Local Interconnect Network) 是一种基于 uart 的低成本串行通信协议,是单总线协议,总线电平一般为12V,传输速率最高为20kbps。常见于汽车主机和各个设备之间的通信。如“前大灯”、“转向信号”、“雨刮器”、“空调”、“雨刮器”等这些设备的控制大都是使用 LIN 通信的。
二.网络构成
整个汽车系统中,LIN网络往往与CAN(Controller Area Network,控制器局域网)总线相连,作为CAN网络的子网络,或者说是一种补充。之所以这么做是因为LIN通信的成本相比于CAN更低,LIN总线的速率虽然较低,最大为20Kbps,CAN总线最高可达1Mbps,但是LIN用于控制“前大灯”、“转向信号”、“雨刮器”、“空调”、“雨刮器”这些设备,通信速率是足够的。
三.数据传输段
LIN 数据以帧为单位,每一帧由“同步间隔段”、“同步段”、“受保护ID段”、“数据段”、“校验和段”组成。其中“同步间隔段”、“同步段”、“受保护ID段”组合在一起作为帧头。“数据段”、“校验和段”组合在一起作为应答。帧头由主机发送。从机被动接收帧头,并判断是否返回应答数据,或接收之后紧跟的应答数据。
1.同步间隔段
(特殊的数据传输格式)同步间隔段需要至少持续 13 位时钟时间的低电平,然后紧跟至少持续 1 位时钟时间的高电平。
2.同步段
(标准 UART 数据传输格式)固定值0x55,转换为二进制为 01010101。同步段可以用于同步基准时钟,保持与主机节点的时钟一样。
3.受保护ID段
(标准 UART 数据传输格式)受保护 ID 段的前 6 位叫作帧 ID,加上两个奇偶校验位后称作受保护 ID。帧 ID 的范围在 0x00~0x3F 之间,共 64 个。不会出现全 0 或全 1 的情况,如果从机节点收到了“0xFF”或“0x00”,可判断为传输错误。
校验位计算公式如下:
P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4
P1 = ~(ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)
不同的帧 ID 代表不同帧类型:
4.数据段
(标准 UART 数据传输格式)一帧LIN数据,包含一个或多个数据段,低字节先发送,高字节后发送。数据段内容所包含的意义由开发者自定义。
5.校验和段
校验和分为标准型校验和与增强型校验和。
- 标准型校验和的校验对象:数据段各字节。
- 增强型校验和的校验对象:数据段各字节以及受保护 ID。
校验和段对帧中所传输的内容进行校验。校验方法为将校验对象的各字节作带进位二进制加法(每当结果大于等于 256 时就减去 255),并将所得最终的和逐位取反,以该结果作为要发送的校验和。
四.LIN节点
主机节点包含主机任务和从机任务,从机节点只包含从机任务。下图为 LIN 总线拓扑图:
主机任务
主机任务会发送帧头(同步间隔段、同步段和受保护 ID 段)。下图为主机任务状态机:
从机任务
从机任务接收主机发送的帧头,根据帧头所包含的信息判断是否发送应答/接收应答/不回应。下图为从机任务状态机:
五.LIN总线上的一帧数据构成
当主机节点发送数据时,主机节点的主机任务会发送帧头,主机节点的从机任务会发送应答数据。从机节点处于静默状态,不回去动总线,被动接收数据。在LIN总线上拟合的数据波形即为主机节点的发送波形。
从机节点不会主动发送数据,需要主机节点的主机任务发送对应的帧头,从机节点的从机任务会根据总线上的帧头判断是否需要发送应答数据,如果判断需要发送数据,就会发送“数据段”,”校验和段“。在LIN总线上拟合的数据波形即为主机节点的发送波形+从机节点的发送波形。
六.总结
LIN 通信协议的主要优势在于其简单性、成本效益和可靠性,特别适用于低速、低成本的车辆内部通信。
- 低成本:LIN协议设计用于替代更复杂、更昂贵的网络系统,如CAN(Controller Area Network)。它使用单线传输和简单的节点硬件,显著降低了系统成本。
- 简单的网络结构:LIN网络的结构简单,易于设计和实现。这使得它适合于控制汽车中的简单设备,如窗户调节器、门锁等。
- 较低的资源要求:与其他更复杂的通信协议相比,LIN节点需要的计算资源较少,因此可以使用更便宜、更低性能的微控制器。
- 易于集成和扩展:LIN协议可以轻松集成到现有的汽车电子系统中,并且可以与其他网络协议(如CAN)一起工作,为更复杂的系统提供辅助通信通道。
- 适合低速通信:LIN协议适合于不需要高速数据传输的应用,如传感器数据读取和执行器控制。
- 确定性的通信:通过主节点的定时控制,LIN网络提供了确定性的通信,这对于确保消息在预定时间内传递非常重要。
- 可靠性:尽管简单,LIN协议还是提供了基本的错误检测和校验机制,以保证通信的可靠性。
- 标准化:作为一个国际标准,LIN协议享有广泛的行业支持和兼容性,确保了不同供应商的设备可以无缝协作。
这些优势使得LIN协议非常适合用于汽车中的非关键性应用,以及其他需要成本效益和简单网络结构的场合。