BswM模块之Ecu State Handling

news2024/10/7 4:24:59

文章目录

  • 前言
  • 一、ESH是什么?
  • 二、基于BswM管理的ECU状态切换流程
    • 1.ECU启动
    • 2.ECU关闭
  • 总结


前言

BswM – 基础软件模式管理模块,
它的职责是基于简单规则的BSW模块仲裁来自应用层sw - c或其他模块的模式请求,并根据仲裁结果进行相应的操作。
BswM与其他模块的接口交互如下图
在这里插入图片描述
BswM模块的实现是基于第三方工具DavinCi配置生成,具体包含了模块初始化管理,通信控制管理,ECU状态控制管理,用户定义的模式管理服务。本章讲述ECU状态控制管理。

一、ESH是什么?

ESH(Ecu State Handling )ECU状态控制。BswM定义了各种Rule来控制ECU的状态,
Ecu State Handling拥有12个Rule,每个Rule中包含不同的Expression,当表达式Expression成立时,会执行该Rule下相应的Action。
每个Rule包含一个Expression,它对Rule中所要执行的操作列表Action List起决定性作用。
每个Rule中都包含一个操作列表Action List,每个列表包含了多个Action。当Rule中表达式Expression成立时,执行操作列表中的任务。

下图是DaVinCi编辑界面展现出来的Rules。
在这里插入图片描述

二、基于BswM管理的ECU状态切换流程

在这里插入图片描述

1.ECU启动

StartUp:
当ECU一上电进行初始化,ESH处于STARTUP模式,ECU处于Init状态。

WarkUp:

1) ESH处于WAKEUP模式(ESH_InitToWakeup ),ECU处于Wakeup状态。

2) 当没有正在处理的NvM指令,定时器NvM_CancelWriteAllTimer归零,允许通信,执行Dem_Init,启动自运行请求计时器,ESH进入RUN模式,ECU进入Run状态。

3) 当没有有效的唤醒源时,ESH直接进入SHUTDOWN模式(ESH_InitToWakeup -> ESH_WakeupToPrep),ECU处于Prepare Shutdown状态。

Run:

1) ESH处于RUN模式 (ESH_InitToWakeup -> ESH_WakeupToRun),ECU处于Run状态。
注: ESH_WakeupToRun中调用了ESH_DemInit 来执行初始化DEM。

2) 当没有运行请求以及所有频道无通信或者请求了KillAllRunRequest,则不允许通信,ECU清除有效的唤醒事件,
ESH进入POSTRUN模式(ESH_WakeupToRun -> ESH_RunToPostRun -> ESH_RunToPostRunNested),ECU进入Postrun状态。

PostRun:

1) ESH处于POSTRUN模式(ESH_WakeupToRun -> ESH_PostRun ),ECU处于Postrun状态

2) 当有运行请求或接收到有效唤醒事件或正在发生通信请求和释放“Kill All Run Request Port”,允许通信,ESH进入RUN模式(ESH_PostRun -> ESH_PostRunNested ),ECU进入Run状态。

3) 当满足postrun request == released或者请求KillAllRunRequest”,执行Dem_Shutdown,进入SHUTDOWN模式
(ESH_PostRun -> ESH_PostRunToPrepNested ),ECU进入Prepare Shutdown状态。

2.ECU关闭

Prepare Shutdown:
执行NvM全部写入,启动NvM_WriteAllTimer定时器,ECU进入Wait for NvM状态(ESH_PrepToWait)。

Wait for NvM:
1)当没有正在处理的NvM指令或者定时器NvM_WriteAllTimer归零,定时器WriteAllTimer停止,执行MCU下电操作EcuM_GoDown(ESH_WaitToShutdown)。

2)当没有正在处理的NvM指令或者定时器NvM_WriteAllTimer归零,进入EcuM的低功耗模式

3)当有效的唤醒事件发生和释放“KillAllRunRequest”, 定时器WriteAllTimer停止,开启定时器NvM_CancelWriteAllTimer,
取消所有写操作NvM_CancelWriteAll,进入WAKEUP模式(ESH_WaitToWakeup)。ECU进入Wakeup状态。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了ESH的理论知识,DaVinCi提供了实现的具体办法。

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

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

相关文章

QT QPainter 绘制基本图形元件简介

1.基本图形元件 QPainter 提供了很多绘制基本图形的功能,包括点、直线、椭圆、矩形、曲线等,由这些基本的图形可以构成复杂的图形。QPainter 中提供的绘制基本图元的函数如下表所示。每个函数基本上都有多种参数形式,这里只列出函数名&#x…

Elastic Common Schema 和 OpenTelemetry — 无需供应商锁定即可获得更好的可观察性和安全性的途径

作者:Elastic 可观察性和安全团队 在 KubeCon Europe 上,宣布 Elastic Common Schema (ECS) 已被 OpenTelemetry (OTel) 接受作为对该项目的贡献。 目标是将 ECS 和 OpenTelemetry 的语义约定 (SemConv) 融合到一个由 OpenTelemetry 维护的开放模式中。 …

LearnOpenGL-模型加载

1.配置Assimp库。 下载Assimp,解压后得到 assimp-master 文件。在文件中新建一个 build 文件。使用 Cmake 生成工程文件保存在 build 中,从这里下载CMake,下载最新的即可。 打开CMake,选择需要源文件目录和目标目录。修改成适配…

机器学习平台、自研DPU、资源并池,火山引擎发布多云、AI基础设施与增长法宝

1、每十家大模型企业,七家在火山引擎云上。 2、火山引擎大模型训练云平台,支持万卡训练,集群性能提升3倍 3、火山引擎新一代自研DPU,实现计算、存储、网络的全组件卸载,释放更多资源给业务负载。 4、火山引擎与字节国内…

数据库管理软件dbeaver-ce 下载安装并离线配置

文章目录 前言数据库管理软件dbeaver-ce 下载安装并离线配置1. 概述2. 下载3. 安装4. 离线配置驱动jar包5. 链接mysql 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天…

谷歌aab包手机怎么安装教程

一、概述 bundletool是一种底层工具,可供 Android Studio、Android Gradle 插件和 Google Play 用于构建 Android App Bundle 文件并将 app bundle 转换为部署到设备的各种 APK。您也可以将 bundletool作为一种命令行工具,用于自行构建 app bundle 和重新…

【笔试强训编程题】Day2.(排序子序列 100448)和(倒置字符串 69389)

文章目录 前言 一、排序子序列 100448 题目描述 代码实现 二、倒置字符串 69389 题目描述 代码实现 总结 前言 今天让我们来练习两道经典的编程题!!!! 一、排序子序列 100448 题目描述:牛牛定义排序子序列为…

平台资金提现解决方案之实现支付宝单笔转账到银行卡功能

大家好,我是小悟 使用场景 不管是做APP、电脑网站、手机网站还是小程序,为了推广基本上都离不开用户分佣的场景。 换句话说就是在其平台内为每个用户设置“电子钱包”功能,而电子钱包在平台那里只是一串数字,这就需要平台为用户…

详解 ES6中 Promise 构造函数的使用

文章目录 前言什么是 Promise?Promise 的几种状态拆分细解 PromisePromise all()方法then()方法 返回一个新的 Promise 时的状态由什么决定?总结 前言 Promise 是ES6 新增的一个异步调用解决方案,它的出现是为了解决异…

Elasticsearch的调优思路

环境:centos7、elasticsearch-5.6.4 1、性能调优 1.1、Linux参数调优 1.1.1、关闭交换分区 目的是防止内存置换降低性能,将 /etc/fstab 文件中包含 swap 的行注释掉。 #执行命令:注释相关 swap的行 sed -i /swap/s/^/#/ /etc/fstab#将 /etc/f…

彻底弄清FreeRTOS中的事件组(Event Groups)

​之前已经学过两个任务之间可以利用信号量、队列来通信,任务可以利用这两个机制等待某一个事件发生,但是假如需要等待多个事件发生呢?这就需要用到事件组了。 事件组可以让任务进入阻塞态,等待一个或多个事件的组合发生。当事件…

根据 cadence 设计图学习硬件知识 day02 了解飞腾 X100芯片

1. 飞腾芯片 X100的介绍 飞腾套片X100是一款微处理器的配套芯片,主要功能包括图形图像处理和接口扩展两类。在图形图像处理方面,集成了图形处理加速GPU、视频解码VPU、显示控制接口DisplayPort以及显存控制器;在接口扩展方面,支持…

【矩形面积】

题目来源:https://leetcode.cn/problems/rectangle-area/ 目录 矩形面积 矩形面积 题目介绍 给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形,请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示&#xf…

数字化转型危与机,20年老厂的升级之路

“投资大、周期长、见效慢”,是每一家企业在考虑数字化战略时,都会纠结的问题。 打江山容易,守江山难 企业在快速扩张的过程中,往往可以不需要过多的考虑细节的问题,跑马圈地的打法会更加有效。 但是市场占有量开始饱…

JS Array数组常用方法

会改变原数组的方法 1、array.push(需要在末尾添加的数据)【给数组末尾添加一个元素】 2、array.unshift(需要在首位添加的数据)【给数组首位添加一个元素】 3、array.pop()【从数组末尾删除元素,不需要传参】 4、array.shift()【从数组首位开始删除元素,不需要传参】 5、arra…

数据处理方法(LFSR)

一、线性反馈移位寄存器(LFSR)编码概述 线性反馈移位寄存器(LFSR):通常由移位寄存器和异或门逻辑组成。其主要应用在: 伪随机数,伪噪声序列,计数器,BIST,数据…

树脂吸附含钴废水的实际案例

三元聚合物-锂电池是指正极材料使用锂、镍、钴、锰三元正极材料的锂电池,锂离子电池的正极材料有很多种,主要有钴酸锂、锰酸锂、镍酸锂、三元材料、磷酸铁锂等。用三元材料作为正极材料的动力锂电池,近年来凭借其容量高、循环稳定性&#xff…

Java笔记一(黑马)

目录 一.标准的javaBean二.反射1.获取class对象的三种方式2.反射获取构造方法3.反射获取成员变量4.反射获取成员方法 三.网络编程TCP Serve/ClientNIO框架Netty 一.标准的javaBean package com.itheima.domain;public class Student {//1.成员变量私有化//2.空参,带…

数据结构-树及相关算法

二叉树 递归算法的关键要明确函数的定义,相信这个定义,而不要跳进递归细节。 写二叉树的算法题,都是基于递归框架的,我们先要搞清楚 root 节点它自己要做什么,然后根据题目要求选择使用前序,中序&#xff0…

colmap使用教程

COLMAP 是具有图形和命令行界面的通用运动结构 (SfM) 和多视图立体 (MVS) 管道。 它为有序和无序图像集的重建提供了广泛的功能。 常见的基于nerf算法均需要colmap来计算位姿 安装colmap: conda install colmap 需要使用python9 step1:准备多视角图…