JTAG简介 JTAG和SWD之间的区别

01jtag简介
jtag(jointtest actiongroup)是一个接口,为了这个接口成立了一个小组叫jtag小组,它成立于1985年。在1990年ieee觉得一切妥当,于是发布了ieee standard 1149.1-1990,并命名为standard test access port and boundary-scanarchitecture,这就是大名鼎鼎的jtag了。
jtag的三大功能你知道吗,响当当的:
1.下载器,即下载软件到flash里。
2. debug,跟医生的听诊器似的,可探听芯片内部小心思。
3. 边界扫描,可以访问芯片内部的信号逻辑状态,还有芯片引脚的状态等等。
jtag根本没有标准的接口定义,甚至每家公司定义都不一样。在arm的《系统和接口设计参考》文档中
文档下载地址:
链接:https://pan.baidu.com/s/13aqxoxr73_wierz2kwn15w
提取码:xaaf
(提示:公众号不支持外链接,请复制链接到浏览器下载)
这篇文档列举了不同的jtag接口
而我们经常在互联网看到的下图,是segger公司的jlink的jtag接口。
j-link是德国segger公司推出基于jtag的仿真器。简单地说,是给一个jtag协议转换盒,即一个小型usb到jtag的转换盒,其连接到计算机用的是usb接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。
同时jlink也是个人觉的最流行的调试器。通过《系统和接口设计参考》可知,这个arm官方的jtag20pin并不相同。
在这里希望大家明白,arm,jlink,jtag之间的关系。
使用频率也挺高的st-linkv2的接口由上文可知,这也是st公司自己定义的接口
ulink、cmsis_dap和其他stm32的仿真器是一样的道理。
02jtag介绍
边界测试:
举个例子你有两个芯片,这两个芯片之间连接了很多很多的线,怎么确保这些线之间的连接是ok的呢,用jtag,它可以控制所有ic的引脚。这叫做芯片边界测试。
在jtag接口中,最常用的信号有四个,分别是tck/tms/tdo/tdi。jtag接口可以一对一的使用,也可以组成菊花链的一对多拓扑结构,两种拓扑结构如下图所示。多核的芯片,其芯片内部已经接成了菊花链的形式。
jtag的菊花链还有很多玩法
cpu和fpga制造商允许jtag用来端口debug;fpga厂商允许通过jtag配置fpga,使用jtag信号通入fpga核。
03jtag和swd
swd接口:串行调试(serialwiredebug),应该可以算是一种和jtag不同的调试模式,最直接的体现在调试接口上,与jtag的20个引脚相比,swd只需要4(或者5)个引脚。
vcc、swdio、swclk、gnd(有些情况,也加上了reset脚)。
swd和传统的调试方式区别:
swd模式比jtag在高速模式下面更加可靠。在大数据量的情况下面jtag下载程序会失败,但是swd发生的几率会小很多。基本使用jtag仿真模式的情况下是可以直接使用swd模式的,只要你的仿真器支持,所以推荐大家使用这个模式。
当cpu的gpio不够用的时候,可以使用swd仿真,这种模式支持更少的引脚。
在硬件pcb的体积有限的时候推荐使用swd模式,它需要的引脚少,当然需要的pcb空间就小,可以选择一个很小的2.54间距的5芯端子做仿真接口。
keil环境下jlink调试器的jtag模式和swd模式
iar环境下jlink调试器的jtag模式和swd模式
jlink的jtag模式和swd模式对比图
04关于vref引脚
上面我们提到vref引脚,属于io接口的电源域,目的是为了使芯片逻辑电平与调试器的逻辑电平一致,避免逻辑错误,甚至对设备造损坏。
在jlink上有vref的跳线帽。
三个排针:①是nc,②是vref,是和输出的1脚相连的,③是3.3v
如果要jlink的1脚vref输出3.3v,直接将②和③短接即可。
05关于trst引脚
jtag定义中的trst引脚,用来复位tap控制器的。在stm32系列单片机中,并没有trst引脚,名字为njtrst。
以stm32f207为例,njtrst引脚在jtag和swd模式中的说明。
stm32f207的swji/o引脚可用性
06reset引脚作用
在一些stm32的产品仿真时使用4线的swd模式,发布版通常会将jtag口设置为普通io,或者由于管脚不够用,在发布版用作其他用途。我们在调试发布版,因为禁止了jtag模式,没有办法仿真了。
这个时候,最常用的做法是,拉高boot0管脚,进入mainflash memory模式,进行debug仿真。
对比stm32的官方开发板,我们在使用swd模式没有引出rst引脚,当然属于swd的还有swo信号,这是个监视用的,也是非常有用。这两个信号都可以连接仿真器的。
仿真器有underreset的方式,因此,仿真器在需要仿真的时候,会把rst信号送到mcu,让mcu处于rst,或者采用reset后仿真,代码还没执行到禁止jtag状态下,所以可以直接仿真。当然,也可以主动复位供电,也是可以脱离原来的jtag禁止状态。也可以拉高boot0管脚。


Model X车主称自动巡航失灵导致车祸 特斯拉:不背这锅
无线通信 第一章 无线通信基础(下)
估算单向电机启动电容
依顿电子发布2018年半年报,实现营业收入15.09亿元
科学家研发用于无细胞合成生物学的电子化学平台
JTAG简介 JTAG和SWD之间的区别
戴尔XPS13超极本拆解 超窄轻薄机身是如何炼成的
富士康工业互联网明日登A股 郭台铭资产捐赠90%个人财富
探究用双定时器控制单片机输出固定的数量的PWM脉冲!
常用晶体管参数表
合约交易模式系统开发平台搭建
AGM X2:骁龙835+8GB运存+256内存,真安卓机皇!
瑞可达拟发行9.5亿元可转债 加码电池连接器领域
张力传感器常见的影响因素有哪些
PC市场出现最大季度出货量降幅
无人机飞控的三大算法是什么,具有什么特点应用
WiMAX无线接入系统的规划方法
微星最新发布24英寸和27英寸的两款显示器
SOA的软件组件部署实例分析
原子级分散钌氧化物实现晶格氧参与高效稳定酸性氧析出