【车载开发系列】DTC故障码的老化
【车载开发系列】DTC故障码的老化
- 【车载开发系列】DTC故障码的老化
- 一. 什么是AgingTimes
- 二. 什么是AgedTimes
- 三. 两者的区别与联系
- 四. 什么是 Debounce(防抖)
- 1)Fault Debounce 【故障防抖 / 失败防抖】
- 2)Recovery Debounce 【恢复防抖 / 正常防抖】
- 3)Debounce步长
- 五. 什么是老化抖动
- 1)正常老化流程
- 2)老化抖动场景
- 六. 为什么会发生老化抖动?
- 1)物理故障本身不稳定(最常见)
- 2)软件防抖 / 恢复防抖参数配置不合理
- 3)阈值设置太靠近正常工作范围
一. 什么是AgingTimes
AgingTimes是正在老化计数器,表示故障消失后,正在持续变好的计时 / 计数。
它表示故障已修复、过了恢复Debounce,正在走自愈老化过程,但是还没彻底老化过期,所以DTC的过去故障仍然保留着。
当故障复发 / 重启 / 新故障的时候,立刻清 0。
二. 什么是AgedTimes
它是已老化完成的计数器,它表示老化条件已经跑完、DTC变为历史/老化状态。
当AgingTimes达到我们设定的阈值时(一般为40个周期)此时切换为Aged已老化状态。
同时它代表这条故障已经陈旧、不复现,故障彻底过期、自愈完成,可自动清除。
三. 两者的区别与联系
| 项目 | AgingTimes | AgedTimes |
|---|---|---|
| 中文 | 老化进行中计数 | 已老化完成计数 |
| 所处阶段 | 自愈过程中 | 自愈已结束 |
| 计数动作 | 持续周期累加 | 老化达标后才生效 |
| 故障状态 | DTC 有效、未过期 | DTC 老化陈旧、可清除 |
| 清零条件 | 故障复发 / 重启 / 新故障 | 一般长期保存,清码才清零 |
四. 什么是 Debounce(防抖)
信号 / 状态忽高忽低、抖动、瞬时跳变;不能一触发就直接报故障、也不能一消失就直接恢复。
用连续多次采样确认真假,这个校验次数/时间,就是Debounce参数。
用一句话概括就是:Debounce参数就是过滤瞬时抖动的“确认门槛”。
1)Fault Debounce 【故障防抖 / 失败防抖】
故障出现需要连续N个周期异常才判定真故障 → DTC 成熟、报码
FailedThreshold:连续多少次出现异常确认DTC
2)Recovery Debounce 【恢复防抖 / 正常防抖】
故障消失需要连续N个周期正常才判定真恢复 → 才允许进入AgingTimes老化累加。
PassedThreshold:连续正常多少次才能确认恢复故障。
3)Debounce步长
异常发生几个周期,或者连续几个周期之后故障解除。步长可以是周期性的,也可以是时间型的。
五. 什么是老化抖动
故障已经进入老化(Aging)流程后,还没等 AgingTimes 跑完,故障又短暂复发,导致 Aging 计数被反复清零、来回 “抖动” 的现象。
1)正常老化流程
故障确认 → 故障稳定消失 → 恢复Debounce通过 → AgingTimes从0开始累加 → 跑满阈值 → DTC老化清除
2)老化抖动场景
故障确认 → 故障消失 → 恢复Debounce通过 → AgingTimes开始累加(比如刚加到10)
→ 故障又短暂出现了一下(哪怕只有1个周期) → AgingTimes直接清零
→ 故障又消失 → 恢复Debounce重新跑 → AgingTimes又从0开始累加
→ 如此反复循环
六. 为什么会发生老化抖动?
常见原因有以下的三个:
1)物理故障本身不稳定(最常见)
接触不良、虚焊、线束针脚氧化:时通时断,导致故障条件反复满足 / 不满足。
元件性能劣化:比如 NTC 热敏电阻、电源芯片老化,输出值在阈值附近来回波动。
干扰 / 电磁兼容问题:CAN 信号、电源纹波、电磁干扰导致信号偶尔超出故障阈值。
2)软件防抖 / 恢复防抖参数配置不合理
恢复Debounce阈值设得太低:比如只要求连续1个周期正常,就立刻进入Aging。
一旦故障有 1 个周期正常就开始计数,下一个周期又异常,就会直接清零,反复横跳。
3)阈值设置太靠近正常工作范围
比如过压故障阈值设为 14.5V,正常工作电压在 14.4~14.6V 波动,导致电压一直在阈值附近来回跳,故障反复触发 / 恢复。