当前位置: 首页 > 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的目标是为模型的行为和决定提供有意义的解释,本文整理…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时,需要使用外部低速晶振...