
在LIN总线通讯中, Master task 决定了在 LIN总线上传送的是哪一帧 , Slave task 提供每一帧所 携带的数据 。
2、如下图为一个LIN节点的层次李败结构图:
LIN1.3 与 LIN2.1 的区别在于,LIN1.3没有TL层,Signal interaction放在氏扰陪Protocol层中,没有单独的TP层。
3、LIN总线特点:
串行通信:线间干扰小,节省线束,传输距离长;
单线传输:增强的 ISO9141 (ISO 15765-1) , 总线电压基于 VBAT;
最高速率20Kbit/s:满足车身上大部分的应用需求;
单主多从结构:无需仲裁;
基于通用 UART/SCI 的低成本接口硬件:几乎所有MCU有具备LIN总线的硬件基础;
从节点无须晶振或陶瓷震荡器就可以实现同步:大幅度降低成本;
一条总线最多可连接16个节点:由总线电气特性决定;
支持诊断功能:支持UDS服务;
4、LIN2.1节点模型:
LIN1.3节点模型:
LIN2.1 与 LIN1.3 节点模型的差别在于 LIN1.3 没有 Transport layer ,所以也就没有流控、传输时间控制的功能, LIN1.3 协议中没有对诊断及节点配置进行规范,所以在 LIN1.3 中完成相应的功能都放在自定义诊断中完成。
5、LIN网络拓扑结构:
1)单主任务,多从任务;
2)主节点包含主任务和从任务;
3)从节点只包含从任务;
4)主任务决定总线上的报文,从 任务发送数据;
6、LIN帧:
通信原理: 主任务发送报头,从任务用响应来补充报头形成完整的报文。
报文传输: 报文的内容由ID来定义。
广播: 所有节点都能够接受总线上的帧。
7、调度表
1)负责调歼蠢度网络各报文发送的顺序;
2)为每帧报文分配发送时隙(slot);
3)发送时隙:报文可以被发送的时间;
4)不同报文的发送时隙可能不同;
5)调度表在网络系统设计阶段确定;
6)调度表使得LIN通信具有可预测性;
8、切换调度表:
主任务可以拥有多个调度表,并在不同的调度表之间切换,该处理方式增加通信的灵活性。
(1)字节间隔位于每个字节之间;
(2)响应间隔位于报头与响应之间;
(3)留给MCU足够的处理时间;
(4)帧长度可能增长;
1、字节场
1)基于SCI的通信格式;
2)发送一个字节需要10个位时间(TBIT);
2、间隔场
1)表示一帧报文的起始,由主节点发出;
2)间隔信号至少由13个显性位组成;
3)隔界定符至少由1个隐形位组成;
4)间隔场是唯一一个不符合字节场格式的场;
5)从节点需要检测到至少连续11个显性位才认为是间隔信号;
3、同步场
1)确保所有从节点使用与节点相同的波特率发送和接收数据;
2)一个字节,结构固定:0X55;
4、标识符场
1)ID的范围从0到63(Ox3f);
2)奇偶校验符(Parity)P0,P1;
5、数据场
1)数据场长度1到8个字节;
2)低字节先发,低位先发;
3)如果某信号长度超过1个字节采用低位在前的方式发送(小端);
6、校验和场
用于校验接收的数据是否正确
1)经典校验(Classic Checksum)仅校验数据场(LIN1.3)
2)增强校验(Enhance Checksum)校验标识符场与数据场内容(LIN2.0、LIN2.1)
标识符为0x3C和0x3D的帧只能使用经典校验
计算方法:反转8位求和(inverted eight bit sum)
例:Data=0x4A、0x55、0x93、0xe5
7、帧长度
最小帧长度
THEADER_NOMINAL=34*TBIT
TRESPONSE_NOMINAL=10*(NDATA+1)*TBIT
TFRAME_NOMINAL=THEADER_NOMINAL+TRESPONSE_NOMINAL
最大帧长度
THEADER_MAX=1.4*THEADER_NOMINAL
TRESPONSE_MAX=1.4*TRESPONSE_NOMINAL
TFRAME MAX=THEADER MAX+TRESPONSE MAX
8、帧类型
1)无条件帧
使用频度最高的帧类型,无任何发送条件;
标识符(ID)为0到59(0x3B);
主任务发出报头,一个任务响应,一个或多个任务接收如下图:
帧 ID = 0x30应答部分的发布节点为从机节点1,收听节点为主机节点。典型应用如从机节点1向主机节点报告自身某信号的状态。
帧 ID = 0x31应答部分的发布节点为主机节点,收听节点为从机节点1和从机节点2。典型应用如主机节点向从机节点发布信息。
帧 ID = 0x32应答部分的发布节点为从机节点2,收听节点为从机节点1。典型应用如从机节点之间彼此通信。
2)事件触发帧
引入事件触发帧的目的是节省带宽。
BCM(Master)需要获取4个车门的状态,该如何实现?
第一种方式:
每次向四个车门请求状态,浪费带宽,因为车门状态不是经常发生。
第二种方法:
将请求四个车门状态的帧合并为一个事件触发帧,Master不需要每次发送四个帧请求车门的状态,只需要发送一个事件触发帧即可,哪个车门状态发生变化,对应的车门将响应该事件触发帧。
事件触发帧的响应会出现如下三种情况:
第一种:没有车门状态变化。
第二种:一个车门状态发生变化:
第三种:多个车门状态发生变化,此时将出现冲突,冲突处理时,Master需要像第一种处理方式一样,重新发送四帧分别请求单个车门状态。LIN1.3与LIN2.0、LIN2.1处理方式有所区别,区别在于LIN1.3不切换调度表,占用事件触发帧的时隙发送,LIN2.0、LIN2.1将切换冲突调度表处理,如下图:
3)零星帧(偶发帧 (Sporadic Frame) )
引入零星帧的目的也是为了节省带宽,如:BCM(Master)需要发送对4个车窗的控制指令,但是,两个车窗的控制命令很少被同时执行,同样大量的带宽被浪费。
具体方案如下:
4)诊断帧
诊断帧用来传输诊断或配置信息,一般包含8个字节。
标识符:
60(0x3C):主请求帧
61(0x3D):从响应帧
传输方式:
5 )保留帧
标识符: 62(0x3e), 63(0x3f)
在LIN 2.1中未对保留帧进行定义, 留给用户自定义或将来的版本升级。
9、调度表
10、偏移
偏移(jitter)是指一帧报文实际开始发送的时刻与帧时隙起点的时间差(该值在LDF文件中定义) 。
TFrame_Slot>jitter + TFrame_Maximum
11、网络管理
12、睡眠(Go To Sleep)
睡眠指令只有主节点可以发送,从节点在接到睡眠指令之后,也可以选择不进入睡眠状态而继续工作,这根据应用层协议而定。
13、唤醒(Wake Up)
在一个处于睡眠状态的LIN网络中,任何一个节点都可以发送唤醒信号。
发送节点发送的唤醒信号:
接收节点检测的唤醒信号:
14、主任务状态机模型
15、从任务状态机模型
需要一个简单实用的LIN总线介绍吗?
在这个LIN总线的简介中,您将了解到LIN(Local Interconnect Network,本地连接网络)协议的基本知识,包括LIN总线和CAN总线的对比、LIN总线的应用案例、LIN是如何运行的以及LIN中的6种帧类型
请注意,这是一篇偏实用的简介,所以里面还会介绍到LIN总线数据记录的基础知识。
LIN总线是CAN总线的补充,它的可靠性以及性能较低,但成本也是比较低的。下面我们将简单介绍袭搭下LIN总线的特点以及其和CAN总线之间的异同。
•更低的成本(如果对速度或者容错性的要求较低)
•常用在车辆的窗户、雨刮器、空调等
•LIN集群中只有一个主节点和最多有16个从节点
•只有一根信号线(需要配合地线),波特率为1-20 kbit/s,线缆最长能达40米
•由时间触发的调度表能保证报文间延迟的时间
•可变的数据长度(2、4、8字节)
•LIN总线支持错误检查、校验和配置
•工作电压为12V
•物理层是基于ISO 9141(K线)
•支持睡眠模式和唤醒
•现在的新车上都还有10个以上的LIN节点
•LIN 总线的成本更低(线束更少、不需要购买许可以及节点更便宜)
•CAN 总线使用双绞屏蔽线-5V,LIN 总线使用单线-12V
•LIN 总线中的主节点通常也是一个 CAN、LIN 的网关
•LIN 总线报文发送的顺序是确定的,不是事件驱动的,即没有总线仲裁
•LIN 总线中主节点只能有一个,而 CAN 总线没有主从的概念
•CAN 总线会使用 11 或 29 位的标识符,LIN 总线中的标识符是 6 位的
•CAN 总线的波特率能达 1Mbit/s 而 LIN 总线的波特率最大也就 20 kbit/s
下面我们简肆谈要的回顾下LIN总线规范的历史吧~
•1999年:LIN 1.0由LIN联盟(宝马、大众、奥迪、沃尔沃、梅赛德斯奔驰、瑞典的火山汽车以及摩托罗拉)发布
•2000年:LIN协议被更新了(LIN 1.1和LIN1.2)
•2002年:发布了LIN1.3,主要是修改了物理层
•2003年:发布了LIN 2.0,可以说是全新一代,也被广泛使用
•2006年:发布了LIN 2.1
•2010年:发布了LIN 2.2A,是现在广泛采用的版本
•2010-12年:基于LIN 2.0,SAE将LIN标准化为SAE J2602
•2016年: CAN in Automation(CiA)也将LIN标准化了(ISO 17987:2016)
LIN总线正在为当代车辆提供低成本的功能扩展中,起到越来越重要的作用。
因此,在过去十年中,LIN总线已迅速得到了普及,到2020年,汽车中的节点数量预计将超过7个亿,而2010年约为2个亿。
但是,随着LIN总线的普及,对其网络安全的要求也越来越高。LIN总线也面临着CAN总线相似的风险,并且由于LIN总线应用在座椅、方向盘等设备上,所以LIN总线还需尽量控制这些风险。
未来, CAN FD 、FlexRay以及汽车以太网在汽车网络上的应用会越来越多。虽然这些体系在未来汽车中扮演的角色尚未确定,但大部分人认为LIN总线仍会是未来满足现代汽车功能不断增长需求中至关重要低成本的解决方案。
如今,LIN总线已经成为现代车辆上约定俗成的标准,下面是一些LIN总线在汽车上的应用:
•方向盘附近:巡航拍雹拿控制、雨刮开关、温度控制、收音机等
•舒适度模块:温度、天窗、光线、湿度的传感器等
•动力总成:位置、转速、压力传感器等
•发动机:小型电动机、冷却风扇的电动机等
•空调:电动机、控制面板(通常很复杂)等
•车门:后视镜、窗户、座椅控制装置、锁等
•座椅:位置马达、压力传感器等
•其他:雨刮、雨量传感器、前大灯、空调进气等
此外,LIN总线出现在了其他行业中
•家电:洗衣机、冰箱、炉灶等
•工业自动化:制造设备、金属加工等
一个LIN集群的节点通常都是在一块的,每个集群中都有一个作为主干CAN总线网关的主节点。
在汽车主驾驶侧,您可以打开副驾驶侧的窗户。当你按下按键后,LIN集群会通过CAN总线向另一个LIN集群发送报文,那这就会触发第二个LIN集群 *** 作窗户使窗户打开。
LIN总线的工作核心相对简单:
主节点循环询问每个从节点(发送一些请求报文),从节点会在主节点询问后发送数据(向主节点或从节点)。
但是,随着其他各种规范的更新,LIN规范中也添加了其他新功能,这样它也变得复杂起来。
下面,我们会介绍一些基础知识:LIN的报文以及6种报文类型
简单来说,LIN总线的信号报文由 报文头 和 数据响应 组成。
通常,LIN的主节点会将报文头发送到LIN总线上,这将会触发一个从节点,它会将最多8个字节的数据填到数据响应中。
整个LIN报文的结构如下图所示。
间隔场: SBF(Sync Break Field,同步间隔场)又叫间隔场,间隔信号至少由13个显性位组成,间隔界定符至少由1个隐性位组成(实际上通常是18+2位)。间隔场表示一帧报文的起始(类似于CAN总线中的SoF,帧起始),由主节点发出。
同步场: 8位的同步场常配置为0x55(二进制为:01010101),这是为了让LIN节点识别上升或者下降沿之间的时间,以确保所有从节点使用与主节点相同的波特率发送和接收数据。
标识符场: 前6位放标识符,后2位放奇偶校验符。该标识符场用于发送每个LIN报文的标识符,以及哪些节点需要对报文头进行相应。从节点会判断标识符的有效性(基于奇偶校验位),并且进行以下 *** 作:
1. 忽略后续数据的发送
2. 侦听另一个节点传输的数据
3. 将数据填入对应报文头的数据响应中
通常,每次轮询一个从节点,这就意味着不会有报文冲突,因此也无需仲裁。
请注意,这6位的标识符允许使用的64个ID中(即从0到63,0x3f),ID 60-61用于诊断(下面会介绍),而ID 62-63则是保留的。
数据场: 当LIN的从节点被询问时,它可以通过发送2、4或8字节的数据进行相应。从LIN 2.0开始,数据长度就取决于ID决定(ID 0-31:2个字节,32-47:4个字节,48-63:8个字节)
校验和场: 像CAN总线中一样,校验和场可以确保LIN报文的有效性。经典校验(也称8位经典校验)是指对仅对数据场进行校验(LIN 1.3),而增强校验会校验标识符场(PID)以及数据场的内容(LIN 2.0及以上)
由于低成本LIN节点的性能通常很差,因此通常会发送延迟。为了减少这种情况的发生,可以选择添加字节间隙,如下图所示。另外,在报文头和数据响应之间,可以存在响应间隔,允许从节点有足够的时间对主节点的报文头进行识别、处理和响应,比较高级节点的间隔可能为0。
CANedge可以让您轻松地将LIN总线的数据记录到8-32 GB的SD卡中。仅需将它连接到您的LIN应用程序便可以开始记录,并可以通过免费的软件或者API来处理这些数据。
虽然存在很多LIN报文帧类型,但是在一般应用中,通常都是由“无条件帧”来完成的。
需要注意的是,下面介绍的每一种帧类型都遵循同样的LIN报文帧结构,仅仅只是在时序或数据字节上有所区别。
下面,我们会简要介绍LIN报文帧的类型。
无条件帧: 主节点发送报文头,向特定的从节点处请求信息的默认通讯形式。相应的从节点会做出相应的反应
事件触发帧: 主节点轮询多个从节点。一个从节点的某个无条件帧有信号被更新时,才会响应,这可以增强LIN总线的响应能力,其PID会放在第一个数字字节中。如果有多个从节点同时响应时,就会发生冲突,主节点会将其默认为无条件帧
零星帧(偶发帧): 仅当主节点知道特定的从节点更新了数据后才主节点发送,主节点这时也是从节点,它自己将数据响应接在报文头后,并向从节点提供动态的信息
诊断帧 :从LIN 2.0开始,ID 60、(0x3c)ID 61(0x3d)就用于读取主节点或从节点的诊断信息。诊断帧包含8个字节数据。ID 60是主请求帧,ID 61是从响应帧
用户定义帧: ID 62(0x3e)是用户定义帧,即可以包含任何类型的信息
保留帧: ID 63(0x3f)是保留帧,且不能用在适用于LIN 2.0的网络中
下面我们将介绍两个LIN总线的高级应用
为了更快速的构建LIN网络,市面上的LIN节点一般都会带有节点的.ncf文件,这个文件会详细说明节点的功能。
然后,OEM会将这些节点的.ncf文件整合成一个集合文件,这个集合文件就是.ldf文件。最后,主节点会根据.ldf文件中的调度表等进行设置和管理LIN 集群。
请注意,可以使用前面讲到的诊断帧来重新配置LIN总线的节点。这种配置可以在生产期间完成,也可以在每次网络启动完成。比如,您可以通过这种方式来更改节点的ID。
如果您熟悉CANopen,那您可能会发现有点像用于预配置CANopen节点的设备配置文件以及SDO(Service Data Objects)在更新配置时的作用。
LIN总线的关键优势不仅是可以节省成本,还可以节省能耗。
LIN的主节点可以通过发送第一个字节为0的诊断帧(ID 60)来让所有的从节点进入休眠模式。另外,如果总线超过4秒也没有活动,从节点就会自动进入休眠模式。
从节点的唤醒可以是通过主节点或从节点发动唤醒请求。这需要将总线置为250-5000μs的显性,紧接着暂停150-250ms。如果主节点没有发送报文头,那这 *** 作最多只能重复3次。如需要发送第4次唤醒请求,那则需要先等待1.5秒。通常,节点会在1到2此的脉冲后唤醒。
车辆CAN或LIN总线开发
可以同时记录CAN或LIN总线数据的记录仪对于OEM车辆开发来说十分重要,可以用于优化和诊断
现场设计原型设备数据远程处理
可以通过物联网(IoT)CAN、LIN兼容的数据记录仪大规模收集来自汽车设计原型设备的CAN或LIN总线数据来加快研发的速度
预测性维护
云端可以通过物联网(IoT)CAN或LIN记录仪监视工业机械,并可以基于预测模型来预测以及避免故障的发送
偶发的LIN错误诊断
LIN的记录仪可以充当工业机械的“黑匣子”的功能,为纠纷或者偶发错误的诊断提供依据
在实际中记录LIN数据需要注意的事项
下面我们为您列出了在记录LIN总线数据时需要注意的事项
LIN记录仪以及LIN接口
想要记录LIN总线数据,您需要LIN总线数据记录仪和一个接口。带有SD卡的LIN总线数据记录仪的优势在于您可以脱机地记录数据,比如在车辆实际使用的期间。另外,加上一个接口便能更好的服务于车辆功能动态测试。
对于可以脱机的LIN记录仪,它的优势在于其可以即插即用、紧凑且成本比较低,所以整个车队的大规模应用也不会负担太大。
支持CAN或是LIN
通常,您需要将LIN总线数据与CAN总线数据结合起来,来全面了解运行中的车辆:
驾驶行为与LIN总线的各种功能使用情况是如何关联的?
LIN主节点与CAN总线间的交互是否会出现问题?
LIN相关问题是否与某些基于CAN的事件相关?
想要将两种数据结合,您需要一个即可记录CAN,又可记录LIN的记录仪。另外,支持CAN FD也会越来越重要,因为预计CAN FD会越来越多的应用到车上。
WiFi
如果需要从大型车辆测试车队中通过物理连接的方式来提取LIN总线上的数据,这会非常麻烦。那如果您拥有一个 支持WiFi的CAN或LIN的记录仪 ,那么这都会变得再简单不过了。
您只需配置好一个WiFi热点,当车辆在这个WiFi覆盖范围内时,数据会从SD卡中自动上传。您还可以在车上添加蜂窝热点,来近实时地进行数据的传输。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)