BswM模块之Ecu State Handling


->返回总目录<-

前言

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提供了实现的具体办法。

->返回总目录<-

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&春风有信

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值