- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
用JTAG边界扫描测试电路板、BGA和互连
当第一批电路板样板放在硬件工程师桌面的时候,在测试时他会感到非常困扰。工程师耗费几个星期的时间设计电路图和布板,现在电路板做出来了,上面也安装好了元器件并拿在手上,现在必须确定它能否工作。工程师插上板子,加电并观察。但没有办法检测BGA下面微小到得用放大镜才能看清楚的芯片引脚,工程师应该怎么办?
BGA因为具有很多优点,所以应用非常普遍。然而我们不能靠剥离器件来探测BGA下面的连线。X射线是一种可选的测试方案,但是,它们仅仅 呈现焊点的静态图像,而不是提供确保连接性所需的动态电气报告,因而极难判断虚焊和可靠焊点之间的差异。人们总是希望一换掉BGA,问题就会消失。这通常 是一种昂贵和耗时间的选择方案,并且生产率非常低。
传统的边界扫描是另一种选择方案,但是这通常需要一些昂贵的工具,并要创建测试向量和测试执行,整个过程要花很长时间。所花费的时间长短取决于设计文档的稳定性和精度。此外,测试结果不是动态的,它们通常是对电路板上所发现问题的汇总。
最佳测试方案是存在于现有设计中的快速、简单和廉价的方案。许多BGA和大多数高端嵌入式处理器都支持通过IEEE 1149.1 JTAG接口进行边界扫描。
核心问题在于:信号线是否被正确地连接到物理上无法用探头接触的BGA器件的某一引脚?该信号线可能是时钟线、地址线、数据总线或任何感兴趣的信号线。关键是对其在电路中进行测试,以观察其状态是高、低或正发生状态跳变,以及信号线是否连通。
基于JTAG的边界扫描能以非传统的方式获得这些信息。概念很简单,即IC获取其所有引脚的状态并通过边界扫描链重复地把这些状态移出,并在个人电脑上同步显示结果。用户可以观察BGA器件下面每一个可扫描引脚的动态行为指示。
从显示器可以实时观察振荡器是否连接到G17脚或者地址或数据总线的行为,与此同时,电路板上的电路可以不受干扰而保持正常运行。该技术的 最好之处在于电路不知道你在进行测试,测试对电路的工作是完全透明的。测试应用程序以全速运行,在JTAG扫描链上的每一个器件都受到监测。
完成这类测试的工具非常依赖于图形用户接口(GUI)。一旦电路板被描述到应用软件中,屏幕上显示的芯片图就类似于电路版图中的封装。因 为芯片的JTAG接口可能以菊花链排列,版图可能仅包含一个处理器或一些BGA器件,或者可能包含许多器件,诸如处理器、门阵列、输入/输出控制器等。引 脚在屏幕上以彩色编码显示实时状况,如引脚现在的逻辑电平或是否在发生状态跳变。这就使测试非常直观。当测试目的是简单的连通性和状态检查时,就消除了创 建测试向量或测试执行的需要。
图1:目前市场上常见的JTAG调试工具
每一个器件都被发送JTAG指令EXTEST,以容许对器件上的每一根引脚进行完全的控制。应用程序然后可以驱动地址总线或切换到一根到连接器或LED的线,以检查整个电路的连通性,所有这一切只要点击鼠标就能完成。
所有具备JTAG端口的集成电路都将内建边界扫描功能,其组成部分包括:围绕被扫描器件边界的较长的移位寄存器和控制移位寄存器行为的状态机。在边界寄存器中的每一个寄存器位捕获或控制器件上每一个引脚的某些方面。如果该位是缓冲器使能的,该寄存器位就可能控制若干引脚。
软件应用程序引导状态机把每一个引脚的状态捕获到边界寄存器之中,然后将其移出JTAG端口。重复这个过程,并把结果显示在屏幕上,就可以实时显示在扫描链中的每一个器件的每一个引脚的行为。因为与测试向量法相比,通过显示图像可以做可视化分析,所以扫描速度不是问题。
对于典型的门阵列,一个这样的寄存器通常有300到400位;而对于处理器,最多有几千位。边界扫描描述语言文件(BSDL)定义了寄存器中每一位的含义。这些文件常见于IC供应商的网站,它们非常详细、精确地描述了边界扫描链中每一个单元的含义以及它与物理引脚的关系。
在器件中与每一个引脚相关的典型扫描单元有三种:1. 捕获/控制进入器件的信号;2. 捕获/控制流出器件的信号;3. 捕获/控制输出缓冲器使能。如果引脚是一个专用的“输入”引脚,它通常具有单个扫描单元。
JTAG接口只有4条线:测试数据输入(TDI)、测试数据输出(TDO)、测试时钟(TCK)和测试模式选择(TMS)。TCK是用于把数据读入TDI引脚并把数据读出TDO引脚的异步时钟。TMS引脚被用于转换TAP控制器的状态机。
BSDL文件是免费的,边界扫描电路已经被构建在你的JTAG器件之中,而JTAG接头在你的目标板上。接下来做的事就是编制合适的诊断应用程序,并开始观察BGA器件下面的情况。
Macraigor、XJTAG和Corellis等公司提供了很多工具,帮助硬件工程师最大限度地利用目标板内建的JTAG功能。面对价 格和功能各异的各种工具,你需要找到最适合你的测试要求的工具。所幸大多数可由JTAG解决的硬件问题都可以采用合适的工具方便和快速地加以解决。
市场上存在廉价的工具,它不仅完全支持JTAG调试,而且配备极易使用的GUI。Macraigor Systems公司最近刚推出一种称为JSCAN的 工具,它除了能够完成所有上述工作之外,还能完成许多其它测试任务。在应用程序中,包含各种虚拟LED和开关,它们可以虚拟连接到BGA器件的引脚以帮助 监测和控制被测信号。它具有一个脚本记录器,所以,你可以创造包含循环、用户提示和查询的简单测试脚本。该脚本被存储在工业标准的SVF文件中,可以在 JSACN工具或任何SVF播放器上播放。这就容许你快速地测试多个电路板并即时了解哪块板有问题及其问题的根源。
此外,该产品无论板上的处理器是否在运行,都能对闪存进行编程。只要选择一些选项,提供一个数据文件并点击“编程”项,就能把信号信息 (地址、数据和控制)填入空位。JSCAN控制被测器件的所有引脚,并使用这些引脚对闪存编程。当然这需要假定你的闪存已经连接到JTAG链中的一个或多 个器件。
JTAG Commander是一种较低级的工具,它直观地辅助JTAG扫描链本身被诊断,并为硬件工程师提供了SVF和JAM目标代码文件的播放器。
除了电路板测试外, Macraigor Systems公司还提供高端和低端调试工具,使软件监测操作系统和运行在你的目标系统上的所有应用程序。
作者:Craig Haller
总工程师
Macraigor Systems公司
craig@macraigor.com