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

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

3天内不再提示

下载调试接口SWD和JTAG的区别

454398 来源:alpha007 作者:alpha007 2022-11-28 11:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作为嵌入式工程师,下载调试器都应该知道,但你真正了解其 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 个引脚


审核编辑黄昊宇

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

    关注

    6

    文章

    411

    浏览量

    74604
  • SWD
    SWD
    +关注

    关注

    1

    文章

    59

    浏览量

    12567
  • 调试接口
    +关注

    关注

    0

    文章

    10

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    调试器无法连接的排查方法

    : IDE 调试设置选择 SWD 接口,速度降至 1MHz 尝试。 更新调试器驱动(如 J-Link、DAP-Link)。 芯片保护: 若程序禁用了
    发表于 11-18 06:15

    JTAG引脚用作普通IO

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

    JTAG标准的状态机实现

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

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

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

    使用MiniProg4通过ModusToolBox软件调试CYW920820M2EVB-01,遇到报错怎么解决?

    ,并使用随附的电缆启动了调试器。 我想使用 SWD 调试。 此外,我还在 makefile 中启用了调试功能。 但我遇到了错误: 信息:监听端口 6666 上的 tcl 连接 信息:监
    发表于 07-01 08:24

    使用USB转TTL串口板和ST-LINK调试下载器给STM32单片机下载程序

    本文详细介绍如何使用ST-LINK/V2和USB转TTL串口板为STM32单片机下载程序,包括STM32启动模式、JTAGSWD接口对比、驱动安装及官方软件STM32ST-LINKU
    的头像 发表于 06-20 17:26 2040次阅读
    使用USB转TTL串口板和ST-LINK<b class='flag-5'>调试</b><b class='flag-5'>下载</b>器给STM32单片机<b class='flag-5'>下载</b>程序

    RT-Trace调试工具正式发布!

    嵌入式开发者打造的高性能调试工具。RT-Trace支持SWD/JTAG高速连接,搭载板载显示屏离线交互系统与WebUI实时监控平台,助力代码调试、性能分析、故障排查全流程
    的头像 发表于 06-18 12:02 1199次阅读
    RT-Trace<b class='flag-5'>调试</b>工具正式发布!

    调试CYUSB3014的JTAG功能失败了,为什么?

    你好,由于问题已经关闭无法回复,所以想再咨询一下。(调试CYUSB3014的JTAG功能,失败) 我用的是自主开发的板子。 我安装的SDK是FX3 SDK 1.3.5,而不是你说的1.3.0.5或者
    发表于 05-19 08:25

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

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

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

    在展开今天的文章前,先来讨论一个问题:FPGA的jtag接口烧了怎么办?JTAG接口的输入引脚通常设计为高阻抗,这使得它们对静电电荷积累非常敏感,由于
    的头像 发表于 04-27 11:01 2108次阅读
    FPGA的<b class='flag-5'>Jtag</b><b class='flag-5'>接口</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