【JLINK与JTAG】JLINK与JTAG的区别,JTAG和H-JTAG和SBW的区别

Jlink仿真需要自己的软件,但是支持的芯片多一点;
而JTAG不需要专业的软件,但是支持的芯片少一点。

SBW 既是TI推出的2线的JTAG


JTAG是协议和H-JTAG传输这种协议的硬件接口

调试ARM,要遵循ARM的调试接口协议,JTAG就是其中的一种(也就是说,首先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协议的转换。然后与目标板通信,这就是JLINK的工作原理。

    由上可以看出 H-JTAG由于是软件作协议转换的,所以速度较慢,但是硬件简单。而第二种方法的JLINK一般带一个强劲的CPU,作硬件协议转换,把以硬件复杂,但速度快。

JTAG的基本原理

    JTAG(Joint Test Action Group,联合测试行动组)是一种国际标准测试协议(IEEE 1149.1兼容)。标准的JTAG接口是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。

  JTAG的主要功能有两种,或者说JTAG主要有两大类:

    1)一类用于测试芯片的电气特性,检测芯片是否有问题;

    2)另一类用于Debug,对各类芯片以及其外围设备进行调试;一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器、挂在CPU总线上的设备以及内置模块的寄存器。本文主要介绍的是Debug功能。

1.JTAG原理分析

   简单地说,JTAG的工作原理可以归结为:在器件内部定义一个TAP(Test Access Port,测试访问口),通过专用的JTAG测试工具对内部节点进行测试和调试。首先介绍一下边界扫描和TAP的基本概念和内容。

1. 边界扫描

  边界扫描(Boundary-Scan)技术的基本思想是在靠近芯片的输入/输出引脚上增加一个移位寄存器单元,也就是边界扫描寄存器(Boundary-Scan Register)。

  当芯片处于调试状态时,边界扫描寄存器可以将芯片和外围的输入/输出隔离开来。通过边界扫描寄存器单元,可以实现对芯片输入/输出信号的观察和控制。对于芯片的输入引脚,可以通过与之相连的边界扫描寄存器单元把信号(数据)加载到该引脚中去;对于芯片的输出引脚,也可以通过与之相连的边界扫描寄存器“捕获”该引脚上的输出信号。在正常的运行状态下,边界扫描寄存器对芯片来说是透明的,所以正常的运行不会受到任何影响。这样,边界扫描寄存器提供了一种便捷的方式用于观测和控制所需调试的芯片。另外,芯片输入/输出引脚上的边界扫描(移位)寄存器单元可以相互连接起来,在芯片的周围形成一个边界扫描链(Boundary-Scan Chain)。边界扫描链可以串行地输入和输出,通过相应的时钟信号和控制信号,就可以方便地观察和控制处在调试状态下的芯片。

1. 测试访问口TAP

  TAP(Test Access Port)是一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器(DR)和指令寄存器(IR)。对整个TAP的控制是通过TAP控制器(TAP Controller)来完成的。下面先分别介绍一下TAP的几个接口信号及其作用。其中,前4个信号在IEEE1149.1标准里是强制要求的。

TCK:时钟信号,为TAP的操作提供了一个独立的、基本的时钟信号。
TMS:模式选择信号,用于控制TAP状态机的转换。
TDI:数据输入信号。
TDO:数据输出信号。
TRST:复位信号,可以用来对TAP Controller进行复位(初始化)。这个信号接口在IEEE 1149.1标准里并不是强制要求的,因为通过TMS也可以对TAP Controller进行复位。
STCK:时钟返回信号,在IEEE 1149.1标准里非强制要求。

  简单地说,PC机对目标板的调试就是通过TAP接口完成对相关数据寄存器(DR)和指令寄存器(IR)的访问。

  系统上电后,TAP Controller首先进入Test-LogicReset状态,然后依次进入Run-Test/Idle、Selcct-DR-Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exitl-IR、Update-IR状态,最后回到Run-Tcst/Idle状态。在此过程中,状态的转移都是通过TCK信号进行驱动(上升沿),通过TMS信号对TAP的状态进行选择转换的。其中,在Capture-IR状态下,一个特定的逻辑序列被加载到指令寄存器中;在Shift-IR状态下,可以将一条特定的指令送到指令寄存器中;在Update—IR状态下,刚才输入到指令寄存器中的指令将用来更新指令寄存器。最后,系统又回到Run—Test/Idle状态,指令生效,完成对指令寄存器的访问。当系统又返回到Run—Test/Idle状态后,根据前面指令寄存器的内容选定所需要的数据寄存器,开始执行对数据寄存器的工作。其基本原理与指令寄存器的访问完全相同,依次为seIect—DR—Scan、Capture—DR、Shift—D、Exitl一DR、Update—DR,最后回到Run-Tcst/Idle状态。通过TDl和TDO,就可以将新的数据加载到数据寄存器中。经过一个周期后,就可以捕获数据寄存器中的数据,完成对与数据寄存器的每个寄存器单元相连的芯片引脚的数据更新,也完成了对数据寄存器的访问。

     目前,市场上的JTAG接口有14引脚和20引脚两种。其中,以20引脚为主流标准,但也有少数的目标板采用14引脚。经过简单的信号转换后,可以将它们通用。

 

JTAG百度百科:http://baike.baidu.com/view/276735.htm

 

H-JTAG 是一款简单易用的的调试代理软件,功能和流行的MULTI-ICE 类似。H-JTAG 包括两个工具软件:H-JTAG SERVER 和H-FLASHER。其中,H-JTAG SERVER 实现调试代理的功能,而H-FLASHER则实现了FLASH 烧写的功能。H-JTAG 的基本结构如下图1-1所示。      
  H-JTAG支持所有基于ARM7 和ARM9的芯片的调试,并且支持大多数主流的ARM调试软件,如ADS、RVDS、IAR 和KEIL。通过灵活的接口配置,H-JTAG 可以支持WIGGLER,SDT-JTAG 和用户自定义的各种JTAG 调试小板。同时,附带的H-FLASHER 烧写软件还支持常用片内片外FLASH 的烧写。使用H-JTAG,用户能够方便的搭建一个简单易用的ARM 调试开发平台。H-JTAG 的功能和特定总结如下:   1. 支持 RDI 1.5.0 以及 1.5.1;   2. 支持所有ARM7 以及 ARM9 芯片;   3. 支持 THUMB 以及ARM 指令;   4. 支持 LITTLE-ENDIAN 以及 BIG-ENDIAN;   5. 支持 SEMIHOSTING;   6. 支持 WIGGLER, SDT-JTAG和用户自定义JTAG调试板;   7. 支持 WINDOWS 9.X/NT/2000/XP;   8.支持常用FLASH 芯片的编程烧写;   9. 支持LPC2000 和AT91SAM 片内FLASH 的自动下载; 

JTAG是英文“Joint Test Action Group(联合测试行为组织)”的词头字母的简写,该组织成立于1985 年,是由几家主要的电子制造商发起制订的PCB 和IC 测试标准。JTAG 建议于1990 年被IEEE 批准为IEEE1149.1-1990 测试访问端口和边界扫描结构标准。该标准规定了进行边界扫描所需要的硬件和软件。自从1990 年批准后,IEEE 分别于1993 年和1995 年对该标准作了补充,形成了现在使用的IEEE1149.1a-1993 和IEEE1149.1b-1994。JTAG 主要应用于:电路的边界扫描测试和可编程芯片的在线系统编程。
   关于JTAG仿真器,是针对某些特殊的单片机或CPU而言的。这类片子使用符合JTAG接口标准定义的数据线与数据时序来实现在线程序下载(ISP)或程序仿真。这种程序仿真有两种形式。一种与传统意义上的仿真器相似,但程序的运行以及CPU资源的模拟在仿真器与目标芯片中同时进行。另一种仿真形式仅仅对数据进行时序调制,具体的程序运行与调试均在目标芯片中进行。二者比较而言,后者成本低,仿真器制作简便但效率很低,占用芯片本身的资源多。而前者恰恰相反。据我观察,常见的ARM仿真器如EASYARM,TI公司的MSP430单片机的仿真器,还有ALTERA的部分FPGA的JTAG都属于后者。前者一般而言价格昂贵,很多XLINK的FPGA的JTAG仿真器就采用前者的结构,功能很强大。
    H-JTAG是H-JTAG团队开发的一款自主原创的ARM仿真套件, H-JTAG开发套件主要包括了: H-JTAG SERVER 调试软件, H-FLASHER 烧写软件, 及高速H-JTAG USB 仿真器.
    主要功能特点:
    - 支持各种ARM处理器: ARM7, ARM9, ARM11, XSCALE (包括
    最新的PXA300系列), CORTEX-M3.
    - 无缝连接各种主流IDE:ADS, SDT, IAR, KEIL, RVDS.
    - 支持各种WINDOWS平台 NT/2000/XP/VISTA.
    - 支持并口,提供低成本可靠稳定的解决方案.
    - 支持高速H-JTAG USB仿真器,提供高效可靠的解决方案.

posted on 2022-10-04 01:30  bdy  阅读(508)  评论(0编辑  收藏  举报

导航