Autosar模式管理系列介绍01-BswM

本文框架

  • 1.概述
  • 2. BswM属性介绍
    • 2.1 模式仲裁
      • 2.1.1 Rules
      • 2.1.2 LogicalExpression
    • 2.2 模式控制
    • 2.3 基本控制过程
  • 3. BswM功能介绍
    • 3.1 WakeUp
    • 3.2 RUN
    • 3.3 POSTRUN
    • 3.4 PrepareShutDown
    • 3.5 Wait for Nvm
  • 4. BswM配置
  • 5.模式管理系列文章汇总

1.概述

BswM(Basic software Management)即基础软件管理模块,它的职责是根据简单的仲裁规则对来自应用层SWCs或其他底层BSW模块的模式请求进行仲裁,并根据仲裁结果执行相应的操作。
如上描述中提到的,其核心为规则(Rule)与操作(Action)。
其在Autosar的层级如下:
Autosar模式管理系列介绍01-BswM_第1张图片

2. BswM属性介绍

在进行具体功能介绍前,先对BswM的基本属性进行下介绍,方便大家有基本认识后再去深究。对BswM属性介绍还是按模式仲裁(Rule)与模式控制(Action)两个方面进行:

2.1 模式仲裁

模式仲裁是BswM模块基于一定的规则去做判断,涉及的概念有Rules、LogicalExpression、Condition。

2.1.1 Rules

即模式判断的条件或规则,如if…else…

2.1.2 LogicalExpression

条件的逻辑组合,几个条件组合在一起并通过与或非等组成条件判断的最终表达式。
如下图中的Normal_Mode = True Ifc1_Bus_Off=False
Autosar模式管理系列介绍01-BswM_第2张图片

2.2 模式控制

模式的控制是根据设定的规则对模式请求作出仲裁后执行的一系列操作,涉及的概念有:Action、ActionList(AL)
如下图所示,BswM可能包括多个ActionLists,每个ActionList也可以包括多个Acions。ActionList中的元素可以是具体的动作也可以是另一个ActionList的引用,或者也可以是仲裁模式可执行的规则。
Autosar模式管理系列介绍01-BswM_第3张图片

2.3 基本控制过程

下图显示了模式请求的最小处理循环:

  1. 模式请求的SWC通过其请求的接口像BswM请求模式A,BswM通过其接收端口接收请求;
  2. BswM对收到的模式请求根据其制定的规则进行仲裁;
  3. 根据仲裁结果执行相应的ActionList;
  4. 在执行ActionList时,BswM可通过RTE将仲裁结果反馈个给模式请求者。
    Autosar模式管理系列介绍01-BswM_第4张图片

3. BswM功能介绍

在了解完BswM的基本运转思路后,我们进一步学习下其Autosar中的具体应用。在另一篇介绍EcuM的文章中也曾提及,BswM的模式管理的阶段为OS运行期间,即在StartOS后开始BswM_Init(),在关闭ShutDownOS前进行BswM_Deinit()。
如下图BswM参与控制ECU的状态分有:WAKEUP、RUN、POSTRUN、PrepareShutDown及Wait for Nvm。后续将对状态间的转换进行详细描述。
Autosar模式管理系列介绍01-BswM_第5张图片

3.1 WakeUp

当ECU处于WakeUp状态时,BswM会根据EcuM是否有确认的唤醒源或者ComM是否有通信请求,来进行仲裁:
如有确认的唤醒源或者ComM有通信请求则执行的操作为将ECU状态由 WakeUp→RUN
反之,如没有确认的唤醒源且ComM没有通信请求则状态切换为:WakeUp→PrepareShutDown

3.2 RUN

RUN状态为ECU正常工作状态,当ECU没有Run Request且所有通道没有通讯请求或强制关闭所有Run Request时将切换状态为RUN→POSTRUN

3.3 POSTRUN

POSTRUN为Prepare Shutdown前的一个状态,该状态下如果ECU又有Run Request或者有效唤醒事件或者存在通讯请求时将重新切换状态:POSTRUN→RUN
否则将继续进入下一个状态:POSTRUN→PrepareShutDown

3.4 PrepareShutDown

当ECU处于PrepareShutDown状态后将进入开启定时器等待写Nvm的阶段PrepareShutDown→Wait for Nvm

3.5 Wait for Nvm

在Wait for Nvm阶段如果存在有效唤醒源,且关闭运行的请求被释放后仍可回到WakeUp阶段,即Wait for Nvm→WakeUp,继续BswM的控制。
但如果以上都没有发生,ECU将会继续选择进一步的模式为休眠(GoHalt/GoPoll)或ShutDown(GoDown)。
对应的状态变换:
Wait for Nvm→Sleep
Wait for Nvm→ShutDown

4. BswM配置

一般BswM在Davinci Configurator中采用其默认选项自动配置,工具也支持用户自己加一些特殊的需求,本部分暂时不做过多介绍,后续如有同学感兴趣再一起进行探讨。

5.模式管理系列文章汇总

1)Autosar模式管理系列介绍02-EcuM
2)Autosar模式管理系列介绍03-WdgM
3)Autosar架构下BswM模式切换详细介绍

你可能感兴趣的:(#,System,Service系列,autosar,嵌入式)