Autosar Dem模块之Debounce策略
事件Debounce策略概述
Dem模块提供了几个优化信号质量的Debounce策略,包括基于计数的Debounce算法、基于时间的Debounce算法以及特定的Debounce算法。Dem模块可以通过配置事件的DemDebounceAlgorithmClass容器来选择相应的Debounce算法。
基于计数的Debounce算法
Dem模块根据上报检查结果(Passed/Failed),内部Debounce计数增加/减少N(步长)。当内部Debounce计数达到失败阈值时,monitor会上报DEM_EVENT_STATUS_FAILED状态;当内部Debounce计数达到成功阈值时,monitor会上报DEM_EVENT_STATUS_PASSED状态。
若开启jump-down功能,当内部Debounce计数达到失败阈值后,内部Debounce计数设置为jump-down初始值。若开启jump-up功能,当内部Debounce计数达到成功阈值后,内部Debounce计数设置为jump-up初始值。下图为计数Debounce的示例:
Dem模块提供了DemDebounceBehavior参数,定义在Enable condition和ControlDTCSetting过程中上报的处理方案,具体配置和处理流程如下图所示:
DEM_DEBOUNCE_STATUS_FREEZE:在Enable condition和ControlDTCSetting过程中上报,内部Debounce计数保持不变;
DEM_DEBOUNCE_STATUS_RESET:在Enable condition和ControlDTCSetting过程中上报,内部Debounce计数清零。
Dem模块提供了DemDebounceCounterStorage参数,定义内部Debounce计数是否需要存储。若开启,Dem模块会在Dem初始化(Dem_Init)的时候重载之前存储的内部Debounce计数。
其中Autosar 配置如下:
- 开启基于计数的Debounce算法(DemDebounceCounterBasedSupport = true)
- 设置event的Debounce算法(DemDebounceAlgorithmClass = DemDebounceCounterBased)
- 设置Failed阈值(DemDebounceCounterFailedThreshold)
- 设置passed阈值(DemDebounceCounterPassedThreshold)
- 设置内部Debounce计数步长(DemDebounceCounterIncrementStepSize)
- 开启Jump down功能(DemDebounceCounterJumpDown = true)
- 设置Jump down初始值(DemDebounceCounterJumpDownValue)
- 开启Jump up功能(DemDebounceCounterJumpUp = true)
- 设置Jump up初始值(DemDebounceCounterJumpUpValue)
- 设置Debounce行为(DemDebounceBehavior)
- 设置内部计数存储功能(DemDebounceCounterStorage)
基于时间的Debounce算法
Dem模块根据上报检查结果(Passed/Failed),开启Failed/Passed内部Debounce定时器。当内部Debounce定时器达到失败阈值时,monitor会上报DEM_EVENT_STATUS_FAILED状态;当内部Debounce定时器达到成功阈值时,monitor会上报DEM_EVENT_STATUS_PASSED状态。
具体Debounce流程如下图所示:
Dem模块提供了DemDebounceBehavior参数(同计数Debounce功能相同),定义在Enable condition和ControlDTCSetting过程中上报的处理方案,具体配置和处理流程如下图所示:
DEM_DEBOUNCE_STATUS_FREEZE:在Enable condition和ControlDTCSetting过程中上报,内部Debounce定时器保持不变;
DEM_DEBOUNCE_STATUS_RESET:在Enable condition和ControlDTCSetting过程中上报,内部Debounce定时器清零。
具体Debounce Reset流程如下图所示:
其中Autosar 配置如下:
- 开启基于计数的Debounce算法(DemDebounceTimeBasedSupport= true)
- 设置event的Debounce算法(DemDebounceAlgorithmClass = DemDebounceTimeBase)
- 设置Failed阈值(/DemDebounceTimeFailedThreshold)
- 设置passed阈值(DemDebounceTimePassedThreshold)
特定的Debounce算法
针对一些有特殊需求的应用程序,Dem模块还扩展了其他的特殊Debounce算法。
Monitor Debounce 算法
Dem模块提供了一个monitor debounce算法,若配置成DemDebounceMonitorInternal,Dem模块不能为每个event使用内部debounce机制,其中monitor就不可以上报DEM_EVENT_STATUS_PREFAILED和DEM_EVENT_STATUS_PREPASSED状态。
当调用Dem_PreInit函数和清除DTC(14服务)时,Dem模块会复位内部debounce算法及相关参数。
总结
本章节主要描述了Dem模块Debounce策略和常用的几种Debounce算法的使用方法和Autosar配置。这些功能仅仅是Dem模块的一小部分,同时我们还需要了解Dem模块其他功能和Autosar工具的配置选项,这样才能灵活使用Autosar工具配置和调试相关的BUG。
本章节主要参考Autosar标准的Dem模块相关文档和ISO14229标准等。
Autosar Dem模块之Debounce策略相关推荐
- DTC故障中Debounce策略
1. Dem 中为什么用到 debounce 故障诊断通常由诊断事件管理Dem模块和SW-C共同完成,即先由SWC中的Monitor Function对故障条件实时监控,并不断将故障条件的判定结果上报 ...
- 搞一下CP AUTOSAR 入门 | 02 CP AUTOSAR 基础模块功能描述
前言 本系列请点击:<搞一下CP AUTOSAR入门> 所有系列请点击:<汽车电子系列分享> 在上一篇介绍了CP AUTOSAR的分层结构,对于多数使用AUTOSAR架构开发汽 ...
- Autosar Dcm模块介绍
DCM模块介绍 诊断通信管理(Diagnostic Communication Manager, DCM)模块作为AutoSar诊断模块的重要组成部分,主要负责诊断数据流和管理诊断状态,包括诊断会话. ...
- AUTOSAR从入门到精通100讲(二十四)-AUTOSAR通信篇—AUTOSAR COM模块
AUTOSAR COM是AUTOSAR通讯的重要组成部分,它是从OSEK COM标准的基础上发展而来的.它提出了一个不同速率的总线网络之间进行数据交换的方法,为汽车控制单元应用软件提供了统一的通信环境 ...
- Autosar Dcm模块之Vector Configurator Pro配置(DSP子模块)
背景 之前简单介绍了Autosar Dcm模块,接下来我们直接切入主题,如何通过Vector Configurator Pro工具配置DSD子模块,并实现客户的需求. DSP子模块配置 1.DSP子模 ...
- AUTOSAR ComM模块介绍
AUTOSAR ComM模块介绍 Autosar ComM概述 Autosar ComM 全称是 Autosar Communication Manager,顾名思义就是用来管理通讯的,ComM 模块 ...
- AUTOSAR DET模块解析
作者:Stephen Du 免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性.复制/转发请注明来源/作者. 欢迎添加微信交流学习. AUTOSAR DET模块解析 参考文档: ...
- AUTOSAR DEM Configuration
本文只介绍AUTOSAR DEM配置,目的在于指导DEM快速开发,对于AUTOSAR DEM 功能请参见AUTOSAR DEM Introduction 一文 Workflow Step Action ...
- AUTOSAR DEM Introduction
General DEM 是用来处理,存储Diagnosis Event以及相关的环境数据的AUTOSAR 模块 DTC Status Bit0 - TestFailed(TF) Test Result ...
最新文章
- OpenCV3.3中逻辑回归(Logistic Regression)使用举例
- iptables利用ipt_recent做防刷限制
- 多租户数据库设计方法:共享数据库表
- [Leetcode][第785题][JAVA][判断二分图][BFS][DFS]
- Unity大密度建筑场景加载解决方案
- 阿里云黄海宇:窄带高清2.0——让直播更惊艳的魔术
- optimized mysql_MySQL解释计划中“Select tables optimized away”的含义
- 在线JSon格式显示工具
- python科学坐标系绘制分析_python数据可视化案例——平行坐标系(使用pyecharts或pandas)...
- 关于纠正 C/C++ 之前在函输内改变 变量的一个错误想法。
- java mybatis配置,mybatis配置——Java版
- chrome浏览器关闭百度热搜——AdBlock插件
- 浙大pat | 浙大pat乙级 1005~1008
- 编译原理-词法分析-上下文无关文法
- android模拟器横屏显示,安卓模拟器bluestacks怎么横屏显示
- 小牛电动为何沉迷于打造“社区文化”?
- TI15.4STACK协议栈解读
- JAVA:JDBC数据库编程
- 便携智能音箱小问mini发布,李志飞:要做苹果一样的公司
- 动动同步微信无法连接服务器,动动运动,动动计步器加到微信可是不能连接到微信运动...