imjacob的专栏

首页博文目录订阅
正 文

关于arm jtag

(2010-5-27 22:16)

关于arm的jtag,老是听到一些奇怪的词,一会儿是hjtag,easyjtag,wiggler,sdt,他们都是什么呢?且看:

======================================================================

关于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软件。

 

===================================================================

先给大家介绍个大概情况,现在国内都有什么著名的ARM开发工具和解决方案,价格从高低排:

  • BDI1000/2000/3000

目前我知道的最牛X的调试工具,可以调试ARM、MIPS、PPC、ColdFire、XScale等多种处理器。无需更换硬件,只需要买不同的软件授权就可以调试不同的CPU。JTAG下载速度可以上兆,以太网接口。因为太贵了(BDI2000好像要人民币50000吧),我没怎么研究它到底配合什么软件来调试,不过GDB它是肯定支持的,它一直是我心目中的神话啊。

  • J-Link原版

J-Link是IAR公司为ARM开发的调试工具,支持RDI协议的调试工具,如Keil、ADS、IAR等;支持GDB调试;什么SWD之类的用得很少,有没有都一样;但J-Link不支持ARM10以上的内核。JTAG下载的速度可以达到400~500K,正版价格大约5000人民币(全功能)吧,这么贵基本也不考虑了。

  • Multi-ICE原版

ARM公司的原创调试工具,支持全系列ARM芯片,现在多少钱我也不知道了,反正在2000~3000人民币这个级别。我这里指的是国内做得比较好的那些,比如Realview之类的。仅仅支持ADS、SDT之类的裸奔代码调试,JTAG下载速度130K左右。虽然这几年Multi-ICE是国内ARM调试绝对的霸主,但现在ARM公司已经停止对ADS的维护了,Multi-ICE会开始走向没落。

  • Multi-ICE盗版

国内有很多Multi-ICE的盗版,功能和Multi-ICE原版一样,并口的、USB的都有,价钱几百块人民币,淘宝上到处都有。但是和J-Link盗版相比,不推荐购买。

  • J-Link盗版

最近这段时间,J-Link盗版渐渐开始多起来了,淘宝上也很多,功能和原版没有区别。价格大约在几百人民币左右,从性价比来看,推荐购买。我之后还会写一篇用J-Link调试ARM的文章,当你入门之后,绝对无法忍受今天介绍的这个低成本方案的JTAG下载速度,那时就买个J-Link来爽爽。

  • U-Link盗版

U-Link是Keil公司做的用于ARM和某些增强型8051调试的工具,由于Keil公司做U-Link的时候没有加密,导致现在盗版满天飞,只需要100多块钱就可以买到一个。现在Keil已经被ARM收购,U-Link也是ARM一家的了。U-Link正版在盗版的排挤下,根本没有什么买的必要;U-Link仅仅支持Keil,而且JTAG下载速度仅有20~30K。

  • Wiggler电缆

Wiggler是世界上最泛滥的一种调试工具,它非常简单,只需要一片74HC244,一个9013,几个电阻就可以。本来Wiggler是Macraigor(http://www.macraigor.com/)制作的,可以支持Macraigor的OCDRemote这个GDB Server,可以支持ARM、PPC、ColdFire、MIPS、XScale等多种CPU。后来因为它结构太简单,被人破解后搞得全世界都是,于是Macraigor怒了,现在用OCDRemote必须是Macraigor原厂的Wiggler了……尽管如此,后人又在Wiggler的硬件基础上开发了很多的调试工具,例如H-Jtag;另外也有其他的调试工具增加了对Wiggler的支持,例如OpenOCD。Wiggler电缆的成本特别低,当然它的性能也和成本一样低;用H-Jtag下载速度大约20~30KB/s,用Linux虚拟机下的OpenOCD下载速度大约2KB/s。不过对于囊中羞涩的学生们来说,是一个非常不错的入门工具。本文就针对Wiggler进行介绍。

 

======================================================================

EASYARM JTAG电路是怎样的,可以公开吗?

1:
RE:目前没有公开

2:
也就是没有买你的EASYJTAG,就只能ISP下载,也不能JTAG仿真?

3:
有本事可以自己做JTAG

4:
JTAG的板很简单的,很多网站都有电路图给你个网站:
http://ARMjtag.27h.com
或:http://twentyone.blogchina.com/
还有其它的网站,我就知道这俩

我已经测试,只要支持wiggler的jtag板都行
我采用H-jtag软件+wiggler,ARMJtagDebug软件+wiggler都能够
下载到ExRAM并正确调试程序,我是用ZLG光盘上的例程调试的。

5:
俺估计:ZLG 的 EASYARM JTAG 可能就是个类似244的电平转换芯片.

而它的驱动可能写得不错.

6:
哈哈,莫谈"国事"

7:
谢谢,那意思就是EASYJTAG就是一个244的驱动器.谢谢,那意思就是EASYJTAG就是一个244的驱动器.PC配上软件就可以了吗?

8:
当然不是。JTAG就是个时序转换和缓冲。高档一点用FPGA+DSP/MCU,低档的就一个单片机/244。EasyJTAG就是个单片机

9:
哦!谢谢!一般FPGA的JTAG就是一个244.   看来还不能自己用244做JTAG,用ZLG的软件来防真ARM了.
“我已经测试,只要支持wiggler的jtag板都行我采用H-jtag软件+wigglerARMJtagDebug软件+wiggler都能够下载到ExRAM并正确调试程序,我是用ZLG光盘上的例程调试的。”,我不是很理解支持wiggler的jtag板,这是什么意思,谢谢!

10:
EasyJTAG肯定不是单片机,CPLD/PAL差不多,更不会是FPGA. CPLD的可能性都好小.

单片机IO那有那快. 可能是ZLG定做的一个小逻辑IC.

11:
re: wag把EasyJtag硬件+EasyJtag.dll 用wiggler硬件+H-Jtag.dll 替代。

12:
to 楼上这样的组合不能自动下载到flash里面,还是没有zlg的方便

13:
LPC9XX的单片机,我拆过,忘了具体型号

14:
无所谓公开不公开,里面就是一个单片机,关键是软件而不是电路,做一个好软件还是有难度,我们也为此而头痛,任何东西做好不容易!欢迎有这方面技术的人才与我们合作,我们也经常“外包”,我们不希望重复劳动,能买得到的就购买,实在买不到我们就只好自己开发。

15:
谢谢各位!


 

评 论
还没有网友评论,欢迎您第一个评论!
博 主
进入imjacob的首页
博客名称:雅克的一府
日志总数:514
评论数量:901
访问次数:1859622
建立时间:2006-11-23 20:52
导 航
公 告
Locations of visitors to this page 本博客主要用于个人学习与资料收藏。当然大家应该读了之后也能学到不少东西。其中大多数资料都是来自网络,我转载时尽可能地表明文章出处与原作者姓名,但由于很多资料经多人转载,已不清楚原作者信息与出处,所以未表明相关…
评 论
链 接

ARM+LINUX 嵌入式博客
http://blog.chinaunix.net/u1/58780/index.html

嵌入式软件
http://blog.csdn.net/embeddedsoft

诚诚恳恳做人踏踏实实编程
http://blog.sina.com.cn/u/1244756857 

和我风格相似的一个blog
http://blogger.org.cn/blog/m…