LIN通讯

LIN通讯LIN Localinterco 是一种低成本的串行通讯网络 用于实现汽车中的分布式电子系统控制

大家好,欢迎来到IT知识分享网。

LIN通讯

一、LIN通讯的背景与意义

随着汽车电子的发展,汽车上的电子零件正在逐渐地增加。而电子零件的增加也导致更多的设备(传感器、执行器、电子控制器)需要加入汽车的局部网络,这些零件的增加还会带来配线的增加,增加的配线除去会导致更高的材料费的同时,还会增加配线本身因接触不良导致的电子故障,从而印象汽车整体的品质与可靠性【1】。

img

而局域网多点通讯可以极大的解决这个问题。以高效安全而闻名,目前被汽车电子广泛应用,甚至也辐射到其他产业当中,越来越被大家多信赖和使用的CAN通讯,就是局域网多点通讯。

上面也有提到,除去一些电子控制器(如动力系统、底盘系统等),还有诸多的传感器和执行器,他们往往不需要那么高效的通讯方式,成本才是他们需要考虑的问题。

为了在兼顾系统通讯的同时,尽量减少成本,LIN通讯则应时而生。他和CAN通讯一样,可以进行局域网多点通讯,同时和CAN两个差分信号不同的是,LIN通讯仅需一根通讯线,极大地减少了配线的数量以及配线带来的安全隐患问题。

img

二、LIN通讯概括
1.LIN通讯介绍

LIN(Local interconnect Network)是一种低成本的串行通讯网络,用于实现汽车中的分布式电子系统控制。LIN 的目标是为现有汽车网络(例如CAN 总线)提供辅助功能,因此LIN总线是一种辅助的总线网络。在不需要CAN 总线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯使用LIN 总线可大大节省成本【2】。

2.LIN通讯特性

​ 低成本:基于通用UART 接口几乎所有微控制器都具备LIN 必需的硬件;

​ 强应用:极少的信号线即可实现国际标准ISO9141 规定;

​ 高速率:传输速率最高可达20Kbit/s;

​ 高效率:单主控器/多从设备模式无需仲裁机制;

​ 低成本:从节点不需晶振或陶瓷震荡器就能实现自同步,节省了从设备的硬件成本;

​ 高安全:保证信号传输的延迟时间;

​ 方便性:不需要改变LIN 从节点的硬件和软件就可以在网络上增加节点;

三、LIN通讯操作概念
1.主机和从机

LIN 的拓扑结构为单线总线,应用了单一主机多从机的概念。【4】

2.帧

帧(Frame)由一个帧头(由主机任务提供 Header)和一个帧响应(由从机任务提供 Response)。

2.1 帧头

帧头包括同步间隔场(Break)、同步场(Synch)和标识符场(PID)三个部分。

img

2.1.1 Break
2.1.2 Synch

同步场是为了修正各个从机任务节点间时钟的误差。是一个数据值为0x55的字节场。各个从机任务根据最初和最终的下降沿除以8来计算出1bit的时间,并以此作为基准来调整自己的时钟误差。

img

2.1.3 PID

标识符场表示LIN报文识别信息,由6位(bit0-bit5)的报文ID和2位(bit6-bit7)的奇偶校验和构成。

img

标识符(ID)有6bit,其值的范围是0-63。标识符可以分为以下四类:

载波帧的值,其值范围是0-59(0x3b);

60(0x3c)和61(0x3d)可用来载运诊断数据;

62(0x3e)专门用于用户定义的扩展部分;

63(0x3f)专门用于以后的协议改进。

2.2帧响应

帧响应由数据场和校验和场组成。

2.2.1 数据场

帧可以携带1-8byte的数据。对拥有指定标识符的帧来说,其包含的字节的数量应与发布服务器和所有认购器保持一致。

2.2.2 校验和场

帧的最后一个场是校验和(checksum)。校验和段是对帧中所传输的内容进行校验,校验和分为标准型校验和(Classic Checksum)及增强型校验和(Enhanced Checksum)。采用标准型校验和还是增强型校验和由主机节点管理,从机节点根据帧ID来判断采用哪种校验和。标准校验和只保护数据段,增强型校验和同时保护数据段和帧ID段。【7】

3.数据输送

一个帧可以输送两种类型的数据:信号和诊断报文。

3.1 信号:

信号指的是标量值或者字节数组。这些标量值或字节数组打包后放入帧的数据场里面。对所有拥有相同标识符的帧来说,一个信号在数据场内的位置总是一样的。

3.2 诊断报文:

诊断报文的输送是在具有两个保留标识符的帧里面完成的。数据场的判读取决于数据场本身以及通讯节点的状态。

4.进度表

(处于主机节点的)主机任务会根据进度表输送帧头。进度具体规定了每个帧头的标识符以及一个帧与一下个帧之间的间隔。主机应用可以使用不同的进度表,并在他们之间进行挑选。

四、LIN通讯协议规范
1.信号管理

信号是在帧的数据场里面输送的。多个信号可以打包成一个帧,只要这些信号彼此之间不会相互重叠。但是他们要由机群里面的同一个节点写入。

1.1 信号类型

信号由标量值和字节数组两个类型。

1.1.1 标量值

标量值可以穿过一个字节的最大界限,可以有1-16bit组成。1bit的标量信号被称为bool信号,其余标量信号被称为unsigned整数。

1.1.2 字节数组

字节数组内的每个字节应形成一个单帧字节。

1.2 信号一致性

标量信号的写入或者读取必须是[原子操作](原子操作 – 搜索 (bing.com))。也就是说应用程序无法接受一个部分被更新的信号值。不过,信号与信号之间或一个字节数组内的字节之间无需坚持一致性。

1.3 信号打包

信号会最先通过LSB进行发送,最后才是MSB。

2.帧的转移

在LIN总线上及逆行传送的实体就是帧。

帧的发送时间是每个字节发送时间的总和,再加上响应间隙时间和字节间隙时间。

2.1 帧结构

在这里插入图片描述

2.1.1 帧槽

每个预定的帧会在总线上分配一个槽。槽的间隙时间必须足够长,以便能够在最糟的情况下装载帧。

2.2 帧的类型

LIN总线上数据传输包括四种不同的帧,分别为无条件帧、事件触发帧、偶发帧、诊断帧。

无条件帧

帧ID0-59。无条件帧(Unconditional Frame)是具有单一发布节点,无论信号是否发生变化,帧头都无条件应答的帧。无条件帧在主机任务分配给他的固定帧时间隙中传输。总线上一旦有帧头发送出去,必须有从机作应答。

事件触发帧

帧ID0-59。事件触发帧(Event-triggered Frame)是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化(事件)时使用的帧,当存在多个发布节点时,通过冲突解决进度表(Collision Resolving Schedule)来解决冲突。当从机节点信号发生变化的频率较低时,主机任务一次次地轮询各个信号会占用一定的带宽。为了减小带宽的占用,引入了事件触发帧的概念。同一个 PID的事件触发帧进和无条件帧对应的第一个字节数据是相同的,从机只有在自身数据变化时才发送应答,当总线上没有任何从机应答时,该帧的应答部分为空。如果总线上有超过一个从机应答,则发生冲突,主机则通过发送无条件帧轮询所有从机,解决冲突的问题。

偶发帧

帧ID 0 ~59。偶发帧(Sporadic Frame)是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关联的应答信号变化时,通过事先设定的优先级来仲裁。偶发帧主要用于主机发送不经常变化的信息,可以理解为主机用的事件触发帧。与事件触发帧一样,偶发帧的应答也关联了一组无条件帧。

偶发帧的传输可能出现 3种状况:

  1. 当关联的无条件帧没有信号发生变化时,该时隙保持沉默,主机节点连帧头都不需要发送;
  2. 当其中一个关联的无条件帧包含的信号发生了变化, 则发送该关联的无条件帧的应答部分,如图15上半部分所示;
  3. 如果有两个或以上关联的无条件帧包含的信号发生了变化,则按照事先规定好的优先级,优先级较高的关联的无条件帧获得发送权,优先级较低的要等到下一个偶发帧的帧头到来时才能发送应答。由于主机节点是唯一的发布节点,所以主机节点事先就知道各个关联信号的优先级别,这样在传输时不会产生冲突,如图下半部分所示
诊断帧
3.状态管理

参考文章:

【1】[LIN通信入门(一) – 知乎 (zhihu.com)](https://baike.baidu.com/item/LIN总线/);

【2】LIN总线_百度百科 (baidu.com)

【3】lin 2.0规范 – 道客巴巴 (doc88.com)

【4】LIN 总线协议详解1(LIN总线拓扑)_dailbing的博客-CSDN博客

【5】Lin总线概述及入门_冯子同学的博客-CSDN博客

【6】lin总线通信_好活懒人的博客-CSDN博客_lin通信

【7】LIN Bus – 第22条军规 (wangdali.net)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/119478.html

(0)
上一篇 2025-11-05 10:20
下一篇 2025-11-05 10:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信