Research on Fault Diagnosis System for a Pure Electric Car based on CAN Bus
CUI Shu-chao, CHAI Zhi, NAN Jin-rui ( National Engineering Laboratory for Electric Vehicles,Beijing Institute of Technology,Beijing 100081,China)
Abstract: As an important part of pure electric cars,CAN Network plays a key role in communication among most ECUs. Because of a certain defect rate in electronic devices,it is needed to develop a fault diagnosis system for a pure electric car based on CAN Bus. According to ISO 15765,a fault diagnosis system is developed,its fault diagnosis codes are designed and the system debugging is completed. The reliability of the system is proved in the laboratory.
Key words: CAN Bus,ISO15765,Pure electric car,Fault diagnosis
汽车智能化的发展,导致汽车上电子控制单元载故障诊断标准 IS0 15765体系结构,设计了基于 逐渐增多,某个 ECU出现错误则很难方便的检测CAN网络的故障诊断系统及控制器故障诊断代码,出来,说明传统的线束连接方法早已不能满足要利用瑞典先进的 KVASER USBcan II总线分析仪对求. CAN网络由于其高性能、高可靠性以及独特纯电动汽车下线故障诊断系统的开发展开研究. 的设计,而且能够检测出通信中产生的任何错误而越来越受到人们的重视,被越来越多的汽车制造商1 ISO 15765协议介绍 应用于汽车控制、诊断和通信[1].福田纯电动环卫车采用基于 SAE-J1939的 CAN通讯协议作为主ISO 15765作为一种基于 CAN总线的汽车网络通信网络来控制各个控制器的信息传输.文中以福诊断协议,因其在传输机制、时间控制、错误检测田纯电动两吨环卫车为例,分析了基于 CAN的车等方面的优点,目前在汽车网络诊断中得到广泛应
收稿日期 :2012-02-22. 基金项目 :节能与新能源汽车专项 ( Z10110405140001). 作者简介 :催书超 (1988-),男,硕士,研究方向 :车载总线技术 .
第 2期崔书超等:基于 CAN总线的纯电动汽车故障诊断系统·45·
用[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,传递电池电压、温度等信息,信息刷新速度略慢.
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格式
( bit) |
1 |
|
→ 29 |
→1 64 |
P |
R |
DP |
PF |
PS |
SA |
Data Field |
1~ 3 |
4 |
5 |
6~ 13 |
14~ 21 |
22~ 29 |
1~ 64 |
优先权 P越小,则优先级越高;保留位 R固定为 0;数据页 DP也固定为 0; PF代表报文帧的传输方式; PS取决于 PF; SA规定为报文 ID的源地址. J1939 PDU的第 4到第 21位为参数值 PGN ( Parameter Group Number),PGN对数据块 (参数值)进行编号,广播方式下.
ECU根据 PGN识别参数块内容.表 2以电机检测模块为例来说明报文编码规则.
表 2电机控制器报文编码
电机控制器 1# MC1
标识符 |
|
数据定义 |
PGN = 2256 |
位置 |
数据名 |
P 6 |
R 0 |
DP 0 |
PF PS SA 8 208 239 |
Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7 |
实际转矩低字节 实际转矩高字节 控制器直流电压低字节 控制器直流电压高字节 电机控制器温度 电机温度 电机控制器故障信息 保留 |
R、DP、PF、PS由高到低转换为二进制则
为 PNG:
PNG = 0 0 00001000 11010000B = 2256D
将 P、R、DP、PF、PS、SA由高到低组合起来则构成 29位的扩展 ID,ID在报文传输过程中具有唯一性,也具有识别作用,报文的 ID为: ID = 110 0 0 00001000 11010000 11101111B = 403230959D = 1808D0EFH
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格式.
·46· |
|
|
|
|
|
|
车辆与动力技术 |
|
|
2012年 |
|
|
|
|
|
|
|
表 3 DTC格式 |
|
|
|
|
Byte3 |
|
|
|
|
Byte4 |
|
Byte5 |
|
Byte6 |
|
|
|
|
|
SPN |
|
|
FMI |
CM |
OC |
8 7 6 |
5 4 |
3 |
2 |
1 |
8 7 6 |
5 4 |
3 2 1 8 7 6 |
5 4 3 2 |
1 8 7 |
6 5 4 3 2 1 |
若 DM1接收到的 DTC信息为 :
0000 0000 0001 0111 1100 0010 1000 0001则 SPN = 0000 0000 0001 0111 110 = 0x00BEh =
190d =发动机速度错误
FMI =0 0010 =2d =数据不正确、不稳定
OC =00 0001 =1d
说明故障类型代码为 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故障、整车控制故障.出现故障,则对应的界面显示对应的故障信息.
第 2期崔书超等 :基于 CAN总线的纯电动汽车故障诊断系统·47·
下图为运行中的检测程序界面 :图 3为整车控制器信息界面 ;图 4为电池管理系统界面.图中表格与柱状图为单体电池电压.两个界面分别报主电机故障和绝缘故障,证明对车辆的实际检测起到了作用.
7结论
研究的基于 CAN总线的纯电动汽车故障诊断
系统利用车载网络的优势,制订出了故障代码;通过 KVASER USBcan II通信卡,并利用虚拟仪器 LabVIEW的强大功能,开发出一套可实时监控车辆各种状态和故障信息的监测和诊断平台,并能通过上位机对下位机进行控制.遇到故障时,通过解析故障码,可以很方便定位故障和解决故障.检测界面简洁且功能强大,便于维护和扩展.该系统对车辆故障的排除指引了明确的方向,并在实际的运用中表明,该诊断系统简单有效,使用方便.