摘 要: 随着CAN/LIN网络在汽车车身控制系统中广泛的应用,为了满足国产汽车车身控制总线的迫切需求,设计了一种基于CAN/LIN总线的整车管理系统的硬件方案。方案完成了CAN/LIN网关接口驱动电路设计及CAN/LIN网关的硬件电路设计。对车身网络控制节点软件进行了设计,该车身网络控制系统在网络通信中充分实现了数据共享。
关键词: 总线协议;CAN/LIN网关;接口电路
随着汽车工业的发展,消费者和政府相关部门对于安全、舒适、节能、环保等方面的需求促使电子控制单元和系统广泛地应用在汽车中,而汽车也随之日益向电子化、智能化方向发展[1]。但是日益增多的电子系统也带来了新的问题,越来越多的电子控制单元与传感器必然会需要越来越多的连线,除了增加成本、增加车身自重,更重要的是给布线带来了巨大的困难,同时还增加了安全隐患,降低了整车可靠性。因此,提高电控单元间互相通信性能和降低导线成本已成为迫切需要解决的问题。
目前,车内的电子控制系统主要由CAN/LIN网络组成,发展中的汽车网络技术还有高速容错网络FlexRay、用于多媒体和导航的MOST,以及蓝牙、无线局域网等无线网络技术。LIN是一种辅助的总线网络,在不需要CAN总线的场合使用LIN总线可大大降低系统成本。汽车大量应用电子技术提高汽车性能水平已是不争的事实,CAN总线的应用也被人们所认同,而CAN、LIN混合网络的应用也将使汽车网络的可靠性能和经济性得到很大提高[1]。
1 CAN/LIN总线概述
1.1 CAN总线协议
CAN(Controller Area Network)总线是一种有效支持分布式控制和实时控制的串行通信网络,目前已经在国外汽车的电器网络中得到了广泛的应用。CAN总线采用了许多新技术及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。CAN总线是目前唯一有国际标准的现场总线,它为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从;在报文标识符上,CAN上的节点分成不同的的优先级,可满足不同的实时要求,优先级高的数据最多可在134 μs内得到传输;CAN总线采用非破坏总线仲裁技术;CAN节点只需要通过对报文的标识符滤波即可实现点对点、1点对多点及全局广播等几种方式传送接收数据;CAN的直接通信距离最远可达10 km(速率在5 Kb/s以下),通信速率最高可达1 Mb/s(此时通信距离最长为40 m);报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低;CAN的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果;CAN总线的通信介质可为双绞线、同轴电缆或光纤,选择灵活;CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响[1-2]。
1.2 LIN总线协议
LIN是由BMW、AUDI等7家公司联合发起的1个专门用于汽车控制网络的低成本的串行通信协议。LIN总线是一种辅助的总线网络,在不需要CAN总线的带宽和多功能场合,如智能传感器和抽动装置之间的通信,使用LIN总线可大大节省成本。LIN总线为单主节点/多从节点模式,即没有总线仲裁;能保证信号传输的延迟时间;它是带时间同步的多点广播接收,从节点无需石英或陶瓷谐振器;基于UART接口,几乎所有的单片机都具备LIN必需的硬件;极少的信号线即可实现国际标准ISO9141规定;不需要改变LIN从节点的硬件和软件就可以在网上增加节点;通常1个LIN网络上节点数目小于12个,共有64个标志符。每个报文帧包括报头和响应两部分,报头由主节点发送,内有同步间歇信号、同步字段信号和标识字段信号;而响应部分可能由主节点或者从节点发送,包含报文长度1~8个字节的有效载荷和1个校验字节。对于从节点,它需要检测报头数据,并根据报头内容决定是否接收后续数据内容或者发送数据到总线上[1]。
2 网关硬件实现
1个车身控制网络有很多CAN和LIN节点,如天窗、雨刮、座椅、车灯及组合开关等,这些模块节点可通过网关实现数据的相互通信。图1为网关的结构拓扑图,CAN节点信号通过CAN驱动接口传送到MCU,并经MCU处理后把CAN信号转换成LIN信号,通过LIN驱动接口把信号发送到LIN总线,控制相应的LIN模块动作;同样的LIN信号经MCU后可转换为CAN信号,实现相应控制功能。
2.1 中央控制器电路实现
中央控制模块的核心是80C51单片机,在CAN通信接口中CAN控制器选用SAJ1000,如图2所示。微处理器负责SJA1000的初始化,并负责整个网关的监控任务及CAN总线与LIN总线的通信任务。SJA1000是一种独立的CAN控制器,主要用于移动目标和一般工业环境中的区域网络控制,它是Philips半导体公司PCA82C200 CAN 控制器的替代产品,而且还增加了1种新的操作模式—PeliCAN,这种模式支持CAN2.0B协议。在边线上,SAJ1000的AD0~AD7连接到80C51的P0口,CS连接到80C51的P2.7口。P2.7为0时,CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读/写操作。SJA1000的RD、WR、ALE分别与80C51单片机的对应引脚相连。INT引脚接80C51单片机的INT0,可通过中断方式访问SJA1000。80C51单片机的10和11管脚连到LIN接口电路,实现与LIN总线的通信[3]。
2.2 CAN接口驱动电路
CAN控制器和系统物理总线之间的接口采用Philips公司的CAN收发器TJA1050,它具有对CAN总线的差动发送和接收功能。TJA1050总线收发器与ISO11898标准完全兼容,优化了CANH与CANL之间的耦合,因此大大降低了信号的电磁辐射,具有强电磁干扰下宽共模范围的输送接收能力,适用于汽车和工业应用[2]。为了增强CAN通信的可靠性,CAN总线网络的2个端点通常均接有抑制反射的终端匹配电阻,如图3所示。匹配电阻连接在CAN-H和CAN-L之间,终端匹配电阻的大小由传输电缆的特性阻抗所决定。例如双绞线的特性阻抗为120 Ω,则总线上的2个端点应集成120 Ω终端电阻。
2.3 LIN接口驱动电路
LIN总线接口驱动电路如图4所示。TJA1020是1个物理媒体连接,它是LIN主机/从机协议控制器和LIN传输媒体之间的接口,通过在LIN和BAT引脚之间串联反向电流二极管和电阻实现主机应用,如图4所示。协议控制器输入引脚TXD的发送数据流被LIN收发器转换为总线信号,而且电平翻转速率和波形都受到限制,以减少电磁辐射。TJ1020的接收器检测到LIN总线上的数据流并通过RXD引脚将它传送到协议控制器。收发器有低功耗管理模式,它在睡眠模式中几乎不消耗电流,并在错误模式中减少功率消耗[4]。
3 系统软件实现
CAN/LIN网关软件主要实现CAN与LIN总线之间的协议转换,即将接收到的CAN格式报文用LIN协议进行封装并发送到相应的控制节点,同时把接收到的LIN格式的报文用CAN协议进行封装并发送到相应节点及车身BCM模块等完成相应的动作,从而实现CAN与LIN节点的一致、透明通信传输[4]。
为了实现上述通信任务,其软件设计主要包括以下几个部分:主监控程序、CAN和LIN接口芯片的初始化、CAN报文的接收和发送及LIN报文的接收和发送。主监控程序负责对CAN和LIN报文的接收缓冲区进行监视,若某一路缓冲区非空,则向另一路转发。程序开始时即进入程序初始化,进入初始化程序有3种方式:硬件复位、软件复位、上电复位。初始化程序对所有的报文对象进行初始化操作。初始化后,中央控制器采取查询与中断方式监控整个系统,实现报文协议转换、接收与发送。
基于CAN/LIN网关的汽车CAN、LIN混合网络,不仅可以有效地降低汽车整车成本,而且可减小总线的使用率,并可实现整个网络数据通信的一致性、透明性。随着汽车电子技术的网络化发展趋势,低成本的CAN/LIN混合网络将会得到越来越广泛的应用。
参考文献
[1] 南金瑞,刘波澜.汽车单片机及车载总线技术[M].北京:北京理工大学出版社,2007.
[2] 饶运涛,邹继军.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2007.
[3] 邓志华.车载网络CAN和 LIN互连技术的研究[J].计算机应用,2006(1):44-46.
[4] 崔俊峰.车射混合网络中CAN/LIN网关的设计与实现[J].微计算机信息,2006,22(2-3):201-204.