原创 JTAG

2009-4-26 10:43 1810 10 10 分类: 通信

什么是jtag接口

JTAG(Joint Test Action Group ,联合测试行动小组 ) 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试, JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的 JTAG 测试工具对内部节点进行测试。
目前大多数比较复杂的器件都支持 JTAG 协议,如 ARM 、 DSP 、 FPGA 器件等。标准的 JTAG 接口是 4 线: TMS 、 TCK 、 TDI 、 TDO ,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。 
JTAG 测试允许多个器件通过 JTAG 接口串联在一起,形成一个 JTAG 链,能实现对各个器件分别测试。 JTAG 接口还常用于实现 ISP ( In-System Programmable 在系统编程)功能,如对 FLASH器件进行编程等。 
通过 JTAG 接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前 JTAG 接口的连接有两种标准,即 14 针接口和 20 针接口,其定义分别如下所示。

14 针JTAG 接口定义:

14 针 JTAG 接口定义引 脚 名 称 描 述

1 、 13               VCC 接电源

2 、 4 、 6 、 8 、 10 、 14    GND 接地

3  nTRST             测试系统复位信号

5  TDI              测试数据串行输入

7  TMS              测试模式选择

9  TCK              测试时钟

11 TDO              测试数据串行输出

12 NC               未连接

20 针 JTAG 接口定义引 脚 名 称 描 述

2007122013385914725.jpg

1 VTref             目标板参考电压,接电源

2 VCC               接电源

3 nTRST              测试系统复位信号

4、6、8、10、12、14、16、18、20  GND 接地

5 TDI               测试数据串行输入

7 TMS               测试模式选择

9 TCK               测试时钟

11 RTCK              测试时钟返回信号

13 TDO               测试数据串行输出

15 nRESET             目标系统复位信号

17 、 19 NC            未连接



  关于简单JTAG电缆
  目前有各种各样简单JTAG电缆,其实只是一个电平转换电路,同时还起到保护作用。JTAG的逻辑则由运行在PC上的软件实现,所以在理论上,任何一个简单 JTAG电缆,都可以支持各种应用软件,如Debug等。可以使用同一个JTAG电缆写Xilinx CPLD,AXD/ADW调试程序。关键再于软件的支持,大多数软件都不提供设定功能,因而只能支持某种JTAG电缆。
  关于简单JTAG电缆的速度
  JTAG 是串行接口,使用打印口的简单JTAG电缆,利用的是打印口的输出带锁存的特点,使用软件通过I/O产生JTAG时序。由JTAG标准决定,通过JTAG 写/读一个字节要一系列的操作,根据我的分析,使用简单JTAG电缆,利用打印口,通过JTAG输出一个字节到目标板,平均需要43个打印口I/O, 在我机器上(P4 1.7G),每秒大约可进行660K次 I/O 操作,所以下载速度大约在660K/43, 约等于15K Byte/S. 对于其他机器,I/O速度大致相同,一般在600K ~ 800K.

关于如何提高JTAG下载速度。 
 
       很明显,使用简单JTAG电缆无法提高速度。要提高速度,大致有两种办法, 
 
       1。使用嵌入式系统提供JTAG接口,嵌入式系统和微机之间通过USB/Ethernet相连,这要求使用MCU。 
 
       2。使用CPLD/FPGA提供JTAG接口,CPLD/FPGA和微机之间使用EPP接口(一般微机打印口都支持EPP模式),EPP接口完成微机和CPLD/FPGA之间的数据传输,CPLD/FPGA完成JTAG时序。
 
       这两种方法本人都实现过。第一个方法可以达到比较高的速度,实测超过了200KByte/S(注意:是Byte,不是Bit);但是相对来说,硬件复杂,制造相对复杂。第二种相对来说,下载速度要慢一些,最快时达到96KByte/S,但电路简单,制造方便,而且速度可以满足需要。第二种方案还有一个缺点,由于进行I/O操作时,CPU不会被释放,因此在下载程序时,微机CPU显得很繁忙。
 

JTAG接口有四个引脚。以JTAG的术语来说,这些引脚组成了测试访问端口TAP。这些引 脚是:

? TMS: 测试模式选择。此引脚用来实现TAP 控制器各个状态之间的切换。

? TCK: 测试时钟。JTAG 操作是与TCK 同步的。

? TDI:测试数据输入--需要移位到指令寄存器或数据寄存器(扫描链)的串行输入数据。

? TDO:测试数据输出-- 自指令寄存器或数据寄存器串行移出的数据。

什么是ISP?

ISP是一种通用的程序下载方式,AVR单片机都有ISP下载接口。可以通过ISP下载线或者STK500把程序下载到单片机中。

ISP下载线成本低廉,制作简单,一个并口ISP下载线只需几十元即可得到。开发工具成本低也是AVR单片机的优势之一。

JTAG与ISP的区别和联系

区别:JTAG可以调试程序,而ISP只能下载程序。

联系:同作为AVR程序下载工具,都能把程序从电脑下载到单片机中。都能对芯片的熔丝位和锁定位进行编程。

JTAG调试与普通软件仿真的区别和联系

联系:都可以在计算机调试程序终端看到程序的运行效果,都可以设置断点,单步运行,进入循环,跳出循环,连续运行等操作。还能实时观察各寄存器的值,IO口状态等。

区别:软件仿真,用的是计算机来模仿单片机运行,不是全真的环境,很多时候会出现偏差甚至错误。而用JTAG在线调试,程序本身在单片机内运行,完全真实的硬件环境,更准确的反映程序运行的实际情况,有助于大型程序的调试。


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条