JTAG简介JTAG和SWD之间的区别-飞外网

01JTAG简介

JTAG(JointTest ActionGroup)是一个接口,为了这个接口成立了一个小组叫JTAG小组,它成立于1985年。在1990年IEEE觉得一切妥当,于是发布了IEEE Standard 1149.1-1990,并命名为Standard Test Access Port and Boundary-ScanArchitecture,这就是大名鼎鼎的JTAG了。

JTAG的三大功能你知道吗,响当当的:

1.器,即软件到FLASH里。

2. DEBUG,跟医生的听诊器似的,可探听芯片内部小心思。

3. 边界扫描,可以访问芯片内部的信号逻辑状态,还有芯片引脚的状态等等。

JTAG根本没有标准的接口定义,甚至每家公司定义都不一样。在ARM的《系统和接口设计参考》文档中

文档地址:

链接:https://pan.baidu.com/s/13aQXOXR73_wiERz2kwN15w

提取码:xaaf

(提示:公众号不支持外链接,请复制链接到浏览器)

这篇文档列举了不同的JTAG接口

而我们经常在互联网看到的下图,是SEGGER公司的Jlink的JTAG接口。

J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。

同时Jlink也是个人觉的最流行的调试器。通过《系统和接口设计参考》可知,这个ARM官方的JTAG20pin并不相同。

在这里希望大家明白,ARM,Jlink,JTAG之间的关系。

使用频率也挺高的ST-linkV2的接口由上文可知,这也是ST公司自己定义的接口

Ulink、CMSIS_DAP和其他STM32的仿真器是一样的道理。

02JTAG介绍

边界测试:

举个例子你有两个芯片,这两个芯片之间连接了很多很多的线,怎么确保这些线之间的连接是OK的呢,用JTAG,它可以控制所有IC的引脚。这叫做芯片边界测试。

在JTAG接口中,最常用的信号有四个,分别是TCK/TMS/TDO/TDI。JTAG接口可以一对一的使用,也可以组成菊花链的一对多拓扑结构,两种拓扑结构如下图所示。多核的芯片,其芯片内部已经接成了菊花链的形式。

JTAG的菊花链还有很多玩法

CPU和FPGA制造商允许JTAG用来端口debug;FPGA厂商允许通过JTAG配置FPGA,使用JTAG信号通入FPGA核。

03JTAG和SWD

SWD接口:串行调试(SerialWireDebug),应该可以算是一种和JTAG不同的调试模式,最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4(或者5)个引脚。

VCC、SWDIO、SWCLK、GND(有些情况,也加上了RESET脚)。

SWD和传统的调试方式区别:

SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。

当CPU的GPIO不够用的时候,可以使用SWD仿真,这种模式支持更少的引脚。

在硬件PCB的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小,可以选择一个很小的2.54间距的5芯端子做仿真接口。

Keil环境下Jlink调试器的JTAG模式和SWD模式

IAR环境下Jlink调试器的JTAG模式和SWD模式

Jlink的JTAG模式和SWD模式对比图

04关于Vref引脚

上面我们提到Vref引脚,属于IO接口的电源域,目的是为了使芯片逻辑电平与调试器的逻辑电平一致,避免逻辑错误,甚至对设备造损坏。

在Jlink上有Vref的跳线帽。

三个排针:①是NC,②是Vref,是和输出的1脚相连的,③是3.3V

如果要Jlink的1脚Vref输出3.3V,直接将②和③短接即可。

05关于TRST引脚

JTAG定义中的TRST引脚,用来复位TAP控制器的。在STM32系列单片机中,并没有TRST引脚,名字为NJTRST。

以STM32F207为例,NJTRST引脚在JTAG和SWD模式中的说明。

06RESET引脚作用

在一些STM32的产品仿真时使用4线的SWD模式,发布版通常会将JTAG口设置为普通IO,或者由于管脚不够用,在发布版用作其他用途。我们在调试发布版,因为禁止了JTAG模式,没有办法仿真了。

这个时候,最常用的做法是,拉高BOOT0管脚,进入MainFlash memory模式,进行debug仿真。

对比STM32的官方开发板,我们在使用SWD模式没有引出RST引脚,当然属于SWD的还有SWO信号,这是个监视用的,也是非常有用。这两个信号都可以连接仿真器的。

仿真器有UnderReset的方式,因此,仿真器在需要仿真的时候,会把RST信号送到MCU,让MCU处于RST,或者采用Reset后仿真,代码还没执行到禁止JTAG状态下,所以可以直接仿真。当然,也可以主动复位供电,也是可以脱离原来的JTAG禁止状态。也可以拉高boot0管脚。

编辑:jq


用JTAG调试ARM程序第一步就跳飞了是什么原因 1、执行写入FLASH MEM代码时,显示完成,但当板子复位时,重新读入的数据高8位全错,低8位正常;是否写入到了FLASH... 发表于 06-21 15:00 • 1047次
IEEE 1149.7标准提供高级功能帮助进行软件调试 除了减少引脚数之外,T4 类还定义了优化的特定扫描模式,其中只有用的信息。为了提高引脚操.... 星星科技指导员 发表于 06-19 10:23 • 298次
单相多功能计量SOC芯片ATT7035AU/7037AU/7037BU用户手册 ATT7035AU/37AU/37BU 是一颗低功耗高性能的单相多功能计量 SOC 芯片,片内集成单.... 发表于 06-10 15:17 •
arm_jtag_card转接板原理图 arm_jtag_card转接板原理图免费。 发表于 05-24 16:51 • 108次
如何完成arm调试协议(JTAG)的转换呢 调试ARM,要遵循arm的调试接口协议,JTAG就是其中的一种。当仿真时,IAR、KEIL、ADS等都有一个公共的调试接口,R... 发表于 05-24 15:53 • 3915次
ARM的ICP与JTAG / SWD代码烧录方案与原理详解 1、ICP与JTAG / SWD代码烧录方案与原理详解我们常见的MCU / CPU 代码烧录方式主要有以下三种:ICP(In Circ... 发表于 05-06 15:26 • 3562次
请问一下为什么ARM的JTAG口连接报错PRSC连接失败呢 ARM的JTAG口连接报错PRSC连接失败,是为什么?电路PCB都已经查过,无问题。 发表于 04-24 09:17 • 2276次
小编科普一下有关ARM的JTAG接口基础知识 一、JTAG的基本知识JTAG是Joint Test Action Group的缩写,是IEEE 1149.1标准。使用JTAG的优点:JTAG... 发表于 04-14 10:05 • 4047次
使用串口烧录或者调试时, Jtag不识别OpenOCD连接失败怎么解决 在使用串口烧录或者调试时,出现异常信息,Jtag不识别OpenOCD连接失败,怎么解决?
STM32方式有哪几种呢 STM32方式有哪几种呢?JTAG和串口分别有何特点? 发表于 03-01 07:23 • 854次
STM32F10x的MCU配置为JTAG功能 因为STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能1、禁用PB4复用功能GPIO_PinRemap... 发表于 03-01 06:16 • 212次
为什么PB4默认启动时不是普通IO引脚呢 问题描述:PB4默认启动时不是普通IO引脚,是JTAG的复用功能,NJTRST。 解决方案:这里我们选择010,完全关闭JTA... 发表于 03-01 06:11 • 159次
Keil MDK在个别电脑上程序失败的解决办法 文章原始地址: http://www.sheeptech.cc/?id=9 Keil MDK在个别电.... 发表于 01-12 18:49 • 166次
STM32F103的JTAG和SWD接口被禁用,无法程序 - 解决办法(亲试可用) STM32F103的JTAG和SWD接口被禁用,无法程序今天烧写STM32例程进板子的时候,没注.... 发表于 12-27 19:28 • 366次
STM32F103单片机JTAG端口重映射 STM32单片机复位后,JTAG口默认是被占用的。如果想将JTAG占用的几个IO口设置为普通IO口,.... 发表于 12-04 15:36 • 173次
【RT-Thread创新应用设计大赛】串口接收/打开错误问题 记录在做rt thread创新应用大赛的时候遇到的“串口发送错误”问题。 萌萌的魔法世界 发表于 11-10 08:18 • 2395次
TI - MCU - MSP430使用指南31 - BSL 在讲述BSL功能之前,首先我们需要了解以下MSP430的方式:JTAG: 很多MCU都使用的.... 发表于 11-01 16:24 • 203次
通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一.... 开源嵌入式 发表于 09-12 16:11 • 2634次
任何产品开发周期的一个重要阶段是系统的调试和测试。随着设计复杂性的增加,产品的软件开发和系统调试阶段.... 电子设计 发表于 06-18 16:42 • 950次
新版STM32F103ZE核心板原理图 新版STM32F103ZE核心板原理图免费。 发表于 06-18 11:14 • 522次
MPLAB REAL ICE在线仿真器JTAG适配器用户指南 MPLAB REAL ICE在线仿真器JTAG适配器用户指南免费。 发表于 05-12 10:13 • 303次
调试参数在嵌入式开发中再常见不过了,比如滤波系数、PID参数以及一些简单的模式参数切换、写入和读取等.... 嵌入式ARM 发表于 05-10 18:06 • 1579次
如何解决xc7s不支持w25q系列芯片的问题? 今天给大侠带来Spartan-7 XC7S100程序固化 w25q128FVSG,解决xc7s不支持.... city_prolove 发表于 05-08 11:09 • 2496次
MAX II器件的数据手册规范 本节为设计人员提供了MAX®II器件的数据手册规范。本章包含内部体系结构的特征定义,联合测试操作组(.... 发表于 04-07 14:42 • 327次
在传统上,JTAG调试技术主要是用于硬件Bring-Up,如今也常常被用于配合基于代理的调试(a.... 电子设计 发表于 04-05 10:19 • 1367次
JTAG的设计与研究 随着科技的发展,电子产品的开发和生产时,由于日益复杂的电路及器件的布局、器件复杂的封装、密集的管脚等.... 发表于 03-29 10:15 • 245次
蜂鸟FPGA开发板和JTAG调试器介绍 为了便于初学者能够快速地学习 RISC-V 嵌入式开发,蜂鸟 E203 开源 MCU 原型 SoC(.... 发表于 03-23 10:00 • 555次
常见的JTAG接口针脚详细资料 JTAG( Joint Test Action Group;联合测试工作组)是一种国际标准测试协议(.... 发表于 03-22 17:29 • 717次
现在,如果您构建一千个板,每个板具有数千个连接,则不可避免地会有一些不良板。如何测试所有这些板?必须.... FPGA之家 发表于 03-09 10:54 • 1470次
  学习了 FPGA 一段时间,简单的设计仿真验证以及有所熟悉,今天将学习通过 JTAG 固化程序。.... city_prolove 发表于 03-05 15:17 • 2775次
最近我就遇到了这类事情,FPGA的JTAG口突然就不能程序了,而且这种事情已经不是第一次了,之前.... 嵌入式ARM 发表于 03-04 16:14 • 1728次
J-Link和J-Trace用户指南免费 J-Link/J-Trace有不同的版本,每个版本都是为不同的目的/目标设备设计的。目前,J-Lin.... 发表于 03-03 08:00 • 447次
DSP开发工具与软件设计 本文档的主要内容详细介绍的是DSP开发工具与软件设计包括了:*开发工具* Visualdsp介绍*D.... 发表于 02-26 10:04 • 361次
CPLD FPGA的快速入门学习教程免费 当今社会,随着电子行业的发展,大规模集成电路的运用越来越普遍,用CPLD/FPGA来开发新产品是当前.... 发表于 01-25 15:24 • 242次
【ZYNQ Ultrascale+ MPSOC FPGA教程】第二章硬件原理图介绍 XCZU2CG-1SFVC784E芯片的PS系统PS系统集成了2个ARMCortex™-A53处理器.... FPGA技术专栏 发表于 01-21 13:06 • 3921次
DSP系统设计开发流程的详细讲解 信号处理的问题包括:输入、输出结果特性的分析, DSP算法的确定,以及按要求对确定的性能指标在通用机.... 发表于 01-18 16:49 • 987次
ST-LINKV2仿真器的应用程序和制作工程文件免费 ST-link/V2是一款可以在线仿真以及STM8以及STM32的开发工具。支持所有带SWIM接.... 发表于 01-18 08:00 • 319次
DSP技术应用现状以及发展趋势 微控制器MCU通俗的称呼是单片机,它与微处理器MPU是微机技术的两大分支。MPU的发展动力是人类对无.... 发表于 01-13 11:20 • 803次
FPGA器件的三类配置方式详细说明 有些人对于FPGA下JTAG的方式有些迷惑,为什么出现配置芯片了,为什么要用不同的电缆,不同.... 发表于 01-05 16:21 • 384次
FPGA配置电路的主模式和从模式与JTAG模式的详细说明 我们知道,FPGA是易失性的。硬件配置,即把HDL代码到FPGA芯片中,才能进行下一步的调试。 发表于 01-05 16:21 • 749次
本博文主要是对基于PCIE(mcap)的部分可重构实现的步骤做一个简单的演示,如有错误之处,欢迎批评.... 电子设计 发表于 01-03 09:20 • 2319次
FPGA JTAG的配置模式详细说明 赛灵思公司的FPGA芯片具有IEEE 1149.1/1532协议所规定的JTAG接口,只要FPGA上.... 发表于 12-31 17:30 • 999次
浅谈ZYNQ的三种启动方式-JTAG、SD card、Flash 前言: 前面我们都是使用JTAG方式比特流文件,然后elf文件,最后点击Run as或者De.... 39度创意研究所 发表于 12-26 10:08 • 4340次
TMS320F28335单片机的介绍和组成最小应用系统的设计说明 介绍TMS320F28335 的性能特点、仿真工具和开发环境,给出了由TMS320F28335组成的.... 发表于 11-19 17:47 • 924次
STM32F030和STM32F070系列微控制器的参考手册 本参考手册面向应用程序开发人员。它提供了有关如何使用STM32F030x4/x6/x8/xC和STM.... 发表于 11-19 08:00 • 1774次
使用MZ7035开发板实现XILINX FPGA的入门 主要讲解开机测试,JTAG 程序,FPGA 基础语法基础,VIVADO 软件快速入门、HMDI .... 发表于 11-09 08:00 • 460次
SL-USBISPII仿真器的用户手册免费 SL- USBISPⅡ仿真器,是集USB( Fullspeed)通信AVRAVR32微控制器的J.... 发表于 11-06 08:00 • 345次
JTAG是1980年代开发的用于解决电子板制造问题的IEEE标准(1149.1)。如今,它可以用作编.... FPGA开源工作室 发表于 11-01 11:09 • 3841次
使用FPGA经常会碰到哪些问题应该如何解决 本文档的主要内容详细介绍的是使用FPGA经常会碰到哪些问题应该如何解决。 发表于 10-30 16:54 • 549次
JTAG器连接时FPGA不加载flash里的程序解决办法 最近群里有很多人遇到上述的情况,一直觉得不可思议,以前没有遇到这种情况,如果是很常见的情况,那官网一.... OpenFPGA 发表于 10-30 11:37 • 3578次