一、CP場景下的程序流監(jiān)控
CP場景下執(zhí)行程序流監(jiān)控的工作棧如圖2所示,包含軟件部分以及硬件部分。硬件部分就是通常所指的“硬件看門狗”,其本質(zhì)是個(gè)定時(shí)器,初始階段會(huì)被設(shè)置一個(gè)定時(shí)值,稱為“timeout”。硬件看門狗被使能工作之后,便會(huì)開始計(jì)時(shí),當(dāng)超過時(shí)間閾值,“timeout”沒有被重置(通常重置時(shí)間閾值的操作被稱為“喂狗”),硬件看門狗便會(huì)復(fù)位MCU,進(jìn)入安全狀態(tài)。
圖2 CP場景下的程序監(jiān)控工作流
程序監(jiān)控以及“喂狗操作”需要軟件部分的參與,軟件堆棧參考的是AUTOSAR CP架構(gòu),包含三個(gè)部分:WdgM、WdgIf以及Wdg Driver:
WdgM負(fù)責(zé)對(duì)軟件進(jìn)行監(jiān)控,如果程序運(yùn)行正確,則WdgM調(diào)用WdgIf提供的接口進(jìn)行“喂狗”,WdgIf進(jìn)一步調(diào)用Wdg
Driver提供的接口進(jìn)行“喂狗”,而最終的“喂狗”操作實(shí)際由Wdg Driver完成。
如果WdgM監(jiān)控到程序運(yùn)行錯(cuò)誤,則會(huì)引發(fā)相應(yīng)的故障處理措施:通常是停止喂狗或者將硬件看門狗的定時(shí)值置為0,引發(fā)看門狗的立即復(fù)位。接下來,對(duì)此三個(gè)軟件模塊展開詳細(xì)說明。
1、WdgM模塊
WdgM模塊的作用是監(jiān)控軟件是否正常運(yùn)行,如果軟件正常運(yùn)行,則WdgM調(diào)用WdgIf模塊提供的接口進(jìn)行喂狗;如果軟件運(yùn)行中出現(xiàn)錯(cuò)誤,則執(zhí)行相應(yīng)的錯(cuò)誤處理,主要包括:通過RTE將錯(cuò)誤通知給軟件,讓其執(zhí)行恢復(fù)處理、將錯(cuò)誤報(bào)告給DEM(Diagnostic Event Manager)模塊、停止喂狗、將timeout設(shè)置為0,MCU立即重置或發(fā)出中斷信號(hào)。
相應(yīng)術(shù)語解釋
(1)SE:Supervised Entities ,監(jiān)控實(shí)體
一種軟件實(shí)體,包括在WdgM的監(jiān)控之下。每個(gè)受監(jiān)控的實(shí)體只有一個(gè)標(biāo)識(shí)符。監(jiān)控實(shí)體表示軟件組件或基礎(chǔ)軟件模塊中的檢查點(diǎn)集合。在軟件組件或基礎(chǔ)軟件模塊中可能有零個(gè)、一個(gè)或多個(gè)受監(jiān)控的實(shí)體
監(jiān)控實(shí)體和AUTOSAR中的架構(gòu)模塊之間沒有固定的關(guān)系,即SW-Cs、CDDs、RTE、BSW模塊,但通常情況下,一個(gè)監(jiān)督實(shí)體可以代表一個(gè)SW-C、一個(gè)BSW模塊或CDD中的一個(gè)可運(yùn)行對(duì)象
(2)CP:Checkpoint,檢查點(diǎn)
被監(jiān)控實(shí)體中的一個(gè)點(diǎn),在那里活動(dòng)被報(bào)告給WdgM
1)三種監(jiān)控
WdgM監(jiān)控程序是否正常運(yùn)行主要包括三種類型:
- Alive supervision:程序是否周期運(yùn)行
- Deadline supervision:程序運(yùn)行時(shí)間是否正確
- Logical supervision:程序的執(zhí)行邏輯是否正確
2)本地狀態(tài)和全局狀態(tài)
本地狀態(tài)表示的是WdgM監(jiān)控的單個(gè)SE的程序運(yùn)行狀態(tài),主要包含以下幾種:
- 狀態(tài)一:OK:監(jiān)控的SE未出現(xiàn)三種監(jiān)控錯(cuò)誤
- 狀態(tài)二:FAILED:監(jiān)控的SE出現(xiàn)Alive錯(cuò)誤,且錯(cuò)誤沒有超過Alive錯(cuò)誤容忍值;同時(shí),SE沒有出現(xiàn)Deadline和Logical錯(cuò)誤
- 狀態(tài)三:EXPIRED:監(jiān)控的SE出現(xiàn)Deadline或Logical錯(cuò)誤,或者出現(xiàn)Alive錯(cuò)誤并且Alive錯(cuò)誤次數(shù)超出容忍值
- 狀態(tài)四:DEACTIVATED:SE程序流監(jiān)控沒有使能
圖3 本地狀態(tài)轉(zhuǎn)移關(guān)系
圖4 本地狀態(tài)轉(zhuǎn)移情況說明
全局狀態(tài)表示的是WdgM監(jiān)控的所有SE的狀態(tài)匯總,主要包含以下幾種:
- 狀態(tài)一:DEACTIVATED:全局狀態(tài)的初始值
- 狀態(tài)二:OK: 所有SE的狀態(tài)都為OK或者DEACTIVATED
- 狀態(tài)三:FAILED:至少一個(gè)SE的狀態(tài)為FAILED且沒有SE的狀態(tài)為EXPIRED
- 狀態(tài)四:EXPIRED:至少一個(gè)SE的狀態(tài)為EXPIRED且次數(shù)沒有超過監(jiān)控錯(cuò)誤容忍度值
- 狀態(tài)五:STOPPED:至少一個(gè)SE的狀態(tài)為EXPIRED且次數(shù)超過監(jiān)控錯(cuò)誤容忍度值
圖5 全局狀態(tài)轉(zhuǎn)移關(guān)系
圖6 全局狀態(tài)轉(zhuǎn)移情況說明
3)WdgM函數(shù)接口
圖 7 初始化WdgM模塊流程圖
圖8
WdgM_MainFunction與WdgM_CheckpointReached交互
2、WdgIf模塊
WdgIf模塊的功能是為WdgM與看門狗驅(qū)動(dòng)的交互提供函數(shù)接口。
3、Wdg Driver模塊
Wdg Driver模塊的功能是與看門狗硬件通信,負(fù)責(zé)實(shí)際的喂狗操作。
二、AP場景下的程序流監(jiān)控
AP場景下實(shí)現(xiàn)程序流監(jiān)控如圖9所示,也包含軟件部分和硬件部分。軟件部分主要是AUTOSAR-AP協(xié)議棧的PHM、SM、EM軟件模塊,硬件部分則是硬件看門狗。
AP場景進(jìn)行程序流監(jiān)控的相關(guān)術(shù)語、本地狀態(tài)和全局狀態(tài)、狀態(tài)之間的轉(zhuǎn)移關(guān)系和CP場景下的差不多,本文不再贅述。有區(qū)別的主要是執(zhí)行程序流監(jiān)控的軟件模塊和故障處理方式,接下來主要介紹這兩方面的內(nèi)容。
圖9 AP場景下的程序監(jiān)控工作流
1、AP軟件模塊
AP中和程序流監(jiān)控相關(guān)的主要軟件模塊是PHM、SM以及EM,具體來說,PHM負(fù)責(zé)執(zhí)行具體的程序流監(jiān)控,并基于監(jiān)控的結(jié)果決定和其它模塊的交互方式;SM負(fù)責(zé)狀態(tài)管理;EM根據(jù)SM的狀態(tài)切換請(qǐng)求執(zhí)行具體的狀態(tài)切換。
2、故障處理方式
程序執(zhí)行出現(xiàn)問題,存在三條故障處理鏈路。
鏈路一
PHM監(jiān)控到程序流出現(xiàn)問題,PHM報(bào)告給SM模塊,SM根據(jù)注冊(cè)的相應(yīng)故障處理程序進(jìn)行處理,包括停止出錯(cuò)的應(yīng)用程序;重啟出錯(cuò)的應(yīng)用程序以及重啟平臺(tái);
鏈路二
如果SM超時(shí)沒有將錯(cuò)誤處理的結(jié)果返回給PHM,PHM則直接將故障上報(bào)給EM,EM處理也分三種不同的級(jí)別:停止應(yīng)用程序、重啟應(yīng)用程序以及重啟平臺(tái);
鏈路三
如果EM出錯(cuò),沒有及時(shí)返回故障處理的結(jié)果,則PHM通知硬件看門狗復(fù)位整個(gè)平臺(tái)。
三、程序流監(jiān)控總結(jié)
程序流監(jiān)控的目的是避免程序在執(zhí)行邏輯以及執(zhí)行時(shí)序上出現(xiàn)非預(yù)期行為。程序流監(jiān)控由軟件來實(shí)現(xiàn)相應(yīng)的監(jiān)控邏輯,具體到CP以及AP端,采用的軟件模塊會(huì)有所不同,兩者相同的是都會(huì)采用硬件看門狗復(fù)位的方式來處理故障。
為了滿足功能安全的要求,僅僅了解不同監(jiān)控軟件模塊的功能以及硬件看門狗是不夠的,還需要結(jié)合具體的系統(tǒng)設(shè)計(jì)(例如故障處理時(shí)間間隔 Fault Handling Time Interval
,FHTI)來正確設(shè)置不同的軟硬件參數(shù),達(dá)到最優(yōu)的程序流監(jiān)控效果。
經(jīng)緯恒潤功能安全團(tuán)隊(duì)成立于2008年,系國內(nèi)較早從事功能安全技術(shù)研究的團(tuán)隊(duì)。作為功能安全、預(yù)期功能安全國家標(biāo)準(zhǔn)委員會(huì)成員,經(jīng)緯恒潤的研發(fā)流程、生產(chǎn)流程已通過功能安全開發(fā)過程認(rèn)證,功能安全開發(fā)過程達(dá)到ASIL-D,相關(guān)產(chǎn)品已成功服務(wù)于近百家國內(nèi)外整車及零部件企業(yè)。
經(jīng)緯恒潤功能安全軟件團(tuán)隊(duì)可提供功能安全軟件開發(fā)技術(shù)咨詢服務(wù),包括功能安全軟件階段流程/產(chǎn)品咨詢、L2監(jiān)控算法開發(fā)集成和L3安全機(jī)制(安全通信、隔離、監(jiān)控、執(zhí)行和芯片AOU)的開發(fā)集成,控制器覆蓋動(dòng)力域、底盤域、智駕域和車身域等。
未來,經(jīng)緯恒潤將緊跟行業(yè)發(fā)展趨勢(shì)和市場需求,結(jié)合自身汽車電子產(chǎn)品研發(fā)和國內(nèi)外咨詢實(shí)踐,一如既往地堅(jiān)持自主創(chuàng)新道路,為智能汽車安全保駕護(hù)航。