AutoSar之診斷事件管理②

​介紹下Dem的定義過程。

診斷事件管理(Dem)會處理和存儲SW-Cs和BSW模塊中檢測到的事件,並且存儲的事件信息通過其他BSW模塊或SW-Cs的接口獲得。下圖展示了Dem的配置:
在這裏插入圖片描述

Dem的定義

診斷事件可由Dem模塊處理的原子單元來定義。診斷事件的狀態代表監控的結果。Dem可以直接接收來自SW-C的監控結果,也可以通過RTE接收來自其他BSW模塊的監控結果。Dem模塊使用EventId管理系統診斷事件的狀態,並對單個測試結果執行所需的操作,例如存儲凍結幀。Dem模塊應該通過EventId或相關事件名來表示每個診斷事件。所有監控模塊和BSW模塊都使用EventId作爲符號事件名。Dem通過配置工具將符號名替換成數字。毋庸置疑,每一個EventId都是獨一無二的,Dem無法處理多個監控模塊共享一個ID的情況。

Dem模塊使用內部監控狀態來存儲報告事件的狀態。比如,向Dcm報告UDS狀態。

Dem模塊支持下圖所示的幾個特定事件的配置參數。
在這裏插入圖片描述
在這裏插入圖片描述

事件優先級

事件優先級即事件的重要性級別排序。它用於確定當存儲的事件數量超過最大內存條目數量時,可以從事件內存中刪除哪些錯誤條目(事件內存已滿)。每個支持的事件,都會對應一個表徵其優先級的參數DemDTCPriority,並且優先級越高,其值越小。

在這裏插入圖片描述

事件類型

對於BSW和SW-C的事件需要分別處理,所以Dem包含兩種事件類型:

BSW相關事件,報故障通過C-API接口:Dem_SetEventStatus;

SW-C相關事件,報故障通過RTE操作:SetEventStatus

這樣處理是非常有必要的,因爲BSW事件可能在完整的Dem初始化之前被報告,並且需要被緩衝。

在這裏插入圖片描述

事件存儲

參數DemMemoryDestinationRef定義了事件及其相關數據的專用存儲位置。“永久事件內存”是由相關的DTC類型派生出來的隱性類型。與排放相關的事件自動分配給永久事件內存,因爲事件的存儲作爲“永久DTC”是根據其當前狀態動態派生的。永久故障碼與排放對應事件的屬性有關,而不是與NvM進行的持久存儲有關,NvM對每種事件內存類型都進行持久存儲。對於Dcm-Dem接口,使用參數DTCOrigin來區分不同的內存區域。其目的是允許對不同的內存區域(主內存、用戶定義內存、永久內存和鏡像內存)進行特定的操作。

在這裏插入圖片描述

診斷監控

診斷監控是確定計算機適當功能的例行實體。此監控功能爲監視路徑標識特定的故障類型(例如對地短路、開路負載等)。監視路徑表示被監視的物理系統或電路(例如,傳感器輸入)。每個監視路徑都與一個診斷事件相關聯。如果監控器自行退出,那麼只有在合格的結果(通過或失敗)可用之後才調用報故障的API函數。然而,通常情況下,監視器總是調用Dem在計算上更有效,應該首選這種方法。因此,Dem處理未變化結果的報告是特定實現的。分配在DemComponent中的事件的優先級,以及DemComponent之間的依賴關係,用於過濾錯誤報告進入故障內存。

在這裏插入圖片描述

文章首發於微信公衆號“汽車控制與人工智能”,歡迎關注。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章