1、 JTAG接口在嵌入式中的作用
引用:​​​http://nancy.spaces.eepw.com.cn/articles/article/item/16322​​​
1 用于烧写FLASH
烧写FLASH的软件有很多种包括jatg.exe fluted flashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信息给目标板的jtag接口。所以就需要并口转jtag接口的电路。
2 用于调试程序
同时应该注意到jtag接口还可以用来调试程序。而调试程序(如ARM开发组件中的AXD)为了通过jtag接口去调试目标板上的程序,同样是使用pc的并口转jtag接口来实现与目标板的通信。这样,并口转jtag接口的电路就有了两种作用。
3 仿真器
根据1和2的总结,并口转jtag接口的电路是两种应用的关键,而这种电路在嵌入式开发中就叫仿真器。并口转jtag接口的电路有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,Multi-ICE等。这些所谓的仿真器的内部电路都是并口转jtag接口,区别只是电路不同或使用的技术不同而已。

2、Wigger电路

JTAG接口概述_仿真器

3、openJTAG电路

OPEN JTAG简介

在嵌入式开发中,有很多优秀的开发工具。如KEIL、IAR、Rowley Associates等。他们安装使用都很方便,功能强大,但是价格昂贵;还要购买相应的硬件,如J-LINK、U-LINK等USB到JTAG的转换盒,这也是一部不小的开支。

但是现在有一个价格低廉的开发环境就是,用免费的开发工具Eclipae、OpenOCD,然后通过一些便宜的JTAG转换器(如并口转换器),就可以到达甚至超过商业软件的效果。但是并口JTAG速率太低,一般很少使用。现在有一个更好的转换器就是OPenJTAG转换器。

JTAG接口概述_Windows_02


OpenJTAG 的硬件采用了ALTERA 的MAX II EPM570 CPLD 作为并串转换器,USB的FIFO采用了FTDI芯片公司的FT245BM。这个电路简单,容易理解。FT245BM是USB的前端从PC和CPLD,带来一种简便廉价的通信解决方案的目标硬件。

JTAG接口概述_Windows_03


引用:​​http://hi.baidu.com/jnuli/blog/item/c94522db1104896dd1164ef7.html​

什么是Open JTAG。Open JTAG是一个开源项目,她的目标是使嵌入式开发者能够通过JTAG接口,用开放的硬件和软件系统进行烧写、校验和调试。

作为Open JTAG的官方网站,​​http://www.openjtag.NET​​ 上详述了Open JATG可以实现的硬件解决方式。

然而,他们的重点确实放在详述花费 $200 的高速JATG解决方案上,令 我辈山寨开发者十分不满。

还好,USB接口的解放方案提供了一种相对低廉的解决方式,20M的速率也不算低,这就是给予FTDI的FT2232系列的JTAG调试器。

当然,Open JTAG的硬件成本就不可能做到比Jlink的价格还低了。

不过令人振奋的是,Open JTAG以他特殊的开源优势,特别适合嵌入式开发者的使用,特别是在Lunix下的使用。

搭配的软件常用的是OpenOCD,它是一个开源的JTAG上位机程序,主页在​​http://openocd.berlios.de/web/​​​,论坛在​​http://forum.sparkfun.com/viewforum.PHP?f=18​​。目前支持多种芯片。可以简单查看src/target/target.c中的target_types的定义就可以了解支持哪些处理器了:

[cpp] view plain copy

target_type_t *target_types[] ={

&arm7tdmi_target,

&arm9tdmi_target,

&arm920t_target,

&arm720t_target,

&arm966e_target,

&arm926ejs_target,

&feroceon_target,

&xscale_target,

&cortexm3_target,

&arm11_target,

&mips_m4k_target,

… …

所以也就是说,凡是以上列出的,Open JTAG都可用。而且随着Open OCD的功能晚上,支持的芯片还会越来越多。

官方解决方案原理图(FT245BM作为USB的FIFO缓冲,EPM570 MAX II作为串并转换器)

插播:USB转串口常用芯片(FT2232C CP2102 PL2303)
​​​http://hi.baidu.com/fire4work/blog/item/0673c523cfbe1e4dac34de75.html​

4、Jlink电路
关键部分是使用了IC, AT91SAM7S64(阿莫的arm单片机)
引用:​​​http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3219462&bbs_page_no=1&search_mode=3&search_text=juedi&bbs_id=9999​

JTAG接口概述_Windows_04


5、OpenJTAG和JLINK差别

1. 操作系统:

OpenJTAG可以用在Windows、Linux下;

JLink只能用在Windows下。

  1. 集成开发环境:
    OpenJTAG能用在所有支持GDB调试协议的工具上,比如IAR、Eclipse、winarm,不能用在支持RDI协议的工具上,比如ADS。
    JLink支持多种调试协议RDI、GDB调试,几乎所有Windows下的工具都支持,比如ADS、Keil MDK、IAR。
  2. 对Flash的烧写:
    OpenJTAG、JLink对FLASH的烧写功能几乎一样强。
  3. 如何选择:
    如果是学习Linux,那么OpenJTAG比较适用(因为JLink只能用在Windows下);
    如果比较喜欢ADS(使用RDI调试协议)、Keil等工具,那么JLink比较适用;

CPLD+FT232B OpenJTAG原理图

JTAG接口概述_解决方案_05