淺論各種調(diào)試接口(JTAG、SWD、RDI、Jlink、Ulink、STlink)的區(qū)別
一、JTAG協(xié)議
JTAG(Joint Test Action Group,聯(lián)合測試行動小組)是一種國際標準測試協(xié)議(IEEE 1149.1兼容),主要用于芯片內(nèi)部測試?,F(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如ARM、DSP、FPGA器件等。標準的JTAG接口是4線:TMS、 TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。相關(guān)JTAG引腳的定義為:
- TMS:測試模式選擇,TMS用來設(shè)置JTAG接口處于某種特定的測試模式;
- TCK:測試時鐘輸入;
- TDI:測試數(shù)據(jù)輸入,數(shù)據(jù)通過TDI引腳輸入JTAG接口;
- TDO:測試數(shù)據(jù)輸出,數(shù)據(jù)通過TDO引腳從JTAG接口輸出;
二、SWD接口
串行調(diào)試(Serial Wire Debug),應該可以算是一種和JTAG不同的調(diào)試模式,使用的調(diào)試協(xié)議也應該不一樣,所以最直接的體現(xiàn)在調(diào)試接口上,與JTAG的20個引腳相比,SWD只需要4個(或者5個)引腳,結(jié)構(gòu)簡單,但是使用范圍沒有JTAG廣泛,主流調(diào)試器上也是后來才加的SWD調(diào)試模式。
-
SWD模式比JTAG在高速模式下面更加可靠。在大數(shù)據(jù)量的情況下面JTAG下載程序會失敗,但是SWD發(fā)生的幾率會小很多?;臼褂肑TAG仿真模式的情況下是可以直接使用SWD模式的,只要你的仿真器支持,所以推薦大家使用這個模式。
-
在大家GPIO剛好缺一個的時候,可以使用SWD仿真,這種模式支持更少的引腳。
-
在大家板子的體積有限的時候推薦使用SWD模式,它需要的引腳少,當然需要的PCB空間就小啦!比如你可以選擇一個很小的2.54間距的5芯端子做仿真接口。
三、RDI接口
遠程調(diào)試接口(Remote Debug Interface),是ARM公司提出的標準調(diào)試接口,主要用于ARM芯片的仿真,由于各個IDE廠商使用的調(diào)試接口各自獨立,硬件無法進行跨平臺的調(diào)試。
四、JLink仿真器
J-Link是德國SEGGER公司推出基于JTAG的仿真器。簡單地說,是給一個JTAG協(xié)議轉(zhuǎn)換盒,即一個小型USB到JTAG的轉(zhuǎn)換盒,其連接到計算機用的是USB接口,而到目標板內(nèi)部用的還是jtag協(xié)議。它完成了一個從軟件到硬件轉(zhuǎn)換的工作。
五、ULink仿真器
ULINK是ARM/KEIL公司推出的仿真器,目前網(wǎng)上可找到的是其升級版本,ULINK2和ULINK Pro仿真器。ULINK/ULINK2可以配合Keil軟件實現(xiàn)仿真功能,并且僅可以在Keil軟件上使用,增加了串行調(diào)試(SWD)支持,返回時鐘支持和實時代理等功能。
六、ST-Link仿真器
ST-LINK是專門針對意法半導體STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM標準接口和JTAG / SWD標準接口,其主要功能有:
- 編程功能:可燒寫FLASH ROM、EEPROM、AFR等;
- 仿真功能:支持全速運行、單步調(diào)試、斷點調(diào)試等各種調(diào)試方法,可查看IO狀態(tài),變量數(shù)據(jù)等;
- 仿真性能:采用USB2.0接口進行仿真調(diào)試,單步調(diào)試,斷點調(diào)試,反應速度快;
- 編程性能:采用USB2.0接口,進行SWIM / JTAG / SWD下載,下載速度快;