内建自测试
内建自我测试(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.