智能汽車(chē)功能安全軟件架構(gòu)
01 E-GAS 安全架構(gòu)思想
汽車(chē)功能安全旨在把電子電氣系統(tǒng)失效而導(dǎo)致的人身危害風(fēng)險(xiǎn)控制在合理范圍內(nèi)。下圖是常見(jiàn)的電子電氣系統(tǒng)硬件構(gòu)成圖,一個(gè)電子電氣系統(tǒng)的構(gòu)成要素,除了圖中可見(jiàn)的硬件外,也包含圖中不可見(jiàn)的軟件。
圖1 常用電子電氣硬件系統(tǒng)
電子電氣系統(tǒng)的失效,既包含由于軟硬件設(shè)計(jì)錯(cuò)誤引起的系統(tǒng)性失效,也包含由隨機(jī)硬件故障引起的失效。根據(jù)系統(tǒng)架構(gòu),需要設(shè)計(jì)各種安全機(jī)制去預(yù)防和探測(cè)功能故障,并能夠在故障發(fā)生時(shí),避免或者降低危害的發(fā)生。這就需要一個(gè)強(qiáng)壯的功能安全軟件架構(gòu)來(lái)管理和控制這些安全機(jī)制,降低功能安全整體開(kāi)發(fā)難度。
目前,E-GAS(Standardized E-Gas Monitoring Concept for Gasoline and Diesel Engine Control Units)無(wú)疑是當(dāng)前使用最為廣泛的一個(gè)安全軟件架構(gòu)方案。雖然 E-GAS 最初只是針對(duì)汽 / 柴油發(fā)動(dòng)機(jī)管理系統(tǒng)而提出的安全架構(gòu)方案,但是經(jīng)過(guò)簡(jiǎn)單的適配,也可以用于車(chē)身系統(tǒng),變速箱系統(tǒng)以及新能源的三電系統(tǒng)等,具有非常良好的擴(kuò)展性,應(yīng)用非常廣泛。
下圖是 E-GAS 的三層軟件架構(gòu)設(shè)計(jì)方案,從上到下,軟件分為 Level1~3 總共三層,Level1是功能實(shí)現(xiàn)層(function level),Level2 是功能監(jiān)控層(function monitoring level),Level3 是控制器監(jiān)控層(controller monitoring level)。該架構(gòu)形成了很好的分層監(jiān)視框架,并有效實(shí)現(xiàn)了功能安全分解,通常采用 QM(ASIL X) + ASIL X(ASIL X)的安全分解策略,即將功能實(shí)現(xiàn)軟件(Level1)按照 QM 等級(jí)開(kāi)發(fā),功能冗余軟件或安全措施(Level2、Level3)按照最高的要求等級(jí) ASIL X(ASIL X)進(jìn)行開(kāi)發(fā),這樣可以有效降低功能軟件的安全開(kāi)發(fā)成本。
圖2 E-GAS三層監(jiān)視架構(gòu)方案
Level1 功能實(shí)現(xiàn)層
Level1 是功能實(shí)現(xiàn)層,完成具體的功能實(shí)現(xiàn),比如對(duì)于電機(jī)控制器來(lái)說(shuō),這一層實(shí)現(xiàn)了將請(qǐng)求的扭矩轉(zhuǎn)換為電機(jī)的扭矩輸出。
Level2 功能監(jiān)控層
Level2 是功能監(jiān)控層,用于監(jiān)控 Level1 功能的運(yùn)行是否正常。Level2 的核心是設(shè)計(jì)一套方法去判斷Level1 的運(yùn)行是否正常。雖然判斷 Level1 運(yùn)行是否正常的方法,往往跟被監(jiān)控的功能相關(guān),不同被監(jiān)控功能有不同的判定方法,比如 : 通過(guò)軟件多樣化冗余。但也有一些適用范圍較廣的判斷方法,比如合理性校驗(yàn)。
圖3 合理性檢查
如上圖 所示,Level2 在使用合理性校驗(yàn)方法判斷 Level1 功能是否正常運(yùn)行時(shí),先根據(jù)傳感器輸入的信號(hào),計(jì)算控制量允許輸出的合理范圍,再計(jì)算從執(zhí)行器反饋的實(shí)際輸出量,最后判定 Level1 的實(shí)際輸出量是否在允許的合理范圍,如果超出了合理的范圍,則判定 Level1 功能異常,執(zhí)行錯(cuò)誤處理。
Level3 控制器監(jiān)控層
Level3 是控制器監(jiān)控層,主要由三部分功能構(gòu)成。
電子電氣系統(tǒng)硬件診斷:監(jiān)控電子電氣系統(tǒng)硬件故障,比如 : 控制器的 CPU 核故障、RAM 故障、ROM 故障等。
獨(dú)立監(jiān)控:控制器相關(guān)的故障發(fā)生后,此時(shí)控制器已經(jīng)無(wú)法可靠地執(zhí)行安全相關(guān)邏輯,為了保證安全性,需要外部額外的獨(dú)立監(jiān)控模塊,來(lái)確保即使 MCU 發(fā)生嚴(yán)重故障后,依然能夠進(jìn)入安全狀態(tài)。這個(gè)額外的獨(dú)立監(jiān)控模塊,通常是集成看門(mén)狗的電源管理芯片。
應(yīng)用程序流檢查:監(jiān)控 Level1 和 Level2 的監(jiān)控程序是否運(yùn)行正常。該監(jiān)控功能通過(guò)將程序流檢查和看門(mén)狗喂狗綁定實(shí)現(xiàn)。如果 Level1 和 Level2 相關(guān)的監(jiān)控程序沒(méi)有按照設(shè)定的順序運(yùn)行,或者沒(méi)有在規(guī)定的時(shí)間內(nèi)執(zhí)行,則程序流檢查失敗,無(wú)法正常喂狗,從而進(jìn)入系統(tǒng)安全狀態(tài)。
圖4 Level3功能框圖
02 國(guó)外功能安全軟件架構(gòu)發(fā)展情況
提到功能安全與軟件架構(gòu),我們可以從 “符合功能安全的軟件架構(gòu)” 和 “功能安全軟件架構(gòu)” 這兩個(gè)維度去看待它們之間的關(guān)系。
前者側(cè)重點(diǎn)是從軟件開(kāi)發(fā)角度看我們的軟件架構(gòu)設(shè)計(jì)過(guò)程對(duì)功能安全的符合性,也就是我們的軟件架構(gòu)設(shè)計(jì)過(guò)程需要滿(mǎn)足 ISO 26262 提出的各種要求,如:標(biāo)記方法、設(shè)計(jì)原則、設(shè)計(jì)要素要求、安全分析要求、錯(cuò)誤探測(cè)機(jī)制要求、錯(cuò)誤處理機(jī)制以及設(shè)計(jì)驗(yàn)證方法等,其中,軟件架構(gòu)層面的安全分析主流手段是“軟件 FMEA(Failure Mode and Effects Analysis)” 和 “軟件 DFA(Dependent Failure Analysis)” 。
后者側(cè)重點(diǎn)是從嵌入式軟件系統(tǒng)角度看對(duì)系統(tǒng)級(jí)功能安全的支撐。基于 E-Gas 安全架構(gòu)的思想,我們認(rèn)為 “分層監(jiān)視思想” 、“安全措施” 和 “診斷框架” 是 “功能安全軟件架構(gòu)” 的核心,“分層監(jiān)視思想”和 “安全措施” 在上文有說(shuō)明,本節(jié)接下來(lái)內(nèi)容主要圍繞 “診斷框架” 進(jìn)行說(shuō)明。無(wú)論我們使用的基礎(chǔ)軟件開(kāi)發(fā)平臺(tái)是 AUTOSAR CP、AP 或者是非 AUTOSAR,功能安全軟件架的設(shè)計(jì)思路是類(lèi)似的,這里基于 AUTOSAR CP 進(jìn)行說(shuō)明。
1) 功能安全診斷框架技術(shù)要求
圖5 故障響應(yīng)時(shí)間和容錯(cuò)時(shí)間間隔
我們結(jié)合 FTTI(故障容忍時(shí)間間隔,fault tolerant time interval)理解故障診斷過(guò)程。從故障發(fā)生到產(chǎn)生可能危害之間的這段時(shí)間就是 FTTI 時(shí)間,此期間主要有診斷測(cè)試、故障響應(yīng)過(guò)程,并且希望在產(chǎn)生可能危害之前進(jìn)入安全狀態(tài) ( 圖 4.1-8)。診斷測(cè)試過(guò)程需要考慮診斷測(cè)試觸發(fā)、故障確認(rèn)(去抖)等,
故障響應(yīng)過(guò)程需要考慮進(jìn)入合理的操作模式(如:Fail safe, Fail operational, Emergency operation 等)、故障存儲(chǔ)等。
綜上,“診斷框架” 的核心設(shè)計(jì)需要考慮覆蓋診斷測(cè)試、故障響應(yīng)過(guò)程。主要的功能安全診斷框架技術(shù)要求有:
- 故障統(tǒng)一管理:對(duì) E-GAS 多層監(jiān)視框架各故障監(jiān)視層上報(bào)的故障進(jìn)行狀態(tài)統(tǒng)一管理
- 故障響應(yīng)時(shí)間要求:故障檢出到進(jìn)入安全狀態(tài)需滿(mǎn)足故障容忍時(shí)間間隔(FTTI)的要求
- 獨(dú)立性要求:片上安全機(jī)制與功能存在共因問(wèn)題,需支持獨(dú)立性監(jiān)視(MCU 片外監(jiān)視)
- 多樣化要求:軟件架構(gòu)須滿(mǎn)足框架設(shè)計(jì)通用化和支持安全策略多樣化(不同項(xiàng)目對(duì)安全機(jī)制有不同要求)
- 診斷測(cè)試時(shí)機(jī):上下電,周期,條件觸發(fā)等
- 故障去抖 / 延時(shí)檢查:需支持安全機(jī)制的去抖測(cè)試功能,至少支持基于時(shí)間和基于計(jì)數(shù)去抖算法
- 診斷事件和功能解耦:診斷事件和功能獨(dú)立管理,之間存在映射關(guān)系
- 故障存儲(chǔ):支持故障信息非易失存儲(chǔ)
2) 國(guó)外診斷框架技術(shù)情況解讀
在對(duì)診斷框架技術(shù)展開(kāi)解讀之前,有兩個(gè)方面的建議供參考。
① 建議 1:根據(jù)需求確定診斷測(cè)試的時(shí)機(jī)
a. 上電時(shí):這里結(jié)合一個(gè)典型應(yīng)用需求進(jìn)行說(shuō)明。安全機(jī)制(safety mechanism)和對(duì)應(yīng)的功能構(gòu)成了雙點(diǎn),為了降低潛伏多點(diǎn)故障失效率,一般在系統(tǒng)啟動(dòng)階段(上電時(shí)),安全機(jī)制需要做自檢。此外,在多處理器系統(tǒng)中還需要考慮診斷測(cè)試同步問(wèn)題。
b. 運(yùn)行時(shí):一般分周期性診斷測(cè)試和條件診斷測(cè)試。診斷周期的定義需要考慮 FDTI(fault detection time interval)的約束,而條件診斷測(cè)試一般是發(fā)生狀態(tài)遷移時(shí)或在激活某個(gè)功能前對(duì)功能進(jìn)行的診斷。
c. 下電時(shí):可以選擇執(zhí)行一些比較耗時(shí)的測(cè)試,而測(cè)試結(jié)果一般放在下一次啟動(dòng)時(shí)處理。
② 建議 2:進(jìn)行分組診斷測(cè)試
為了便于診斷管理(包括診斷觸發(fā)和故障響應(yīng)等),根據(jù)臨界故障 / 非臨界故障,診斷測(cè)試時(shí)機(jī)等因素進(jìn)行分組。上電時(shí)如果檢出臨界故障(Critical fault),比如:核故障(Core Fault)、易失性存儲(chǔ)器測(cè)試故障(Ram Test Fault)等,這時(shí)故障響應(yīng)可以選擇處在一個(gè)靜默狀態(tài)處理(如:MCU 處在連續(xù)復(fù)位狀態(tài))。
圖6 “功能安全診斷框架”與“功能安全診斷控制流”
E-Gas 三 層 監(jiān) 視 框 架 的 Level1(function level) 及 Level2(function monitoring level) 位 于 ASW(application software, 即 : 圖 4.1-9 中 的 SWC) 層,Level3(controller monitoring level) 位 于BSW(basic software) 層。“診斷框架” 同樣也位于 BSW 層,如上文所述主要覆蓋診斷測(cè)試、故障響應(yīng)過(guò)程,下文對(duì)其構(gòu)成和工作過(guò)程展開(kāi)介紹:
- BswM、 EcuM 主要負(fù)責(zé)上下電管理,在 STARTUP、UP、SHUTDOWN 階段分別進(jìn)行上電時(shí)、運(yùn)行時(shí)、下電時(shí)的診斷測(cè)試
- ASW-Level1(E-Gas Level1)覆蓋功能輸入 / 輸出的診斷;ASW-Level2(E-Gas Level2)一般實(shí)現(xiàn)為 ASW-Level1 功能的冗余算法,實(shí)現(xiàn) ASW-Level1 ASIL 等級(jí)的分解;TestLib(E-GasLevel3)監(jiān)視 ECU、MCU 層面的硬件失效(建議參考 ISO26262(2018)-Part5 Annex D 及 MCU安全手冊(cè)),覆蓋 Level1 和 Level2 共因失效的診斷,并和 “監(jiān)視控制器” 實(shí)現(xiàn)用于邏輯及時(shí)間獨(dú)立性診斷的問(wèn)答看門(mén)狗機(jī)制
- TestManager 負(fù)責(zé)對(duì) TestLib 安全機(jī)制的診斷測(cè)試觸發(fā)及相應(yīng)測(cè)試結(jié)果的收集
- DEM 收集 E-Gas Level1/2/3 的測(cè)試結(jié)果,診斷事件去抖,標(biāo)記故障碼及通過(guò) NvM 進(jìn)行故障信息存儲(chǔ)。FiM 根據(jù) DEM 診斷測(cè)試結(jié)果(去抖后)標(biāo)記已配置的功能,功能軟件(ASW-Level1)根據(jù)標(biāo)記來(lái)決定對(duì)功能的抑制。