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进行了小小的改动后就完成了仿真器兼容性的扩展。
|