DTC及状态掩码
DTC的构成:
由 ISO 15031-6和ISO 14229-1的故障断码格式规定,DTC信息由四个字节组成,如下表所示:
其中DTCHighByte,DTCMiddleByte,DTCLowByte表示服务中的故障诊断码;
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服务