SWD(SERIAL WIRE DEBUG)是一种串行线调试,是ARM设计的协议,主要功能是对微控制器进行编程和调试。
相关引脚说明:
| PIN脚 | 描述 |
|---|---|
| SWDIO | 串行数据线,用于数据的读出和写入。 |
| SWDCLK | 串行时钟线,提供所需要的时钟信号。 |
特别地,JTAG接口和SWD接口时服用,SWD也是用J-LINK工具来实现的。所以在使用的时候需要指定使用的时那种方式,在硬件上时不需要做变更的。
| 20PIN | 10PIN |
|---|---|
| 20PIN 的(7 脚和 9 脚) | 10PIN 的(2 脚和 4 脚) |
![]() | ![]() |
- SWD 引脚更少,主要 SWDIO 和 SWCLK 两个引脚;
- SWD 具有特殊功能,例如通过其 I/O 线打印调试信息;
- 与 JTAG 相比,SWD 在速度方面具有更好的整体性能;
JTAG 不仅限于 ARM 芯片,在 ARM 之外的芯片也支持;
JTAG 多种用途,用于编程,调试和生产测试;
JTAG 是一个独立的团体,他们会随着协议的发展而发展。
总结:
| 功能项 | JTAG | SWD |
|---|---|---|
| 引脚数 | 4 | 2 |
| 支持的 CPU 架构 | 支持多种架构,不仅限于 ARM | 仅 ARM |
| 功能 | 编程、调试和边界扫描以进行生产测试 | 仅编程和调试 |
| 拓扑结构 | 菊花链 | 星型 |
| 特殊功能 | 不支持 | 通过调试端口打印调试信息 |
| 硬件设计 | 尺寸和空间大 | 空间节约 |
