• 1.摘要
  • 2.基本信息
  • 3.JTAG工作原理
  • 4.电气特性
  • 5.国际标准
  • 6.接口解读
  • 7.扫描技术
  • 8.JTAG电缆
  • 9.JTAG链
  • 10.JTAG引脚
  • 11.经典用法

JTAG

JTAG联合测试工作组(Joint Test Action Group)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。此标准用于验证设计与测试生产出的印刷电路板功能。

1990年JTAG正式由IEEE的1149.1-1990号文档标准化,在1994年,加入了补充文档对边界扫描描述语言(BSDL)进行了说明。从那时开始,这个标准被全球的电子企业广泛采用。边界扫描几乎成为了JTAG的同义词。

在设计印刷电路版时,当前最主要用在测试集成电路的副区块,而且也提供一个在嵌入式系统很有用的调试机制,提供一个在系统中方便的"后门"。当使用一些调试工具像电路内模拟器用JTAG当做信号传输的机制,使得程序员可以经由JTAG去读取集成在CPU上的调试模块。调试模块可以让程序员调试嵌入式系统中的软件。

基本信息

  • 中文名

    联合测试行为组织

  • 外文名

    Joint Test Action Group

  • 简写

    JTAG

  • 成立时间

    1985 年

JTAG工作原理

PC控制JTAG:用JTAG电缆连接PC的打印端口或者USB或者网口。最简单的是连接打印端口。

TMS:在每个含有JTAG的芯片内部,会有个JTAG TAP控制器。TAP控制器是一个有16个状态的状态机,而TMS就是这玩意的控制信号。当TMS把各个芯片都连接在一起的时候,所有的芯片的TAP状态跳转是一致的。下面是TAP控制器的示意图:

图1

改变TMS的值,状态就会发生跳转。如果保持5个周期的高电平,就会跳回test-logic-rest,通常用来同步TAP控制器;

通常使用两个最重要的状态是Shift-DR和Shift-IR,两者连接TDI和TDO使用。

IR:命令寄存器,你可以写值到这个寄存器中通知JTAG干某件事。每个TAP只有一个IR寄存器而且长度是一定的。

DR:TAP可以有多个DR寄存器,与IR寄存器相似,每个IR值会选择不同的DR寄存器。

电气特性

JTAG的接口是一种特殊的4/5个接脚接口连到芯片上 ,所以在电路版上的很多芯片可以将他们的JTAG接脚通过Daisy Chain的方式连在一起,并且集成电路只需连接到一个“JTAG端口”就可以访问一块印刷电路板上的所有集成电路。这些连接引脚是:

  1. 1.

    TDI(测试数据输入)

  2. 2.

    TDO(测试数据输出)

  3. 3.

    TCK(测试时钟)

  4. 4.

    TMS(测试模式选择)

  5. 5.

    TRST(测试复位)可选。

因为只有一条数据线,通信协议有必要像其他串行设备接口,如SPI一样为串列传输。时钟由TCK引脚输入。配置是通过TMS引脚采用状态机的形式一次操作一位来实现的。每一位数据在每个TCK时钟脉冲下分别由TDI和TDO引脚传入或传出。可以通过加载不同的命令模式来读取芯片的标识,对输入引脚采样,驱动(或悬空)输出引脚,操控芯片功能,或者旁路(将TDI与TDO连通以在逻辑上短接多个芯片的链路)。TCK的工作频率依芯片的不同而不同,但其通常工作在10-100MHz(每位10-100ns)。

当在集成电路中进行边界扫描时,被处理的信号是在同一块IC的不同功能模块间的,而不是不同IC之间的。

TRST引脚是一个可选的相对待测逻辑低电平有效的复位开关——通常是异步的,但有时也是同步的,依芯片而定。如果该引脚没有定义,则待测逻辑可由同步时钟输入复位指令而复位。

尽管如此,极少消费类产品提供外部的JTAG端口接口,但作为开发样品的残留,这些接口在印刷电路板上十分常见。在研发后,这些接口常常为反向工程提供了非常良好的途径。

国际标准

JTAG

JTAG也是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。现今多数的高级器件都支持JTAG协议,如DSP、FPGA、ARM、部分单片机器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。GND

TI还定义了一种叫SBW-JTAG的接口,用来在引脚较少的芯片上通过最少的利用引脚实现JTAG接口,它只有两条线,SBWTCK,SBWTDIO。实际使用时一般通过四条线连接,VCC,SBWTCK,SBWTDIO,GND,这样就可以很方便的实现连接,又不会占用大量引脚。