UDS DTC 组
Byte Value | Description | Cvt | Mnemonic |
---|---|---|---|
0x000000 - 0x0000FF | reserved for future legislative | M | RFLU |
0x000100 - 0xFFFEFF | user define(注释1) | U | - |
0xFFFF00 - 0xFFFFFE | Table-FunctionalGroupIdentifier | M | ISOSAEERSERVED |
0xFFFFFF | All Groups(all DTCs) | M | AG |
Table-FunctionalGroupIdentifier:
Byte Value | Description | Cvt | Mnemonic |
---|---|---|---|
0xFFFF00 - 0xFFFF32 | ISO/SAE reserved | M | ISOSAERESRVD |
0xFFFF33 | Emissions-system group | M | EMSYSGRP |
0xFFFF34 - 0xFFFFCF | ISO/SAE reserved | M | ISOSAERESRVD |
0xFFFFD0 | Safety-system group | M | SAFESYSGRP |
0xFFFFD1 - 0xFFFFDF | Legislative system group(reserved for future) | M | LEGSYSGRP |
0xFFFFE0 - 0xFFFFFD | ISO/SAE reserved | M | ISOSAERESRVD |
0xFFFFFE | VOBD system | M | VOBDSYSGRP |
注释1:
DTC前缀 | 数值(最高位2bits) | 含义 |
---|---|---|
P | 00 | 动力系统 |
C | 01 | 底盘系统 |
B | 02 | 车身系统 |
U | 03 | 网关系统或其他 |
UDS DTC状态位
Bit | Description | Cvt | Mnemonic |
---|---|---|---|
0 | testFailed | U | TF |
1 | testFailedThisOperationCycle | U | TFTOC |
2 | pendingDTC | U | PDTC |
3 | confirmedDTC | M | CDTC |
4 | testNotCompletedSinceLastClear | U | TNCSLC |
5 | testFailedSinceLastClear | U | TFSLC |
6 | testNotCompletedThisOperationCycle | U | TNCTOC |
7 | warningIndicatorRequested | U | WIR |
名词解释
Test: Test是一段软件算法,在执行完毕需要能明确给出组件或系统成熟的Failed/Passed,一个操作循环可以执行Test一次或多次。
Test Sample: Test Sample是Test的原子组成部分,比如加上滤波机制后,多次Test Sample检测出故障后,才认为Test故障。Test Sample检测出故障后递增DTC Fault Detection Counter,检测出状态正常后递减DTC Fault Detection Counter。
Complete: 表示Test执行完成,得到明确的结果(故障或无故障)。
Test results: 当Test运行中或运行完毕,其会指示出以下结果:
- PreFailed: Test运行中,指示故障成熟中(比如滤波计数器计数中,暂未达到阈值),既能快速识别出故障状态,又能有故障容忍度。
- Failed: Test运行结束后,指示故障成熟。
- Passed: Test运行结束后,指示无故障发生。
Failure/Malfunction: 组件或系统无法实现预期功能,即Test指示出结果为Failed。
Monitor: 一个Monitor包含一个或多个Test,用于确定组件或系统是否正常运行。
Monitoring Cycle: 车辆制造商定义的一个可以运行其中Test的条件(抽象概念),一个Monitoring Cycle可以在一个Operation Cycle中运行多次,或者在多个Operation Cycle中只运行一次。
Operation Cycle: 定义开始和结束条件,在其中运行Monitors。一个ECU可以包含多个Operation Cycles。Operation Cycle可以自定义:比如可以将上电与下电之间的
时间定义为Operation Cycle;或钥匙on/off之间,或发动机on/off之间等都可以定义为Operation Cycle。
Pending: 在上一次已完成的Operation Cycle或当前正在运行的Operation Cycle中有“Failed”。(当前Operation Cycle结束时,至少完成一次Test,并且所有Test结果都为"Passed",则Pending状解除)
Confirmation Threshold: 定义一个阈值,当连续几个Operation Cycles出现Test result为“Failed”,才认为是Confirmed Failed。(通常使用Trip Counter计数器和阈值进行比较)
Aging Threshold: 定义一个阈值,当连续几个Operation Cycle出现Test result为no “Failed”,才将Confirmed Failed状态位清零。
Driving cycle: 排放相关系统特有,Driving cycle即Operation Cycle,且只支持一个Operation Cycle,由法规规定。
Monitor Level Enable Conditions: Monitor允许运行和报告Test result的标准和条件。
DTC Status Update Condition: DTC状态位允许更新的条件(例如:controlDTCSetting复位控制的使能位),当条件不满足时,禁止所有DTC状态位的状态转换(clearDiagnosticInformation服务清除DTC不受影响)。
DTC Storage Condition: 由制造商定义的条件。决定是否将DTC标志位及快照数据,扩展数据更新并储存到NVM。
1. testFailed(bit0)
ISO14229 描述:
This bit shall indicate the result of the most recently performed test. A logical ‘1’ shall indicate that the last test failed meaning that the failure is completely matured. Reset to logical ‘0’ if the result of the most recently performed test returns a “pass” result meaning that all de-mature criteria have been fulfilled. Additional reset conditions may be defined by the vehicle manufacturer / implementation
解释说明:
置1条件:
- 当前测试结果为有故障发生
清0条件:
- 当前测试结果为故障清除
- 或 调用了ClearDiagnosticInformation(0x14服务)
- 或 执行了设计时自定义的复位机制(函数)
ISO14229图例:
AUTOSAR应用实例:
置1条件:
- 当前测试结果为有故障发生
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
清0条件:
- 当前测试结果为故障清除
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = DEM_EVENT_STATUS_PASSED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = DEM_EVENT_STATUS_PASSED) - 或 调用了ClearDiagnosticInformation(0x14服务)
Dem_*_ClearDTC_*(param_list) - 或 执行了设计时自定义的复位机制(函数)
Dem_ResetEventStatus(EventId)
2.testFailedThisOperationCycle (bit1)
ISO14229描述:
This bit shall indicate whether or not a diagnostic test has reported a testFailed result at any time during the current operation cycle (or that a testFailed result has been reported during the current operation cycle and after the last time a call was made to ClearDiagnosticInformation). Reset to logical ‘0’ when a new operation cycle is initiated or after a call to ClearDiagnosticInformation.
If this bit is set to logical ‘1’, it shall remain a ‘1’ until a new operation cycle is started.
解释说明:
置1条件:
- 当前测试结果为有故障发生
清0条件: - 进入后续Operation Cycle
- 或 调用了ClearDiagnosticInformation
ISO14229图例:
AUTOSAR应用实例:
置1条件:
- 当前测试结果为有故障发生
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
清0条件:
- 进入后续Operation Cycle
Dem_SetOperationCycleState(OperationCycleId, CycleState = DEM_CYCLE_STATE_START) - 或 调用了ClearDiagnosticInformation
Dem_*_ClearDTC_*(param_list)
3.pendingDTC (bit2)
ISO14229描述:
This bit shall indicate whether or not a diagnostic test has reported a testFailed result at any time during the current or last completed operation cycle. The status shall only be updated if the test runs and completes. The criteria to set the pendingDTC bit and the TestFailedThisOperationCycle bit are the same. The difference is that the testFailedThisOperationCycle is cleared at the beginning of each operation cycle and the pendingDTC bit is not cleared until an operation cycle has completed where the test has passed at least once and never failed.
If the test did not complete during the current operation cycle, the status bit shall not be changed. For example, if a monitor stops running after a confirmed DTC is set, the pendingDTC must remain set = ‘1’. For an OBD DTC, a pending DTC is required to be stored after a malfunction is detected during the first driving cycle.
解释说明:
置1条件:
- 当前测试结果为有故障发生
清0条件:
- 进入后续Operation Cycle,且至少完成一次测试,且此Operation Cycle内所有测试结果Pass。(如果某次Operation Cycle未完成测试,则跳过本次Operation Cycle不计数;记完成有效测试的那次Operation Cycle为A,则bit位具体清零时间时在A结束还是A+1开始由设计实现决定)
- 或 调用了ClearDiagnosticInformation
ISO14229图例:
AUTOSAR应用实例:
置1条件:
- 当前测试结果为有故障发生
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
清0条件:
- 进入后续Operation Cycle,且至少完成一次测试,且此Operation Cycle内所有测试结果Pass。
Dem_SetOperationCycleState(OperationCycleId, CycleState = DEM_CYCLE_STATE_START)
且 NOT TestNotCompletedThisOperationCycle
且 NOT TestFailedThisOperationCycle - 或 调用了ClearDiagnosticInformation
Dem_*_ClearDTC_*(param_list)
4.confirmedDTC (bit3)
ISO14229描述:
This bit shall indicate whether a malfunction was detected enough times to warrant that the DTC is desired to be stored in long-term memory.
A confirmedDTC does not always indicate that the malfunction is present at the time of the request. (testFailed can be used to determine if a malfunction is present at the time of the request).
Reset to logical ‘0’ after a call to ClearDiagnosticInformation or after aging threshold has been satisfied (e.g., 40 engine warm-ups without another detected malfunction). Furthermore this bit is reset when the fault record associated with this DTC is overwritten by a newer DTC based upon vehicle manufacturer specific fault memory overflow requirements.
DTC confirmation threshold and aging threshold are defined by the vehicle manufacturer or mandated by On Board Diagnostic regulations.
解释说明:
置1条件:
- 连续n次Operation Cycle测试结果为Failed
清0条件:
- 连续m次Operation Cycle测试结果为Passed(如果某次Operation Cycle未完成测试,则调过本次Operation Cycle不计数)
- 或 调用了ClearDiagnosticInformation
- 或 车辆制造商定义的故障内存溢出条件满足
ISO14229图例:
AUTOSAR应用实例:
置1条件:
- 连续n次Operation Cycle测试结果为Failed
n = 1时:
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
n > 1时:
DemEventFailureCycleCounterThreshold reached
清0条件:
- 连续m次Operation Cycle测试结果为Passed
AgingCriteriaFulfilled - 或 调用了ClearDiagnosticInformation
Dem_*_ClearDTC_*(param_list) - 或 车辆制造商定义的故障内存溢出条件满足
FaultRecordOverwritten
5.testNotCompletedSinceLastClear (bit4)
ISO14229描述:
This bit shall indicate whether a DTC test has ever run and completed since the last time a call was made to ClearDiagnosticInformation. One (‘1’) shall indicate that the DTC test has not run to completion. If the test runs and passes or if the test runs and fails (e.g. testFailedThisOperationCycle = ‘1’) then the bit shall be set to a ‘0’ (and latched).
解释说明:
清0条件:
- 测试完成,得到结果(Pass或Failed)
置1条件:
- 调用了ClearDiagnosticInformation
ISO14229图例:
AUTOSAR应用实例:
清0条件:
- 测试完成,得到结果(Pass或Failed)
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = FAILED or PASSED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = FAILED or PASSED)
置1条件: - 调用了ClearDiagnosticInformation
Dem_*_ClearDTC_*(param_list)
6.testFailedSinceLastClear (bit5)
ISO14229描述:
This bit shall indicate whether a DTC test has completed with a failed result since the last time a call was made to ClearDiagnosticInformation (i.e., this is a latched testFailedThisOperationCycle = ‘1’).
Zero (‘0’) shall indicate that the test has not run or that the DTC test ran and passed (but never failed). If the test runs and fails then the bit shall remain latched at a ‘1’. It is the responsibility of the vehicle manufacturer to specify whether or not this bit is reset by aging-criteria or reset due to an overflow of the fault memory.
解释说明:
置1条件:
- 测试完成,结果为Failed
清0条件:
- 调用了ClearDiagnosticInformation
- 或 连续m次Operation Cycle测试结果为Passed,即老化条件(制造商选择是否支持此条)
- 或 车辆制造商定义的故障内存溢出条件满足(制造商选择是否支持此条)
ISO14229图例:
AUTOSAR应用实例:
置1条件:
- 测试完成,结果为Failed
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
清0条件:
- 调用了ClearDiagnosticInformation
Dem_*_ClearDTC_*(param_list) - 或 连续m次Operation Cycle测试结果为Passed,即老化条件(制造商选择是否支持此条)
AgingCriteriaFulfilled (optional) - 或 车辆制造商定义的故障内存溢出条件满足(制造商选择是否支持此条)
FaultRecordOverwritten (optional)
7.testNotCompletedThisOperationCycle (bit6)
ISO14229描述:
This bit shall indicate whether a DTC test has ever run and completed during the current operation cycle (or completed during the current operation cycle after the last time a call was made to ClearDiagnosticInformation).
A logical ‘1’ shall indicate that the DTC test has not run to completion during the current operation cycle. If the test runs and passes or fails then the bit shall be set (and latched) to ‘0’ until a new operation cycle is started.
解释说明:
清0条件:
- 测试完成,得到结果为Pass或Failed
置1条件:
- 进入后续Operation Cycle
- 或 调用了ClearDiagnosticInformation
ISO14229图例:
AUTOSAR应用实例:
清0条件:
- 测试完成,得到结果为Pass或Failed
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = FAILED or PASSED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = FAILED or PASSED)
置1条件:
- 进入后续Operation Cycle
Dem_SetOperationCycleState(OperationCycleId, CycleState = DEM_CYCLE_STATE_START) - 或 调用了ClearDiagnosticInformation
Dem_*_ClearDTC_*(param_list)
8.warningIndicatorRequested (bit7)
ISO14229描述:
This bit shall report the status of any warning indicators associated with a particular DTC. Warning outputs may consist of indicator lamp(s), displayed text information, etc. If no warning indicators exist for a particular DTC, this status shall default to a logic ‘0’ state.
Conditions for activating the warning indicator shall be defined by the vehicle manufacturer / implementation, but if the warning indicator is on for a given DTC, then confirmedDTC shall also be set to ‘1’ (with the exception described below).
解释说明:
置1条件:
- 当前测试结果为Failed,且制造商自定义置位标准满足
清0条件:
- 进入后续Operation Cycle
- 或 测试结果为Pass
- 或 制造商自定义条件
- 或 调用了ClearDiagnosticInformation
ISO14229图例:
AUTOSAR应用实例:
置1条件:
- 当前测试结果为Failed,且制造商自定义置位标准满足
SWC模块调用函数接口:
Dem_SetEventStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
BSW模块调用函数接口:
Dem_ReportErrorStatus(EventId, EventStatus = DEM_EVENT_STATUS_FAILED)
且 WarningIndicatorOnCriteriaFulfilled
清0条件:
- 进入后续Operation Cycle
无 - 或 测试结果为Pass
无 - 或 制造商自定义条件
WarningIndicatorOffCriteriaFulfilled - 或 调用了ClearDiagnosticInformation
Dem_*_ClearDTC_*(param_list)
UDS DTC严重性等级和类别
1.DTC严重性等级
Bit | Description | Cvt | Mnemonic |
---|---|---|---|
7 | checkImmediately(需要立即检查车辆) | M | CHKI |
6 | checkAtNextHalt(下次停车时检查车辆) | M | CHKANH |
5 | maintenanceOnly (下次车辆保养时检查车辆) | M | MO |
2. DTC类别
表征发生故障对OBD系统监控能力的影响。
OTL: OBD threshold limits
Bit | Description | Cvt | Mnemonic |
---|---|---|---|
4 | DTCClass_4 (Class C) 某些情况对OBD系统存在影响,排放不高于OTL | M | DTCCLASS_4 |
3 | DTCClass_3 (Class B2)确定对OBD系统存在影响,排放不高于OTL | M | DTCCLASS_3 |
2 | DTCClass_2 (Class B1)确定对OBD系统存在影响,排放可能高于或低于OTL | M | DTCCLASS_2 |
1 | DTCClass_1 (Class A)确定对OBD系统存在影响,排放可能不高于OTL,但大概率高于OTL | M | DTCCLASS_1 |
0 | DTCClass_0 (unclassified) 无以上等级时的默认等级 | M | DTCCLASS_0 |