本系列學習筆記基於 AUTOSAR Adaptive Platform 官方文檔 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf。作者:Zijian/TENG
原文地址(獲取最新更新):https://www.cnblogs.com/tengzijian/p/15221138.html
縮寫
- TS:Time Synchronization
- TBR:Time Base Resources
- StbM:Synchronized Time-base Manager
- NM:Network Management
- SM:State Management
- PN:Partial Network
11 時間同步
各個模塊之間的時間同步非常重要,需要統一控制時間,於是有了全局時間管理模塊 StbM。其主要功能:
- 同步各軟件模塊
- 提供絕對時間
補充閱讀:基於 AUTOSAR 的時間同步
11.1 概覽
不同應用/ECU之間的時間同步(TS)非常重要,尤其是在分布式系統中,需要確定不同事件的相關性時:要么能及時追蹤這些事件,要么能在精確的時間點觸發這些事件。
因此,AP 向應用提供了時間同步 API,用於取得和其他實體、ECU 同步的時間信息。
時間同步功能由不同的時基資源(TBR,Time Base Resources)提供,時基資源在系統中以預編譯配置的形式呈現。
11.2 設計
AP 中用到下列三種技術來滿足時間同步需求:
- CP 中的 StbM
- chrono 庫 - C++11 的
std::chrono
或boost::chrono
- POSIX 時間接口
經過對這些模塊的接口和其所覆蓋需求的分析,AP 決定設計一套包含 CP StbM 功能,但遵循 std::chrono 風格的時間同步 API。
時間同步模塊考慮了以下功能:
- 啟動行為
- 構造行為(初始化)
- 正常操作
- 錯誤處理
今后的 release 中還會考慮:
- 關閉行為
- 錯誤分類
- 版本檢查
11.3 架構
對每個時基資源 TBR,應用都可以訪問其特定的類實現。
通過該句柄,應用可以查詢提供的時基類型(上述五種類型之一),然后獲取該時基類型的特定類實現。應用還可以通過該句柄直接創建 timer。
TS 模塊不提供將 TBR 和其他節點/ECU 時基同步(如 network time protocol 或 time agreement protocol)的方法。
時基資源 TBR 的實現可能有一個專門的周期性的功能,從時間同步以太網等模塊取得時間信息,來同步 TBR。
應用程序使用由 TBR 提供和管理的時間信息。TBR 充當時基代理,提供對同步時基的訪問。這樣 TS 模塊從“真實”時基提供者中抽象出來。
12 網絡管理
12.1 網絡管理算法概覽
AUTOSAR NM 基於去中心化的網絡管理策略,即每個網絡節點僅依據接收/傳輸的 NM 報文,獨立地執行活動。
AUTOSAR NM 算法基於周期性的 NM 報文。NM 報文通過多播消息發送,集群中所有的節點都會接收。
收到 NM 報文意味着發送節點想要保持網絡集群處於喚醒狀態。如果某個節點想要進入睡眠模式,它會停止發送 NM 報文,但如果仍然收到來自其他節點的 NM 消息,則暫緩進入睡眠模式。最終如果所有的節點都不再發送 NM 報文(意味着所有節點都想進入睡眠模式),則經過一定時間(定時器超時),所有的節點都將進入睡眠模式。
如果 NM 集群中的任意節點需要總線通信,可以開始發送 NM 報文,喚醒整個 NM 集群。
12.2 架構
AP 規范描述了 AP 網絡管理的功能、API 設計和配置,無關底層通信媒介。目前只考慮了以太網,但該架構獨立於總線技術。
網絡管理 NM 旨在由狀態管理 SM 控制,因為部分網絡 PN 的控制需要協調相關應用集(通過 SM 控制的 Functional Group State)。本章內容尚未反映該設計。
其主要目的是協調底層網絡(局部網絡 PN,VLAN 或物理通道)在內部協調狀態機的正常模式和總線睡眠模式的轉換。
它向狀態管理 SM 提供了服務接口,用於請求/釋放網絡及查詢狀態。它協調不同實例(網絡句柄)的請求,並通過網絡提供聚合的機器請求。
如果使用了局部網絡 PN 功能,則 NM 消息可以包含 PN 請求,ECU 可以忽略請求其他 PN 的 NM 報文。在這種情況下,即使其他 PN 仍有通信,ECU 依然可以關閉或部分關閉。