当前位置: 首页 > news >正文

读取 DTC 信息服务 (0x19) – UDS 协议


总目录链接==>> AutoSAR入门和实战系列总目录

0x19读取 DTC 信息服务概述

读取 DTC 信息服务在 UDS 协议中用于从车辆或特定 ECU 或节点读取 DTC。UDS 协议的主要任务之一是故障诊断。每当车辆发生任何故障时,与该故障相对应的诊断故障代码(DTC)就会存储在ECU故障代码存储器(FCM)中。诊断服务工程师可以使用读取 DTC 信息(0x19 或 19 十六进制)服务检索这些 DTC。

故障诊断服务允许客户端读取排放相关或非排放相关的 DTC 信息。客户端可以根据显示 DTC 信息定义状态掩码。

除了DTC,做更多的诊断有助于诊断工程师解决问题,快照数据也存储在NVM中。DTC 快照数据提供有关故障发生期间发动机参数的附加信息。

诊断故障代码以两种方式定义。一种由 ISO 标准定义,另一种由 OEM 定义。要了解更多信息,请遵循ISO 15031 教程。最后,所有 DTC 编号都在 ECU 闪存故障或错误存储器中预定义。

但是这个故障码应该什么时候设置,什么时候清除,或者什么时候成熟,服务器或车辆制造商或系统供应商的特定条件定义了许多测试场景,这些场景定义了被诊断的系统是否在正常、可接受的操作范围内正常运行。
因此,通过运行为该测试或 DTC 编写的特定测试程序,确保故障 100% 发生。下面定义了多个可以确保确定故障的测试标准。

故障启用标准:

每个 ECU 都有内置的故障测试程序,可以返回测试结果。根据测试结果,它可能是“通过”或“失败”。每个故障都会执行很多测试程序。但并不是ECU上电或主程序开始运行后,所有的测试程序都会运行。

因此,该特定测试程序应根据多个特定标准运行以检查诊断故障。这将有助于减少微控制器程序执行超负荷。它还有助于仅在根据系统要求确实需要时才检测到特定故障。

我们可以说服务器或车辆制造商或系统供应商的特定标准用于控制服务器何时实际执行特定的内部诊断。如果启用了故障,那么我们可以使用读取 DTC 信息 0x19 服务来读取 DTC。

测试通过标准:

当测试程序将运行时,将诊断错误何时应该通过或失败。在故障发生时 DTC 应该记录,否则它不应该记录【故障正在发生,但尚未确认】。如果想读取未确认的 DTC,可以通过19 04服务来读取。

让我用一个最好的例子来解释你。假设您的车辆没有启动。你正在检查电池之类的东西。假设您使用螺丝刀或其他任何东西错误地短路了电池端子,后来你把它去掉了。你认为这是一个错误?你需要修复它吗?不对,因为它是意外发生的。但是当真正的短路发生在车内并且它没有从中恢复时,只需要记录 DTC。

所以对于每个DTC,都会有诊断测试程序。每个测试都有自己特定的测试通过条件。这些标准由服务器或车辆制造商或系统供应商定义。因此它定义了被诊断的系统是否在正常的、可接受的操作范围内正常运行。

测试失败标准:

从上面的描述中了解到特定诊断测试的测试条件。然后像通过条件一样,将有多个条件,测试程序应该根据这些条件做出失败的决定。服务器或车辆制造商或系统供应商特定的故障条件,定义被诊断的系统是否未通过测试。

确认故障失效准则:

现在的问题又是什么是确认故障?故障可能发生并且可能无法确认故障。通过DTC 状态字节,用于存储每个测试条件状态,每个测试都有自己的条件来确认故障,这也称为DTC成熟。所以有不同的操作周期,之后一个确定的故障就会成熟。这样这个DTC就会把状态字节、快照记录、扩展数据记录等所有的依赖数据存入微控制器的永久内存中。它可以在以后任何时候或在服务中心使用。

故障发生计数器:

在每个 ECU 中,都会有根据系统要求定期运行的测试程序。但要做出一个确定的故障,需要有多个运算周期。每个操作周期都会有一个故障计数器。

故障老化计数器

老化计数器定义故障或 DTC 的寿命。一个人是如何有一定年龄的,过了这个年龄,我们都将死去。在机器或汽车 ECU的情况下,它们也有系统工程师定义的每个 DTC 的年龄。因此每个 ECU 或服务器都有一个老化计数器数组,用于存储每个故障或 DTC 的老化值。每个 ECU 或服务器都有一个进程。通过使用此进程,服务器可以计算 DTC 的寿命并将其存储在老化计数器中。它也可以通过使用 Count-In step 和 Count-Out step 方法来增加或减少。

DTC老化

DTC 中的老化是某个 ECU 评估每个内部诊断的过去结果以确定是否可以从非易失性存储器 (NVM) 中清除已确认的 DTC 的过程。这意味着在多少次无故障循环之后,可以清除 DCT。

读取 DTC 信息服务子功能 列表

SBF Identifier ValueSBF NameDescription
0x00ISO SAE Reserved
0x01Report Number Of DTC By Status Mask
0x02Report DTC By Status Mask
0x03Report DTC Snapshot Identification
0x04Report DTC Snapshot Record By DTC Number
0x05Report DTC Stored Data By Record Number
0x06Report DTC External Data Record By DTC Number
0x07Report Number Of DTC By Severity Mask Record
0x08Report DTC By Severity Mask Record
0x09Report Severity Information Of DTC
0x0AReport All Supported DTC
0x0BReport First Test Failed DTC
0x0CReport First Confirmed DTC
0x0DReport Most Recent Test Failed DTC
0x0EReport Most Recent Confirmed DTC
0x0FReport Mirror Memory DTC By Status Mask
0x10Report Mirror Memory DTC Extended Data Record By DTC Number
0x11Report Number Of Mirror Memory DTC By Status Mask
0x12Report Number Of Emissions OBD DTC By Status Mask
0x13Report Emissions OBD DTC By Status Mask
0x14Report DTC Fault Detection Counter
0x15Report DTC With Permanent Status
0x16Report DTC Extended Data Record By Record Number
0x17Report User Defined Memory DTC By Status Mask
0x18Report User Defined Memory DTC Snapshot Record By DTC Number
0x19Report User Defined Memory DTC Extended Data Record By DTC Number
0x1A – 0x41ISO SAE Reserved
0x42Report WWH OBD DTC By Mask Record
0x43 – 0x54ISO SAE Reserved
0x55Report WWH OBD DTC With Permanent Status
0x56 – 0x7FISO SAE Reserved

相关文章:

读取 DTC 信息服务 (0x19) – UDS 协议

总目录链接>> AutoSAR入门和实战系列总目录 0x19读取 DTC 信息服务概述 读取 DTC 信息服务在 UDS 协议中用于从车辆或特定 ECU 或节点读取 DTC。UDS 协议的主要任务之一是故障诊断。每当车辆发生任何故障时,与该故障相对应的诊断故障代码(DTC&a…...

Hive 分区表新增字段 cascade

背景 在以前上线的分区表中新加一个字段,并且要求添加到指定的位置列。 模拟测试 加 cascade 操作 创建测试表 create table if not exists sqltest.table_add_column_test(org_col1 string comment 原始数据1,org_col2 string comment 原始数据2 ) comment 增…...

【Java版oj】day08两种排序方法、最小公倍数

目录 一、两种排序方法 (1)原题再现 (2)问题分析 (3)完整代码 二、最小公倍数 (1)原题再现 (2)问题分析 (3)完整代码 一、两种…...

FinOps,从概念到落地 | UGeek大咖说第一期直播回顾(上)

2023年2月28日,由优维科技联合FinOps产业推进方阵举办了第1期「UGeek大咖说-极致用云共济FinOps」线上直播活动,来自中国信通院及美图公司技术专家共同带来了一场精彩的技术视听盛宴。 直 播 背 景 目前,许多以“上云”为数字化转型路径的企…...

k8s java程序实现kubernetes Controller Operator 使用CRD 学习总结

k8s java程序实现kubernetes Controller & Operator 使用CRD 学习总结 大纲 原理Controller 与 Operator自定义资源定义 CRD ( CustomResourceDefinition)kubernetes-client使用java fabric8io/kubernetes-client操作k8s 原生资源使用java abric8io/kubernetes-clientt操…...

Unity笔记:修改代码执行的默认打开方式

使用 External Tools 偏好设置可设置用于编写脚本、处理图像和进行源代码控制的外部应用程序。 External Script Editor:选择 Unity 应使用哪个应用程序来打开脚本文件。Unity 会自动将正确的参数传递给内置支持的脚本编辑器。Unity 内置支持 Visual Studio Commun…...

Linux IPC:匿名管道 与 命名管道

目录一、管道的理解二、匿名管道三、命名管道四、管道的通信流程五、管道的特性进程间通信方式有多种,本文介绍的是管道,管道分为匿名管道和命名管道。 一、管道的理解 生活中的管道用来传输资源,例如水、石油之类的资源。而进程间通信的管道…...

阿里研发工程师JAVA暑期实习一面

文章目录先说一下我自己的情况面试过程总结先说一下我自己的情况 我就读于湖南大学,软件工程专业,现在大三下 很巧的是,我在大二的时候就在相同的时间面过相同的部门和相同的岗位,所以我没有做笔试就直接让我去面试了。我当时还纳…...

第十四届蓝桥杯三月真题刷题训练——第 11 天

目录 第 1 题:卡片 题目描述 运行限制 第 2 题:路径_dpgcd 运行限制 第 3 题:字符统计 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 运行限制 第 4 题:费用报销 第 1 题:卡片 题…...

机器学习入门——线性回归

线性回归什么是线性回归?回归分析:线性回归:回归问题求解单因子线性回归简单实例评估模型表现可视化模型展示多因子线性回归什么是线性回归? 回归分析: 根据数据,确定两种或两种以上变量间相互依赖的定量…...

Microsoft Word 远程代码执行漏洞(CVE-2023-21716)

本文转载于: https://mp.weixin.qq.com/s?__bizMzI5NTUzNzY3Ng&mid2247485476&idx1&sneee5c7fd1c4855be6441b8933b10051e&chksmec535547db24dc516d013d3d76097e985aaad7f10f82f15b4e355a97af75fd333acdab6232af&mpshare1&scene23&srci…...

Android kotlin 系列讲解(数据篇)SharedPreferences存储及测试

文章目录 一、什么是SharedPreferences1、将数据存储到SharedPreferences中2、从SharedPreferences中读取数据二、登录使用SharedPreferences一、什么是SharedPreferences SharedPreferences是使用键值对的方式来存储数据的。也就是说,当保存一条数据的时候,需要给这条数据提…...

一文了解Web Worker

一、概述 众所周知,JavaScript最初设计是运行在浏览器中的,为了防止多个线程同时操作DOM带来的渲染冲突问题,所以JavaScript执行器被设计成单线程。但是随着前端技术的发展,JavaScript要处理的工作也越来越复杂,当我们…...

接口文档包含哪些内容?怎么才能写好接口文档?十年测试老司机来告诉你

目录 接口文档结构 参数说明 示例 错误码说明 语言基调通俗易懂 及时更新与维护 总结 那么我们该如何写好一份优秀的接口文档呢? 接口文档结构 首先我们要知道文档结构是什么样子的。接口文档应该有清晰明确的结构,以便开发人员能快速定位自己需…...

java面试八股文之------Java并发夺命23问

java面试八股文之------Java并发夺命23问👨‍🎓1.java中线程的真正实现方式👨‍🎓2.java中线程的真正状态👨‍🎓3.如何正确停止线程👨‍🎓4.java中sleep和wait的区别👨‍…...

CANoe中使用CAPL刷写流程详解(Trace图解)(CAN总线)

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...

【MySQL】002 -- 日志系统:一条SQL更新语句是如何执行的

此文章为《MySQL 实战 45 讲》的学习笔记,其课程链接可参见:MySQL实战45讲_MySQL_数据库-极客时间 目录 一、日志系统 1、重做日志:redo log(引擎层) 2、归档日记:binlog(Server层) …...

C++---背包模型---数字组合(每日一道算法2023.3.14)

注意事项: 本题是"动态规划—01背包"的扩展题,优化思路不多赘述,dp思路会稍有不同,下面详细讲解。 题目: 给定 N个正整数 A1,A2,…,AN,从中选出若干个数,使它们的和为 M,…...

并查集(不相交集)详解

目录 一.并查集 1.什么是并查集 2.并查集的基本操作 3.并查集的应用 4.力扣上的题目 二.三大操作 1.初始化 2.查找 3.合并 三.省份数量 1.题目描述 2.问题分析 3.代码实现 四.冗余连接 1.题目描述 2.问题分析 3.代码实现 一.并查集 1.什么是并查集 并查集&…...

10个最频繁用于解释机器学习模型的 Python 库

文章目录什么是XAI?可解释性实践的步骤技术交流1、SHAP2、LIME3、Eli54、Shapash5、Anchors6、BreakDown7、Interpret-Text8、aix360 (AI Explainability 360)9、OmniXAI10、XAI (eXplainable AI)XAI的目标是为模型的行为和决定提供有意义的解释,本文整理…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

JVM垃圾回收机制全解析

Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 ​​摘要:​​ 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...