许灵斐 黎扬 王兆喜
四轮独立驱动电动汽车控制系统对通信确定性有更高的要求。基于汽车总线开发V模式流程,从四轮独立驱动控制系统通信需求出发,设计其FlexRay通信网络。采用Network Designer生成网络数据库,导入到CANoe.FlexRay软件对网络进行了全仿真、半实物仿真,验证了所设计的FlexRay通信网络的协议参数的正确性,最后将该网络用于样车中。实验结果表明,所设计的FlexRay通信网络完全可用于四轮独立驱动电动车控制系统,具有较高的可靠性、确定性及实时性,能够满足控制系统的通信需求。
随着车辆中ECU(Electronic Control Unit)数量增加,CAN(Controller Area Network)网络已经在车辆控制器通信中越来越普遍[1]。
汽车故障诊断技术的发展,使得车辆故障维修已经从人识别故障转变为控制器通过传感器诊断故障。
目前,故障诊断中,诊断通信协议存在
两种,在轿车上一般采用ISO15745以及ISO14229协议,而在商用车上,一般采用SAE J1939协议。
2 商用车故障诊断通信系统概述
诊断通信系统包含以下几个部分:
车内CAN通信网络、车内ECU,CAN适配器,以及诊断上位机软件。
某型商用混合动力汽车CAN网络拓扑分为CAN1低压网络和CAN2高压网络。CAN3网络用于诊断数据和HCU标定数据的发送。HCU(Hybrid Control Uint)是混合动力汽车的控制中枢,其在高压和低压网络上.在混合动力控制的过程中,HCU必须要实时获取其他各个模块的故障状态,所以其他各个ECU通过CAN报将各自模块的故障上传给HCU,HCU将故障信息汇总,通过SAE J1939标准诊断通信协议将故障传给外部诊断设备。另外HCU通过与自身连接的外部传感器,诊断由其直接控制的部件的故障状态。
应用层和诊断层支持的J1939-73标准协议,主要完成具体的诊断任务。定义了诊断消息DM1(Diagnistci Message)-DM21用于传输发动机参数数据、冻结帧数据以及标定、Bootloader数据等。
3 SAE J1939诊断通信网络层设计
CAN报文的一帧只能传输8个字节的数据,当需要传输的数据多于8个字节时,就需要采用多包传输机制来完成数据的传输。在J1939协议中,网络层由J1939-21定义。
从该CAN报文的数据中,从ID场读出SA,PGN以及Priority,数据长度和具体的数据,后交给其他软件模块处理。
当有数据需要发送时,首先需要根据数据的字节数计算一共需要发送的帧数。如果该数据为广播数据,则不需要考虑[2]其他节点的响应,只需要在传输时间参数范围内将数据发送出去。如果不是广播的数据,则需要按照多包传输协议。它是点对点的数据传输,首先发送CM_RTS请求报文,并启动定时器,开始等待接收节点发送CM_CTS报文。如果CM_CTS报文超时,则发送放弃连接报文Abort报文,放弃连接原因为时间超时。
4 故障诊断系统测试
在Microsoft Visual C++基于MFC开发了商用车的故障诊断软件,该软件通过硬件USB-CAN卡连接到车辆的诊断CAN网络上
5.1 诊断仪进行故障诊断
启动故障诊断软件,读取HCU内部的故障码。
5.2 冻结参数读取
车辆在故障时候的状态参数有助于帮助维修,所以本系统会将车辆在故障时的参数保存,当外部有请求的时候,使用DM9(冻结帧)将该数据发送出来。
读到的冻结帧参数如图12所示。
(作者单位:重庆邮电大学)