电路板快速测试系统设计需求及应用
1、引言 随着电子技术的不断发展,电子设备中越来越多的使用大规模可编程数字逻辑器件,如FPGA等。这种器件的使用提高了电子设备的性能,增加了可靠性,但是与此同时复杂的逻辑关系、电路板快速测试系统设计需求及应用细密的引脚也给设备的维修带来了巨大的压力。维修人员无法通过探针来测量芯片引脚上的波形,而使用“针床”等专用测试平台又需要付出很高的成本。电路板快速测试系统设计需求及应用边界扫描技术的诞生为这一问题提供了一个新的解决途径。边界扫描协议是联合测试工作组(JTAG:Jointtestaction group)提出了,并于1990年形成了IEEE1149.1工业标准。该标准通过设置在器件输入输出引脚与内核电路之间的边界扫描单元对器件及外围电路进行测试,从而提高了电路板的可测性。边界扫描就像一根“虚拟探针”,能够在不影响电路板正常工作的同时,采集芯片引脚的状态信息,通过分析这些信息达到故障诊断功能。本文针对当前复杂数字电路板快速测试难的现状,设计了一套基于边界扫描的电路板测试系统,利用该系统可以对含有边界扫描接口的复杂数字电路板进行快速诊断,帮助维修人员进行维修。
2、基于边界扫描的电路板测试系统设计
2.1设计需求
(1)对于包含边界扫描接口的电路均可测试,用户需根据实际情况自定义被测电路板JTAG扫描链结构。
(2)既能在线对电路板上边界扫描链路及接口信号进行采集,又能在离线状态实现对电路板上模块的测试功能。
(3)能够实现数据的显示、录制、分析,预置系统触发、停止条件的功能。
(4)对采集到的信号进行快速分析,产生测试报告供维修人员使用。
2.2基本结构及工作原理
电路板快速测试系统设计需求及应用 该系统包括一台计算机和一个边界扫描适配器,两者使用计算机并口相连。
使用该边界扫描测试系统进行测试时应首先进行电路板上扫描链的测试,确保扫描链正常。然后根据实际情况选择进行在线功能测试或者离线功能测试。在线功能测试即电路板不脱离设备,通过采集电路板内边界扫描单元及电路板接口的数据判断电路板工作状态和故障分布情况。此步骤适合于对电路板进行快速诊断、快速维修时使用。离线功能测试即电路板脱离设备,在连接好电源后,由测试系统对电路板进行信号加载,分模块对整个电路进行测试。此步骤适合于对故障电路板维修时使用。如果怀疑系统自身出现故障,可以通过自测试进行诊断。
2.3边界扫描适配器设计
边界扫描适配器采用Altera公司的EPM7128SLC84-15芯片作为控制器,负责与计算机相连,上传、下载测试数据和控制字,按时钟产生边界扫描控制时序及测试向量。芯片内部按功能分应包含通信接口、指令寄存器、数据寄存器、TAP控制器、信号采集模块、信号发生模块和分频模块。结构框图如图2所示。
从计算机传来的指令信号和数据信号通过通信接口分别保存在边界扫描适配器内部的寄存器中,然后适配器中的其它模块如TAP控制器、信号采集模块和信号发生模块将依据指令寄存器中的指令字进行相应的工作,包括发送JTAG总线时序、移位、并行采集数据和并行发送数据等。采集的数据通过通信接口上传给计算机以供分析时使用。分频器用来产生各模块工作所需要的时钟信号。本文在MAX+PlusII环境下,使用VHDL语言对各模块进行设计,顶层文件使用图形输入方式将各模块连接起来。
2.4计算机软件设计
本系统的计算机软件采用VisualBasic6.0**编程语言开发,其主要功能是通过计算机并行端口实现计算机与边界扫描适配器之间的实时通信,将指令信号和测试数据发送给边界扫描适配器,同时将测试响应数据上传至计算机,并完成对数据的处理、显示、存储等操作。
(1)系统的软件组成
系统软件包含下列组件:系统主程序、物理接口程序、硬件设置程序、实时采集程序、离线测试程序、自测试程序和数据库管理程序。
系统主程序:显示系统主界面,并与系统中其它模块进行切换。
物理接口模块:控制计算机端口,负责从计算机端口读取数据和将数据发送到端口上。
系统硬件设置模块:设置系统的各种参数,包括扫描链路的结构、芯片型号,同时进行总线故障测试和内部边界扫描链测试,以验证扫描链路是否畅通。
在线测试模块:使用外测试命令,对电路板上边界扫描器件引脚以及电路板接口信号进行采集、显示与分析。
离线测试模块:依次向电路板接口或者板上边界扫描器件输入激励测试信号,观察其响应信号是否与标准结果一致,判断板上连线、功能模块是否正常。
自测试模块:输出系统自测试向量,观察系统自响应是否与标准一致,检查系统是否工作正常。
数据库管理模块:保存系统数据、测试向量、标准测试结果等数据,用以查询比较等操作。
(2)物理接口模块
由于在VB中不能直接使用命令对计算机端口进行操作,本文中选择动态链接库inpout32.dll帮助系统软件实现对底层硬件的控制。在开发计算机端Windows应用程序时只需在开发前将其驱动程序相关文件拷贝到计算机,并且在开发过程中注册其动态链接库相应的API函数,即可实现并行端口的应用。本文物理接口模块中引用了动态连接库中的两个函数:Inp32和Out32用于并行端口的输入和输出,相关程序代码如下所示。
写入操作:Outadd,reg
读出操作:reg=Inp(add)其中,add为写入/读出的地址,reg为写入/读出的数据。
(3)在线测试模块在线测试模块主要实现对扫描链信号的循环采集,同时将采集到的结果显示在屏幕上。采集数据的同时对扫描链上信号的变化频率进行统计,实时显示统计结果。可预置中断暂停条件,使用虚拟工具箱单独显示关键信号状态,储存采集数据,进行信号分析,生成报告表供维修人员使用。
(4)离线测试模块离线测试模块主要实现电路板单独测试功能。用户可选择进行自动测试或是手动测试。自动测试时,系统将已生成的测试向量依次送入被测电路板,然后采集电路板响应向量,将其与标准响应进行比较。手动测试时,用户可根据需要利用系统提供的工具手动编写测试向量,系统将一步步执行用户的指令。
3、故障分析策略
在边界扫描测试系统进行循环采集时,一般采集频率较低。例如使用10MHz的时钟对边界扫描链上的数据进行移位输出,如果扫描链上有500个单元,则采集数据频率*高只能达到20KHz。而电路板上信号的脉宽有的很短,如何对采集到的数据进行故障分析成为系统设计中的难点。本系统主要采取下列两个方法进行分析。
如果扫描链的采集间隔远大于信号脉宽,系统可能很长时间无法采集到信号的变化,因此信号统计法需要运行相当的时间才能保证分析的准确性。
方法二:数据分析法
记录采集到的数据,计算每路信号之间的差异,着重观察相同的信号,如全0、全1或者其它。出现全0、全1的引脚易发生呆滞故障,而出现信号的变化且采集信号完全相同的引脚易发生断路故障。
上述两种方法仅适合于对周期信号的分析。如果电路板某模块的输入输出引脚上信号为单脉冲信号,且脉宽较短,则在线测试很难采集到它们的脉冲。对于这类模块电路的测试一般采用离线测试的方法人为输入测试向量分析模块输出是否正常。
4、结论
通过实验,该系统能够成功实现对含边界扫描器件(如FPGA等)电路板的在线测试、离线测试等功能,而且系统的体积小,测试时与电路板的连接线少,虽然由于测试点有限,不能提供100%的故障覆盖率,但该系统仍能够为维修人员对含边界扫描器件电路板的快速维修提供有效支持。
本文作者**点是:将边界扫描技术应用在电路板快速测试系统中,设计了一套具有自主知识产权的边界扫描测试系统,并对系统的故障分析策略进行了讨论研究,提出对周期信号采用信号统计法和数据分析法的故障分析策略。