中共青岛市委党校 孙丽平
基于Scan Works的含边界扫描器件电路板的测试方法研究
中共青岛市委党校 孙丽平
【摘要】本文从工程应用的角度,通过利用Scan Works软件和通用边界扫描器,提出一种通用的含边界扫描器件电路板的测试思路,优化了测试矢量,从簇模型的建立到Macro语言编写测试程序,构建了完整的测试流程。
【关键词】边界扫描;Scan Works;扫描链路;Macro语言
近年来,随着边界扫描器件的广泛应用,边界扫描测试系统和测试软件的开发也取得了非常大的进展。本文以ASSET公司的Scan Works软件为基础的测试平台,搭建专用的测试系统对含边界扫描器件的电路进行测试。
1.1测试系统构成
本文研究采用的开发平台是Scan Works测试系统。测试硬件包括:计算机、Windows操作系统、美国ASSET Inter Tech公司的Scan Works测试软件、PCI-410硬件控制器、接口适配盒和电缆。测试软件Scan Works能根据网络表和复杂逻辑器件的BSDL文件,产生所需测试程序。边界扫描控制器PCI-410能够实现标准测试,将程序中的测试指令和测试向量转换成符合IEEE标准的数据形式,再经边界扫描总线输出给UUT,接收响应数据回到测试系统中,从而实施测试。
1.2被测电路介绍
图1 被测电路图
该电路是某雷达设备上的对空检测板的部分电路,作用是把雷达的回波信号进行处理,从中检测出有用的目标信息,并把目标坐标送给任务计算机软件进行跟踪处理。
完整的测试流程如图2所示:
图2 边界扫描测试流程
2.1建模
通过对电路网表文件的分析,获取UUT器件连接关系、扫描链路信息、边扫器件之间、边扫器件与非边扫器件之间引脚对应关系,为测试向量生成做好准备[1]。在测试之前,就要获取被测边扫器件的BSDL文件,对于没有模型的器件需要为其建立模型。建模分两种方法。第一种方法:建立器件模型——编译模型——加载模型。模型由TCL(Tool Command Language)语言编写。第二种方法:建立簇模型。簇模型对电路进行基本功能的描述,负责完成边界扫描驱动器和接收器之间的互连测试[2]。导入测试工程网表,生成Scan Works格式的网表文件。
2.2建立扫描链路
在建立工程之前,要进行软件环境设置,包括工程路径、文本阅读器、库路径等;建立扫描链内的器件的扫描顺序、创建测试检查边扫路径、边扫器件之间的互连测试和边扫器件和非边扫器件之间的测试[2],这些都是为接下来使用Scan Works执行测试和故障诊断做准备。
(1)分析被测板电路以确定扫描链:要确定JTAG链的个数和顺序、边扫器件类型、是否包含存储器。
(2)扫描路径完整性验证的测试:对测试程序进行编译,运行,由Scan Works产生测试报告来对每个边扫器件的测试结果进行阐述,同时,当边扫控制器发送的测试向量通过扫描链路后,将实际测量值与发送值进行比较,即可判定该器件功能是否正常。
(3)创建测试工程。进一步确定扫描链上的边扫器件的扫描顺序,软件自动创建设计描述文件并执行扫描链分析和验证。首先进行扫描路径配置。通常多个边扫器件的TDI和TDO会互相连接,形成TDI-TDO-TDI形式的菊花链[3]。通过芯片自带的BSDL文件和程序算法产生测试数据,对边界扫描链进行测试,在完成芯片间测试的基础上完成整板的功能测试和互连测试。最后,导入BSDL文件,完成扫描链设置。如图3所示:
图3 扫描路径
(4)Buses(总线)定义和Macro语言
Buses是来将边扫器件的引脚进行分组定义,称为总线驱动。Macro语言是VHDL语言的子集,由编译器和解析器组成。编译器用来获取代码和生成可执行程序,解析器获取可执行程序并执行。
下面截取一段Macro典型功能代码,用来测试U4双稳态触发器。实现的功能是:利用U4周围的边扫器件完成其簇测试并完成激励的输入、获取和比较。
UUT:=BYPASS;
Sc_scan(IR);
U1.Istruction.TDI:=SAMPLE;
U7.Istruction.TDI:=SAMPLE;
Sc_scan(IR);
U1_Enable:=0;
U7_Enable:=11b;
Sc_scan(DR);
U1.Istruction.TDI:=EXTEST;
U7.Istruction.TDI:=EXTEST;
Sc_scan(IR);
FF_PRESET:=1
Apply group(FF_CLK,FF_J,FF_K_NOT,FF_CLEAR);
Compare group(FF_Q,FF_Q_NOT);
Apply data(0b,0b,0b,0b);
Compare data;
Apply data(0b,1b,1b,1b);
Compare data(1b,0b);
Apply data(0b,0b,0b,1b);
Compare data(1b,0b);
Apply data(1b,0b,0b,1b);
Compare data(0b,1b);
2.3扫描链路验证
扫描链路验证即检查扫描链的完整性和扫描链中器件正确的扫描顺序,包括原理图、网表和Scan Works中的设计描述。还要检查BSDL文件和扫描链描述检查板上器件装配是否正确[4]。
2.4边扫器件之间的互连测试
首先需要对原理图进一步分析,确保模型的设置与实际电路功能相符,避免网表和编译出错。编译成功后,就可以查看该板的引脚短路和开路故障覆盖率。运行测试程序,就可以生成需要的结果。在Scan Works软件完成测试后,要进行测试验证,即人为设置故障点,编写Macro程序,检验理论值与人为设置的故障是否相符,来判定测试的有效性。
根据前述的边界扫描测试法的研究,可以对常见故障进行模拟测试。
(1)即使实际测试结果与模拟测试结果一致,也并不能说明电路就完全没有故障,在测试项目中,需要保留一些整体功能测试。(2)对于小电抗的分立元件或射频混合信号电路,IEEEll49.4标准的运用受到限制。
参考文献
[1]雷加,李延平.数模混合边界扫描技术的研究现状与进展[J].计算机测量与控制,2010,04:734-737.
[2]曹子剑,杜舒明.边界扫描在带DSP芯片数字电路板测试中的应用[J].电子工程师,2008,03:12-14.
[3]尤路,谭剑波,夏勇.基于边界扫描技术的通用测试系统设计[J].合肥工业大学学报(自然科学版),2013,04:452-455.
[4]“IEEE Standard Test Access Port and Boundary-Scan Architecture”, IEEE Standard 1149.1-2001,IEEE Standards Board,345 East 47th St.New York NY 10017,2001.
作者简介:
孙丽平(1976—),女,硕士,工程师,研究方向:设备维修。