0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JTAG简介 JTAG和SWD之间的区别

FPGA之家 来源:知晓编程 作者:知晓编程 2021-07-23 17:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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接口。

d88ba2c6-eb90-11eb-a97a-12bb97331649.jpg

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的引脚。这叫做芯片边界测试。

d8f98764-eb90-11eb-a97a-12bb97331649.png

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

d905779a-eb90-11eb-a97a-12bb97331649.png

JTAG的菊花链还有很多玩法

CPUFPGA制造商允许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模式对比图

d9dd2924-eb90-11eb-a97a-12bb97331649.png

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模式中的说明。

STM32F207的SWJI/O引脚可用性

06RESET引脚作用

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

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

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

db2d2e6e-eb90-11eb-a97a-12bb97331649.png

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

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JTAG
    +关注

    关注

    6

    文章

    411

    浏览量

    74621

原文标题:关于JTAG,你知道的和不知道的都在这里

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    cw32L系列是不是用不了JTAG?只是用SWD接口?

    cw32L系列是不是用不了JTAG?只是用SWD接口?
    发表于 12-08 06:21

    请问jtag和jlink有什么区别啊?

    jtag和jlink有什么区别啊?
    发表于 11-28 06:46

    嵌入式开发调试神器全解析:JTAGSWD、串口打印

    写嵌入式代码只是第一步,调试才是决定项目能不能顺利推进的关键。MCU不跑?外设不响应?代码跑飞?没有合适的调试手段,排查问题就像摸黑找路。本文带你搞懂三大调试利器——JTAGSWD、串口打印。不仅
    的头像 发表于 11-24 19:04 230次阅读
    嵌入式开发调试神器全解析:<b class='flag-5'>JTAG</b>、<b class='flag-5'>SWD</b>、串口打印

    JTAG引脚用作普通IO

    JTAG引脚用作普通IO时,需要通过复用功能重映射来释放调试接口占用的引脚资源。 void JTAG_To_GPIO_Config(void) { // 关闭JTAG功能(保留SWD
    发表于 11-13 06:39

    基于FPGA平台的蜂鸟E203 JTAG debug出错问题的解决思路

    demo时发现hello_world.elf文件无法下载成功。 因为自己用的是芯来专用的JTAG debugger,但是没有用芯来专用的FPGA开发板,因此是使用跳线连接JTAG。因此我首先怀疑
    发表于 10-28 07:38

    vivado JTAG链、连接、IP关联规则介绍

    这列出了定义板上可用的不同JTAG链。每个链都列在下面以及链的名称,以及定义名称和链中组件的位置。
    的头像 发表于 10-15 10:21 373次阅读
    vivado <b class='flag-5'>JTAG</b>链、连接、IP关联规则介绍

    JTAG标准的状态机实现

    JTAG作为一项国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试和调试。目前的主流芯片均支持JTAG协议,如DSP、FPGA、ARM、部分单片机等。标准的JTAG接口是20Pin,但
    的头像 发表于 08-21 15:12 2090次阅读
    <b class='flag-5'>JTAG</b>标准的状态机实现

    是否可以使用 SEGGER J-Link(JTAG/SWD)重写 PMG1-S3 的量产固件?

    是否可以使用 SEGGER J-Link(JTAG/SWD)重写 PMG1-S3 的量产固件?
    发表于 07-31 06:31

    RISC-V JTAG:开启MCU 芯片调试之旅

    基于 RISC-V 架构的 MCU 芯片JTAG 调试过程及操作,为后续类似调试工作提供详实参考的依据,助力研发团队高效推进芯片研发进程。 RISC-V 架构以其开源、模块化等优势在 MCU 芯片领域崭露头角。JTAG(Joint Test Action Group)调试
    的头像 发表于 05-07 17:57 2350次阅读
    RISC-V <b class='flag-5'>JTAG</b>:开启MCU 芯片调试之旅

    FPGA的Jtag接口烧了,怎么办?

    在展开今天的文章前,先来讨论一个问题:FPGA的jtag接口烧了怎么办?JTAG接口的输入引脚通常设计为高阻抗,这使得它们对静电电荷积累非常敏感,由于JTAG接口需要频繁连接调试器、下载线缆等外
    的头像 发表于 04-27 11:01 2134次阅读
    FPGA的<b class='flag-5'>Jtag</b>接口烧了,怎么办?

    将NXP RT1166更换为RT1064,可以使用JTAG/SWD存储和检索其闪存上的数据吗?

    我在我的项目中使用了 RT1166,但是,其中一个要求是芯片应该具有可被 JTAG/SWD 访问的内部闪存。 RT1166 有,但 RT1064 有 4MB 的内部 Flash。 我可以使用 JTAG/
    发表于 04-07 06:29

    NXP MCU RT1166如何使用JTAG/SWD工具将数据存储到内部闪存中?

    我需要使用 JTAG 将数据存储到内部闪存中。我能够使用 JTAG/SWD 工具 ARM J-Link 将它们存储在 FlexSPI1 连接的外部闪存上,并且可以通过地址0x30000000访问
    发表于 04-01 06:54

    使用NXP控制器LPC55S69JBD100E,编程都需要SWDJTAG吗?

    1. 在我们的项目中,我们使用 NXP 控制器LPC55S69JBD100E。编程都需要 SWDJTAG 吗? 2. 您能解释一下 Flash 编程吗?
    发表于 03-27 07:23

    EE-68: JTAG仿真技术参考

    电子发烧友网站提供《EE-68: JTAG仿真技术参考.pdf》资料免费下载
    发表于 01-05 10:07 1次下载
    EE-68: <b class='flag-5'>JTAG</b>仿真技术参考

    JTAG/MPSD仿真技术参考

    电子发烧友网站提供《JTAG/MPSD仿真技术参考.pdf》资料免费下载
    发表于 12-23 15:45 0次下载
    <b class='flag-5'>JTAG</b>/MPSD仿真技术参考