DTC故障中Debounce策略(SWC与Dem的故障诊断关系)

工业控制

1185人已加入

描述

 

  1.Dem 中为什么用到 debounce

  故障诊断通常由诊断事件管理Dem模块和SW-C共同完成,即先由SWC中的Monitor Function对故障条件实时监控,并不断将故障条件的判定结果上报给Dem模块,而在Dem为了防止所有的故障误报,在其处理过程中增加一个Debouncing(去抖动)环节,也就是采用Debounce算法来确定事件的最终状态,即确认事件是PASSED、是FAILED,还是 No Result,除此之外还包括PREFAILED和PREPASSED。Dem模块中提供2种Debounce算法,基于计数器的Debounce算法是通过计数器计数来完成对事件的确认;基于时间的Debounce算法则通过计时来完成对事件的确认。

  2. SWC 与 Dem 的故障诊断关系

  故障诊断是由Dem模块和SWC共同完成的,SWC中的Monitor Function对故障条件进行实时监控,并实时将故障条件的判定结果反馈至Dem模块判断是否发生故障,因为故障诊断由SWC与Dem模块共同完成的,所以debounce策略即可在SWC中实现,也可在Dem模块中实现。

  DTC控制

  3. Dem 中实现的 debounce 策略

  Dem中实现debounce策略有三种,如下图7.30所示

  DTC控制

  3.1 基于计数器的Debounce策略

  针对该算法,Dem模块为每一个事件提供一个Debounce计数器(范围为-128到127)用来记录判断的结果。

  当一个事件上报一次PREFAILED状态,那么计数器(Fault Detection Counter)会按步长增加1,当达到设定的Failed限值时,故障状态就变成Failed。如下图t1时刻。

  当一个事件上报一次PREPASSED状态,那么计数器按步长减少1,当达到设定的Passed限值时,故障状态就变成Passed,如下图t2时刻。

  注释:Failed限值根据需求来定义,例如有的是3个event条件就会触发DTC的Failed状态。

  DTC控制

  FDC(fault detection counter):错误计数器,其范围为-128~127;

  DemDebounceCounterFailedThreshold:故障从prefailed状态跳转至failed的限值;

  DemDebounceCounterPassedThreshold:故障从prepassed状态跳转至passed状态的限值;

  DemDebounceCounterIncrementStepSize:当DiagnosticMonitor上报Prefailed,错误计数器的增加量;

  DemDebounceCounterDecrementStepSize:当DiagnosticMonitor上报Prepassed,错误计数器减少量;

  DemDebounceCounterJumpDown:是否使能JumpDown功能。JumpDown功能是指当上一次Diagnostic Monitor上报的状态是prefailed,而当前上报的是prepassed,且当前计数器的值大于DemDebounceCounterJumpDownValue,错误计数器的值会重置为DemDebounceCounterJumpDownValue。如果JumpDown功能禁止,计数器按步长减少;

  DemDebounceCounterJumpDownValue:当JumpDown功能使能,该变量定义了计数器的重置值;

  DemDebounceCounterJumpUp:是否使能JumpUp功能。JumpUp功能是指当上一次Diagnostic Monitor上报的状态是prepassed,而这次上报的是prefailed,且当前计数器的值小于DemDebounceCounterJumpUpValue,错误计数器的值会重置为DemDebounceCounterJumpUpValue。如果JumpUp功能禁止,计数器按步长增加;

  DemDebounceCounterJumpUpValue:当JumpUp功能使能,该变量定义了计数器的重置值;

  DTC控制

  注释:根据【AUTOSAR_SWS_DiagnosticEventManager】文档中说明,Dem 模块应通过 DemDebounceAlgorithmClass 来支持去抖算法的特定事件的配置。如图所示,所属的模块位置。

  DTC控制

  3.2 基于时间的Debounce策略

  针对该算法,Dem模块为每一个事件提供一个Debounce计时器(范围同样为-128到127)用来记录判断的结果。

  当一个事件上报一次PREFAILED状态,那么计时器(Fault Detection Counter)开始计时,在一段时间t failed,如果都没有出现PREPASSED或PASSED状态,那么到达t failed时,故障状态就变成Failed,如下图t1时刻;在t failed内,如果出现FAILED状态,那么故障状态就直接变成Failed,如下图t4时刻。

  当一个事件上报一次PREPASSED状态,那么计时器(Fault Detection Counter)开始计时,在一段时间t passed内,如果都没有出现PREFAILED或FAILED状态,那么到达t passed时,故障状态就变成Passed,如下图t2时刻;在t passed内,如果出现PASSED状态,那么故障状态就直接变成Passed,如下图t3时刻。

  DTC控制

  对于基于时间debounce的策略主要配置以下几个参数:

  DebounceTimeBasedTaskTime:该变量定义基本的检测周期;

  DemDebounceTimeFailedThreshold:定义故障状态从prefailed跳转至failed需要多少个DebounceTimeBasedTaskTime周期;

  DemDebounceTimeFailedThreshold:定义故障状态从prepassed跳转至passed需要多少个DebounceTimeBasedTaskTime周期;

  3.3 基于SWC中Debounce策略

  在SWC中,可以通过手写代码来实现上面两个的逻辑,比如说DTC判断的需求是每10ms判断一次,如果三次判断都是Failed,则DTC set Failed,否则是 PASSED。

  现在,我创建了一个Task,这个Task每10ms就会执行一次,我可以将DTC的判断条件放在这个Task里,如果判断(Failed)条件成立三次,就会set Failed状态。否则 PASSED。

  4. Debounce 对UDS DTC状态的影响

  通过 《ISO 14229》 UDS服务中的 0x19服务,可以读取到此时DTC的状态,依据AutoSAR描述,当event report的EventStatuse为passed或者failed或者bounce counter到达debounce counter的阈值时,UDS Status的bit0(TestFailed),bit1(TestFailedThisOperationCycle)和 bit6(TestNotCompletedThisOperationCycle)会发生变化。

  根据ISO14229-1_2013规定,bit4(testNotCompletedSinceLastClear)由“1”变为“0”的条件是“DTC测试的结果为passed或者failed。

  bit5(testFailedSinceLastClear)由“1”变为“0”的条件是“从上一次诊断信息被清除之后的DTC测试结果为failed”。

  DTC控制

  注意:具体可参考《AUTOSAR_SWS_DiagnosticEventManager》中第 7.7 章 《Event memory description》

  bit0DTC控制

  bit1DTC控制

  bit2DTC控制

  bit3DTC控制

  bit4DTC控制

  bit5DTC控制

  bit6DTC控制

  bit7DTC控制

  在经过 debounce 或者 no debounce 滤波之后的结果为 failed 时,bit4 和 bit6 会被清零,bit5 应当被置 1 ;

  在经过 debounce 或者 no debounce 滤波之后的结果为passed时,bit4 和 bit6 会被清零。而 bit2(pendingDTC)、bit3(confirmedDTC)和 bit7(warningIndicatorRequested)是需要在Fault memory中其他的条件去判断(具体的可以在Fault Memory章节和UDS Status大总结中看到),所以这3个位和debounce影响的4个UDS状态位是异步置位。由于诊断事件report故障及状态是独立于DEM模块,所以为了保存debounce之后的故障状态,可以给每个故障再给配一个变量记录debounce的状态。

  5. 需求参考

  DTC控制

  审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分