良许Linux教程网 干货合集 下载调试接口 JTAG vs SWD

下载调试接口 JTAG vs SWD

作为嵌入式工程师,使用下载调试器是常见的,但您真正了解SWD和JTAG接口的含义和区别吗?

什么是下载调试器

简单来说,下载调试器是一种设备,它将PC(通常通过USB协议)发送的命令转换为MCU可以理解的语言(例如SWD或JTAG协议),以加载代码并精确地控制其执行。

调试器协议标准

  1. 什么是标准?

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

  1. 调试器协议的混乱现象

在SWD和JTAG等协议出现之前,调试器及其协议非常混乱。每个MCU制造商都提出了自己的专有方法来加载代码到他们的MCU上。这就意味着嵌入式软件工程师在每次新发布的MCU上都需要学习和了解其特定的专有协议。

调试适配器也非常昂贵。由于每个MCU制造商都有自己的专有协议,所以没有竞争者可以提供与所有这些协议兼容的调试适配器。此外,调试适配器的体积非常小,因为它们只能向使用相同MCU制造商的公司(即工程师)销售。

不同的协议还会导致开发成本的增加。例如,如果您在设计的电路板上使用了来自4个不同制造商的4种芯片,并且希望进行一些自动化测试以提高生产过程的效率,那么由于每个电路板都有自己的协议,您将需要开发一个非常复杂的生产代码来适应这种复杂性,并且需要安装4个不同的调试器在电路板上的测试点上,这增加了成本、生产时间和编程时间。

3.制定协议

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

  • 投入更多的学习时间
  • 增加购买下载调试的成本
  • 生成测试效率低下

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

JTAG标准

JTAGJoint Test Action Group,即联合测试行动小组。

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

image-20231109213253415
image-20231109213253415

JTAG基本上带有5个引脚:

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

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

TCK:Test Clock,时钟引脚

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

TRST:Test Reset,复位引脚

SWD标准

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

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

image-20231109213257771
image-20231109213257771

SWD引脚

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

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

SWD / JTAG的各种区别

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

1.共享引脚

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

image-20231109213302344
image-20231109213302344

当然,也有10pin的:

image-20231109213305031
image-20231109213305031

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个引脚

总结:SWD / JTAG对比

下面用一种图来总结:

image-20231109213308889
image-20231109213308889

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部