首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

DTC状态掩码(Status Of DTC)

  • 23-11-14 08:43
  • 3261
  • 10463
blog.csdn.net

DTC状态掩码(Status Of DTC)

文章目录

  • DTC状态掩码(Status Of DTC)
    • DTC状态掩码表
    • DTC状态掩码详细解释
      • bit 0 : testFailed
      • bit 1 : testFailedThisOperationCycle
      • bit 2 : pendingDTC
      • bit 3 : confirmedDTC
      • bit 4 : testNotCompletedSinceLastClear
      • bit 5 : testFailedSinceLastClear
      • bit 6 : testNotCompletedThisOperationCycle
      • bit 7 : warningIndicatorRequested
    • Retention条件检测
    • 《AUTOSAR谱系分解(ETAS工具链)》之总目录

DTC状态掩码表

BITStatusComment
0testFailed测试故障位 (当前故障)
1表示一个故障被监测到
1testFailedThisOperationCycle当前操作循环测试故障位
1表示当前操作周期或从上一次ClearDiagnosticlnformation命令清零后已经监测到一次故障
2pendingDTC待确定DTC
1成立条件与TestFailedThisOperationCycle相同,不同之处为清零条件,此位清零条件为一个完整的操作周期内未出现故障或ClearDiagnosticInformation命令
3confirmedDTCDTC确认 (历史故障)
1表示存在历史故障
4testNotCompletedSinceLastClear在故障清除后测试没有完成
1表示从上次ClearDiagnosticInformation命令复位(置1)后,新的故障测试还未完成
5testFailedSinceLastClear在故障清除后测试失败
1表示从上次ClearDiagnosticInformation或其他条件清零后,已经监测到被确定的故障
6testNotCompletedThisOperationCycle当前操作循环测试没有完成
1表示从上次ClearDiagnosticInformation命令复位(置1)后,本操作周期内当前测试未运行完成
7warningIndicatorRequested故障指示请求
1表示需要故障报警标识的故障已经处于ConfirmedDTC状态(bit3)和TestFailed状态(bit0)

DTC状态掩码详细解释

bit 0 : testFailed

如果在最近的一次测试中,在某个错误路径中发现了故障,则相应DTC的这一个状态位就要被置1。也就是DTC的testFailed位被置1,但是它不一定被ECU存储到EEProm中,只有当pending DTC或confirmed DTC被置1时故障码才会被存储。

指示最近执行test的结果,test失败置1,但是它不一定被ECU存储到EEprom中,只有当bit2或bit3被置1时DTC才会被存储。test通过则置0,如果调用了14服务清除DTC的话,也需要重新置0

0:DTC测试的最新结果表明未检测到故障。

1: DTC测试的最新结果表明了一个成熟的失败结果。

DTC Bit0 更新逻辑

Bit位更新条件
0 -> 1经Debounce后最终上报状态为Failed
1 -> 0经Debounce后最终上报状态为PassedOR使用14服务清除DTCOR复位事件状态

bit 1 : testFailedThisOperationCycle

用于标识某个DTC在当前的operation cycle中是否出现过testFailed置1的情况,即是否出现过错误,也就是在当前操作循环内的测试结果,该操作循环内只要发生过错误,就置"1"; 开始新的操作循环或发送清故障码服务后,就置"0";

该位表示在当前test中,诊断test是否已经报告了一个testFailed结果。当新的检测循环开始时,这个位需要置0,在调用了14服务后也需要置0。如果该位置1,那么一直保持置1状态直到新的检测循环开始,因此bit1可以理解为当前DTC。如果bit2和bit3通常一起使用。对于没有网络管理的 ECU,这个起始点就是 KL15 通断。也就是说上电时间内出现的故障,该位都会置1,不管是否存储。

0:testFailed:在当前操作周期内或在当前操作周期内调用ClearDiagnosticInformation后,尚未报告testFailed结果。

1: testFailed:在当前操作周期中至少报告了一次testFailed结果。

DTC Bit1更新逻辑

Bit位更新条件
0 -> 1经Debounce后最终上报状态为Failed
1 -> 0操作循环更新OR使用14服务清除DTC

bit 2 : pendingDTC

当前循环内,故障发生,pendingDTC = 1,但是在下一个循环内,故障没有了,pendingDTC 仍然为 1,再下一个循环内,故障仍不存在,那么pendingDTC 就可以置0了。如果接下来的两个循环内,这个DTC都还存在,那么confirmedDTC就要置1了。

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

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

1: 如果在当前操作循环中检测到故障,则该位应设置为1并锁定

DTC Bit2更新逻辑

Bit位更新条件
0 -> 1经Debounce后最终上报状态为Failed
1 -> 0(操作循环更新 AND TestFailedThisOperationCycle == 0)OR使用14服务清除DTCORTestNotCompeleteThisOperationCycle == 0

bit 3 : confirmedDTC

当confirmedDTC = 1时,则说明某个DTC已经被存储到ECU的EEProm中,说明这个DTC曾经满足了被confirmed的条件。但是请注意,confirmedDTC = 1时,并不意味着当前这个DTC仍然出错,如果confirmedDTC = 1,但testFailed = 0,则说明这个DTC表示的故障目前已经消失了。将confirmedDTC 重新置0的方法 UDS 14服务(清除故障码)。

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

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

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

DTC Bit3更新状态

Bit位更新条件
0 -> 1经Debounce后最终上报状态为FailedAND Fialure Counter > = 故障确认阈值
1 -> 0达到老化条件OR使用14服务清除DTCOR 故障溢出被替换

bit 4 : testNotCompletedSinceLastClear

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

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

1:自上次清除诊断信息后,DTC测试尚未运行到完成。

DTC Bit4更新逻辑

Bit位更新条件
0 -> 1经Debounce后最终上报状态为Failed
1 -> 0使用14服务清除DTC

bit 5 : testFailedSinceLastClear

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

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

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

DTC Bit5更新逻辑

Bit位更新条件
0 -> 1经Debounce后最终上报状态为Failed
1 -> 0使用14服务清除DTC

bit 6 : testNotCompletedThisOperationCycle

该位表示在当前检测循环周期过程中DTC test是否完成,若完成了置0,未完成置1。在调用ClearDiagnosticDTC后需要置1。

0 :在当前operation cycle中(或自上次在当前操作循环期间清除诊断信息以来)完成。

1 :在当前operation cycle中(或自上次清除此操作循环的诊断信息后),DTC测试尚未运行到完成。

DTC Bit6更新逻辑

Bit位更新条件
0 -> 1经Debounce后最终上报状态为Failed
1 -> 0使用14服务清除DTCOR操作循环更新

bit 7 : warningIndicatorRequested

该位报告警告指示,比如说仪表盘上的警示灯等。

但不是所有的DTC都会有警告指示,如果没有和DTC相关的警告存在,该位应置0;

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

0:ECU不请求激活警告指示。

1:ECU请求激活警告指示。

DTC Bit7更新逻辑

Bit位更新条件
0 -> 1经Debounce后最终上报状态为FailedAND点灯条件满足
1 -> 0使用14服务清除DTCOR点灯条件不满足

Retention条件检测

当DTC状态完成更新后,Dem将开始进行Retention条件检测。Dem给用户提供多种策略用以判断是否需要分配Event Memory Entry。分配策略由配置DemEventMemoryEntryStorageTrigger决定,具体如下面表格所示:

DemEventMemoryEntryStorageTrigger分配条件
DEM_TRIGGER_ON_TEST_FAILEDDTC bit0 由0跳变成1
DEM_TRIGGER_ON_CONFIRMEDDTC bit3 由0跳变成1
DEM_TRIGGER_ON_PENDINGDTC bit2 由0跳变成1
DEM_TRIGGER_ON_FDC_THRESHOLDDTC bit0 由0跳变成1ORDTC bit1由0跳变成1ORDTC bit2由0跳变成1ORDTC bit3由0跳变成1

《AUTOSAR谱系分解(ETAS工具链)》之总目录

《AUTOSAR谱系分解(ETAS工具链)》之总目录

注:本文转载自blog.csdn.net的PlutoZuo的文章"https://blog.csdn.net/PlutoZuo/article/details/132714169"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top