每位工程師皆努力想建構(gòu)100%的失效安全(fail-safe)系統(tǒng),但要以經(jīng)濟(jì)的方式實(shí)現(xiàn)這個理想目標(biāo),卻是相當(dāng)困難。因此,諸如ISO 26262和IEC 61508等標(biāo)準(zhǔn)在定義安全相關(guān)系統(tǒng)所需之功能安全等級時,一般多采用機(jī)率風(fēng)險評估方法。這些標(biāo)準(zhǔn)定義(汽車)安全完整性等級(ASIL/SIL),以規(guī)定必須遵守的系統(tǒng)屬性,以及應(yīng)采用的工程制程嚴(yán)格度,以符合相關(guān)的系統(tǒng)認(rèn)證要求,其中包括定義系統(tǒng)安全目標(biāo)及容忍錯誤率的安全概念,以及將機(jī)能配置到硬件和軟件功能的安全架構(gòu),以長期持續(xù)偵測系統(tǒng)是否正常運(yùn)作。傳統(tǒng)上,安全軟件、硬件及工具屬于獨(dú)立的解決方案,能夠各自解決部分需求,卻無法加以整合。不過,目前有一種提供完整解決方案的整合式PRO-SIL?概念,能透過有效且整合的方式達(dá)成功能安全目標(biāo),以充分降低風(fēng)險、節(jié)省成本及減少復(fù)雜性。
開發(fā)“安全”系統(tǒng)的基本動機(jī),在于發(fā)現(xiàn)缺陷時,確保安全的操作和明確定義的行為。IEC 61508標(biāo)準(zhǔn)便是在此背景下,於1980年代中期發(fā)展而成,并且不斷修訂。此標(biāo)準(zhǔn)定義了電子和電動裝置安全系統(tǒng)的設(shè)計。另外,針對制程自動化(IEC 61511)、機(jī)械自動化(ISO 13849)、驅(qū)動裝置 (IEC 61800-5)、核能(IEC 61513)及汽車(ISO 26262 草案)等特定需求的標(biāo)準(zhǔn),也由此一般標(biāo)準(zhǔn)衍生而成。確保符合 IEC 61508 標(biāo)準(zhǔn)的測量方法,取決於系統(tǒng)中每種危險所需的安全完整性等級(表1)(SIL 1至SIL 4適用于自動化應(yīng)用,ASIL A至ASIL D適用于汽車應(yīng)用)。
表1 安全完整性等級,其中依照IEC 61508或ISO 26262之系統(tǒng)安全認(rèn)證,規(guī)定遵守項(xiàng)目
近兩年來,功能安全已從系統(tǒng)整合者作業(yè)轉(zhuǎn)移為元件/軟件等級。簡單的電子元件和復(fù)雜的微處理器皆必須支援IEC 61508。對系統(tǒng)設(shè)計師而言,最重要且經(jīng)常最花時間的挑戰(zhàn)之一,就是確保系統(tǒng)的安全,而且不僅要在最高系統(tǒng)層級上獲得相關(guān)認(rèn)證,機(jī)器的硬件和注冊資料也需有同樣水準(zhǔn)。IEC 61508針對硬件規(guī)定了詳細(xì)的硬件管理和測試需求,因此,撰寫安全關(guān)鍵軟件來執(zhí)行這些功能相當(dāng)費(fèi)時且昂貴,而且不易在裝置之間攜行使用。
多重CPU-成本與空間密集
在使用配備單一微處理器的單通道架構(gòu)之下,最大安全完整性等級將限制為SIL 2。因此,SIL 3或ASIL C/D系統(tǒng)及安全產(chǎn)品采用多重CPU設(shè)計,以處理自我測試和確保備援。然而這種解決方案相當(dāng)復(fù)雜且昂貴,因?yàn)闀加么罅?a href="http://m.xsypw.cn/v/tag/82/" target="_blank">PCB空間,而且覆蓋范圍因兩個CPU之間的同步和傳遞問題而受限。新方法是增加特殊的外部硬件區(qū)塊,并使用在標(biāo)準(zhǔn)雙核心32位微處理器上執(zhí)行的軟件程序庫,借此突破指定的媒體診斷范圍(DC) 限制。此解決方案透過使用單一微處理器來減輕開發(fā)負(fù)擔(dān)和原料成本,并運(yùn)用智慧型安全概念搭配所有相關(guān)元件(包括依據(jù)IEC61508/ISO26262開發(fā)且方便的自我測試功能),快速可靠地將安全性納入相關(guān)系統(tǒng)。
TriCore不采用外部第二核心來評估微處理器的功能故障;TriCore已包含TriCore CPU本身(微處理器及DSP)及周邊控制處理器(PCP)雙核心(圖 1),因此不需要外部第二核心來進(jìn)行安全性評估。
圖1 TriCore方塊圖 - PCP執(zhí)行自我測試功能
完整的設(shè)計套件
在建置安全關(guān)鍵應(yīng)用方面,市場上已經(jīng)有不同的解決方案。盡管大多數(shù)領(lǐng)導(dǎo)供應(yīng)商皆提供汽車應(yīng)用的相關(guān)方法,但是包含工業(yè)在內(nèi)之其他應(yīng)用領(lǐng)域的相關(guān)方法卻仍然有限,而且可用的裝置發(fā)展經(jīng)常受到限制。汽車系統(tǒng)講求嚴(yán)格的安全要求,英飛凌利用在此領(lǐng)域的豐富經(jīng)驗(yàn),開發(fā)出PRO-SIL安全產(chǎn)品,以高度整合的安全解決方案來滿足持續(xù)增加的工業(yè)市場需求。經(jīng)過認(rèn)證的汽車解決方案可輕松供其他應(yīng)用使用,同時提供各種裝置。PRO-SIL的建置是以其32位TriCore或16位XC2300微處理器為基礎(chǔ),同時包含SafeTcore測試程序庫及CIC61508安全監(jiān)控芯片(圖 2)。此建置經(jīng)過完整驗(yàn)證,完全符合IEC 61508的規(guī)定。
圖2 以TriCore作為主控制器,并采用安全監(jiān)控芯片(看門狗)及 SafeTcore測試軟件程序庫的安全相關(guān)系統(tǒng)
創(chuàng)新的安全概念
單通道(1oo1或1 out of 1)或雙通道(1oo2或1 out of 2)結(jié)構(gòu)是兩種最常見的安全控制架構(gòu),后者是以兩個獨(dú)立的處理單元為基礎(chǔ)。1oo1結(jié)構(gòu)提供經(jīng)濟(jì)的解決方案,其安全完整性等級僅限于SIL 2。雙通道架構(gòu)(1oo2)支援SIL 3高安全完整性等級,但需要更高的成本及更多的電路板空間。PRO-SIL 概念采用的安全架構(gòu)為1oo1結(jié)構(gòu),搭配智慧型診斷功能(1oo1D)。
創(chuàng)新的安全概念以挑戰(zhàn)/回應(yīng)技術(shù)為基礎(chǔ),TriCore芯片上的PCP扮演挑戰(zhàn)者,主TriCoreCPU則執(zhí)行測試。 資訊經(jīng)由共享記憶體結(jié)構(gòu)傳送,資料將維持多樣并獲得備援。自我測試功能在PCP上執(zhí)行,并由透過SPI連結(jié)TriCore芯片的外部智慧型看門狗(CIC61508)額外加以監(jiān)控(圖 3)。看門狗裝置是盡可能減少共因失效的有效方法。看門狗使用特定的計時視窗與TriCore芯片傳遞訊息,以檢查TriCore芯片的時脈、電壓及正確運(yùn)作是否符合標(biāo)準(zhǔn)定義。TriCore則負(fù)責(zé)監(jiān)控CIC 61508的電源供應(yīng),并透過遠(yuǎn)端診斷測量方法來監(jiān)控其是否正確運(yùn)作。主TriCore CPU和PCP之間會共享錯誤偵測(硬件故障和任務(wù)監(jiān)控)。
圖3 創(chuàng)新的安全概念以挑戰(zhàn)/回應(yīng)技術(shù)為基礎(chǔ),TriCore芯片上的 PCP 扮演挑戰(zhàn)者,主TriCore CPU則執(zhí)行測試。PCP由外部智慧型看門狗(CIC61508)額外加以監(jiān)控,并透過SPI連結(jié)TriCore芯片。
PCP軟件內(nèi)含PCP自我測試、C/R(Challenge/Response,挑戰(zhàn)/回應(yīng))通訊、看門狗通訊、測試執(zhí)行監(jiān)控及任務(wù)監(jiān)控等功能。TriCore中所執(zhí)行的SafeTcore程序庫為可組態(tài)的架構(gòu),可提供測試功能來驗(yàn)證處理器和系統(tǒng)完整性(圖 4)。這些測試大部分會進(jìn)行建置,因此能夠在起始時間執(zhí)行,同時也可以在執(zhí)行時間於背景執(zhí)行。典型的診斷間隔時間為6.4ms。最復(fù)雜的測試為TriCore CPU自我測試。透過使用創(chuàng)新的安全概念,此項(xiàng)操作碼式自我測試的整體診斷覆蓋率可達(dá)96.5%,遠(yuǎn)勝于其他指令集測試,且具有可中斷且低延遲的優(yōu)點(diǎn)。
圖4 SafeTcore軟件分割
SafeTcore測試程序庫
SafeTcore套件提供工具,有助于同步完成兩項(xiàng)任務(wù),亦即符合SIL1至SIL3(或 ASIL B-D)所需的認(rèn)證,以及配合緊迫的上市日程表。最大的認(rèn)證挑戰(zhàn)是達(dá)到芯片級 (silicon level) 所需的測試,并擁有可支持安全實(shí)例的說明文件。SafeTcore套件經(jīng)由高度可組態(tài)性的驅(qū)動器程序庫,為TriCore系列裝置提供前述功能,并結(jié)合完整可用的安全手冊、安全實(shí)例及需求/追蹤資料庫。SafeTcore集具有強(qiáng)大的自我測試程序,運(yùn)用在PCP上于起始時間開始并周期于應(yīng)用程式內(nèi)執(zhí)行的SafeTcore集(圖 5),使用者軟件的正確運(yùn)作及TriCore CPU本身將可獲得驗(yàn)證和認(rèn)證。
圖5 SafeTcore開啟和關(guān)閉測試
此核心測試功能結(jié)合了詳細(xì)的周邊測試及自動支援安全監(jiān)控芯片。SafeTcore程序庫的軟件測試集亦提供作業(yè)系統(tǒng)監(jiān)控功能,以執(zhí)行復(fù)雜的任務(wù)及制造流程監(jiān)控,可支援安全的程式碼執(zhí)行,以及超過 99% 的診斷覆蓋率。SafeTcore套件亦包括將各種程序庫要素整合至使用者應(yīng)用程式的安全手冊,以及安全整合性等級的核可。
看門狗
CIC61508 可整合至各種功能安全相關(guān)應(yīng)用程式。看門狗可偵測可能造成微處理器運(yùn)算錯誤之常見時脈、供電及溫度失效模式,藉此監(jiān)控主微處理器(如TriCore芯片)。由于采用了 TSSOP-38 的小型封裝,CIC61508 具有節(jié)省空間和成本效益的特性,是支援安全防護(hù)應(yīng)用的首選。
在使用TriCoreMCU 的安全相關(guān)系統(tǒng)中,TriCore 主核心執(zhí)行 SafeTcore測試軟件以及核心和周邊測試,PCP 則監(jiān)控TriCore主核心。CIC61508 外部看門狗監(jiān)控兩個核心,以確定失效共因。由于 PCP 已建置各種自我測試功能,TriCore/CIC61508 組合僅需要由 CIC61508 提供的功能子集。
CIC61508 所支援的測試特性,存在儲存器中,包括內(nèi)部操作碼測試日程表/定序器,可產(chǎn)生一連串附帶特定資料的測試需求,并依據(jù)使用者自定表格來檢查回應(yīng)。其他監(jiān)控功能包括可偵測多達(dá) 4 個電源域的欠壓及過壓、監(jiān)控多達(dá) 8 項(xiàng)平行資料比對及確認(rèn),并包含作業(yè)系統(tǒng)的任務(wù)監(jiān)控,可以檢查預(yù)先定義的派工順序,以及執(zhí)行預(yù)定的所有安全重要任務(wù)。
作者:英飛凌科技 Manfred Choutka
本文轉(zhuǎn)摘自電子發(fā)燒友網(wǎng)《汽車電子特刊》5月刊
評論