JTAG/SWD 是调试口,设计要点是引脚按标准排、加 ESD 防护、TCK 靠近芯片走线短、不用时通过上拉/下拉禁用调试口防止误触发;SWD 比 JTAG 省引脚,现代 STM32/ARM 芯片优先用 SWD。
本文概述
JTAG/SWD 是开发和量产都要用的调试接口,面试常考:JTAG 和 SWD 区别、引脚顺序、ESD 防护、TCK 走线、量产时怎么关调试口。回答要从「调试需求→防护→量产安全」三层展开,体现你既懂开发又考虑生产。
核心要点
JTAG 20 针标准信号:TCK/TMS/TDI/TDO/TRST(可选)+ VTref + GND,SWD 只需 SWCLK/SWDIO(2 线)+ GND/VTref
TCK 是时钟,走线要短、远离干扰源,必要时串 22~33Ω 匹配电阻抑制反射
对外接口必须加 ESD 保护(TVS/ESD 阵列),尤其量产板会反复插调试器
VTref 用于识别目标板电平(3.3V/1.8V),不能省;NRST/SWO 建议引出便于复位跟踪
量产时通过上拉/下拉或固件选项字节禁用 JTAG/SWD 或改为 GPIO,防止固件被读出

面试官考察点
面试官考察三点:①是否知道 JTAG/SWD 信号和电平;②是否考虑对外接口的 ESD 和可靠性;③是否有量产安全意识(读保护)。只讲「排针接上就行」会显得没做过量产板。
回答思路
按「引脚定义→电路设计→ESD 防护→量产处理」四步讲,最后点出读保护(Readout Protection),体现量产视角。
参考回答
第一,选接口:能 SWD 就不用 JTAG。现代 ARM Cortex-M 芯片都支持 SWD,只需要 SWCLK、SWDIO 两根线,加上 VTref、GND、NRST,占板面积小、走线简单。JTAG 20 针主要用于早期或需要边界扫描的场合。
| 信号 | JTAG | SWD | 说明 |
|---|---|---|---|
| 时钟 | TCK | SWCLK | 调试器输出,走线短、串阻匹配 |
| 数据 | TDI/TDO/TMS | SWDIO | 双向数据线 |
| 复位 | NRST(引出) | NRST(引出) | 便于调试器复位 |
| 电平参考 | VTref | VTref | 接目标板 IO 电源,调试器自动识别电平 |
| 跟踪 | — | SWO | 可选,用于 printf 调试输出 |
第二,电路设计。
TCK/SWCLK 走线短,靠近芯片,必要时串 22~33Ω 电阻抑制反射;时钟线不要跨越分割、不要走高速板边;
上拉/下拉:TMS/SWDIO 通常上拉到 VTref,TDI 上拉,TDO 可不接;NRST 上拉并加 100nF 电容滤波;
VTref 必接:它告诉调试器目标板 IO 电平,省了会导致电平不匹配或烧 IO。
第三,ESD 防护。调试口在生产和售后会反复插拔,对外引脚建议:
每个信号并 ESD 阵列/TVS(如 USBLC6、PRTR5V0U2X),钳位到 5V 以下;
串小电阻(10~33Ω)限制瞬态电流;
GND 就近接保护地,防护器件尽量靠排针放。
第四,量产读保护。开发完量产后,不能让别人通过 SWD 读出固件:
STM32 用选项字节打开 RDP(Readout Protection)Level 1,禁止调试器读出 Flash;
或在固件里把 JTAG 引脚复用为普通 GPIO,物理上禁用调试;
出厂前统一烧录 + 加密 + RDP,售后维修时走专用流程解锁。

扫码关注





























