您的位置 首页 ADAS

电子工程师有必要知道的JTAG常识,你都知道吗?

JTAG(Joint Test AcTIon Group,联合测试行动组)是一种国际标准测试协议(IEEE 1149.1兼容)。标准的JTAG接口是4线——TMS、TCK、

  JTAG(Joint Test AcTIon Group,联合测验举动组)是一种国际规范测验协议(IEEE 1149.1兼容)。规范的JTAG接口是4线——TMS、TCK、TDI、TDO,别离为形式挑选、时钟、数据输入和数据输出线。

  JTAG是最根本的通讯协议之一,我们能够理解为与RX TX或许USB的道理是相同的,仅仅一种通讯手法,但与RX TX以及USB有很严重的不同,那便是这个JTAG协议是最底层的,说的浅显一点,一般来说,手机里面,CPU是老迈,对吧?但在JTAG面前,他就不是老迈了,JTAG协议便是用来操控CPU的,在JTAG面前CPU变成草头神了。一般的协议是求着CPU读写字库的程序,但JTAG能够读写CPU的程序,指令让CPU啥活都干,擒贼先擒王,JTAG便是屠龙刀。

  

 

  JTAG也是一种国际规范测验协议(IEEE 1149.1兼容),首要用于芯片内部测验。现在大都的高档器材都支撑JTAG协议,如DSP、FPGA器材等。规范的JTAG接口是4线:TMS、TCK、TDI、TDO,别离为形式挑选、时钟、数据输入和数据输出线。 相关JTAG引脚的界说为:TCK为测验时钟输入;TDI为测验数据输入,数据经过TDI引脚输入JTAG接口;TDO为测验数据输出,数据经过TDO引脚从JTAG接口输出;TMS为测验形式挑选,TMS用来设置JTAG接口处于某种特定的测验形式;TRST为测验复位,输入引脚,低电平有用

  JTAG的首要功用有两种,或许说JTAG首要有两大类:一类用于测验芯片的电气特性,检测芯片是否有问题;另一类用于Debug,对各类芯片以及 其外围设备进行调试。一个含有JTAG Debug接口模块的CPU,只需时钟正常,就能够经过JTAG接口拜访CPU的内部存放器、挂在CPU总线上的设备以及内置模块的存放器。本文首要介绍 的是Debug功用。

  注释:JTAG能够拜访一些内部存放器,首要是CPU内的存放器,例如一些通用存放器等;也能够拜访一些挂在总线上的设备,比方片内的内存L1,L2,L3等;还能够拜访内置模块的存放器,比方MMU模块,经过JTAG都能够拜访这些存放器。

  1 JTAG原理剖析

  简略地说,JTAG的作业原理能够归结为:在器材内部界说一个TAP(Test Access Port,测验拜访口),经过专用的JTAG测验东西对内部节点进行测验和调试。首要介绍一下鸿沟扫描和TAP的根本概念和内容。

  1.1 鸿沟扫描

  鸿沟扫描(Boundary-Scan)技能的根本思想是在接近芯片的输入/输出引脚上添加一个移位存放器单元,也便是鸿沟扫描存放器(Boundary-Scan Register)。

  当芯片处于调试状况时,鸿沟扫描存放器能够将芯片和外围的输入/输出阻隔开来。经过鸿沟扫描存放器单元,能够完结对芯片输入/输出信号的调查和控 制。关于芯片的输入引脚,能够经过与之相连的鸿沟扫描存放器单元把信号(数据)加载到该引脚中去;关于芯片的输出引脚,也能够经过与之相连的鸿沟扫描存放 器“捕获”该引脚上的输出信号。在正常的运转状况下,鸿沟扫描存放器对芯片来说是通明的,所以正常的运转不会遭到任何影响。这样,鸿沟扫描存放器供给了一 种快捷的方法用于观测和操控所需调试的芯片。别的,芯片输入/输出引脚上的鸿沟扫描(移位)存放器单元能够彼此衔接起来,任芯片的周围构成一个鸿沟扫描链 (Boundary-Scan Chain)。鸿沟扫描链能够串行地输入和输出,经过相应的时钟信号和操控信号,就能够方便地调查和操控处在调试状况下的芯片。

  1.2 测验拜访口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规范里非强制要求。

  ◇DBGRQ:方针板上作业状况的操控信号。在IEEE 1149.1规范里没有要求,仅仅在单个方针板(例如STR710)中会有。

  简略地说,PC机对方针板的调试便是经过TAP接口完结对相关数据存放器(DR)和指令存放器(IR)的拜访。

  体系上电后,TAP Controller首要进入Test-LogicReset状况,然后顺次进入Run-Test/Idle、Select-DR- Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exitl-IR、Update-IR状况,最终回到Run- Test/Idle状况。在此过程中,状况的搬运都是经过TCK信号进行驱动(上升沿),经过TMS信号对TAP的状况进行挑选转化的。其间,在 Capture-IR状况下,一个特定的逻辑序列被加载到指令存放器中;在Shift-IR状况下,能够将一条特定的指令送到指令存放器中;在 Update-IR状况下,方才输入到指令存放器中的指令将用来更新指令存放器。最终,体系又回到Run-Test/Idle状况,指令收效,完结对指令 存放器的拜访。当体系又回来到Run-Test/Idle状况后,依据前面指令存放器的内容选定所需求的数据存放器,开端履行对数据存放器的作业。其根本 原理与指令其存器的拜访完全相同,顺次为Select-DR-Scan、Capture-DR、Shift-D、Exit1-DR、Update-DR, 最终回到Run-Test/Idle状况。经过TDI和TDO,就能够将新的数据加载到数据存放器中。经过一个周期后,就能够捕获数据存放器中的数据,完 成对与数据存放器的每个存放器单元相连的芯片引脚的数据更新,也完结了对数据存放器的拜访。

  现在,商场上的JTAG接口有14引脚和20引脚两种。其间,以20引脚为干流规范,但也有少量的方针板选用14引脚。经过简略的信号转化后,能够将它们通用。

  JTAG的根本原理进行剖析

  下面经过对JD44B0X试验开发板的简易JTAG的根本原理进行剖析,以及对JD44B0X和STR710试验开发板主板的JTAG原理进行比照,进一步论述JTAG的作业原理。JD44B0X试验开发板的简易JTAG的原理图如图1所示。

  

 

  图1中,74LS244为三态输出的8组缓冲器和总线驱动器,其功用如表1所列。

  

 

  由表1可知,在JD44B0X试验板的调试过程中,这款简易JTAG的首要效果便是将PC机宣布的电信号与试验板的电信号进行匹配,以完结驱动方针板的功用。

  STR710和JD44B0X主板的JTAG原理图如图2和图3所示。

  

 

  经过图2和图3的比照能够发现,尽管所用的仿真器有很大的不同,可是,实际上疏忽一些上下拉电阻以及维护电容(这些电阻、电容关于电路功用没有意 义),它们的根本原理图是十分相似的,仅有的不同就在于对RTCK信号(用于测验时钟回来)和DBGRQ信号(用于设置方针板作业状况)的处理。实际上, 在IEEE 1149.1规范中这两个信号都不是强制要求的。因而,在剖析仿真器(JTAG)的作业原理时完全能够疏忽这两个信号的状况,而仅对IEEE 1149.1规范中强制要求的4个信号进行剖析。

  2 仿真器与简易JTAG的功能比照

  2.1 仿真器硬件衔接

  PC机装备:1.66 GHz,256 MB内仔。

  调试软件:ADS1.2。

  方针板:JD44B0X。

  完结任务:文件的下载。

  硬件衔接如图4所示。经过主机的并口与仿真器相衔接,再将仿真器与方针板的JTAG调试接口衔接。

  

 

  2.2 功能比照

  如表2所列,尽管经过不同的调试署理所需的下载时刻有所不同,可是两种仿真器所存在的功能差异依然很明显。在选刚简易JTAG下载文件的过程中,效 率最高的调试署理所需的时刻仍将近是仿真器的6倍,这便是仿真器的优势地点。功能的进步必定要支付更多的价值,对开发者来说这个价值便是本钱。经过商场的 调查,仿真器的价格一般在千元左右,而简易JTAG的价格一般在百元左右,也便是存在将近10倍的不同。别的,还需求考虑的便是其兼容性。兼容性包含与目 标板的兼容和与调试署理的兼容。在与方针板的兼容方面,后边的内容中会有具体阐明;在与调试署理的兼容方面也有所反映。简易JTAG能够与多个调试署理兼 容,而仿真器只能运用其自带的调试署理,具有必定的局限性。

  

 

  2.3 原因剖析

  已然一切JTAG的基奉原理都是相同的,为什么这两种仿真器的速度会存在如此大的差异,并且并不是一切的仿真器都是通用的呢?

  首要介绍一下 ARM7扫描链架构,如图5所示。

  

 

  与简易JTAG比较,在扫描过程中,STR710的仿真器为ARM7TDMI添 加了一个专门的指针通道以及相应的存储空间store-mulTIple(STM)。因而在调试状况下,仿真器不再运用体系除了鸿沟扫描存放器外的任何其 他资源,而是经过JTAG-style接口直接获取体系的状况信息,对体系状况进行观测以及调试,从而大大进步调试速度。

  在STR710方针板中,ARM7TDMI能够经过外部信号和内部电路模块(ICE)进入调试状况。当方针板一旦进入调试状况后,内核就将其与存储器别离开来,这样内核就能够确保在不影响体系正常运作的状况下对体系的状况进行监测和调试。一起,ARM7TDMI内部状况的检测是经过JTAG-style接口进行的,这个接口答应指令不经过数据线直接进入到内核的扫描通道。这样在调试状况下,STM就能够直接嵌入到指令通道并存储ARM7TDMI存放器的内容,在不影响体系作业的状况下将这些内容移位出来,使仿真器取得方针板的状况信息。

  与仿真器比较,简易JTAG完结的作业就要少得多。它仅仅完结了对主机信号的电平转化,也便是适当于一个驱动器。上面说到的一切作业都要交给CPU 去做,因而在运用简易JTAG下载文件时方针板自然会相应地下降速度。尤其是当程序相对较大时,其速度就会大大下降,关于一些开发人员来讲,这是适当丧命 的缺陷。

  关于仿真器与日标板的兼容问题,现在商场上的部分仿真器呈现不同程度的不兼容问题,其发生的首要原因是对RTCK信号(DBGRQ信号极不常见,这 里不作介绍)的处理状况存在一些差异(不包含周建功系列的试验开发板,它们的仿真器运用的是单片机,与大大都的仿真器都不能兼容)。例如,在STR710 中是将STCK信号与TCK信号直接相连了,而在nano2410A试验开发板中是将STCK信号直接接地,因而造成了ARM JTAG Emulator在nano2410A试验开发板中的不兼容。在对nano2410A主板的JTAG进行了小小的改动后就完结了仿真器兼容性的扩展。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/160410.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部