APP下载

基于CAN总线的纯电动汽车故障诊断系统

2012-08-21崔书超南金瑞

车辆与动力技术 2012年2期
关键词:报文代码总线

崔书超,柴 智,南金瑞

(北京理工大学 电动汽车国家工程实验室,北京 100081)

汽车智能化的发展,导致汽车上电子控制单元逐渐增多,某个ECU出现错误则很难方便的检测出来,说明传统的线束连接方法早已不能满足要求.CAN网络由于其高性能、高可靠性以及独特的设计,而且能够检测出通信中产生的任何错误而越来越受到人们的重视,被越来越多的汽车制造商应用于汽车控制、诊断和通信[1].福田纯电动环卫车采用基于SAE-J1939的CAN通讯协议作为主通信网络来控制各个控制器的信息传输.文中以福田纯电动两吨环卫车为例,分析了基于CAN的车载故障诊断标准IS0 15765体系结构,设计了基于CAN网络的故障诊断系统及控制器故障诊断代码,利用瑞典先进的KVASER USBcan II总线分析仪对纯电动汽车下线故障诊断系统的开发展开研究.

1 ISO 15765协议介绍

ISO 15765作为一种基于CAN总线的汽车网络诊断协议,因其在传输机制、时间控制、错误检测等方面的优点,目前在汽车网络诊断中得到广泛应用[2].ISO 15765网络诊断协议在应用层提供了全面的诊断服务.网络层通过向应用层提供服务接口获得诊断服务数据,通过内部处理将诊断数据转换成符合CAN网络通信的数据格式,最后通过数据链路层提供的服务接口发送数据.ISO 15765的网络层包含4种不同类型的协议数据单元 (PDU)[3]:单帧 (SF N_PDU)、首帧 (FF N_PDU)、连续帧 (CF N_PDU)、流控制帧 (FC N_PDU).ISO 15765-2定义了网络层发送和接收故障信息的诊断服务,所有CAN的诊断服务是对ISO 14229的一个补充.诊断信息 (DM)包含故障灯代码 (2-Bytes)和故障诊断代码 (4-Bytes),后者简称DTC.

2 整车CAN网络分析

CAN总线最初的构想就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增多的信号线.于是,一个多主方式的串行通讯总线被设计,其他外围控制器可以不受影响地挂在该网络上进行通讯,理论上该网络可以挂无穷多个节点,但由于受网络硬件电器特性的影响,CAN网络最多只能挂110个节点[4].福田纯电动环卫车的CAN网络拓扑如图1.采用两路高速CAN:CAN1为动力CAN,传递车速、档位等动力信息,信息刷新速率较快;CAN2为信息CAN,传递电池电压、温度等信息,信息刷新速度略慢.

图1 整车CAN网络拓扑简图

3 CAN总线通讯原理

福田纯电动2T环卫车内部采用CAN网络进行通信,它是基于 SAE-J1939的 CAN 2.0B.SAE J1939的数据帧是以PDU(Protocol Data Unit)为单位的,它共有7个域组成[5-6]:优先权 (P)、保留位 (R)、数据页 (DP)、PDU格式 (PF)、PDU特定场 (PS)、源地址 (SA)及数据域(Data Field),如表1所示.

表1 PDU格式

优先权P越小,则优先级越高;保留位R固定为0;数据页DP也固定为0;PF代表报文帧的传输方式;PS取决于PF;SA规定为报文ID的源地址.J1939 PDU的第4到第21位为参数值PGN(Parameter Group Number),PGN对数据块 (参数值)进行编号,广播方式下.

ECU根据PGN识别参数块内容.表2以电机检测模块为例来说明报文编码规则.

表2 电机控制器报文编码

R、DP、PF、PS由高到低转换为二进制则为PNG:

将P、R、DP、PF、PS、SA由高到低组合起来则构成29位的扩展ID,ID在报文传输过程中具有唯一性,也具有识别作用,报文的ID为:

4 故障诊断代码DTC编码规则

故障诊断代码DTC长度为4字节 (32-bit),包括:可疑参数组SPN(19-bit)、故障类型代码FMI(5-bit)、故障发生频率OC(7-bit)、SPN转算方法CM(1-bit).一般而言,SPN的值在SAE J1939-73中有严格的标准,但对于没有定义的标准,则需要用户自己定义,总共有4种方法可以定义SPN[3].如下表3为DTC格式.

表3 DTC格式

若DM1接收到的DTC信息为:

说明故障类型代码为2的,代表发动机速度错误的故障发生了1次.

5 故障代码的制订

分析各个节点可能出现的故障,当出现对应的故障的时候,对应的总线呈现隐形置1,反之显现显性置0.下面为各个控制器遵循规则制订的部分故障代码.

动力电池故障对应的故障代码:1,模块电压过高;2,模块电压过低;3,SOC过高、停止充电;4,SOC过低,需补电;5,过电流;6,温度过高停车;7,电池不匹配.

主电机故障对应的故障代码:1,电机控制器温度过高;2,电机温度过高;3,W相IGBT饱和保护;4,U相IGBT饱和保护;5,V相IGBT饱和保护;6,高压欠压 (预充电状态).

CAN故障对应的故障代码:1,整车控制器掉线;2,电池管理系统通信异常 (CAN1);3,空调系统通信故障;4,电机控制器通信异常;5,电池管理系统通信异常 (CAN2).

整车控制故障对应的故障代码:1,主电机故障;2,水泵电机故障;3,负极接触器闭合,但DCDC没有工作;4,电池均衡故障;5,电池箱连接故障;6,电池绝缘故障.

6 系统设计

系统在监测过程中,通过瑞典公司的双通道KVASER USBcanII实时的把从下位机和各个控制器发送到CAN总线上的CAN1,与CAN2的报文信息采集下来传递到监测的上位机中,由上位机进行实时信息提取,提取故障代码,经过上位机进行编译显示出故障原因,并可以发送指令发送到下位机,命令下位机完成各个指令.上位机工作的具体流程图如图2所示.

图2 上位机工作的具体流程图

在LabVIEW监测程序中采集数据,其关键技术是对数据采集卡Kvaser CAN卡的驱动程序的调用,在LabVIEW中,利用Call Library Function节点模块可以很容易地实现访问动态连接库,在DLL调用应该注意:①函数返回类型,LabVIEW中函数的返回类型可以是空 (void)、整数 (integer)和浮点数 (float)指针为返回值;②函数的参数、数据类型以及参数的传递顺序;③DLL使用的调用规程,可以采用C和_stdcall(缺省值)两种调用,win32API使用缺省调用规程 (_stdcall).

对应的检测软件包括整车控制器界面、电机控制器界面、电池控制器界面、空调控制器界面,可以直接显示各个控制器信息,并能模拟各个控制器控制下位机,信息中心则可以显示对应故障:动力电池故障、主电机故障、CAN故障、整车控制故障.出现故障,则对应的界面显示对应的故障信息.

下图为运行中的检测程序界面:图3为整车控制器信息界面;图4为电池管理系统界面.图中表格与柱状图为单体电池电压.两个界面分别报主电机故障和绝缘故障,证明对车辆的实际检测起到了作用.

7 结论

研究的基于CAN总线的纯电动汽车故障诊断系统利用车载网络的优势,制订出了故障代码;通过KVASER USBcan II通信卡,并利用虚拟仪器LabVIEW的强大功能,开发出一套可实时监控车辆各种状态和故障信息的监测和诊断平台,并能通过上位机对下位机进行控制.遇到故障时,通过解析故障码,可以很方便定位故障和解决故障.检测界面简洁且功能强大,便于维护和扩展.该系统对车辆故障的排除指引了明确的方向,并在实际的运用中表明,该诊断系统简单有效,使用方便.

[1] 陈清泉,孙逢春,祝嘉光.现代电动汽车技术[M].北京:北京理工大学出版社,2002.

[2] 牛子孺.驾驶室电器集成检测系统硬件设计与实现[D].武汉:武汉理工大学,2010.

[3] XI Junqiang,XIAO Kuan,YANG Aijun.AMT-Fault-Diagnosis Device Based on ISO 15765 [J].JOURNAL OF BEIJING INSTITUTE OF TECHNOLOGY.2010,19(4):405-406.

[4] 杨 飞,郑贵林.基于CAN总线的监控系统设计[J].微计算机信息 (嵌入式与soc),2005,21(7):34-36.

[5] Konrad Etschberger.Controller Area Network [M].Weingarten:IXXAT Automation GmbH,2000.

[6] Vector Informatik GmbH.CANoe Installation Guide,CANoe User Guide,CANdb++User Guide[M].Eberdingen:SATZTEAM Fotosatz&Neue Medien GmbH,2002.

猜你喜欢

报文代码总线
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
创世代码
创世代码
创世代码
创世代码
ATS与列车通信报文分析