UDS DTC状态掩码/DTC状态位

news2024/11/24 4:44:01

文章目录

  • 简介
  • 用途
  • 依赖知识
    • 1、测试(test)
    • 2、操作循环(operation cycle)
    • 3、老化(aging)
  • DTC状态位
    • 1、Bit 0:Test Failed
    • 2、Bit 1:Test Failed This operation cycle
    • 3、Bit 2:Pending DTC
    • 4、Bit 3:Confirmed DTC
    • 5、Bit 4:Test Not Complete Since Last Clear
    • 6、Bit 5:Test Failed Since Last Clear
    • 7、Bit 6:Test Not Complete This Operation Cycle
    • 8、Bit 7:
  • 操作循环中的DTC 状态掩码
  • 参考

简介

DTC状态位(StatusOfDTC),又叫DTC状态掩码(DTCStatusMask),是用来指示DTC所对应的故障是否发生,是否被确认等状态。

用途

用状态掩码去查找与其相匹配的故障个数,通过 $19 服务诊断仪能够请求ECU中DTC状态与DTC状态掩码相匹配的故障码个数。

如果某一个故障码的实际状态位为1,并且DTC状态掩码中的相应位也为1,那么就认为该故障码的状态与DTC状态掩码相匹(即:如果DTC状态掩码字节与DTC实际状态字节进行逻辑“位与”运算后的结果为非零值,那么两者就相匹配);此时则将故障数+1。

依赖知识

1、测试(test)

所谓 测试(test),实际上就是 判断当前条件是否满足故障码上报的条件。

不同 DTC 的判断条件不同,判断时机和周期也不同,有些故障判断在一个操作循环内仅运行一次,有些则是周期性判断。

2、操作循环(operation cycle)

定义了测试的开始和结束条件,Operation Cycle开始时开始检测故障,结束时停止检测。

3、老化(aging)

所记录的DTC,如果这个故障不再出现,那就不会一直被记录下去,这时需要通过一个过程:当测试结果连续出现多少次Passed,才可将这个DTC清除,这个过程就叫老化。多少次称为老化阈值。

常用老化阈值为:40 cycle

DTC状态位

DTC状态位包含1个字节数据长度,当条件成立时,该Bit位置1,通过读取各Bit的置位信息即可得知当前及过去DTC的情况,当然也可以通过诊断命令对状态位进行清除

但并不是每一位不一定都要使用,具体取决于各OEM的需求,在ISO14229-1中,除了bit3: ConfirmedDTC是强制约束外,其他都没有强制约束。

状态缩写术语描述
Bit 0TFTest Failed故障位(当前故障)
1 表示当前结果为故障状态
Bit 1TFTOCTest Failed This operation cycle当前操作循环检测故障位
1 表示当前操作循环中至少检测到一次故障
Bit 2PDPending DTC待确定的DTC
1 表示上一次或者当前操作循环中至少检测到一次故障
Bit 3CDTCConfirmed DTCDTC确认(历史故障)
1 表示存在历史故障
Bit 4TNCSLCTest Not Complete Since Last Clear在故障清除后 test 没有完成
1 表示从上次进行清除诊断信息后,DTC Test 尚未完成
Bit 5TFSLCTest Failed Since Last Clear在故障清除后测试失败
1 表示从上次进行清除诊断信息后,DTC测试当前结果为故障状态
Bit 6TNCTOCTest Not Complete This Operation Cycle当前操作循环测试没有完成
1 表示在当前操作循环内(或在本次操作循环内,清除上一次诊断信息后)未完成DTC测试
Bit 7WIRWaring请求警告指示灯
1 表示有报警输出,报警指示灯亮起

1、Bit 0:Test Failed

经Debounce(消抖)后最终的故障状态,表示当前是否有故障发生

  • 满足以下条件之一时,Bit 0 = FALSE(0)
    1. DEM初始化完成
    2. 测试结果通过
    3. 14服务清除DTC
  • 满足以下条件之一时,Bit 0 = TRUE(1)
    1. 测试结果为不通过

注意:test失败置1,但是它不一定被ECU存储到EEprom中,只有当bit2或bit3被置1时DTC才会被存储。
在这里插入图片描述

2、Bit 1:Test Failed This operation cycle

在当前操作循环是否出现一次测试结果为Failed,如果出现了,则DTC的状态位bit1置1。

通常和 bit2 和 bit3 一起使用,也就是表示当前操作周期或从上一次命令清零后已经监测到一次故障。

通过Bit0我们可以知道当前该DTC的状态,通过Bit1知道某DTC在当前operation cycle是否出现过错误,即使后面被修复,该Bit1仍将置位。

  • 满足以下条件之一时,Bit 1 = FALSE(0)
    1. DEM初始化完成
    2. 操作循环开始
    3. 14服务清除DTC
  • 满足以下条件之一时,Bit 1 = TRUE(1)
    1. 测试结果为不通过

在这里插入图片描述

3、Bit 2:Pending DTC

在上一次或当前操作循环是否出现一次测试结果为Failed,如果出现了,则相应DTC的状态位bit2就置1。

Pending DTC其实是表示DTC处于testFailed和confirmedDTC之间的一个状态,称为待定DTC。因为DTC并不是一达到触发位就会被报出来的,而是要对故障进行Debounce(消抖),防止故障误报。
而中间的这个状态就用bit2位来表示。若一段时间后故障条件不满足了,则bit2置0,如果几次Debounce(消抖)后故障仍存在,则对应ConfirmedDTC状态位就会置位。

  • 满足以下条件之一时,Bit 1 = FALSE(0)
    1. DEM初始化完成
    2. 操作循环结束后(测试完成)且未检测出任何故障(bit1 和 bit4 都是0)
    3. 14服务清除DTC
  • 满足以下条件之一时,Bit 1 = TRUE(1)
    1. 测试结果为不通过

注意:(如果某次Operation Cycle未完成测试,则调过本次Operation Cycle不计数)
在这里插入图片描述

4、Bit 3:Confirmed DTC

Bit3(ConfirmedDTC)对应Bit2(PendingDTC)即已确定的DTC,当PendingDTC置位多次达到可以确定failed标准后即成为ConfirmedDTC,故障数据存储至EEPROM

  • 满足以下条件之一时,Bit 1 = FALSE(0)
    1. DEM初始化完成
    2. 满足老化条件
    3. 14服务清除DTC
  • 满足以下条件之一时,Bit 1 = TRUE(1)
    1. 测试结果为不通过并且故障 Debounce(消抖)后仍存在

注意:当confirmedDTC = TRUE时,并不意味着当前这个DTC仍然出错,也可能Bit0(TestFailed) = FALSE,即为历史故障。
在这里插入图片描述

5、Bit 4:Test Not Complete Since Last Clear

表示上次调用14服务清除诊断消息后,某DTC是否进行了一个完整的测试(不管测试结果是什么,只关心是否测了),
无论结果如何,都置0,否则置1。

  • 满足以下条件之一时,Bit 1 = FALSE(0)
    1. 在调用 14 服务后,该 DTC 进行了一个完整的测试
  • 满足以下条件之一时,Bit 1 = TRUE(1)
    1. 14服务清除故障状态
    2. 在调用 14 服务后,该 DTC 未进行了一个完整的测试

在这里插入图片描述

6、Bit 5:Test Failed Since Last Clear

表示自从上次故障信息被清除,是否出现某DTC测试结果为Failed。

如果出现了,则该DTC的状态位bit5置1;如果被置1,那么只有当操作循环改变且满足老化阈值条件,或者使用诊断设备执行了清除DTC指令等,该位才能被重置为0。

与Bit1(TestFailedThisOperationCycle)置位逻辑类似,差别在于Bit5(TestFailedSinceLastClear)计算起点是从上次清除故障开始,如出现故障则该Bit置为TRUE,否则为FALSE。

  • 满足以下条件之一时,Bit 1 = FALSE(0)
    1. 14服务清除故障状态
    2. 故障老化
    3. 故障替代
  • 满足以下条件之一时,Bit 1 = TRUE(1)
    1. 在调用 14 服务后,test 再次为 Failed

在这里插入图片描述

7、Bit 6:Test Not Complete This Operation Cycle

本位表示,在当前操作循环内,是否已进行并完成DTC 测试(或在当前操作循环期间上一次发出ClearDiagnosticlnformation(清除诊断信息)请求后完成测试)。
无论结果如何,都置0,否则置1。

  • 满足以下条件之一时,Bit 1 = FALSE(0)
    1. 该 DTC 进行了一个完整的测试
  • 满足以下条件之一时,Bit 1 = TRUE(1)
    1. 14服务清除故障状态
    2. 该 DTC 未进行了一个完整的测试
    3. 操作循环变化
      在这里插入图片描述

8、Bit 7:

该位报告警告指示,比如说仪表盘上的警示灯等。

但不是所有的DTC都会有警告指示,如果没有和DTC相关的警告存在,该位应置0;

如果该DTC有相关警告指示,bit3置1的时候,bit7也要置1。

操作循环中的DTC 状态掩码

Todo

参考

  • ISO14229-1
  • https://zhuanlan.zhihu.com/p/658315949
  • https://blog.csdn.net/Last_Impression/article/details/128295981
  • https://zhuanlan.zhihu.com/p/646062179?utm_id=0
  • https://blog.csdn.net/initiallizer/article/details/128823743
  • http://www.360doc.com/content/22/0426/10/16788547_1028350073.shtml

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

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

相关文章

【大数据】Hadoop生态未来发展的一些看法

大数据的起源 谷歌在2003到2006年间发表了三篇论文,《MapReduce: Simplified Data Processing on Large Clusters》,《Bigtable: A Distributed Storage System for Structured Data》和《The Google File System》介绍了Google如何对大规模数据进行存储…

基于51单片机的语音识别控制系统

0-演示视频 1-功能说明 (1)使用DHT11检测温湿度,然后用LCD12864显示,语音播放,使用STC11l08xe控制LD3320做语音识别, (2)上电时语音提示:欢迎使用声音识别系统&#xf…

数据结构篇-顺序表及单项链表

目录 一、学习目标 二、顺序表 1. 线性表 1.1 概念 1.2 举例 2. 顺序表 2.1 基本概念 2.2 基本操作 2.3 顺序表优缺点总结 三、单项链表 1. 基本概念 2. 链表的分类 无头节点: 有头节点: 增添加节点 查找节点 删除节点 链表遍历 销毁链…

【ARM Trace32(劳特巴赫) 使用介绍 13 -- Trace32 断点 Break 命令篇】

文章目录 1. Break.Set1.1 TRACE32 Break1.1.1 Break命令控制CPU的暂停1.2 Break.Set 设置断点1.2.1 Trace32 程序断点1.2.2 读写断点1.2.2.1 变量被改写为特定值触发halt1.2.2.2 设定非值触发halt1.2.2.4 变量被特定函数改写触发halt1.2.3 使用C/C++语法设置断点条件1.2.4 使用…

折点计数 C语言xdoj46

问题描述 给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点,其他的天都不是折点。如图…

AI大模型行业2024年上半年投资策略:大模型多模态化趋势显著,AI应用侧加速繁华

今天分享的AI系列深度研究报告:《AI大模型行业2024年上半年投资策略:大模型多模态化趋势显著,AI应用侧加速繁华》。 (报告出品方:东莞证券) 报告共计:30页 1.传媒行业行情和业绩回顾 1.1行业…

数据可视化:解析跨行业普及之道

数据可视化作为一种强大的工具,在众多行业中得到了广泛的应用,其价值和优势不断被发掘和利用。今天就让我以这些年来可视化设计的经验,讨论一下数据可视化在各个行业中备受青睐的原因吧。 无论是商业、科学、医疗保健、金融还是教育领域&…

spring 笔记一 spring快速入门和配置文件详解

Spring简介 Spring是分层的 Java SE/EE应用full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了展现层SpringMV…

如何FL Studio显示中文?切换语言教程

你是不是也在为fl studio的英文界面而苦恼?你是不是也想让你的fl studio 说中文,方便你制作音乐?你是不是也在网上找了很多教程,却发现都是复杂的,或者已经过时的?如果你的答案是肯定的,那么你来…

c++国际象棋有人机qt5.9.9启动chesss

项目简介: 利用C的知识和QT以及一些自行拓展的新知识,实现国际象棋的开发。 使自己更加深层的理解和掌握c并在程序中展现出来,同时开发编程的思想和能力,以及扩展知识面,学习一些课上没有涉及的内容。同时通过阅读一…

应用程序映射的 5 个安全优势

现代企业依靠无数的软件应用程序来执行日常运营。这些应用程序相互连接并协同工作以提供所需的服务。了解这些应用程序如何相互交互以及底层基础设施对于任何组织都至关重要。这就是应用程序映射概念的用武之地。 顾名思义,应用程序映射是创建应用程序架构&#xf…

Java键值对Pair的使用方式和操作流程

Java键值对Pair的使用方式和操作流程 什么是键值对 键值对是一种常见的数据结构,它由一个唯一的键(key)和与之关联的值(value)组成。键和值之间存在一种映射关系,通过键可以查找或访问对应的值。 在键值对…

设计模式——原型模式(创建型)

引言 原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。 问题 如果你有一个对象, 并希望生成与其完全相同的一个复制品, 你该如何实现呢? 首先, 你必须新建一个属于…

【vue实战项目】通用管理系统:信息列表,信息的编辑和删除

本文为博主的vue实战小项目系列中的第七篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容: 【vue实战项目】通用管理系统:登录页-CSDN博客 【vue实战项目】通用管理系统:封装token操作…

【日积月累】Spring中的AOP与IOC相关问题详解

Spring中的AOP与IOC 1.前言2.Spring AOP(面向切面编程)2.1 AOP的实现过程2.2 AOP代理模式的类型2.2.1JDK的动态代理2.2.2CGLIB的动态代理 2.3AOP应用常见场景2.3.1日志记录 2.4对AOP的理解 3.Spring IOC(Inversion of Control,控…

【JVM从入门到实战】(五)类加载器

一、什么是类加载器 类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。 类加载器只参与加载过程中的字节码获取并加载到内存这一部分。 二、jdk8及之前的版本 类加载器分为三类: 启动类加载器-加载Ja…

Linux驱动入门 —— LED点灯驱动程序

目录 IMX6ULL 的 GPIO 操作方法 GPIO 操作相关名词 IMX6ULL 的 GPIO 模块结构 GPIO 模块内部 读 GPIO​编辑 写 GPIO​编辑 LED 点灯驱动程序 字符设备驱动程序框架 编写驱动程序的步骤: 先编写驱动程序代码: 再编写测试程序代码:…

【华为数据之道学习笔记】4-2信息架构原则:建立企业层面的共同行为准则

信息架构承载了企业如何管理数据资产的方法,需要从整个企业 层面制订统一的原则,这些原则不仅是对数据专业人员的要求,也是对业务的要求,因为业务才是真正的数据Owner。所以,公司所有业务部门都应该共同遵从信息架构原…

【人工智能】人工智能中的Agent:法律虚拟助手简单示例

人工智能中的Agent:法律虚拟助手简单示例 随着人工智能技术的发展,Agent(代理)的概念在这个领域中变得愈发重要。在人工智能的应用中,Agent可以是一个系统、软件或机器人,能够执行特定的任务,理…

【JNA与C++基本使用示例】

JNA中java与C使用注意事项和代码示例 JNA关系映射表使用案列注意代码示例C代码java代码 JNA关系映射表 使用案列 注意 JNA只支持C方式的dll使用C的char* 作为返回值时,需要返回的变量为malloc分配的地址C的strlen函数只获得除/0以外的字符串长度 代码示例 C代码…