接上文:
AUTOSAR功能安全機制(一)內存分區與實現
2.3邏輯監控
邏輯監控是一種用于檢查軟件正確執行的技術,側重于控制流錯誤。
在應用程序的無差錯執行期間,控制流錯誤會導致與有效(即編碼/編譯)程序序列的背離。如果以不正確的順序處理一個或多個程序指令,或者甚至根本不處理,則會發生不正確的控制流。例如,控制流錯誤可能導致數據不一致、數據損壞或其他軟件故障。
2.3.1故障模式
根據ISO26262,以下與時序和執行相關的故障可被視為 SWC之間干擾的原因:
-
執行阻塞
-
死鎖
-
活鎖
-
執行時間分配不正確
-
軟件要素之間的同步不正確
程序序列的邏輯和時間符號在汽車行業中使用,例如在ISO26262中提到,作為檢測處理單元(即CPU,微控制器)故障的度量,以及作為檢測硬件時鐘故障的度量。
程序序列執行中的錯誤(即程序序列執行無效)可能導致數據損壞、進程崩潰或違反故障靜默。ISO26262、IEC61508、MISRA要求/建議對程序序列進行邏輯監控。
2.3.2描述
對程序執行序列的邏輯監控允許在應用程序的無差錯執行期間檢測導致與有效程序序列背離的錯誤。如果以不正確的順序處理單個或多個程序指令,或者根本沒有處理,則會發生不正確的程序流。
Watchdog Manager監控AUTOSAR ECU中應用軟件的執行。監控的邏輯單元稱為監控單元。在AUTOSAR中,受監控實體和AUTOSAR構建模塊之間沒有固定的關系。通常,受監控實體可以表示一個SWC或一個可運行的SWC、BSW模塊或CDD,具體取決于開發者的選擇。
與受監控實體中的邏輯監控相關的位置定義為檢查點。受監控實體的代碼與Watchdog Manager的函數調用交互。這些調用用于向Watchdog Manager報告已到達檢查點。
每個受監控實體都有一個或多個檢查點。受監控實體的檢查點和檢查點之間的過渡形成一個圖形。
圖形可以有一個或多個始檢查點和一個或多個終檢查點。假設檢查點屬于同一圖形,則從任何始檢查點開始到最后一個終檢查點結束的任何順序都是正確的。
受監控實體中的圖形,稱為內部圖形。來自不同監控實體的檢查點可以通過外部轉移連接,從而形成外部圖形。
圖11顯示了While-Loop的圖形表示形式,它由檢查點和轉移組成。
圖11:While-Loop的抽象控制流圖
在運行時,Watchdog Manager將驗證受監控實體是否根據配置的圖形執行。這稱為邏輯監控。
此外,Watchdog Manager可以驗證圖形中檢查點和轉移的時間。
檢查點之間的轉移時間可以通過時限監控進行驗證,而邏輯監控則驗證檢查點的正確順序。
2.3.3檢測與響應
在設計階段,將識別有效的程序序列并對其進行建模。在運行時,Watchdog Manager使用此模型來監控或監控序列的正確執行。
Watchdog Manager為時序和邏輯程序流監控提供了三種機制:時限監控、活體監控和邏輯監控。
監控機制是靜態配置的。對于受監控實體的監控,可以采用多種監控機制。
根據每個已啟用機制的結果,計算受監控實體的狀態(稱為“局部狀態”)。當確定每個受監控實體的狀態時,然后根據每個局部監控狀態,確定整個MCU的狀態(稱為全局監控狀態)。
根據每個受監控實體的局部監控狀態和全局監控狀態,Watchdog Manager會啟動一系列機制,以從監控失敗中恢復。這些范圍從受監控實體內的本地錯誤恢復到ECU的全局重置。
可以采用以下錯誤恢復機制:
-
受監控實體中的錯誤處理
如果受監控實體是SWC或CDD,則Watchdog Manager可以通過RTE模式機制通知受監控實體監控失敗。然后,受監控實體可以采取措施從該故障中恢復。
Watchdog Manager可能會在檢測到監控故障時向診斷事件管理器(DEM)注冊一個條目。受監控實體可能會根據該錯誤條目執行恢復操作。 -
分區關閉
如果Watchdog Manager模塊在位于不受信的分區中的受監控實體中檢測到supervision故障,則Watchdog Manager模塊可以通過調用BswM來請求分區關閉。
-
通過硬件看門狗重置
Watchdog Manager向看門狗接口指示看門狗接口何時不再觸發硬件看門狗。在硬件看門狗超時后,硬件看門狗將重置ECU或MCU。這導致ECU和/或MCU硬件的重新初始化以及軟件的完全重新初始化。
-
立即復位MCU
如果需要對監控故障立即做出全局響應,Watchdog Manager可能會直接導致MCU復位。這將導致MCU硬件和整個軟件的重新初始化。
注:AUTOSAR文檔“應用程序級錯誤處理說明”提供了有關錯誤處理的其他信息。在文檔中,解釋了如何執行錯誤處理以及可以從何處獲取所需數據(例如替代值)。此外,本文檔還提供了有關如何在 AUTOSAR中執行 OS-Applications/分區終止和重新啟動的詳細說明(用戶手冊)。
2.3.4限制
-
對于邏輯監控,Watchdog Manager不支持任何重疊的圖形-一個檢查點應屬于最多一個圖形。這是能夠將收到的檢查點通知分配給圖形所必需的。
-
Watchdog Manager不支持對并發執行的監控實體進行邏輯監控,因為它一次只跟蹤圖形的一個實例。
為了關閉或重新啟動(作為錯誤響應)包含受監控實體的分區,集成代碼( OS-Applications的重新啟動任務)必須通過調用Watchdog Manager的可用功能來停用(或停用+激活)所有受監控實體(或停用+激活)所涉及的分區。
轉自汽車電子與軟件