`
charlotte
  • 浏览: 124065 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JTAG/SWD

 
阅读更多

JTAG接口

  1 JTAG(Joint Test Action Group;联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。  JTAG最初是用来对芯片进行测试的,JTAG的基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(In-System Programmable?在线编程),对FLASH等器件进行编程。  JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程  具有JTAG口的芯片都有如下JTAG引脚定义:  TCK——测试时钟输入;  TDI——测试数据输入,数据通过TDI输入JTAG口;  TDO——测试数据输出,数据通过TDO从JTAG口输出;  TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。  可选引脚TRST——测试复位,输入引脚,低电平有效。  含有JTAG口的芯片种类较多,如CPU、DSP、CPLD等。  JTAG内部有一个状态机,称为TAP控制器。TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入。图1为TAP控制器的状态机框图。  2 JTAG芯片的边界扫描寄存器  JTAG标准定义了一个串行的移位寄存器。寄存器的每一个单元分配给IC芯片的相应引脚,每一个独立的单元称为BSC(Boundary-Scan Cell)边界扫描单元。这个串联的BSC在IC内部构成JTAG回路,所有的BSR(Boundary-Scan Register)边界扫描寄存器通过JTAG测试激活,平时这些引脚保持正常的IC功能。图2为具有JTAG口的IC内部BSR单元与引脚的关系。  3 JTAG在线写Flash的硬件电路设计和与PC的连接方式  以含JTAG接口的StrongARM SA1110为例,Flash为Intel 28F128J32 16MB容量。SA1110的JTAG的TCK、TDI、TMS、TDO分别接PC并口的2、3、4、11线上,通过程序将对JTAG口的控制指令和目标代码从PC的并口写入JTAG的BSR中。在设计PCB时,必须将SA1110的数据线和地址线及控制线与Flash的地线线、数据线和控制线相连。因SA1110的数据线、地址线及控制线的引脚上都有其相应BSC,只要用JTAG指令将数据、地址及控制信号送到其BSC中,就可通过BSC对应的引脚将信号送给Flash,实现对Flash的操作。JTAG的系统板设计和连线关系如图3所示。  4 通过使用TAP状态机的指令实行对Flash的操作  通过TCK、TMS的设置,可将JTAG设置为接收指令或数据状态。JTAG常用指令如下:  SAMPLE/PRELOAD——用此指令采样BSC内容或将数据写入BSC单元;  EXTEST——当执行此指令时,BSC的内容通过引脚送到其连接的相应芯片的引脚,我们就是通过这种指令实现在线写Flash的;  BYPASS——此指令将一个一位寄存器轩于BSC的移位回路中,即仅有一个一位寄存器处于TDI和TDO之间。  在PCB电路设计好后,即可用程序先将对JTAG的控制指令,通过TDI送入JTAG控制器的指令寄存器中。再通过TDI将要写Flash的地址、数据及控制线信号入BSR中,并将数据锁存到BSC中,用EXTEST指令通过BSC将写入Flash。

SWD 和传统的调试方式区别

 

    1. SWD 模式比 JTAG 在高速模式下面更加可靠。 在大数据量的情况下面 JTAG 下载程序会失败, 但是 SWD 发生的几率会小很多。基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推荐大家使用这个模式。

    2. 在大家 GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚。

    3. 在大家板子的体积有限的时候推荐使用 SWD 模式, 它需要的引脚少, 当然需要的 PCB 空间就小啦! 比如你可以选择一个很小的 2.54 间距的 5 芯端子做仿真接口

二、仿真器对 SWD 模式支持情况

 

1. 市面上的常用仿真器对 SWD 模式支持情况

 

(1) JLINKV6 支持 SWD 仿真模式, 速度较慢。
(2) JLINKV7 比较好的支持 SWD 仿真模式, 速度有了明显的提高,速度是 JLINKV6 的 6 倍。 
(3) JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M。
(4) ULINK1 不支持 SWD 模式。
(5) 盗版 ULINK2 非常好的支持 SWD 模式, 速度可以达到 10M。
(6) 正版 ULINK2 非常好的支持 SWD 模式, 速度可以达到 10M。

 

2. SWD 硬件接口上的不同

 

(1) JLINKV6 需要的硬件接口为: GND, RST, SWDIO, SWDCLK
(2) JLINKV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK
(3) JLINKV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8的实际连线及相应实验结果)
(4) ULINK1 不支持 SWD 模式
(5) 盗版 ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK
(6) 正版 ULINK2 需要的硬件接口为: GND, RST, SWDIO, SWDCLK

 

    由此可以看到只有 JLINKV8 需要 5 个引脚, 即多了一个VCC引脚,其好处是: 仿真器对目标板子的仿真需要用到 RST 引脚, 使用仿真器内部的 VCC 作这个功能其实并不是非常美妙。 因此,JLINKV8 选择了只和目标板共 GND, 但不共 VCC。 因此我觉得这种模式最合理, 当然通常情况下仿真器和目标板共 GND 和 VCC 是没有错的。

三、在 MDK 中SWD 模式的设置

    在调试仿真的时候用J-LINK的Cortex-M3方式已经足够,并且在MDK下他的功能已经做得非常的好,用标准20脚的JTAG下载,速度是非常的快,一般初学者都是这样做的。但是SWD方式似乎速度更快、更加方便、简捷、,对于项目中对板子空间要求严格、I/O口资源紧张的用户来说更加的有利,正常的JTAG需要20管脚,而J-Link 的SWD只需要2根线(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就够了(加上电源线也就4根),这样就节省了3个I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)为其它所用,并且可节省一部分板子的空间(只需4个口就可以了)。

    下面我说一下SWD两线仿真的一些步骤、注意事项及需要注意的问题。

    接口的连接如下:将JLINK的1、7、9、20分别与自己的开发板上JTAG的VCC、JTMS、JTCK、GND用杜邦线相连即可!

分享到:
评论

相关推荐

    SWD Debug Interfaces.zip_JTAG/SWD 协议_SWD 协议_jtag_swd_swd协议

    JTAG(Joint Test Action Group)和SWD(Serial Wire Debug)是两种常用的调试协议,尤其在ARM架构的设备中广泛使用。本篇将深入探讨这两种协议以及它们在SWD Debug Interfaces中的应用。 **JTAG协议** JTAG最初是...

    J-Link_JTAG_SWD

    标题与描述中的“J-Link_JTAG_SWD”知识点,主要涵盖了J-Link这一设备及其在JTAG(Joint Test Action Group)与SWD(Serial Wire Debug)两种模式下的应用。以下将对这些概念进行深入解析。 ### J-Link 接口定义 J...

    JTAG_SWD 驱动代码.rar_JTAG 驱动_c_inventedsaj_jtag代码_swd

    JTAG (Joint Test Action Group) 和 SWD (Serial Wire Debug) 是两种常见的嵌入式系统调试接口,广泛应用于微控制器和集成电路的测试与调试。在本文中,我们将深入探讨这两种接口,以及如何通过C语言编写驱动代码...

    STM32F2xx_GPIO配置例程_stm32f2xx_

    本例简要描述了如何将JTAG/SWD IOs用作标准并给出一个配置序列。注意,一旦JTAG/SWD IOs被禁用,与主机调试器的连接就是丢失,只要JTAG/SWD IOs保持禁用状态,就无法重新建立。为了避免这种情况,按键按钮用于禁用或...

    零基础制作一个ST-LINK V2 附PCB文件原理图 AD格式

    支持所有带JTAG / SWD接口的STM32系列单片机。 基本属性: ST-LINK/V2是ST意法半导体为评估、开发STM8系列和STM32系列MCU而设计的集在线仿真与下载为一体的开发工具。 STM8系列通过SWIM接口与ST-LINK/V2连接; STM32...

    JLINK使用驱动下载,ST-LINK驱动及教程,STM32F4串口下载软件(FLYMCU),ST-LINK官方驱动.zip

    所以我们有必要给大家介绍 JTAG/SWD 调试工具中另外一个主流仿真器 ST-Link 的使用方法,让大家在今后的 STM32学习中,能熟练掌握 JTAG/SWD 调试配置方法。 如果你已经了解了 JLINK 的使用方法,那么 ST-Link 的使用...

    xds100v3调试器原理图完整版

    XDS100v3是一款高性能的JTAG/SWD调试器,专为德州仪器(TI)的微控制器和其他支持JTAG/SWD协议的处理器设计。它通过USB接口与PC连接,提供高速数据传输和灵活的调试功能。该调试器支持多种TI微控制器系列,包括MSP...

    Jtag和SWD下载常见问题解决办法

    在嵌入式开发领域,JTAG (Joint Test Action Group) 和 SWD (Serial Wire Debug) 是两种常用的调试和编程接口,它们允许开发者对微控制器或系统级芯片进行固件的烧录、调试以及故障排查。当面临JTAG或SWD下载问题时...

    零基础制作ST-LINK V2 附PCB文件原理图 AD格式 测试OK

    支持所有带JTAG / SWD接口的STM32系列单片机。 基本属性 -ST-LINK/V2是ST意法半导体为评估、开发STM8系列和STM32系列MCU而设计的集在线仿真与下载为一体的开发工具。 -STM8系列通过SWIM接口与ST-LINK/V2连接; -...

    STLINK调试补充教程.pdf

    绍 JTAG/SWD 调试工具中另外一个主流仿真器 ST-Link 的使用方法,让大家在今后的 STM32 学习中,能熟练掌握 JTAG/SWD 调试配置方法。 如果你已经了解了 JLINK 的使用方法,那么 ST-Link 的使用方法将会非常简单,...

    ARM-JTAG-SWD-schematic.pdf

    ### ARM-JTAG-SWD 转换电路设计详解 #### 一、ARM JTAG与SWD接口概述 在嵌入式开发领域,ARM处理器凭借其高性能、低功耗等特点广泛应用于各类电子设备中。为了方便调试及编程,ARM处理器通常会提供两种标准的调试...

    CMSIS DAP/DAPLink 仿真器 硬件开源/软件开源 支持 JTAG/SWD/虚拟串口 替代jlink、stlink-电路方案

    3. 引出JTAG接口,配合openocd可支持全球范围内几乎所有SoC芯片的调试,如ARM Cortex-A系列、DSP、FPGA、MIPS等,因为SWD协议只是ARM自己定义的私有协议,而JTAG则是国际IEEE 1149标准。通常的仿真器目标芯片一般为...

    ST-Link-V2接口定义

    它支持JTAG和SWD(Serial Wire Debug)两种调试模式,并且具有成本低、易用性好等特点,在嵌入式系统开发领域得到广泛应用。本文将详细介绍ST-Link-V2接口的相关定义,包括其JTAG/SWD接口的具体定义及其在实际应用中...

    J link V8 原理图

    1. JTAG/SWD接口:JTAG(Joint Test Action Group)是一种标准的边界扫描测试协议,而SWD(Serial Wire Debug)是ARM公司推出的低引脚数调试接口。这两种接口在Jlink V8中用于连接目标芯片,实现程序的下载和调试。...

    轩微科技STM32编程器控制平台.rar

    轩微科技STM32编程器控制平台,内含使用手册。功能简介: 仿真支持型号:支持STM32,STM8系列所有型号 编程支持型号:支持STM32,STM8系列所有...支持目标板接口: SWIM / JTAG / SWD / SPI / UART / I2C / CAN / GPIOs

    JTAG接口转SWD接口原理图

    20pinJTAG接口转SWD接口原理图,PCB版图及材料明细图。

    ARM各种仿真器接口_定义.doc

    ULINK2是来自Keil的一款仿真器,它支持JTAG和SWD(Serial Wire Debug)两种通信协议。JTAG是一种通用的硬件调试接口,而SWD则是一个更为高效、节省引脚的替代方案。以下是ULINK2接口的定义: - VCC:为MCU提供电源...

    JLINK V8制作全套资料

    - JTAG/SWD接口控制:控制JTAG/SWD引脚,实现对目标设备的编程和调试。 - 数据处理:解析并执行来自电脑的指令,如读写内存、设置断点等。 - 错误处理:确保在异常情况下能够恢复或报告错误。 4. **固件烧录与...

    Jlink_ob原理图(V7-2018)

    微控制器的一侧有USB接口,设备侧有JTAG / SWD + SWO等接口。 它允许调试随附的板上的目标器件,而无需额外的调试探针。 J-Link OB由多个评估板制造商用于各种目标CPU的各种评估板上。 详细制作资料...

    STM32学习资料

    JTAG/SWD接口用于调试和编程,SWD更节省引脚资源,是现代微控制器常用的调试接口。 2.1.5 **SRAM** SRAM是片上静态随机访问内存,用于暂时存储程序运行时的数据。 2.1.6 **LCD/OLED模块接口** 支持LCD或OLED显示...

Global site tag (gtag.js) - Google Analytics