01JTAG簡介
JTAG(JointTest ActionGroup)是一個(gè)接口,為了這個(gè)接口成立了一個(gè)小組叫JTAG小組,它成立于1985年。在1990年IEEE覺得一切妥當(dāng),于是發(fā)布了IEEE Standard 1149.1-1990,并命名為Standard Test Access Port and Boundary-ScanArchitecture,這就是大名鼎鼎的JTAG了。
JTAG的三大功能你知道嗎,響當(dāng)當(dāng)?shù)模?/p>
1.下載器,即下載軟件到FLASH里。
2. DEBUG,跟醫(yī)生的聽診器似的,可探聽芯片內(nèi)部小心思。
3. 邊界掃描,可以訪問芯片內(nèi)部的信號(hào)邏輯狀態(tài),還有芯片引腳的狀態(tài)等等。
JTAG根本沒有標(biāo)準(zhǔn)的接口定義,甚至每家公司定義都不一樣。在ARM的《系統(tǒng)和接口設(shè)計(jì)參考》文檔中
文檔下載地址:
鏈接:https://pan.baidu.com/s/13aQXOXR73_wiERz2kwN15w
提取碼:xaaf
(提示:公眾號(hào)不支持外鏈接,請(qǐng)復(fù)制鏈接到瀏覽器下載)
這篇文檔列舉了不同的JTAG接口
而我們經(jīng)常在互聯(lián)網(wǎng)看到的下圖,是SEGGER公司的Jlink的JTAG接口。
J-Link是德國SEGGER公司推出基于JTAG的仿真器。簡單地說,是給一個(gè)JTAG協(xié)議轉(zhuǎn)換盒,即一個(gè)小型USB到JTAG的轉(zhuǎn)換盒,其連接到計(jì)算機(jī)用的是USB接口,而到目標(biāo)板內(nèi)部用的還是jtag協(xié)議。它完成了一個(gè)從軟件到硬件轉(zhuǎn)換的工作。
同時(shí)Jlink也是個(gè)人覺的最流行的調(diào)試器。通過《系統(tǒng)和接口設(shè)計(jì)參考》可知,這個(gè)ARM官方的JTAG20pin并不相同。
在這里希望大家明白,ARM,Jlink,JTAG之間的關(guān)系。
使用頻率也挺高的ST-linkV2的接口由上文可知,這也是ST公司自己定義的接口
Ulink、CMSIS_DAP和其他STM32的仿真器是一樣的道理。
02JTAG介紹
邊界測試:
舉個(gè)例子你有兩個(gè)芯片,這兩個(gè)芯片之間連接了很多很多的線,怎么確保這些線之間的連接是OK的呢,用JTAG,它可以控制所有IC的引腳。這叫做芯片邊界測試。
在JTAG接口中,最常用的信號(hào)有四個(gè),分別是TCK/TMS/TDO/TDI。JTAG接口可以一對(duì)一的使用,也可以組成菊花鏈的一對(duì)多拓?fù)浣Y(jié)構(gòu),兩種拓?fù)浣Y(jié)構(gòu)如下圖所示。多核的芯片,其芯片內(nèi)部已經(jīng)接成了菊花鏈的形式。
JTAG的菊花鏈還有很多玩法
CPU和FPGA制造商允許JTAG用來端口debug;FPGA廠商允許通過JTAG配置FPGA,使用JTAG信號(hào)通入FPGA核。
03JTAG和SWD
SWD接口:串行調(diào)試(SerialWireDebug),應(yīng)該可以算是一種和JTAG不同的調(diào)試模式,最直接的體現(xiàn)在調(diào)試接口上,與JTAG的20個(gè)引腳相比,SWD只需要4(或者5)個(gè)引腳。
VCC、SWDIO、SWCLK、GND(有些情況,也加上了RESET腳)。
SWD和傳統(tǒng)的調(diào)試方式區(qū)別:
SWD模式比JTAG在高速模式下面更加可靠。在大數(shù)據(jù)量的情況下面JTAG下載程序會(huì)失敗,但是SWD發(fā)生的幾率會(huì)小很多?;臼褂肑TAG仿真模式的情況下是可以直接使用SWD模式的,只要你的仿真器支持,所以推薦大家使用這個(gè)模式。
當(dāng)CPU的GPIO不夠用的時(shí)候,可以使用SWD仿真,這種模式支持更少的引腳。
在硬件PCB的體積有限的時(shí)候推薦使用SWD模式,它需要的引腳少,當(dāng)然需要的PCB空間就小,可以選擇一個(gè)很小的2.54間距的5芯端子做仿真接口。
Keil環(huán)境下Jlink調(diào)試器的JTAG模式和SWD模式
IAR環(huán)境下Jlink調(diào)試器的JTAG模式和SWD模式
Jlink的JTAG模式和SWD模式對(duì)比圖
04關(guān)于Vref引腳
上面我們提到Vref引腳,屬于IO接口的電源域,目的是為了使芯片邏輯電平與調(diào)試器的邏輯電平一致,避免邏輯錯(cuò)誤,甚至對(duì)設(shè)備造損壞。
在Jlink上有Vref的跳線帽。
三個(gè)排針:①是NC,②是Vref,是和輸出的1腳相連的,③是3.3V
如果要Jlink的1腳Vref輸出3.3V,直接將②和③短接即可。
05關(guān)于TRST引腳
JTAG定義中的TRST引腳,用來復(fù)位TAP控制器的。在STM32系列單片機(jī)中,并沒有TRST引腳,名字為NJTRST。
以STM32F207為例,NJTRST引腳在JTAG和SWD模式中的說明。
STM32F207的SWJI/O引腳可用性
06RESET引腳作用
在一些STM32的產(chǎn)品仿真時(shí)使用4線的SWD模式,發(fā)布版通常會(huì)將JTAG口設(shè)置為普通IO,或者由于管腳不夠用,在發(fā)布版用作其他用途。我們?cè)谡{(diào)試發(fā)布版,因?yàn)榻沽薐TAG模式,沒有辦法仿真了。
這個(gè)時(shí)候,最常用的做法是,拉高BOOT0管腳,進(jìn)入MainFlash memory模式,進(jìn)行debug仿真。
對(duì)比STM32的官方開發(fā)板,我們?cè)谑褂肧WD模式?jīng)]有引出RST引腳,當(dāng)然屬于SWD的還有SWO信號(hào),這是個(gè)監(jiān)視用的,也是非常有用。這兩個(gè)信號(hào)都可以連接仿真器的。
仿真器有UnderReset的方式,因此,仿真器在需要仿真的時(shí)候,會(huì)把RST信號(hào)送到MCU,讓MCU處于RST,或者采用Reset后仿真,代碼還沒執(zhí)行到禁止JTAG狀態(tài)下,所以可以直接仿真。當(dāng)然,也可以主動(dòng)復(fù)位供電,也是可以脫離原來的JTAG禁止?fàn)顟B(tài)。也可以拉高boot0管腳。
編輯:jq
-
JTAG
+關(guān)注
關(guān)注
6文章
399瀏覽量
71673
原文標(biāo)題:關(guān)于JTAG,你知道的和不知道的都在這里
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論