(资料图片)
防抖实质就是想对某件事的状态做一个确认,比如:某个按钮的按下,可能是由于某种原因误触碰了一下,并不是真正的想按下按钮。怎么判断到底是不是想真的按下按钮呢?聪明的人类总是能想到方法,比如:按钮按下1s表示想真正按下按钮或者按钮连续按下两次表示真正想按下按钮。在Autosar DEM中,去抖分为:Time、Counter、MonitorInternal。基于Time或者Counter比较常用。个人理解:在DEM中,对事件去抖就是对事件状态的确认。事件如何确认呢?按照Autosar规范,上报的事件状态包括:FAILED、PREFAILED、PREPASSED、PASSED。比如:上报3次PREFAILED,事件变成FAILED,或者上报3次PREPASSED变成PASSED,如此才确认事件的发生,即事件状态(Event Status)。在DEM中,定义了FDC(Fault Detection Counter)表征事件将要达到的状态,这个值的范围是-127~128,即sint8类型。而每次FDC变化多大由step up/down度量,比如上报3次PREFAILED,事件变成FAILED,则step up设置的范围可以是64>step up≥43,这样即可满足FDC = 0时,上报3次事件状态变成FAILED;同样,上报3次PREPASSED变成PASSED,-43>step down>-64。如上图,在DEM中又给了jump down和jump up这样的功能,该功能感觉用的较少。与
解读DEM可以看出,在对事件(Event)进行去抖时,受使能条件和诊断命令的影响,去抖行为可以分为:FREEZE和RESET两种。RESET比较直接,使能条件不满足或者收到诊断指令$85时,将针对事件去抖用到的信息全部复位。比如FDC重置为0。
关键词: