前言
今天分享一篇BswM的入門文章,文章來源于網絡。
正文
模式管理是AUTOSAR中的一個難點,也可以說是最龐雜的一塊。因為模式管理貫穿整個CP Autosar流程,幾乎所有模塊都跟BSWM發生著聯系。
初見AUTOSAR/BswM,可能你知道這些概念:
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視圖,進入各個動作詳細配置,一看就懂了。
做個總結
審核編輯:湯梓紅
-
模塊
+關注
關注
7文章
2783瀏覽量
49608 -
信號
+關注
關注
11文章
2842瀏覽量
77917 -
AUTOSAR
+關注
關注
10文章
372瀏覽量
22407
原文標題:AUTOSAR實戰教程 – 學會讀懂AUTOSAR模式管理BswM配置
文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
AUTOSAR CAN網絡管理
AUTOSAR的相關資料推薦
CP AUTOSAR EcuM的相關資料下載
AUTOSAR模式的FEE驅動程序可以與其他非AUTOSAR模式兼容嗎?
搞一下CP AUTOSAR 入門 | 04 CP AUTOSAR EcuM 詳解

OSEK與AUTOSAR標準分別是怎么實現網絡管理功能的
AutoSAR中CAN通信網絡管理的概述

科普系列:AUTOSAR與OSEK網絡管理比較(上)

評論