浅论调试接口(JTAG、SWD、RDI、Jlink、Ulink、STlink)的区别
一、JTAG协议
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。相关JTAG引脚的定义为:
TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TCK:测试时钟输入;TDI:测试数据输入,数据通过TDI引脚输入JTAG接口;TDO:测试数据输出,数据通过TDO引脚从JTAG接口输出;JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。所以,目前市场上已经很少看到它的身影了。
二、SWD接口
串行调试(Serial Wire Debug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。
SWD和传统的调试方式区别:
SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。在大家板子的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小啦!比如你可以选择一个很小的2.54间距的5芯端子做仿真接口。三、RDI接口
远程调试接口(Remote Debug Interface),是ARM公司提出的标准调试接口,主要用于ARM芯片的仿真,由于各个IDE厂商使用的调试接口各自独立,硬件无法进行跨平台的调试。
现在众多的IDE厂家都逐步采用标准RDI作为ARM仿真器的调试接口,因此使跨平台的硬件调试成为可能。EasyJTAG由于使用标准RDI调试接口,因此在任何使用标准RDI接口的IDE调试环境中都可以使用,例如ARM公司的ADS1.2/IAR公司的EWARM 3.30 。
四、JLink仿真器
J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。
JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的。
五、ULink仿真器
ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINK Pro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。
开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。但是要注意的是,ULINK是KEIL公司开发的仿真器,专用于KEIL平台下使用,ADS、IAR下不能使用。
六、ST-Link仿真器
ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,其主要功能有:
编程功能:可烧写FLASH ROM、EEPROM、AFR等;仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等;仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快;编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快;来源:技术让梦想更伟大
整理:李肖遥
硬件笔记本,一起学习电路设计、PCB设计、仿真、调试以及EMC知识
更多干货文章请点击关注:
搞懂元器件,就搞懂了电路的一半
一起学习吧:
硬件笔记本|加群
声明:本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。
一份很好的JTAG完全解读资料
1、简介
JTAG的英文名称为Joint Test Action Group,中文名字叫做联合测试工作组,是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试及对系统进行在线仿真、调试,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的JTAG测试工具对芯片进行测试。现在多数的高级器件都支持JTAG协议,如以以ARM为核心的手机CPU、DSP、FPGA、CPLD等芯片都会带JTAG接口。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
2、接口
JTAG 技术是一种嵌入式调试技术,JTAG最初是用来对芯片进行测试的,JTAG的基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。如今,JTAG接口还常用于实现ISP(In-System Programmer,在系统编程),对FLASH等器件进行编程。
JTAG调试接口有TMS、TCK、TDI、TDO四根调试信号,可选信号脚为:TRST、RESET复位信号和RTCK(同步时钟)。
TRST:JTAG复位,连接到目标CPU的nTRST引脚,用于复位CPU调试接口的TAP控制器;目标板上应将此脚上拉到高电位,避免意外复位;
3、JTAG功能
JTAG是最基本的通讯协议之一,大家可以理解为与RX、TX以及USB的道理一样,只是一种通讯手段,但与RX TX以及USB有很重大的不同,那就是这个JTAG协议是最底层的,说的通俗一点,一般来说,手机里边,CPU是老大,妥妥的吧?但在JTAG面前,他就变得不那么回事了,JTAG协议就是用来控制CPU的,在JTAG面前CPU变成喽啰了。一般的协议是求着CPU读写字库的程序,但JTAG可以读写CPU的程序,命令让CPU啥活都干,擒贼先擒王,JTAG就是屠龙刀。
所有的手机CPU都支持JTAG协议,也必须支持JTAG协议,因为CPU里边的数据只有通过JTAG功能才能写入,在内部数据错乱的时候或者其他部分重要数据错乱的时候,CPU可能就不理会RX TX或者USB了,在这个时候,用JTAG协议功能,强制手机的CPU乖乖的干活。
更说的更简单一点,让大家理解,就是在CPU由于软件原因不联机的时候,JTAG是唯一能够恢复这部分软件的工具。JTAG能够指挥CPU干任何事,在JTAG面前CPU只是一个马仔。
A. 下载器,即烧写软件到FLASH里;
B. 用于调试程序,通过JTAG接口可以调试电路板上的程序,跟医生的听诊器似的,可探听芯片内部小心思;
C. 边界扫描,可以访问芯片内部的信号逻辑状态,还有芯片引脚的状态等等。
4、JTAG的引脚定义
a) Test Clock Input (TCK)------测试时钟输入,TCK在IEEE1149.1标准里是强制要求的;
b) Test Mode Selection Input (TMS) ----测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式,TMS信号在TCK的上升沿有效,TMS在IEEE1149.1标准里也是强制要求的;
c) Test Data Input (TDI)------ 测试数据输入,所有的数据都是通过TDI接口串行输入的,TDI在IEEE1149.1标准里是强制要求的;
d) Test Data Output (TDO)------测试数据输出,所有的数据都是通过TDO接口串行输出的,TDO在IEEE1149.1标准里是强制要求的;
e) Test Reset Input (TRST)------测试复位,输入引脚,低电平有效,这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。
f) (VTREF) -----参考电压信号,这个引脚一般直接连接VCC。用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压,这个引脚也是强制要求的;
g) 目标板参考电压信号。Return Test Clock ( RTCK) ----由芯片返回给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地,不是必选的;
h) System Reset ( nSRST)------与目标板上的系统复位信号相连,可以直接对目标系统复位,同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻;
i) GND------公共地信号。
虽然TRST、nSRST是可选的信号;但一般都建议接上,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续仿真。
由于JTAG在实验室调试的时候经常使用排线连接,为了增强抗干扰能力,在每条信号线间加上地线就出现了这种20针的接口。但事实上,RTCK、USER IN、USER OUT 一般都不使用,于是还有一种14针的接口。对于实际开发应用来说,由于实验室电源稳定,电磁环境较好,干扰不大。
5、20、14、10 pin JTAG的引脚关系
值得注意的是,不同的IC公司会自己定义自家产品专属的Jtag头,来下载或调试程序。嵌入式系统中常用的20、14、10pin JTAG的信号排列如下:
需要说明的是,上述JTAG管脚的名称是对IC而言的。例如TDI脚,表示该脚应该与IC上的TDI脚相连,而不是表示数据从该脚进入download cable。
相关问答
单片机的 JTAG 接口功能是什么-ZOL问答烧写FLASH的软件有很多种包括jatg.exeflutedflashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信.....
单片机的 JTAG 接口功能是什么?1用于烧写FLASH烧写FLASH的软件有很多种包括jatg.exeflutedflashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所...
ETM是什么意思?ETM对深嵌入处理器内核提供了实时跟踪能力。它向一个跟踪端口输出处理器执行的信息。软件调试器允许使用JTAG接口对ETM进行配置并以用户易于理解的格式显示捕...
cpld最小系统是什么意思_作业帮[回答]可以让CPLD运行起来的最小硬件结构:CPLD芯片、时钟电路、电源电路、JTAG配置电路、复位电路.以上为CPLD最小系统的构成,以保证CPLD正常工作,在此基...
细说ISP和IAP的区别?ISP(In-SystemProgramming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或...
ulink接口定义?ulink的全称是KeilULINKUSB接口仿真器,是一款多功能ARM调试工具,可以通过JTAG或CODS接口连接到目标系统,进行仿真或下载程序,已经成为国内主流的ARM开发...
数字ic设计用什么 软件 ?大概分为这几个板块:RTLdesigner:常用语言:Verilog,SystemVerilog,OVL断言库等常用工具:VCS,Verdi,Spyglass等ICVerifica...
spy-bi-wire是什么意思?_作业帮[回答]楼主是高人啊,我查到的供你参考SBW是SPY-BI-WIRE,可以简称两线制JTAG,主要用SBWTCK(连接到JTAG仿真器的7脚TCK)与SBWTDIO(连接到JTAG仿真器的1脚TDO...
esp32下载程序选哪个?而第三方的开发环境如ArduinoIDE则更加简单易用,适合初学者或者快速开发。3.此外,根据个人的开发需求和熟悉程度,也可以选择其他下载程序,如PlatformIO等。...
了解MCU是什么呢?[回答]MCU的嵌入式研发是指MCU自身嵌入仿真调功能,如JTAG,BDM模块和软件的monitor。在研发这一类MCU时只必须一根JTAG线或者RSS232TOTTL线就行了。MCU...