解读AUTOSAR模式管理BswM配置

电子说

1.2w人已加入

描述

前言

今天分享一篇BswM的入门文章,文章来源于网络。

正文

模式管理是AUTOSAR中的一个难点,也可以说是最庞杂的一块。因为模式管理贯穿整个CP Autosar流程,几乎所有模块都跟BSWM发生着联系。

模块

初见AUTOSAR/BswM,可能你知道这些概念:

Action是实际执行的动作;

Action1+ Action2+..构成ActionLists;

Rules触发ActionLists;

LogicalExpressions是Rules的一部分;

但是,懵逼树下懵逼果,你是不是有疑惑---这一个个的条件/表达式/规则/接口/动作列表/动作,到底谁先谁后?他们分别是怎么触发的?怎么才能将他们串起来?

本文从项目实践的角度去讲解,在ETAS ISOLAR软件中(Vector DAVINCI类同),怎么样按图索骥读懂”乱七八糟”的BswM配置!

BswM的对外信息交流

BswM作为一个独立的模块,其代码是在BswM_MainFunction()中周期执行的,那么它的输入/激励是什么?

答案:Port!

在ETAS的ISOLAR软件中BswM可用的Port分以下这些类.

模块

我们把Port信号的改变理解成触发BswM动作的信息,从Port开始追朔,按图索骥,则可将BswM贯穿起来。我举个最简单的场景作为例子:

模块

SWC发起请求->改变ModeRequestPort信息-构成>ModeCondition-构成>LogicalExpression-构成>Rules-触发>ActionLists-包含>Actions。

是不是现在还有点懵逼?如果不懵了,到此就可以结束了,如果还懵着呢,接着看个真实的案例。

例子1 - BswMSwcModeRequest类型的请求

该Port请求来源是SWC,也就是说SWC控制着它。

第一步 - 请求/触发源

在ModeRequestPort上单击右键 选择BswM Rule Trace View, 在弹出的视图里就给出了该Port对应的各个配置项,逻辑是很清晰的。

模块

第二步 - 条件

在BswM Rule Trace View视图中点击ModeCondition,进入BswM_MC_BswM_PostRun这个配置项:

模块

这个配置项简单来来说就是一行语句

BswM_MRP_SwcModeRequest== ECUM_STATE_POST_RUN

第三步 - 逻辑表达式

在BswM Rule Trace View视图上点击LogicalExpression视图, 进入BswM_LE_PostRun这个配置项:

模块

该配置项只包含了BswM_MC_BswM_PostRun这一个条件,所以它依然是一行语句BswM_MRP_SwcModeRequest ==ECUM_STATE_POST_RUN。

第四步 - 规则

在BswM Rule Trace View视图上点击Rules视图, 进入BswM_AR_PostRun这个配置项,

模块

可见这个规则就是,使用BswM_LE_PostRun这个表达式,当其为真的时候触发BswM_AL_BswMSwitchPrepShutdown这个动作组。简化成伪代码就是:

 

if(BswM_MRP_SwcModeRequest== ECUM_STATE_POST_RUN)
{
  BswM_AL_BswMSwitchPrepShutdown();
}
else
{
  /* Do Nothing… */
}

 

第五步 - 动作列表

在BswM Rule Trace View视图上点击ActionList视图,进入BswM_AL_BswMSwitchPrepShutdown配置项:

模块

第六步 - 动作

在视图上点击Action视图,进入各个动作详细配置,一看就懂了。

模块

做个总结

模块

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分