这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » UDS状态位介绍

共1条 1/1 1 跳转至

UDS状态位介绍

高工
2024-10-29 21:47:15     打赏
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。    1730209504118.pngBit1 TestFailedThisOperationCycleBit1的默认值为0,Bit1用于表示当前运行循环是否出现过testFailed = 1。一旦Bit0 testFailed出现过被置位为1的情况,Bit1会被置1,Bit1只有一下两种情况下才能恢复为0:一种是用Dem<…>clearDTC函数清楚该故障的状态位(通常是USD 14服务被执行);第二种是该循环结束新的循环开始,Bit置位和恢复的示意图请参照图2。image.pngBit2 PendingDTCBit2默认值为0,Bit2PendingDTC表示故障在当前循环或者上一个循环出现过Bit0 testFailed被置位为1,并且Bit2 PendingDTC的状态只有在当前循环测试完毕之后才会更新,也就是说如果上一个循环故障发生了,Bit2 PendingDTC位置1,当前循环故障没有发生,但是Bit2 PendingDTC仍为1,只有在下一个循环才会恢复为0。该位有两种条件可以恢复0:第一种是用Dem<…>clearDTC函数清楚该故障的状态位(通常是USD 14服务被执行);第二种是当前运行Bit1未置位为1,并且Bit6未位置为1,并且运行循环结束或者开始一下一个运行循环。示意图如下图。    image.pngBit3 confirmedDTCBit3默认值为0,Bit3 confirmedDTC表示故障已经确认,故障数据存储至EEPROM或者FEE(如果支持实时存故障数据)。另外有一点需要注意Bit3 confirmedDTC置位为1不表示故障还发生,故障当前是否发生主要由Bit0 testFailed状态确定。相对其他bit而言,Bit3的复位条件比较苛刻,有以下三种:第一种为故障老化,第二种为故障替代,第三种是用Dem<…>clearDTC函数清楚该故障的状态位(USD 0x14服务被执,OBD为 0x04服务),该位的逻辑图如下所示。image.pngBit4 TestNotCompletedSinceLastClearBit4的初始默认值为1,Bit4表示自从上次调用Dem<…>clearDTC函数清除DTC后,是否成功执行对故障进行检测,bit4=1表示该故障自从上次清除之后还未进行检测,bit4 =0,表示该故障自从上次清除之后已成功进行检测,该位的逻辑跳转图如下所示。   image.pngBit5 TestFailedSinceLastClearBit5的初始默认值为0,Bit5表示自动上次动用Dem<…>clearDTC函数清除DTC之后,bit0 testFailed是否出现过置位为1。Bit5=0表示自动上次清除DTC之后,故障未发生过,bit5=1表示自动上次清除之后故障又发生过。该位的复位条件有三种:第一种为调用Dem<…>clearDTC函数,第二种是故障老化,第三种为故障替代,逻辑图如下图所示。image.pngBit6 testNotCompletedThisOperationCycleBit6的初始默认值为1;bit6表示该运行循环故障是否进行检测,故障是否进行测试。Bit6=0表示当前循环已对该故障进行检测,进行测试,bit6=1表示当前循环还未对该故障进行检测,进行测试。Bit6的逻辑图见下图。image.pngBit7 WarningIndicatorRequestedBit7初始值为0,bit7用于某些故障发生需要通过仪表盘的MIL灯通知车主。Bit7=1表示请求点亮仪表盘的MIL灯。Bit7=0表示不请求点亮仪表盘的MIL灯。对于不需要通过仪表盘告知用户的故障,Bit7始终为0。   image.png上面主要对DTC status的各位进项的介绍,下面通过一张图来介绍各状态位的变化。image.png其中:image.png0 表示接收到清除诊断信息命令,初始化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各位的变化。   





关键词: UDS     状态     介绍    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]