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控制器的示意图:
改变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.
TDI(测试数据输入)
- 2.
TDO(测试数据输出)
- 3.
TCK(测试时钟)
- 4.
TMS(测试模式选择)
- 5.
TRST(测试复位)可选。
因为只有一条数据线,通信协议有必要像其他串行设备接口,如SPI一样为串列传输。时钟由TCK引脚输入。配置是通过TMS引脚采用状态机的形式一次操作一位来实现的。每一位数据在每个TCK时钟脉冲下分别由TDI和TDO引脚传入或传出。可以通过加载不同的命令模式来读取芯片的标识,对输入引脚采样,驱动(或悬空)输出引脚,操控芯片功能,或者旁路(将TDI与TDO连通以在逻辑上短接多个芯片的链路)。TCK的工作频率依芯片的不同而不同,但其通常工作在10-100MHz(每位10-100ns)。
当在集成电路中进行边界扫描时,被处理的信号是在同一块IC的不同功能模块间的,而不是不同IC之间的。
TRST引脚是一个可选的相对待测逻辑低电平有效的复位开关——通常是异步的,但有时也是同步的,依芯片而定。如果该引脚没有定义,则待测逻辑可由同步时钟输入复位指令而复位。
尽管如此,极少消费类产品提供外部的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,这样就可以很方便的实现连接,又不会占用大量引脚。