Untitled Document

RS Components 為您呈遞最新的工程資訊

還不是
RS Components
的用戶?

立即註冊,可收到最新的產品、
技術和推廣資訊。

預防失效、故障容許

作者:Dr. William Marshall

第 1 篇:達成可靠設計的途径-避免失效

我們在 Texas Instruments、Freescale 和 Infineon 發表「安全」微控制器之後,又發表了第一篇探討關鍵安全系統之可靠性與備援性之理論和實用技術的系列文章。

在二十世紀後期,「電腦」一詞幾乎已成為不可靠的代名詞。系統失效,幾乎都是因為電腦發生錯誤而導致,但是,此說法既無根據,更成為掩飾程式設計人員或操作人員之人為失誤的最佳藉口。於是電腦成為我們失敗時的代罪羔羊,只要「電腦錯誤」不致於會導致人員傷亡,每一個人都樂於忍受此情況。隨著科技進展,電腦的行動性提升,開始引進車輛和飛機中,用於控制車窗雨刷和導航等非關鍵安全層面的功能,但是自從軍用飛機的飛航控制系統電腦化之後,空中巴士 A320 等民航機也跟進使用,從此一切都改變了,如今連汽車也都是採用微控制器掌控關鍵的安全功能,例如運作緊急煞車和安全氣囊等。最近,Google 更向世人展示,無人駕駛汽車是可能實現的未來科技,目前這些現象如何影響大眾對電腦錯誤的看法呢?幸運的是,飛機和汽車製造廠早已瞭解,世人無法接受將墜機和高速公路上百人死傷的連環車禍怪罪於「單純的電腦錯誤」。在過去五十年間,已有眾多研究開始依據以下兩項準則研發「不故障」電腦:第一項是預防失效,第二項是隨機械智能提升產生的包容故障。

由於電腦的可靠度,還包含電腦操作員和使用者兩項因素,因此,此項概念之定義相當廣闊,並會隨不同的觀點而不同。電腦安裝管理員通常會因為處理能力符合需求,即認為系統可靠,然而,操作員的觀點卻不可能那樣寬容,他為了達到規定的處理能力,可能必須修正錯誤並請求維修工程師經常更換元件,而維修工程師也可能認為系統完全不可靠,因為他不僅要採取預防措施,還要找出潛在故障因素,以及排除其他尚未但可能會導致錯誤「更加惡化」的因素。這些確保可靠度的傳統人為方法,根本不足以因應飛航控制等關鍵安全系統。

可靠度之定義

  • 可靠度係指特定系統在指定的情況下,於指定的時間執行要求之功能的可行性。
效率要求。在燒機階段,必須移除內在的所有故障元件、因此,可靠度是屬於時間函數,並介於 1(完全可靠)至 0(完全不可靠)之間,設計人員的目標就是盡可能維持系統一致的可靠度,並維持最長的時間或至少達到任務指定時間或壽命需求。在系統不正常的情況下,必須針對故障、失效以及錯誤等情況進行基本定義:

  • 故障係指使系統無法正確執行預定任務的直接原因。故障可能是發生在硬體、計時器或軟體(臭蟲)上,且故障的本質也分為永久性(固定)或暫時性。
  • 失效係指因故障而發生不符合系統規格之情事,例如,處理器在進行數次正確狀態後,自行進入一次不正確狀態。
  • 錯誤係指程式的某一項計算錯誤,導致機器失效的情況。

在設計系統時,必須考量故障的可能因素,這些因素稱為「威脅」。

  • 威脅是導致故障的主要壓力,可能位於正常環境、不正常環境中,也可能是設計錯誤。

可靠度的數學函數,必須建立兩項主要假設才能求得,首先為裝置失效是屬於隨機發生的事件,因此在統計上屬於獨立項目,其次為失效率(以每小時失效幾次表示)在設備壽命期間是屬於常數。雖然這兩項假設的基礎不穩固,但是,若符合特定條件,在系統分析用途上已證實為合理有效。統計獨立係假設一個元件失效,不會增加鄰近元件的壓力而導致失效率提升。

電腦是由離散電晶體、電阻等元件組成,當電阻的失效短路有誤,即可能會導致電晶體過載而引發連鎖失效。積體電路邏輯零件較不會受連鎖損壞影響,因此更符合可靠模型的要求,若排除系統壽命初期的「燒機」和「耗損」階段(圖 1),僅留下「穩定」的平坦曲線,就能符合固定失 傳統的預防故障或非包容故障目的會改善個別模組及元件硬體設計錯誤以及程式「臭蟲」,因此在理論上,於時間演變下計算非備援系統模組之可靠度的方式如下:

R(t) = e-lt (l 屬於固定失效率)。



圖1:元件失效率的時間演化圖

此公式可求得圖 2 的指數曲線。當時間 = 0,R(t) = 1 時,模組的理論完全可靠,且此時系統會達到壽命內的固定失效率(圖 1)。


圖2:單純 (Simplex) 單元的可靠度

預防故障


「Google 展示真正無人駕駛汽車是可能實現的未來科技。」
當然,我們必須找出一些判定系統失效率是否已達到穩定的方法,其中一項特別的方法就是讓系統進行高成本的「浸泡」測試,直到脫離燒機階段為止,通常只有軍用設備以及關鍵維生設備的製造商才會採用此方法。商用和家用系統的新產品,則會透過顧客試用後提供的試用建議調整可靠度的計算。平均失效間隔時間 (MTBF) 是常用的可靠度參數之一,其實就是失效率 (l) 的倒數,因此必須先假設失效在統計上的獨立性,再加總個別元件的失效率,才能求得模組的數值 l 或 MTBF。在圖 2 中可發現一個特別的情況,t = MTBF,以及 R(t) = 0.37,換言之,系統在接近對應 MTBF 的壽命時,僅有 37% 的機率能達到無失效的操作。

的 MTBF,以提高系統的 MTBF,當設備需要的壽命時間或任務時間低於系統的 MTBF 時,傳統方式的順利運作率也可達到介於 90-99%。一般而言,任務時間是計算的基礎,特別是軍用飛機場的 MTBF 可能僅有幾小時而已。下列多種方式皆可達成預防故障:

  • 元件品管,目前是指提高對偽造零件的警覺性。
  • 重型元件降額,僅使用 10 % 的功率能力。
  • 採用汽車或軍用溫度範圍的零件版本。
  • 透過冷卻系統等減少環境壓力。
  • 使用絕對最少的元件數量執行工作,亦即在無累贅元件的情況下達到設計效率。

由於軍事應用不計成本地要求保持輕量化,因此已廣泛應用上述技術。軍事領域的任務時間通常是以小時計算,而導彈等武器系統,甚至是以分鐘或秒計算,所以長時間的可靠度通常已達次要考量,但是對軍方而言,最重要的是長時間關機存放時能保持低衰退率,且相較於民間應用,較不重視安全性。

民用航空和汽車專案的任務時間較短,但是礙於成本,禁止納入預防故障設計,幸好,大型積體電路能以低成本,提供包容故障的可能性,包括自我檢查系統、板載「備用零件」以及自動復原。在非軍事應用中,包容故障不僅能達成無人駕駛車輛等研發,且兼具安全性。

我們將在第 2 篇文章中,探討理論上和實際上之包容故障設計的情況,包括空中巴士的飛行、太空梭的太空探索,以及星球探索機器人等範例。

我們在第 1 篇中探討了預防故障,本篇將說明硬體設計技術,如何處理微控制器系統發生暫時性及永久性故障的情況。

包容故障係假設無論採取多少預防故障的措施,仍可能會發生故障。

  • 失效安全 (fail-safe) 系統在偵測到故障後,無法恢復安全操作,但會以可預測的方式關閉系統,以免產生錯誤輸出。
  • 包容故障系統無需外部協助,即可透過內建能力在特定的操作故障下,持續正確執行程式及輸入/輸出功能。

事實上,此項簡單的假設定義非常難應用在真正的系統上。當假設系統出現暫時性或永久性故障時,必須滿足下列三項需求,才可達到「持續正確執行」的條件:

  • 錯誤偵測
    系統必須能偵測本身的錯誤。
  • 故障診斷
    系統必須能在執行應用程式期間偵測到錯誤後,將錯誤隔離於一組元件或模組中,以便在控制或關閉處理器的情況下略過或進行替換。
  • 故障修複
    系統必須在找出故障點後,消除故障的影響或降至最低。若為暫時性故障,則僅需「再試一次」即可。

最理想的情況,是盡速完成上述三項流程,以便將干擾資料生產之情況保持在最輕微的程度。防護性備援會以額外的硬體或軟體,或兩者兼具的方式出現,以達到故障後立即復原的設計目標,在實際情況中,幾乎無法避免各類元件發生失效。有些故障一定會導致系統遭受災難性損失,我們能做的就是將發生機率降低到可接受的程度,而時脈產生器等非備援式電路則需要特別設計,才可降低單一故障引發包容故障系統失效的機率。

涵蓋範圍係指偵測到故障並安全處理的條件式機率。所謂的「安全」,是包括關閉系統,但無不良影響(失效安全),或可隔離故障元件,且能持續操作(備援式系統的包容故障),亦可稱為「安全失效分數 (SFF)」,並以百分比表示。當然,在某些情況下,絕無法承受控制下的功能損失。試想若在高速公路上,無人駕駛車輛的自動控制功能突然關閉,會發生什麼事?在此情況下,唯有包容故障才是解決之道。

涵蓋範圍的概念,可評估特定之可靠性機制偵測和處理所有可能之失效模式的能力,若欲達到預期的可靠度,則涵蓋範圍必須達到幾乎完整。包容故障及預防故障不會彼此排斥,甚至可在進行特定設計時將兩者合併,而引進備援元件與導入備用模組,不會自動提升系統的可靠度。的確,基本上在備援系統中,低品質的元件即使擁有雙倍數量,相較於簡易系統,更無法完成任務,必須使用優質元件及降額設計,才能達到包容故障運算的最高效益。換言之,即使有元件失效,仍能提升系統的可用性及任務成功的機率。火星漫遊者號(Mars Exploration Rovers)在設計階段已特別注意可用性的問題,因此自 2003 年升空後,任務壽命時間比預期超出許多年。

單工及單工 + 診斷

單工或1oo1(一选一)系統無法偵測故障,因此可能會以不安全的方式失效。簡易診斷(或 1oo1D)是採用檢查電路監測處理器進行操作,不會為講究速度的即時系統「增加任何負擔」。

處理器晶片或獨立監控裝置中的「監視」計時器,常用於偵測處理器的失效,通常會在程式產生的訊號消失時,強制要求系統重置,這些簡易裝置通常會包含電源供應器監控功能。為了滿足 ISO26262 以及 IEC61508 等新式安全標準,必須採用更完善的解決方案,Yogitech 針對 ARM® Cortex M3 基礎式 MCU 推出的 fRCPU [1] 就是範例之一,另一個範例則是 Infineon 針對 TriCore™ 處理器推出的 CIC61508 Signature Window Watchdog [2]。這些診斷裝置能將簡易或 1oo1 系統轉變成 1oo1D 類型,以便系統能通過 IEC61508 SIL3 認證,亦即系統的 SFF 大於 99%,且輸出具有失效安全特性。

Texas Instruments Hercules™ 系列旗下的 TMS470M「安全」微控制器,在單一晶片中納入單一 Cortex-M3 核心、錯誤修正功能,以及自我測試邏輯 [3],但是,由於此元件的 SFF 低於 60%,因此不符合 IEC61508 的安全要求。這是因為錯誤檢查邏輯可能會對核心產生暫時性或系統性的錯誤,使偵測率無法超過 60%,若欲提升涵蓋範圍,最快速的方法就是採用重視時間的技術,以兩個以上的核心執行同一個程式並比較輸出。

多處理器模組備援

傳統上,電腦控制系統的備援元件是指數量雙倍(DMR 或 2oo2)、三倍,甚至四倍(QMR 或 2oo4)的處理器單元,且每一個處理器單元都是以「鎖步 (lock-step)」執行相同的程式。個別的比較器或表決邏輯 (voting logic)在多數處理器同意下,僅得單一輸出傳送到致動器,也就是說,DMR 無包容故障特性。因為表決邏輯無法判定錯誤輸出為何,因此在失效安全模式下,必須關閉兩個處理器,但是,若是 SFF 大於 99% 的 DMR,即能符合 SIL3 之要求。TMR 能允許單一處理器失效,並可在其他兩個處理器同意下,繼續運作,(圖1)QMR 系統則能處理兩件失效事件,且不會降低效能。若 TMR及 QMR 式系統的 SFF 都達到 99% 以上,就代表具備包容故障特性,可符合 SIL4 的要求。


圖 1:三重模組備援式單容錯系統

Texas Instruments 的 Hercules Cortex-R4F 基礎式 TMS570LS 以及 RM48x 微控制器,都包含兩個處理器核心,能以鎖步模式執行相同的程式,但是,其中一個核心僅可做為從屬檢查裝置,以產生輸出用於搭配主要輸出進行比較 [3]。由於系統的其他部分僅能使用主要輸出,因此 DMR 1oo2 系統無法搭配單一裝置進行建構,反之,可採用 1oo1D 配置以符合 SFF 大於 99% 之 IEC61508 SIL3 的要求。

瞬時故障和硬故障

若檢查系統發生錯誤,舉例而言,可能發生受到迷失宇宙粒子之影響,導致 RAM 單元狀態翻轉的絕無僅有事件。此瞬時故障的影響,僅需要簡單地再試一次引發錯誤的程式區段即可消除,但是系統必須內建再試一次的能力,否則將會導致不必要地關閉硬體資源。若系統能在電子雜訊環境中運作,則為了讓電路/軟體正常運作而花費之時間與努力,即已獲得優渥的回報,除此之外,錯誤檢查系統還必須能快速偵測到「硬」故障,以免無意義的再次嘗試。

靜態與動態冗余

含有表決電路的基本模組冗余通常歸類為靜態冗余,即所有的模組都已「接通」且正在運作。若處理器模組發生硬故障,可以略過或關閉。

動態冗余包含熱或冷備份單元,會依據故障偵測邏輯及/或軟體的需求切換開關。動態冗余已廣泛運用於太空梭 [4] 及空中巴士飛機中 [5],後者已更進一步採取了預防措施,藉由導入多樣性,以不同的微控制器平台搭配個別團隊撰寫的軟體組合成處理器模組,防止多樣性引發的共模故障。這些系統搭載的雙處理器 1oo1D 模組,目前可由 Hercules 雙核心裝置等單一晶片取代,舉例而言,兩個晶片能進行合併,組成具備包容故障特性,並符合 SIL4 標準的 1002D 系統。(圖 2)在此情況下,兩個處理器皆已「接通」且接收相同的輸入,包括共同的「重置」,備份單元的輸出會在下達切換命令後,取代失效模組的輸出,雖然處理器的時脈不同步,但切換時的干擾應該相當輕微。


圖 2:雙核心安全微控器式單容錯系統

結論

由於研發成本高,因此以往提到包容故障的概念,通常只會聯想到飛機及太空梭等超高成本的專案,目前無人駕駛車輛上路的理想已成真,因此,未來的汽車系統有可能需要採用包容故障的技術。汽車和工業應用分別必須符合 ISO26262 以及 IEC61508 的可靠度國際標準,也因為新一代的「安全」微控制器,使工程人員可推出符合這些標準的設計。

參考資料:
[1]www.fr.yogitech.com
[2]www.infineon.com
[3]www.ti.com
[4]文獻: Redundancy Management Technique for Space Shuttle Computers, J.R.Sklaroff, IBM Journal Research & Development, 1976
[5]文獻: AIRBUS A320/A330/A340 Electrical Flight Controls, A Family of Fault-Tolerant Systems, Dominique Britxe, Pascal Traverse, IEEE 1993

瀏覽更多工程文章,請瀏覽 www.designspark.com, 是一個平台提供網上資源及設計支援給工程師,由RS提供。

回到頁首