基于CAN总线的汽车电气系统的设计研究
2019-08-22刘金凤
刘金凤
(烟台汽车工程职业学院 车辆运用工程系, 烟台 264000)
0 引言
汽车电子化程度随着汽车技术的发展而逐渐提高,汽车总线技术更能满足数据通信的要求,目前在汽车电子领域中,建立基于总线技术的汽车电气控制系统是研究的热点,而实时交换大量控制信号在基于CAN总线的综合控制系统中即可实现,并且表现出了较强的抗干扰性能和较高的传输速率,该系统还具备线路简化、可根据实际需求进行扩展等优势,逐渐受到国内外汽车行业的高度重视。本文在汽车上运用信息技术,同时借鉴现场总线控制技术,保证信息流的实时、有效、全面,对于汽车系统的驱动则通过这些信息流来实现,汽车采用分布式电气控制系统,以降低使用成本,提高工作效率[1]。
1 现状概述
汽车电气控制系统包含大量的用电器件,这些用电器件能够实现大功率的驱动,是行车必备的用电设备,包括大型客车中用来给乘客提供服务的用电设备(如饮水机、通道灯、电视机、阅读灯等)。汽车底盘有数量较多的传感器,包括速度、水温、挡位、机油、刹车等传感器,还需大量的开关包括门、发动机舱及仪表盘等,中央控制器需要通过导线接收或反馈这些设备和传感器信息,这就导致了大量导线捆成线扎的形成,点对点电气控制方式,如图1所示。
图1 点对点电气控制方式
电子线路复杂程度逐渐提高,给汽车设计、装配、维护等工作增加了难度,线路接头数量的增加不利于安全性的提升,线重和占用空间会一定程度上降低效率。汽车内部相对运动的部分间(如车门窗的线束)会因过大的线路体积而加大过线的难度,为解决不断增加的电子装置带来的问题,对于汽车电气控制系统的设计,基于串行的信息传输成为解决问题的必然选择[2]。
2 基于CAN总线的汽车电气系统整体设计
2.1 现场总线的选择
CAN总线,可以双绞线、光导纤维或同轴电缆作为通信介质,信号以差分电压的形式出现,如图2所示。
图2 CAN总线位信号
CAN总线通信控制器中可成帧处理通信数据,对CAN协议的数据链路层和物理层功能进行了集成,CAN协议通过对通信数据块进行编码取代了传统的站地址编码,这是该协议的一个最大特点,正是通过这种方法的使用,实现了在理论上不限制网络内节点的个数,按照不同的 CAN 技术规范(2.0A或2.0B)可定义不同的数据块(211或229个),不同节点据此可完成相同数据的同时接收,数据段长度最多为 8个字节,占用总线时间较短,确保了通信的实时性,这对分布式控制系统的实现极为重要,可满足控制命令、数据测试及工作状态的一般要求,采用CRC检验的CAN 协议提高了数据通信的可靠性,同时具备相应的错误处理功能。结合性价比以及应用前景,考虑到其极高的可靠性和独特的设计,本文系统在开发研究的方向选择了 CAN 总线[3]。
2.2 系统整体架构设计
以电气设备配置要求为依据,以金龙大型客车(XML6796E1G)为开发平台,系统主要由前/左前/右前/后/主5个ECU节点组成,整体架构设计如图3 所示。
图3 系统整体架构
CAN总线采用星形拓扑结构,利用前、左前、右前及后4个ECU节点,汽车电气控制系统实现了就近位置的信息采集(29 路开关量),将其组成一帧报文信息(按照 CAN 总线通信协议),主 ECU 节点完成报文信息的接收,并对其进行逻辑分析与判断,然后将最终分析结果组成四帧报文信息(按照 CAN 通信协议),各目标 ECU 节点接收并滤波处理反馈回的报文信息,功率负载输出控制模块通过UART总线接收到各目标 ECU 节点发送的信息,完成 29 路功率输出的驱动。由专用单片机(AT89C51)完成开关信息的采集及功率输出的逻辑控制,每个ECU节点设计开关信息采集和功率负载输出各29 路,其内部包括P0、P1、P2、P3四个口,共有32个 I/O 口,其中看门狗喂狗信号输出口为P3.7,通信口为 P3.0 、P3.1[4]。前 ECU 节点主要负责对电控气/电喇叭,以及左侧车灯,雨刮器档位开关,钥匙开关的一挡 ACC、二挡ON和三挡STA ,左前侧的转向灯和雾灯等进行检测和控制;右前 ECU节点主要负责对右侧的近光灯、远光灯、转向灯、示廓灯、标志灯,前门的控踏步灯、指示灯开关、防夹开关,右前侧的转向灯、雾灯,喷水电机等进行检测和控制;前 ECU 节点主要负责对ABS、机油压力报警灯,仪表照明灯、TV 开关、前/后雾灯开关、行李仓灯开关等进行检测和控制;后 ECU 节点主要负责对熄火电磁阀的电源1和电源2,后侧的示阔灯、倒车灯、刹车灯、雾灯,以及空挡、倒车、后仓门限位、水位报警的开关等进行检测和控制。由CAN总线为系统提供通信介质,实现大批数据信息共享及控制信号的实时交换,显著提高电控单元信息利用率,从而保证汽车系统的运动是在实时有效的信息流的驱动下完成的[5]。
2.3 ECU节点设计
ECU节点不同应用程序的写入以所在位置为依据,具体设计如图4所示。
图4 ECU节点设计
ECU节点中:功率负载输出驱动口实现对汽车上所有功率负载的直接驱动,避免了继电器工作带来的安全隐患;汽车上各种开关量信息由29 路开关量输入口采集;CAN 通信接口可采用带屏蔽的双绞线,该接口提供两根通信线(CANH 和 CANL),正是通过良好外围接口的提供,提高了各ECU 节点间的通信效果[6]。
CAN通信模块对总线上(CAN)出现的报文信息进行验收滤波,由主处理器读取完报文信息后,主处理器将其释放到接收缓冲区并对其进行格式转换,功率输出控制模块实现串口信息的接收(通过 UART 总线),再按照一定的顺序将其发送到单片机上各 I/O口,实现对各负载功率输出的控制;对于各开关输入点的状况,将通过开关信息采集模块完成循环检测的过程,按照控制命令,将当前采集的开关状态信息传送至主处理器(通过 UART 总线),主控模块进行分析比较后,将同上一次有异同的开关状态信息组成一帧报文信息(按照一定格式),CAN 总线通过 CAN 通信模块接收这些报文信息,并对其作出进一步处理,完成对各开关输入点的循环检测。
3 系统软件架构设计
本文根据系统实际的功能将软件架构设计为驱动层、转换层和通信层3个层次,具体软件结构如图5所示。
系统通过3类消息的具体定义,即定义状态消息,接口消息,器件消息,以实现各层模块之间良好的通信效果。
引脚的电平变化情况输入后,在发送给转换层之前需将其转换为输入状态信息,这一部分由输入驱动模块负责;转换层接收到状态信息后,需通过输出驱动模块将其转变为实际引脚的电平变化;驱动层接收输入状态信息后,在发送给规则处理层供其进行逻辑分析之前,需通过输入转换模块将其转换为输入器件消息;规则处理层接收到状态信息(输出器件)后,在发送给驱动层之前,需通过输出转换模块将其转换(或由输入转换模块发送来的接口消息直接转换)为输出状态信息,对于输入器件消息(由输入转换模块接收的消息),通过规则处理层模块进行逻辑关系分析,并在发送给输出转换模块之前,将其映射为输出器件消息;信息在各转换层和规则处理层间的交换过程,由通过通信模块负责完成[7]。
4 系统测试
为验证本文系统的功能实现情况,在系统实验平台上完成了对本系统的测试,实验严格按照 CAN2.0 协议,实验平台分为两个阶段:分别在汽车电气模拟实验台和金龙大型客车(XML6796E1G)进行测试,由主ECU节点,左前和右前 ECU 节点,前、后 ECU 节点构成,完成对汽车电气设备的控制,和对各种 ECU 传感器信号的采集,并实现了仪表显示,测试结果表明基于 CAN 总线的汽车电气控制系统的设计,实现了在不同电子单元中对大批数据信息的共享,使系统内复杂控制信号的实时交换需求得以有效满足,显著提高了数据在不同功能电子单元间的通信能力,实现了高性能和高可靠性等独特的设计目标,对汽车总线电气控制系统改善具有现实意义。
5 总结
汽车行业发展迅速,其电气控制系统也在不断更新和完善,本文主要对汽车电气控制系统进行设计,设计该系统的目的在于提高电气系统的利用率,该系统基于CAN总线,可以将控制信号转换为信息流,汽车的电气控制系统通过分布式的控制模式,进一步提高了控制的效率,分布式的控制模式突破了传统的单一线束限制,实现了汽车电气控制系统使用效率的显著提高。