边界扫描测试生成与故障诊断的研究与实现

2015-06-27 08:26韦翠荣颜学龙尚玉玲
计算机工程 2015年1期
关键词:电路板矢量边界

韦翠荣,颜学龙,尚玉玲

(桂林电子科技大学电子工程与自动化学院,广西桂林541004)

边界扫描测试生成与故障诊断的研究与实现

韦翠荣,颜学龙,尚玉玲

(桂林电子科技大学电子工程与自动化学院,广西桂林541004)

随着电子技术的日益发展,电子电路系统的集成度和复杂性越来越高,边界扫描技术应用越来越广泛。在研究边界扫描基本结构和测试原理的基础上,给出互连测试矢量生成与故障诊断算法,对互连测试矢量生成和故障诊断进行研究与实现。使用VS2008软件作为平台开发边界扫描测试系统,采用走步1算法和改良计数算法进行矢量的生成,并根据W步自适应算法进行故障诊断。结果表明,系统自动生成的测试矢量测试时间短,效果好,故障诊断能力强,诊断部分能够消除征兆混淆和征兆误判现象,对设置的故障能够精确地定位和隔离。

边界扫描;测试矢量;互连测试;故障诊断;测试系统

1 概述

随着微电子技术、微封装技术和印制板制造技术的不断发展,印制电路板变得越来越小,密度越来越大,复杂程度越来越高[1],传统的测试方法难以为继,一种新的测试方法——边界扫描技术应运而生。边界扫描技术作为标准化的数字电路测试及可测性方法[2]能够有效地解决传统测试方法的不足,在工业界得到普遍的认同和支持。互连测试是边界扫描技术的主要内容之一,它能够对电路板之间的互连线进行测试,主要检测电路板级的开路、短路或者呆滞型等故障[3]。影响边界扫描互连测试效率的关键之一是测试矢量的生成与故障诊断能力。因此如何缩短测试矢量生成时间,提高故障诊断能力,是目前亟需解决的问题。

本文对边界扫描互连测试矢量生成与故障诊断进行研究与实现,使用VS2008软件作为平台开发边界扫描测试系统,并采用走步1算法和改良计数算法进生成测试矢量,最后根据W步自适应算法进行故障诊断。走步1算法故障诊断能力强[4],改良计数算法紧凑性指标高,而 W 步自适应算法灵活性好。

2 边界扫描结构及测试原理

2.1 边界扫描技术的基本原理

边界扫描测试的基本思想是在靠近器件的每一个输入/输出管脚处增加一个移位寄存器单元[5]。在正常工作期间,这些附加的移位寄存器单元是透明的,不影响电路板的正常工作。在测试期间,这些寄存器单元用于控制输入管脚的状态,并读出输出管脚的状态,这样就可测试出电路板中器件的好坏及相互连接的正确性[6]。IEEE1149.1标准[7-8]给出了边界扫描测试的基本结构,如图1所示。

图1 边界扫描基本结构

测试存取端口(Test Access Port,TAP)、TAP控制器、指令寄存器和测试数据寄存器组是IEEE1149.1标准分成的4类基本硬件单元。测试存取通道有1条输出连接线和4条输入连接线分别是:测试数据输出线(Test Data Output,TDO),测试数据输入线(Test Data Input,TDI),测试测试方式选择输入线,时钟输入线,测试复位输入线。

2.2 互连测试原理

互连测试主要是指对电路板上器件之间互连线的测试。BS器件里的扫描单元就像虚拟探针,要测试BS器件之间的连线是否正常,可以通过给输出型扫描单元赋值,从输入型扫描单元捕获这个值的方法进行判断[3]。图2所示为互连测试的一个简单例子。

图2 互连测试示例

输入3组测试矢量(1,1,1,0)、(0,1,0,1)和(1,0,0,1),从接收扫描单元得到3组测试响应(1, 1,1,0),(0,0,0,0)和(0,0,0,0)。根据一定的故障诊断算法就可以检测到图2中Net1和Net2存在逻辑与的桥接短路故障,Net4存在固定为0的呆滞型故障[9]。

3 互连测试矢量生成与故障诊断

边界扫描测试系统是在VS2008编程软件环境下运用C++语言进行编程。软件部分可大致划分为4个模块:文本编译模块,测试矢量生成模块,测试运行模块和故障诊断模块。如图3所示为互连测试系统框图。

图3 互连测试系统框图

文本编译模块主要是对网表文件和BSDL文件进行编译,并将编译好的数据保存到数据库里;测试矢量生成模块主要是对文本编译模块提取的电路板信息进行分析处理形成测试链路,并结合各种测试矢量算法形成互连测试矢量;测试运行模块主要是对电路板测试激励进行驱动和测试响应的回收;故障诊断模块主要是对测试运行的结果进行分析,判断电路有无故障,若存在故障,则对故障进行精确定位。

3.1 测试文件分析

测试矢量生成需要由BSDL文件和网表文件提供相应的被测板信息。文本编译模块部分主要是对这2种文件的信息进行提取,它根据研究对象BSDL文件以及Protel网表文件自身结构特点,运用flex软件与bison软件实现词法分析、语法分析、信息储存等功能,最后能够对目标文件进行全面、快速、准确的解析。系统扫描编译BSDL文件,形成了有关BSDL器件库的信息,包括器件引脚信息、扫描单元信息、封装信息和器件支持的指令集以及指令编码;系统扫描编译网表文件,形成了有关电路板网络连接的信息,具体到一个网络由哪一些器件-引脚组成[10]。

3.2 互连测试矢量生成算法

进行矢量生成最关键的还是算法的确定,算法的选择主要考虑2个方面的指标,即紧凑性指标和完备性指标。经典的测试生成算法主要包括2种类型:一种单纯考虑测试向量集的紧凑性指标,以改良记数序列算法为代表;另一种单纯考虑测试向量的故障诊断能力,以走步1算法为代表[11]。互连测试矢量常用的算法有走步1算法、走步0算法、改良记数序列算法、记数/补偿、等权值算法等[3]。可以根据被测电路的规模和不同的测试需求选用不同的基本算法。

采用走步1算法和改良计数算法生成矢量,下面对这2种算法进行简单介绍,假设待测网络数为n。

走步1算法:紧凑性指标为n,其测试向量集为n阶单位矩阵,如下所示:

改良计数算法:紧凑性指标为p=lb(n+2),其测试矩阵如下所示:

以上矩阵为n行、p列。

3.3 互连测试矢量生成

生成互连测试矢量的流程如图4所示。

图4 互连测试矢量生成流程

具体步骤如下:

(1)提取被测电路板上所有BS器件的基本信息,形成扫描粗链。再提取每一个BS器件的7段码信息,结合粗链形成扫描细链。

(2)提取网络信息,将可测网络提取出来并判断它们的网络类型,采用适当的测试算法对这些网络产生初始的测试矢量。

(3)将初始测试矢量在扫描链上展开即给扫描单元赋值,得到整个扫描链的并行测试矢量(Parallel Test Vector,PTV)集和对应的并行期望响应矢量(Parallel Expect Response Vector,PERV)集。

3.4 故障诊断

系统进行故障诊断即可得出互连测试结果。生成矢量采用的算法不同则诊断的方法也不同。采用走步1算法生成矢量,直接就可以分析出结果;采用改良计数算法,则使用W步自适应算法进行故障诊断[12]。2种方法各有优缺点,采用走步1算法生成矢量,其故障诊断能力强直接可以分析出结果,但是紧凑性指标低;采用改良计数算法,紧凑性指标高,但是若初级测试后还存在征兆误判或混淆现象,那么还需要追加W步由走步1生成的矢量到被测电路板上,故障诊断能力弱。图5所示为故障诊断流程。

图5 故障诊断流程

具体的故障诊断步骤如下:

(1)判断矢量生成采用何种算法。若采用改良计数算法就加载lb(n+2)个并行测试矢量(PTV)到被测板上,若采用走步1算法就加载n个并行测试矢量到被测板上。

(2)得到响应结果后,将并行响应矩阵中的向量与并行期望响应矩阵中的向量进行异或运算,如下式所示。

(3)当f(vx)=00…0H时电路无故障,当f(vx)≠00…0H时电路存在故障。

(4)若步骤(3)分析得出电路无故障,进入步骤(6)。若电路存在故障,记录f(vx)中矢量位为字符“1”的位置(设为y),判断矢量的值。当00…0H时,是固定为 0的呆滞型故障,进入步骤(6)。当时,是固定为1的呆滞型故障,进入步骤(6)。当且时,进入步骤(5)。是串行响应矩阵中的向量。

(5)若测试采用的是走步1算法,是桥接故障,进入步骤(6)。若测试采用的是W步自适应算法,检测测试响应矩阵中与相同的串行响应矢量数目k。若k=1,是桥接故障,进入步骤(6);若k>1,可能存在征兆混淆或误判现象,识别出具备相同SRV的网络子集R,令W=|R|。加载W个由走步1算法生成的矢量到被测板上,进入步骤(2)。

(6)给出故障诊断报表。

4 测试验证

测试中采用一块实验板作为被测对象,搭建了一个简单的测试系统。该实验板主要由sn74bct8244和sn74bct8374两块边界扫描芯片构成,如图6所示。为了方便对电路故障进行模拟,在测试板上设置了4个开关,调节开关F1、F3即可以完成对互连测试产生的故障进行模拟。

图6 实验板电路结构

由于电路比较简单,因此采用走步1算法就能很快进行测试和诊断。走步1算法得到的初始测试矢量在扫描链上展开后得到的并行测试矢量PTV和并行期望响应矢量PERV都保存到数据库中,如图7所示为存入数据库的矢量集,其中,X代表任意值。

图7 生成的测试矢量

调节开关 F1,使得网络 NetU1_16和网络NetU1_17桥接短路,调节开关F3,使得网络NetU1_ 15与地短路。在 EXTEST指令有效状态下,进入Shift_DR状态,将测试矢量(PTV)从TDI端输入,通过边界扫描通路将测试矢量串行加到sn74bct8244和sn74bct8374的边界扫描单元中,进入Update_DR状态,sn74bct8244和sn74bct8374边界扫描单元中的数据锁存输出到输出管脚上,进入Capture_DR状态,sn74bct8374把输入管脚的数据捕捉到相应的边界扫描单元,进入 Shift_DR状态,sn74bct8244和sn74bct8374边界扫描单元中的数据从TDO端串行输出。

最后得出的结果分析如表1所示,由于版面有限只列出前3组。

表1 矢量结果比较

通过故障诊断算法快速检测到网络NetU1_16和网络NetU1_17桥接短路,网络NetU1_15与地短路,结果和假设的一样。结果如图8所示。

图8 故障诊断结果

上述验证结果表明,测试系统生成矢量快速,测试时间短,故障检测率高。相对于传统的测试系统,该系统嵌入数据库提高了数据提取和处理速度,采用的测试算法故障诊断能力强,消除了许多算法不能消除的征兆混淆现象和误判现象,故障检测率高达100%。与传统的诊断算法相比,本文采用的诊断算法灵活性强,根据不同的测试生成算法,能够采取不同的诊断方法。

5 结束语

本文给出互连测试矢量生成与诊断算法,能够对实验板预设故障进行检测与定位,快速地完成测试任务。实验结果表明,该方法具有测试成本低、生成矢量故障覆盖率高及操作简便等优点。系统实现采用VS2008软件开发平台,运用模块化和面向对象设计的方法,为建立具有扩展性和复用性的自动测试系统提供有力手段,实现系统的自动高效检测。

[1] 孙媛媛.FPGA的边界扫描测试方法研究[D].哈尔滨:哈尔滨工程大学,2004.

[2] 贾 勇.FPGA连线资源的自适应诊断算法研究[D].哈尔滨:哈尔滨工程大学,2005.

[3] 张学斌.基于JTAG的互连测试技术[J].今日电子, 2004,(4):5-6.

[4] 张学斌.基于边界扫描技术的互连测试[J].电子元器件应用,2005,7(3):45-46.

[5] 潘小龙.基于边界扫描技术的测试系统的研究与应用[D].南京:南京航空航天大学,2008.

[6] 彭喜元,俞 洋,孙 宁.边界扫描技术的板级实现方法研究[J].电子测量与仪器学报,2004,(z1):17-20.

[7] IEEE.IEEE Std 1149.1-1990 IEEE Standard Test Access Port and Boundary——Scan Architecture[S]. 1990.

[8] IEEE.IEEE Std 1149.1-2001 IEEE Standard Test Access Port and Boundary Scan Architecture[S].2001.

[9] 王新玲,王 红,封锦琦.基于边界扫描的互连测试技术实现[J].测控技术,2012,31(z1):245-247.

[10] 罗秋明.基于BSDL和Protel网表的BST向量生成软件[J].计算机应用与软件,2008,20(1):66-68.

[11] 胡 政,钱彦岭,温熙森.边界扫描测试优化算法——极小权值-极大相异性算法[J].测控技术,2000, 19(9):9-11.

[12] 周清林.基于电路板互连的自适应测试生成算法研究与实现[D].桂林:桂林电子科技大学,2003.

编辑 顾逸斐

Research and Implementation of Boundary Scan Test Generation and Fault Diagnosis

WEI Cuirong,YAN Xuelong,SHANG Yuling
(School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,China)

With the development of electronic technology,integration and complexity of electronic circuit system are increasingly higher.Boundary scan technology is more and more widely applied in electronic circuit system test.Based on the basic structure and principle of the boundary scan,this paper gives the algorithm of interconnect test vector generation and fault diagnosis,to research and implement interconnect test vector generation and fault diagnosis.In the paper, VS2008 software as a platform is used to develop a boundary scan test system,Walk-1 algorithm and MCSA algorithm are used to generate the vector,and the W step adaptive algorithm is used for fault diagnosis.Experimental results show that the test vector generated by system automatically has a short test time and a good test effect and its ability of fault diagnosis is strong.Diagnosis part can eliminate the confusion and misjudgment phenomenon,and the set fault can be accurate location and isolation.

boundary scan;test vector;interconnect test;fault diagnosis;test system

1000-3428(2015)01-0303-06

A

TP274

10.3969/j.issn.1000-3428.2015.01.057

国家自然科学基金资助项目(61102012)。

韦翠荣(1987-),女,硕士,主研方向:边界扫描技术,计算机辅助测试;颜学龙、尚玉玲,教授。

2014-02-24

2014-03-22 E-mail:1163511219@qq.com

中文引用格式:韦翠荣,颜学龙,尚玉玲.边界扫描测试生成与故障诊断的研究与实现[J].计算机工程,2015,41(1): 303-308.

英文引用格式:Wei Cuirong,Yan Xuelong,Shang Yuling.Research and Implementation of Boundary Scan Test Generation and Fault Diagnosis[J].Computer Engineering,2015,41(1):303-308.

猜你喜欢
电路板矢量边界
拓展阅读的边界
矢量三角形法的应用
意大利边界穿越之家
论中立的帮助行为之可罚边界
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用
废弃电路板拆解技术研究现状及展望
单片机实验电路板的安装与调试
微波辅助浸取废弃电路板中铅锡锑
基于废弃电路板金属回收的破碎试验研究