AUTOSAR-BswM篇

本文详细介绍了BswM模块的基础功能,包括模式仲裁的规则和逻辑表达式,模式控制的操作列表,以及ECU状态机中的各个阶段及其对应的条件和行动。重点讨论了状态转换和通信管理的过程。
摘要由CSDN通过智能技术生成

1 概述

        BswM(Basic software Management)即基础软件管理模块,它的职责是根据简单的仲裁规则对来自应用层SWCs或底层BSW模块的模式请求进行仲裁,并根据仲裁结果执行相应的操作。

2 BswM属性介绍

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

2.1 模式仲裁

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

  • Rules

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

  • Expression

      条件的逻辑组合,几个条件组合在一起并通过与或非等组成条件判断的最终表达式。 如下图中的Normal_Mode = True Ifc1_Bus_Off=False

2.2 模式控制

      模式的控制是根据设定的规则对模式请求作出仲裁后执行的一系列操作,涉及的概念有:Action、ActionList(AL)

      如下图所示,BswM可能包括多个ActionLists,每个ActionList也可以包括多个Acions。ActionList中的元素可以是具体的动作也可以是另一个ActionList的引用,或者也可以是仲裁模式可执行的规则

2.3 基本控制过程

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

  1. 模式请求的SWC通过其请求的接口BswM请求模式A,BswM通过其接收端口接收请求;

  2. BswM对收到的模式请求根据其制定的规则进行仲裁;

  3. 根据仲裁结果执行相应的ActionList;

  4. 在执行ActionList时,BswM可通过RTE将仲裁结果反馈给模式请求者

3 状态机

      ECU状态处理的状态机如下图所示:

3.1 Startup -> wakeup     

Expression

判定当前模式处于Init

Action list:

请求模式切换到Wakeup。

3.2 WakeUp -> Run

Expression

1.判定当前状态是否为wakeup;
2.判定是否有唤醒事件;
3.判定ComM request 是否为pending且上一次目标模式通知是否为wakeup。

Action list:

1.在 ComM request pending 状态下允许通信;
2.更新BswM 计时器;
3.request 到 RUN 状态;

3.3 Run -> PostRun 

Expression

1.判定当前模式是否在RUN且上一次 request 为run;
2.判定ComM是否为NO_COMMUNICATION;
3.SWC没有模式请求;
4.判定BswM转换计时器超时

Action list:

1.禁止ComM通信;
2.清除唤醒事件;
3.请求模式转换到POSTRUN

3.4 PostRun -> PreShutdown

Expression

1.判定SWC是否有模式请求;
2.判定是否有唤醒事件;
3.判定ComM 请求是否为 pengding;

Action list:

请求进入preShutDown

3.5 PREP_SHUTDOWN-> WAIT_FOR_NVM

Expression

判定当前模式处于PRE_SHUTDOWN且上一次请求通知为SHUTDOWN;

Action list:

1.设定NVM写超时计时器;
2.NvmWriteall;
3.请求切换到ESH_WAIT_FOR_NVM

3.6 WAIT_FOR_NVM -> SHUTDOWN

Expression:

1.判定当前状态是否为WAIT_FOR_NVM;
2.判定是否完成NVMwriteall;
3.判定是否有唤醒事件;
4.ComM是否有request;

Action list:

1.关闭NVM计时器;
2.请求到Shutdown状态;
3.用户自定义代码实现;

  • 33
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值