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