內建自測試
內建自我測試(built-in self-test, BIST)也稱為內建測試(built-in test、BIT),是一種讓設備可以自我檢測的機制,也是可測試性設計的一種實現技術。工程師會為了符合以下需求,在設計時加入內建自測試:
- 高可靠度
- 較低的維修次數
也可能是因為以下的限制而加入內建自測試:
- 不易聯絡技術人員維修
- 在製造生產時的測試成本考量。
內建自測試的目的之一是在簡化產品複雜度,因此降低成本,並且減少對外部測試設備的依賴程度。內建自測試可以在以下二方面減少成本:
- 減少測試週期的時間
- 減少在測試時需要驅動或是檢測的信號數量,因此減少測試/測試探針設計的複雜度。
兩者都可以縮短自動測試設備(ATE)的測試時間。
命名
[編輯]內建自測試的名稱及概念源自在積體電路中加入偽亂數產生器(PRNG)及循環冗餘校驗(CRC)的作法。若IC中所有記錄狀態的暫存器都已在一個或是多個掃描鏈上,則暫存器的機能以及暫存器之間的組合邏輯電路再配合大量足夠的隨機輸入,會產生獨特的CRC簽名(CRC signature)。因此積體電路需要作的是由偽亂數產生器產生大量及足夠的様本數據後,儲存預期的CRC,並且進行測試。預期CRC簽名和實際CRC簽名的比較是透過JTAG IEEE 1149.1 標準所進行。
應用
[編輯]內建自測試常用在武器、航空電子、醫療設備、車用電子、各種複雜機械、各種無人值守機械]]以及積體電路等。
車用
[編輯]汽車為了增加安全性以及可靠度,會進行自我檢測。例如,大部份汽車的防鎖死煞車系統就會在固定安全週期進行檢測。若發現線路斷路或是有其他故障,防鎖死煞車系統會以一般煞車系統的方式運作。大部份的汽車引擎控制器會針對所有感測器規劃「跛行模式」(limp mode),若感測器或是接線損壞,引擎可以繼續運作。
航空
[編輯]幾乎所有的飛機都有內建自測試。內建自測試的目是為了隔離失效的現場可更換單元,之後在倉庫拆下更換,或是由製造商拆下更換。商用飛機在飛行時才能賺錢,因此使用內建自測試來減少在地面等待維修的時間,並且內建自測試也可以提供系統的安全性。軍機也有類似的情形,若在飛機上使用內建自測試,有故障時,系統會切換到其替代模式或是使用其他可運作的設備。關鍵性的飛機零組件多半不只一個,或者會規劃冗餘。若是非關鍵的飛機零組件(例如影音系統),則會有提供部份機能的「跛行模式」。
電子
[編輯]積體電路製造
[編輯]集成電路(IC)製造商會利用內建自測試來進行更快,且更便宜的集成電路生產測試。IC中會有一個測試IC部份機能或是所有機能的模式。有此情式下,客戶也需要這様的模式。例如一些先進的現場總線,會提供內建自測試機制來確認功能性。若是高階的內建自測試,可以視為類似電腦中BIOS的加電自檢(POST),在開機時測試隨機存取存儲器以及匯流排。
電腦
[編輯]個人電腦多半會在送電後進行加電自檢。在電腦中進行自測試的成本及難度很不高。大部份現代的電腦(包括嵌入式系統),都會針對電腦、記憶體以及軟件進行自測試。
無人值守的機器
[編輯]無人值守的機器會利用內建自測試來確認是否需要保養或是修理。常見的測試包括溫度、濕度、通訊是否正常、竊賊或是電源供應是否不良。例如電源系統及電池往往會有電應力,容易過熱或是損壞,因此需要常常測試。
通訊測試是遠端系統中最關鍵的項目。最普通,最無名的無人值守系統之一是電話集中器盒。其中包含了集中電話線線及資訊的複雜電子設備,將其路由到中央交換機。電話集中器盒會持續的進行測試,方式是驗證是否存在稱為「frame」的週期性數據模式(稱為幀,參照SONET)。每秒會重複八千個frame。
遠端系統也會有針對本地回送的通訊測試,是為了測試傳送器及接收器,也有遠端測試,在不使用遠端設備電腦或軟件的情形下測試通訊線路。若電路上沒有回送機能,就會用軟件來實現此一機能。例如網際協議就定義了支援軟件回送的本地位址 (IP-Address 127.0.0.1,一般會對應名稱localhost)。
許多遠端系統會有自動重置機能,可以重新啟動其遠端電腦,若在沒有通訊、異常軟件運作或是危險情形時會觸發此機能。人造衛星有自動重置機能,也加入針對電源及姿態控制的自動重啟機能。
醫療
[編輯]醫療設備會自我測試保證其安全性。加電自檢(POST)會進行綜合測試。之後會有定期的測試,確保設備在加電自檢後仍是安全的。安全關鍵設備一般會定義「安全週期」,時間會相當的短,短到不會意外。每個安全週期內至少會檢查一次重要的關鍵機能。定期測試的內容一般會比加電自檢的內容要少。
軍事
[編輯]第一個電腦控制的內建自測試軍事系統是美國的LGM-30義勇兵洲際彈道飛彈[來源請求],用內部的電腦來控制測試,減少測試用纜線的重量及接頭。義勇兵洲際彈道飛彈是最早布署永久安裝電腦控制自測試的主要武器系統。
衍生版本
[編輯]有許多由內建自測試衍生的機能,依所做的工作或是實現的方式來區分:
- 可編程內建自測試(pBIST)
- 記憶體內建自測試(mBIST),配合Marinescu演算法[1]
- 邏輯內建自測試
- 類比及混合信號內建自測試(AMBIST)
- 連續性內建自測試(CBIST、C-BIT)
- 事件驅動內建自測試,例如在飛機降落後進行的內建自測試
- 週期內建自測試(C-BIT/P-BIT)
- 事件驅動內建自測試(IBIST)或是使用者/操作員啟動的內建自測試(I-BIT或O-BIT)
- 送電內建自測試(PupBIST, P-BIT)
- 自動內建自測試(ABIST)
參考文獻
[編輯]- ^ Marinescu, M., 1982. Simple and Efficient Algorithms for Functional RAM Testing. 1982 IEEE Test Conference, Philadelphia, (Nov.). IEEE Computer Society, pp. 236-239.
- Laung-Terng Wang, Cheng-Wen Wu and Xiaoqing Wen. VLSI Test Principles and Architectures: Design for Testability. Morgan Kaufmann. ISBN 978-0123705976.
相關條目
[編輯]外部連結
[編輯]- Hardware Diagnostic Self Tests (頁面存檔備份,存於互聯網檔案館)
- BIST for Analog Weenies (頁面存檔備份,存於互聯網檔案館) - A Brief general overview of the capabilities and benefits of BIST by Analog Devices.