DTC是什么 组成及特点介绍

dtc基本介绍
dtc顾名思义即为诊断故障码,一种用来记录当某ecu发生或检测到某种故障时所呈现在大家目前的标识码,通过该标识码便可以查表的方式获得该故障信息,如故障触发条件、故障解除条件、系统功能表现等。这是当前供应商与主机厂普遍用来监测并识别故障的基础手段,所以也同样存在标准,普遍使用的标准是iso15031-6,该标准中规定了dtc的基本组成,dtc如何命名等信息。
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产品将会有一些指导作用。 联系:
dtc故障类型
以非排放相关的ecu为例,可以将dtc故障类型分为以下几个部分:
硬件故障;如ram、flash、cpu时钟等硬件本身失效的问题
软件故障;如配置字故障,标定故障或客户定义的软件功能性故障
外部环境故障;电压过高或者欠压、环境温度过高或过低等
通讯相关故障;如报文丢失、信号无效,checksum/alivecounter故障等
dtc与event区别与联系 区别:
dtc是某类故障的统称,能够大体定位到某个模块的故障,而event则是故障监控的基本单元,能够定位某个模块中的某个具体故障;
多个event可以mapping 同一个dtc;而同一个event不能mapping 多个dtc;
dtc可以直接可见,但event需通过进一步手段才能看到,有时仅对ecu供应商可见;
dtc代表某类event集中表现,而event则是某个dtc的具体实例;
event的优先级决定了dtc的优先级;
event之间的依赖关系决定了dtc的依赖关系;
dtc的状态位是其map的所有event的状态位的或集;
2. 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变化的前提条件大家可以参考官方文档细细评味,这样才能印象深刻,在这里就不赘述了。 3. 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信息存储的机制会通过专题与大家一起分享学习。 4. dtc信息及状态读取 dtc会在ecu运行过程中产生、变化并被实时记录下来,对于ecu供应商或者主机厂则可以通过诊断服务的方式来实现dtc信息及状态位的读取,如下图4所示,通过以下几种方式便可以得到ecu支持的dtc、当前或历史dtc、snapshot data、extended data ,dtc status等信息。
图4 dtc信息诊断获取方式


中国移动深挖大数据价值,助力物联网发展布局
变频器在吹膜机收卷上的应用
自制全息投影仪教程
突破性技术来了!OAM复用是什么神技术
第一个基于DETR的高质量通用目标检测方法
DTC是什么 组成及特点介绍
什么是谐波电流
3D 打印 “无畏级星舰”:只有 15 微米,还能自由移动
关于高通骁龙835详解_骁龙835改进方面
找方案 | 基于Nuvoton ML56(MCU+Touch+ LCD Driver+低功耗)四合一的空气净化器控制解决方案
电源模块的一些基本知识
vivoXplay6大战华为Mate9,真机王者荣耀实测谁才是王者
区块链技术的发展将改变商业领域的支付方式
歌尔联合比亚迪为车主打造面向未来汽车智能化驾乘新体验
MAX9526低功耗视频解码器
关于电脑换内存条的一些问题思考
12000套智慧灯杆!洛阳伊川县5G智慧路灯杆建设项目监理公开招标!
外媒:苹果Magsafe专用皮革保护套因售价超高引争议
简易抛物面天线的制作,卫星天线制作
禾多科技与AUTOSAR国际组织签署合作协议