• 109查看
  • 3回复

[系统功能] UDS状态位介绍

[复制链接]


该用户从未签到

发表于 6 天前 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


DTC status表示一个故障的状态,是故障数据存储、故障老化等机制的依据条件之一,DTCstatus总共有以下八种状态:
Bit描述
0TestFailed
1TestFailedThisOperationCycle
2PendingDTC
3ConfirmedDTC
4testNotCompletedSinceLastClear
5testFailedSinceLastClear
6TestNotCompletedThisOperationCycle
7WarningIndicatorRequested
下面先对以上八种状态进行详细说明‘Bit0 testFailedBit0 testFailed的默认值为0。故障诊断通常是周期性执行的,如果当前周期检测到故障条件满足,表示故障发生了,Bit0testFailed会立即置1,下一个周期如果检测到同一故障的使能条件为满足,则Bit0位会立即恢复为0。从下图可知,Bit0复位还有两种条件:一种调用Dem<…>clearDTC函数清楚该故障的状态位(通常是USD 14服务被执行),第二种调用Dem_ResetEventStatus函数对该故障状态位进行复位。AUTOSAR的标准中对Bit0还有关于是否需要存储的描述,可以通过配置项DemStatusBitStorageTestFailed进行配置。对于支持WWH-OBD的控制器则需要将该配置项配置为true。   
UDS状态位介绍w1.jpg
Bit1 TestFailedThisOperationCycleBit1的默认值为0,Bit1用于表示当前运行循环是否出现过testFailed = 1。一旦Bit0 testFailed出现过被置位为1的情况,Bit1会被置1,Bit1只有一下两种情况下才能恢复为0:一种是用Dem<…>clearDTC函数清楚该故障的状态位(通常是USD 14服务被执行);第二种是该循环结束新的循环开始,Bit置位和恢复的示意图请参照图2。
UDS状态位介绍w2.jpg
Bit2 PendingDTCBit2默认值为0,Bit2PendingDTC表示故障在当前循环或者上一个循环出现过Bit0 testFailed被置位为1,并且Bit2 PendingDTC的状态只有在当前循环测试完毕之后才会更新,也就是说如果上一个循环故障发生了,Bit2 PendingDTC位置1,当前循环故障没有发生,但是Bit2 PendingDTC仍为1,只有在下一个循环才会恢复为0。该位有两种条件可以恢复0:第一种是用Dem<…>clearDTC函数清楚该故障的状态位(通常是USD 14服务被执行);第二种是当前运行Bit1未置位为1,并且Bit6未位置为1,并且运行循环结束或者开始一下一个运行循环。示意图如下图。   
UDS状态位介绍w3.jpg
Bit3 confirmedDTCBit3默认值为0,Bit3 confirmedDTC表示故障已经确认,故障数据存储至EEPROM或者FEE(如果支持实时存故障数据)。另外有一点需要注意Bit3 confirmedDTC置位为1不表示故障还发生,故障当前是否发生主要由Bit0 testFailed状态确定。相对其他bit而言,Bit3的复位条件比较苛刻,有以下三种:第一种为故障老化,第二种为故障替代,第三种是用Dem<…>clearDTC函数清楚该故障的状态位(USD 0x14服务被执,OBD为 0x04服务),该位的逻辑图如下所示。
UDS状态位介绍w4.jpg
Bit4 TestNotCompletedSinceLastClearBit4的初始默认值为1,Bit4表示自从上次调用Dem<…>clearDTC函数清除DTC后,是否成功执行对故障进行检测,bit4=1表示该故障自从上次清除之后还未进行检测,bit4 =0,表示该故障自从上次清除之后已成功进行检测,该位的逻辑跳转图如下所示。   
UDS状态位介绍w5.jpg
Bit5 TestFailedSinceLastClearBit5的初始默认值为0,Bit5表示自动上次动用Dem<…>clearDTC函数清除DTC之后,bit0 testFailed是否出现过置位为1。Bit5=0表示自动上次清除DTC之后,故障未发生过,bit5=1表示自动上次清除之后故障又发生过。该位的复位条件有三种:第一种为调用Dem<…>clearDTC函数,第二种是故障老化,第三种为故障替代,逻辑图如下图所示。
UDS状态位介绍w6.jpg
Bit6 testNotCompletedThisOperationCycleBit6的初始默认值为1;bit6表示该运行循环故障是否进行检测,故障是否进行测试。Bit6=0表示当前循环已对该故障进行检测,进行测试,bit6=1表示当前循环还未对该故障进行检测,进行测试。Bit6的逻辑图见下图。
UDS状态位介绍w7.jpg
Bit7 WarningIndicatorRequestedBit7初始值为0,bit7用于某些故障发生需要通过仪表盘的MIL灯通知车主。Bit7=1表示请求点亮仪表盘的MIL灯。Bit7=0表示不请求点亮仪表盘的MIL灯。对于不需要通过仪表盘告知用户的故障,Bit7始终为0。   
UDS状态位介绍w8.jpg
上面主要对DTC status的各位进项的介绍,下面通过一张图来介绍各状态位的变化。
UDS状态位介绍w9.jpg
其中:
UDS状态位介绍w10.jpg
0 表示接收到清除诊断信息命令,初始化DTC status byte。1、2表示在运行循环1中故障检测,或者说故障测试已经开始,所以bit4、bit6状态发生变化。3、4、5、6:testFailed,testFailedThisMonitoringCycle,pendingDTC和testFailedSinceLastClear位同时从0变为1,表示已检测到故障发生,但该故障需要两个运行周期才能确认,所以confirmedDTC还是为0.   7表示故障恢复;8表示故障再次发生;9、10:表示在运行循环1结束,运行循环2开始的分界点,由于运行循环2中故障还未进行故障诊,所以testFailedThisOperationCycle状态从1变成0,testNotCompletedThisOperationCycle状态从0变成1.11表示在运行循环2中故障检测还未开始,这时testfailed的状态可以有制造商指定是否保留上一个循环中testFailed的状态,在AUTOSAR中可以通过DemStatusBitStorageTestFailed配置项配置。12表示在运行循环2中故障检测已经执行;13、14表示在运行循环2中故障发生了,所以testfailed、testFailedThisMonitoringCycle置位为1.15、由于故障在两个循环中都存在,confirmedDTC置位为116、用于记录故障连续在多少个运行循环出现,用于确认故障的confirmedDTC是否达到置1的条件。关于DTC status就介绍到此,主要介绍了各位的含义,以及通过一个简单的例子对DTC status各位的变化。   
-end-

分享不易,恳请点个【👍】和【在看】

  • TA的每日心情
    无聊
    1-7-2015 18:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 6 天前 | 显示全部楼层
    作为一名汽车工程师,针对您提供的UDS状态位中的DTC状态描述,我可以为您简要解释每种状态的含义:

    1. Bit0 TestFailed:表示当前诊断测试失败。
    2. Bit1 TestFailedThisOperationCycle:指示在本次操作周期中诊断测试失败。
    3. PendingDTC:表示存在一个待处理的诊断故障代码,可能需要进一步的处理或确认。
    4. ConfirmedDTC:已确认存在故障的诊断故障代码。
    5. testNotCompletedSinceLastClear:自上次清除后,测试未完。
    6. testFailedSinceLastClear:自上次清除以来,测试失败。
    7. TestNotCompletedThisOperationCycle:本次操作周期内测试未完成。
    8. WarningIndicatorRequested:请求点亮警告指示灯,表示有某种异常情况需要关注。

    每种状态都为故障的诊断和处理提供了重要的参考信息。详细的诊断和应对措施需依据具体车型和技术规格进行。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 6 天前 | 显示全部楼层
    好的,我将以专业的汽车工程师的身份回复您的帖子:

    UDS中的DTC状态位是描述诊断故障代码状态的关键信息。针对您提供的八种状态,简要介绍如下:

    1. Bit0 TestFailed: 表示当前测试失败,可能存在故障。
    2. Bit1 TestFailedThisOperationCycle: 表示在本次操作周期内测试失败。
    3. Bit2 PendingDTC: 表示诊断故障代码处于待定状态,即将变为确认状态。
    4. Bit3 ConfirmedDTC: 表示诊断故障代码已确认存在。
    5. Bit4 testNotCompletedSinceLastClear: 表示自上次清除后测试未完成。
    6. Bit5 testFailedSinceLastClear: 表示自上次清除以来测试失败。
    7. Bit6 TestNotCompletedThisOperationCycle: 表示本次操作周期内测试未完成。
    8. Bit7 WarningIndicatorRequested: 表示请求点亮警告指示灯。

    这些状态位为诊断故障提供了重要依据,帮助工程师判断和处理汽车故障。希望以上解释对您有所帮助。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 6 天前 | 显示全部楼层
    作为汽车工程师,我明白您提到的UDS(统一诊断服务)中的DTC(故障诊断代码)状态位十分重要。关于您提供的状态描述,以下是各状态的简要说明:

    1. Bit0 TestFailed:表示本次操作周期内某个测试失败。
    2. Bit1 TestFailedThisOperationCycle:表示在本次操作周期内,之前的测试已经失败。
    3. PendingDTC:表示存在尚未确认的故障码,可能需要进一步的数据或操作来确认。
    4. ConfirmedDTC:已确认存在故障,通常需要采取相应的维修措施。
    5. testNotCompletedSinceLastClear:自上次清除后测试未完成,可能由于某些条件未满足。
    6. testFailedSinceLastClear:自上次清除以来测试失败,可能表明存在持续的问题。
    7. TestNotCompletedThisOperationCycle:本次操作周期内测试未完成,可能需要进一步观察或测试。
    8. WarningIndicatorRequested:请求点亮警告指示灯,表明有需要注意的故障情况。

    这些状态为故障诊断和维修提供了重要依据。在诊断汽车故障时,需要根据这些状态来分析和解决问题。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 4-4-2025 19:15 , Processed in 0.336814 second(s), 39 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.