诊断故障码(Diagnostic Trouble Code-DTC)

news2025/1/16 21:14:52

诊断协议那些事儿

诊断协议那些事儿专栏系列文章,本文将由浅入深的介绍DTC(Diagnostic Trouble Code)。
dtc

关联文章:
$19服务:DTCStatusMask和statusofDTC bit 定义
19服务List
19服务


文章目录

  • 诊断协议那些事儿
  • DTC(Diagnostic Trouble Code)
  • DTC格式标识符
  • DTC组成
    • Root DTC in UDS with ISO 15031-6 / SAE J2012-DA
      • PBCU开头码
      • 类别
      • Failure Type
  • DTCofStatus bit
  • 读取DTC信息


DTC(Diagnostic Trouble Code)

Diagnostic Trouble Code直译即为诊断故障码,简称DTC,一种用来记录当某ECU发生或检测到某种故障时所呈现在大家眼前的标识码,通过该标识码便可以查表的方式获得该故障信息,如故障触发条件、故障解除条件、系统功能表现等。这是当前供应商与主机厂普遍用来监测并识别故障的基础手段,在OBD-II之后形成标准规范,普遍使用的标准是ISO15031-6,该标准中规定了DTC的基本组成,DTC如何命名等信息。
仪表盘

DTC格式标识符

本参数值规定了服务器所报告的DTC格式,给定服务器仅允许支持一个DTCFormatIdentifier(DTC格式标识符)
DTCFID

DTC组成

zucheng

Root DTC in UDS with ISO 15031-6 / SAE J2012-DA

root dtc

PBCU开头码

DTC由以下两个部分组成:DTC Catogory 与Failure Type,其中DTC Catogory 又可以根据Powertrain、Body、Chasis、N etwork四大子系统来进一步定义其范围,简称PBCU四大子系统,如下表所示:

SystemCode categorlesHex valueAppendix
PowertrainP0xxx-P3xxx0xxx-3xxxP
ChassisC0xxx-C3xxx4xxx-7xxxC
BodyB0xxx-B3xxx8xxx-BxxxB
Generic/Network and vehicle integrationU0xxx-U3xxxCxxx-FxxxU

在客户诊断问卷调查表中普遍使用P(00)、C(01)、B(10)、U(11)来描述DTC诊断显示码与日常使用的3字节DTC转换关系,实际上只需要将PBCU四个子系统对应的bit组合关系替换进去,便可以得到我们常说的DTC。
对应关系

类别

类别

Failure Type

如常见的Timeout应该用0x87,信号无效应该为0x81等,ISO给出了标准的规范,一般对于排放相关的ECU的DTC最低字位均为00,而对于非排放相关的ECU则需要参考ISO标准来定义。
以非排放相关的ECU为例,可以将DTC故障类型分为以下几个部分:
①硬件故障;如RAM、Flash、CPU时钟等硬件本身失效的问题
②软件故障;如配置字故障,标定故障或客户定义的软件功能性故障
③外部环境故障;电压过高或者欠压、环境温度过高或过低等
④通讯相关故障;如报文丢失、信号无效,Checksum/AliveCounter故障等

DTCofStatus bit

可参考文章进行深入学习:$19服务:DTCStatusMask和statusofDTC bit 定义
每一个DTC均有对应的DTC状态位,该DTC状态位由一个字节表示,每个bit都有其重要含义,具体解释如下图所示:
DTCofStatus
Bit0: 请求时刻测试结果为失败;
Bit1: 在当前点火循环至少失败过1次;
Bit2: 在当前或者上一个点火循环测试结果不为失败;
Bit3: 请求时刻DTC被确认,一般确认是在一个点火周期内发生错误1次;
Bit4: 自上次清除DTC之后测试结果已完成,即测试结果为PASS或者FAIL结果;
Bit5: 自上次清除DTC后测试结果都不是FAIL;
Bit6: 在当前点火周期内测试结果已完成,即为PASS或FAIL状态;
Bit7: ECU没有得到点亮警示灯请求;
在实际项目中,非排放ECU往往仅需关注Bit0和Bit3即可(StatusAvailabilityMask = 0x09):
bit0_3

读取DTC信息

19服务详细介绍,后续会逐渐展开,下图消息流示例可供参考理解,针对本文欢迎各位评论,提出宝贵意见,另外对于诊断协议那些事儿专栏建设,读者有建议可私聊,小编也会持续更新,以提供更好的作品。
19 02
19 02

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

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

相关文章

Python pyenv install 下载安装慢(失败)完美解决

pyenv 下载原理就是将例如 Python-3.10.3.tar.xz 这样的压缩文件下载到本地缓存文件或临时文件,然后解压出来使用。 由于下载速度或者网不行,那么就跳过 pyenv 下载,自己下载,然后放到它的缓存文件,这样不就行了。 1…

3.np.random

1. np.random.seed np.random.seed()函数用于生成指定随机数。 seed()被设置了之后,np.random.random()可以按顺序产生一组固定的数组,如果使用相同的seed()值,则每次生成的随机数都相同。 如果不设置这个值,那么每次生成的随机数…

[附源码]计算机毕业设计JAVA基于Java的护肤品网站

[附源码]计算机毕业设计JAVA基于Java的护肤品网站 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

【MySQL进阶】表的增删改查操作(CRUD)+(SQL执行顺序)

1. 新增(复制数据)2. 查询 - 进阶2.1 聚合查询2.2 group by2.3 having2.4 联合查询2.4.1 内连接2.4.2 外连接2.4.3 自连接2.4.4 子查询2.4.5 合并查询3 SQL的执行顺序(where...)1. 新增(复制数据) 语法 -- 字段名 列名 -- 将表2的数据复制到表1中 -- 两张表的结构要一样 i…

前端知识点

1.HTML 2.CSS 3.js 4.VUE 5.vUE的基本指令 6.VUE案例 7.ELEMENT HTML 设置图片 <img src"图片地址">让图片居中显示<center><img src"图片地址" width"270" height"900"></center>有序列表 <!--有序 ty…

Spring框架技术的核心与设计思想

目录 1. Spring 是什么? 1.1 什么是容器? 1.2 什么是 IoC ? 2. 传统式开发 3. 控制(权)反转式开发 4. 理解Spring 核心 - IoC 1. Spring 是什么? Spring 的全称是 Spring Framework, 它是一种开源框架, 2002 年, Rod Jahnson 首次推出了 Spring 框雏形 interface21…

[UE笔记]客户端服务器时间同步

内容系看教程所做的笔记 时间 往返时间&#xff08;RTT, Round-Trip Time&#xff09;&#xff1a;数据从客户端通过网络发送到服务器&#xff0c;再从服务器返回到客户端所需的时间。 首先客户端应当知道服务端的当前时间。 服务器启动时间总是先于客户端的&#xff0c;客户…

【学习OpenCV4】OpenCV入门精讲(C++/Python双语教学)

大家好&#xff0c;我在CSDN开的OpenCV课程已经开课了&#xff0c;入口如下&#xff1a; OpenCV入门精讲&#xff08;C/Python双语教学&#xff09; 课程开始快一周了&#xff0c;收到了广大同学们的欢迎。 &#xff08;1&#xff09;评分很高&#xff1b; &#xff08;2&#…

从Clickhouse 到 Snowflake: 云原生

云原生Clickhouse优势概述 以Clickhouse为基础&#xff0c;借鉴Snowflake等系统的设计思路&#xff0c;打造一款高性能的云原生OLAP系统&#xff0c;为用户提供多场景下的一站式的数据分析平台。 简单、易维护&#xff1a;集群管理、统一共享分布式调度服务高可用、可扩展&am…

T292114 [传智杯 #5 练习赛] 清洁工

题目描述 有一个 n\times nnn 的地块&#xff0c;一个连续 ii 分钟没人经过的地面在第 ii 分钟会落上 ii 个单位的灰&#xff0c;有人经过时不会落灰但灰也不会清零&#xff0c;在人走后第一分钟又会落上一个单位的灰&#xff0c;以此类推。你在这个 n\times nnn 的范围内移动…

深度可分离卷积神经网络与卷积神经网络

在学习语义分割过程中&#xff0c;接触到了深度可分离卷积神经网络&#xff0c;其是对卷积神经网络在运算速度上的改进&#xff0c;具体差别如下&#xff1a; 一些轻量级的网络&#xff0c;如mobilenet中&#xff0c;会有深度可分离卷积depthwise separable convolution&#…

Xamarin.Andorid实现界面弹框

目录1、使用系统自带的样式1.1 具体实现1.2 效果2、自定义样式的实现2.1 预期效果2.2 具体实现2.3 相关知识3 代码下载4、参考在App的实际使用中&#xff0c;一定会出现弹框选择的情况。如图所示&#xff1a; 因此非常有必须学会及使用弹框的功能&#xff0c;因此本次学习Xama…

miui刷机完整教程

风险提示&#xff1a;刷机有可能损害手机&#xff0c;本作者不承担因为使用本方法刷机引起的任何问题&#xff0c;请谨慎刷机。 1.选择[刷机包](https://web.vip.miui.com/page/info/mio/mio/detail?postId37093637&app_versiondev.20051) 2.解BL锁 浏览器打开http://www…

SSM整合(二)

SSM框架整合之mybatis查询的两个例子 1 准备工作 1.1 创建查询工作所需要的实体类Emp package com.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import tk.mybatis.mapper.annotation.KeySql; import javax.persisten…

代码随想录算法训练营第四天|24、19、面试题 02.07、142、92(寄了)

Leecode24. 两两交换链表中的节点 链接&#xff1a;https://leetcode.cn/problems/swap-nodes-in-pairs/ 其实这道题的思路和203比较相似&#xff0c;因为若是不设置虚拟头结点的话&#xff0c;处理头结点的方式和处理非头结点的方式会不一样&#xff0c;所以还是设置虚拟头结…

LeetCode力扣刷题——指针三剑客之三:图

图 一、数据结构介绍 作为指针三剑客之三&#xff0c;图是树的升级版。图通常分为有向&#xff08;directed&#xff09;或无向&#xff08;undirected&#xff09;&#xff0c;有 循环&#xff08;cyclic&#xff09;或无循环&#xff08;acyclic&#xff09;&#xff0c;所有…

Golang入门笔记(15)—— 数组和切片

编程的世界中&#xff0c;或许是因为一次一次的定义变量&#xff0c;维护管理起来都太费劲了&#xff0c;所以推出了数组&#xff0c;将数据用数组的形式管理起来。 Go的数组和Java的实现机制是不同的&#xff0c;Go语言的数组是作为基本数据类型存在的。所以数组是开辟在栈帧中…

Golang Web开发一键生成各层级模板代码

文章目录go_project_quickstart快速开始要求安装项目实现架构设计代码逻辑统一的调用逻辑代码复用每次写web项目&#xff0c;模板都是统一的&#xff0c;每次都要写大量冗余的代码会很烦&#xff0c;在Java中有很多逆向生成的工具&#xff0c;而Go语言我找了很久&#xff0c;也…

手把手搭建springboot项目,并测试springDataJPA

这篇文章记录了搭建springboot项目并测试springDataJPA的过程&#xff0c;接下来一起看看吧。 1.访问阿里云java脚手架网站 点击访问 2.按照下图勾选并获取代码 3.将获取到的代码解压到idea工作空间。 下图的JPAdemo就是我的项目 4.打开idea&#xff0c;导入项目 5.在pom…

【Redis】| 01 | Redis 可视化工具RedisInsight

目录1 RedisInsight 简介2 RedisInsight 安装2.1 安装2.1.1 软件安装2.1.1.1 下载 RedisInsight 软件包2.1.1.2 安装命令2.1.1.3 配置环境变量2.1.1.4 启动服务2.1.2 Kubernetes 安装2.1.2.1 创建 RedisInsight 的 yaml 文件2.1.2.2 启动3.RedisInsight 使用3.1 安装redis3.1.1…