STM32中使用J-Link仿真器选择JTAG模式和SWD模式的区别

article/2025/9/13 1:17:57

0. 下载调试器(仿真器)

下载调试器是将PC(例如通过USB协议)发送的命令转换为MCU(负责MCU内部外围设备)理解的语言(例如SWD或JTAG协议)的设备,加载代码并精确控制执行。

1. J-Link

J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG/SWD仿真器。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,与IAR,Keil等编译环境无缝连接,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。

ARM芯片有两种调试模式,一种是JTAG,一种是SWD,二者在管脚上有复用。

2. 调试器协议标准

标准就是一组规则和协议,特定行业中的每个参与者都同意遵循并执行。

在SWD和JTAG之类的协议出现之前,调试器及其协议一片混乱,每个MCU制造商都提出了自己的专有方案,将代码加载到他们的MCU上。

制造商每次发布MCU时,嵌入式软件工程师都需要了解其专有协议,以将代码加载到MCU中。

而且,调试适配器很昂贵,因为制造商实际上并没有竞争者可以使调试适配器与他们的协议相匹配,因为协议是专有的。他们昂贵的另一个原因是,由于体积不足,因为它们只能将调试适配器出售给使用它们制造的MCU的公司(工程师)。

不同协议还会导致开发成本增加,比如你在设计的板上有来自4个不同制造商的4种芯片,并且希望对其进行一些自动化测试以提高生产过程的效率。但是由于所有电路板都有自己的协议,因此您需要制作一个能适应复杂性的超级复杂的生产代码,并且需要在电路板上的测试点安装4个不同的调试器,从而增加了成本,生产时间和编程时间。

各种下载调试不同会导致几个问题:1. 投入更多的学习时间;2. 增加购买调试下载的成本;3. 生产测试效率低下。

为了解决这一问题,各大MCU制造和生产商的工程师们就针对调试制定了一些规范协议。

2. JTAG标准

JTAG的全称是Joint Test Action Group (测试行动联合组织),它是由几家主要电子制造商发起制订的PCB 和IC 测试标准,主要应用于电路的边界扫描测试和可编程芯片的在线系统编程。
在这里插入图片描述
JTAG调试接口必须使用VCC、GND电源信号,以及TMS、TCK、TDI、TDO四根调试信号。

以下为各个引脚的说明:

  • TMS——测试模式选择。TMS用来设置JTAG口处于某种特定的测试模式,用于控制TAP状态机。必须上拉。

  • TCK——测试时钟输入。TMS和TDI的数据在TCK的上升沿被采样。数据在时钟的下降沿输出到TDO。建议下拉。

  • TDI——测试数据输入。输入到指令寄存器(IR)或数据寄存器(DR)的数据出现在TDI输入端,在TCK的上升沿被采样。建议上拉,上拉电阻阻值不能小于1K。

  • TDO——测试数据输出。来自指令寄存器或数据寄存器的数据在时钟的下降沿被移出到TDO。不用上下拉,悬空时,尽量引出测试点,同时应避免将TDO作为I/O使用。

  • VTref——目标板参考电压,接电源。用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压。

  • 可选引脚TRST——测试复位,输入引脚,低电平有效。TRST可以用来对TAP Controller进行复位(初始化)。因为通过TMS也可以对TAPController进行复位(初始化)。所以有四线JTAG与五线JTAG之分。目标板上应将此脚上拉到高电位,避免意外复位。

  • 可选引脚RTCK——测试时钟返回信号。RTCK由目标端反馈给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地。

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

虽然TRST、RESET是可选的信号,但一般都建议接上,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续仿真。

3. SWD标准

SWD的全称是Serial Wire Debug(串行调试)。
在这里插入图片描述
SWD是ARM公司设计的协议,用于对其微控制器进行编程调试。由于SWD专门从事编程和调试,因此它具有许多特殊的功能,通常在其他任何地方都无法使用,例如通过IO线将调试信息发送到计算机。

另外,由于它是ARM专门为在其设备中使用而制造的,因此SWD的性能通常是同类产品中最好的。

相对于JTAG接口,使用更少的信号。四根信号如下:VCC、GND、SWDIO、SWCLK。

以下为各个引脚的说明:

  • SWDIO——串行数据输入输出。作为仿真信号的双向数据信号线,建议上拉。

  • SWCLK——串行时钟输入。作为仿真信号的时钟信号线,建议下拉。

  • VRef——目标板参考电压信号。用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压。

  • 可选引脚SWO——串行数据输出引脚。CPU调试接口可通过SWO引脚输出一些调试信息。该引脚是可选的。

  • 可选引脚RESET——仿真器输出至目标CPU的系统复位信号。

同样的,虽然RESET是可选的信号;但一般都建议接上,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续连接仿真。

4. JTAG与SWD有何不同

市面上有很多兼容SWD和JTAG协议的MCU和调试适配器,他们通常通过具有一组下载调试引脚,来实现下载和调试功能,这些引脚内部复用到SWD外设和JTAG外设。

SWD协议的优势:

  1. SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持。所以推荐大家使用这个模式。
  2. 在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。
  3. 在大家板子的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小。比如你可以选择一个很小的2.54间距的5芯端子做仿真接口。
  4. SWD具有特殊功能,例如通过I/O线打印调试信息。

JTAG协议的优势:

  1. JTAG不仅支持ARM芯片,在ARM之外的芯片也受到支持,例如MSP430。
  2. JTAG具有更多用途,用于编程、调试和生产测试。
  3. JTAG是一个独立的团体,他们会随着协议的发展而发展。

什么时候选择SWD而不是JTAG

  1. 如果原理图/电路板设计足够简单,可以在没有JTAG功能的情况下进行测试。
  2. 调试性能比生产测试更重要,设备专注于服务研究而不是生产
  3. MCU在尺寸方面有限制,SWD可以更节省空间。
  4. 硬件设计太复杂,MCU没有多余的2个引脚。

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

相关文章

ARM JTAG仿真器电路讨论

一. JTAG仿真器的实质 JTAG (Joint Test Action Group) 编程调试实质上是利用了MCU/MPU片上自带的跟踪调试功能(需MCU/MPU硬件支持)。JTAG编程板一端与PC的并口相连,另一端连接至目标板,由于通常的MCU/MPU的工作电压在1.8V…

JTAG和SWD调试器

文章目录 一、调试器二、JTAG三、SWD三、各自优缺点 一、调试器 当我们开发单片机程序时,通常是在Windows或Linux上进行代码编写和编译,但是单片机并不直接集成在电脑上,怎么验证我们的单片机程序是否正确并烧录到单片机中,此时就…

JTAG基本原理及仿真器性能比较

转载自:http://www.gd-emb.org/detail/id-48408.html JTAG(Joint Test Action Group,联合测试行动组)是一种国际标准测试协议(IEEE 1149.1兼容)。标准的JTAG接口是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数…

JTAG、JLink、ULINK、ST-LINK仿真器区别

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

关于调试/仿真器的JTAG和SWD的使用==总结

嵌入式行业,涉及到系统设计,难免要考虑这些接口的设计, 当前手上的一个项目,为了减小体积、节省资源,使用了stm32 swd接口,下面及此简要说明下常用的一些调试接口,,, 常…

ADI DSP的JTAG设计规范(提供JTAG标准设计原理图)

早就想写点这方面内容了,14PIN的JTAG设计,是ADI从2000年至今一直延续下来的一个JTAG标准设计,很多兄弟在做硬件设计的时候,最常问的一个问题就是:JTAG接口定义是什么?更多的只知道抄原厂评估板的参考设计&a…

【开发工具】【JTAG】JTAG调试实例【三】

JTAG因为文章内容比较多,拆分成了四个部分,读者可以根据需求,点击查看其它的JTAG信息: JTAG基础 JTAG调试原理 JTAG调试实例 模拟系统崩溃,使用JTAG调试找到崩溃点 JTAG调试实例 本文以DM8168芯片为例&#xff0c…

JTAG基本介绍

JTAG 1. JTAG接口形式 JTAG作为一项国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试和调试。目前的DSP、FPGA、ARM、部分单片机等主流芯片均支持JTAG协议。标准的JTAG接口是20Pin,但JTAG实际使用的只有4根信号线&#x…

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代表不同的职…