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

文章目录

  • 简介
  • 相关术语
    • 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)。

~

总结

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

->返回总目录<-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/21273.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件设计师考试笔记,已通过

目录 系统可靠度 外部实体 内聚类型 编译过程 逆波兰式 前驱图 scrum框架模型 编译和解释 有限自动机 聚簇索引和非聚簇索引 二叉树的前序,中序,后序遍历 动态规划贪心算法 算法 01背包问题 系统可靠度 1. 串联部件可靠度 串联部件想要这条路走通&#xff0c;只有…

062:cesium设置泛光折线材质(material-6)

第062个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置泛光折线材质,请参考源代码,了解PolylineGlowMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共89行)相关API参考:专…

开发框架Furion之WebApi+SqlSugar (一)

目录 1.开发环境 2.项目创建 2.1创建WebApi主项目 2.2 创建Start类库 2.3创建Model实体类库 2.4创建Application仓储业务类库 2.5创建Unility通用方法类库 3.基础功能配置 3.1 Model实体对象与数据表映射 3.2 基类仓储及动态Api接口配置 3.3 数据库IOC注册 3.4 Star…

JDK源码阅读环境搭建

本次针对jdk8u版本的搭建 1.新建项目 新建java项目JavaSourceLearn &#xff0c;这里我创建的是maven 2.获取JDK源码 打开Project Structure 找到本地JDK安装位置将src.zip解压到项目java包中 整理下项目结构&#xff0c;删除用不到的目录 提示: 添加源码到项目之后首次运行…

从零玩转设计模式之原型模式-yuanxingmoshi

title: 从零玩转设计模式之原型模式 date: 2022-12-11 20:05:35.488 updated: 2022-12-23 15:35:44.159 url: https://www.yby6.com/archives/yuanxingmoshi categories: - 设计模式 tags: - 设计模式 - 原型模式 什么是原型模式设计模式? 原型模式是一种软件设计模式&#…

公司招了一个00后,以为是个小年轻,没想到人家是个卷王...

公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资也不低&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。 令我印象最深的是一个00后测试员&#xff0c;…

【Linux高级 I/O(2)】如何使用阻塞 I/O 与非阻塞 I/O?——select()函数

上次我们虽然使用非阻塞式 I/O 解决了阻塞式 I/O 情况下并发读取文件所出现的问题&#xff0c;但依然不够完美&#xff0c;使得程序的 CPU 占用率特别高。解决这个问题&#xff0c;就要用到本文将要介绍的 I/O 多路复用方法。 何为 I/O 多路复用 I/O 多路复用&#xff08;IO m…

AI 将完全取代前端开发吗?

注&#xff1a;今晨&#xff0c;我浏览 Medium&#xff0c;看到了篇颇为标题党的文章&#xff0c;于是我就将它抛给了 ChatGPT。本篇文章全部由 ChatGPT 所写。同时&#xff0c;我也请 ChatGPT 分享了它对此的观点。 最近&#xff0c;我的同事向我讲述了他与他老板的一次谈话。…

Python机器学习:Scikit-learn和TensorFlow的应用和模型设计

一、引言 Python在机器学习领域中已经成为非常受欢迎的编程语言。Scikit-learn和TensorFlow是Python中应用最广泛的两个机器学习库&#xff0c;它们提供了丰富的机器学习算法和工具&#xff0c;帮助开发人员轻松地构建和训练机器学习模型。本文将详细介绍Scikit-learn和Tensor…

功率放大器的选型原则和方法是什么

功率放大器是一种能够将低电平信号放大到足够高的电平以驱动负载的电子器件。在各种电子设备中&#xff0c;功率放大器被广泛应用&#xff0c;如音响系统、电视广播、汽车音响、射频通信等。因此&#xff0c;正确选型功率放大器非常重要&#xff0c;可以提高设备的性能和可靠性…

如何在linux中配置JDK环境变量

在linux系统部署皕杰报表&#xff0c;因皕杰报表是一款纯java报表工具&#xff0c;运行时需要jre环境&#xff0c;所以要在服务器上配置三个jdk环境变量path、classpath、JAVA_HOME。 那么为什么要配置jdk环境变量呢&#xff1f;因为java软件运行时要用到一些java命令&#xff…

Python挑选出无Labelme标注文件的图片文件

Python挑选出无Labelme标注文件的图片文件 前言前提条件相关介绍实验环境Python挑选出无Labelme标注文件的图片文件代码实现输出结果 前言 本文是个人使用Python处理文件的电子笔记&#xff0c;由于水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。 (https://blog.…

JAVA常用API - Runtime和System

文章目录 前言 大家好,我是最爱吃兽奶,今天给大家带来JAVA常用API中的Runtime类和System类 那么就让我们一起去看看吧! 一、Rubtime 1.Rubtime是什么? 2.Runtime常用方法 Runtime提供了很多方法,在这里演示两个 public static Runtime getRuntime(): 返回当前运行时环境的…

Ada 语言学习(3)复合类型数据——Array

文章目录 Array数据类型声明数组索引数组范围数组复制数组初始化直接赋值通过拷贝赋值不同索引范围但长度相等非指定类型边界收缩 多维数组数组遍历数组切片访问和动态检查直接访问动态检查 数组字面量 Array literal数组拼接两个数组拼接数组和单个值拼接 Array Equality&…

SpringBoot【开发实用篇】---- 整合第三方技术(消息)

SpringBoot【开发实用篇】---- 整合第三方技术&#xff08;消息&#xff09; 消息的概念Java处理消息的标准规范JMSAMQPMQTTKafka 购物订单发送手机短信案例订单业务短息处理业务 SpringBoot整合ActiveMQ安装整合 SpringBoot整合RabbitMQ安装整合&#xff08;direct模型&#x…

加密解密软件VMProtect教程(六):主窗口之控制面板“项目”部分(2)

VMProtect 是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…

solidworks2020及麦迪工具箱安装

1、麦迪工具箱安装 1&#xff09;下载 下载链接&#xff1a;www.maidiyun.com/download 下载今日制造 2&#xff09;安装 由于电脑上安装了杀毒软件&#xff0c;会直接删除解压后的安装包&#xff0c;因此需要关闭杀毒软件或者在被删除后进入杀毒软件的隔离区将该文件添加…

Tomcat安装与使用

Tomcat 是HTTP服务器&#xff0c;用于使用HTTP协议。 1、下载Tomcat 下载链接&#xff1a;https://tomcat.apache.org/ 进入官网后&#xff0c;根据自己想要下载的版本进行下载&#xff0c;我这里选择下载的版本是Tomcat 8. 点击选择自己想要下载的对应版本&#xff0c;下载Z…

Netty入门

Netty入门 1. 概述 1.1 Netty是什么&#xff1f; Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.以上片段摘自官网&#xff0c;Netty 是一个异步的、基于事…

三十六、链路追踪、配置中心

1、链路追踪 在一次调用链路中&#xff0c;可能设计到多个微服务&#xff0c;如果在线上&#xff0c;某个微服务出现故障&#xff0c;如何快速定位故障所在额微服务呢。 可以使用链路追踪技术 1.1链路追踪介绍 在大型系统的微服务化构建中&#xff0c;一个系统被拆分成了许多微…