摘要
集成電路 (IC) 是所有現代安全系統的根本。集成電路提供邏輯,控制傳感器,從很大程度上看,其本身就是傳感器。集成電路驅動最終元件以實現安全狀態,它們是軟件運行的平臺。半導體內部的高集成度可以簡化系統級實現,其代價是IC內部復雜性增加。這種集成會減少器件數量,改善系統可靠性,并為提高診斷覆蓋率和縮短診斷測試間隔創造機會——所有這些都是以安全性適中為代價的 [NK1] 。有人可能會認為,由于復雜性增加,這種高集成度是一件壞事。然而,雖然集成電路復雜性提高,但在模塊和系統層面上可以大大簡化。令人吃驚的是,過程控制、機械、電梯、變速驅動器和有毒氣體傳感器都有相應的功能安全標準,但關于集成電路卻沒有專門的功能安全標準。相反,相關要求和知識是零散地分布在IEC 61508和其他B級、C級標準中。本文為解讀現有半導體功能安全標準提供指導。
簡介
通常,集成電路按照 IEC 61508 或 ISO 26262 標準進行開發。另外,二級和三級標準中有時還會有其他要求。只有按照功能安全標準進行開發和評估,才能讓人放心這些復雜的集成電路足夠安全。當編寫 IEC 61508 時,其針對的是定制系統,而不是開放市場批量生產的集成電路。本文將回顧并評論集成電路的已知功能安全要求。雖然本文集中討論 IEC 61508 及其在工業領域的應用,但很多內容都與汽車、航空電子和醫療等應用有關。
功能安全
功能安全是安全性的一部分,與系統在需要的時候是否有把握執行安全相關任務有關 [NK2] 。功能安全不同于其他被動形式的安全,如電氣安全、機械安全或本質安全。
功能安全是一種主動形式的安全。例如,它能確保馬達以足夠快的速度關閉,防止對打開防護門的操作員造成傷害,或者當有人在附近時,機器人會降低運行的速度和力度。
標準
主要功能安全標準是 IEC 61508 1。該標準的第一版于 1998 年出版,第二版于 2010 年出版,并于 2017 年開始更新至第三版的工作,可能的完成日期是在 2022 年。自從 1998 年公布 IEC 61508 第一版以來,基本 IEC 61508 標準已針對不同領域進行適應性修改,例如汽車 (ISO 26262)、過程控制 (IEC 61511)、PLC (IEC 61131-6)、IEC 62061 (機械)、變速驅動器 (IEC 61800-5-2) 以及其他許多領域。此類標準有助于對非常寬泛的 IEC 61508 進行解釋以便用于這些受到更大限制的領域。
一些功能安全標準,例如 ISO 13849 和 D0-178/D0-254,并非衍生自 IEC 61508。盡管如此,任何熟悉 IEC 61508 并閱讀這些標準的人都不會對其內容感到過于吃驚。
在安全系統內,當系統運行時,執行關鍵功能安全活動的是安全功能。安全功能定義了實現或保持安全所必須執行的操作。典型的安全功能包含輸入子系統、邏輯子系統和輸出子系統。通常,這意味著對潛在的不安全狀態進行檢測,并且基于檢測到的值做出決定,如果認為有潛在危險 [NK3] ,則指示輸出子系統將系統置于已定義的安全狀態。
圖 1.功能安全標準示例。
不安全狀態存在到實現安全狀態的時間至關重要 [NK4] 。例如,安全功能可能包括如下器件:一個傳感器用來檢測機器上的防護裝置是否打開,一個 PLC 用來處理數據,以及一個具有安全扭矩關閉輸入的變速驅動器,它在 [NK5] 插入機器中的手可能接近運動部件之前關閉電機。
安全完整性等級
SIL 代表安全完整性等級,是表示需要將風險降至何種程度才能達到可接受水平的手段。根據 IEC 61508 標準,安全等級有 1、2、3、4 四級,從一個級別到下一個級別,安全性會提高一個數量級。機器和工廠自動化場景中不會看到 SIL 4,因為一般情況下,這種場合中遭受危險的人員通常不會超過一個。SIL 4 針對的是數百甚至數千人可能受到傷害的核能和鐵路等應用。還有其他功能安全標準,例如汽車使用 ASIL(汽車安全完整性等級) A、B、C 和 D,以及 ISO 13849 標準。其性能等級 a、b、c、d 和 e 可以對應到 SIL 1 至 SIL 3 尺度。
表 1.各應用領域安全等級的粗略對應
筆者不相信單個 IC 可能有超過 SIL 3 的安全水平。但值得注意的是,IEC 61508-2:2010 附錄 F 中的表格顯示了一個 SIL 4 列。
三項關鍵要求
功能安全對 IC 開發提出了三項關鍵要求。下面研究這些要求。
要求 1—遵循嚴格的開發流程
IEC 61508 是一個全生命周期模型,涵蓋了從安全概念到需求采集、維護,直至最終物料處理 [NK6] 的所有階段。不是所有這些階段都與集成電路相關,甄別哪些階段有關需要培訓和經驗。IEC 61508 為 ASIC 提供了一個V模型,另外還有審查、審核及其他要求,它代表了一個體系,雖然不能保證安全,但過去已證明它能產生 [NK7] 安全的系統和 IC。
由于更改故障 [NK8] 集成電路的成本很高,所以大多數 IC 制造商已經建立嚴格的新產品開發標準。對于小幾何尺寸工藝,僅僅一套掩膜的成本就可能超過 50 萬美元。這種情況加上長交貨期,迫使集成電路設計商不得不實施嚴格的開發流程和優良 [NK9] 的檢查與驗證階段 [NK10] 。功能安全的一大區別在于,不僅必須實現安全性,還要證明安全性,即使是最好的IC制造商也需要在其正常開發流程之上添加安全流程,以確保合規性的適當證據得以創建并存檔 [NK11] 。
開發流程引入的故障稱為系統故障。這些故障只能通過設計變更來解決。與需求采集相關的故障、EMC魯棒性不足和測試不充分就是此類故障。
IEC 61508-2:2010 的附錄 F 列出了一系列專門測量,IEC 委員會專家認為這些測量適合用于集成電路開發。表 F.2 適用于 FPGA 和 CPLD,表 F.1 適用于數字 ASIC。這些測量分為 R (推薦)或 HR (強烈推薦)兩類,具體取決于 SII,某些情況下還提供了備選技術。對于擁有良好開發流程的 IC 供應商來說,其中的要求很少會讓人感到意外,但 SIL 3 的 99% 故障覆蓋率要求是有挑戰性的,尤其是對于小型數字或混合信號器件,其中很多電路位于模塊的外圍。該標準第二版中的要求僅適用于數字 IC,但許多要求也可應用于模擬或混合信號 IC(ISO 26262 的下一版本將包含類似表格,并有針對模擬和混合信號集成電路的版本)。
除表 F.1 和表 F.2 外,還有一些介紹性文字也提供了一些見解。例如,這個介紹性文字說允許使用經過實際驗證的工具,在復雜度相似的項目中使用 18 個月是合理的時間長度。這意味著并不需要應用 IEC 61508-3 關于工具的全部要求。
如果模塊/系統設計者過去曾成功使用某一 IC,并且了解其應用和現場故障率,那么他可以宣稱其“經過實際驗證”。對于集成電路設計者或制造商來說,作出這種宣稱要困難得多,因為他們一般不太了解最終應用或將現場故障單元返回給他們進行分析的百分率的含義 [NK12] 。
軟件
所有軟件錯誤都是系統性的,因為軟件不會老化。任何片內軟件都應考慮 IEC 61508-3 的要求。通常,片內軟件可能包括微控制器/ DSP 的內核/引導程序。但在某些情況下,微控制器/DSP 可能包含一個由IC制造商預編程的小型微控制器來實現一個邏輯塊,而不是使用狀態機。該預編程的微控制器軟件還需要符合 IEC 61508-3 的要求。應用級軟件通常是模塊/系統設計者的責任,而不是 IC 制造商的責任,但 IC 供應商可能需要提供編譯器或低級驅動程序等工具。如果這些工具用于安全相關應用軟件的開發,那么IC制造商需要為最終用戶提供足夠的信息,以滿足 IEC 61508-3:2010 第 7.4.4 條中的工具要求。
筆者也使用 C 語言和其他很多編程語言做過編程。筆者還做過少量 Verilog 編程。Verilog 及其姊妹語言VHDL是用于設計數字集成電路的兩種代表性硬件定義語言 (HDL)。一個有趣的問題是 HDL 是否是軟件,但現在遵循 IEC 61508-2:2010 附錄 F 就足夠了。在實踐中,筆者發現如果遵循附錄 F,那么結合 IEC 61508 的其他要求(生命周期階段等),HDL 是否是軟件的問題并不重要,因為開發者最終仍要完成所有必需的任務。一個值得注意的相關標準是 IEC 62566 2,它處理的是利用 HDL 開發的核工業安全功能。
要求 2—固有可靠性
IEC 61508 以 PFH (每小時危險故障平均頻率)或 PFD (需要時發生故障的概率)的形式提出了可靠性要求。這些限制與成年人因自然原因而死亡的風險,以及人們認為工作或處理日常業務不應顯著增加這一風險的想法有關。SIL 3 安全功能的最大 PFH 為 10–7/h,或者每 1000 年約有一次的危險故障率。表示為 FIT (故障次數/每運行十億小時的故障率)的話,即為 100 FIT。
鑒于典型的安全功能有一個輸入模塊、一個邏輯模塊和一個執行器模塊,并且 PFH 預算必須分配給所有三個模塊,所以某一 IC 的 PFH 完全可能是個位數 (《10 FIT)??梢允褂萌哂嗉軜媮硖岣哌@些數字,若有兩個 100 FIT 結構,則每個可以提供相同的置信度,使模塊可靠性達到 10 FIT (受常見原因故障 (CCF) 限制)。然而,冗余會消耗大量空間和能量,并增加成本。
ADI 公司之類的 IC 制造商在網站上提供其所有已發布 IC 的基于加速壽命測試的可靠性信息。此信息有時會不被重視,因為這種可靠性評估是在人為條件下于實驗室中完成的。推薦使用行業標準,如 SN 295003 或 IEC 623804,但這些標準有一些問題:
?它們預測 99% 置信度下的可靠性,IEC 61508 僅要求 70% 置信度下的數據,因此標準偏悲觀。
?它們將隨機故障模式和系統故障模式混為一談。根據 IEC 61508 的規定,應以不同方式處理這些故障模式。
?它們不是經常更新。
?它們未考慮不同供應商之間的質量差異。
SN 29500 之類的標準說明的是片內晶體管的可靠性。如果使用兩個 IC (每個有 50 萬個晶體管)來實現安全功能,每個 IC 的 FIT 為 70,那么整個系統的 FIT 為 140。但是,如果用一個含 100 萬個晶體管的 IC 來替代這兩個 IC,那么這一個 IC 的 FIT 只有 80,減少了 40% 以上。
IC 內部的軟錯誤往往被忽略。軟錯誤不同于傳統的可靠性預測,因為一旦斷電再通電,軟錯誤就會消失。引起軟錯誤的原因是空間中的中子或封裝材料中的α粒子,它們撞擊片內RAM單元或觸發器 (FF),改變其中存儲的值。ECC (雙比特錯誤檢測和單比特錯誤校正 [NK13] )可用來檢測并無縫糾正 RAM 中的錯誤,但代價是速度降低和片內錯誤增多。奇偶校驗增加的開銷更少,但系統設計人員需要解決錯誤恢復問題。如果不使用奇偶校驗或 ECC 技術,則軟錯誤率可能會比傳統硬錯誤率高出多達 1000 倍 (IEC 61508 提供的RAM數值為 1000 FIT/MB)。用于解決實現邏輯電路的 FF (觸發器)中軟錯誤的技術不那么令人滿意,但看門狗定時器、計算中的時間冗余以及其他技術可提供幫助。
要求 3—容錯性
無論產品有多可靠,有時候還是會出事。容錯性承認這一現實并予以解決。容錯性主要包含兩方面。一個是使用冗余,另一個是使用診斷。這兩方面都承認 [NK14] ,無論 IC 的可靠性或 IC 開發流程有多好,故障難免會發生。
冗余可以是相同的或不同的,可以在片內或片外。IEC 61508-2:2010 的附錄 E 提供了一組技術來證明,已經采取了充分的措施來支持關于數字電路使用相同冗余的片內冗余性聲明。附錄E似乎是針對雙鎖步微控制器的,針對以下方面的片內獨立性沒有給出任何指導:
?模擬和混頻信號集成電路
?模塊與其片內診斷之間
?采用不同冗余的數字電路
但在某些情況下,可以針對這些情況對附錄E加以靈活解釋。附錄 E 中有一個有意思的內容是 βIC 計算,其衡量片內常見原因故障。通過它可以判斷間隔是否足夠,前提是常見原因故障的來源所代表的 β 小于 25%,這與 IEC 61508-6:2010 的表格中的 1%、5% 或 10% 相比是較高的。
診斷是集成電路真正可以大放異彩的領域。片內診斷可以:
?通過設計來適應片內模塊的預期故障 [NK15] 模式
?不增加 PCB 空間,因為外部引腳需求有限
?以高速率運行(診斷測試間隔極小 [NK16] )
?無需冗余器件來通過比較進行診斷
這意味著片內診斷可以最大限度地減少系統成本和面積。一般而言,診斷是多種多樣的(有不同實施方式),取決于其監控的片內項目[NK17] ,因此它們不太可能以與被監控項目[NK18] 相同的方式和同時發生故障。當故障確實發生時[NK19] ,它們遇到的很可能是同樣的問題(常常與EMC、電源問題和溫度過高有關),哪怕診斷功能是在單獨的芯片上實現。雖然該標準不包含此要求,但存在與使用片內電源監視器和看門狗電路有關的問題,而這些是最后的診斷手段。[NK20] 某些外部評估人員會堅持將此類診斷放在片外。
一般來說,對較簡單集成電路的診斷將由遠程微控制器/DSP 控制,測量在片內完成,但結果發送到芯片外進行處理。
IEC 61508 要求最低級別的診斷覆蓋率[NK21] ,用 SFF (安全失效系數[NK22] )給出,其考慮安全故障和危險故障,與忽略安全故障的 DC (診斷覆蓋率)相關但不同。已實施診斷的成功程度可以使用量化 FMEA 或 FMEDA 來衡量。但是,在 IC 中實施的診斷也可以覆蓋 IC 外部的器件,IC 內的項目 [NK23] 可以通過系統級診斷來覆蓋。當 IC 開發人員執行 FMEDA 時,必須假定 IC 開發人員一般不知道最終應用的細節[NK24] 。在 ISO 26262 術語中,這被稱為 SEooC (脫離背景的安全要素[NK25] )。對于要利用 IC 級 FMEDA 的最終用戶,他們必須確信上述假設對其系統仍然成立。
雖然 IEC 61508-2:2010 的表 A.1 (實際上是表 A.2 至 A.14)就 IC 失效提供了很好的指導,分析 IC 時應予以考慮,但 IEC 60730:2010 5 的附錄 H 就該主題提供了更好的論述。
集成電路的開發方案
開發用于功能安全系統的集成電路有幾種方案。標準中沒有要求只能使用符合標準的集成電路,而是要求模塊或系統設計人員確信所選的集成電路適用于目標系統。
可用方案包括:
?方案 1:完全依照 IEC 61508 標準進行開發,使用外部評估和安全手冊
?方案 2:依照 IEC 61508 標準進行開發,無外部評估,但有安全手冊
?方案 3:依照半導體公司的標準開發流程進行開發,但會發布安全數據手冊
?方案 4:依照半導體公司的標準流程進行開發 [NK26]
注意:未依照 IEC 61508 開發的器件,其安全手冊可能被稱為安全數據手冊或類似名稱,以避免與遵照安全手冊開發的器件發生混淆。
對于半導體制造商來說,方案1成本最高,但對模塊或系統設計商來說可能最有利。擁有這樣一個器件,其中集成電路安全概念中顯示的應用與系統的應用相匹配,可以降低模塊或系統進行外部評估時遇到問題的風險。SIL 2 安全功能的額外設計工作量可能在 20% 或更多。即使沒有功能安全,半導體制造商通常也已經實施了嚴格的開發流程,而且額外工作量可能會更多。
方案 2 節省了外部評估的成本,但其他方面的影響相同。如果客戶無論如何都要讓模塊/系統進行外部認證,并且集成電路是該系統的重要組成部分,那么此方案是合適的。
方案 3 最適合于已經發布的集成電路,提供安全數據手冊可以讓模塊或系統設計人員獲得其在更高級別上進行安全設計所需的額外信息。這包括如下信息:所用實際開發流程的詳細信息,集成電路的 FIT 數據,任何診斷的詳細信息,以及制造現場的 ISO 9001 認證證據等。
然而,方案 4 仍然是開發集成電路最常用的方法。使用此類器件開發安全模塊或系統,將需要額外的器件和開支用于模塊/系統設計,因為這些器件沒有充分的診斷能力,需要雙通道架構以資比較,而不是單通道架構。若沒有安全數據手冊,模塊/系統設計人員還需要做出保守的假設,并將集成電路視為黑盒子。
此外,半導體公司需要制定自己對標準的解釋,筆者自己的公司為此開發了內部文件 ADI61508 和 ADI26262。ADI61508 采用了 IEC 61508:2010 的七個部分,并根據集成電路開發解釋了相關要求。
SIL 2/3 開發
有時候,集成電路可以依照 SIL 3 的所有系統要求進行開發。這意味著 IEC 61508-2:2010 表 F.1 針對 SIL 3 的所有相關項目都得到遵守,并且所有設計評審和其他分析都按照 SIL 3 級要求完成。但是,硬件度量標準可能只對 SIL 2 來說是夠好的。這種電路可以被標識為 SIL 2/3 或更典型的 SIL M/N,其中M表示根據硬件度量標準可以聲明的最高 SIL 級別,N表示根據系統要求可以聲明的最高SIL級別。兩個 SIL 2/3 集成電路可用來實現 SIL 3 模塊或系統,因為根據硬件度量標準,兩個 SIL 2 項目并聯就會將該組合升級到 SIL 3,但就系統要求而言,各項目已經是 SIL 3。如果集成電路僅是 SIL 2/2,那么將兩個這樣的集成電路并聯不會使其成為 SIL 3,因為其充其量不過是 SIL 3/2。
將硬件度量標準應用于集成電路
除了幾乎全部安全功能都由集成電路實現的情況之外,很難為半導體指定 SFF、DC 或 PFH 限值。以 SFF 為例,SIL 3 要求 SFF 大于 99%,這適用于完整安全功能,而不只是集成電路。如果集成電路為 98%,仍然可以利用它來實現 SIL 3 安全功能,但系統的其他部分需要實現更高的覆蓋率以進行補償。集成電路的安全手冊或安全數據手冊需要公布 λDD、λDU 和 λ 以用于系統級 FMEDA。
理想情況下,IC要求是在系統級分析中導出的,但通常情況并非如此,開發實際上是一個 SEooC (參見 ISO 26262,脫離背景的安全要素[NK27] )。在 SEooC 的情況下,IC 開發者需要假設 IC 在系統中將會如何使用。然后,系統或模塊設計者必須將這些假設與實際系統進行比較,以確定 IC 的功能安全性對系統是否足夠。這些假設可以決定診斷是在IC上實施,還是在系統級實施,并因此影響IC級特性和功能。
保密性 (Security)
系統的安全性與保密性密不可分。目前,IEC 61508 或 ISO 26262 中與保密性有關的唯一指導是讓讀者參考 IEC 62443 系列 6。但是,IEC 62443 似乎更多地是針對較大的組件,例如整個 PLC 組件,而不是單個 IC。好消息是,功能安全標準中消除系統故障的大部分要求也適用于保密性。沒有任何參照是很有趣的,因為在某些情況下,硬件可以提供硬件信任根和類似 PUF (物理上不可克隆的功能)的功能,這對于安全性和保密性十分重要。
結論
現有 IEC 61508 涵蓋了從集成電路開發到煉油廠的一切。雖然針對機械和過程控制等領域有專門的行業專用標準,并且 IEC 61508 第二版中有關于集成電路的一些指導,但針對集成電路并無專用標準。缺乏具體要求導致要求被任意解釋,因此不同客戶和外部評估人員的期望之間可能出現沖突。
這意味著,各行業將傾向于按照更高層次的標準對集成電路提出行業特定的要求。這樣的要求已經可以在 EN 50402 7 等標準中看到,但最特別的是 ISO 26262的2016 版草案 8 中,其中新增的第 11 部分專門處理集成電路。
評論
查看更多