UDS诊断系列介绍16-DTC状态位介绍

news2024/11/19 4:29:20

本文框架

  • 1. 系列介绍
  • 2.各状态位逻辑介绍
    • 2.0 Bit0(TestFailed)置位逻辑
    • 2.1 Bit1(TestFailedThisOperationCycle)置位逻辑
    • 2.2 Bit2(PendingDTC)置位逻辑
    • 2.3 Bit3(ConfirmedDTC)置位逻辑
    • 2.4 Bit4(TestNotCompletedSinceLastClear)置位逻辑
    • 2.5 Bit5(TestFailedSinceLastClear)置位逻辑
    • 2.6 Bit6(TestNotCompletedThisOperationCycle)置位逻辑
    • 2.7 Bit7(WarningIndicator)置位逻辑

1. 系列介绍

UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的一种诊断通信方式,是基于ISO 14229规范的规范化诊断服务标准,其位于OSI模型中的应用层,UDS可基于不同的总线实现,如基于CAN总线可再结合ISO1576协议进一步实现传输层,本篇将介绍DTC状态位相关内容:

在DTC状态位(一个Byte)中,每个Bit都有各自的含义。当条件成立时,该Bit位置1,通过读取各Bit的置位信息即可得知当前及过去DTC的情况,当然也可以通过诊断命令对状态位进行清除,各Bit位相关信息如下:
DEM_UDS_STATUS_TF:位0,TestFailed位。
DEM_UDS_STATUS_TFTOC:位1,TestFailedThisOperationCycle位。
DEM_UDS_STATUS_PDTC:位2,PendingDTC位。
DEM_UDS_STATUS_CDTC :位3,ConfirmedDTC位。
DEM_UDS_STATUS_TNCSLC:位4,TestNotCompletedSinceLastClear位。
DEM_UDS_STATUS_TFSLC:位5,TestFailedSinceLastClear位。
DEM_UDS_STATUS_TNCTOC:位6,TestNotCompletedThisOperationCycle位。
DEM_UDS_STATUS_WIR:位7,WarningIndicatorRequested位。

2.各状态位逻辑介绍

2.0 Bit0(TestFailed)置位逻辑

从下图可以看出当DEM初始化或测试结果通过时,或通过14服务清除DTC状态时,Bit0会被设置为FALSE,
当测试失败时,该DTC Bit位将会被置为TRUE,一般Bit 0置位即表明当前存在故障。在这里插入图片描述

2.1 Bit1(TestFailedThisOperationCycle)置位逻辑

Bit1,表示当前点火循环测试失败,与Bit0置位情况基本相同,区别在于Bit1可标记某个DTC在当前operation cycle中是否出现过testFailed置1的情况,即是否出现过错误。

通过Bit0我们可以知道当前该DTC的状态,通过Bit知道某DTC在当前operation cycle是否出现过错误,即使后面被修复,该Bit仍将置位。
在这里插入图片描述

2.2 Bit2(PendingDTC)置位逻辑

Bit2:表示当前及上一个完整operation cycle里是否检测到状态出错,是介于Bit0(TestFailed)及Bit3(ConfirmedDTC)中间的一个状态,相当于对故障进行滤波,如果几次滤波后仍存在,则对应ConfirmedDTC状态位置位。

Bit2(PendingDTC)只有在测试运行并完成时,才能更新状态。Bit2(PendingDTC)位和Bit1(TestFailedThisOperationCycle)位的标准相同。不同之处在于,Bit1(TestFailedThisOperationCycle)在当前操作周期结束时被清除,而Bit2(PendingDTC)位为至少测试通过一次且从未失败的操作循环完成之前不清除。
在这里插入图片描述

2.3 Bit3(ConfirmedDTC)置位逻辑

Bit3(ConfirmedDTC)对应Bit2(PendingDTC)即已确定的DTC,当PendingDTC置位多次达到可以确定failed标准后即成为ConfirmedDTC。但当confirmedDTC = TRUE时,并不意味着当前这个DTC仍然出错,也可能Bit0(TestFailed) = FALSE,即为历史故障。

在调用ClearDiagnosticInformation或满足老化标准后(老化标准一般由主机厂提供),重置为逻辑“0”。此外,根据车辆制造商特定的故障内存要求,当与此故障诊断码相关的故障记录被更新的故障诊断码覆盖时,将重置此位。
在这里插入图片描述

2.4 Bit4(TestNotCompletedSinceLastClear)置位逻辑

Bit4(TestNotCompletedSinceLastClear),自从上次清除DTC状态后还没完成该DTC的测试,即不管测试结果是否通过,如已测试完成,该Bit将置位为FALSE。

在UDS诊断协议中可以使用0x14服务清除全部或单个DTC故障状态。
在这里插入图片描述

2.5 Bit5(TestFailedSinceLastClear)置位逻辑

Bit5(TestFailedSinceLastClear),自从上次清除DTC状态后该DTC测试失败。与Bit1(TestFailedThisOperationCycle)置位逻辑类似,差别在于Bit5(TestFailedSinceLastClear)计算起点是从上次清除故障开始,如出现故障则该Bit置为TRUE,否则为FALSE。
在这里插入图片描述

2.6 Bit6(TestNotCompletedThisOperationCycle)置位逻辑

Bit6(TestNotCompletedThisOperationCycle),表示该DTC在当前驾驶循环仍未诊断完成,初始化后该Bit即置为TRUE,与Bit4(TestNotCompletedSinceLastClear)类似。
在这里插入图片描述

2.7 Bit7(WarningIndicator)置位逻辑

Bit7(WarningIndicator),对应某些影响驾驶安全、影响排放等较重要DTC会与仪表上的危险警报灯、故障灯等相关联,当这类DTC出现failed情况该Bit将置位为TRUE,而对于不关联DTC该Bit将不会使用,保持为FALSE状态。
在这里插入图片描述

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

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

相关文章

网站排名下降怎么恢复(网站降权的原因如何知道)

网站降权后恢复网站排名的方法 对于我们很多SEO新手来说,降权可能是不可避免的,但很多时候是因为我们的无知或粗心大意导致网站降权,从延长排名周期到导致网站进入沙盒效应,所以我们的网站降权后并非无法恢复。很多时候&#xff…

【逆向分析】静态分析_Navtive_小计

静态分析so小计 源APK https://github.com/eternalsakura/ctf_pwn/blob/master/android%E9%80%86%E5%90%91/mobicrackNDK.apk jadx 通过源码发现关键函数在 public native boolean testFlag(String str);static {System.loadLibrary("mobicrackNDK");}所以要看na…

【C++】入门(上)

本期博客给大家带来的全是干货,慢慢享用吧~C入门主要是一些对C语言不足的语法补充,废话不多说直接上干货:一、C的输出和输入1.1 输出在C上我们要想在屏幕(控制台)上进行一些内容的输出可以使用关键字:cout具…

MoCo解读

MoCo方法由何凯明团队提出,是无监督对比学习的代表作。经过MoCo预训练的视觉表征迁移到各种下游任务时,其效果超过了有监督预训练模型。 两点创新 对比学习的思想是将相似的样本距离拉近,不相似的样本距离拉远。对比学习主要在两方面进行设计…

JavaEE13-MyBatis查询数据库

前言:前面已经学习了Spring,Spring Boot,Spring MVC这3个框架,接下来学习第4个框架MyBatis(国内):将前端传递的数据存储起来(前身IBatis)或者查询数据库里面的数据。PS:不同版本号区别3.5.1 -> 3.5的第一个版本3.5.10 -> 3.…

命令执行利用

数据来源 01 命令执行漏洞 命令执行漏洞- 例子1(无防御) 示例:(我这里使用dvwa靶场做演示) 解决靶场响应结果的中文乱码 charsetutf-8,修改为charsetgb2312 把安全等级调到:low&#xff0…

concat函数在mySQL和Oracle中的不同

在mysql中的使用1>.在该函数中传入两个值:22和33,得到结果为两个值的拼接效果如图所示2>.在该函数中传入两个及以上的值:22和33和44,得到结果为多个值的拼接效果如图所示3>.在该函数中传入两个及以上的值:null和22和33,得…

GitHub 上有哪些优秀的项目?

前言 各个领域模块的都整理了一下,包含游戏、一些沙雕的工具、实用正经的工具以及一些相关的电商项目,希望他们可以给你学习的路上增加几分的乐趣,我们直接进入正题~ 游戏 1.吃豆人 一款经典的游戏开发案例,包括地图绘制、玩家控…

车载网络 - BootLoader - CAN/CANFD刷写过程

话接上回,我们继续分享刷写流程。 刷写Boot到RAM(如果ECU中有独立的boot代码,无需执行此段) 9、获取单次刷写的最大长度(参考https://mp.csdn.net/mp_blog/creation/editor/127720716) Request:34 00 44 + 地址 + 长度 Response:74 00 44 + Maxlength 10、进行刷写传…

Netty之DefaultAttributeMap与AttributeKey的机制和原理

为什么要分析DefaultAttributeMap和AttributeKey呢?我自己对Netty也是一个不断的学习过程,从前面几篇Netty分析的博客中,可以看出,Netty是比较博大精深的,很像java.util.concurrent.*包中的源码,如果只是看…

【微电网】微电网的分布式电源优化配置研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

企业工程管理系统源码-专注项目数字化管理

高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保项…

关于卷积过程中通道数如何变化问题

以RGB图像为例。 一个12*12的像素图,对其进行5*5的卷积,最后得到一个8*8【计算过程:(12-5)/118】的像素图。 RGB图像有3个通道(12*12*3),所以卷积核也要有3个通道(5*5*3)&am…

第一章 隐私计算科普与解读

前言 提醒:全文10千字,预计阅读时长15分钟;读者:对隐私计算感兴趣的小伙伴;目的:读者利用15~30 分钟对本文沉浸式阅读理解,能够掌握隐私计算 80% 的概念;关键词 :隐私计算…

好用的搜索工具listary

发现一个好工具记录一下。以后好好用起来。 这个工具我安装后,跟着引导教程,学做了一些操作立马就爱上了。 Listary:大幅度提高本地文件浏览与搜索速度效率的「超级神器」 百度安全验证https://baijiahao.baidu.com/s?id17127561426219890…

【Python】基于you-get下载网页视频

文章目录1 前言2 you-get2.1 安装2.2 简单使用2.3 扩展3 下载网页视频3.1 概述3.2 下载网页4 代码1 前言 过年了,想给家里长辈下几首戏曲,于是找到一个发布戏曲的网站,虽然可以通过IDM插件的资源嗅探来一一下载,但是内容太多&…

【JavaScript】数据劫持详解

💻 【JavaScript】数据劫持 🏠专栏:JavaScript 👀个人主页:繁星学编程🍁 🧑个人简介:一个不断提高自我的平凡人🚀 🔊分享方向:目前主攻前端&#…

这就是传说中超难的N皇后?——详细图解!

✔️本文主题:回溯算法之N皇后 算法 ✔️题目链接:N皇后 详解N皇后一、前言二、题目信息三、解题思路四、参考代码五、结语一、前言 大家好久不见,今天我们一起来学习一道很经典、也很有难度的一道题目——N皇后 二、题目信息 按照国际象棋…

Spring-基础知识二

Spring9.Spring JdbcTemplate的使用9.1 JdbcTemplate入门9.1.1 需要的包9.1.2 代码测试9.2 将数据源和jdbcTemplate交给Spring来管理9.2.1 druid连接池9.2.2 使用外部文件配置数据连接信息9.3 基于JdbcTemplate实现DAO9.Spring的事务管理机制9.1 PlatformTransactionManager 事…

第十章 面向对象编程(高级)

一、类变量和类方法(P374) 1. 类变量 定义语法: 访问修饰符 static 数据类型 变量名; 类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时&…