本文框架
- 1. 系列介绍
- 2.各状态位逻辑介绍
- 2.0 Bit0(TestFailed)置位逻辑
- 2.1 Bit1(TestFailedThisOperationCycle)置位逻辑
- 2.2 Bit2(PendingDTC)置位逻辑
- 2.3 Bit3(ConfirmedDTC)置位逻辑
- 2.4 Bit4(TestNotCompletedSinceLastClear)置位逻辑
- 2.5 Bit5(TestFailedSinceLastClear)置位逻辑
- 2.6 Bit6(TestNotCompletedThisOperationCycle)置位逻辑
- 2.7 Bit7(WarningIndicator)置位逻辑
1. 系列介绍
UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的一种诊断通信方式,是基于ISO 14229规范的规范化诊断服务标准,其位于OSI模型中的应用层,UDS可基于不同的总线实现,如基于CAN总线可再结合ISO1576协议进一步实现传输层,本篇将介绍DTC状态位相关内容:
在DTC状态位(一个Byte)中,每个Bit都有各自的含义。当条件成立时,该Bit位置1,通过读取各Bit的置位信息即可得知当前及过去DTC的情况,当然也可以通过诊断命令对状态位进行清除,各Bit位相关信息如下:
DEM_UDS_STATUS_TF:位0,TestFailed位。
DEM_UDS_STATUS_TFTOC:位1,TestFailedThisOperationCycle位。
DEM_UDS_STATUS_PDTC:位2,PendingDTC位。
DEM_UDS_STATUS_CDTC :位3,ConfirmedDTC位。
DEM_UDS_STATUS_TNCSLC:位4,TestNotCompletedSinceLastClear位。
DEM_UDS_STATUS_TFSLC:位5,TestFailedSinceLastClear位。
DEM_UDS_STATUS_TNCTOC:位6,TestNotCompletedThisOperationCycle位。
DEM_UDS_STATUS_WIR:位7,WarningIndicatorRequested位。
2.各状态位逻辑介绍
2.0 Bit0(TestFailed)置位逻辑
从下图可以看出当DEM初始化或测试结果通过时,或通过14服务清除DTC状态时,Bit0会被设置为FALSE,
当测试失败时,该DTC Bit位将会被置为TRUE,一般Bit 0置位即表明当前存在故障。
2.1 Bit1(TestFailedThisOperationCycle)置位逻辑
Bit1,表示当前点火循环测试失败,与Bit0置位情况基本相同,区别在于Bit1可标记某个DTC在当前operation cycle中是否出现过testFailed置1的情况,即是否出现过错误。
通过Bit0我们可以知道当前该DTC的状态,通过Bit知道某DTC在当前operation cycle是否出现过错误,即使后面被修复,该Bit仍将置位。
2.2 Bit2(PendingDTC)置位逻辑
Bit2:表示当前及上一个完整operation cycle里是否检测到状态出错,是介于Bit0(TestFailed)及Bit3(ConfirmedDTC)中间的一个状态,相当于对故障进行滤波,如果几次滤波后仍存在,则对应ConfirmedDTC状态位置位。
Bit2(PendingDTC)只有在测试运行并完成时,才能更新状态。Bit2(PendingDTC)位和Bit1(TestFailedThisOperationCycle)位的标准相同。不同之处在于,Bit1(TestFailedThisOperationCycle)在当前操作周期结束时被清除,而Bit2(PendingDTC)位为至少测试通过一次且从未失败的操作循环完成之前不清除。
2.3 Bit3(ConfirmedDTC)置位逻辑
Bit3(ConfirmedDTC)对应Bit2(PendingDTC)即已确定的DTC,当PendingDTC置位多次达到可以确定failed标准后即成为ConfirmedDTC。但当confirmedDTC = TRUE时,并不意味着当前这个DTC仍然出错,也可能Bit0(TestFailed) = FALSE,即为历史故障。
在调用ClearDiagnosticInformation或满足老化标准后(老化标准一般由主机厂提供),重置为逻辑“0”。此外,根据车辆制造商特定的故障内存要求,当与此故障诊断码相关的故障记录被更新的故障诊断码覆盖时,将重置此位。
2.4 Bit4(TestNotCompletedSinceLastClear)置位逻辑
Bit4(TestNotCompletedSinceLastClear),自从上次清除DTC状态后还没完成该DTC的测试,即不管测试结果是否通过,如已测试完成,该Bit将置位为FALSE。
在UDS诊断协议中可以使用0x14服务清除全部或单个DTC故障状态。
2.5 Bit5(TestFailedSinceLastClear)置位逻辑
Bit5(TestFailedSinceLastClear),自从上次清除DTC状态后该DTC测试失败。与Bit1(TestFailedThisOperationCycle)置位逻辑类似,差别在于Bit5(TestFailedSinceLastClear)计算起点是从上次清除故障开始,如出现故障则该Bit置为TRUE,否则为FALSE。
2.6 Bit6(TestNotCompletedThisOperationCycle)置位逻辑
Bit6(TestNotCompletedThisOperationCycle),表示该DTC在当前驾驶循环仍未诊断完成,初始化后该Bit即置为TRUE,与Bit4(TestNotCompletedSinceLastClear)类似。
2.7 Bit7(WarningIndicator)置位逻辑
Bit7(WarningIndicator),对应某些影响驾驶安全、影响排放等较重要DTC会与仪表上的危险警报灯、故障灯等相关联,当这类DTC出现failed情况该Bit将置位为TRUE,而对于不关联DTC该Bit将不会使用,保持为FALSE状态。