高階自動駕駛中央網域控制器的設計流程需要充分掌握其中的安全設計原則,因為在前期設計中,無論是架構、軟體、硬體或通訊都是需要充分掌握其設計規則才能充分發揮出相應的優勢,同時規避掉一定的設計問題的。
這裡我們講的高階網域控制站功能安全設計主要是指包含前端研發中預期功能安全所涉及的場景分析和後端功能安全所涉及的所有子項。首先以硬體基礎層面為連接基點,透過資料通訊端實現整個系統架構通訊、資料流傳輸,軟體則是燒錄到硬體上,以硬體為載體,通訊單元負責相互之間的模組呼叫。因此對於網域控制器的安全設計端來說。從整車安全能力分析來看,主要的分析過程也包括以下三個面向:系統理論分析 STPA(Systems Theoretic Process Analysis)、失效模式與影響分析FMEA、故障樹分析(Fault Tree Analysis, FTA) 。
對於架構核心中的網域控制站來講,其中涉及到非常強大的功能安全等級。我們可以整體分為三個層面:資料通訊安全、硬體基礎安全、軟體基礎安全三個層面。而具體到相應的分析過程卻需要充分考慮到包含硬體基礎層面功能安全、軟體基礎層面功能安全以及資料通訊能力等幾個方面,且每個方面的分析都需要面面俱到。
通訊端作為連接和資料流入流出端,對整個系統架構通訊起著舉足輕重的作用,對於資料通訊層面來說,其功能安全需求主要指通用資料完整性機制、線上計數機制(Rolling Counter)、系統診斷資料刷新、時間戳資訊(Time Stamp)、時間溢位(CheckSum)、管理授權代碼、數據冗餘、網關等幾大方面。其中,對於資料通訊來講,諸如線上計數、診斷、時間溢出校驗等都和傳統的點對點Canbus訊號是一致的,而對於下一代自動駕駛來說,資料冗餘、中央網關管理最佳化、資料授權訪問等則是需要重點關注的面向。
他們在功能安全的整體需求如下:
硬體基礎層面的功能安全需求主要是指微控制器模組、儲存模組、電源支援、串列資料通訊等幾大模組。
這裡的微控制器也就是我們常說的AI晶片(SOC)、浮點運算晶片(GPU)以及邏輯運算晶片(MCU)幾個運行於車端域控制器的主要運算單元。從功能安全設計的角度上講,各類不同的微控制器模組包含通用設計模組、鎖步核校驗(包含鎖步核比較、鎖步核自檢)、時鐘校驗(包含時脈比較、時鐘自我檢測)、程式流程監控、心跳監控、硬體看門狗功能、中斷保護、記憶體/快閃記憶體/暫存器監控/自我檢測、電源監控和自我檢測、通訊保護等幾大面向。
需要說明的是微控制器應透過硬線向監控單元提供「活動心跳」週期性切換訊號。切換訊號應由安全看門狗管理,該看門狗還提供程式流監控功能。僅允許安全看門狗在看門狗服務期間切換「活動心跳」。微控制器安全軟體則應在每次為內部安全看門狗服務期間切換“活動心跳”,這向監控單元指示微控制器正在運行並且安全看門狗定時器正在運行。系統後台應透過檢查訊號切換和高低狀態的時間都在有效範圍內來監控「活動心跳」切換訊號。一旦偵測到「活動心跳」故障,SMU 將啟動安全降級。
對於看門狗程式來說,應在系統初始化期間進行測試,以避免潛在的故障。過程中應測試以下故障類型:
- 不正確的看門狗觸發時間(在關閉視窗中觸發);
-沒有看門狗觸發;
儲存模組是整個域控不可或缺的一部分,在整個晶片運算過程中,主要用於進行臨時性、常用的文件存儲,以及運算過程中的數據交換,比如我們的操作系統啟動程序就是存放在一個SOC/MCU外掛的存儲單元中,又如我們下一代自動駕駛產品中必須用到行車/泊車高精地圖,通常也是外掛於晶片的儲存單元進行儲存的,還有一些底層軟體中的診斷、日誌類別的檔案也是放到我們外掛的晶片中進行儲存的。那麼對於整個儲存單元而言,需要滿足什麼樣的條件才能確保達到適當的功能安全條件呢?如下圖做具體說明。
整個儲存單元的安全性主要包括暫存器監控、通用儲存單元、RAM/記憶體ECC、ECC自我檢測、快閃記憶體冗餘、暫存器寫入保護、範圍保護、暫存器自檢等多個方面。
#電源供應的完整性安全方法測試主要是透過對整個電源運轉狀態的。透過故障注入,並即時監測來進行的。
一種測試方法範例是配置較高或較低的監控閾值,以強制監控器偵測欠壓或過壓故障並驗證是否正確偵測到故障。注入故障時,電源監視器應啟動輔助關閉路徑。微控制器應監控輔助關斷路徑,如果輔助關斷路徑的行為與預期的測試程序一致,則僅考慮測試“通過”,否則視為“失敗”。一旦偵測到失敗,微控制器將啟動安全降級。此測試可由專用 BIST 功能支持,並且必須由微控制器軟體根據詳細程序進行配置。
#關於軟體基礎安全層面的設計考慮,主要是對車載智慧駕駛軟體開發過程中可能出現的軟體故障進行的綜合考量。其中包括軟體文件設計、軟體語言和風格、安全關鍵變數、故障探測和糾錯、軟體架構、安全關鍵程式碼、程式流程監控、變更管理等幾個大面向。所有層面的軟體設計描述應使用自然語言,以定義模型或程式碼目的。例如,當多個變數間的獨立性對系統的安全至關重要時,不應將這些變數組合為一個使用變數公共位址的資料要素。這可能導致涉及結構中所有要素的共模系統性失效。如果變數已經分組,則應針對安全關鍵函數進行恰當論證。
本文從功能安全的角度出發,從各個不同的面向詳細分析了整個自動駕駛網域控制器設計綜合要素及流程。其中,包含硬體基礎、軟體方法、數據通訊等各個面向。這些功能安全設計能力都是在關注整個架構層面的同時,充分關注其內部各個部件之間的聯繫,確保設計過程的合規性和完整性,避免在設計後期出現不可預估的後果。因此,作為詳細的安全設計細則,可以為開發工程師提供必要的參考。
以上是一文聊聊高級自動駕駛網域控制器功能安全設計的詳細內容。更多資訊請關注PHP中文網其他相關文章!