1、引言
总线通讯技术自20世纪80年代开始应用在汽车上之后[1],便在电子技术和汽车技术的推动下飞速发展,目前已形成了适用于不同场合的多种汽车总线标准,如MOST、CAN、TTP、LIN等。汽车总线中通讯节点和数据流量持续增加,节点日益复杂,使得汽车总线在重量、布置、成本、通信效率等方面面临困境,走出这一困境的出路在于实行汽车总线的网络化和分级制。A类总线——局域互连网LIN(Local Interconnect Network)因此应运而生。LIN是一种结构
简单、配置灵活、成本低廉的新型低速串行总线,主要用作CAN等高速总线的辅助网络或子网络。在带宽要求不高、功能简单、实时性要求低的场合,如车身电器的控制等方面,使用LIN总线,可有效的简化网络线束、降低成本、提高网络通讯效率和可靠性。
2、汽车网络
目前有分别适用发动机和底盘控制、车身电器控制、车载多媒体等不同场合的多种汽车总线标准。SAE(Society of Automotive Engineering)按传输速度的不同将汽车网络总线分为三类,如表1所示。
表一 汽车网络分类
A类总线协议有许多种,然而长久以来却没有一种协议能成为该领域的通用标准。1998年Audi、Motorola、BMW、DaimlerChrysler 、VCT、Volvo和Volkswagen七家公司联合成立了LIN协会,在潜心研究A类总线的基础上提出了新型A类总线——LIN,该总线一经面世,即以其低廉的成本优异的性能广为各大厂商所接受,有望成为A类总线的国际标准。
3、LIN
LIN 总线基于SCI/UART数据格式,采用单主机多从机模式,总线仅由三根导线组成(电源、地线和数据线),LIN总线的驱动/接收器规范遵从ISO9141标准,且EMI性能有所提高。LIN在硬件和软件上保证了网络节点的互操作性,并可预测EMC。
LIN的主要特点:成本低,基于通用UART/SCI接口,几乎所有微控制器都具备LIN必需的硬件;极少的信号线就可实现ISO9141标准;传输速率最高可达20Kb/s,最大总线长度40m;单主机/多从机模式,无需总线仲裁;从机节点不需石英或陶瓷振荡器就能实现自同步;保证信号传输的延迟时间;不需要改变LIN从机节点的硬件和软件就可以在网络上增加或删除节点等。
LIN总线规范的初始版本LIN1.0由LIN协会在1999年7月发布,后几经修订,现行版本为LIN协会在2003年9月发布的LIN2.0。LIN规范包括传输协议规范、传输媒介、开发工具接口和软件程序编制接口。LIN的规范化将改变低端汽车网络杂乱的现状,并将降低汽车电子设备的开发、生产、服务和维护成本
3、1 LIN拓扑结构
LIN采用单主机多从机模式,一个LIN网络包括一个主机节点和若干个从机节点。
(由于过多节点将导致网络阻抗过低,一个LIN网络中节点总数不宜超过16。)主机节点既包括主机任务也包括从机任务,从机节点都只包括从机任务,如图1所示。主机节点也可以通过网关和其他总线如CAN连接。
3、2 LIN数据传输
LIN总线中数据借助报文帧来传输,报文帧由报文头和响应组成。
报文头只能由主机任务发送,它包括同步间隔场、同步场和标识符场三个部分。同步间隔场为至少13个连续的显性位(低电平),它标志着一个报文帧的开始。其后为同步场,同步场逻辑值为0x55,从机节点利用同步场来实现与主机节点的同步。标识符场紧跟在同步场之后,长度为一个字节。标识符场中低6位为标识符位,共可组成64个标识符,其中60个用作一般报文传输、两个用作诊断帧、一个用作用户定义帧、一个留作LIN扩展用。标识符后两位为奇偶校验位。
标识符指出当前帧的内容,从机节点据此来确定自己是否应该对当前帧做出响应、做出何种响应。
响应由从机任务发送,它由数据场和校验和场组成。数据场由报文帧所携带的数据组成,长度为一到八个字节。报文帧的最后为校验和场,长度为一字节,LIN1.3及其以前的规范版本中规定校验和场仅对数据场作校验,称为传统校验和,LIN2.0规范中规定校验和场校验范围包括数据场和标识符场,称为增强校验和。
一个完整的报文帧如图2所示。
图2 LIN报文帧
根据传输条件的不同,报文帧可分为绝对帧、触发帧、离散帧、诊断帧、用户定义帧和保留帧六种[2]。LIN总线上的所有通讯都由主机节点中的主机任务发起,主机任务根据进度表来确定当前的通讯内容,发送相应的帧头,并为报文帧分配帧通道。总线上的从机节点接收帧头之后,通过解读标识符来确定自己是否应该对当前通讯做出响应、做出何种响应。基于这种报文滤波方式,LIN可实现多种数据传输模式,且一个报文帧可以同时被多个节点接收利用,如图3所示。
图3 LIN数据传输模式
3.3总线睡眠和唤醒
需要时可由主机节点发送一个标识符为0x3C且数据场中首字节为0的诊断帧将所有从机节点置为睡眠状态,如果总线在4秒钟以上没有任何活动,从机节点也自动进入睡眠状态,以减小功耗。
处于睡眠状态的LIN网络中的任何一个节点都可以请求唤醒总线,总线上的所有节点在接收到唤醒请求后应脱离睡眠状态并为接收总线命令做好准备。主机节点接收到唤醒请求后也被唤醒,并在从机节点准备好之后发送帧头,寻找唤醒原因。
3.4错误检测和处理
LIN规范定义了六种不同类型的报文错误:位错误、校验和错误、标识符错误、从机不响应错误、总线不活动错误和同步场不一致错误。主机节点和从机节点分别检测这六种错误中的若干种。
4.LIN应用设计
LIN是一种低速串行总线,其提出是针对汽车应用的,主要用于汽车电子控制系统, 实现智能传感器、执行器等的连接。LIN定位于汽车上的下层局部网络。由CAN构成汽
图4 基于CAN/LIN的分级制汽车网络
车的上层主干网络,而在不需要CAN的高速与多功能性的场合则由LIN来构成下层局部网络,实现分级制网络结构,以达到合理分配利用网络资源、提高线路布置的方便灵活性、降低成本的目的。典型的基于CAN-LIN总线的分级制汽车车身网络如图4所示。
现以车门LIN网络为例介绍LIN总线设计的一般方法。
车门控制LIN网络的结构及其在车门上的布置如图5所示,该网络由主机节点、后视镜从机节点、摇窗机从机节点、门锁从机节点构成。
图5 车门控制LIN网络
主机节点采集本地各控制开关的状态并接受CAN总线上的远程信息,据此产生控制指令,并将指令转换为LIN报文帧通过LIN网络发送给相应从机节点,从机节点接收到与自己相关的报文帧后对报文帧进行拆封、解读,然后根据获得的指令控制相应的执行器动作 ,从而实现对车门各部件的控制。同时,在需要时从机节点分别将其控制部件所处状态反馈给主机节点,主机节点再将该状态信息通过指示灯或喇叭提供给驾驶员或通过CAN总线发送给其他控制单元。主机节点也作为本LIN网络与上层CAN网络连接的网关。
图6为车门控制LIN网络的主机节点和后视镜从机节点的结构框图图。主机节点主要由控制器、电源、控制按钮、LIN接口、CAN接口和指示灯几部分组成。后视镜从机节点主要由控制器、电源、LIN接口、执行器驱动单元和执行器如后视镜调整电机、除霜加热器等组成。
主机节点和从机节点控制器均采用PHILIPS的高性能8位单片机P87LPC768,该单片机除具有51系列单片机典型功能,完全满足LIN控制器的硬件要求外,还具有片内看门狗和振荡器等模块,可有效简化LIN节点结构,降低成本。LIN收发器采用PHILIPS公司生产的TJA1020,其可用波特率范围2.4-20Kbits/s,它具有较高的抗电磁干扰性(EMI),可以自动修整输出波形降低电磁辐射(EME),且当传输速率低于10Kb/s时, TJA1020可以工作在低斜率模式下而进一步降低电磁辐射。电源模块主要由PHILIPS公司生产的电压调节器SA57022构成,SA57022可通过ON/OFF引脚开启或关闭,它与LIN收发器配合实现节点的睡眠和唤醒。主机节点的CAN接口由CAN控制器SAJ1000和CAN驱动器82C250组成。从机节点中以BTS432等开云棋牌官网在线客服功率开关器件取代传统的继电器作为各执行器的开关器件,具有响应迅速、可靠性高、结构紧凑等优点,并可通过其反馈引脚诊断负载状态。
5、结束语
随着汽车技术和网络通信技术的发展,汽车信息通信的网络化是必然趋势。汽车信息通信的多样化促进了汽车分级制网络的产生和发展。LIN作为一种性能优异、价格低廉的新型A类总线,必将进一步促进汽车分级制网络结构的实施和完善,推动汽车技术的发展。同时,LIN作为一个开放的协议,在工业及家电领域也有着广阔的应用前景。
参考文献
[1] Matthew Ruff, “Eaolution of Interconnect Network (LIN) Solution”. Motorola, Inc. IEEE 2003
[2] LIN Consortium. “LIN Specification Package Vision2.0” www.lin-subbus.org, 2003
[3] LIN Consortium. “LIN Specification Package Vision1.2” www.lin-subbus.org, 2000
[4] Christopher A. Lupini, “ Multiplex Bus Progression”. SAE 2003-01-0111
[5] John V. DeNuto, Stephen Ewbank, Francis Kleja, Christopher A. Lupini and Robert A. Perisho, Jr: “LIN Bus and its Potential for use in Distributed Multiplex Applications” . SAE 2001-01-0072