随着现代汽车中所使用的电子控制系统和通讯系统越来越多,如发动机电控系统、自动变速器控制系统、防抱死制动系统(ABS)、自动巡航系统(ACC)和车载多媒体系统等,这些系统之间、系统与显示仪表之间、系统和汽车故障诊断系统之间均需要进行数据交换,如使用普通的线索完成这些数据之间的交换,线索总长可能超过1600m,实现起来是相当困难的。为解决这一问题,德国的博世(Bosch)公司及几个半导体生产商开发出一种新型的车用控制器---CAN。
CAN简介
CAN是控制器局域网络(ControllerAreaNetwork)的简称,是一种串行多主站控制器局域网总线。它具有很高的网络安全性、通讯可靠性和实时性,而且简单实用,网络成本低。特别适用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。
CAN总线是一个多路传输系统,当某一单元出现故障时不会影响其他单元的工作,CAN总线对不同数据的传输速率不一样,对发动机电控系统和ABS等实时控制用数据实施高速传输,速率为125K波特--–1M波特,对车身调节系统(如空调)的数据实施低速传输,传输速率在10—125K波特,其他如多媒体系统和诊断系统则为中速传输,速率在两者之间,这样的区分提高了总线的传输效率。
CAN总线的特点
CAN总线可有效支持分布式控制或实时控制。该总线的通信介质可以是双绞线、同轴电缆或光纤,其主要特点如下:
CAN总线在车控制中的应用
现代汽车典刑的控制单元有发动机控制模块、变速器控制模块、多媒体控制模块、气囊控制模块、空调控制模块、巡航控制模块、车身控制模块(包括照明指示和车窗、刮雨器等)、防抱死制动系统(ABS)防滑控制系统(ASR)等。完善的汽车CAN总线网络系统架构如图1所示。
本系统中,CAN节点采用:ECU(AT89C51)+CAN控制器(SJA1000)+CAN收发器(PCA82C250)的电路结构。
CAN总线控制器、总线驱动器和单片机连接基本方法如图2所示。
车身控制模块中的CAN应用层协议
协议原则
本协议遵循CAN2.0B规范,根据车身控制模块的特点,采用源→目的方法,每个节点都有自己固定的标识地址,且节点数小于64,设计时可将中央控制模块设为主节点,而将车门、电动座椅子模块及自检子模块设置为从节点。本协议可完成以下功能:
(1)特定信息的广播;(2)主从节点之间的连接;(3)主从节点之间的信息交换(包括故障信息)。
本协议采用帧优先原则分配标识符,每一帧标识符中的高四位表示帧类型,不同帧类型有不同的优先权,优先权决定了各种信息帧在同等情况下的发送顺序,协议中的29位标识符的分配如下:帧类型(4位)+目的地址(6位)+源地址(6位)+命令(或状态、报告)属性(13位)[或数据属性+分段标志+分段号(共13位)]。对所有的命令或状态、数据、报告属性、除定时采集发送的数据外,原则上均需应答(发送确认帧以保证通讯正常)。
帧格式仲裁场和控制场定义
仲裁场由29位标识符ID28-ID0以及SRR、IDE和RTR组成,SJA1000中的寄存器17-21用来存放扩展帧格式帧信息的标识符。发送时,SRR=1,IDE=1,RTR=1/0(远程帧/数据帧)。标识符中的ID28-ID25为车身控制模块交换报文的帧类型(共4位)。ID24-ID19为车身控制模块中帧信息使用者的地址(或称为目的地址,共6位)。ID18-ID13为车身控制模块中帧信息发送者的地址或称为源地址(共6位)。ID12-ID5为车身控制模块中交换的命令、状态、数据或报告属性(共8位),ID4位需附加命令或状态、数据、报告属性时的分段标志。ID3-ID0为附加命令或状态、数据、报告属性的分段号(共4位)。当ID4=0时,ID3-ID0控制场、数据寄存器0-7有效。对于远程帧,则可忽略ID4-ID0以及控制场的值。SJA1000的寄存器16低四位DLC3-DLC0可构成控制场,以决定数据帧的数据长度。
车身控制模块CAN2.0B通讯报文约定
按车身控制模块的节点要求,通讯的信息帧分为表1所列的6种,表1中的优先级按序号从高到低排列。其目的地址和源地址的分配见表2所列。
其工作方式如下:
(1)开机后或唤醒时,从节点向主节点发送状态信息,主节点发送广播信息远程帧(两次),广播信息为共用信息,包括车速信号,档位信号,点火开关位置信号等。(2)正常情况下,从节点内部巡查各端口状态,如有故障则向主节点发送故障代码3次,主节点收到三次故障报警后开始响应,从节点停止发送,一旦故障消失,再向主节点发送正常信息。在主节点中应有一故障表,以用于已诊断模块的通讯。(3)主结点分别发送自检信息后,如各从节点正常,则发送正常信息,状态和数据帧。如有故障,则通过分段数据帧发送故障报警帧。(4)从节点监测到正常输入信号的变化(包括开关量和模拟量采样级数的变化)后,便通过报告帧发送信息给主节点,主节点则发送命令帧以示响应。
通讯报文定义
表3所列是中央控制模块与诊断模块的通讯报文定义。表中,aaaa为分段号,可在故障代码多于8个时设置,最多可达传送16×8个字节代码;bbbbbb为各传感器代号,其响应帧采用不分段的数据帧,cccccccc为执行相应动作的代码,如车窗上升为00000001,下降为00000010,该响应最多可以执行256个动作。响应帧采用远程帧,请求帧为远程帧。
在系统正常工作时,各节点的通讯协议约定如表4所列。表中的dddd为分段起始命令中包含的总段数;eeee为广播信息的某一段号,控制场中的数据长度为该段内的数据长度,数据场中的数据广播的某段实际数据,按顺序定义数据有:◆数据寄存器1=车速信息高8位;◆数据寄存器2=车速信号低8位;◆数据寄存器3=发动机转速信号高8位;◆数据寄存器4=发动机转速信号低8位;◆数据寄存器5=点火开关位置,其中,0表示钥匙拔出;1表示钥匙位于OFF;2表示钥匙位于ACC;3表示钥匙位于RUN;4表示钥匙位于START;◆数据寄存器6=档位信号,0表示空档;1表示驱动档;2表示驱动档;3表示倒档;4表示驻车档;
◆数据寄存器7=遥控信号,0表示遥控解锁主驾车门;1表示遥控锁定主驾车门;2表示遥控解锁所有车门;3表示遥控锁定所有车门;4表示遥控解锁行礼箱;◆数据寄存器8用于防盗模式;0表示进入防盗模式,1表示解除防盗模式;◆数据寄存器9-16:保留。
结束语
CAN总线以其高性能,高可靠性及独特的设计,受到工业控制领域和汽车领域的广泛重视,已被公认为最有前途的现场总线之一。我们深信不久的将来,国产的CAN总线汽车必将诞生。