JTAG基本介绍

article/2025/9/13 3:26:50

JTAG

1. JTAG接口形式

JTAG作为一项国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试和调试。目前的DSP、FPGA、ARM、部分单片机等主流芯片均支持JTAG协议。标准的JTAG接口是20Pin,但JTAG实际使用的只有4根信号线,再配合电源、地。目前常见的各种接口形式(20pin、14pin、10pin):

2. JTAG标准介绍

JTAG的基本原理是在器件内部定义一个TAP(Test Access Port)(测试访问口)通过专用的JTAG测试工具对内部节点进行测试。TAP是Test Access Port(测试访问端口)的缩写,是芯片内部一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR),对整个TAP的控制是通过TAP控制器(TAP Controller)完成的。

JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。JTAG引脚的定义如下列表所示:

  • TCK:TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的;
  • TMS:TMS在IEEE1149.1标准里是强制要求的。TMS信号在TCK的上升沿有效,用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换;
  • TDI:TDI在IEEE1149.1标准里是强制要求的。TDI是数据输入的接口,所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动);
  • TDO:TDO在IEEE1149.1标准里是强制要求的。TDO是数据输出的接口,所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动);
  • TRST:可选项,TRST可以用来对TAP控制器进行复位(初始化)。因为通过TMS也可以对TAP控制器进行复位(初始化),所以有四线JTAG与五线JTAG之分;
  • RTCK:可选项,由目标端反馈给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地;
  • nSRST:可选性与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发,应在目标端是哪个加上适当的上拉电阻;

3. JTAG功能作用

通过JTAG连接,可以完成如下的功能:

  • 对所有串接在一起的IC进行引脚连接性测试,确认PCB是否焊接正常;
  • 对CPU、DSP、FPGA等进行调试;
  • 通过JTAG对FPGA进行编程。

进行引脚连接测试的JTAG用法如下图所示,各个芯片引脚的连通状态可以一次串接通信到PC的TDO引脚中。

按照菊花链方式串接调试的JTAG用法如下图所示,多个串接在一起的CPU和FPGA都能够一起进行调试和测试。

4. JTAG的调试原理

上图可以看出JTAG的调试原理:

所有调试芯片的IR寄存器串接在一起,然后进行串行移位,最后,所有数据都进入到JTAG口的TDO中;PC通过对TDO数据的串并转换,获得每个CPU、DPS或FPGA的内部寄存器状态。

PC将需要写入CPU、DSP或FAPG的数据通过并串转换放置到TDI总线上,最后通过状态移位到规定的CPU寄存器上,最后通过TMS制定生效时刻。

TCK就是TDI和TDO的移位时钟,而TMS则是控制指令。

因此,JTAG通过一个标准状态机就能够将CPU/DSP/FPGA的内部状态查明,也能改变内部寄存器内容,这也是一种状态控制原理。在1990年之前,JTAG的状态机基本是由各个厂商自行定义的,但后来出现的IEEE1149.1标准对状态转移过程进行了标准化。在某种意义上讲,JTAG的状态机实现过程是最佳的FSM学习对象。

5. TAP控制器的状态机

TAP是Test Access Port(测试访问端口)的缩写,是芯片内部一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR),对整个TAP的控制是通过TAP控制器(TAP Controller)完成的。

TAP控制器有16个同步状态,控制器的下一个状态TMS信号决定,TMS信号在TCK的上升沿被采样生效。

(1)Test-Logic-Reset测试逻辑复位状态

处于这种状态下,测试逻辑被禁止以允许芯片正常操作,读IDCODE寄存器将禁止测试逻辑。

无论TAP控制器处于何种状态,只要将TMS信号在5个连续的TCK信号的上升沿保持高电平,TAP就将进入Test-Logic-Reset状 态,如果TMS信号一直为高电平,那么TAP将保持在Test-Logic-Reset状态,另外TRST信号也可以强迫TAP进入Test- Logic-Reset状态。

处于Test-Logic-Reset状态的TAP,如果下一个TCK的上升沿时TMS信号处于低电平,那么TAP将被切换到Run-Test-Idle状态。

(2)Run-Test-Idle运行测试空闲状态

Run-Test-Idle是TAP控制器扫描操作空闲状态,如果TMS信号一直处于低电平,那么TAP将保持在TRun-Test-Idle状态。当TMS信号在TCK上升沿处于高电平,TAP控制器将进入Select-DR-Scan状态。

(3)Select-DR-Scan选择数据寄存器扫描状态

Select-DR-Scan是TAP控制器的一个临时状态,边界扫描寄存器BSR保持它们先前的状态。

当TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture-DR状态,一个边界扫描寄存器的扫描操作同时被初始化。

如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Select-IR-Scan状态。

(4)Capture-DR捕获数据寄存器状态

如果TAP控制器处于Capture-DR状态,且当前指令是SAMPLE/PRELOAD指令,那么边界扫描寄存器BSR在TCK信号的上升沿捕 获输入管脚的数据。如果此时不是SAMPLE/PRELOAD指令,那么BSR保持它们先前的值,另外BSR的值被放入连接在TDI和TDO管脚之间的移 位寄存器中。

处于Capture-DR状态时,指令不会被改变。

如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-DR状态。如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Shift-DR状态。

(5)Shift-DR移位数据寄存器状态

在Shift-DR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,TDI的数据移入移位寄存器,移位寄存器最靠近TDO的位移到TDO管脚上。

处于Shift-DR状态时,指令不会被改变。

如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-DR状态。如果TMS信号处于低电平,则TAP一直进行移位操作。

(6)Exit1-DR退出数据寄存器状态1

Exit1-DR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-DR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Pause-DR状态。

处于Exit1-DR状态时,指令不会被改变。

(7)Pause-DR暂停数据寄存器状态

Pause-DR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。

处于Pause-DR状态时,指令不会被改变。

如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit2-DR状态;如果TMS信号处于低电平,则TAP一直保持暂停状态。

(8)Exit2-DR退出数据寄存器状态2

Exit2-DR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-DR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP重新进入Shift-DR状态。

处于Exit2-D状态时,指令不会被改变。

(9)Update-DR更新数据寄存器状态

在正常情况下,边界扫描寄存器BSR的值是被锁存在并行输出管脚中,以免在EXTEST或SAMPLE/PRELOAD命令下执行移位操作时改变 BSR的值。当处于Update-DR状态时选择的是BSR寄存器,那么移位寄存器中的值将在TCK的下降沿被锁存到BSR寄存器的并行输出管脚中去。

处于Update-DR状态时,指令不会被改变。

如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Select-DR-Scan状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Run-Test-Idle状态。

(10)Select-IR-Scan选择指令寄存器扫描状态

Select-IR-Scan是TAP控制器的一个临时状态。

如果TMS信号在下一个TCK上升沿处于低电平,TAP控制器进入Capture-IR状态,一个对指令寄存器的扫描操作同时被初始化。

如果TMS信号在下一个TCK上升沿处于高电平,TAP控制器将进入Test-Logic-Reset状态。

处于Select-IR-Scan状态时,指令不会被改变。

(11)Capture-IR捕获指令寄存器状态

处于Capture-IR状态时,指令寄存器中的值被固定设置成0b0000001,并将它放入连接在TDI与TDO之间的移位寄存器中。

处于Capture-DR状态时,指令不会被改变。

如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Shift-IR状态。

(12)Shift-IR移位指令寄存器状态

在Shift-IR状态下,在每个TCK的上升沿,TDI-移位寄存器-TDO串行通道向右移一位,JTAG指令从TDI管脚上被逐位移入移位寄存器,而移位寄存器中的0b0000001则被逐位从TDO管脚移出。

处于Shift-IR状态时,指令不会被改变。

如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit1-IR状态;如果TMS信号处于低电平,则TAP一直进行移位操作。

(13)Exit1-IR退出指令寄存器状态1

Exit1-IR是TAP控制器的一个临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-IR状态;如果TMS信号在下一个TCK上升沿处于低电平,则TAP进入Pause-IR状态。

处于Exit1-IR状态时,指令不会被改变。

(14)Pause-IR暂停指令寄存器状态

Pause-IR状态允许TAP控制器暂时停止TDI-移位寄存器-TDO串行通道的移位操作。

处于Pause-IR状态时,指令不会被改变。

如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Exit2-IR状态;如果TMS信号处于低电平,则TAP一直处于暂停状态。

(15)Exit2-IR退出指令寄存器状态2

Exit2-IR也是TAP控制器的临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-IR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,则TAP重新进入Shift-IR状态。

处于Exit2-D状态时,指令不会被改变。

(16)Update-IR更新指令寄存器状态

处于Update-IR状态时,移位寄存器中的值将在TCK的下降沿被锁存到指令寄存器中,一旦锁存成功,新的指令将成为当前的指令。

如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Select-DR-Scan状态;如果TMS信号在下一个TCK上升沿处于电平,则TAP进入Run-Test-Idle状态。

6. JTAG接口指令集

JTAG接口指令集包含以下常用指令:

(1)EXTEST指令

外部测试指令,必须全为0,TAP强制定义。该指令初始化外部电路测试,主要用于板级互连以及片外电路测试。

EXTEST指令在Shift-DR状态时将扫描寄存器BSR寄存器连接到TDI与TDO之间。在Capture-DR状态时,EXTEST指令将 输入管脚的状态在TCK的上升沿装入BSR中。EXTEST指令从不使用移入BSR中的输入锁存器中的数据,而是直接从管脚上捕获数据。在Update- DR状态时,EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。

(2)SAMPLE/PRELOAD指令

采样/预装载指令,TAP强制定义。在Capture-DR状态下,SAMPLE/PRELOAD指令提供一个从管脚到片上系统逻辑的数据流快照, 快照在TCK的上升沿提取。在Update-DR状态时,SAMPLE/PRELOAD指令将BSR寄存器单元中的数据锁存到并行输出寄存器单元中,然后 由EXTEST指令将锁存在并行输出寄存器单元中的数据在TCK的下降沿驱动到对应的输出管脚上去。

(3)BYPASS指令

旁路指令,必须全为1,TAP强制定义。BYPASS指令通过在TDI和TDO之间放置一个1位的旁通寄存器,这样移位操作时只经过1位的旁通寄存 器而不是很多位(与管脚数量相当)的边界扫描寄存器BSR,从而使得对连接在同一JTAG链上主CPU之外的其他芯片进行测试时提高效率。

(4)IDCODE指令

读取CPU ID号指令,TAP强制定义。该指令将处理器的ID号寄存器连接到TDI和TDO之间。

7. 总结

以上主要讲述JTAG的使用和内部工作方式,简单描述了微电子中一些电路设计方式,整个JTAG的关键在于先通过IR地址输入,打开对应的寄存器,在通过DR输入或者读取数据,具体实现需要根据手册中指令的格式输入,才能进入对应寄存器。


http://chatgpt.dhexx.cn/article/kOaf2mPr.shtml

相关文章

STM32 JTAG电路设计

学习需要刨根问底 1. 什么是JTAG? JTAG(Joint Test Action Group)是一个接口,为了这个接口成立了一个小组叫JTAG小组,它成立于1985年,比推丸菌的年龄还大。 在1990年IEEE觉得一切妥当,于是发布…

【开发工具】【JTAG】JTAG基础【一】

JTAG基础 什么是JTAG? JTAG(Joint Test Action Group ,联合测试行动小组 ) 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。 JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP &#…

J-Link、ST-Link、DAPLink、ULink仿真器区别?以及支持的JTAG、SWD、SWIM下载模式、SWV、串口Printf调试差异?

四种仿真器和五种下载模式调试差异? 一、J-LINK、ST-Link、升级版DAPLink(旧版CMSIS-DAP)、ULink 仿真器区别?几种JTAG、SWD、SWIM、SWV下载模式或者调试方式差异(细看)? 总结:J-Link、ST-Lin…

基于仿真器的两种程序烧录模式:JTAG和SWD

关于JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。 现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等…

自制Xilinx JTAG仿真器

目录 工具原理图PCB烧录 eeprom工程地址注 本草稿最后日期为 2021-01-23,本次趁闲暇时间完善,本文主要说明的是自制Xilinx Jtag 仿真器。 也是巧合,在 GitHub 上无意中发现了有人发布了Jtag 的做法,于是根据上面提供的原理图试着做…

J-Link仿真器与JTAG和SWD下载与接线

目录 1.JTAG 1.1JTAG今天被用来主要的三大功能: 1.2JTAG引脚: 1.3可选引脚: 2.SWD 2.1 SWD引脚: 2.2 可选择引脚: 2.3 JTag和SWD模式引脚定义 3. J-Link仿真器 4 IAR与MDK配置两种下载方式 1.JTAG JTAG诞…

简述调试/仿真器协议(JTAG、SWD)及各类调试器(Jlink、Ulink、STlink)

入门嵌入式编程,总会对市面上种类繁多的调试器感到困惑。本文简单介绍一下现在主流的仿真器协议(JTAG、SWD)及各类调试器(Jlink、Ulink、STlink)。 一. 协议 1.JTAG协议 JTAG(Joint Test Action Group,联…

JTAG基本原理及仿真器性能比较和JTAG接口解读

JTAG(Joint Test Action Group,联合测试行动组)是一种国际标准测试协议(IEEE 1149.1兼容)。标准的JTAG接口是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 JTAG的主要功能有两种,或者说JTAG主要有两大…

什么是JTAG和SWD接口协议,和各类仿真器

一、俩个协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。…

SPSS实现多元方差分析

总目录:SPSS学习整理 SPSS实现多元方差分析 目的适用情景数据处理SPSS操作SPSS输出结果分析知识点 目的 观察影响因素如何影响一组因变量 适用情景 方差分析前提: 各个总体服从正态分布 各个总体方差相等 观测值独立 数据处理 SPSS操作 分析——一般…

SPSS实现多因素方差分析

总目录:SPSS学习整理 SPSS实现多因素方差分析 目的适用情景数据处理SPSS操作SPSS输出结果分析知识点 目的 检验多个因素对因变量的作用和影响,以及因素共同作用的影响。(因素之间独立影响变量,因素之间交互作用影响变量&#xff…

方差分析的SPSS实现

单因素方差分析 1、首先打开我们的SPSS软件,将数据导入进去 我们看到因子是group,我们研究的是不同的组别之间的均值是否有显著性差异,换句话说,假设我们的组别是不同的职业,1,2,3代表不同的职…

R语言数据分析笔记——方差分析(单因素方差分析、双因素方差分析)在Excel、SPSS、R语言中的操作)

前言:本文为个人学习笔记,为各大网站上的教学内容之综合整理,综合整理了①方差分析的基础知识、②方差分析(单因素方差分析、双因素方差分析)在Excel、SPSS、R语言中的操作),尽量标明出处。另因…

SPSS中方差分析(F检验)的作用以及使用前提

SPSS中方差分析(F检验)的作用以及使用前提 一、方差分析 方差分析用来检验两组以上的数据,假如有三组数据为什么不能用T检验做三次两两之间检验是否能达到目的,结果是不能的,三次T检验每一次都会犯I类错误&#xff0…

【SPSS】多因素方差分析详细操作教程(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】

🚀【MOOC数学建模与实验---学习笔记---整理汇总表】🚀 🌈【学习网址:MOOC---郑州轻工业大学---数学建模与实验】🌈 【第1、2章】【概述、软件介绍】【第3章】【数据处理方法】【第4章】【规划模型】【第5章】【图与网络…

SPSS作业-方差分析-双因素分析

作业要求:高低不同的汽油对汽车油耗作二因素方差分析作业数据:三种品牌的汽车X、Y、Z;四种标号(A、B、C、D) A B C D X 21.8 22.4 20.6 23.1 Y 31.3 34.2 30.6 33.7 Z 23.1 27.3 26.1 28.6 解&…

SPSS结果解读【单因素方差分析】

方差分析(Analysis of Variance,简称ANOVA)主要用于验证两组样本,或者两组以上的样本均值是否有显著性差异(是否一致) 单因素方差分析 是指试验中只有一个因素变化,若有两个因素改变则称为双因…

spss多因素方差分析

多因素方差分析 多因素方差分析是对一个独立变量是否受一个或多个因素或变量影响而进行的方差分析。SPSS调用“Univariate”过程,检验不同水平组合之间因变量均数,由于受不同因素影响是否有差异的问题。在这个过程中可以分析每一个因素的作用&#xff0c…

记录SPSS多因素方差分析的学习过程

首先,进行方差分析之前应对数据进行正态性、方差齐性检验 若不满足以上两点则应对其进行非参数检验 现通过讲解例子来帮助新手更好的理解多因素方差分析 提问1:不同学生的性别、学习能力、试题难度水平是否影响学生的学习成绩? 提问2&…