开篇:润墨网以专业的文秘视角,为您筛选了一篇基于CAN/LIN总线的车身网络控制系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:随着汽车电子技术及网络技术的不断发展,汽车上的电子设备越来越多,人们对汽车安全性、可靠性的要求也越来越高,为解决由汽车电子元器件的增加而带来的通信问题,要求采用一种高速、多路、共享的汽车通信网络,文章主要从车身网络控制系统方面介绍了CAN总线的应用。
关键词:CAN/LIN总线;总线网络设计;CAN/LIN总线软硬件设计
一、CAN/LIN总线介绍
1.CAN总线
20世纪80年代末,德国BOSCH(博世)公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换,提出最初用于汽车电子装置互联的控制器局域网――CAN串行通信总线系统,之后被汽车行业和控制领域广泛应用,已成为国际标准(ISO11898)。到目前为止,世界上已拥有20多家CAN总线控制器芯片生产商,110多种CAN总线协议控制器芯片和集成CAN总线协议控制器的微控制器芯片。
CAN总线由于采用了独特的设计和新的技术,与一般的通信总线相比,具有突出的可靠性、实时性和灵活性。CAN采用多主工作方式,成本低,且具有极高的总线利用率;CAN总线具有可靠的错误处理和检错机制,采用短帧结构,传输时间短,受干扰的概率低;采用非破坏性总线仲裁技术,节点在错误严重的情况下具有自动退出功能。
2.LIN总线
1998年,Audi、Motorola、BMW、DaimlerChrysler、VCT、Volvo和Volkswagen七家公司联合提出了新型A类总线――LIN(Local Interconnect Network)。LIN是一种低成本短距离的低速网络,旨在传送开关设置和传感器输入等状态的变化,并对这种变化做出响应,因此它只适用于对传送时间要求不高的低速事件,并不适用于发动机控制等高速事件。
LIN总线成本低,基于通用的UART/SCI接口,LIN的传输速率可高达20Kb/s,总线长度最大可以达到40m;采用单主多从模式,不需要总线仲裁;在从节点中不需要晶体振荡器和陶瓷振荡器时钟就能实现自同步;可预先计算确定性信号的传播时间;无需改变LIN从节点的硬件和软件就可以在网络上增加或删除节点等等。
二、整车系统通信网络设计
因汽车上各种电器对网络信息传输延迟敏感性差别很大,整车系统通信网络以can总线为主,lin总线为辅,其中发动机控制器、自动变速器控制器、ABS控制器、安全气囊控制器等之间协调关系所要求实时性很强,需要采用高速CAN总线,其传输速率高达500kbps~1Mbps;而空调控制、仪表控制、雨刷控制、门窗控制、前后车灯开关、车门开闭、座位调节等简单事件对信息传输延迟要求要宽松得多(传输延迟允10ms-100ms),可采用低速LIN总线,其传输速率为20kbps。
低速LIN总线对信息传输的实时性要求不高,但子系统数量较多,将这些低速子系统与高速子系统分开,有利于保证高速子系统的实时性,同时还可以降低成本。因为CAN和LIN总线相互独立,通过主控制器(CAN/LIN网关)即可进行数据共享和数据交换。主控制器也是整车管理系统的核心,它的主要功能就是分析处理各种信息并发出指令,还起到协调汽车各个控制单元及电器设备工作的作用。
三、CAN/LIN总线硬件设计
1.CAN/LIN总线接口设计
CAN网络中有很多的CAN节点,CAN节点就是车上的各种控制器单元(ECU),它们通过一个CAN接口网关实现CAN网络的数据通信。通过CAN/LIN总线的接口,CAN、LIN数据通过中央控制器可以相互转换,当LIN数据帧需要传输到CAN网络时,控制器网关收到LIN总线数据帧后就会将LIN标志符转换成CAN标志符,这样数据就从LIN总线传输到了CAN总线,反之数据也可以从CAN总线传输到LIN总线。CAN/LIN总线接口设计如下图所示:
目前的发展趋势是把CAN接口、发送/接收器与微控制器集成到一个芯片上,也就是单芯片CAN节点。例如:一个芯片加上一点辅助电路构成的控制单元,这种结构比较适合功能较简单的控制单元。
2.CAN通信网络硬件设计
图3为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。
四、CAN/LIN总线软件设计
CAN通信接口模块程序主要包括三部分:初始化子程序、发送子程序(包括中断服务程序)和接收子程序。程序开始时即进入程序初始化,进入初始化程序有三种方式:一是硬件复位,二是软件复位,三是上电复位。初始化程序会对所有的报文对象进行初始化操作(所有值设置为0)。初始化结束之后,程序开始读取开关状态,进入CAN发送子程序,在CAN发送子程序中,只有当发送缓冲器为空时才可以发送数据,否则,将会等待直到发送缓冲器为空。接收子程序从接收缓冲器中读取接收数据,经程序处理后即可接收。
LIN通信接口模块程序也主要包括三部分:LIN初始化子程序、发送子程序(包括中断服务程序)和接收子程序。在初始化阶段,对LIN收发器进行配置并将协议处理其变量赋初值。同CAN主节点软件发送子程序一样,只有在发送缓冲器为空时才可以发送数据。中央控制器节点是LIN总线的主节点,其他的都为从节点,所有的LIN帧都由主节点发送,且主节点负责LIN节点的监控和管理。
五、结论
目前,CAN总线作为一种可靠的汽车计算机网络总线已经在许多汽车上得到应用,并且我国许多的学者和厂家也都在研究开发国产的CAN总线。与CAN相比,LIN的成本较低,可作为低速CAN总线的替代产品,在汽车总线控制中也得到了应用。
参考文献:
[1] 袁文燕,迟瑞娟.基于CAN-LIN总线的汽车车身网络的设计[J].拖拉机与农用运输车,2006,33(6).
[2] 任哲,尹智勇,等.汽车CAN总线控制器的设计[J].微计算机信息,2007,3-2:262-263.