AUTOSAR模式管理看這一篇就夠了-吐血整理
1 概述
1.1 模式管理的組成
AUTOSAR為ECU的運行時軟件的狀態(tài)處理提供了模式管理組件,例如
? BswM模式管理器
? NM網(wǎng)絡管理
? ECU狀態(tài)管理器
? COMM通信管理器
? WDGM看門狗管理器
當然,除了這幾個標準的AUTOSAR基礎模塊外,模式管理組件還涉及到了應用程序模式管理器(APP Mode Management)和RTE的相關功能。后面的章節(jié)將一一為你剖析。
2 AUTOSAR架構下的模式管理
模式管理中有三種模式角色,即模式請求者,模式用戶和模式管理器。
-
模式請求者
請求模式管理器更改模式。 -
模式管理器
處理模式更改請求以更改內(nèi)部模式,同時并將更改后的模式交付給其他模式用戶。 -
模式用戶
從模式管理器接收當前模式信息,或?qū)⑵溆米鲌?zhí)行可運行程(Runnable)的事件。
模式的信息是使用RTE上的端口接口或BSW側的C-API接口從模式管理器提供給模式用戶的。模式信息以ModeDeclarationGroup格式定義。該ModeDecleartionGroup包含在軟件組件描述文件中,并在生成RTE后作為代碼中的枚舉量。管理模式信息的模式管理器實現(xiàn)為BswM或AppM。
2.1 BSW模式管理
根據(jù)ECU的當前狀態(tài),BswM控制 ECU狀態(tài)處理中的用戶可定制的功能。BswM的行為通過“ if-else”語句形式的一組規(guī)則進行配置。由于功能安全和低功耗要求,需要為系統(tǒng)定義一系列狀態(tài),當進入各自的狀態(tài)時,模式管理器將按照設置的操作并執(zhí)行在該狀態(tài)中定義的一系列任務。對于應用層,使用MBD 狀態(tài)機模型將使應用開發(fā)變得簡單明晰,對于AUTOSAR 環(huán)境下,AUTOSAR提供了一種模式管理機制,用于執(zhí)行與狀態(tài)機等效的管理機制。如下圖1所示,BswM的模式管理由模式仲裁和模式控制組成。根據(jù)相應的條件執(zhí)行分配的操作列表。動作列表由一個或多個控制其他BSW的ActionList組成。APP SWC可以使用發(fā)送端口接口向BswM請求模式。信息通過RTE傳輸,BswM通過接收端口接收信息。注:BswM的每個配置參數(shù)在EcuC文件中描述,EB或DaVinci Generator基于此EcuC參數(shù)文件生成代碼。
圖1 BSWM 模式管理示意圖
2.2 應用軟件模式管理
應用軟件的內(nèi)部狀態(tài)管理可以通過通用的軟件開發(fā)方法(例如狀態(tài)機)來實現(xiàn),實現(xiàn)向其他SWC或BswM提供其相關的狀態(tài)信息,或者基于該狀態(tài)執(zhí)行特定的Callout function。在這種情況下,應使用AUTOSAR RTE提供的模式接口。如圖3所示,AppM可以配置為模式管理器,處理來自其他模式請求模塊的模式請求以更改模式。使用模式聲明組預先定義要處理的模式。模式用戶通過接收端口接收當前模式信息和模式改變事件。模式端口接口可以觸發(fā)與其連接的可運行對象(Runnable),也可以停止調(diào)度另一個RTE事件觸發(fā)的可運行對象。
圖2 應用層模式管理
2.3 BswM模式的配置
在ECU運行生命周期的運行狀態(tài)由BswM管理。如圖3(a)所示,根據(jù)上層應用程序或BSW內(nèi)部的狀態(tài)轉(zhuǎn)換設置相應的規(guī)則以執(zhí)行特定操作。BswM由針對特定條件的邏輯決策表達式和針對表達式結果的一系列執(zhí)行動作組成,如圖3顯示的狀態(tài)機所示。
圖3 BSWM的規(guī)則
根據(jù)BswM的規(guī)則,用于規(guī)則判斷的每個條件的輸入為ModeRequestSource,輸出為AvailableAction。如下表中BSWM RULES所示, 為了構造狀態(tài)機,我們首先通過考慮應將子狀態(tài)的條件信息組合成復合的狀態(tài)來定義必要的狀態(tài),每個關聯(lián)規(guī)則的復合狀態(tài)以條件表達式的形式表示,以創(chuàng)建狀態(tài)轉(zhuǎn)換條件,并將輸出與該轉(zhuǎn)換條件關聯(lián)。規(guī)則庫可以定義為:{ Rule_aa,Rule_ab ,Rule_JK,……},其中J表示條件下標,K表示ActionList 下標。具體可參看代碼中的數(shù)組表的定義。
注:表中的BswMModeRequestSource是AUTOSAR 設計元素中的ChoiceContainer容器。如下圖為模式請求類型為BswMCanSMIndication的配置:
圖4 BSWM 的配置
注:對于BswM_CanSM_CurrentState(NetworkHandleTypeNetwork,CanSM_BswMCurrentStateType CurrentState), 它可能具有多個實例,例如多個CAN通道。對于這些多個實例必須映射到不同的端口上。
2.4 應用層模式管理的開發(fā)
基于模型的ECU軟件開發(fā)已被業(yè)界廣泛采用。在AUTOSAR環(huán)境中,一些成熟的商業(yè)軟件工具MATLAB / Simulink和TargetLink,可以通過應用軟件的SWC Arxml文件來提取端口原型和SWC描述文件中定義的可運行信息,并自動生成模型的模板。在模板中實現(xiàn)算法并自動生成可執(zhí)行代碼。在基于模型的應用程序軟件開發(fā)過程中,Matlab Simulink 或TargetLink導入SWC的Arxml描述文件,描述文件包括輸入和輸出以及軟件組件的內(nèi)部行為(Runnbale,Event)的描述信息。其一般是在架構工具中事先定義好,如下圖用SystemDesk設計了Indicatorlogic 組件,其包含了紅框中的設計要素。
圖5 APP SWC的組成要素
注:應用程序軟件模式管理器模塊為了處理與狀態(tài)相關的信息,應該配置傳遞模式信息的端口,并且應該配置包括定義的模式信息的模式描述組 (Mode Declaration),并將其映射到模式端口接口中。
3 基礎軟件模式管理模塊
模式管理功能集包括四個基本軟件模塊:? NM網(wǎng)絡管理,協(xié)調(diào)網(wǎng)絡節(jié)點的狀態(tài)。? ECU 狀態(tài)管理器,控制AUTOSARBSW 模塊的啟動階段,包括 OS 的啟動;? 通信管理器,負責網(wǎng)絡資源管理;? 看門狗管理器,基于應用軟件的生存狀態(tài)觸發(fā)看門狗。
3.1 網(wǎng)絡管理
網(wǎng)絡管理堆棧包括:
? 與總線無關的網(wǎng)絡管理接口模塊Nm
? CAN網(wǎng)絡管理模塊CanNm
? FlexRay網(wǎng)絡管理模塊FrNm
? UDP / IP /以太網(wǎng)網(wǎng)絡管理模塊UdpNm
LIN沒有網(wǎng)絡管理。Nm模塊的目的是為ComM模塊提供獨立于總線的接口。此外,Nm可以配置為NM協(xié)調(diào)器。如果連接了兩個或更多總線,則NM協(xié)調(diào)器將處理同步關閉。
3.2 ECU狀態(tài)管理器
ECU狀態(tài)管理器是一個基本軟件模塊,管理 ECU 的狀態(tài)(OFF、RUN、SLEEP),以及這些狀態(tài)之間的轉(zhuǎn)換(過渡狀態(tài):STARTUP、 WAKEUP、SHUTDOWN)。詳細地, ECU狀態(tài)管理器:
? 負責初始化和de-initialization所有基本軟件模塊,包括 OS 和RTE;
? 在需要時與所謂的資源管理器(例如,通信管理器)協(xié)作,關閉ECU;
? 管理所有喚醒事件,并在被要求時配置ECU 為SLEEP 狀態(tài)。
為了完成所有這些任務, ECU 狀態(tài)管理器提供了一些重要的協(xié)議:
? RUN 請求協(xié)議,調(diào)整ECU 是保持活動狀態(tài)還是準備關閉,
? 喚醒確認協(xié)議,從“不穩(wěn)定的”喚醒事件中區(qū)分出“真正的”喚醒事件, ? 時間觸發(fā)的增多非工作狀態(tài)協(xié)議(TimeTriggered Increased Inoperation - TTII),允許 ECU 更多地進入節(jié)能的休眠狀態(tài)。
ECU狀態(tài)管理器必須支持獨立的預處理動作和過渡,以啟動 ECU 或?qū)⑵滢D(zhuǎn)換到低功耗狀態(tài)(例如,休眠狀態(tài)/備用狀態(tài))。通過良好使用 ECU狀態(tài)管理器的特性和能力,此模塊能夠用于執(zhí)行電源消耗的預定義策略,因此提供了對 ECU 的有效能源管理。ECU狀態(tài)管理器的特性和優(yōu)勢包括:? 初始化和關閉基本軟件模塊。? ECU 主要狀態(tài)的標準化定義。? 時間觸發(fā)的更多非工作狀態(tài)。
3.3 看門狗管理器
看門狗管理器是 AUTOSAR(服務層次)的標準化基本軟件體系結構的基本軟件模塊。它監(jiān)控與計時約束有關的應用執(zhí)行的可靠性。分層體系結構方法使得應用計時約束和看門狗硬件計時約束分離?;诖?,看門狗管理器在觸發(fā)看門狗硬件的同時提供了對一些獨立應用的生存監(jiān)控??撮T狗管理器提供以下特性:
? 監(jiān)督多個處于ECU 的單獨應用,這些應用有獨立的計時約束并且需要特別監(jiān)督運行時的行為和生存狀態(tài)。
? 每個獨立的受監(jiān)控實體都有故障響應機制。
? 可以關閉對單獨應用的監(jiān)督,而不會違反看門狗觸發(fā)(例如,對于禁止的應用)。
? 通過看門狗驅(qū)動觸發(fā)內(nèi)部或外部、標準或窗口,看門狗。(internalor external, standardor window, watchdog)對內(nèi)部或外部看門狗的訪問由看門狗接口處理。
? 根據(jù)ECU狀態(tài)和硬件性能選擇看門狗模式(OffMode, Slow Mode, Fast Mode)。
3.4 通信管理器
通信管理器收集并協(xié)調(diào)來自通信請求者(用戶)的訪問請求。通信管理器的目的是:
? 簡化通信協(xié)議棧的使用。包括通信棧的初始化,以及簡單的網(wǎng)絡管理。
? 調(diào)整ECU 上多個獨立軟件組件的通信棧(允許發(fā)送和接收消息)的可用性。
? 暫時禁止發(fā)送消息以阻止ECU(主動地)喚醒物理通道。
? 通過為每個物理通道實現(xiàn)一個狀態(tài)機來控制ECU 的多個物理通道。
? 可以強制ECU 保持物理通道處于“ silent 通信”模式。
? 分配所請求的通信模式需要的所有資源,簡化資源管理。
通信管理器定義了“通信模式”,表示一個特定的物理通道對于應用是否可用,以及如何使用(發(fā)送/接收,只接收,即不發(fā)送也不接收)
4 COMM 管理模塊示例
ComM模塊是對總線通信系統(tǒng)的控制的抽象。當模塊User配置和訪問網(wǎng)絡總線通道(Channel ID),不必考慮網(wǎng)絡總線的類型(CAN,F(xiàn)lexRay,UDP / IP /以太網(wǎng)或LIN)。GONG中號:糖果Autosar 注:模塊User包括:
-
請求通信的ECUM/BSWM 模塊, 例如:Can控制器檢測到喚醒后,BSWM通過模式端口請求打開通信。 -
應用層軟件組件。
對于CAN,CANIF ,CANSM,COMM的每個模塊都維護著自己的狀態(tài)機。而對于每個網(wǎng)絡通道,ComM模塊中的狀態(tài)機具有以下狀態(tài):
?完全通信(根據(jù)NM報文狀態(tài),包含相應子狀態(tài):準備睡眠,請求打開網(wǎng)絡通信)
?靜默通信。
?無通信。
每個狀態(tài)的通信行為都不同。如下表所示:
關于網(wǎng)絡管理,如果COMM_NM_VARIANT變體是Full,Com通信模式的改變會相應的去調(diào)用COMM_NM_NETWORKREQUEST或COMM_NM_NETWORKRELEASE實現(xiàn)是否同步喚醒和休眠 。在COMM_NM_LIGHT_VARIANT和COMM_NM_NONE_VARIANT變體時不進行同步。
4.1 CAN 全速通信的模式的實現(xiàn)示例
以CAN 全速通信為例,程序流如下圖:
4.2 Can總線狀態(tài)檢測實現(xiàn)示例
再如下圖的CAN通信的傳輸模式系統(tǒng),CanSM管理MCU中CAN硬件的初始化以及諸如總線BUS OFF之類的模式狀態(tài)。BswM通過CanSM監(jiān)視CAN的通信狀態(tài),并在需要通信時請求COM模塊激活相應的Pdu組,從而啟用通信。在總線的BUS OFF狀態(tài)下,請求停用PduGroup以停止傳輸。
圖7 Can通信傳輸模式的設置
其中基于CAN 模塊的BSWM模式管理器的詳細的狀態(tài)機如下圖所示:
圖8 基于CAN 模塊的BSWM模式管理器的狀態(tài)機
有很多讀者給我留言,希望我做一個完整的AUTOSAR系列課程。我以后按照下面的目錄系統(tǒng)地介紹Autosar各個模塊.
AUTOSAR基礎培訓:
內(nèi)容:1)AUTOSAR概述和目標
2)AUTOSAR簡介
3)AUTOSAR應用層
4)AUTOSAR RTE(運行時環(huán)境)
5)AUTOSAR BSW(基本軟件)
6)AUTOSAR的方法論
7)AUTOSAR 的移植
AUTOSAR進階培訓:
1)操作系統(tǒng) :>基本了解AUTOSAR操作系統(tǒng)的介質(zhì)和機制>任務,警報,事件等>AUTOSAR OS可擴展性類別
2)軟件組件:>RTE >軟件組件,端口,連接,任務映射和RTE生成的設計
3)輸入和輸出:>與I / O模塊的數(shù)據(jù)交換>I/ O模塊基礎軟件的配置
4)通信:>通過CAN進行數(shù)據(jù)交換>通訊模塊的基礎軟件的配置
5)狀態(tài)管理和系統(tǒng)服務: >ECU睡眠和喚醒和總線 > ComM,EcuM和BswM模塊的作用>在基本軟件中配置模式管理器模塊
6)總線系統(tǒng) :>了解總線系統(tǒng)的概念差異以及配置的重要性> CAN,LIN,F(xiàn)lexRay,以太網(wǎng)的介紹
7)非易失性內(nèi)存訪問:>訪問非易失性存儲器>非易失性存儲器訪問的基本軟件配置
8)診斷:>使用AUTOSAR診斷 >配置診斷基本軟件
堅持是一種信仰,專注是一種態(tài)度
歡迎支持原創(chuàng),歡迎打賞點在看。
OS-Protection -Timing Protection
免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!