JTAG — 技术概览

本文提供了有关XJTAG技术基础的有趣背景信息。当然,您不需要知道这些信息也能使用XJTAG开发系统,因为XJTAG测试是用高级编程语言开发出来的,而不需要任何对于JTAG详细运作的了解。

引言

硅设计的进步,例如不断增长的器件密度和最近的BGA封装,已经削弱了传统测试方法的功效。

为了克服这些问题,一些世界领先的硅制造商结合起来成立了联合测试行动小组。这个小组的发现和建议被用来作为电气与电子工程师协会(IEEE)1149.1标准的基础:标准测试访问端口和边界扫描架构。这个标准保留了和这个小组的联系而且以JTAG俗称。

边界扫描

使用边界扫描技术所提供的主要优势在于无须直接物理访问就可以设置和读取针脚的数值。

 

一个启用JTAG器件的示意图

图1:一个启用JTAG器件的示意图

参考图1中的示意图可以最容易地理解边界扫描的过程。

所有器件核心逻辑与针脚之间的信号都被一个称为边界扫描寄存器(BSR)串联扫描路径所拦截。正常运行时,这些边界扫描单元是不可见的。但是,在测试模式下这些单元可以被用来设置和(或)读取数值:在外置模式下,这些是针脚的值;在内置模式下,这些是核心逻辑的值。

接口信号

JTAG接口,总称测试访问接口TAP,使用如下信号来支持边界扫描操作。

  • TCK(测试时钟)–这个信号同步内部状态机的操作。
  • TMS(测试模式选择)–这个信号对TCK的上升边缘采样以判定下一个状态。
  • TDI(测试数据输入)–这个信号代表移入器件测试或编程逻辑的数据。当内部状态机在正确的状态时,它在TCK的上升边缘处采样。
  • TDO(测试数据输出)–这个信号代表移出器件测试或编程逻辑的数据并且当内部状态机处于正确的状态时,在TCK的下降边缘处有效。
  • TRST(测试重置)–这是一个可选针脚,当存在时,可以重置TAP控制器的状态机。

寄存器

有两类寄存器与边界扫描相关。每个兼容器件都有一个指令寄存器和两个或两个以上的数据寄存器。

指令寄存器–指令寄存器存有当前的指示。它的内容被TAP控制器用来决定如何处理接收到的信号。通常,指令寄存器的内容定义信号被传递到的数据寄存器。

数据寄存器–有三个主要的数据寄存器,边界扫描寄存器(BSR),旁路寄存器和识别码寄存器。其他数据寄存器可能存在,但不是JTAG标准所需的部分。

  • BSR–这是主要测试的数据寄存器。它被用来把数据从器件I/O针脚处移出和移入。
  • BYPASS这是一个把信息从TDI传到TDO的单位寄存器。它可以用最小的系统开销来测试电路中其他的器件。
  • IDCODES–这个寄存器含有器件的识别码和版本序号。这个信息可以使器件和它的边界扫描描述语言(BSDL)文件相关联这个文件含有器件边界扫描配置的详细情况。

测试访问端口(TAP)控制器

TAP控制器作为一个被TMS信号控制转换的状态机,控制着JTAG系统的行为。图2,如下,显示了状态机的图表。

TAP状态机

图2:TAP状态机

所有的状态都有两个退出,所以所有的转换都可以被一个在TCK上采样的单一TMS信号所控制。两条主要路径可以使信息从不是器件的数据寄存器就是器 件的指令寄存器中设定或读取。被操作的数据寄存器(如BSR, IDCODES, BYPASS)取决于指令寄存器中载入的值。

想要了解每个状态更详细的信息,请参考IEEE1149.1标准的JTAG文件。

边界扫描指令集

IEEE1149.1标准定义了一系列被视为兼容的器件所必须具备的指令。这些指令是:

  • BYPASS–这个指令用一个单位的贯通寄存器(旁通寄存器)来连接TDI和TDO线。这个指令使JTAG链上其他器件的测试不用不必要的系统开销。
  • EXTEST–这个指令用一个边界扫描寄存器(BSR)来连接TDI和TDO。器件针脚的状态通过‘捕获数据寄存器’的JTAG状态来采样而新值则通过‘移位数据寄存器’的状态转移到BSR中;这些数值然后通过‘更新数据寄存器’的状态来应用到器件的针脚上。
  • SAMPLE/PRELOAD(采样/预装)–这个指令用一个BSR来连接TDI和TDO。尽管如此,器件被置于正常运行的模式。在这个指 令下,可以通过一个数据扫描操作访问BSR来对于进入和流出器件的功能数据采样。这个指令还可以用来在装载EXTEST指令之前预装测试数据到BSR上。

其他通常可用的指令包括:

  • IDCODE–这个指令用一个识别码寄存器来连接TDI和TDO。
  • INTEST–这个指令用一个边界扫描寄存器(BSR)来连接TDI和TDO线。EXTEST指令允许用户设置和读取针脚状态,而INTEST指令则与器件核心逻辑信号相关联。

获取IEEE1149.1标准

IEEE1149.1标准的JTAG规范可以从IEEE直接获取:

http://standards.ieee.org

资源

可测试性设计(DFT)指引

可测试性设计(DFT)指引

提高电路测试性能的建议


JTAG Introduction, Background, JTAG Connection Testing, In-system Programming

高级JTAG指南

了解JTAG的用途


什么是JTAG?

什么是JTAG?

那么,我怎么样才能利用它呢?


circuit design, development, manufacturing, service

使用XJTAG进行JTAG测试

了解XJTAG如何扩展JTAG的潜力


Boundary-Scan Description Language

边界扫描描述语言(BSDL)文件

制造商网址的链接


Memory testing

非JTAG器件的测试


JTAG, SVF

串行矢量格式(SVF)文件

Want to be the first to know of new eBooks and JTAG Resources?

Find out how XJTAG can help you test your PCB faster
From Prototype To Manufacture