问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

一文梳理LIN协议与应用

创作时间:
作者:
@小白创作中心

一文梳理LIN协议与应用

引用
CSDN
1.
https://m.blog.csdn.net/brillian_green/article/details/136300380

一、LIN是什么?有什么用?

LIN 是Local Interconnect Network 的缩写,意为本地互联网络,主要用于嵌入式开发领域的通信,如汽车、家电、工业自动化等。在车载领域,LIN通常作为CAN网络的一个子网络存在。从应用层来说,LIN主要有两个作用:信号处理和消息分发。在协议层,信号和消息位于帧中的数据段,是节点向其他节点传达的实质信息。信号被包含在“信号携带帧”中,消息被包含在“诊断帧”中。

二、LIN概要描述

2.1 特点

2.1.1 低成本

LIN是一个低成本的通信协议,因为在物理层LIN总线使用一根线作为介质,且实际使用中通常为一根铜线。与CAN或I2C协议的两根线相比,减少了线的长度与重量。

2.1.2 易扩展

基于UART/SCI(通用异步收发器/串行通信接口),所以支持了大部分的半导体零件,从硬件角度讲,LIN网络的扩展,基本没有额外成本。

2.1.3 速率一般,不高

最高位速率限制在20kbps,物理层受电磁干扰的影响,速率不能太快。

2.2 网络形态

LIN通信以主从模式设计。车载开发中,主机节点一般就是MCU了,从机节点例如:车门、氛围灯、雨刷器、大灯等。主机节点包含主机任务、从机任务。从机节点只包含从机任务。

2.3 架构分层

简单画了个图,严格来说不是太准确哈,不过也够用,先简单这么理解吧,有个印象就行。学过OSI七层网络模型的,这个就比较简单了,不想赘述。

三、应用层 4 大功能

  1. 配置
  2. 识别
  3. 信号处理
  4. 诊断

3.1 配置

LIN网络使用主从模式,通信时无外乎三种场景:

  • 主 --> 从
  • 从 --> 主
  • 从1 --> 从2

不论是哪种,先要解决一个问题:当前信息持有者把发数据发到总线上后,接收方如何判断自己是否要处理此数据?

这个问题翻译一下:数据发到总线上,就是主机节点发送了一个帧头,其中包含了一个PID,PID是此帧的标识。从机节点需要判断此PID我是否关心、是否需要处理,也就是需要一个从机节点与要处理的PID的对应关系。

简单来说,配置就是建立从机节点与要处理的帧(PID)的对应关系。

配置功能总体说明图:

  • 对于一个物理从机节点来说,其中有一个从机任务(软件层面),一个接口(硬件层面)。
  • 收到总线上的帧头(PID)后由逻辑节点来进行处理,一个节点中可以有多个逻辑节点。
  • 逻辑节点由NAD进行标识。
  • 一个逻辑节点(NAD)可以配置多个PID
  • 一个PID—>NAD配对,叫一个配置项
  • 网络运行时,一个逻辑节点中 只有一个配置项生效。也就是,运行时一个NAD只能处理一个PID的帧。

配置就是配置:NAD与PID的对应关系。

配置功能是指LIN 的主机节点能自动地给所有逻辑节点选择配置项,消除NAD 和PID 分配中存在的冲突,使网络正常工作。配置功能是确保各节点协调运作的内部功能,包含分配NAD、分配PID 等服务。

分配NAD、分配PID 等,使用 LIN 产品代号做为标识,判断是给哪个节点配置。

配置的目的是:给某个节点配置,它所能够处理哪种信号(哪种帧),也就是业务分角色承担。

3.2 识别(查询功能)

识别是主机向从机查询信息用的。默认定义了两个:

  • 识别ID = 0时,查从机的LIN产品ID
  • 识别ID = 1时,查从机的序列号
  • 识别ID = 32-63,用户可以自定义。

3.3 信号处理

信号处理是不经过传输层的,也就是上面说的架构图不准确的地方。

应用层直接与协议层交互,信号通过协议层的“信号携带帧”通信。

3.4 诊断

诊断功能是LIN 网络作为一个整体对外呈现的可配置、可访问的属性。应用于汽车维修,查找故障的场景。

四、协议层介绍

4.1 帧的结构

Header由主机任务发出,Response由从机任务回复。

  • Break:标识一帧的开始
  • Synch:调整从机节点的数据位速率与主机节点一致。主机的时钟需要高精度,从机节点时钟不需要高精度。
  • Protected identifier:受保护的ID段(8位) = 帧ID(6位) + 校验位(2位),就是上面提到的PID。
  • PID 标识了帧的类别和目的地。
  • Data1~DataN:一个Data块 占一个字节,包括两种数据类型:信号和诊断消息。
  • 一个PID对应的数据可能包含一个或多个信号。
  • Checksum:校验用

4.2 帧的类型

4.2.1 信号携带帧——无条件帧(Unconditional Frame)

发送方:主机任务,单一发送节点

发送时机:帧时隙

应答方:从机任务

总线上一旦有帧头发送出去,必须有从机任务作应答(即无条件发送应答),这个无条件更多的是指从机状态是否变化。无论从机状态变没变,只要收到了无条件帧就要回复。

4.2.2 信号携带帧——事件触发帧(Event Triggered Frame)

使用场景:主机节点查询各从机节点的状态是否发生变化时使用

事件触发帧,与无条帧不同的是:当从机节点状态没有发生变化时,不用回复帧。只有在状态发生变化时,才回复。降低了总线的负载。

举例:当前4个车门全是关闭状态,想检测哪个车门开了。需要轮询四个车门,查询开关状态:

  1. 如果使用无条件帧的话,主机节点下发一次查询,即使当前4个车门全部都是关的,每个车门都要回复一下,总线上就跑了4帧回复数据。如果4个车门一直没有变化,这种情况将持续下去。
  2. 如果使用事件触发帧,主机节点下发一次查询,当前4个车门全部都是关的,无变化,那么就不会回复。事件触发帧允许一帧中只有帧头无应答;,此时总线只有一帧主机节点下发的事件触发帧,还只有帧头。这样在轮询过程中,此种场景下,将大大减少总线的负载。

适用的场景:从机节点状态变化频率低,主机节点需要查询状态变化时。

当多个从机节点,同时回复时,会产生冲突,为了解决冲突,引用了【与“事件触发帧”相关联的无条件帧】这个概念:

4.2.2.1 与“事件触发帧”相关联的无条件帧:

比如,原来用一个无条件帧A来询问前左车门的开关状态,

现在,主机使用一个事件触发帧B来查询前左车门车门状态。

那么,对于前左车门来说,原来用于回复无条件帧A的那段数据,和现在用于回复这个事件触发帧B的数据,它们是一样的。(即事件触发帧的应答部分是与其关联的无条件帧所提供的应答的。)

此时我们称这个“无条件帧A”,是与B关联的无条件帧。

4.2.2.2 事件触发帧发生冲突时,如何解决?

考虑场景:主机发送一事件触发帧查询4个车门的开关情况,此时左前和右前两个从机都开门了,信号发生变化,同时应答,发生冲突了。

此时,LIN启用冲突解决调度表,按序给4个车门发送【与“事件触发帧”相关联的无条件帧】,4个车门再依次重新进行应答(类似轮询)。

可能存在疑问,这不就退回为无条件帧的轮询了吗?

不一样。原因如下:

  • 一、事件触发帧的针对场景是,从机节点发生变化频率较低时,也意味着 事件触发帧发生冲突的概率是比较低的。
  • 二、通过使用冲突解决调度表来处理冲突,LIN协议能够在保持简单性的同时,提供一定的可靠性和鲁棒性。
  • 三、可能会牺牲一点点效率,以确保数据的正确传输。但是它只进行一次对与冲突相关的节点的轮询,当解决了此次的冲突后,就会恢复正常工作。与无条件帧轮询方案相比,这点小牺牲可以忽略不计了。

需要轮询的从机节点越多时,从机节点变化的频率越低,事件触发帧的优势越明显。

4.2.3 信号携带帧——偶发帧(Sporadic Frame)

发送方:只能主机节点

发送时机:同一帧时隙,自身发生变化时

当主机有多个因素,或状态发生变化时,按照事先定义好的优先级进行发送应答(使用主机的从机任务)。优先级高的先发送应答,优先级低的,在下一个偶发帧的帧头到来时,才能发送。

事件触发帧主要侧重于从机节点的变化信息发送,当从机节点发生某种特定事件时,会触发帧的发送,以传递该事件的相关信息。而偶发帧则主要侧重于主机节点的变化,当主机节点状态发生变化时,会发送偶发帧来通知其他节点。

4.2.4 诊断帧(Diagnostic Frame)

包括主机请求帧和从机应答帧,主要用于配置、识别和诊断用。主机请求帧(Master Request Frame,MRF),帧ID = 0x3C,应答部分的发布节点为主机节点;从机应答帧(Slave Response Frame,SRF),帧ID = 0x3D,应答部分的发布节点为从机节点。

4.2.5 保留帧(Reserved Frame)

备用

4.3 调度表

五、硬件

5.1 物理介质

总线介质:市场上主流使用铜线。总线收发器也是针对铜线的。

全双工:两根线,同时收发数据

半双工:一根线,同一时刻只能收或发,同一时刻是单向的

单工:一根线,一直是单向的,只能收或发。

协议控制器是基于UART/SCI 的通信控制器,工作方式是半双工(LIN一根线)

5.2 EMI 控制

EMI 指电磁干扰

压摆率(Slew Rate),也称为转换速率,是衡量放大器对信号变化速度适应能力的参数。它指的是运算放大器输出电压的转换速率,单位通常有V/s、V/ms和V/μs三种。压摆率的大小反映了放大器对信号变化速度的快慢,即放大器在单位时间内输出电压的变化量。

在处理高速信号时,压摆率是一个非常重要的指标。如果放大器的压摆率不够高,那么当输入信号变化速度较快时,放大器可能无法及时跟随输入信号的变化,导致输出信号失真。因此,对于需要处理高速信号的放大器,压摆率是一个需要特别关注的参数。

位速率、压摆率越高,EMI越显著。

LIN协议可以控制EMI:协议控制器可以控制位速率,总线收发器可以控制压摆率。20Kbps的最高位速率限制,是数据速率与EMI 权衡的结果。

ESD(Electrostatic Discharge)指静电危害

缩写 全称 解释

LDF LIN Description File LIN描述文件

NCF Node Capability File 节点性能文件

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号