【车载开发系列】StatusOfDTC的解析

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

【车载开发系列】StatusOfDTC的解析

StatusOfDTC的解析

StatusOfDTC概念

每一个状态码都由一个字节长的状态字节就是StatusOfDTC它用来指示DTC所对应的故障是否发生是否被确认等状态。这个状态位包含1个byte这里面的8个bit都有各自的含义但是这8个 bit不一定都要使用各个主机厂可以根据自己的需求使用其中的几个当然也可以全部使用。
有了StatusOfDTC之后就可以让RAM的计测变得更加的容易。在SID$19$02,SID$19$06以及SID$19$0A等的Positive Response当中都会有StatusOfDTC的返回。

StatusOfDTC列表

在ISO14229当中除了bit3: ConfirmedDTC是强制约束外其他都没有强制约束。

BitNumberDescription詳細内容初始值DTCStatus位状态定义Cvt
Bit0TestFailed現在失败的情报0当故障确定时为1当正常确定时就变为0U
Bit1TestFailedThisOperationCycle现在的DC当中是否有失败的情报0现在的DC中故障确定时为1DC发生切换时为0U
Bit2PendingDTC现在的DC及前回的DC当中是否有失败的情报0当故障首次被检出时为1否则为0U
Bit3ConfirmedDTC判断DTC是否是Confirmed状态0当对象故障表示到MIL的时为1否则为0M
Bit4testNotCompletedSinceLastClear实施诊断清除后能否检测出DC失败或者DC确定1能够检出是设置为0不然默认为1U
Bit5TestFailedSinceLastClear实施诊断清除后能否检测出DC故障失败0检测出DC故障失败时就设置为1否则默认为0U
Bit6TestNotCompletedThisMonitoringCycle在当前DC内检出确定故障或者正常确定1在当前DC内检出确定故障或者正常确定时设置为0U
Bit7warningIndicatorRequested警告点灯要求0MIL电灯要求时为1否则为0U

StatusOfDTC状态掩码

Bit 0: TestFailed

通常来说ECU内部以循环的方式不断地针对预先定义好的错误路径进行测试如果在最近的一次测试中在某个错误路径中发现了故障则相应DTC的这一个状态位就要被置1表征出错。此时DTC的testFailed位被置1但是它不一定被ECU存储到non-volatile memory中只有当pendingDTC或confirmedDTC被置1时DTC才会被存储。而pendingDTC或confirmedDTC被置1的条件应该是检测到错误出现的次数或时间满足某个预定义的门限。当错误消失或者诊断仪执行了清除DTC指令时testFailed会再次被置为0。
最近执行测试的结果Failed则置"1"最近测试通过(pass)或发送清故障码服务则置"0"

if ( Failed确定 ){
   Bit→1
}
elseif (   Passed确定  || ( ClearDiag ) ){
   Bit→0"
}

在这里插入图片描述

Bit 1: testFailedThisOperationCycle

在当前操作循环内的测试结果该操作循环内只要发生过Failed则置"1"; 开始新的操作循环或发送清故障码服务后置"0";
这个bit用于标识某个DTC在当前的operation cycle中是否出现过testFailed置1的情况即是否出现过错误。operation cycle的起始点是ECU通过网络管理唤醒到ECU通过网络管理进入睡眠, 通过bit 0我们无法判断某个DTC是否出现过
当前testFailed = 0 说明当前这个DTC没有出错如果testFailedThisOperationCycle = 1的话就说明这个DTC在当前这个operation cycle中出过错但是当前错误又消失了。

if ( Failed确定 
   Bit→1
elseif ( New DC Start || ClearDiag )
   Bit→0

在这里插入图片描述

Bit 2: pendingDTC

在当前操作循环或上一个完成的操作循环内测试是否报告过"Failed"; 该状态位只在测试运行和操作循环完成且在该操作循环内从未"Failed"过或发送清故障码服务后才置0如果在当前操作循环内未完成测试则状态不变
pendingDTC位其实是位于testFailed和confirmedDTC之间的一个状态有的DTC被确认的判定条件比较严苛需要在多个operation cycle中出现才可以被判定为confirmed的状态此时就需要借助于pendingDTC位了。pendingDTC = 1的时候DTC就要被存储下来了如果接下来的两个operation cycle中这个DTC都还存在那么confirmedDTC就要置1了。如果当前operation cycle中故障发生pendingDTC = 1但是在下一个operation cycle中故障没有了pendingDTC 仍然为 1再下一个operation cycle中故障仍然不存在那么pendingDTC 就可以置0了。

if ( Failed确定 )
   Bit→1
elseif (  Passed确定 in Last DC
           && Not Failed确定 in Last DC 
           && DC成立 )
    || ClearDiag )
   Bit→0

在这里插入图片描述

Bit 3: confirmedDTC

表示故障是否检测到了足够的时间以存储到long-term memory若足够则置"1"; 其为1的时候并不意味着此刻故障存在发送清除故障码或达到老化阈值40个暖机循环里未检测到故障则置"0";
当confirmedDTC = 1时则说明某个DTC已经被存储到ECU的non-volatile memory中说明这个DTC曾经满足了被confirmed的条件。但是请注意confirmedDTC = 1时并不意味着当前这个DTC仍然出错如果confirmedDTC = 1但testFailed = 0则说明这个DTC表示的故障目前已经消失了。将confirmedDTC 重新置0的方法只有删除DTCUDS用0x14服务OBD用0x04服务。

if ( Failed confirmation criteria )
   Bit→1
elseif ( 40WUC's Next DC成立 || ClearDiag )
   Bit→0

在这里插入图片描述

Bit 4: testNotCompletedSinceLastClear

表示一个DTC测试从上次清故障码开始是否运行过或完成过测试若没有则置"1";否则置"0"清故障码置"1";
自从上次调用了清理DTC的服务UDS用0x14服务OBD用0x04服务之后是否成功地执行了对某个DTC的测试不管测试结果是什么只关心是否测了。因为很多DTC的测试也是需要满足某些边界条件的并不是ECU上电就一定会对DTC进行检测。

if ( Failed确定 OR Passed确定)
   Bit→0
elseif ( ClearDiag )
   Bit→1

在这里插入图片描述

Bit 5: testFailedSinceLastClear

表示一个DTC测试从上次清故障码开始是否测试失败过若没有则置"0"否则置"1"清故障码置"0";
这个位与bit 1 :testFailedThisOperationCycle有些类似后者标识某个DTC在当前的operation cycle中是否出现过testFailed置1的情况而testFailedSinceLastClear标识的是在上次执行过清理DTC之后某个DTC是否出过错。

if ( Failed确定)
   Bit→1
elseif ( ClearDiag )
   Bit→0

在这里插入图片描述

Bit 6: testNotCompletedThisOperationCycle

表示一个DTC测试在当前操作循环内是否运行完成若没完成置"1"否则置"0"; 开始新的操作循环或清故障码后则置"1";
这个位与bit 4 : testNotCompletedSinceLastClear类似后者标识自从上次调用了清理DTC的服务之后是否成功地执行了对某个DTC的测试。而testNotCompletedThisOperationCycle则标识在当前operation cycle中是否成功地执行了对某个DTC的测试。

if ( Failed确定 OR Passed确定)
   Bit→0
elseif ( New DC Start || ClearDiag )
   Bit→1

在这里插入图片描述

Bit 7: warningIndicatorRequested

报告与特定DTC相关的任何警告指示器的状态没有警告则置"0",有警告,则置"1"
如果有警告则confirmedDTC也应设置为1
清故障码或满足制造商定义的要求则置"0";如果这个DTC不支持警告指示则这个位永远置0。

if ( MIL点灯 )
   Bit→1
else
   Bit→0

在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6