AUTOSAR模式管理-BswM模块配置介绍

发布于 2023-6-5 16:19
浏览
2收藏

BswM模块是实现位于BSW中的车辆模式管理和应用程序模式管理概念的组成部分的模块。它的职责是基于简单的规则仲裁来自应用层SWC或其他BSW模块的模式请求,并根据仲裁结果执行操作。如ECU关于通信的开关及ECU的休眠唤醒功能就是通过模式管理来实现的。BswM模块的分享BswM模块概念详解和BswM模块配置及代码分析,具体的项目实战请关注本号的后续文章,本篇为BswM模块配置介绍篇

​AUTOSAR模式管理-BswM模块详细介绍​

​AUTOSAR BswM(3)代码分析​

​AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM​

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

1.BswM config

Bsw模块在AUTOSAR工具中的配置总览如下图所示,配置主要由两部分组成,一部分是模式仲裁“BswMArbitration”,一部分是模式控制“BswMModeControl”。

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

2.模式仲裁

模式仲裁的配置分为四部分

1)模式逻辑表达式

2)模式条件

3)模式需求接口

4)模式规则

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

2.1BswMModeRequestPorts(模式请求)

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

BswMModeRequestPorts的配置分为两部分:

1)BswMRequestProcessing配置,配置模式请求在模式仲裁中的处理方式是DEFERRED还是IMMEDIATE,如果处理方式是DEFERRED,那么是通过轮询,在BswM中的Main函数处理模式请求;如果是IMMEDIATE,那么有模式请求时,就直接处理。

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

2)BswMModeInitValue:这部分配置模式请求的初始值,具体的值需要使用在ASW中Mode DecLaration中配置的模式值。

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

2.2.BswMModeConditions(模式条件)

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

BswMModeConditions的配置主要分为三部分:

1)BswMConditionMode:这个配置的作用是将Request Port与Condition Mode连接起来,因为模式仲裁的条件来自于SWC通过Request port发出的模式请求或者其他Bsw模块发出的模式指示。因此这个配置中需要填写与Condition相对应Request Port的名字。

2)BswMModeValueRef:BswMModeValueRef是仲裁逻辑表达式的固定模式,比如模式请求为N,BswMModeValueRef为X,那么模式条件表达式为N == X,或者是N != X.

3)BswMConditionType:BswMConditionType指的是模式条件表达式中逻辑符号,在AUTOSAR工具中分为两种:BSWM_EQUALS与BSWM_EQUALS_NOT,BSWM_EQUALS在表达式为==,BSWM_EQUALS_NOT在表达式为!=

2.3.BswMLogicalExpression(逻辑表达式)

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

模式条件是单一的逻辑表达式,逻辑表达式相对于模式条件而言,可以实现多个模式条件的逻辑组合,比如:

若Logic Expression仅需要两个Mode Indication 1与Mode Indication 2的逻辑组合,当然理论上可支持n个单一表达式的逻辑组合,取决于实际情况的需要。

Mode Condition 1:X == 3;

Mode Condition 2:Y == 4;

Logic Expression A = (Mode Condition 1 (OR或AND或XOR或NAND)Mode Condition 2 );


BswMLogicalExpression主要需要配置两部分:

1)BswMArgumentRef:这部分内容需要配置参与逻辑表达式的模式条件,添加模式条件的名称即可。

2)BswMlogicalOperator:这个配置指的是模式条件之间的逻辑符号,分为OR或AND或XOR或NAND三种。

2.4.BswMRules(模式规则)

模式规则指的是根据模式逻辑表达式的结果(TRUE 或者 False)来执行对应的ActionList,因此逻辑表达式与Actionlist需要进行mapping。

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

因此模式规则需要配置的内容有三部分:

1)BswMRuleFalseActionList,BswMRuleTrueActionList:BswMRuleFalseActionList为逻辑表达式结果为True时执行的ActionList,BswMRuleTrueActionList为逻辑表达式结果为False时执行的ActionList。填写相应的Actionlist的名称即可。


2)BswMRuleExpressionRef:这部分是对逻辑表达式的引用。


3)BswMRuleInitState:逻辑表达式初始值。逻辑表达式需要配置一个初始值,以在BswM初始化时执行默认ActionList。

3.模式控制

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

模式控制需要配置的内容分为三类:

1)模式动作列表

2)模式动作

3)模式切换接口

3.1BswMAction(模式动作)

模式动作分为两类,一类是BswM与其他BswM的固定动作,比如

ComM:设置对应通信接口的通信模式或允许在对应的通道上通信;

COM:实现IPDU报文的切换;(带有初始值或者不带有初始值);

COM: 使能或者关闭信号的deadline timeout monitoring;

NM:开启或者关闭NM通信

另一类是BswMUserCallout,这一类用作回调函数,可以用来进行Bsw模块的初始化工作。

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

3.2BswMActionLists(模式动作列表)

模式动作列表需要配置的内容分为两部分:

1.BswMActionListExcecution:这部分配置的是ActionList的触发方式,具体内容的解释已经在基础篇解释过了,简而言之就是配置Trigger或者Conditional两种。

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

3.3 BswMActionListItem

BswMActionListItem指的是ActionList中Action个体,以其中一个Item为例,Item需要配置的内容为:

AUTOSAR模式管理-BswM模块配置介绍 -汽车开发者社区

1)BswMAbortOnFail:如果BswM模块在执行过程Action List过程中,收到返回值为E_NOT_OK,BswM应该停止Action List的执行。如果需要实现该功能,那么参数“BswMAbortOnFail”应该设置为"true"

2)BswMActionListItemRef:这个参数为具体的Action,需要填写Action的名称。

3)BswMSwitchPort:SwitchPort是BswM与SWC之间的接口,BswM将模式仲裁后具体的状态发送相应的SWC。

4.小结

对于大型项目(例如域控制器)的BswM的配置会及其繁琐,而且一旦出现问题也比较难分析和查找原因,所以在使用工具配置BswM之前建议使用Excel表格把模式请求端口(MRP)、模式状态( ModeCondions)、模式逻辑表达(LogicalExpressions)、模式规则(Rules)、动作(Action)、动作列表(Action List)管理起来,把每一个条件和状态都梳理清楚后在按照表格去工具(Davince/ISOLAR)上一条一条的配置BswM,这样能减少错误。具体可以参考​​AUTOSAR BswM(3)代码分析​​一文。


参考文献:

1. Specification of Basic Software Mode Manager


文章转载自公众号:汽车电子嵌入式

分类
标签
4
收藏 2
回复
举报
回复
相关推荐