需要一个简单实用的LIN总线介绍吗?
在这个LIN总线的简介中,您将了解到LIN(Local Interconnect Network,本地连接网络)协议的基本知识,包括LIN总线和CAN总线的对比、LIN总线的应用案例、LIN是如何运行的以及LIN中的6种帧类型
请注意,这是一篇偏实用的简介,所以里面还会介绍到LIN总线数据记录的基础知识。
什么是LIN总线
LIN总线是CAN总线的补充,它的可靠性以及性能较低,但成本也是比较低的。下面我们将简单介绍下LIN总线的特点以及其和CAN总线之间的异同。
•更低的成本(如果对速度或者容错性的要求较低)
•常用在车辆的窗户、雨刮器、空调等
•LIN集群中只有一个主节点和最多有16个从节点
•只有一根信号线(需要配合地线),波特率为1-20 kbit/s,线缆最长能达40米
•由时间触发的调度表能保证报文间延迟的时间
•可变的数据长度(2、4、8字节)
•LIN总线支持错误检查、校验和配置
•工作电压为12V
•物理层是基于ISO 9141(K线)
•支持睡眠模式和唤醒
•现在的新车上都还有10个以上的LIN节点
LIN 总线和 CAN 总线的对比
•LIN 总线的成本更低(线束更少、不需要购买许可以及节点更便宜)
•CAN 总线使用双绞屏蔽线-5V,LIN 总线使用单线-12V
•LIN 总线中的主节点通常也是一个 CAN、LIN 的网关
•LIN 总线报文发送的顺序是确定的,不是事件驱动的,即没有总线仲裁
•LIN 总线中主节点只能有一个,而 CAN 总线没有主从的概念
•CAN 总线会使用 11 或 29 位的标识符,LIN 总线中的标识符是 6 位的
•CAN 总线的波特率能达 1Mbit/s 而 LIN 总线的波特率最大也就 20 kbit/s
LIN总线的历史
下面我们简要的回顾下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总线正在为当代车辆提供低成本的功能扩展中,起到越来越重要的作用。
因此,在过去十年中,LIN总线已迅速得到了普及,到2020年,汽车中的节点数量预计将超过7个亿,而2010年约为2个亿。
网络安全与新协议
但是,随着LIN总线的普及,对其网络安全的要求也越来越高。LIN总线也面临着CAN总线相似的风险,并且由于LIN总线应用在座椅、方向盘等设备上,所以LIN总线还需尽量控制这些风险。
未来,CAN FD、FlexRay以及汽车以太网在汽车网络上的应用会越来越多。虽然这些体系在未来汽车中扮演的角色尚未确定,但大部分人认为LIN总线仍会是未来满足现代汽车功能不断增长需求中至关重要低成本的解决方案。
LIN总线的应用
如今,LIN总线已经成为现代车辆上约定俗成的标准,下面是一些LIN总线在汽车上的应用:
•方向盘附近:巡航控制、雨刮开关、温度控制、收音机等
•舒适度模块:温度、天窗、光线、湿度的传感器等
•动力总成:位置、转速、压力传感器等
•发动机:小型电动机、冷却风扇的电动机等
•空调:电动机、控制面板(通常很复杂)等
•车门:后视镜、窗户、座椅控制装置、锁等
•座椅:位置马达、压力传感器等
•其他:雨刮、雨量传感器、前大灯、空调进气等
此外,LIN总线出现在了其他行业中
•家电:洗衣机、冰箱、炉灶等
•工业自动化:制造设备、金属加工等
示例:LIN总线和CAN总线的窗户控制
一个LIN集群的节点通常都是在一块的,每个集群中都有一个作为主干CAN总线网关的主节点。
在汽车主驾驶侧,您可以打开副驾驶侧的窗户。当你按下按键后,LIN集群会通过CAN总线向另一个LIN集群发送报文,那这就会触发第二个LIN集群操作窗户使窗户打开。
LIN总线是如何工作的?
LIN总线的工作核心相对简单:
主节点循环询问每个从节点(发送一些请求报文),从节点会在主节点询问后发送数据(向主节点或从节点)。
但是,随着其他各种规范的更新,LIN规范中也添加了其他新功能,这样它也变得复杂起来。
下面,我们会介绍一些基础知识:LIN的报文以及6种报文类型
LIN总线的信号报文
简单来说,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。
记录LIN总线数据
CANedge可以让您轻松地将LIN总线的数据记录到8-32 GB的SD卡中。仅需将它连接到您的LIN应用程序便可以开始记录,并可以通过免费的软件或者API来处理这些数据。
LIN报文帧的六种类型
虽然存在很多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文件(Node Configuration Files)以及.ldf文件(LIN Description File)
为了更快速的构建LIN网络,市面上的LIN节点一般都会带有节点的.ncf文件,这个文件会详细说明节点的功能。
然后,OEM会将这些节点的.ncf文件整合成一个集合文件,这个集合文件就是.ldf文件。最后,主节点会根据.ldf文件中的调度表等进行设置和管理LIN 集群。
请注意,可以使用前面讲到的诊断帧来重新配置LIN总线的节点。这种配置可以在生产期间完成,也可以在每次网络启动完成。比如,您可以通过这种方式来更改节点的ID。
如果您熟悉CANopen,那您可能会发现有点像用于预配置CANopen节点的设备配置文件以及SDO(Service Data Objects)在更新配置时的作用。
LIN总线的休眠与唤醒
LIN总线的关键优势不仅是可以节省成本,还可以节省能耗。
LIN的主节点可以通过发送第一个字节为0的诊断帧(ID 60)来让所有的从节点进入休眠模式。另外,如果总线超过4秒也没有活动,从节点就会自动进入休眠模式。
从节点的唤醒可以是通过主节点或从节点发动唤醒请求。这需要将总线置为250-5000μs的显性,紧接着暂停150-250ms。如果主节点没有发送报文头,那这操作最多只能重复3次。如需要发送第4次唤醒请求,那则需要先等待1.5秒。通常,节点会在1到2此的脉冲后唤醒。
LIN总线数据记录应用案例
车辆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卡中自动上传。您还可以在车上添加蜂窝热点,来近实时地进行数据的传输。