J1939协议中的故障诊断

一、诊断故障码的组成

SAE J1939协议中定义了详细的诊断故障代码Diag-nostic Trouble Code,简称DTC,用来描述故障的详细情况。诊断故障代码由4个字节构成,划分为4个部分:未知参数的编号SPN(19位)、故障模式标志FMI(5位)、发生次数OC(7位)、未知参数编号的转化方式CM(1位)。7c4393255ee3dc76d362c17f6488b913

其中,CM是未知参数编号SPN的转化方式控制位,也就是19位的SPN排列顺序定义,用CM外加不同的版本号定义,以便正确读出故障代码中的SPN编号。
aebf27a2d6d21129f89f23529747804c
7573243ca484d8797e0d69797aabd000
0cffbe2996db1f4202410009e1be55a1
c620ed44f6fb7c9d2e5e96081aa1ed90
c85cb1d2f2dcf2a05d61e1a3da43cae0

二、故障代码类型

2.1 DM1-当前故障代码

DM1报文的作用是及时报告正在发生的故障。

2.1.1 单帧DM1报文

假设是发动机电控单元(0x00)发出的故障信息,当前故障代码DM1的报文格式如图。
856afa0410d0b84800c966c63a66e9ec
其中数据区的字节1为故障灯状态,字节1中8-7位是故障指示灯状态(排放相关的故障),6-5位是红色停止灯状态(非常严重的故障),4-3位是琥珀色警告灯状态(警告信息),2-1位保护灯状态(不是车辆电路系统引发的故障信息)。

分析收到如下的DM1报文,分析是发生了什么故障?
733efd7800e71ab82c5aaf8ba4176fab
debd212425997aa63cd7cc8da35580aa
DM1在发生故障时,每1s发送一次。当由故障激活状态变为没有发生故障时,也是1s发送一次。不过,没有障碍时,发动机电控单元发送的DM1报文是:0x18FECA00 0x00 0xFF 0x00 0x00 0x00 0x00 0xFF 0xFF

2.1.2 多帧DM1报文

(结合上一章的传输协议进行学习)假设是发动机电控单元发生2个故障:发动机机油温度高于正常数值、发动机燃油温度高于正常数值时,均发生1次故障,要求红色停止灯点亮。其中,SPN为175为发动机机油温度,温度高于正常数值时,其DTC为0x010300AF,FMI=3,表示机油温度高于正常数值;oc=1表示出现1次故障。SPN为174为发动机燃油温度,温度高于正常数值时,其DTC为0x010300AE,FMI=3,表示燃油温度高于正常数值;oc=1表示出现1次故障。
(1)BAM通告报文
1160413494943189c5090047ff27c7b2
(2)第一条数据报文
1e48928ab7e8329294d7cfcaacb54134
(3)第二条数据报文
f3f8ee96646a32c3f940eb15a8d9c4fc

2.2 DM2-历史故障代码

DM2报文的作用是被询问的时候,报告已经发生过的故障。报文格式如下(其中字节1为故障灯状态,如2.1.1):
c62afd8e58c2b5451b802a39f5fa04fc
举例:故障诊断仪(0x2B)向发动机电控单元(0x00)发送请求报文,询问其历史故障信息情况。步骤如下:
(1)发动机电控单元向故障诊断仪发送请求报文
0b2cdd9f18f1b5ba225e06f3b5f813fd
(2)发动机电控单元应答请求报文,发送DM2历史故障报文
假设发动机历史故障是:机油温度超过正常数值时,SPN是175(0xAF),为发动机机油温度,DTC为0x020300AF。其中,FMI=3,表示机油温度高于正常数值;0c=2,表示出现过2次故障;这时让琥珀警告灯亮。
cf74248abf96e5e316ee2bfc63492b08
(3)发动机电控单元不支持该请求报文,发送NACK应答报文
158394f4d0ada778a8f7b788bab0bf20

2.3 DM3-历史故障诊断清除/复位

DM3报文的作用是清除历史故障。
假设故障诊断仪(0x2B)向发动机电控单元(0x00)发送请求报文,希望能清除发动机历史故障信息。步骤如下:
(1)故障诊断仪向发动机电控单元发送请求报文
ac73548eb0fdcb749e581f6958d64acb
(2)发动机电控单元不支持该请求报文,发送NACK应答报文
1b062954c3373ca4e4695c3bad01dcde
(3)发动机电控单元支持该请求报文,发送ACK应答报文
aa0bc4f2d0c614398c227d3c67e48533

2.4 DM11-当前故障码诊断数据清除/复位

DM11报文的作用是清除当前激活状态的故障。
假设故障诊断仪(0x2B)向发动机电控单元(0x00)发送请求报文,希望能清除发动机当前激活状态的故障信息。步骤如下:
(1)故障诊断仪向发动机电控单元发送请求报文
9cdeaed325ccacb3d5927d1b250a052f
(2)发动机电控单元不支持该请求报文,发送NACK应答报文
6f65ab76e54672d41dcabef4e2c72dfb
(3)发动机电控单元支持该请求报文,发送ACK应答报文
547e605eb580884873e3f41522fcef1d

2.5 DM4-停帧参量

DM4报文的作用是报告故障发生时的状态,如车速、发动机转速、扭矩等。停帧指的是当接收到一个诊断的故障代码时,控制模块记录该时刻的一系列状态参数。停帧包含要求的参数以及任何一个制造商的专用信息。
假如发动机发生燃油温度过高的故障,SPN是174(0xAE),为发动机燃油温度,温度高于正常数值时,其DTC为0x010300AE。其中,FMI=3,表示燃油温度高于正常数值;0c=1,表示出现一次故障。现故障诊断仪(0x2B)向发动机电控单元(0x00)发送请求报文,希望获取其停帧信息,步骤如下:
(1)故障诊断仪向发动机电控单元发送请求报文
bc994ae6d456c7a2d3b3cea0e4491f0d
(2)发动机电控单元不支持该请求报文,发送NACK应答报文
ce36996d2edda8737cf52ed5191b5c9b
(3)发动机电控单元没有累积的诊断故障代码时的响应报文结构
11be40a6b1b1fb325c63af42efc047c2
(4)假如发动机发生燃油温度过高的故障,13字节(不包括制造商专用信息)
首先,发送BAM通告报文。
0cfb59f5ff93f64ba9ee8cacd95503df
其次,发送TP.DT数据报文。
ba3ccf29e4bf0d660563400cc0a1636a
eed191793ac2c9a6f387ba0a385d2bab

posted @ 2025-08-19 21:49  SureFire*Xin  阅读(254)  评论(0)    收藏  举报