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

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

3天内不再提示

调试接口SWD和JTAG的区别

工程师 来源:strongerHuang 作者:strongerHuang 2020-10-27 09:29 次阅读

作者 | strongerHuang

微信公众号 | strongerHuang

作为嵌入式工程师下载调试器都应该知道,但你真正了解其SWD 和 JTAG接口的含义和区别吗?

1

什么是下载调试器

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

2

调试器协议标准

1.什么是标准?

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

2.调试器协议混乱现象

在SWD和JTAG之类的协议出现之前,调试器及其协议一片混乱,每个MCU制造商都提出了自己的专有方法,将代码加载到他们的MCU上。制造商每次发布MCU时,嵌入式软件工程师都需要了解其专有协议,以将代码加载到微控制器中。

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

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

3.制定协议

各种下载调试不同会导致几个问题:

投入更多的学习时间

增加购买下载调试的成本

生成测试效率低下

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

3

JTAG标准

JTAG:Joint Test Action Group,即联合测试行动小组。

该小组于1980年后期开始讨论,并于1990年正式发布了解释IEEE标准的文档。(IEEE代表电气电子工程师协会,是一个国际组织,其中发布了所有标准,如WiFi,蓝牙等)。他们提出的协议在1990年被记录在IEEE 1149.1中。后来对该文档进行了修订和完善,在撰写本文时,最新标准是IEEE 1149.7。

JTAG基本上带有5个引脚:

TDI: Test Data In。串行输入引脚

TDO: Test Data Out,串行输出引脚

TCK:Test Clock,时钟引脚

TMS: Test Mode Select,模式选择(控制信号)引脚

TRST: Test Reset,复位引脚

4

SWD标准

SWD:Serial Wire Debug,代表串行线调试,是ARM设计的协议,用于对其微控制器进行编程和调试。

由于SWD专门从事编程和调试,因此它具有许多特殊功能,通常在其他任何地方都无法使用,例如通过IO线将调试信息发送到计算机。另外,由于它是ARM专门为在其设备中使用而制造的,因此SWD的性能通常是同类产品中最好的!

SWD引脚

SWDIO: Serial Wire Data Input Output,串行数据输入输出引脚

SWCLK: Serial Wire Clock,串行线时钟引脚

5

SWD / JTAG的各种区别

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

1.共享引脚

SWD的引脚在一定条件下可以和JTAG引脚复用,目前针对 JTAG 和 SWD的连接器比较多,比如20pin的接插件:

当然,也有10pin的:

2.SWD / JTAG各自优势

SWD协议的优势:

使用引脚更少,只需SWDIO和SWCLK两个引脚

SWD具有特殊功能,例如通过其I / O线打印调试信息

与JTAG相比,SWD在速度方面具有更好的整体性能

JTAG协议的优势:

JTAG不仅限于ARM芯片,在ARM之外的芯片也受支持,比如大家熟悉的MSP430

JTAG具有更多多种用途,用于编程,调试和生产测试

JTAG是一个独立的团体,他们会随着协议的发展而发展

3.什么时候选择SWD而不是JTAG

如果您的原理图/电路板设计足够简单,可以在没有JTAG功能的情况下进行测试

调试性能比生产测试更重要,你的设备专注于服务研究而不是批量生产!

MCU在尺寸方面有限制,SWD 可以节省空间

你的硬件设计太复杂,MCU没有多余的2个引脚

6

总结:SWD / JTAG对比

下面用一种图来总结:

责任编辑:haq

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

    关注

    5082

    文章

    19093

    浏览量

    304604
  • JTAG
    +关注

    关注

    6

    文章

    398

    浏览量

    71662
  • SWD
    SWD
    +关注

    关注

    1

    文章

    57

    浏览量

    11825
收藏 人收藏

    评论

    相关推荐

    C2000 MCU JTAG 连接调试

    电子发烧友网站提供《C2000 MCU JTAG 连接调试.pdf》资料免费下载
    发表于 09-09 09:30 0次下载
    C2000 MCU <b class='flag-5'>JTAG</b> 连接<b class='flag-5'>调试</b>

    【GD32 MCU 入门教程】二、GD32 MCU 烧录说明 (2)SWD/JTAG在线下载

    GD32系列MCU支持SWDJTAG(部分型号不支持)接口进行下载调试,这些功能通过ARM CoreSight组件的标准配置和链状连接的TAP控制器来实现的。
    的头像 发表于 08-08 17:34 657次阅读
    【GD32 MCU 入门教程】二、GD32 MCU 烧录说明 (2)<b class='flag-5'>SWD</b>/<b class='flag-5'>JTAG</b>在线下载

    是否可以使用JLink工具,通过JTAGSWD引脚在ESP8266上编程和调试代码?

    是否可以使用JLink工具,通过JTAGSWD引脚在ESP8266上编程和调试代码? 我找不到任何关于这个的文档,似乎没有人关心它。请指教。
    发表于 07-22 08:08

    ESP8266是否可以通过JTAGSWD成功地使用J-Link进行编程和调试

    是否有可能,如果是的话,是否有人通过JTAGSWD成功地使用J-Link进行编程和调试ESP8266? 我正在使用 Sparkfun Thing 板 (https
    发表于 07-08 08:19

    STM32F407调试接口报错SWD/JTAG Communic怎么解决?

    我画了一块电路板,其中的调试接口接线如下: 但是在进行程序下载的时候 Keil5 报错:SWD/JTAG Communication Failure 我的 Keil5
    发表于 07-03 06:41

    RISCV soft JTAG调试_v1.2

    因为目前软件的限制,RISCV的逻辑不能同时共用JTAG,所以如果想要同时去调试逻辑和RISCV的话,可以通过RISCV的soft Jtag来实现。soft Jtag就是通过GPIO来
    的头像 发表于 04-23 08:38 1050次阅读

    STM32L4禁用nJTRST但不中断JTAG要怎么操作?

    好几只自制 JTAG 调试器,均统一使用 ARM CoreSight 调试接口,因此不用担心接口兼容性。) 背景: 我之前是做过类似的设计的
    发表于 04-15 06:44

    jlink调试器的工作原理

    我们平时使用的jlink调试器就是使用JTAG接口JTAG以前是用于测试芯片的一种通信方式,现在部分ARM或者DSP等都存在JTAG
    的头像 发表于 03-08 12:32 3061次阅读
    jlink<b class='flag-5'>调试</b>器的工作原理

    SWD接口隔离调试的电路

    在软件工程师里面我的硬件水平最好,在调试软件的时候经常用到RTT打印或者Jscope打印,但是在关键时刻jlink经常收到干扰数据打印错误,着急的我这个软件工程师都想把硬件工程师捏扁,调试300W
    的头像 发表于 03-07 21:19 944次阅读
    <b class='flag-5'>SWD</b><b class='flag-5'>接口</b>隔离<b class='flag-5'>调试</b>的电路

    RISCV soft JTAG调试_v1.1

    因为目前软件的限制,RISCV的逻辑不能同时共用JTAG,所以如果想要同时去调试逻辑和RISCV的话,可以通过RISCV的soft Jtag来实现。soft Jtag就是通过GPIO来
    的头像 发表于 02-23 16:16 646次阅读
    RISCV soft <b class='flag-5'>JTAG</b><b class='flag-5'>调试</b>_v1.1

    DAP接口JTAG接口调试有啥区别

    DAP接口JTAG接口调试有啥区别呀,为啥我接了jtag不可以多核
    发表于 02-19 06:24

    JTAG接口浪涌静电保护方案图分享

    JTAG接口是一类下载程序的接口,而且也是一类经常带电拔插的接口
    的头像 发表于 01-19 18:08 1352次阅读
    <b class='flag-5'>JTAG</b><b class='flag-5'>接口</b>浪涌静电保护方案图分享

    串行线调试JTAG有何区别

    在基于ARM7的ADuC器件上,通过JTAG调试和下载到Flash。在AduCM360上,JTAG被串行线调试取代。 串行线调试
    发表于 01-15 07:35

    SWD端口无法连接如何排查

    大家在调试GD32 MCU的时候是否也碰到过SWD调试端口无法连接的情况?SWD端口无法连接的原因有很多,有时候排查没有思路,可能会耽误大家的时间,下面小编为大家介绍常见的
    的头像 发表于 01-10 10:46 2156次阅读
    <b class='flag-5'>SWD</b>端口无法连接如何排查

    jlink和串口的区别

    和应用。 Jlink是一种支持调试和仿真的硬件接口工具。它由SEGGER公司推出,可用于连接计算机和嵌入式设备,以进行调试、编程和测试等操作。Jlink支持多种通信协议,如JTAG
    的头像 发表于 01-04 09:31 1881次阅读