14 PIN JTAG引脚的定义为:
VREF:直接与目标板VDD相连,用于检测目标板是否供电
TRST:Test Reset,连接到目标CPU的nTRST,用于复位CPU调试接口的TAP控制器
TDI: Test Data In,连接至目标CPU的数据输入信号
TMS: Test Mode Select,模式选择(控制信号)引脚
TCK: Test Clock,时钟引脚
TDO: Test Data Out,连接至目标CPU的数据输出信号
二、SWD
SWD:Serial Wire Debug,代表串行线调试,是ARM设计的调试接口协议,用于对其微控制器进行编程和调试。
由于SWD专门从事编程和调试,因此它具有许多特殊功能,通常在其他任何地方都无法使用,例如通过IO线将调试信息发送到计算机。另外,由于它是ARM专门为在其设备中使用而制造的,因此SWD的性能通常是同类产品中最好的!
三、JTAG和SWD的区别
JTAG的优点
1.不限于ARM内核单片机,能支持更多单片机程序调试和下载。比如MSP430
2.用途更广,用于编程,调试和生产测试.
JTAG的缺点
占用引脚数比较多,比较占用板子尺寸。
SWD的优点
引脚数更少,只需SWDIO和SWCLK两个引脚,有利于节约电路板尺寸。
SWD具有特殊功能,例如通过其I/O线打印调试信息。
在高速大数据情况下,SWD整体性能比JTAG更好。
SWD的缺点
只能用于ARM内核的单片机。
什么时候选择SWD而不是JTAG
-
如果您的原理图/电路板设计足够简单,可以在没有JTAG功能的情况下进行测试
-
调试性能比生产测试更重要,你的设备专注于服务研究而不是批量生产
-
MCU在尺寸方面有限制,SWD 可以节省空间
-
你的硬件设计太复杂,MCU没有多余的2个引脚
四、JLINK
文章开头的问题,什么是下载调试器,而JLINK就是下载调试器的一种
JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。那么能不能让JTAG支持USB协议,用USB接口来调试ARM呢?这就要说到JLINK和ULINK了。
JLINK是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是JTAG协议。它完成了一个从软件到硬件转换的工作。
五、STLINK
ST-Link是专用于STM8和STM32微控制器的在线调试器和编程器,也是大家口中的下载器。
ST-Link具有SWIM、JTAG / SWD等通信接口,用于与STM8或STM32微控制器进行通信(各版本有差异)。
ST-LINK官方的有V1、V2、V3版本,V1基本被V2替代,市面上常见的是V2版本,V3版本是18年下半年新推出的版本,市面上普及率还不是很高;常见的V2版本价格比较贵。
目前市面上山寨的ST-Link,大部分是山寨V2标准版。
山寨的ST-Link主要的特点就是便宜,一般某宝上10~20元就能买一个。里面固件一般没什么问题,可以直接升级ST官方的固件,最大差异就是硬件。
如果运气好,能用很久。偶尔会出现电源短路、芯片发烫等各种折磨。
当然,如果运气差,可能买回来下载一次就不坏了,而且还有可能损坏你的目标芯片(STM8/32)。
六、ULINK
ULINK——ULINK2是ARM公司最新推出的配套RealView MDK使用的仿真器,是ULink仿真器的升级版本。ULINK2不仅具有ULINK仿真器的所有功能,还增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。
七、调试器Pin脚
市面上有很多兼容 SWD 和 JTAG 协议的MCU和调试适配器,他们通常通过具有一组下载调试引脚,来实现下载和调试功能,这些引脚内部复用到SWD外设和JTAG外设。
SWD的引脚在一定条件下可以和JTAG引脚复用,目前针对 JTAG 和 SWD的连接器比较多,比如20pin的接插件:
当然,也有10pin的:
八、总结:
JTAG、SWD是仿真器、下载器、调试器协议接口。
JLink、ULink、ST-Link是各家公司仿真器、下载器、调试器的名字。