关于JTAG——韦东山嵌入式Linux视频学习笔记02
1. JTAG的字面意思
JTAG ——Joint Test Action Group,聯(lián)合測試行動組。
2. JTAG標(biāo)準(zhǔn)
隨著技術(shù)的發(fā)展,芯片的結(jié)構(gòu)和功能越來越復(fù)雜,傳統(tǒng)的使用萬用表、示波器測試芯片
的“探針”方法已不能滿足要求。在這種背景下 ,早在20世紀(jì)80年代 ,聯(lián)合測試行動組(簡稱JTAG)起草了邊界掃描測試規(guī)范 , 后來在1990年被批準(zhǔn)為IEEE標(biāo)準(zhǔn)1149. 121990規(guī)定,簡稱JTAG標(biāo)準(zhǔn)。
3. JTAG引腳定義
具有JTAG接口的芯片都有如下JTAG引腳定義:
- TDI(測試數(shù)據(jù)輸入)
- TDO(測試數(shù)據(jù)輸出)
- TCK(測試時鐘)
- TMS(測試模式選擇)
- TRST(測試復(fù)位),可選
4. JTAG的用途
JTAG最初是用來對芯片進(jìn)行測試的;如今,JTAG接口還用于實現(xiàn)ISP(In-System Programmer,在系統(tǒng)編程),對FLASH等器件進(jìn)行編程。
5. JTAG測試芯片的原理——邊界掃描
邊界掃描技術(shù)的基本思想是在靠近芯片的輸入輸出管腳上增加一個移位寄存器單元。因為這些移位寄存器單元都分布在芯片的邊界上,所以被稱為邊界掃描寄存器(Boundary-Scan Register Cell)。當(dāng)芯片處于調(diào)試狀態(tài)的時候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,就可以實現(xiàn)對芯片輸入輸出信號的觀察和控制。
對于芯片的輸入管腳,可以通過與之相連的邊界掃描寄存器單元把信號(數(shù)據(jù))加載到該管腳中去;對于芯片的輸出管腳,也可以通過與之相連的邊界掃描寄存器“捕獲”該管腳上的輸出信號。
在正常的運行狀態(tài)下,這些邊界掃描寄存器對芯片來說是透明的,所以芯片的正常運行不會受到任何影響。
另外,芯片輸入輸出管腳上的邊界掃描寄存器單元可以相互連接起來,在芯片的周圍形成一個邊界掃描鏈(Boundary-Scan Chain)。一般的芯片都會提供幾條獨立的邊界掃描鏈,用來實現(xiàn)完整的測試功能。
一句話概括,JTAG測試芯片的原理是:利用邊界掃描鏈對芯片的輸入輸出進(jìn)行觀察和控制。
6. 為什么JTAG可以燒寫Flash
一般來說,CPU通過地址總線、數(shù)據(jù)總線、片選、讀寫控制與外部Flash物理相連。當(dāng)CPU對外部Flash進(jìn)行操作時,將程序員給出的地址和數(shù)據(jù)通過系統(tǒng)總線送出,同時使對應(yīng)的控制信號有效,由此完成操作。利用JTAG的特殊結(jié)構(gòu),只要把對Flash操作所需要的地址、數(shù)據(jù)、控制信號,從TDI串行輸入,鎖存到對應(yīng)引腳的邊界掃描單元,更新引腳狀態(tài),最后輸出即可。同樣,引腳也可以把從Flash接收到的數(shù)據(jù)或信號鎖存到內(nèi)部掃描單元,然后從TDO串行輸出到系統(tǒng)以外的測試設(shè)備。
以前是通過CPU的內(nèi)部邏輯控制控制Flash,而現(xiàn)在是由外部測試設(shè)備通過JTAG直接對CPU的引腳進(jìn)行控制(設(shè)置電平的高低),進(jìn)而控制Flash. 可以說,JTAG是通過在CPU相關(guān)引腳上模擬出讀寫時序,以往Flash里面寫數(shù)據(jù)。
7. JTAG接口與PC的連接
ARM芯片上有若干根引腳可擴(kuò)展成標(biāo)準(zhǔn)JTAG接口,如S3C2440的五根引腳:nTRST、TMS、TCK、TDI、TDO,可以擴(kuò)展成20針(也有14針、10針、8針等)的JTAG接口。韋東山的JZ2440開發(fā)板,上面就有一個20針JTAG接口。
要調(diào)試板子,PC端肯定要有一個調(diào)試軟件;另外板子的JTAG口要和PC連起來。韋東山的視頻介紹了兩種方法:
(1)JTAG口通過一個轉(zhuǎn)接板(主要用于JTAG信號線的電平轉(zhuǎn)換)和PC的并口連接。
(2)JTAG口通過一個比轉(zhuǎn)接板復(fù)雜的裝置(比如Open JTAG,或者J-link等)和PC的USB口連接。
對于現(xiàn)在的筆記本電腦,沒有并口。所以,最常規(guī)的方法就是(2)。可以說,Open JTAG或者J-link,它們都實現(xiàn)了USB轉(zhuǎn)JTAG協(xié)議的功能。
8. JTAG調(diào)試器算不算ARM仿真器?
我認(rèn)為,仿真器是可以仿真目標(biāo)CPU的一臺設(shè)備,可以完全取代目標(biāo)板上的CPU,且可以提供更加深入的調(diào)試功能。比如說程序員可以通過仿真器設(shè)置斷點、設(shè)置條件斷點、監(jiān)視內(nèi)存內(nèi)容等。
而JTAG則是一個通用的調(diào)試接口。現(xiàn)在有些廠商的廣告,將JTAG調(diào)試器也叫做ARM仿真器,這有誤導(dǎo)之嫌。其實Open JTAG、J-link等東西的本質(zhì)是在PC和板子上的JTAG接口之間建立一個數(shù)據(jù)通路,它并不能仿真什么。
參考資料
【1】百度百科
【2】維基百科
【3】http://nancy.spaces.eepw.com.cn/articles/trackback/item/16322
【4】http://www.360doc.com/content/17/0422/20/42222087_647701392.shtml
總結(jié)
以上是生活随笔為你收集整理的关于JTAG——韦东山嵌入式Linux视频学习笔记02的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求矩阵中各列数字的和
- 下一篇: 如何告别半途而废——韦东山嵌入式Linu