Autosar DEM DTC的Debounce策略

news2024/11/27 13:36:30

文章目录

  • 简介
  • Debounce策略
    • 1、基于计数器的 Debounce 策略
    • 2、基于时间的Debounce策略

简介

故障事件防抖,与按键防抖(软件需要延时确认按键不是误触发)的作用类似,目的是为了防止事件误触发采取的策略。

因为DTC并不是一达到触发位就会被报出来的,而是要对故障进行Debounce(消抖),防止故障误报。

在这里插入图片描述

Debounce策略

故障诊断是由Dem模块和SWC共同完成的,SWC中的Monitor Function对故障条件进行实时监控,并实时将故障条件的判定结果反馈至Dem模块判断是否发生故障
在这里插入图片描述

故障诊断由SWC与Dem模块共同完成的,故故障的debounce策略即可在SWC中实现,也可在Dem模块中实现。

如果在SWC中,Dem_SetEventStatus()函数传给Dem的状态为 passedfailed ,如果在Dem,Dem_SetEventStatus()函数传给Dem的状态为 prepassedprefailed

Dem中提供了两种debounce策略,分别为基于计数器的debounce策略和基于时间的debounce策略。

1、基于计数器的 Debounce 策略

在这种策略下,Dem会提供一个计数器(fault detection counter)用来记录判断的结果,当Diagnostic Monitor上报至dem的状态为prefailed,计数器会按步长增加,当达到设定的限值时,故障状态变成failed。当上报状态为prepassed,计数器按步长减少,当达到设定的限值时,故障状态变成passed。

以下对改策略涉及的重要参数进行解释:

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

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

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

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

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

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

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

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

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

在这里插入图片描述

  • 1、5表示JumpDown功能;

  • 2表示当前计数器小于DemDebounceCounterJumpDownValue ,所JumpDown功能没有激活;

  • 3、4表示JumpUp功能;

  • 6表示DemDebounceCounterJumpDownValue ;

  • 7表示DemDebounceCounterJumpUpValue;

  • 8表示DemDebounceCounterFailedThreshold ;

  • 9表示DemDebounceCounterPassedThreshold ;

  • 10、12表示故障确认,由于计数器的值达到了fail的限值;

  • 11故障恢复,由于计数器的值达到pass的限值;

  • 13表示Dem接收的状态为failed,所以故障直接置位;

  • 14表示Dem接到的状态为passed,所以故障恢复;

  • 15表示DemDebounceCounterIncrementStepSize;

  • 16表示DemDebounceCounterDecrementStepSize;

2、基于时间的Debounce策略

在这种策略下,计数器的初始值为0,其范围为-128~127,当Dem接收到Diagnostic Monitor发送的状态值开始计数,计数器的增长方向由接收到的状态决定,当计数器的值在一定时间达到阈值,完成此次判断,如果在未达到阈值时,Dem接收的状态发生变化,计数器会重新开始计数,并且计数方向也发生转变。

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

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

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

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

在这里插入图片描述

  • t failed:表示故障failed需要的时间,该值等于DebounceTimeBasedTaskTime乘以DemDebounceTimeFailedThreshold;

  • t passed:表示故障passed需要的时间,该值等于DebounceTimeBasedTaskTime乘以DemDebounceTimePassedThreshold;

  • 1、表示Diagnostic Monitor传至Dem的状态为prefailed;并经过t failed时间故障状态编程failed;

  • 2、表示Diagnostic Monitor传至Dem的状态为prepassed;此时计数器重新开始计数;

  • 3、由于2时刻开始计数未达到阈值时,Dem接收的状态发生变化,此时计数器开始重新计数,并计数方向发生变化,经过t failed时间后,故障状态编程failed。

  • 4、Dem接收的状态为failed,所以故障直接置位了;

  • 5、Dem接收的状态为passed,所以故障直接恢复了;

  • 6、表示故障已发生;

  • 7、表示故障未发生;

本文链接:https://zhuanlan.zhihu.com/p/70216826

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1320544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element-ui样式(一)

1.去掉表格横线 HTML表格标签&#xff1a; table&#xff1a;定义表格&#xff0c;生成的表格在一对<table></table>中&#xff1b; <th>&#xff1a;定义表格的表头&#xff0c;一般是表头中的内容会被加黑&#xff08;table head&#xff09;&#xff1b;…

行为型设计模式-策略模式(Strategy Pattern)

策略模式 策略模式&#xff1a;百度百科中引述为&#xff1a;指对象有某个行为&#xff0c;但是在不同的场景中&#xff0c;该行为有不同的实现算法。 策略模式是对算法的包装&#xff0c;是把使用算法的责任和算法本身分割开来&#xff0c;委派给不同的对象管理。策略模式通…

Kafka--从Zookeeper数据理解Kafka集群工作机制

从Zookeeper数据理解Kafka集群工作机制 这一部分主要是理解Kafka的服务端重要原理。但是Kafka为了保证高吞吐&#xff0c;高性能&#xff0c;高可扩展的三高架构&#xff0c;很多具体设计都是相当复杂的。如果直接跳进去学习研究&#xff0c;很快就会晕头转向。所以&#xff0c…

Linux之FTP 服务器

一、FTP服务器匿名账户服务器配置 1、测试是否已安装vsftp服务器&#xff1a; 2、启动vsftp服务器&#xff1a; 3、修改vsftp主配置文件&#xff0c;允许匿名登录 4、重新启动vsftpd服务,禁用防火墙 5、打开FTP服务的数据文件存放目录/var/ftp&#xff0c;复制若干文件到该目…

Java监听器与观察者模式

Java监听器与观察者模式 Java中的监听器&#xff08;Listener&#xff09;和观察者模式&#xff08;Observer Pattern&#xff09;都是用于处理对象间的事件通知和响应的设计模式。它们的目的是在对象之间建立一种松散的耦合&#xff0c;使得一个对象的状态变化可以通知到其他…

08_CSS定位与综合案例开发

day08_CSS定位与&综合案例开发 Objective&#xff08;本课目标&#xff09; 理解什么是定位能说出为什么要用定位 1. 为什么使用定位 标准流在最底层 (海底) ------- 浮动的盒子在中间层 (海面) ------- 定位的盒子 在 最上层 &#xff08;天空&#xff09; 小黄色块在…

Go标准包之flag命令行参数解析

1.介绍 在 Go中&#xff0c;如果要接收命令行参数&#xff0c;需要使用 flag 包进行解析。不同的参数类型可以通过不同的方法接收。 2.参数接受 2.1 接受方式 使用flag接收参数&#xff0c;可以由以下三种方式接受&#xff1a; 方式一: flag.Type(name,defaultVal,desc)方…

Python查看模块(变量、函数、类)方法

在导入模块之后&#xff0c;开发者往往需要了解模块包含哪些功能&#xff0c;比如包含哪些变量、哪些函数、哪些类等&#xff0c;还希望能查看模块中各成员的帮助信息&#xff0c;掌握这些信息才能正常地使用该模块。 为了查看模块包含什么&#xff0c;可以通过如下两种方式&a…

Discord Midjourney 安装使⽤教程(AI绘画)

安装步骤: 1.注册Discord账号 2.进⼊Midjourney社区创作 3.创建⾃⼰服务器 安装教程: 1.注册Discord账号 账号注册的方式&#xff1a; 注册地址: //账号注册地址https://discord.com/ 2.进⼊Midjourney社区创作 // 邀请链接: 官方的midjourneyhttps://discord.gg/midjo…

〖大前端 - 基础入门三大核心之JS篇(56)〗- 内置构造函数

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

gitlab(gitlab-ce)下载,离线安装

目录 1.下载 2.安装 3.配置 4.启动 5.登录 参考&#xff1a; 1.下载 根据服务器操作系统版本&#xff0c;下载对应的RPM包。 gitlab官网&#xff1a; The DevSecOps Platform | GitLab rpm包官网下载地址: gitlab/gitlab-ce - Results in gitlab/gitlab-ce 国内镜像地…

全球移动通信(2G/3G/4G/5G)频谱分布情况

一、概述 随着通信技术的不断发展&#xff0c;全球各国都在积极推进2G、3G、4G、5G网络的建设和应用。根据FCC统计&#xff0c;目前全球移动通信频谱分布如下&#xff1a; 二、分布 &#xff08;一&#xff09;俄罗斯 2G&#xff1a;主要使用900MHz和1800MHz两个频段。其中&…

【Stm32-F407】全速DAP仿真器下载程序

文章内容如下: 1) 全速DAP仿真器简介2) 全速DAP仿真器下载程序流程 1) 全速DAP仿真器简介 1&#xff09;全速DAP仿真器简介 DAP全称 Data Acquisition Processor&#xff0c;是一种用于数据采集和实时控制的设备。本文使用的全速DAP仿真器遵循ARM公司的CMSIS-DAP标准&#xff…

MySQL数据库 函数

目录 函数概述 字符串函数 数值函数 日期函数 流程函数 函数概述 函数是指一段可以直接被另一段程序调用的程序或代码。也就意味着&#xff0c;这一段程序或代码在MysQL中已经给我们提供了&#xff0c;我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即…

使用hackrf one采集Lora信号

使用osmocom Source模块 使用osmocom Source模块来接收来自软件定义无线电设备&#xff08;如HackRF One&#xff09;的信号使用file Sink模块 用于将流程图中的数据保存到文件中。它的作用是将数据写入磁盘&#xff0c;以便后续进行离线分析、处理或存档。使用WX GUI Scope Si…

Java小案例-RocketMQ的11种消息类型,你知道几种?(死信消息)

前言 在RocketMQ中&#xff0c;死信消息&#xff08;Dead-Letter Message&#xff09;是指那些在正常情况下无法被消费者消费的消息。这些消息会被存储在死信队列&#xff08;Dead-Letter Queue&#xff0c;简称DLQ&#xff09;中。 死信消息的特性包括&#xff1a; 不会再被…

今天面了一个来阿里要求月薪21K的,明显感觉他背了很多面试题.....

最近有朋友去阿里面试&#xff0c;面试前后进行了20天左右&#xff0c;包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说&#xff0c;80%的人都会栽在第一轮面试&#xff0c;要不是他面试前做足准备&#xff0c;估计都坚持不完后面几轮面试。 其实&…

Python基础教程——项目的组织结构:包、模块、类、函数(实例)!

01 几个重要的概念 1.1 包&#xff1a;可以简单的理解为文件夹的概念 注解&#xff1a;包package是一个文件夹&#xff08;目录&#xff09;&#xff0c;里面包含__init__.py和模块&#xff1b; 1.2 模块&#xff1a;简单的理解为 .py文件 注解&#xff1a;模块module是文件&…

亚信科技AntDB数据库——深入了解AntDB-M元数据锁的实现(一)

锁的获取 5.1 锁的强弱 当线程已经持有的锁比新申请的锁更强时&#xff0c;认为已经持有了锁&#xff0c;无需再对申请锁类型加锁。锁的强弱指持有的锁与其他锁的不兼容集合大小&#xff0c;集合相同锁相同&#xff0c;集合更大锁更强&#xff0c;否则无强弱关系。通过锁的兼…

Python---多任务的介绍

1. 提问 利用现学知识能够让两个函数或者方法同时执行吗? 不能&#xff0c;因为之前所写的程序都是单任务的&#xff0c;也就是说一个函数或者方法执行完成另外一个函数或者方法才能执行&#xff0c;要想实现这种操作就需要使用多任务。 多任务的最大好处是充分利用CPU资源&…