汽车电子Autosar之DTC

news2024/11/27 4:14:28

目录

一、DTC基本介绍

1、DTC基本组成

2、DTC故障类型

3、DTC与event区别与联系

4、 DTC状态位

5. DTC信息存储

6. DTC信息及状态读取


本文将聚焦于大家都耳熟能详的DTC(Diagnostic Trouble Code)技术点来聊一聊。

一、DTC基本介绍

        DTC顾名思义即为诊断故障码,一种用来记录当某ECU发生或检测到某种故障时所呈现在大家目前的标识码,通过该标识码便可以查表的方式获得该故障信息,如故障触发条件、故障解除条件、系统功能表现等。这是当前供应商与主机厂普遍用来监测并识别故障的基础手段,所以也同样存在标准,普遍使用的标准是ISO15031-6,该标准中规定了DTC的基本组成,DTC如何命名等信息。

1、DTC基本组成

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

                                                       

图片

1-1  DTC Catogory 范围定义

        在上表中可以看到每个子系统都划分为4个子范围,如B0-B3,C0-C3,P0-P3,U0-U3;其中值得注意的是B0、C0、P0、P2、P3、U0、U3这几个子范围被ISO预留以供未来使用,因此严格来说,现在很多供应商定义的DTC不符合规定,但一般来说不影响使用。接下来,我们就来看一下该DTC Catogory 占用的每个bi t的具体说明,如下图1-2所示:

                                                            

图片

 1-2 DTC Catogory Bit定义

        图中标号1表示后12bit大小范围可以为000-FFF;标号2表示对于动力系统而言,如00,10都是ISO/SAE特殊定义的范围;标号3则表示对于动力系统而言,即便定义为11,可以被供应商或主机厂自定义的范围为P3000-P33FF,而P3400-P3FFF则已被ISO/SAE预先定义。了解了ISO对于DTC C atogory的定义之后,接下来看个具体实例1-3:

                                                                

图片

 1-3 3字节DTC基本组成

        正如我们经常在客户诊断调查表见到的P(00)、C(01)、B(10)、U(11)来实现我们所说的DTC诊断显示码(PBCU开头码)与日常使用的3字节DTC转换 关系,实际上只需要将PBCU四个子系统对应的bit组合关系替换进去,便可以得到我们常说的DTC,这点很多小伙伴可能都会有误区,特此说明一下。

        其中上图所示的低字节就是我刚刚说到的Failure Type,该Failure Type也不是随意填写,ISO都有规定,如常见的timeout应该用0x87,信号无效应该为0x81等等,该字节如何定义需要参考ISO15031-6并找到对应的故障单元来选择,值得注意的是:一般对于排放相关的ECU的DTC最低字位均为00,而对于非排放相关的ECU则需要参考ISO标准来定义。

上述四大故障基本上涵盖了所有ECU所用到的DTC故障类型,这对于我们设计一款新的ECU产品将会有一些指导作用。

联系:

2、DTC故障类型

以非排放相关的ECU为例,可以将DTC故障类型分为以下几个部分:

  • 硬件故障:如RAM、Flash、CPU时钟等硬件本身失效的问题
  • 软件故障:如配置字故障,标定故障或客户定义的软件功能性故障
  • 外部环境故障:电压过高或者欠压、环境温度过高或过低等
  • 通讯相关故障:如报文丢失、信号无效,Checksum/AliveCounter故障等

3、DTC与event区别与联系

区别:

  • DTC是某类故障的统称,能够大体定位到某个模块的故障,而event则是故障监控的基本单元,能够定位某个模块中的某个具体故障;
  • 多个event可以mapping 同一个DTC;而同一个event不能mapping 多个DTC;
  • DTC可以直接可见,但Event需通过进一步手段才能看到,有时仅对ECU供应商可见;

 联系:

  • DTC代表某类event集中表现,而event则是某个DTC的具体实例;
  • DTC的状态位是其map的所有event的状态位的或集;
  • event之间的依赖关系决定了DTC的依赖关系;
  • event的优先级决定了DTC的优先级;

4、 DTC状态位

        当出现DTC时,我们只知道有故障发生了这一个基本事实,但是并不知道该故障什么时候发生,现在是否已经恢复、发生过几次,恢复过几次等细节性信息,因此国际标准组织ISO发布14229-1来引入DTC状态位这一概念来得到上述细节性信息,使我们对该故障的生前生后有个清晰的认识,便于我们快速定位问题所在。每一个DTC均有对应的DTC状态位,该DTC状态位由一个字节表示,每个bit都有其重要含义,具体解释如下图2所示:

                                                 

图片

 图2 DTC Status bit

具体解释如下:

Bit0:  请求时刻测试结果为失败;

Bit1:  在当前点火循环至少失败过1次;

Bit2: 在当前或者上一个点火循环测试结果不为失败;

Bit3: 请求时刻DTC被确认,一般确认是在一个点火周期内发生错误1次;

Bit4: 自上次清除DTC之后测试结果已完成,即测试结果为PASS或者FAIL结果;

Bit5: 自上次清除DTC后测试结果都不是FAIL;

Bit6: 在当前点火周期内测试结果已完成,即为PASS或FAIL状态;

Bit7: ECU没有得到点亮警示灯请求;

相应的为了让大家对每一个bit的动态变化有个更为深刻的理解,结合最新版ISO14229-1 2020分别对每个bit的动态变化展示如下:

Bit 0:

                 

图片

                                                

 

Bit 1:

                     

图片

                      

 

Bit 2:

                               

图片

                     

 

Bit 3:

                               

图片

      

 

Bit 4:

                                   

图片

    

 

Bit 5:

                                     

图片

      

 

Bit 6:

                                     

图片

 

Bit 7

                                   

图片

 

 

        对于上述每一个Bit变化的前提条件大家可以参考官方文档细细评味,这样才能印象深刻,在这里就不赘述了。

5. DTC信息存储

        事实上当DTC产生时,并不会直接存储在NVM中,而是直接存储故障e event的方式,然后间接通过event-DTC的mapping关系来存储DTC,而DTC的状态位则是由其mapping的所有event的状态位的或集,如下图3-1所示。大多数情况下光有DTC号以及状态位信息往往不能一步到位定位root cause,需要引入环境信息才能够进一步确定问题所在,因此ISO组织便引入了以下两个基本概念:快照数据(Snapshot Data)、扩展数据(Extended Data)。

  • If Event 1 -> DTC A; Event 2 -> DTC A; ...  Event N -> DTC A;
  • Then DTC A Status = Event 1 Status | Event2 Status | ...| Event N;

        DTC A 同时Map了Event 1 ~ Event N,则DTC A Status即为上述map的或集,但是具体是哪个event先报,则取决于event之间的优先级以及上报策略来综合判断。

Snapshot Data:顾名思义快照信息即为故障发生时刻存下来的瞬态的环境数据,一般是指电源模式、温度、时间戳、车速等信息。

Extended Data:即为在故障发生时其他的辅助故障信息,如aging counter、aged counter 、Fault Counter以及event id等。

    另外,对于DTC信息存储一般简单理解可以分为两部分存储空间,该划分更多的是逻辑意义上的定义,这样区分的意义在于能够更好的实现主机厂与供应商的信息隔离,防止出现不必要的误解与多余信息的讨论。

Primary Memory:对主机厂以及ECU供应商可见的DTC信息空间,如DTC Status、Snapshot Data、Extended Data等;

Second Memory:仅ECU供应商内部可见的信息,如event ID、ITC等信息。

限于主题,所以NVM信息存储点到为止,后续关于NVM信息存储的机制会通过专题与大家一起分享学习。

6. DTC信息及状态读取

        DTC会在ECU运行过程中产生、变化并被实时记录下来,对于ECU供应商或者主机厂则可以通过诊断服务的方式来实现DTC信息及状态位的读取,如下图4所示,通过以下几种方式便可以得到ECU支持的DTC、当前或历史DTC、Snapshot Data、Extended Data ,DTC status等信息。

图片

 

                                                                           

 图4 DTC信息诊断获取方式
 

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

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

相关文章

List of MediaTek systems on chips

这里写目录标题 ARMv7Single coreDual-coreQuad-coreHexa-core and octa-core(六核和八核) ARMv8Quad-coreOcta coreHelio X Series (2014–2017)Helio A Series (2018–2020)Helio P Series (2015–2020)Helio G Series (2019–present)Dimensity Series (2020–present)Dimen…

SimpleCG绘图函数(8)--绘制多边形

在这里将展示多边形的绘制,多边形可以绘制从三角形到任意多边形。绘制函数如下所示: //多边形以一组POINT表示的点坐标数组ptPoints为顶点,nNum表示数组中的点数量//画无填充多边形 void polygon( const POINT *ptPoints, int nNum );//画无边框填充多边…

Android进阶 四大组件的工作过程(三):广播的注册,发送和接收过程

Android进阶 四大组件的工作过程(三):广播的注册,发送和接收过程 导语 本篇文章是介绍四大组件工作过程的第三篇文章,在前两篇文章里我们已经介绍了Activity和Service的工作流程。而本篇文章,我们将介绍广…

第七十四天学习记录:高等数学:不定积分(宋浩板书)

给定一个函数f(x),如果存在一个函数F(x),满足F’(x)f(x),则称F(x)是f(x)的一个原函数。我们通常用∫f(x)dx表示f(x)的不定积分,它表示的是所有原函数的集合,也就是说,∫f(x)dx就是f(x)的原函数集合。 不定…

Docker安装wordpress并配置数据库(超详细版)

Docker在线拉取安装wordpress并配置数据库 一、拉取wordpress镜像(默认最新)二、启动wordpress容器三、查看容器状态四、安装wordpress博客程序 如果您已经在 Docker 容器中分别安装了 WordPress 和 MySQL,并且想要让它们链接起来,可以按照以下步骤进行操…

什么是三极管的截止饱和放大

三极管可以工作在三个状态,分别是截止状态,饱和状态和放大状态。 当三级管BE之间的电压小于等于BE间的开启电压UON,并且CE间电压>BE间电压时 ,三极管处于截止状态,一般硅管在0.7V左右,锗管在0.3V左右。…

数据库第三章(SQL)

目录 1.SQL语言 索引 1.SQL语言 sql语言是个非过程性语言 sql的特点 1.综合统一,把增删查改都统一了起来 2.高度非过程化,不关心过程 3.面向集合的操作方式 sql基本语法 drop是删除表 delete是删除表的某个元组 安全方面:grant授权 revo…

Java实训日志05

文章目录 八、项目开发实现步骤(七)创建数据访问接口实现类1、创建学校数据访问接口实现类(1)编写按标识符查询学校记录方法(2)编写更新学校记录方法 1_、测试学校数据访问接口实现类(1&#xf…

在Nginx服务器如何安装SSL证书

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言提示:我用的是阿里云的产品,就以阿里云进行的: 一、下载SSL证书二、安装SSL证书 前言 提示:我用的是阿里云的产…

多元回归预测 | Matlab遗传算法(GA)优化核极限学习机回归,GA-KELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab遗传算法(GA)优化核极限学习机回归,GA-KELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量…

设计模式(十六):行为型之责任链模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…

2.链表的实现:带哨兵

1.带哨兵的单链表的定义 /*** 单向链表----带哨兵*/ public class SinglyLinked {/*** 节点类* 数据域和地址域*/private static class Node {int value; //值Node next; // 指向下一个节点public Node() {}public Node(int value, Node next) {this.value value;this.next …

【linux】在Ubuntu20.04下录制屏幕为视频,并制作成gif动态图片

1、下载软件 录制屏幕软件 sudo apt install simplescreenrecorder视频转图片软件 sudo apt install mplayer图片合成gif动态图片 sudo apt install imagemagick2、录制屏幕 1)运行命令 simplescreenrecorder2)设置:区域、帧率 选择录制的区域; 设置帧率为10(或者更小…

3.vue 指令

3.10 v-text和v-html 更新 DOM 对象的 innerText / innerHTML 语法: v-text"vue数据变量" v-html"vue数据变量" 注意: 会覆盖插值表达式 v-text 把值当成普通字符串显示 v-html 把值当做 html 解析 <template><div><p v-text"str…

关于自动化测试框架pytest的Fixture固件

这篇文章主要介绍了关于自动化测试框架pytest的Fixture固件,Fixture它其实就是一些函数,会在执行测试方法/测试函数前后加载运行它们,需要的朋友可以参考下 目录 什么是固件定义方式调用方式使用fixture传递测试数据conftest.py作用域总结 什么是固件 Fixture 翻译成中文即是固…

无效目标发行版问题解决记录

​ SpringMVC之‘无效目标发行版’ 问题&#xff1a;上死亡截图 问题解决思路&#xff1a;这是由于JDK版本不匹配导致的错误。 首先说一下问题的关键所在&#xff0c;然后再细说解决步骤&#xff1a; 遇到这个问题的朋友大概率都是在写Spring项目时遇到的&#xff0c;这就需要M…

H3C-HCL模拟器常用命令及其操作演示

一、实验拓扑图 二、实验设备 设备1&#xff1a;路由器"MSR36-20"&#xff1b; 设备2&#xff1a;真机&#xff1b; 三、常用命令 1&#xff09;进入用户视图&#xff1a;启动默认就是用户视图 "< >" 2&#xff09;进入系统视图&#xff1a;"…

揭示GPT Tokenizer的工作原理

在GPT模型中&#xff0c;tokenization&#xff08;词元化&#xff09;指的是将用户输入的文本分割成token&#xff08;词元&#xff09;的过程&#xff0c;以让GPT能更好地理解输入文本的词义、句法和语义&#xff0c;以及生成更连贯的输出内容。这是非常重要的预处理操作&…

C++AVL树

目录&#xff1a; AVL树的概念AVL树节点的定义更新平衡因子 AVL树的旋转AVL树的验证AVL的整体实现 AVL树的删除AVL树的性能 总结 AVL树的概念 AVL树&#xff1a;二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找…

CAPL硬件控制课程,物理故障注入自动化以及程控电源

&#x1f4d9; CAN/LIN总线物理故障注入&#xff0c;自动化解决方案 车载网络通讯的健壮性和故障恢复能力至关重要&#xff0c;所以我们需要对控制器进行各种物理容错测试&#xff0c;常规情况下我们需要注入如下8种物理故障注入&#xff1a;CANH断路&#xff0c;CANL断路,CANH…