Board logo

标题: 如何设计基于CAN/LIN总线的车身网络控制系统? [打印本页]

作者: yuchengze    时间: 2017-5-25 20:31     标题: 如何设计基于CAN/LIN总线的车身网络控制系统?

1 前言
随着汽车电子技术及网络技术的不断发展,人们对汽车安全性、可靠性的要求也越来越高,为了解决由汽车电子元器件的增加而带来的通信问题,这就要求采用一种高速、多路、共享的汽车通信网络。
目前,已经开发出多种总线,如CAN(Controller Area Network)控制器局域网[1],LIN(Local Interconnect Network)局域互联网[2],FlexRay,Most等。但CAN和LIN构成目前汽车上最广泛的总线形式。
2 CAN总线介绍
20世纪80年代末,德国博世公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发了一种串行通信协议CAN[1],并使其成为国际标准(ISO11898)。到目前为止,世界上已拥有20多家CAN总线控制器芯片生产商,110多种CAN总线协议控制器芯片和集成CAN总线协议控制器的微控制器芯片。
CAN总线由于采用了独特的设计和新的技术,与一般的通信总线相比,它具有突出的可靠性、实时性和灵活性。CAN采用多主工作方式,成本低,且具有极高的总线利用率;CAN总线具有可靠的错误处理和检错机制,采用短帧结构,传输时间短,受干扰的概率低;采用非破坏性总线仲裁技术,节点在错误严重的情况下具有自动退出功能。
3 LIN总线介绍
1998年,Audi、Motorola、BMW、DaimlerChrysler 、VCT、Volvo和Volkswagen七家公司联合提出了新型A类总线[3-5]——LIN(Local Interconnect Network)。LIN是一种低成本短距离的低速网络,它旨在传送开关设置和传感器输入等状态的变化,并对这种变化做出响应,因此它只适用于对传送时间要求不高的低速事件,并不适用于发动机控制等高速事件。
LIN总线有其独特的特点,它成本低,基于通用的UART/SCI接口;LIN的传输速率可高达20Kb/s,总线长度最大可以达到40m;采用单主多从模式,不需要总线仲裁;在从节点中不需要晶体振荡器和陶瓷振荡器时钟就能实现自同步:可预先计算确定性信号的传播时间;无需改变LIN从节点的硬件和软件就可以在网络上增加或删除节点等。
3整车系统通信网络设计
整车系统通信网络以CAN总线为主,LIN总线为辅,CAN和LIN在汽车通信网络中相互结合应用共同构架汽车整车系统通信网络。汽车上各个控制系统对网络信息的传输延迟比较敏感,如发动机控制、变速箱控制、安全气囊控制、ASR/ABS/ESP控制、牵引力控制等对网络信息传输的实时性要求较高,需要采用高速CAN总线,其传输速率高达500kbps~1Mbps;空调控制、仪表控制、雨刷控制、照明控制、门窗控制等需要采用低速LIN总线,其传输速率为20kbps。低速LIN总线对信息传输的实时性要求不高,但子系统数量较多,将这些低速子系统与高速子系统分开,有利于保证高速子系统的实时性,同时还可以降低成本。基于上述考虑,汽车整车CAN/LIN总线网络拓扑结构图如图1所示。
CAN和LIN总线相互独立,通过主控制器(CAN/LIN网关)进行数据共享和数据交换。主控制器也是整车管理系统的核心,它的主要功能就是分析处理各种信息并发出指令,还起到协调汽车各个控制单元及电器设备工作的作用。
4 系统软硬件设计
4.1 CAN/LIN接口设计
CAN/LIN网络中有很多的CAN节点和LIN节点,它们通过一个CAN/LIN接口网关实现CAN/LIN网络之间的数据通信。CAN/LIN总线接口设计如图2所示,通过CAN/LIN总线的接口,CAN、LIN数据通过中央控制器可以相互转换,当LIN数据帧需要传输到CAN网络时,控制器网关收到LIN总线数据帧后就会将LIN标志符转换成CAN标志符,这样数据就从LIN总线传输到了CAN总线,反之数据也可以从CAN总线传输到LIN总线。
4.2 CAN通信网络硬件设计
为CAN总线通信接口卡电路原理图,系统采用P87C591芯片作为主控制器。电控单元的微控制器(P87C591)通过数据总线经过光电隔离器(6N137)与CAN总线控制器(SJA1000)直接相连。CAN总线控制器带有一个接收缓冲器和一个发送缓冲器,CAN总线控制器的发送端口Tx0,接受端口Rx0、Rx1分别与CAN总线发送接收器的TxD、RxD、Vref端口直接相连,CAN总线的两条差分接收发送线CAN_L和CAN_H各接一个120 的总线匹配电阻。当CAN总线被某个节点占用的时候,该节点的发送端接CAN_H,电平为3.5V,接收端接CAN_L,电平为1.5V,当CAN总线空闲时,CAN_H和CAN_L上的电平均为2.5V。
系统采用PCA82C250作为CAN控制器P87C591和物理层总线间的接口,提供对总线发送和接收数据。使用PCA82C250还可以提高系统得抗干扰能力,保护总线,降低射频干扰,实现热防护等。
为了进一步提高系统的抗干扰能力,选用高速光电隔离芯片6N137构成隔离电路,将微控制器P87C591的I/O信号与SJA1000隔离,以提高系统的可靠性。
4.3 LIN通信网络硬件设计
LIN节点的硬件接口电路主要包括微控制器P87LPC76X,LIN收发器MC33399和电源调整电路。P87LPC76X采用80C51加速处理器结构,指令执行速度是标准80C51MCU的2倍。微控制器由TX0向MC33399的TXD发送数据,MC33399的RXD向微控制器的RX0发送数据。该电路采用Wake引脚输入开关唤醒方式,其中5V外部稳压器是可控的。由于该电路内部在LIN引脚与电源引脚集成了电阻和串联二极管,所以总线从节点不需要其它外置元件。但对于主节点,则必须在外部增加 的电阻,并且要串联一个二极管以防止电池断电时MC33399通过总线供电。
4.3 CAN/LIN总线软件设计
CAN通信接口模块程序主要包括三部分:初始化子程序、发送子程序(包括中断服务程序)和接收子程序。程序开始时即进入程序初始化,进入初始化程序有三种方式:一是硬件复位;二是软件复位;三是上电复位。初始化程序会对所有的报文对象进行初始化操作(所有值设置为0)。初始化结束之后,程序开始读取开关状态,进入CAN发送子程序,在CAN发送子程序中,只有当发送缓冲器为空时才可以发送数据,否则将会等待直到发送缓冲器为空。接收子程序从接收缓冲器中读取接收数据,经程序处理后即可接收。
LIN通信接口模块程序也主要包括三部分:LIN初始化子程序、发送子程序(包括中断服务程序)和接收子程序。在初始化阶段,对LIN收发器进行配置并将协议处理其变量赋初值。同CAN主节点软件发送子程序一样,只有在发送缓冲器为空时才可以发送数据。中央控制器节点是LIN总线的主节点,其他的都为从节点,所有的LIN帧都由主节点发送,且主节点负责LIN节点的监控和管理。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0