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

news2024/9/21 3:33:40

文章目录

  • 简介
  • 相关术语
    • 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.coloradmin.cn/o/547991.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【IDEA使用指南】使用Hibernate框架的Java项目,如何找到并打开 “Import Database Schema”窗口?

【IDEA使用指南】使用Hibernate框架的Java项目&#xff0c;如何找到并打开 “Import Database Schema”窗口&#xff1f; 背景&#xff1a; 使用 Hibernate 框架时&#xff0c;假如在 “Import Database Schema” 窗口&#xff08;如下图所示&#xff09;时&#xff0c;点击了…

day06_Java中的流程控制语句

流程控制 简单来讲所谓流程就是完成一件事情的多个步骤组合起来就叫做一个流程。在一个程序执行的过程中&#xff0c;各条语句的执行顺序对程序的结果是有直接影响的。我们必须清楚每条语句的执行流程。而且&#xff0c;很多时候要通过控制语句的执行顺序来实现我们想要的功能…

.Net6 使用aspose.cells23.5.0破译

一、测试代码 internal class Program { static void Main(string[] args) { WorkbookDesigner wb new WorkbookDesigner(new Workbook()); var style new CellsFactory().CreateStyle(); style.Borders.SetColor(C…

路径规划算法:基于缎蓝园丁鸟算法的路径规划算法- 附代码

路径规划算法&#xff1a;基于缎蓝园丁鸟优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于缎蓝园丁鸟优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能…

交换式以太网的诞生

电路交换&#xff0c;终端(电话)独占端线路自然而然&#xff0c;天经地义&#xff0c;可计算机收发的是数据包(即数据分组)&#xff0c;当多台终端接入到同一个共享介质的网络&#xff0c;所有终端可 “同时” 收发数据&#xff0c;一起统计复用网络&#xff0c;多台终端如何协…

Linux常用命令——htop命令

在线Linux命令查询工具 htop [非内部命令]一个互动的进程查看器&#xff0c;可以动态观察系统进程状况。 补充说明 htop命令 是Linux系统中的一个互动的进程查看器&#xff0c;一个文本模式的应用程序(在控制台或者X终端中)&#xff0c;需要ncurses。 与Linux传统的top相比…

【5.20】五、安全测试——概念与漏洞

目录 5.1 安全测试概述 5.1.1 什么是安全测试 5.1.2 安全测试的基本原则 5.2 常见的安全漏洞 5.2.1 SQL注入 5.2.2 XSS跨站脚本攻击 5.2.3 CSRF攻击 软件安全测试是软件测试的重要研究领域&#xff0c;它是保证软件能够安全使用的最主要手段&#xff0c;做好软件安全测试…

pg事务:multixact

什么是multixact&#xff1f; 在对同一行加锁时&#xff0c;元组上关联的事务ID可能有多个&#xff0c;pg将多个事务ID组合起来用一个MultiXactID来管理。TransactionId和MultiXactID是多对一的关系 multixactID跟TransactionId一样&#xff0c;也是32位&#xff0c;同样有wra…

Seata AT 模式理论学习及部分源码解析 | Spring Cloud 52

理论部分来自Seata官网&#xff1a;http://seata.io/zh-cn/docs/dev/mode/at-mode.html 一、前提 基于支持本地 ACID 事务的关系型数据库。Java 应用&#xff0c;通过 JDBC 访问数据库。 二、整体机制 两阶段提交协议的演变&#xff1a; 一阶段&#xff1a;业务数据和回滚日…

【SpringCloud组件——Ribbon(负载均衡)】

一、Ribbon主要作用在哪一环节&#xff1f; 流程讲解&#xff1a; 案例依然采用Eureka章节提供的案例&#xff0c;orderService根据服务名称发起请求&#xff0c;请求传达至Ribbon&#xff0c;此时Ribbon从Eureka中心拉取userService服务列表&#xff0c;Ribbon根据负载均衡算法…

组合预测模型 | ARIMA-WOA-CNN-LSTM时间序列预测(Python)

组合预测模型 | ARIMA-WOA-CNN-LSTM时间序列预测&#xff08;Python&#xff09; 目录 组合预测模型 | ARIMA-WOA-CNN-LSTM时间序列预测&#xff08;Python&#xff09;预测结果基本介绍程序设计参考资料 预测结果 基本介绍 ARIMA-WOA-CNN-LSTM是一种结合了传统时间序列模型和深…

ChatGPT应用场景巡航之广告文案

此文为ChatGPT应用场景巡航第二篇&#xff1a;广告文案。 写出成功的文案&#xff0c;需要专业的技术水准&#xff0c;如果加以辅助工具&#xff0c;那会更加如虎添翼&#xff0c;事半功倍&#xff0c;本文会给大家介绍一下广告文案的写作技巧和辅助工具的使用。 01 — 指导原…

8-《性能优化》

8-《性能优化》 1 启动优化1.1.冷启动耗时统计&#xff1f;1.2.TraceView和System Trace1.3.优雅获取方法耗时1.4.启动速度优化小技巧1.5.启动优化之异步初始化1.6.启动优化之异步初始化最优解—启动器1.7.延迟初始化1.8.其它方案1.9.启动优化之模拟面试 2 布局优化3 线程优化3…

基于Zynq的雷达10Gbps高速PCIE数据采集卡方案(一)总体设计

2.1 引言 本课题是来源于雷达辐射源识别项目&#xff0c;需要对雷达辐射源中频信号进行采集传输 和存储。本章基于项目需求&#xff0c;介绍采集卡的总体设计方案。采集卡设计包括硬件设计 和软件设计。首先对采集卡的性能和指标进行分析&#xff0c;接着提出硬件的总体设计…

OPCUA 聚合服务器和历史数据服务器

前言 开放自动化是一个热门话题&#xff0c;自动化XML&#xff08;AutomationML&#xff09;&#xff0c;基于信息模型的通信协议&#xff08;OPC UA&#xff09;和工业4.0 管理壳&#xff08;ASS&#xff09; 可谓是开放自动化的三套件。三者相互交叉&#xff0c;相互引用&…

教你精通Java语法之第十五章、Lambda表达式

目录 一、背景 1.1Lambda表达式的语法 1.2函数式接口 二、Lambda表达式的基本使用 2.1语法精简 三、变量捕获 3.1匿名内部类 3.2匿名内部类的变量捕获 3.3Lambda的变量捕获 四、Lambda在集合当中的使用 4.1Collection接口 4.2 List接口 4.3Map接口 五、总结 一、背…

2023国赛tomcat题

环境: 10.10.120.128 安装 tomcaA 10.10.120.129 安装tomcatB 10.10.120.130 安装 nginx 配置dns: 正向解析 反向解析 Tomcat ssl配置 [root@localhost ~]# tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz [root@localhost ~]# mv jdk-11.0.8 /usr/local/ Vim /etc/profile …

如何在代码开发中便捷使用 ChatGPT 协助开发

在五一节前后&#xff0c;抽空测试了下网上推荐的开发环境和开发插件&#xff0c;在这里推荐给前后端代码开发的同胞们。 方法一&#xff1a;IDEA 安装 插件 bito 习惯使用 IDEA 开发代码的同胞&#xff0c;可以尝试直接在 IDEA 中安装插件 bito&#xff0c;注意操作过程中需要…

jarvisoj_fm

小白做题垃圾笔记&#xff0c;不建议阅读。 1.32位操作系统&#xff0c;有canary&#xff0c;和NX &#xff0c;本来以为是绕过canary呢。 2.第12行&#xff0c;如果x4就执行/bin/sh ,第10行存在格式化字符串漏洞。 是格式化字符串漏洞&#xff0c;对任意地址内容更改。 3.确定…

实操Linux 部署单机版nacos

目录 Nacos部署环境要求JDK安装下载和构建Nocas控制面板&#xff0c;新建配置Nacos数据库配置 总结 Nacos部署环境要求 64bit OS: Linux/Unix/Mac/Windows 支持, Linux/Unix/Mac 推荐 64bit JDK 1.8 Maven 3.2.x JDK安装 1、准备好jdk1.8 链接&#xff1a;https://pan.baidu.…