【UDS】诊断故障代码老化机制

news/2025/2/6 19:30:12/

文章目录

  • 简介
  • 相关术语
    • 1. 老化计数器 Ageing counter
    • 2. 诊断故障代码已老去 DTC aged
    • 3. 已老去计数器 Aged counter
    • 4. 操作循环 Operation cycle
    • 5. 诊断故障代码老化机制 DTC aging mechanism
  • 总结


->返回总目录<-

简介

诊断故障代码(DTC)一旦生成,将会一直保留,直到通过发送诊断指令清除,或者诊断故障代码老化机制确定此故障不复存在。如果故障不复存在,则诊断故障代码的老化用于确保任何关联的诊断故障代码和除已老去计数器之外所有相关的信息都被清除,以确保不至于招致不必要的维护成本。

整个老化机制过程可参考下图
请添加图片描述


相关术语

1. 老化计数器 Ageing counter

老化计数器用于特定诊断故障代码的测试都没有失效的连续操作循环的计数。该数值应存储于非易失性存储器。
如果在一个操作循环(见后面的术语解释)中有任何已失效的测试结果出现, 则其将重置为“0”。

Such As:
1)操作循环:以KL15点火线上下电作为一个操作循环。
2)转向灯开关在第二次操作循环(如下截图位置)出现一次电路故障,ECU记录了DTC故障码:900112。 并同时存储故障发生时的快照数据,扩展数据至NVM(非易失性存储器)。最重要的点在: 故障发生后,测试失败(位0)置为1
在这里插入图片描述
3)在第三个操作循环检测,发现该故障已经恢复,变成了历史故障,即:测试失败(位0)置为0。此时,老化计数器会加1。
当此历史故障状态保持了40个操作循环,老化计数器会加到40。之后ECU会清除该故障信息(包含相应的快照数据等)。

~

2. 诊断故障代码已老去 DTC aged

诊断故障代码已老去用于表征诊断故障代码因已充分老去而从电控单元中移除的现象。

~

3. 已老去计数器 Aged counter

已老去计数器用于自上次清除诊断故障代码后,诊断故障代码已老去次数的计数。该数值应存储于非易失性存储器。 如果数值溢出,则其应保持在 255(十六进制0xFF)

~

4. 操作循环 Operation cycle

什么是Operation Cycle?关于Operation Cycle的定义,Autosar的DEM(Specifification of Diagnostic Event Manager)解释如下:
每个事件被分配到一个操作周期,例如点火周期。可以使用Dem_SetOperationCycleState()函数启动和停止操作周期。只有当相应的操作周期启动时,才可能向Dem报告事件,否则报告将被丢弃。在这方面,操作周期充当了无法规避的附加启用条件。
在这里插入图片描述
种类:标准中给了四个操作循环类型。一般常使用 IGNITION,POWER
1,IGNITION:就是KL15点火线上下电
2,OBD_DCY:OBD Driving cycle主要由Master ECU提供,Primary ECUs使用(一般没用过)
3,WARMUP:Warm up cycle,字面意思温升。可以理解成发动机启动水箱的温升。
4,POWER:可以理解为ECU从完全断电到供电的过程。与IGNITION有什么不同呢?点火循环中,ECU未必断电。
在这里插入图片描述
下面代码段是基于AutoSar开发中,运用的操作循环启动关闭方法:

/* Operation Cycle process */(void)Rte_Read_PwrM_IgnPwrState(&AppDiagVal.IgnPwrSts);if( AppDiagVal.IgnPwrSts != AppDiagVal.lstIgnPwrSts ){if( AppDiagVal.IgnPwrSts == PWRM_STATE_EN_IGN_ON){/* Start Operation Cycle : Ign cycle */(void)Dem_GetOperationCycleState(DemConf_DemOperationCycle_IgnitionCycle, &DemOperationCycleState);if( DemOperationCycleState != DEM_CYCLE_STATE_START ){(void)Dem_SetOperationCycleState(DemConf_DemOperationCycle_IgnitionCycle, DEM_CYCLE_STATE_START);}}else{/* End Operation Cycle : Ign cycle */(void)Dem_GetOperationCycleState(DemConf_DemOperationCycle_IgnitionCycle, &DemOperationCycleState);if( DemOperationCycleState != DEM_CYCLE_STATE_END ){(void)Dem_SetOperationCycleState(DemConf_DemOperationCycle_IgnitionCycle, DEM_CYCLE_STATE_END);}}}else{/* do nothing */}AppDiagVal.lstIgnPwrSts = AppDiagVal.IgnPwrSts;

5. 诊断故障代码老化机制 DTC aging mechanism

如果之前 40 个连续的操作循环期间, 每个操作循环的测试都没有失效,则允许相应的诊断故障代码老去。 具体参见简介中的图 。如果某操作循环的测试已完成且没有失效,则“未确认的诊断故障代码”位重置为“0”(简介中图关键点 a),故障待定计数器也重置为“0”,并且老化计数器加 1(简介中图 的关键点 b 和 c)。由于在连续的操作循环内,测试没有失效,故老化计数器持续增加(简介中图 的关键点 d)。如果老化计数器到达最大值(即 40)(简介中图 的关键点 f),则此时“已确认的诊断故障代码”位重置为“0”(简介中图 的关键点 e)。

~

总结

可能描述的还不够清晰,欢迎大佬前来指点下,共同学习哈~

->返回总目录<-


http://www.ppmy.cn/news/72509.html

相关文章

【中阳期货】期货交易如何稳定--盈利

期货就是相对于现货&#xff0c;在传统交易中一般是一手交钱一手交货这叫现货。期货就是现在签订交易合同&#xff0c;但将来进行交易。为什么有期货呢&#xff1f;比如我想种大豆&#xff0c;但是又不知道是收割的时候是赚钱还是赔钱&#xff0c;如果很多人种大豆&#xff0c;…

《游戏编程模式》--解耦模式--学习

解耦模式 组件模式将一个实体拆成多个&#xff0c;解耦不同的领域。 事件序列解耦了两个互相通信的事物&#xff0c;稳定而且及时。 服务定位器让代码使用服务而无需绑定到提供服务的代码。 组件模式 允许单一的实体跨越多个领域而不会导致这些领域彼此耦合 在今日软件设计…

开心档之MySQL 连接的使用

MySQL 连接的使用 在前几章节中&#xff0c;我们已经学会了如何在一张表中读取数据&#xff0c;这是相对简单的&#xff0c;但是在真正的应用中经常需要从多个数据表中读取数据。 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。 你可以在 SELECT…

单板硬件设计:存储器SD卡( NAND FLASH)

在单板设计中&#xff0c;无论是涉及到一个简易的CPU、MCU小系统或者是复杂的单板设计&#xff0c;都离不开存储器设计&#xff1a; 1、存储器介绍 存储器的分类大致可以划分如下&#xff1a; ROM和RAM指的都是半导体存储器&#xff0c;ROM在系统停止供电的时候仍然可以保持数…

CleanMyMac X如何下载解锁完整版本?

这是一款很受到mac用户喜爱的清理软件。不仅清理文件的步骤十分简单&#xff0c;电脑小白用户也可以高效清理Mac电脑。作为一款全方位保护电脑的软件&#xff0c;CleanMyMac已经不满足于只做简单的Mac清理工具&#xff0c;而是为mac用户提供更多的实用功能&#xff1a;优化系统…

【计算机网络学习资源汇总】

文章目录 引言1. 《计算机网络自顶向下》2. 《TCP/IP详解》 引言 做优秀资源的搬运工&#xff01;读经典书籍&#xff0c;传承经典&#xff01; 每个人的水平和理解不同&#xff0c;因此总结的水平也不同&#xff0c;推荐阅读一手资源&#xff0c;有时间尽量啃书。 发现好的资…

【EfficientDet】《EfficientDet:Scalable and Efficient Object Detection》

CVPR-2020 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method4.1 BiFPN4.2 EfficientDet 5 Experiments5.1 Datasets5.2 EfficientDet for Object Detection5.3 EfficientDet for Semantic Segmentation5.4 Ablation Study 6 Conclusio…

BurpSuite—-Target模块(目标模块)

前言 本文主要介绍BurpSuite—-Target模块(目标模块)的相关内容 关于BurpSuite的安装可以看一下之前这篇文章&#xff1a; http://t.csdn.cn/cavWt Target功能 目标工具包含了SiteMap&#xff0c;用你的目标应用程序的详细信息。它可以让你定义哪些对象在范围上为你目前的工…