浅谈JTAG接口

在嵌入式Linux的学习过程当中,我们经常使用JTAG接口来连接PC机与开发板,以实现程序的烧写与调试。本文简要介绍JTAG协议的定义、发展过程、基本原理以及常见的引脚排列。


一、定义及发展过程

JTAG,全称 Joint Test Action Group,即联合测试工实现工作组,是一种国际标准测试协议,主要用于芯片内部测试。最初它是由几家主要的电子制造商在1985年发起制订的PCB 和IC 测试标准,JTAG 建议于1990 年被IEEE 批准为IEEE1149.1-1990 测试访问端口边界扫描结构标准,该标准规定了进行边界扫描所需要的硬件和软件。

自从1990 年批准后,IEEE 分别于1993 年和1995 年对该标准作了补充,形成了现在使用的IEEE1149.1a-1993 和IEEE1149.1b-1994。JTAG最初是用来对芯片进行测试的,如今JTAG接口还常用于实现ISP(In-System Programmer,在系统编程),对FLASH等器件进行编程。

所谓边界扫描测试是在20世纪80年代中期作为解决PCB物理访问问题的JTAG接口发展起来的,这样的问题来自于:新的封装技术导致电路板装配日益拥挤。边界扫描在芯片级层次上嵌入测试电路,以形成全面的电路板级测试协议。利用边界扫描(IEEE 1149.1),我们能够实现对复杂的装配进行测试、调试和在系统设备编程,并且诊断出硬件问题。


二、基本原理

JTAG的基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对内部节点进行测试。除了TAP之外,混合IC也包含移位寄存器和状态机,该状态机被称为TAP控制器,以执行边界扫描功能。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。

TAP包含了一个四线串行接口及三条可选的线,用于访问复杂的集成电路(IC),例如微处理器、DSP、ASIC和CPLD。 强制要求的四条线分别为TCK、TDI、TDO和TMS,可选的三线分别为TRST、RTCK和SRST。各引脚功能分别如下:


TCK--测试时钟输入;

TDI--测试数据输入,数据通过TDI输入JTAG口;

TDO--测试数据输出,数据通过TDO从JTAG口输出;

TMS--测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式;

TRST(可选引脚)--测试复位,输入引脚,低电平有效;


RTCK(可选引脚)--测试时钟反馈,用来同步TCK信号的产生,不使用时直接接地;


SRST(可选引脚)--系统复位,与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻。


在TDI引线上输入到芯片中的数据存储在指令寄存器中或一个数据寄存器中;串行数据从TDO引线上离开芯片。而TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入。

通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,SOC内置模块的寄存器,如UART,Timers,GPIO等等的寄存器。而具体实现哪种功能,则由具体的软件来决定。


三、常见的引脚排列

在实际应用中,不同的IC公司会定义自家产品专属的JTAG接头。嵌入式系统中,常用的有20PIN、14PIN及10PIN三种JTAG接头,其引脚信号排列如下:

1. 20PIN接口定义



2. 14PIN接口定义



3. 10PIN接口定义


通常,各引脚采用如下的外接电路:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值