2023-03-20
汽车车载网络LIN总线详解
作者:triv 点击:921
自1980年代,Kvaser就开始CAN产品的研发,对CAN和相关总线技术有着非常深入的研究。您可以向我们获取多种CAN总线培训资料,包括专业技术文档,产品指南和帮助文档,用户可以随时根据需要下载和查看。
CAN总线多用于工控和汽车领域,是国际上应用最广泛的现场总线之一。通常,CAN协议本身仅规定如何通过共享通信介质把小数据包从A点传送到B点。它不包含例如流量控制、数据传送大于可容纳8字节的报文、节点地址、通信建立等内容。
为了管理系统中的通信,我们就必须有一个高层协议(HLP),高层协议通常规定了:启动行为、如何在系统内不同的节点中分发报文标识符、如何编译数据帧的内容、系统内的状态报告等。
针对CAN总线的高层协议多达几十种,在这里整理了最常见的几种和主要HLP之间的区别,本篇主要将LIN总线的相关内容系统性地梳理给到大家,希望能对CAN总线技术的学习者有所帮助。也欢迎您关注广州智维微信公众号!
LIN总线协议
01
背景
本地互联网络LIN协议是基于Volvo衍生公司Volcano通信技术公司(VCT)开发的Volcano-Lite技术。因为其他汽车企业也对CAN的低成本替代协议感兴趣,所以建立了LIN辛迪加联合组织。
02
应用领域
LIN是CAN和SAE J1850协议的补充性协议,针对时间要求不高或不需要精确容错的应用(相比CAN协议,LIN的可靠性较低)。LIN的目标是易于使用,作为CAN协议的低成本替代品。LIN在车辆中可以使用的场合包括车窗升降器、后视镜、雨刷和雨量传感器。
03
协议简介
◉ LIN物理层基于ISO 9141(K-line)
◉ 主从式结构
◉ 单线加上地线
◉ 时间触发的调度
◉ 1-20 kb/s
◉ 显性/隐性位
◉ 按字节的串行通信
◉ 线长不得超过40米
◉ 标准由LIN组织定义
04
物理属性
![图片](static/picture/20230320160627_98477.jpg)
△图1:收发器说明(摘录自LIN 2.0规范)
在总线上,一个逻辑低位(0)为显性,一个逻辑高位(1)为隐性。
ECU的供电电压(Vsup)应该在7 V和18 V之间。图2显示总线逻辑位解释的限制。
![图片](static/picture/20230320160641_45492.jpg)
05
数据传输
主节点为控制方,确保以正确的时间间隔和周期发送数据帧,并且每个帧都在总线上获得足够的时间片。这种时间调度方法基于下载到主节点软件的LCF(LIN配置文件)。
所有数据都通过一个包含帧头、响应和一些响应间隔的帧进行发送,因此从节点有时间进行应答。每个帧都发送到LCF确定的数据帧槽中。
主节点发送包含帧头的帧时,创建新的报文。然后从节点根据主节点发送的帧头在帧中填充数据。
![图片](static/picture/20230320160655_94739.jpg)
△图3:LIN帧的例子
无条件帧
事件触发帧
零星帧
这种方法为本来静态的LIN协议提供一些动态行为。仅当主节点知道从节点中信号发生更新时,才发送零星帧的帧头。通常,主节点填充帧本身的数据字节,从节点是信息的接收方。
06
字节字段的定义
![图片](static/picture/20230320160707_79470.jpg)
主节点任务
主节点发送的帧(头)包含三个部分:同步间隔字段、同步字节字段和一个标识符字段。每个部分都以一个起始位开始,以一个结束位结束。
同步间隔字段表示报文的开始,至少13个显性位(包括起始位)。同步间隔以一个“间隔分隔符”结束,该分隔符至少包含一个隐性位。
![图片](static/picture/20230320160724_23451.jpg)
△图5:同步间隔字段
发送同步字节字段来确定两个下降沿之间的时间,从而确定主节点使用的传输速率。位模式是0x55(01010101,最大下降沿数量)。这对于兼容量产从节点尤其有用。
![图片](static/picture/20230320160742_66684.jpg)
△图6:同步字节字段
标识符字段包含6位长的标识符和两个奇偶校验位。6位标识符包含关于发送方和接收方的信息,以及响应中要求的字节数。奇偶校验位如下进行计算:校验位P0是ID0、ID1、ID2和ID4之间进行逻辑“或”运算的结果。校验位P1是ID1、ID3、ID4和ID5之间逻辑“或”运算后再进行反转的结果。
![图片](static/picture/20230320160752_41008.jpg)
△图7:标识符字段
![图片](static/picture/20230320160802_56935.jpg)
△图8:帧长取决于标识符
根据主节点发送的标识符的两个MSB(最高有效位),从节点的响应(数据字段)可以是2、4或8字节长。在LIN 2.0中才提供这个能力,以前的版本只有8字节的静态长度。
![图片](static/picture/20230320160819_41979.jpg)
△图9:响应数据字段
从节点任务
从节点等待同步间隔字段,然后通过同步字节字段开始主从节点之间的同步。根据主节点发送的标识符,从节点将进行接收、发送或什么都不做。应该进行发送的从节点发送主节点请求的字节数,然后以一个检验和字段结束传输。
有两种不同类型的检验和。LIN 1.3中使用传统的检验和,包含报文中所有数据字节(8个字节)的反转八位和。LIN 2.0中使用的新检验和在检验和计算中加入了保护的标识符。反转八位和与modulo-256不同。每次所得和大于256时,就减去255。例如,对于240+32=272,和为272,然后执行272-255=17,得到的检验和为17。
07
诊断
LIN 2.0中的一项新功能是可以从主从节点读出诊断信息。为了这个目的,使用了两个帧标识符。这两个帧标识符都需要8个数据字节:主节点用标识符60(0x3c)请求帧,从节点用标识符61(0x3d)进行响应。诊断帧的第一个字节是NAD(诊断用节点地址),这是一个字节长的诊断用节点地址。值范围从1到127,0被保留,128到255可以自由使用。有三种诊断方法:基于信号的诊断、用户定义的诊断或使用诊断传输层。
基于信号的诊断
基于信号的诊断是最简单的方法,在普通帧中使用标准信号,有以下特性:
◉ 从节点上负载较低
◉ 标准化的概念
用户定义的诊断
用户定义的诊断可用来满足特定设备的要求,但是这同时表示它不能用作通用目的。这种方法使用128到255范围的NAD。
诊断传输层
对于基于CAN的系统(使用ISO诊断)之上构建的LIN网络,可以使用这种方法。此方法使用NAD 1到127,具备以下特性:
◉ 主设备上负载较低
◉ 为LIN从节点提供ISO诊断
◉ 用于更复杂和强大的LIN节点
![图片](static/picture/20230320160835_71020.jpg)
△图10:请求帧PCI类型 = SF
![图片](static/picture/20230320160851_60536.jpg)
△图11:请求帧PCI类型 = FF
![图片](static/picture/20230320160900_22173.jpg)
△图12:请求帧PCI类型 = CF
诊断响应帧以类似的方式构建,响应服务标识符(RSID)指定响应的内容。
![图片](static/picture/20230320160921_19748.jpg)
△图13:响应帧PCI类型 = SF
![图片](static/picture/20230320160929_85195.jpg)
08
版本兼容性