Adaptive AUTOSAR 學習筆記 4 – 架構
- 2021 年 7 月 14 日
- 筆記
- Adaptive AUTOSAR, AP, AUTOSAR, 汽車
本系列學習筆記基於 AUTOSAR Adaptive Platform 官方文檔 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf
縮寫
AP:AUTOSAR Adaptive Platform
AA:Adaptive Application
ARA:AUTOSAR Runtime for Adaptive Applications
FC:Functional Cluster
3 架構
3.1 邏輯視圖
3.1.1 ARA
下圖是 AP 架構的邏輯視圖。
- AA 運行在 ARA 之上
- ARA 由 FC 提供的接口組成
- FC 有兩種接口
- AP Foundation(API):提供 AP 的基礎功能
- AP Service:提供平台標準服務
- AA 也可以向其他 AA 提供服務(圖中的 Non-PF Service)
AA 不關心 FC 的接口是 Foundation 還是 Service,對 AA 來說都是 C++ 的接口,儘管底層確有不同。注意:ARA 接口之下,包括 ARA 庫(運行在 AA 上下文),可能用到了 ARA 之外的接口,這是由 AP 實現決定。
上圖的一些 FC 不在當前 Release 中,只是為了有個更好的 overall 架構。新的 FC 也可能會在之後的 Release 中加進來。
3.1.2 語言綁定,C++ 標準庫和 POSIX API
API 的語言綁定基於 C++,C++ 標準庫是 ARA 的一部分。系統 API 中,ARA 只包括 POSIX 的 PSE51子集(單進程 profile)的接口。
C++ 標準庫有很多基於 POSIX 的接口,包括多線程 API。但是,不要把 C++ 標準庫的線程接口和 PSE51 的線程接口混為一談。C++ 標準庫並沒有覆蓋所有 PSE51 的功能,比如設置線程調度策略。這時就不得不同時使用兩種接口。
3.1.3 應用啟動關閉
應用程序的生命周期是由 EM(Execution Management)管理的。啟動應用程序需要在系統集成或運行時進行配置。所有的 FC 在 EM 看來都是應用程序,都是由相同的方式啟動,除了 EM 自身(由 OS 啟動)。下圖是 AP 上不同的應用程序分類。
注意:什麼時候啟動/停止哪個應用不是 EM 決定的,而是另一個特殊的 FC,SM(State Management)決定的。SM 根據系統設計來控制 EM,切換系統狀態,進而控制着整個系統行為。這裡系統指的是整個 AP 和上面運行的應用程序,不同項目有不同的行為和具體實現。SM 也和其他 FC 交互,協調整個機器的行為。SM 應該只使用 ARA 定義的接口,以保證在不同 AP 實現上的可移植性。
3.1.4 應用程序接口
由於 PSE51 不含 IPC 接口,所以 AA 之間沒有直接的交互。Communication Management(CM)是唯一的途徑。CM 也提供面向服務的通信,支持同主機或跨主機通信(這部分差異對應用程序來說是不可知的)。CM 負責路由轉發「請求/回復」,無論 Service 應用和 Client 應用的部署拓撲是怎樣的。有的 ARA 接口可能觸發 AA 之間的交互,但這不屬於通信接口,只是 ARA 接口的副作用罷了。
3.1.5 非標接口
AA 和 FC 可以使用非標接口,只要不和標準 AP 功能衝突,並且遵守項目的 safety 和 security 要求即可。除非是純本地的運行時庫,應當盡量少用非標接口,以免影響移植到其他 AP 實現。
更多關於 Adaptive AUTOSAR 文章
//www.cnblogs.com/tengzijian/category/1995263.html