1、简介
BswM是基础软件模式管理的简称(BSW Mode Manager),属于Autosar架构下系统服务层的一个模块。它的职责是根据简单的规则仲裁来自应用层SW-C或其他BSW模块的模式请求,并根据仲裁结果执行操作。简单理解它的功能为仲裁和执行。
2、模式仲裁(Mode Arbiration)
由BswM执行的模式仲裁简单且基于规则。规则是由一般的布尔表达式组成。
2.1、仲裁规则(Arbiration Rules)
规则是由一组模式请求条件组成的逻辑表达式。当输入模式请求和模式指示发生变化时,或者在执行BswM主函数期间,对规则进行评估。评估的结果(True或False)用于决定是否执行相应的模式控制动作列表。
2.2、模式条件和逻辑表达(Mode Conditions and Logical Expressions)
包含模式仲裁规则的逻辑表达式可以使用不同的操作符,如AND、OR、XOR、NOT和NAND。表达式中的每个项对应于一个模式请求条件。如下图所示:当MyModeRequestPort == MODE_A并且ComMInitiateReset == IS_SET时,执行True执行列表,否则执行False执行列表。
2.3、模式仲裁输入源
BswM接受模式请求和模式指示作为模式仲裁的输入。模式请求通常来自应用程序SW-C,但也可能来自其他BSW模块,如DCM。模式指示总是由其他BSW模块发布,例如不同总线特定的状态管理器和EcuM。
2.4、立即和延时操作
模式仲裁有两种处理方式:一种是模式请求(或指示)发生,立刻进行仲裁;一种是延迟等到BswM主函数再进行仲裁。
3、模式控制(Mode Control)
模式控制是根据模式仲裁的结果来执行一系列的动作,这些动作在动作列表(Action List)中。动作有三种:
- 操作其他Bsw模块或Rte
- 链接到其他动作列表
- 用户自定义
4、模式请求流程
模式请求的流程如下图所示:
- SW-C通过其发送端请求模式A。RTE分发请求,BswM通过Receiver Port接收请求。
- BswM根据收到的模式仲裁请求评估其规则,或者在执行BswM主要功能期间周期性地评估其规则。
- 根据所选的执行方法执行相应的动作列表。
5、流程总结
6、工具链配置
上面的描述基本都是基于AUTOSAR文档总结而来,可能读起来是不是有点懵?AUTOSAR规范将整个模式管理模块更标准化,术语话,但可能理解起来不是那么白话。下面咱们以工具链配置的角度去理解,以ISOLAR为例:主要配置包括:
- 仲裁:逻辑表达(LE),模式条件(MC),模式请求Port(MRP),规则(AR);
- 执行:动作列表(AL),动作(AI)。
假如系统状态机请求跳转到PreRun模式,此时的流程图是这样的:
配置如下:
1. 配置Port口
2. 配置条件
3. 逻辑表达
需要2中配置的两个条件都满足
4. 规则
5. 动作列表
6. 动作