前言:LIN(Local Interconnect Network)总线,也就是局域互联网的意思,它的出现晚于CAN总线,于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发,其目的是提供一种性价比高、性能可靠的低速网,以取代低速CAN总线系统。因为低速CAN哪怕是应用于车窗和座椅等简单的控制系统上,它过高的性能依旧存在冗余和浪费,所以为降低成本,便开发了LIN总线。本文就简单介绍一下关于LIN总线的通信方式与协议标准。
1,LIN简介
- LIN总线的传输速率较慢,一般为10kbit/s,最高不超过20kbit/s,在SAE总线分类中,被定为A类总线;
- LIN总线是一根无屏蔽的单根导线,所以抗干扰能力较差,常见的电子噪声便会影响到LIN线;
- 一个LIN网络最多可以连接16个节点(1主15从);
- 从节点自同步,确定的信号传输,可预估的信号传输时间,单线传输,成本低;
- 单主控器/多从设备模式无需仲裁机制;
- 低成本,基于通用UART 接口所有控制机都具备LIN 必需的硬件;
- 单信号线传输,同时保证信号传输的延迟时间;
- LIN具有可预测的电磁兼容性能,为了限制EMC的强度,LIN协议规定最大传输速率为20kbps;
- LIN总线提供信号的配置、处理、识别和诊断功能;
- 主要应用于自适应前照灯、空调鼓风机、雨刮器以及外后视镜等系统;
2,LIN总线硬件接线
LIN总线也是由LIN控制器、LIN收发器组成。LIN的控制器是基于SCI(UART)数据格式,采用单主控制器/多从设备的模式,是UART的一种特殊模式。一般控制器会集成在MCU内部,外置一个Lin收发器。也有少数一些MCU直接把LIN控制器和收发器都集成到MCU内部,只需要配置寄存器就可以使能Lin通信
3,LIN总线协议
3.1 协议特性
LIN中线采用单线传输模式,并采用单主机多从机的结构,一个主机节点同时包含有主机任务与从机任务,从机任务不能直接向总线发送数据,需要接收到主节点发送的帧头后,根据帧头所包含的信息来判断是否接受应答、发送应答或者不应答。
3.2 LIN协议格式
帧由一个帧头(由主机任务提供)和一个帧响应(由从机任务提供)组成。主机负责发送帧头,从机负责接收帧头并作出解析,然后决定是发送应答,还是接收应答或不回复。
LIN线拓扑结构是主从结构的星型模型,所有传输都是master发起,slave不可以主动发起请求,,想要获取某个变量值,就需要不断轮询读对应的报文
其中“0”为显性电平、“1”为隐性电平,显隐性与CAN总线是相同的。
在总线上实行“线-与”:当总线有至少一个节点发送显性电平时,总线呈现显性电平;所有节点均发送隐性电平或者不发送信息时,总线呈隐性电平,即显性电平起着主导作用
(1)帧头
帧头结构包括同步间隔段、同步段、PID段(受保护ID)段
① 同步间隔段
同步间隔段至少是由13位的显性电平组成,代表一帧的开始,其中同步间隔段的间隔符至少为1位隐形电平。同步间隔场可以代表一帧的开始。另外,同步间隔场的间隔符至少为1位隐性电平
② 同步段
IN同步以下降沿为判断标志,采用字节0x55(01010101b)进行同步。在从机节点上可以不采用高精度的时钟,由此带来的偏差,需要通过同步段来进行调整。
从机节点可以不采用高精度的时钟,而采用片上振荡器等精度和成本相对较低的时钟,由此带来的与主机节点时钟产生的偏差,需要通过同步段进行调整,调整的结果是使从机节点数据的位速率与主机节点一致
③ PID段
受保护的ID,其前6位为帧ID,加上两个奇偶效验码称作受保护的ID。帧ID的取值范围为0x00~0x3F,共64个,帧ID标识了帧的类别,从机任务会根据帧头ID作出反应(接收/发送/忽略应答)
(2)应答段
应答部分包括数据段与效验和段
① 数据段
数据段可以包含1-8个字节,其中包含有两种数据类型,信号(singal)和诊断消息(diagnostic messages)。信号由信号携带帧传递,诊断消息由诊断帧传递。
② 检验和段
效验和段是为了对帧传输内容进行效验。效验分为标准型效验与增强型效验。采用标准型还是增强型是由主机节点管理,发布节点和收听节点根据帧ID来判断采用哪种效验和。
3.3 Lin帧类型
根据最新的LIN协议,可以分为如下几种LIN帧类型
- 无条件帧
- 时间触发帧
- 偶发帧
- 诊断帧
- 预留帧类型
(1)无条件帧(0-0x3B)
最常用的帧,无条件帧是具有单一发布节点的,无论信号是否发生变化,帧头均会被无条件应答的帧。
虚线箭头代表帧头发送,实线箭头代表帧应答。
- 帧ID=0x30应答部分的发布节点为从机节点1,收听节点为主机节点,应用在从机节点向主机节点报告自身状态;
- 帧ID=0x31中,应答部分为主机节点,收听部分为从机节点,应用在主机节点向从机节点发送控制消息;
- 帧ID=0x32中应答部分的发送节点为从机节点2,收听节点为从机节点1,应用与从机节点之间的通信。
(2)事件触发帧
事件触发帧的标识符为0到0x3B。事件触发帧必须有一个独立的ID,该ID可以与多个无条件帧相关联。
事件触发帧是主机节点在一个帧间隙中查询各从机节点的信号是否发生变化时使用的帧。当存在多个发布节点时,通过调度表解决冲突。
当从机节点信息状态没有发生变化的时候,从机节点可以不应答主机发出的帧头;当有多个节点信息同时发生变化的时候,同时应答事件触发帧头会造成总线的冲突。当主机节点检测到冲突时,便会查询冲突解决进度表来依次向各个节点发送无条件帧(无条件帧只有能1个节点应答)来确定从机节点的信息状态
(3)偶发帧
偶发帧表示共用一个时隙、在需要时才被发送的一组普通帧。标识符为0到0x3B。
偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。
当存在多个关联的应答信号变化时,通过预先设定的的优先级来仲裁。与事件触发帧类似,偶发帧也定义了一组无条件帧。规定偶发帧只有由主机节点发布。
偶发帧的传输可能出现三种情况:
1)当关联的无条件帧没有信号发生变化,这时主机连帧头也不需要发送。
2)当关联的一个无条件帧信号发生变化则发送该帧。
3)当有多个无条件帧发生信号变化时,则按照事先规定的优先级依次发送
(4)诊断帧
诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断。主机请求帧ID=0x3c,由主机节点发送帧头和帧应答;从机应答帧ID=0x3d,由主机节点发送帧头 从机节点发送帧应答。数据段规定为8个字节,一律采用标准效验和。
(5)保留帧
保留帧的ID为0x3E与0x3F
3.4 调度表
帧的调度表(或进度表)规定了总线上帧的传输次序以及传输时间。
-
LIN调度表是LIN通信的“时间表”,决定帧的发送顺序和时序。
-
静态调度用于周期性数据,动态调度用于事件驱动数据。
-
主机完全控制调度,从机仅响应请求,确保通信有序。
参考文章:
入门篇:汽车总线是什么?CAN、LIN、MOST、FlexRay有何区别?
【LIN总线】LIN总线传输协议_lin总线协议-CSDN博客
LIN总线详解-CSDN博客