下载调试器是将PC(例如通过USB协议)发送的命令转换为MCU(负责MCU内部外围设备)理解的语言(例如SWD或JTAG协议)的设备,加载代码并精确控制执行。
在SWD和JTAG之类的协议出现之前,调试器及其协议一片混乱,每个MCU制造商都提出了自己的专有方法,将代码加载到他们的MCU上。
制造商每次发布MCU时,嵌入式软件工程师都需要了解其专有协议,以将代码加载到微控制器中。
而且调试适配器很昂贵,因为制造商实际上并没有竞争者可以使调试适配器与他们的协议相匹配,因为协议是专有的。
它们昂贵的另一个原因是,由于体积不足,因为它们只能将调试适配器出售给使用它们制造的MCU的公司(工程师)。
不同协议还会导致开发成本增加,比如:你在设计的板上有来自4个不同制造商的4种芯片,并且希望对其进行一些自动化测试以提高生产过程的效率。
但是,由于所有电路板都有自己的协议,因此您需要制作一个能适应复杂性的超级复杂的生产代码,并且需要在电路板上的测试点安装4个不同的调试器,从而增加了成本,生产时间和编程时间。
该小组于1980年后期开始讨论,并于1990年正式发布了解释IEEE标准的文档。(IEEE代表电气与电子工程师协会,是一个国际组织,其中发布了所有标准,如WiFi,蓝牙等)。
他们提出的协议在1990年被记录在IEEE 1149.1中。后来对该文档进行了修订和完善,在撰写本文时,最新标准是IEEE 1149.7。
SWD:Serial Wire Debug,代表串行线调试,是ARM设计的协议,用于对其微控制器进行编程和调试。
由于SWD专门从事编程和调试,因此它具有许多特殊功能,通常在其他任何地方都无法使用,例如通过IO线将调试信息发送到计算机。
另外,由于它是ARM专门为在其设备中使用而制造的,因此SWD的性能通常是同类产品中最好的。
SWD与JTAG各自优势
SWD协议的优势:
• 使用引脚更少,只需SWDIO和SWCLK两个引脚;
• SWD具有特殊功能,例如通过其I/O线打印调试信息;
• 与JTAG相比,SWD在速度方面具有更好的整体性能。
JTAG协议的优势:
• JTAG不仅限于ARM芯片,在ARM之外的芯片也受支持,比如大家熟悉的MSP430;
• JTAG具有更多多种用途,用于编程,调试和生产测试;
• JTAG是一个独立的团体,他们会随着协议的发展而发展。
什么时候选择SWD而不是JTAG:
• 如果您的原理图/电路板设计足够简单,可以在没有JTAG功能的情况下进行测试;
• 调试性能比生产测试更重要,你的设备专注于服务研究而不是批量生产;
• MCU在尺寸方面有限制,SWD可以节省空间;
• 你的硬件设计太复杂,MCU没有多余的2个引脚。
审核编辑:刘清
-
JTAG
+关注
关注
6文章
399浏览量
71673 -
调试器
+关注
关注
1文章
303浏览量
23716 -
USB协议
+关注
关注
0文章
29浏览量
14299 -
SWD
+关注
关注
1文章
57浏览量
11829
发布评论请先 登录
相关推荐
评论