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