在UDS(统一诊断服务)中,DTC(诊断故障码)的故障状态码由8个二进制位(bit)组成,每个位表示特定的故障状态或条件。以下是每个位的详细含义及典型应用场景:
Autosar Dem提供上报故障的接口
FUNC(Std_ReturnType, DEM_CODE)
Dem_SetEventStatus(
Dem_EventIdType EventId, /* PRQA S 1330 */ /* MD_DEM_16.4_rte */
Dem_EventStatusType EventStatus
)

DTC状态码的8个Bit含义
| Bit位置 | 名称 | 功能描述 | 状态规则 |
|---|---|---|---|
| Bit 0 | TestFailed | 当前测试是否失败(实时故障状态)。 | - 1: 当前测试周期内检测到故障。- 0: 测试通过或故障已恢复。 |
| Bit 1 | TestFailedThisCycle | 当前操作周期内是否发生过故障(历史记录)。 | - 1: 当前操作周期内至少一次检测到故障。- 0: 当前周期内未检测到故障或已清除。 |
| Bit 2 | PendingDTC | 待定故障(临时故障,需多次确认)。 | - 1: 当前周期检测到故障,但未满足存储条件(如老化阈值)。- 0: 故障未持续存在或已恢复。 |
| Bit 3 | ConfirmedDTC | 确认故障(存储到ECU的非易失存储器中)。 | - 1: 故障已多次触发(通过老化条件确认)。- 0: 未确认或已清除。 |
| Bit 4 | TestNotCompleted | 自上次清除后,是否未完成测试。 | - 1: 测试未完成(如诊断未执行)。- 0: 测试已完成(无论结果如何)。 |
| Bit 5 | TestFailedSinceLastClear | 自上次清除后是否检测到故障。 | - 1: 清除后至少一次测试失败。- 0: 清除后测试未失败或已满足老化条件。 |
| Bit 6 | TestNotCompletedThisCycle | 当前操作周期内是否未完成测试。 | - 1: 当前周期内测试未完成。- 0: 测试已完成。 |
| Bit 7 | WarningIndicatorRequested | 是否需要触发警告指示(如仪表盘故障灯)。 | - 1: 故障需要激活警告灯(如bit3为1时)。- 0: 无需警告。 |
关键概念解释
-
Operation Cycle(操作周期)
• ECU从唤醒到休眠的完整周期(如点火开关开启到关闭)。
• 不同ECU可能有不同的操作周期定义(例如网络管理唤醒周期)。 -
PendingDTC与ConfirmedDTC的关系
• PendingDTC(bit2)表示单次检测到故障,但未满足存储条件(如短暂故障)。• ConfirmedDTC(bit3)表示故障多次触发并通过老化条件(如持续存在一定时间),需存储到非易失存储器。
-
老化条件(Aging Criteria)
• 故障需在多个操作周期内持续或者单个周期存在才会被确认(bit3置1)。• 若故障恢复且未满足老化条件,比如连续40个操作周期OC都恢复,则bit3自动清零。
-
清除DTC的影响
• 调用14服务清除DTC后:
◦ bit0~bit6会被重置为初始状态(如bit3清零)。
◦ bit7(警告灯)立即熄灭。

1万+

被折叠的 条评论
为什么被折叠?



