使用过ARM芯片的人肯定都听过一个仿真器————JLINK, 为什么ARM芯片现在能够这么流行?其中恐怕就有一个原因就是很多的ARM芯片都支持使用Jlink进行调试和仿真。所以你只要有一个Jlink,不管是ARM7、ARM9、ARM11还是最新的ARM Cortex系统都能下载和调试了。
以前的嵌入式开发者,可能使用什么公司的芯片就得买一个对应芯片的下载和仿真器,这样如果你只使用一种芯片,可能还好,不过恐怕没有那种芯片能够一直引领市场。
Jlink使用的是一种叫做JTAG的协议,JTAG原本是用于芯片内部测试的,现在大多用于芯片的程序下载和调试仿真。由于现在Jlink用的比较多,所以有些人可能把Jlink就等同于JTAG了,实际上,JTAG是一种协议,只要满足这种协议的就可以叫做JTAG, 比如 H—JTAG、OpenJTAG、OSJTAG等等。正版的Jlink是卖的很贵的。大概是1000到2000RMB吧。不过,中国的山寨能力是很强的,而且你硬件卖给别人了,你也没办法控制别人说你不许拆开我的东西看里面的电路是怎么样的。所以Jlink就被破解了, 破解之后的Jlink很便宜,网上五六十块钱就能买到一个能用的Jlink。
除了商业版的Jlink和H—JTAG, 网上还有一些电子爱好者,他们参照开源软件的模式,设计了开源硬件,比如arduino。还有人制作了开源版本的JTAG仿真器——OpenJTAG。而一些芯片的开发商不像那些软件厂商,会给软件做很多的限制,他们对于开源硬件还是比较开明的,所以他们也支持了一些开源硬件。比如TI公司的MSP430 LaunchPad、 ST公司的STM Discovery 等等板子。还有飞思卡尔公司的USBDM和OSJTAG。他们把这些硬件的原理图、PCB还有固件都放在了网络上供人自由下载和制作,你也可以根据他的资料进行改进。 这样能使大家对于他们家的芯片有更多的了解,所以,他们也乐于开源一些评估板。
今天我要说的是几种JTAG仿真器的引脚定义,首先我看看比较常见的JTAG 20-Pin的引脚接口如下:
上面的图中已经有了20Pin和10Pin对应的关系了,实际上 JTAG的下载和调试至少需要四根线就行了—— TDI、TCK、TDO、TMS。 从20Pin的引脚图中 我们也发现右边有九个脚全是GND,这些脚完全可以舍去,所以就有了右边的10Pin的JTAG引脚图。 不过10Pin的引脚图里面引脚也比较多,所以又有人根据JTAG的协议改进产生了新的引脚定义——SWD协议。
SWD协议比JTAG使用的脚更少,至少三根线就可以了——SWCLK、SWDIO、GND。而且现在的Jlink基本上都支持JTAG和SWD两种协议,你只要使用转接板,或者是直接使用杜邦线连接即可。
最近,我接触到了Freescale的K60芯片,FSL官方有提供了一款开源的JTAG调试工具——OSJTAG。不知FSL是否是故意与别人不同,它的JTAG引脚与Jlink的引脚又有所不同,如下图所示:
好吧, 我做过试验,直接用杜邦线将OSJTAG的引脚与Jlink定义的下载接口相连接,也是可以下载进去程序的,那么干嘛定义那么多的不同的引脚定义呢?统一一点不好么?
本站采用 知识共享署名-非商业性使用-相同方式共享3.0 中国大陆许可协议 进行许可,转载请注明出处。
推荐使用 chrome 浏览器浏览本站。