前言
ETAS Deterministic Middleware Solution(EDMS,前身為AOS)確定性中間件解決方案,是一個中間件框架,旨在面向汽車領域內應用程序的獨特挑戰和需求,尤其是在高級駕駛輔助系統 (ADAS)和自動駕駛 (AD)的背景下,為開發人員提供了創建高性能和高安全性應用程序所需的工具、運行時環境和集成能力。
一
嵌入式實時系統中的確定性
什么是嵌入式實時系統的確定性
嵌入式實時系統中的確定性,是指系統行為在特定條件下的可預測性和可重復性。在確定性系統中,給定相同的初始狀態和輸入,系統將始終產生相同的輸出,并遵循相同的動作序列??深A測性在實時系統中尤為重要,必須在滿足時間要求的前提下執行任務,并確??煽壳艺_的操作。
什么是時間確定性
時間確定性是指系統行為相對于時間的可預測性和可重復性。當時序行為一致并且可以被精確預測時,系統被認為是時間確定的。
時間確定的系統行為所依賴的因素有:
1.固定的執行時間:
(Fixed Execution Time)
系統中的每個任務或進程都應該具有已知的固定執行時間。這確保完成任務所需的時間是一致的,并且可以預測。
2.可預測的任務調度:
(Predictable Task Scheduling)
系統中使用的調度算法應該是可預測的,任務的執行順序應該是確定的。這有助于預測每個任務的執行時刻點和所需時長。
3.最低的中斷延遲:
(Minimal Interrupt Latency)
中斷是可以搶占系統正常執行流的事件。在確定性系統中,中斷延遲(中斷發生和處理開始之間的時間)應最小化并可預測。
4.一致的硬件性能:
(Consistent Hardware Performance)
系統的硬件組件,包括處理器、內存和外圍設備,應表現出一致和可重復的性能特征。硬件行為的可變性將會導致不確定的系統行為。
5.實時時鐘精度:
(Real-time Clock Accuracy)
系統中使用的實時時鐘的精度是一個重要環節。確定性系統需要穩定的時鐘源,并提供精確的計時,以確保精準的時序測量和任務調度。
6.確定性通信:
(Deterministic Communication)
在組件之間需要通信的系統中,通信協議應設計為具備確定性。其中包括有保證的遞送時間、有限的通信延遲和最小的抖動。
7.資源預留和分配:
(Resource Reservation and Allocation)
采用資源預留機制,比如為特定任務分配固定的時隙,可以確保任務在已知的時間范圍內接收所需的資源,進而有助于確定性行為。
8.避免非確定性延遲:
(Avoidance of Non-deterministic Delays)
為保持確定性行為,應盡量減少或謹慎管理非確定性延遲,例如不可預測的I/O訪問次數,或等待外部事件。
實現時間確定的系統行為是極為復雜的,但對于汽車控制系統、航空電子設備、醫療設備和工業自動化等領域,時間精度對安全和性能意義重大。
什么是數據確定性
數據確定性是指系統行為在數據處理方面的一致性和可預測性。具體而言,這意味著給定相同的輸入數據集,并假設在相同的初始條件和執行環境情況下,系統將一致且可預測的產生相同的輸出。
嵌入式實時系統中所謂的數據確定性,包含如下方面:
1.一致的數據處理:
(Consistent Data Processing)
嵌入式系統通常處理傳感器數據、控制信號及其他類型的輸入。數據確定性確保了對此類數據處理的一致性,從而在相同情況下對相同輸入產生相同結果。
2.確定性算法:
(Deterministic Algorithms)
用于數據處理的算法應設計為具備確定性。假使系統依賴于非確定性算法,則即使在相同的輸入數據下,結果也可能不同,會引入不確定性,難于滿足實時約束條件。
3.避免不確定元素:
(Avoidance of Non-deterministic Elements)
不確定元素(如隨機數生成器、異步外部事件或不可預測的中斷處理),會在數據處理中引入可變性。在嵌入式實時系統中,通常試圖最小化或謹慎管理上述不確定元素。
4.可復現性:
(Reproducibility)
可復現性是數據確定性的關鍵特性之一。在需要測試、調試或驗證系統的場景中,數據確定性的系統行為能夠實現一致的復現、診斷和驗證問題。
5.實時約束:
(Real-time Constraints)
滿足實時約束不僅需要確定的時序行為,還需要確定的數據處理。例如在控制系統中,決策基于傳感器數據,數據處理的確定性對于在指定的時間范圍內實現正確的系統響應至關重要。
6.確定性通信協議:
(Deterministic Communication Protocols)
嵌入式系統中組件之間的通信可能涉及數據交換。使用確定性的通信協議可以確??煽壳铱深A測的傳輸和接收數據,將有助于實現整個系統層面的確定性。
7.驗證和確認:
(Validation and Verification)
在安全關鍵型應用中,驗證和確認過程依賴于數據處理的可預測性和一致性,確保數據確定性關乎于證明系統的正確性。在嵌入式實時系統中實現數據確定性需要仔細考量軟件和硬件兩方面,這需要將算法、數據結構和通信機制設計為具備確定性,并且通常還會涉及處理系統中的不確定性來源。
EDMS中的確定性
使用EDMS構建的ADAS/AD系統引入了數據確定性這一概念,因為系統行為在數據處理方面的一致性和可預測性,對于驗證系統的正確性有突出的意義。
下面將分別介紹ETAS確定性中間件,EDMS中的調度機制,以及確定性重算如何加速ADAS/AD開發。
二
EDMS中的調度機制
——在延遲和可預測性之間實現最優權衡
什么是調度
在汽車嵌入式軟件這個范疇,調度是指對于需要由嵌入式系統執行的任務和進程,確定執行順序和時間的過程。汽車嵌入式系統通常具有嚴格的實時要求,必須在特定的時限內完成任務,以確保車輛功能的正常運行。
為什么需要調度
汽車嵌入式軟件中的調度對于確保系統的安全性、可靠性和可預測性有著重要意義。調度有助于滿足各種汽車應用程序所附加的時間約束,適當的調度技術對于確保關鍵任務在特定時間內執行,以及系統在所有操作條件下的可靠運行來說是至關重要的。
數據驅動型調度
數據驅動調度是一種基于數據和運行時信息做出任務執行決策的方法,而不是僅僅依賴于預定義的優先級和固定的調度表。
時間驅動型調度
時間驅動調度是一種基于預定義調度表來執行任務的調度方法,通常在運行之前就已確定。在時間驅動的調度中,任務被分配特定的時隙或間隔,在這些時隙或間隔內,期望任務被執行。
ADAS/AD功能的典型架構
大量傳感器(例如攝像頭、雷達、激光雷達、超聲波傳感器)產生高負載的測量數據。
處理傳感器數據,檢測和提取對象,并將數據傳輸到坐標系。這期間需要使用帶有微處理器(uP)和硬件加速器(HWA)的系統級芯片(SoC)。
之后對預處理的傳感器數據進行融合(Sensor fusion),形成周圍空間的整體畫面。并以此,計算駕駛場景(Planning)。
最終在激活執行器之前,同步計算得出的駕駛動作。這通常需要基于微控制器(uC)。
選擇最佳調度機制
基于ADAS/AD系統的架構,不同的子系統對其調度有不同的要求:
包括特征提取的感知是傳感器驅動的。對于此類任務,事件驅動型調度最適合,可以提供低延遲。
傳感器數據融合和規劃是執行器驅動的。對于此類任務,時間觸發激活最適合,因為可以確保執行的高可預測性,這對于預期功能的安全性(SOTIF)至關重要。
基于EDMS的系統中的調度
為了滿足ADAS/AD系統的調度需求,EDMS支持時間和數據兩種類型觸發的活動(Activities)。
確保數據一致性
為了確保數據一致性,EDMS實施了如下概念:
活動開始時凍結輸入數據:活動的輸入數據是固定的,并且在活動開始后保持不變。
延遲到活動結束時輸出數據:活動生成的輸出數據將被保留,并且在活動完成之前不會對外釋放。
一個活動中的全部數據或無數據對另一個活動可見:活動之間的數據可見性遵循全有或全無的方式,這意味著一個活動的所有數據都可以被另一個活動訪問,又或者是任何數據都不能被訪問。
如果活動正在運行,則延遲激活(無并行執行):如果當前有另一個活動正在運行,活動的激活將延遲,以確?;顒硬粫⑿袌绦小?/p>
基于EDMS的系統的特性
基于EDMS的系統在延遲和可預測性之間提供了最優折中,
狀態比純數據驅動的系統少得多:與純數據驅動的系統相比,基于EDMS構建的系統具有明顯少的可能狀態。
延遲比純時間驅動的系統低得多:基于EDMS構建的系統中的延遲比完全由時間驅動的系統要低很多。
基于EDMS的系統中的確定性
由于調度和計算的抖動,活動組成的系統不是完全時間確定的:調度和計算的抖動在系統中引入了非時間確定性行為。
然而,基于EDMS的系統能夠對以下方面提供可復現的行為:
軟件鎖步(實時):系統可以在運行中實現同步、鎖步執行軟件中的活動(軟件鎖步)。
完全相同的重新計算:系統可以通過重算來復現完全相同的結果,確保開發相關場景的一致性,例如使用取證重算(Forensic Recompute)或驗證,進行問題分析和調試。
三
確定性重算和仿真駕駛
——加速AD開發的革命性概念
自動駕駛(AD)系統在充滿挑戰的復雜地形中導航,開發和測試依賴精度和可靠性。具有革命性的“確定性重新計算”(Deterministic Recompute),配合具有創新性的“仿真駕駛”(Virtual Drives),為驗證階段面臨的難題提供了強大的解決方案。
確定性重算和仿真駕駛
重算的核心任務,是由AD系統處理已記錄的或人工生成的數據。確定性重算能夠保證在給定相同輸入的情況下,輸出保持一致。基于這一功能特性,仿真駕駛提供了一個模擬環境來復制真實世界的駕駛場景,創建一個用于測試的受控數字空間,而無需進行廣泛的真實道路驗證。
ROS中的非確定性行為
機器人操作系統(Robot Operating System, ROS)是一個開源中間件框架,旨在開發機器人系統。在自動駕駛應用領域,ROS通常用于預開發車輛系統的各個組件,如感知系統(攝像頭、激光雷達、雷達)、控制系統或路徑規劃算法。
雖然ROS提供了開發ADAS/AD系統所需的諸多關鍵功能,但使用相同的輸入數據進行重新計算,系統可能會輸出不同結果。
EDMS中的確定性行為
作為ETAS確定性中間件解決方案,EDMS是專為ADAS/AD系統的開發而設計的。
使用相同的輸入數據重新計算將提供相同結果。
確定性與非確定性系統行為示例對比
確定性重新計算的應用
通常來說,確定性重新計算有三個主要應用:
問題分析/調試(Problem Analysis / Debugging)
功能開發(Function Development)
基于仿真的驗證(Simulation-based Validation)
問題分析/調試:
在發生現場問題時,確定性重算和仿真駕駛的聯合使用,允許開發人員在其桌面電腦的開發環境上即可復現問題缺陷。這種取證功能簡化了問題調查,有助于調試和快速故障定位。
功能開發:
在仿真駕駛的環境下,確定性重算使開發人員能夠快速分析新功能以及軟件更改,縮短反饋周期并加速開發過程。這種組合確保了與虛擬環境的無縫集成,以進行精確測試。
基于仿真的驗證
持續驗證依賴于穩健的回歸測試。確定性重算和仿真駕駛協作,以便于對每個軟件更改進行大規模、可重復的回歸測試。這不僅確保了軟件可靠性,還可與更廣泛的驗證和確認(V&V)策略無縫協同。
確定性重算和仿真駕駛的意義
在安全關鍵型的汽車行業,遵守ISO 26262和ASIL–D標準是毋庸置疑的。確定性重算和仿真駕駛全面解決了這一需求。實時執行,配合大量數據的處理和長時間的記錄,這些都是仿真測試不可或缺的工具。
確定性重算和仿真駕駛協同的意義將不僅限于滿足仿真測試的要求。通過再現系統內部數據取代了存儲大量數據集,不僅優化了測試過程,還最大限度的減少了數據存儲需求,在加速AD系統開發領域這是一個關鍵里程碑。
審核編輯:劉清
-
傳感器
+關注
關注
2551文章
51099瀏覽量
753570 -
處理器
+關注
關注
68文章
19286瀏覽量
229841 -
嵌入式系統
+關注
關注
41文章
3593瀏覽量
129473 -
自動駕駛
+關注
關注
784文章
13812瀏覽量
166457 -
ADAS系統
+關注
關注
4文章
226瀏覽量
25697
原文標題:簡析EDMS中的確定性
文章出處:【微信號:ETASChina,微信公眾號:ETAS易特馳】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論