AUTOSAR中的硬件診斷技術

在《Overview of Functional Safety Measures in AUTOSAR》文檔中,提到了AUTOSAR架構中的兩種硬件診斷技術,Core Test和RAM Test。本文介紹這兩種診斷技術以及它們與ISO26262的聯系。


Core Test 內核測試

Core Test用于測試處理器內核組成的各個單元失效,如通用寄存器、ALU、MMU/MPU等。處理器內核測試部分屬于AUTOSAR的Basic software module,可以直接訪問微控制器內核,沒有中間間軟件層。

內核測試對芯片內部的不同單元分別測試,測試要求與被測單元對應關系如下:

ID
處理單元組成
內核測試要求
001
ALU數據路徑
內核ALU測試
002
Registers (通用寄存器庫,DMA tran-sfer registers…), 內部RAM
內核寄存器測試
003
地址計算(加載/存儲單元、DMA尋址邏輯、存儲器和總線接口)。
內核地址生成器 
內核內存接口 
內存管理/保護單元(MMU/MPU)
高速緩存控制器
004
中斷處理
內核中斷和異常檢測
005
控制邏輯(序列器、編碼和執行邏輯,包括標志寄存器和堆棧控制)
-
006
配置寄存器
-
007
其它類別的元素
-


Core Test的局限性:

  • Core Test是對處理器內核的硬件資源進行測試,與硬件處理器底層相關密切,無法與AUTOSAR其它軟件任務和硬件實體共享CPU,或者僅限于共享不共用的測試資源(ALU和CPU寄存器)。由于這種限制,可能Core Test會被限制僅在上電/啟動時運行。
  • AUTOSAR對處理器內核各單元無法做到全面的覆蓋測試,Core Test對硬件資源進行分時分片進行測試,無法檢測soft error,例如當其它軟件任務調用ALU或讀寫寄存器發生了瞬態故障,Core Test檢測不到,需要補充其它檢測方法。
  • Core Test不能可靠地報告檢測到的故障,存在處理器本身就發生了故障,因此不能將故障報給診斷事件管理器(DEM)
  • 需要創建如硬件資源訪問管理的任務對Core Test任務進行管理。


AUTOSAR中的硬件診斷技術的圖1

Core Test任務的周期調度

AUTOSAR中的硬件診斷技術的圖2

Core Test任務拆分的子任務需要高優先級,禁止其它中斷

此外,Core Test軟件模塊還要依賴于上層軟件架構來保證該軟件模塊的運行和輸出結果的正確性,采用

  • 校驗和和簽名保護
  • 使用前檢查Core Test Code完整性
  • 校驗和/簽名的冗余存儲
  • 測試結果的外部決策執行


與Core Test有關的調用邏輯有:

  1. 初始化:用于對Core Test軟件模塊進行初始化

AUTOSAR中的硬件診斷技術的圖3

2.取消初始化:取消Core Test模塊的初始化

AUTOSAR中的硬件診斷技術的圖4

3.1 后臺運行測試——Core Test模塊在后臺運行測試

AUTOSAR中的硬件診斷技術的圖5

3.2 后臺運行測試——Core Test模塊提供給調用實體的簽名,可以用于調用方驗證Core Test軟件模塊的完整性

AUTOSAR中的硬件診斷技術的圖6

RAM Test RAM測試

RAM Test功能用于測試易失性存儲器RAM的永久性失效,RAM測試部分屬于AUTOSAR的Basic software module,可以直接訪問微控制器內核,沒有中間間軟件層。

存在不同的軟件算法用于RAM測試,不同算法針對的故障模型集不同,實現不同等級的覆蓋率,運行時間也不同。AUTOSAR沒有指定特定的RAM測試算法,根據ISO26262-11對RAM的推薦診斷方法,有以下診斷技術可選:

AUTOSAR中的硬件診斷技術的圖7
AUTOSAR中的硬件診斷技術的圖8

RAM測試驅動程序支持被稱為"前臺測試"的同步測試和被稱為"后臺測試"的異步測試。在RAM測試算法的執行過程中,不允許其他軟件修改被測試的RAM區域。
RAM Test的局限性:

  • 無法檢測瞬態錯誤,可以用來檢測上電和周期運行時的永久性錯誤,瞬態錯誤和間歇性soft error無法檢測
  • RAM Test執行過程中,不允許其它軟件和硬件修改被測試的RAM區域,RAM測試模塊不能保證數據的一致性,運行過程中禁止其它任務訪問被測試的RAM地址塊
  • 由于RAM Test會讀寫被測RAM區域,將導致被測RAM區域的數據內容被破壞,應考慮在測試前將被測RAM數據搬到其它RAM區域
  • 當在多核系統中測試共享RAM時,可能無法通過中斷鎖定多個內存單元的獨占訪問,這種情況下,共享內存的測試配置使用僅限于前臺測試和特定ECU狀態


與RAM Test有關的調用邏輯有:

完整的調用過程:初始化、前臺運行完整測試請求、錯誤報告和循環調用后臺測試

AUTOSAR中的硬件診斷技術的圖9

后臺調用過程,增加了掛起和恢復交互

AUTOSAR中的硬件診斷技術的圖10

總結

Core Test和RAM Test屬于功能安全系統設計中底層的診斷技術,在ISO26262中有專門的技術條款要求,用于處理器內部各單元和RAM測試,參考AUTOSAR功能安全機制中對這兩項硬件診斷技術的需求,使我們更易于理解Core Test和RAM Test的基本要求、測試過程和技術局限性,歸納下來有以下幾點:

  • 用于測試永久性錯誤,無法檢測soft error;
  • 具有硬件獨占性,需要調度器協調與其它軟件任務,避免破壞正常的CPU操作和數據區域;
  • 周期執行位于后臺運行,分段進行測試;
  • 根據ASIL等級的不同診斷覆蓋率要求,選擇適合的診斷算法。


至于具體算法的實現,不在AUTOSAR規定的范圍內,就要實現其軟件模塊的廠商各顯神通了,在項目開發,有以下建議方法:

  • 首先,需要選擇一種合適的符合ASIL等級要求的診斷算法,把算法原理搞清楚了,實現層面不是太復雜,但是需要開發工程師懂得所選擇硬件平臺CPU的底層編程語言,能夠對底層的寄存器進行操作;
  • 其次,完整的RAM測試占用的時間比較長,如果系統對上電時間要求嚴格,不建議上電進行完整的RAM測試,可以結合標準中推薦其它診斷方法;
  • 需要小心協調自檢算法與其它軟件任務的調度關系,正如AUTOSAR規范中所說,自檢算法具有獨占特性,處理不好把正常的數據區域破壞了,需要對算法進行全面的測試以保證其實現的正確性。
登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP