专栏名称: 21ic电子网
即时传播最新电子科技信息,汇聚业界精英精彩视点。
目录
相关文章推荐
COMSOL  ·  在 COMSOL 中求解薛定谔方程探索量子力学 ·  23 小时前  
半导体行业联盟  ·  半导体:一张图,看懂集成电路布图设计登记 ·  3 天前  
半导体行业联盟  ·  2024“创业之芯”深圳站 -- 芯榜赋能! ·  3 天前  
21ic电子网  ·  问答有礼 | ... ·  1 周前  
51好读  ›  专栏  ›  21ic电子网

UDS状态位介绍

21ic电子网  · 公众号  · 半导体  · 2024-10-23 17:09

正文

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

-end-

温馨提示:

因最近微信公众平台推送规则改变,很多读者反馈没有及时看到更新的文章。根据最新规则,建议多点击“推荐阅读、分享、收藏”等,成为常读用户。


推荐阅读:


请点下【在看】给小编加鸡腿