今天我們先聊硬件安全需求,硬件安全設(shè)計以及硬件安全機制相關(guān)的內(nèi)容,硬件架構(gòu)度量及隨機失效的評估,我們下一篇單獨聊。 ? 正式聊之前,為便于理解,先說明以下幾點:
1
功能安全研究范圍為電子電氣系統(tǒng),即E/E系統(tǒng),所以這里的硬件特指控制器硬件,包括控制器I/O接口,控制器芯片等,非傳統(tǒng)的機械硬件。
2
硬件同樣存在系統(tǒng)失效,即由于人為設(shè)計疏忽導致的失效,需要對設(shè)計過程進行相應約束,包括開發(fā)流程,方法,測試驗證等,保證硬件安全。
3
ISO 26262中基于概率論的定量危害分析僅限適用于硬件部分,因為只有硬件存在隨機失效,并符合概率分布原理。
4
硬件開發(fā)和系統(tǒng),軟件開發(fā)一樣,都基于V模型,但有兩個過程區(qū)分于傳統(tǒng)V模型開發(fā)流程,即概率論定量分析,包括硬件架構(gòu)度量和隨機硬件失效的評估。
01
什么是硬件安全需求?
功能安全硬件開發(fā)始于需求,即硬件安全需求(Hardware Safety Requirement, HWSR),而HWSR源于分配至硬件組件的TSR,是硬件相關(guān)的TSR在硬件層面的進一步細化。
HWSR包括哪些內(nèi)容呢?一般來講:?
硬件安全需求HWSR?= 安全機制無關(guān)的硬件安全需求 + 硬件安全機制?
安全機制無關(guān)的硬件安全需求包括:?
1
硬件架構(gòu)度量及隨機硬件失效目標值要求,一般根據(jù)可以直接查表即可確定。
例如:?SPFM,LFM,PMHF等,這部分會在硬件架構(gòu)度量及失效評估中闡述。
2
為避免特定行為的硬件安全要求。
例如:一個特定傳感器不應有不穩(wěn)定輸出。
3
分配給硬件的預期功能要求。
例如:?控制器必須能夠外部reset。
4
定義線束或接插件的設(shè)計措施的要求。
例如:?線束或插件最大電流需求。 ?
硬件安全機制包括:
1
針對內(nèi)部硬件要素(包括傳感器,控制器和執(zhí)行器)失效的安全機制。
例如:?看門狗,比較器,雙核鎖步 (dual-core lockstep),傳感及執(zhí)行器診斷等。
2
針對外部相關(guān)要素失效的容忍能力的安全機制。
例如:?ECU 的輸入開路時,要求 ECU 應具備的功能表現(xiàn)。
3
針對內(nèi)外部要素失效對應安全機制的響應特性需求。
例如:?安全機制中定義的硬件元器件的故障響應時間要符合ISO 26262-4:2018, 6.4.2中要求的故障容錯時間間隔以及多點故障探測時間間隔。
怎么從TSR得到HSR呢?
HWSR屬于由硬件相關(guān)的TSR細化得到硬件層面安全需求,只要在系統(tǒng)開發(fā)階段有效識別出硬件相關(guān)的TSR,HWSR導出相對比較容易。 ? 具體來說,根據(jù)硬件相關(guān)TSR,對其進行安全分析或直接根據(jù)經(jīng)驗,分別針對組成HWSR的三個部分進行分析:
為避免硬件內(nèi)部失效措施
為避免外部相關(guān)失效對應的內(nèi)部措施
為避免硬件隨機失效的概率度量要求
將其作為HWSR即可,具體見下圖:
02
硬件安全設(shè)計
硬件安全設(shè)計主要包括兩個方面:
硬件安全架構(gòu)設(shè)計
硬件安全詳細設(shè)計
硬件安全架構(gòu)和詳細設(shè)計均基于HWSR,硬件安全架構(gòu)的設(shè)計旨在描述硬件組件以及其彼此的相互關(guān)系,更重要的是將硬件架構(gòu)相關(guān)的HWSR,尤其是安全機制應用于硬件架構(gòu),為后續(xù)硬件詳細設(shè)計提供基礎(chǔ)。
硬件安全機制是硬件安全設(shè)計中最核心的內(nèi)容,我們會在第三部分單獨闡述。除此之外,ISO 26262-5:2018第7部分還對硬件安全架構(gòu)和詳細實現(xiàn)設(shè)計提出了相關(guān)約束,主要包括:
對硬件安全架構(gòu)設(shè)計而言:
硬件架構(gòu)應能夠承載HWSR。
HWSR應該被分配至硬件架構(gòu)中的組件。
不同或非ASIL等級硬件組件開發(fā)需滿足以下原則之一:
─ 按最高ASIL等級
─ 要素共存FFI
對硬件安全要求和實施之間的可追溯性。
為避免系統(tǒng)失效, 硬件架構(gòu)應具有下述特性:
─? 模塊化; ─ ?適當?shù)牧6人?及
─??簡單性。
在硬件架構(gòu)設(shè)計時,應考慮安全相關(guān)硬件組件失效的非功能性原因,例如: 溫度、振動、水、灰塵、電磁干擾、來自硬件架構(gòu)的其他硬件組件或其所在環(huán)境的串擾。
對硬件詳細實現(xiàn)設(shè)計而言:
為了避免常見的設(shè)計缺陷, 可運用相關(guān)的經(jīng)驗總結(jié)。
在硬件詳細設(shè)計時, 應考慮安全相關(guān)硬件元器件失效的非功能性原因, 可包括以下的影響因素:溫度、振動、水、灰塵、電磁干擾、噪聲因素、來自硬件組件的其他硬件元器件或其所在環(huán)境的串擾。
硬件詳細設(shè)計中, 硬件元器件的運行條件應符合它們的環(huán)境和運行限制規(guī)范。
應考慮魯棒性設(shè)計原則。
03
硬件安全機制
硬件相關(guān)安全機制是組成HWSR最重要組成部分,是硬件安全設(shè)計最重要的體現(xiàn),也是功能安全ISO 26262中最晦澀難懂的內(nèi)容之一。
ISO?26262-5:2018附錄D中列出了控制器硬件可能存在的故障,對應的安全措施及覆蓋率,為后續(xù)硬件概率度量提供了基礎(chǔ),基本上涵蓋了硬件通用的安全機制,強烈建議多看幾遍。
一般來講,一個E/E系統(tǒng)中硬件主要包括:?傳感器(D.9),繼電器/連接件(D.3),Digital輸入/輸出(D.5),Analog輸入/輸出(D.5),總線(D.6),處理器(D.4),時鐘(D.8),執(zhí)行器(D.10),具體如下圖所示:?
由于內(nèi)容過多,我們接下來以其中最重要的硬件之一,即處理器(D.4)為例,介紹處理器相關(guān)的硬件安全機制。 ? 處理器(CPU)是微控制器(MCU)的核心,是負責讀取指令,對指令譯碼并執(zhí)行指令的核心部件,ISO 26262-5:2018附錄D中,處理器相關(guān)的安全機制及診斷覆蓋率如下所示:?
CPU主要由運算器,控制器,寄存器組成,所以針對處理器的安全機制也主要針對這三大部分。由于表格里的處理器相關(guān)安全機制分類存在一定重疊,且不是很好理解,個人將其進行總結(jié)分類如下:?
自檢
硬件冗余
看門狗
程序流監(jiān)控
自檢??
根據(jù)自檢方法,自檢安全機制一般可以分為:?
軟件自檢
對安全相關(guān)路徑中的使用到的指令,利用預先設(shè)置好或自動生成的數(shù)據(jù)或代碼,對物理存儲(例如,數(shù)據(jù)和地址寄存器)或運算器及控制器(例如,指令解碼器),或者它們兩者進行檢測。
硬件自檢
在控制單元內(nèi)部集成專用自檢硬件,最常見的就是內(nèi)建自測試(BIST),通過在芯片設(shè)計中加入額外自測試電路,測試時從外部施加控制信號,運行內(nèi)部自測試硬件和軟件,檢查電路缺陷或故障,是防止故障潛伏的重要安全機制。
BIST一般僅在處理單元初始化或者下電時運行,所以不能覆蓋瞬態(tài)故障,根據(jù)其自檢時間一般可以分為:
1
Online Self-test: 在車輛啟動時間限制內(nèi)盡可能多地進行測試。
2
Offline Self-test: 車輛停機或診斷測試,最大的測試覆蓋率,車輛斷電時沒有時間限制。
3
Periodic Self-test: 車輛在正常操作模式下,進行的診斷測試。
而根據(jù)其自檢的內(nèi)容,BIST又可以分為:
1
MBIST(Memory?Built-In Self?Test):?對memory,包括RAM或ROM,進行讀寫測試操作,判斷Memory是否有制造缺陷,屬于內(nèi)存相關(guān)的安全機制。
2
LBIST(Logic Built-In Self Test):?對芯片內(nèi)邏輯電路進行自檢,屬于處理器相關(guān)安全機制。
其中,LBIST是硬件自檢非常重要的安全機制,其工作原理如下圖所示:
具體來講,首先利用測試生成器,生成測試向量,然后將測試向量輸入被測試電路,最后BIST控制器將測試電路輸出結(jié)果和預存的結(jié)果進行對比,一旦二者存在差異,則表明被測試電路存在故障。
硬件冗余
硬件冗余是處理器或控制器最重要的安全機制之一,根據(jù)硬件冗余的形式,控制器硬件冗余一般可以分為以下兩大類: ?
雙(多)MCU硬件冗余
使用兩個相同或不同類型的MCU,進行硬件冗余,二者相互獨立,構(gòu)成主,副功能鏈路,其中一個MCU負責功能實現(xiàn),另外一個對功能安全要求較高的MCU負責功能安全需求實現(xiàn),二者輸出結(jié)果進行相互比較并控制安全輸出。 ? 優(yōu)點在于: 物理復制安全相關(guān)和非安全相關(guān)的功能與特性,避免相關(guān)失效魯棒性高,可以實現(xiàn)Fail Operational 系統(tǒng)架構(gòu),當其中一個MCU失效后,另外一個MCU可以實現(xiàn)全部或部分功能,維持系統(tǒng)繼續(xù)運行,多用于高級輔助和自動駕駛控制系統(tǒng)。 ?
缺點在于:?配置復雜,成本高,再加上軟件同步及PCB空間增加等因素,會給帶來巨大的挑戰(zhàn)和障礙。
示例:?雙控制單元EPS控制系統(tǒng)。
來源: Freescale
單MCU硬件冗余
單MCU硬件冗余一般采用CPU冗余,形成雙(多)核MCU,并采用雙核鎖步技術(shù)(Dual Core LockStep)。
雙核: 兩個相同的核鏡像,90°旋轉(zhuǎn),隔離設(shè)計,間距100um。
鎖步: 兩個核運行相同程序并嚴格同步,一個輸入延遲,另外一個輸出延遲,延遲時間一般為2-3個時鐘周期,計算結(jié)果利用比較邏輯模塊進行比較,檢測到任何不一致時,就會發(fā)現(xiàn)其中一個核存在故障,但不會確定是哪個核故障。
雙核鎖步是一種綜合性的硬件安全機制,可以有效覆蓋CPU執(zhí)行指令,設(shè)計電路等相關(guān)失效,具體如下圖所示:
在E-Gas三層功能安全架構(gòu)中,第二層,即功能監(jiān)控層可以采用雙核鎖步安全機制,并且功能安全相關(guān)和非相關(guān)的軟件可以進行分區(qū),使用不同的硬件資源(例如,不同的 RAM、ROM 存儲范圍)可提高診斷覆蓋率。 ?
示例: 雙核鎖步(Dual core Lookstep)EPS控制系統(tǒng)。
來源: Freescale
其中,MCU采取雙核鎖步模式,并且存在獨立的監(jiān)控單元,工作于低功耗模式,對雙核MCU進行電源管理和安全監(jiān)控。
看門狗?
看門狗定時器 (WDT) 是一種定時器,用于監(jiān)視微控制器 (MCU)程序,查看它們是否失控或停止運行,充當監(jiān)視MCU 操作的“看門狗”。
MCU正常工作的時候,每隔一段時間輸出一個信號到喂狗端,給WDT清零,如果超過規(guī)定的時間不喂狗,WDT就會給出一個復位信號到MCU,使MCU復位。
看門狗基本類型及主要特點如下圖所示:
對于功能安全而言,主要采用硬件看門狗作為安全機制。根據(jù)其實現(xiàn)復雜度,它可以工作于不同模式:
計時模式(Time out mode)
時間窗模式(Window mode)
問答模式(Q&A mode)
從上往下,其可靠度和復雜度依次上升。
除此之外,還必須注意以下幾點:
看門狗必須在系統(tǒng)初始化中進行測試,避免看門狗自身故障。
看門狗輸入為喂狗(kicking the dog/service the dog),必須在特定的時間或時間窗內(nèi)喂狗,否則會觸發(fā)相應Reset端或功能降級。
程序流監(jiān)控?
程序流監(jiān)控的實現(xiàn)的本質(zhì)是看門狗,用于檢查程序是否按照預期的執(zhí)行順序執(zhí)行。如果監(jiān)控實體以不正確的順序執(zhí)行,或在規(guī)定的截止時間或時間窗內(nèi)沒有被執(zhí)行就出現(xiàn)不正確的程序流。
具體應用過程中,可以在功能安全相關(guān)的一個或多個監(jiān)測實體中按照程序預期的執(zhí)行順序設(shè)置一個或多個Checkpoint,如果在特定的時間限制內(nèi),Checkpoint沒有被依次執(zhí)行,則會觸發(fā)相應的復位或錯誤處理機制。
需要注意的是:
1
在ISO 26262-5:2018附錄D中,將看門狗和程序流監(jiān)控這部分安全機制歸為時鐘(D.8)故障的安全機制,但它們還是主要應用于處理器(D.4),所以本文將其歸類到處理器相關(guān)的硬件安全機制。
2
實際應用中,程序流監(jiān)控一般直接包含于看門狗安全機制,例如AUTOSAR中看門狗管理器WdgM,可以實現(xiàn)周期性,非周期性以及邏輯監(jiān)控。
3
硬件相關(guān)安全機制很多并不是單獨存在的,例如,看門狗安全機制可以和其他硬件安全機制相互結(jié)合使用,利用看門狗問答模式(Q&A mode)可以將程序流監(jiān)控和功能安全相關(guān)的CPU指令測試安全機制相結(jié)合,對監(jiān)控單元提出的問題各自提供部分答案,實現(xiàn)對功能安全控制硬件的有效監(jiān)控。
審核編輯:劉清
評論
查看更多