关于JTAG的原理,大家可以参考OPEN-JTAG 开发小组写的《ARM JTAG 调试原理》。JTAG、BDM 都比较类似,实际上是将仿真功能嵌入到芯片内部,接上比较简单的调试工具就可以进行开发了,省掉了高价的仿真器。 JTAG 调试用到了 TCK、TMS、TDI、TDO 和 TRST 这几个脚。其中 TRST 是用来对 TAP controller进行复位的,它不是必须的。通过在 TMS脚也可以使 TAP controller复位。
Test Clock Input (TCK)
TCK为 TAP的操作提供了一个独立的、基本的时钟信号,TAP 的所有操作都是通过这个时钟信号来驱动的。TCK在 IEEE 1149.1 标准里是强制要求的。
Test Mode Selection Input (TMS)
TMS信号用来控制 TAP状态机的转换。通过 TMS信号,可以控制 TAP在不同的状态间相互转换。TMS信号在 TCK的上升沿有效。TMS在 IEEE 1149.1 标准里是强制要求的。
Test Data Input (TDI)
TDI 是数据输入的接口。所有要输入到特定寄存器的数据都是通过 TDI 接口一位一位串行输入的(由 TCK驱动)。TDI在 IEEE 1149.1 标准里是强制要求的。
Test Data Output (TDO)
TDO 是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过 TDO 接口一位一位串行输出的(由 TCK驱动)。TDO在 IEEE 1149.1 标准里是强制要求的。
Test Reset Input (TRST)
TRST 可以用来对 TAP Controller 进行复位(初始化)。不过这个信号接口在 IEEE 1149.1标准里是可选的,并不是强制要求的。因为通过 TMS也可以对 TAP Controller进行复位(初始化)。
下面对目前国内市场上常见的几种仿真器一一做点介绍。
1. Wigger, SDT250JTAG, 2410JTAG
此类器件仅做简单的PC并口到JTAG接口的电平转换。它们的区别仅在于JTAG信号PIN和PC并口PIN的对应关系不同, 其主要用来在PC机上通过JTAG 接口烧写目标板上的 Flash, 常用软件如 Flashpgm 等, 如加上 JTAG.exe 等 SERVER 软件,也可用 SDT 等软件进行源代码级的调试, 只不过速度会比较慢。
2. EasyJTAG
与 Wigger等相比,多了JTAG输入输出信号缓冲,内部有颗JTAG Bus Master芯片,而且与PC并口之间的数据接口是 8 位连接,因此比前者的速度快。但不幸的是支持的软件较少(Flashpgm,JTAG.exe 都不支持), 需要自己开发软件相关软件,故市场上很少见,而且需注意的是有人将wigger与它相混淆。
3. Multi-ICE
此为ARM公司生产的原版ARM并口仿真器。支持全系列的ARM核, 与wigger, EsayJTAG一样,通过并口与 PC 机连接,且数据接口也为 8 位。由于其内部有颗 FPGA 做并口到 JTAG 的协议转换,速度要比前两者都要快很多,下载速度可在 120kByte/s左右。此器件有两种供电方式,一为外接 5V电源(当目标板的电源功率不够或想减少仿真器对目标板的影响时用), 另一为通过JTAG 接口从目标板上取电(因而使用方便)。 Multi-ICE 的系统构架是由硬件实现 PC 并口到JTAG协议的转换(JTAG Bus Master 控制器),而在 PC 机上用 Multi-ICE.exe 服务软件及并口驱动实现JTAG TAP多路访问、控制接口及不同ARM核的支持,用Multi-ICE.dll或Multi-ICE-gdb.exe来支持RDI(ADS或SDT等)或 GDB(gdb或xgdb等)接口的调试器与Multi-ICE.exe之间的TAPop接口的操作。在如此的架构下,使得 ARM 公司可以在不提供 Multi-ICE 硬件升级的前提下,能通过更新 Multi-ICE.exe 及 Multi-ICE.dll 等软件来实现支持最新的 ARM 核。
4. 兼容型 Multi-ICE
此类产品又分两大类:
1) 完全兼容型
与ARM公司生产的原版ARM并口仿真器Multi-ICE不同之处仅在于价格和稳定性, 还有的厂家的产品只支持原版 Multi-ICE 两种供电方式中的一种(从 JTAG 接口供电或外接 5V 供电);相同之处是必须使用类似 Multi-ICE.exe 和 Multi-ICE.dll 的软件。
2) 部分兼容型
此类产品在硬件上做了并口到JTAG的协议转换, 但由于通过并口与PC机连接,数据接口也都只能为 8位。
5. RealView ICE
此为ARM公司生产的原版ARM网口和USB仿真器, 支持全系列的ARM核, 通过网口或USB口与PC机连接, 内部有MCU和FPGA, 由于MCU与PC连接是通过网口或USB连接,故速度要比 Multi-ICE 快很多,下载速度可高达 600kByte/s,同时支持 GDB 源代码调试。
6. 各厂家做的网口及 USB ICE
一般来说国外产家的产品要稳定并且支持的 ARM 核要多,有的甚至同时支持 MIPS 及PowerPC 核。
网上流行的多是 wiggler的电路图,可以配合 Flashpgm使用。周立功公司有一篇《使用 Flash Programmer 软件操作 EasyARM2200 外部 Flash》的**,具体介绍了如何使用 Flashpgm软件。 |