DTC及状态掩码

DTC的构成:

由 ISO 15031-6和ISO 14229-1的故障断码格式规定,DTC信息由四个字节组成,如下表所示:

其中DTCHighByteDTCMiddleByteDTCLowByte表示服务中的故障诊断码

StatusOfDTC表示故障码状态

DTCHighByte,DTCMiddleByte两字节表示故障内码,对应5位标准故障码。

5位标准故障码,第1位是字母,后面4位是数字。

第一个字节

我们把汽车系统分为四大类。分别是动力,底盘,车身,网络通信,分别用PCBU表示。

第一位字母

★简单一眼就能分辨PBCU的方法:

DTC+states =4个字节,看第一个字节;

如果第一个字节是<40,那就是P;

如果第一个字节是>=40且<80,那就是C;

如果第一个字节是>=80且<C0.那就是B;

如果第一个字节是>=C0,那就是U。

第二位数字

第三位数字

对于动力系统部分:该位“0”表示燃油和空气计量辅助排放控制整个系统, “1”表示燃油和空气计量系统;“2”表示燃油和空气计量系统(喷油器);“3”表示点火系统;“4”表示废气控制系统;“5”表示巡航、怠速控制系统;“6”表示与控制单元相关;“7”“8”表示变速箱系统等。

第二个字节

第四位和第五位数字

表示具体故障对象和类型。

举例说明:

故障码:U3210

U代表的就是Network网络故障,位于DTCHighByte字节的bit15、bit14位,且都为1;

3代表的就是ISO/SAE保留,位于DTCHighByte字节的bit13、bit12,且都为1;

2代表的就是燃油和空气计量系统(喷油器),位于DTCHighByte字节的bit11、bit10、biit9、bit8,且bit9为1其余全为0;

10代表的就是具体故障对象和类型,位于DTCMiddleByte字节上;

第三个字节

DTCLowByte:

描述故障种类和子类型,该部分内容描述需遵循ISO 15031-6。对于不需要该字节信息的DTC,该字节填充为0x00。

第四个字节

StatusOfDTC:

表示故障码状态;

DTC状态掩码(StatusOfDTC):

bit

描述

0

testFailed

当前周期检测到故障条件满足时置1

1

testFailedThisMonitoringCycle

当前运行循环中是否出现过testFailed=1

2

pendingDTC

当前或上一个运行循环中出现过testFailed=1

3

confirmedDTC

故障已确认并存储

4

testNotCompletedSinceLastClear

自上次清除故障信息后是否成功检测

已检测置0

5

testFailedSinceLastClear

自上次清除故障信息后是否出现过testFailed=1

6

testNotCompletedThisMonitoringCycle

当前运行循环中是否进行故障检测

已检测置0

7

warningIndicatorRequested

请求点亮仪表盘的MIL灯

注意:

14服务清除DTC格式,改变DTC状态的八个位,除bit4和bit6外均会被清零,因为bit4和bit6这两个testNotCompleted开头会被强制置1。

Bit0恢复0的两种情况:

①UDS 14服务或OBD 04服务

②调用Dem_ResetEventStatus函数对该故障状态位进行复位

Bit3恢复0的三种情况:

①故障老化

②故障替代

③UDS 14服务或OBD 04服务

Bit5恢复0的三种情况:

①故障替代

②UDS 14服务或OBD 04服务