简述调试仿真器协议(JTAG、SWD)及各类调试器(Jlink、Ulink、STlink)

发布时间 2023-10-17 21:07:09作者: zxddesk
BrandImg
简述调试仿真器协议(JTAG、SWD)及各类调试器(Jlink、Ulink、STlink)
17 赞同
评论
72 收藏

入门嵌入式编程,总会对市面上种类繁多的调试器感到困惑。本文简单介绍一下现在主流的仿真器协议(JTAG、SWD)及各类调试器(Jlink、Ulink、STlink)。


一. 协议

1.JTAG协议

JTAG(Joint Test Action Group,联合测试工作组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。多数的高级器件都支持JTAG协议,如DSPFPGA器件等。JTAG 接口的连接有两种标准,即 14 针接口和 20 针接口。

JTAG:14 针接口、 20 针接口
具有JTAG口的芯片都有如下JTAG引脚定义:
TCK——测试时钟输入;
TDI——测试数据输入,数据通过TDI输入JTAG口;
TDO——测试数据输出,数据通过TDO从JTAG口输出;
TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。
(可选引脚:TRST——测试复位,输入引脚。)

2.SWD协议

串行调试(Serial Wire Debug),是ARM内核调试器的一种通信协议。相比于JTAG协议,占用更少的端口资源。

JTAG、SWD对比

二. 调试仿真器

顾名思义,是为了嵌入式程序开发时,连接电脑和单片机,方便于调试、仿真、下载嵌入式程序的设备。

1.ST-Link仿真器

ST(意法半导体)官方出版了3种仿真器:ST-LINK、ST-LINK/V2,STLINK-V3SET。针对于意法半导体STM8和STM32系列芯片。支持SWIM / JTAG / SWD下载。(SWIM协议是一种用于STM8微控制器的调试/编程协议。)

ST-LINK
ST-LINK/V2

写本文的时候,才发现有新款的:STLINK-V3SET

STLINK-V3SET

2.ULink仿真器

ULINK 是 ARM/KEIL 公司的仿真器,因此仅可以在Keil软件上使用(其他IDE如ADS、IAR下不能使用)。支持 JTAG / SWD下载。

ULINK Debug Adapters (keil.com)

3.JLink仿真器

J-Link是德国 SEGGER 公司的仿真器,得到所有主流的 IDE 的支持。支持SWIM / JTAG / SWD下载。

J-Link Debug Probes by SEGGER

 

值得一提的是最后面的 J-Link OB(The On-Board Debug Probe),通常被设计到各大公司的评估板上(“on-board”),J-Link- OB的下载调试器具备 USB 通信功能可以与 PC 通信,另一端通过 JTAG 或 SWD 方式与可支持器件通信,完成调试下载任务。

J-Link -OB 大多集成到评估板内部电路,这就有中外极客,把 J-Link -OB 从原来的评估板上分离出来,即为 J-Link- OB改造版本,个人觉得还挺好用的,在此节后边一并写出。

3.1 J-Link- OB 改造版

J-Link-OB改造版与原J-Link-OB版少了JTAG通信方式,只保留SW通信模式。

① VCC - 电源
② GND - 地线
③ SWDIO - 数据
④ SWCLK - 时钟
常见的J-Link与J-Link-OB对比