DSP

JTAG,Jlink,ulink,h-Jtag,RDI,SWD

2019-07-13 18:51发布


    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 Programmer,在系统编程),对FLASH等器件进行编程。所以通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug和ISP,一般支持JTAG的CPU内都包含了这两个模块。如今 JTAG 接口的连接有两种标准,即 14 针接口和 20 针接口,其定义分别如下所示。 14针JTAG接口 1 、 13   VCC 接电源 2 、 4 、 6 、 8 、 10 、 14   GND 接地 3  nTRST  测试系统复位信号 5  TDI   测试数据串行输入 7  TMS  测试模式选择 9  TCK  测试时钟 11 TDO   测试数据串行输出 12 NC   未连接 20针JTAG接口 1 VTref   目标板参考电压,接电源 2 VCC   接电源 3 nTRST   测试系统复位信号 4、6、8、10、12、14、16、18、20  GND 接地 5 TDI   测试数据串行输入 7 TMS   测试模式选择 9 TCK   测试时钟 11 RTCK  测试时钟返回信号 13 TDO   测试数据串行输出 15 nRESET   目标系统复位信号 17 、 19 NC  未连接 注:JTAG是一种测试协议 JLINK J-Link是针对ARM设计的一个调试器,它是一个实实在在的电子设备,是一个小型的USB协议到JTAG协议的转换盒,J-Link无缝集成到IAR Embedded Workbench for ARM中,它完全兼容  PNP(即插即用),可以用于KEIL ,IAR ,ADS 等平台。它是一个物理设备,最开始时是基于JTAG测试协议的,随着新的版本的升级,现在也支持比如SWD调试。  RDI 远程调试接口,是ARM公司提出的标准调试接口,主要用于ARM芯片的仿真,由于各个IDE厂商使用的调试接口各自独立,硬件无法进行跨平台的调试。现在众多的IDE厂家都逐步采用标准RDI作为ARM仿真器的调试接口,因此使跨平台的硬件调试成为可能。EasyJTAG由于使用标准RDI调试接口,因此在任何使用标准RDI接口的IDE调试环境中都可以使用,例如ARM公司的ADS1.2/IAR公司的EWARM 3.30 。 SWD 串行调试,应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。 SWD 和传统的调试方式区别 1、SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持。所以推荐大家使用这个模式。2、在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。3、在大家板子的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小啦!比如你可以选择一个很小的2.54间距的5芯端子做仿真接口。 h-JTAG 准确的说,h-JTAG是一个基于ARM的仿真调试套件,不仅包括以电子设备形态出现的调试器,还包括运于宿主机上的一序列软件,它和JLINK有一些不同。 你调试ARM,总要遵循ARM的调试接口协议吧,JTAG就是其中的一种(前面介绍过)。当仿真时,IAR,Keil,ADS等等都有一个公共的调试接口,RDI就是其中的一种。 那么我们如何完成RDI-->ARM调试协议(JTAG)的转换呢?如是乎就有两种做法: 1、在电脑上写一个服务程序,把IAR,Keil,ADS中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层上的转换,就像RS232那样的作用)发送你的的目标板。H-JTAG就是这样的。 h-jtag的硬件就仅是一个物理电平的转换接口,所以很简单,而电脑中装的h-jtag软件就是负责协议转换的。 2、另一种做法,就是做一个板,用此板直接接收来自IAR,Keil,ADS等软件的调试命令,由此板做RDI->JTAG协议的转换。然后与目标板通信,这就是J-LINK的工作原理。 由上可以看出 h-jtag由于是软件作协议转换的,所以速度较慢,但是硬件简单。而第二种方法的jlink一般带一个强劲的CPU,作硬件协议转换,把以硬件复杂,但速度快。 ULINK ULINK是KEIL公司开发的仿真器,专用于KEIL 平台下使用,ADS,iar 下不能使用。 与JINK相比,JLINK 是通用的开发工具,可以用于KEIL ,IAR ,ADS 等平台 速度,效率,功能均比ULINK强ULINK2的下载速度和调试速度也确实没有JLINK的快。 这些都是在网上收集整理的,方便自己查询和使用,有什么错误的地方,望给位给予指正。