汽车电子系统总线---LIN

LIN总线有如下特点:

  1. 单主机同多从机通信,无需仲裁机制,所有通信过程由主机主导;

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

  3. 单线信号传输,通信协议简单;

  4. LIN具有可预测的电磁兼容性能,为了限制EMC的强度,LIN协议规定了最大传输速率为20kbps;

  5. LIN总线提供信号的配置、处理、识别和诊断功能。

LIN总线在汽车中一般不独立存在,通常与上层CAN网络相连,形成CAN-LIN网关节点,通常汽车电子中整车厂会规定该“网关节点”的控制器归属。

注意:LIN协议对任务进行建模,约定主机任务仅为发送帧首,从机节点处理应答数据(发送或接收)。所以,从机节点仅实现发送数据和接收数据的操作,故仅运行从机任务;主机节点的主机任务发送帧首后,还可交由主机节点的从机任务发送或者接收应答任务。其中,主机任务发送的帧ID,就包含了数据应由哪个节点发送上线、哪个节点捕获数据的约定。由此,还可以设想一种只有主机任务的主机节点,但此时意义不大,主机任务协调网络中的各节点,最终都是为了将本机的数据部署至网络节点或从网络节点中取数,如果将主机节点的主机任务同自己的从机任务分类,就需要这两个任务做好同步,如此,还不如放在同一个节点上方便管理。
 

LIN总线仅使用一根信号线,信号线上传输逻辑电平信号,其中“0”为显性电平、“1”为隐性电平(显隐性与CAN总线是相同的)。传输信号在总线上实行“线-与”:

  • 当总线有至少一个节点发送显性电平时,总线呈现显性电平;

  • 所有节点均发送隐性电平或者不发送信息时,总线呈隐性电平,即显性电平起着主导作用。

实际上,在使用LIN总线时,相对于微控制器上集成的LIN协议控制器(LIN通信引擎外设,例如LINFlexD),还需要搭配一个LIN收发器芯片,将LIN协议控制器的Tx和Rx信号,同LIN总线上的显性信号和隐形信号进行转换。

协议控制器主体是一个基于UART/SCI的通信控制器,以半双工方式工作。协议控制器既可以使用专用模块实现,也可以用“UART/SCI+定时器”实现:

  • 发送数据时,LIN协议控制器把数据以UART的数据格式(8数据位,1停止位,无校验位)送往LIN总线收发器;

  • 接收数据时,LIN总线收发器捕获来自总线的串行信号流(显性隐性数据),转换成UART的数据格式,送回LIN协议控制器。

LIN协议控制器需要产生和识别帧的同步间隔段。同步间隔段包含一段长度至少为13位的低电平,再加上一段长度至少为1位的高电平的同步间隔隔离段。产生和识别同步间隔段的机制,虽然增加了硬件设计的复杂度,但是从接收方的角度看,这样做能把同步间隔段与普通的数据字节区别开,确保了同步信息的准确性。

协议控制器需要能够发送和捕获唤醒信号:

  • 协议控制器要能执行本地唤醒(Local Wakeup)。当需要唤醒总线时,协议控制器通过总线收发器向 LIN 总线送出唤醒信号。

  • 协议控制器要能识别总线唤醒(Bus Wakeup)。当收到来自 LIN 总线的唤醒信号时,协议控制器能够正确动作,进入规定的通信状态。

  • LIN总线收发器总线收发器的主体是一个双向工作的电平转换器,完成协议控制器的高-低电平与LIN总线的隐性-显性电平之间的转换。

  • LIN规范规定:LIN总线的电平,以总线收发器的供电作为参考电平。为了克服电源波动和参考点漂移的影响,LIN规范要求总线收发器要能承受±11.5%的电源波动和参考点电平波动,并且能承受电源和参考点之间8%的电位差波动。收发双方的电平鉴别门限也设置了较大的冗余度。

    总线收发器还包括一些附加的功能,例如总线阻抗匹配、压摆率(Slew-rate)控制等。

    此外,LIN规范要求总线收发器具备这样一种特性:本地节点掉电或工作异常时,不能影响总线上其他节点工作。
     

LIN报文分为帧头和应答两个阶段,其中,由主机发送的帧头内部包含:同步间隔段、同步段和受保护ID段;主机发送或者从机发送的应答段内部包含:最多8个字节的数据段和校验和。

同步间隔段(Break field)

注意 LIN通信帧结构 中,帧的所有间隙均为隐性电平“1”,总线空闲时,也是保持隐性电平“1”的状态,并且LIN通信帧中,除了同步间隔段外,任何其它字段都不会出现多于9位的显性电平。同步间隔段由至少13位(通常选择13位或14位)显性电平组成,用于将不同的通信帧相互分隔开来。同步间隔段就用来表示一帧的开始。另外,同步间隔段的间隔符(Break Delimiter) 至少为1位隐性电平。

同步段(Sync field)

在介绍同步段之前,先介绍一下字节段结构(Byte Field Structure)的概念,字节段结构包括:1位起始位(Start Bit,显性)+ 8位数据位 + 1位停止位(Stop Bit,隐性),这是一种标准UART数据传输格式。在 LIN 的一帧当中,除了同步间隔段,后面的各段都是通过字节域的格式传输的。LIN 帧中的数据传输都是先发送LSB(Least Significant Bit,最低有效位),最后发送 MSB(Most Significant Bit,最高有效位)。LIN总线使用字节0x55(01010101b)进行同步,在从机节点上可以采用非高精度时钟,如果存在偏差,可以通过同步段来调整。同步段中的就是一个值为0x55的字节。

受保护的帧ID(Protected Identifier field)

受保护的帧ID中包含两部分:6个比特的ID编号和2比特的奇偶校验位。

特别注意,LIN总线的ID同CAN总线相似,标识的是消息的类型,并不是从机节点的地址(例如I2C总线)。LIN总线根据帧ID的不同,将报文分为信号携带帧诊断帧保留帧。此为应用层的约定,此处暂不展开。

应答数据段(Data field)

数据段包含1-8个字节。LIN2.x规定,可传输的LIN字节数为2,4,8,并不是1-8内任意一个数字。一般而言,车内会选择统一字节数,最常用的是每帧传递8个字节;与CAN总线(包括DLC字段)不同,LIN协议中并没有规定数据长度的信息,数据内容和长度均由应用系统的设计者根据帧ID提前设计。总线上的数据以广播形式发出,任何节点都可收到,但并非对每个节点有用。具体到发布与接听是由哪个节点完成,这取决于应用层的配置。通常情况下,帧的应答,总线上只存在一个发布节点,否则会出现错误。(事件触发帧例外,它可能出现0,1和多个发布节点。)

校验和段(Checksum field)

效验和段是为了对帧传输的内容进行效验。校验和段的1个字节的值,是将本帧数据段和PID段的值按照8位求和,再取反得到的。

效验分为标准型效验与增强型效验:

  • 经典款校验和(Classical Checksum)仅计算数据段的部分,适用于LIN v1.3及更早期的版本。

  • 增强型校验和(Enhanced Checksum)计算数据段和PID部分,适用于LIN v2.0及以后的版本。

采用标准型还是增强型是由主机节点管理,发布节点和收听节点根据帧ID来判断采用哪种效验和。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值