UDS之DTC状态位介绍

admin 2024年2月2日19:28:26评论19 views字数 3481阅读11分36秒阅读模式

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

UDS之DTC状态位介绍

01

DTC状态位的定义

DTC状态位包含8个bit,每个bit都有各自的含义,但是这8个 bit不一定都要支持,具体的看客户需求,各个主机厂可以根据自己的需求使用其中的几个,当然也可以全部使用。下图是UDS对DTC status这8个bit的解释:

UDS之DTC状态位介绍

bit 0:testFailed

运行中的ECU,其内部检测DTC代码以OEM定义的周期循环执行,当达到相应的DTC触发条件,testFailed位被置1(e.g.在检测周期采样电压大于18 V)。

a) 表示最近执行test的结果,test失败置1。

但是它不一定被ECU存储到EEprom中,只有当bit2或bit3被置1时DTC才会被存储。

b) test通过则置0;如果调用了14服务清除DTC的话,也需要重新置0。

UDS之DTC状态位介绍

bit1:testFailedThisOperationCycle

表示当前的操作周期中出现过testFailed=1的情况。

a) 某个DTC在当前的operation cycle中出现过testFailed,则置1。即出现过故障。

b) 当前测试周期内,DTC测试的结果为未检测到故障或清除了DTC信息,则置0。

operationcycle可以含有多个检测周期,只要有一个检测周期出现testFailed=1的情况,此bit置1。

一个operation cycle是ECU通过网络管理唤醒到ECU通过网络管理进入休眠,对于没有网络管理的ECU,这个起始点就是KL15通断。通过bit 0我们无法判断某个DTC是否出现过,比如,当前testFailed = 0, 说明当前这个DTC没有出错,如果testFailedThisOperationCycle = 1的话,就说明这个DTC在当前这个operation cycle中出过错,但是当前错误又消失了。

UDS之DTC状态位介绍

bit2:pendingDTC

a) “0” = 在完成测试且未检测到故障的操作循环后或调用ClearDiagnosticInformation服务时,该位应设置为0。

b) “1” = 如果在当前操作循环中检测到故障,则该位应设置为1并锁定。

DTC并不是一达到触发位就会被报出来的,而是故障出现一段时间后才会被确认,而中间的这个状态就用bit2位来表示,bit2位其实是表示DTC处于testFailed和confirmedDTC之间的一个状态,因此bit2位又可被称为待定DTC。当某个DTC刚达到判定条件的时候,bit2被置1,若一段时间后故障条件不满足了,则bit2置0;若一段时间后故障仍然存在,那么bit3就要置1了。

UDS之DTC状态位介绍

bit3:confirmedDTC

a) “0” = 自上次调用ClearDiagnosticInformation后,或在满足故障诊断码的老化条件(或由于故障记忆溢出而清除了故障诊断码)后,从未确认过故障诊断码。

b) “1” = 自上次调用ClearDiagnosticInformation后至少确认一次的DTC,且尚未满足老化标准

当bit3置1时,说明故障已经发生了一段时间,也就是bit2至少有一次被置1了。需要注意的是,bit3置1的时候,DTC被存储在EEprom中,但并不代表现在故障还存在,可理解为历史故障。

UDS之DTC状态位介绍

bit4:testNotCompletedSinceLastClear

a) “0” = 自上次清除诊断信息以来,DTC测试至少返回一次测试结果(无论通过或失败)。

b) “1” = 自上次清除诊断信息后,DTC测试尚未运行到完成。

不是所有的DTC测试都是从一上电就开始,所以该位用来表示上次调用14服务清除诊断消息后,是否进行过完整的test。如果进行了完整的test,无论结果如何,都置0,否则置1。

UDS之DTC状态位介绍

bit 5:testFailedSinceLastClear

a) “0” = 自上次清除诊断信息后,DTC测试未显示失败结果。如果满足老化阈值或发生故障记忆溢出,则车辆制造商应负责将该位重置为零(“0”)。

b) “1” = 自上次清除诊断信息以来,DTC测试至少返回一次失败结果。

该位表示在上次调用14服务清除后DTC后,若test DTC未进行测试或者测试了但结果是pass时置0,如果test运行完成并且返回结果为fail,那么该位置1。在调用14服务清除DTC后需要置0。bit4和bit5通常一起使用。

UDS之DTC状态位介绍

bit6:testNotCompletedThisOperationCycle

此bit位表示在当前operationCycle是否成功执行了对应DTC的测试

a) “0” = 表示在当前操作循环周期过程中DTC test完成了

b) “1” = 未完成置1。或在调用ClearDiagnosticDTC后需要置1

这个位与bit 4 : testNotCompletedSinceLastClear类似,后者表示自从上次调用了清理DTC的服务之后,是否成功地执行了对某个DTC的测试。而testNotCompletedThisOperationCycle表示在当前operation cycle中是否成功地执行了对某个DTC的测试。

UDS之DTC状态位介绍

bit7:warningIndicatorRequested

该位报告警告指示,比如说仪表盘上的警示灯等。但不是所有的DTC都会有警告指示。

a) 如果没有和DTC相关的警告存在,该位应置0;

b) 如果该DTC有相关警告指示,bit3置1的时候,bit7也要置1。在调用14服务清除DTC后需要置0。

UDS之DTC状态位介绍

注意:

Test:是一种车载诊断软件算法,根据不同的测试周期,得出最后的测试结果:Pass or Failed。

Completed:“完成”表示当前完成的测试能够确定当前操作周期是否存在故障(“完成”并不表示发生故障)。

Operation Cycle:一个操作周期指监视器运行的开始和结束条件,在一个操作周期内,可能已完成若干个监视周期(无论其测试结果如何)。ECU可以支持多个操作周期,一个操作周期可以是ECU通电和断电之间或者点火打开和点火关闭之间的时间,也可以是ECU从网络唤醒到网络休眠的时间。

Pending:根据UDS规范解释,如果在当前或者上一个operation cycle中出现过具体某个DTC,pendingDTC=1。此时状态可以理解为一种中间状态(testerFailed和ConfirmedDTC之间)。

02

故障码形式及转换

DTC: Diagnostic Trouble Code,诊断故障码

一般看到的故障码,可能有两种形式,注意有时候如果故障码最后两个数字是00,可能显示时会省略掉,这种情况自己补上就行了。

a) 字母开头的,类似于:U041600,P308800,B116220等

 b) 全部是数字,类似于:012700,803910,403123等

这两者本质是一样的,如果你的故障码是第二种,那么先按照以下方式将其转换成第一种:

故障码: 0x012700(0x表示这个数字是16进制),其中0x01,0x27,0x00分别为第1,2,3个字节,转换时只涉及第1个字节,即0x01。

1. 首先将0x01转换为二进制:
0000 0001

2. 取最前面两位,按这个规律(00=P, 01=C, 10=B, 11=U)可以转换为:
P 00 0001

3. 然后接着两位和最后4位分别转换为16进制数,00(二进制) -> 0x0,0001 -> 0x1,最终0x012700转换为:
P012700

同理:
803910 -> B003910
403123 -> C003123

故障码的定义:

UDS之DTC状态位介绍

PCBU:Powertrain(动力系统)、chassis(地盘)、body(车身)、network(通信系统)

5位标准故障码,第1位是字母,后面4位是数字,如P0101。

第一位字母:表示故障所属系统,我们把汽车系统分为四大类。分别是动力,底盘,车身,网络通信,分别用PCBU表示。

第二位数字:0、1、2或3表示故障类型,意义如下:“0”代表SAE(美国汽车工程师协会)定义的通用故障码;1 代表汽车厂家定义的扩展故障码;“2”或“3”表示预留故障码。

第三位数字:表示故障所属的子系统。例如,对于动力系统部分:该位“0”表示燃油和空气计量辅助排放控制整个系统, “1”表示燃油和空气计量系统;“2”表示燃油和空气计量系统(喷油器);“3”表示点火系统;“4”表示废气控制系统;“5”表示巡航、怠速控制系统;“6”表示与控制单元相关;“7”“8”表示变速箱系统等。

最后两位数字:指出了系统中出现故障的部件或部位。

 精品活动推荐 

UDS之DTC状态位介绍
UDS之DTC状态位介绍
UDS之DTC状态位介绍

原文始发于微信公众号(谈思实验室):UDS之DTC状态位介绍

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月2日19:28:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   UDS之DTC状态位介绍https://cn-sec.com/archives/2463257.html

发表评论

匿名网友 填写信息