BswM模块之Ecu State Handling

2023-05-16

文章目录

  • 前言
  • 一、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提供了实现的具体办法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BswM模块之Ecu State Handling 的相关文章

随机推荐

  • Linux apt-get autoremove千万别乱用

    使用linux下的apt get autoremove命令的心得体会 前几天在实验室搭建要做人工智能项目的环境时 xff0c 由于未解决python2 7和python3 6共存时 xff0c 只利用python2 7版本的库文件 xff0
  • 基于gazebo实现多机器人编队仿真(三)

    基于gazebo实现多机器人编队仿真 xff08 三 xff09 三角编队与一字编队的实现 前言原理简图代码实现虚拟坐标的发布跟随者消息接收 总结 前言 前文已经阐述了多机器人的编队模型实现与多辆小车跟随的实现 xff0c 本文以通过tf通
  • 天猫精灵通过AliOS网桥控制Zigbee设备

    天猫精灵对接AliOS 设备 The article is released under license CC BY NC ND 4 0 IoT Boot Camp系列课程是由TorchIoTBootCamp团队发起 xff0c 广大IoT
  • 什么是最长前缀匹配?为什么网络前缀越长,其地址块就越小,路由就越具体?

    使用 CIDR 时 xff0c 路由表中的每个项目由 网络前缀 和 下一跳地址 组成 在查找路由表时可能会得到不止一个匹配结果 应当从匹配结果中选择具有最长网络前缀的路由 xff1a 最长前缀匹配 longest prefix matchi
  • STM32 模拟串口(UART)使用

    学习目标 xff1a 由于在项目中需要用到多路的串口使用 xff0c 而自己的单片机目前来讲没法满足我们项目所需要的串口需求 xff0c 因此要对普通的GPIO进行转换为UART进行使用 从而使得我们单片机能够得到多一路的串口 学习内容 x
  • Linux(ubuntu) 基础

    本文主要讲解一些有关linux下的相关知识 xff1a 文章目录 一 shell 命令二 文件系统三 ubuntu磁盘管理操作四 Ubuntu下压缩和解压缩五 ubuntu用户和组六 ubuntu 文件权限管理七 Linux连接文件操作八
  • CentOS-7.2部署Squid服务

    一 安装Squid代理服务器 yum y install squid 1 启动Squid服务和设置开机启动 systemctl start squid systemctl enable squid 2 详解Squid服务器配置文件 默认的
  • 【Docker系列】Docker Swarm

    docker swarm 介绍 为什么不建议在生产环境中使用docker compose xff1f docker compose 单节点的问题 xff0c 多个实体机就无法适应的 多机器如何管理 xff1f 如果跨机器做scale横向扩展
  • 【mysql】远程连接服务器数据库出现 Client does not support authentication protocol requested by server的解决方法

    前言 之前已经配好了本地数据库与云服务器上的数据库的连接 xff0c 也能正常进行操作 几个月后某天打开navicat想打开此连接却弹出了个错误提示窗口 xff0c 显示Client does not support authenticat
  • Ubuntu16.04系统卡顿,刷新率低,输入有延迟

    问题 xff1a 从某次开机之后ubuntu就一直卡顿 xff0c 原本以为是cscode占用过大 xff0c 在删除部分文件后没有改善 xff0c swp也未使用 每次挂起重加载也经常出现失败的情况 在不断查找资料及更改配置文件之后 xf
  • vs code git配置及使用

    一 下载及安装git程序 浏览器中搜索git官网 xff1a https git scm com download win进行程序下载 xff0c 根据自己的系统选择不同版本 xff08 32 bit Git for Windows Set
  • 根文件系统rootfs的移植及制作镜像ramdisk.img

    根文件系统的移植 介绍 1 移植根文件系统的工具 gt busybox 1 短小精悍 2 版本更新较快 xff0c 版本之间差异不大 2 如何获取busybox 1 xff09 https busybox net downloads 选择b
  • 解决linux共享文件夹丢失的问题

    虚拟机已经设置了共享文件夹 xff0c ubuntu里 mnt hgfs 没有共享文件夹 在终端输入此命令 xff0c 即可恢复 xff08 前提必须有vmware tools安装过了 xff09 sudo vmhgfs fuse host
  • 汽车CAN总线入门,通俗易懂

    附件 xff1a 文档原件github CAN总线简介 CAN xff08 Controller Area Network xff0c 控制器局域网络 xff09 属于工业现场总线的范畴 最初CAN总线是由德国的Bosch 博世 公司为汽车
  • CAN网络管理Autosar(入门)

    一 xff0c 个人小心得 作为刚入门两个月汽车电子行业的软件工程师 xff0c 现阶段在学习汽车组合开关的测试 xff08 主要用CANoe软件 xff09 xff0c 在学习过程中总结了一些自己理解的知识点 xff0c 当然也希望得到大
  • UDS诊断系列讲解-总目录

    一 前言 欢迎大家来学习 UDS诊断从入门到熟练 专栏 xff0c 该篇为总目录 xff0c 方便以后大家直接进入需要学习的文章 正所谓独乐乐不如众乐乐 1 UDS的简介和存在意义 UDS诊断系列讲解之 1 1 UDS开篇 二 UDS应用层
  • 【UDS】ISO14229之0x19服务

    文章目录 前言一 理论描述1 服务分类2 状态掩码 二 操作步骤1 请求2 回复 总结 gt 返回总目录 lt 前言 简称 xff1a ReadDTCInformation xff0c 读取DTC信息 功能 xff1a 用户通过请求该服务
  • VScode:ERROR: Unable to start debugging. Unexpected GDB output from command “-exec-run“

    问题 ERROR Unable to start debugging Unexpected GDB output from command 34 exec run 34 During startup program exited with
  • 《诊断服务》禁止功能寻址

    文章目录 前言一 功能寻址是什么 xff1f 二 步骤1 使能制造商函数接口2 分析函数并填充代码 总结 前言 本章基于DaVinCi禁止功能寻址的办法 DaVinCi默认支持功能寻址 xff0c 因此需要特殊处理 一 功能寻址是什么 xf
  • BswM模块之Ecu State Handling

    文章目录 前言一 ESH是什么 xff1f 二 基于BswM管理的ECU状态切换流程1 ECU启动2 ECU关闭 总结 前言 BswM 基础软件模式管理模块 xff0c 它的职责是基于简单规则的BSW模块仲裁来自应用层sw c或其他模块的模