




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、“黑色經(jīng)典”系列之ARM嵌入式系統(tǒng)開發(fā)典型模塊第4章JTAG調(diào)試接口模塊ARM嵌入式系統(tǒng)開發(fā)典型模塊4.1 JTAG調(diào)試接口簡介JTAG(Joint Test Action Group,聯(lián)合測試行動(dòng)小組是一種國際標(biāo)準(zhǔn)測試協(xié)議,主要用于芯片內(nèi)部測試及對系統(tǒng)進(jìn)行仿真、調(diào)試。JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專門的測試電路TAP(Test Access Port,測試訪問口,通過專用的JTAG測試工具對內(nèi)部節(jié)點(diǎn)進(jìn)行測試。目前大多數(shù)比較復(fù)雜的器件都支持JTAG協(xié)議,如ARM、DSP、FPGA 器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為測試模式選擇、測試時(shí)
2、鐘、測試數(shù)據(jù)輸入和測試數(shù)據(jù)輸出。JTAG測試允許多個(gè)器件通過JTAG接口串聯(lián)在一起,形成一個(gè)JTAG鏈,能實(shí)現(xiàn)對各個(gè)器件分別測試。JTAG接口還常用于實(shí)現(xiàn)ISP(In-System Programmable在線系統(tǒng)編程功能,如對Flash器件進(jìn)行編程等。通過JTAG接口,可對芯片內(nèi)部的所有部件進(jìn)行訪問,因而是開發(fā)調(diào)試嵌入式系統(tǒng)的一種簡潔高效的手段。4.2 JTAG接口的結(jié)構(gòu)4.2.1 JTAG接口的主要結(jié)構(gòu)在硬件結(jié)構(gòu)上,JTAG接口包括2部分:JTAG端口和控制器。與JTAG接口兼容的器件件可以是微處理器(MPU、微控制器(MCU、PLD、CPL、FPGA、ASIC或者是其他符合IEEE 11
3、49.1規(guī)范的芯片。IEEE 1149.1標(biāo)準(zhǔn)中規(guī)定對應(yīng)于數(shù)字集成電路芯片的每個(gè)引腳都設(shè)有一個(gè)移位寄存單元,稱為邊界掃描單元BSC(Boundary Scan cell。它將JTAG電路與內(nèi)核邏輯電路聯(lián)系起來,同時(shí)隔離內(nèi)核邏輯電路和芯片引腳,由集成電路的所有邊界掃描單元構(gòu)成邊界掃描寄存BSR(Boundary Scan Register。邊界掃描寄存器電路僅在進(jìn)行JTAG測試時(shí)有效,在集成電路正常工作時(shí)無效,不影響集成電路的功能。具有JTAG接口的芯片內(nèi)部結(jié)構(gòu)如圖4.1所示。在對多個(gè)具有JTAG芯片編程時(shí),可以組成JTAG菊花鏈結(jié)構(gòu)(Daisy chain,是一種特殊的串行編程方式。每片TDI
4、輸入端與前面一片的TDO輸出端相連,最前面一片的TDI端和最后一片的TDO端與JTAG編程接口的TDI、TDO分別相連,如圖4.2所示。鏈中的器件數(shù)可以很多,只要不超出接口的驅(qū)動(dòng)能力即可。通過狀態(tài)機(jī)控制,可以使非正在被編程器件的TDI端直通TDO端,這樣就可以使數(shù)據(jù)流形成環(huán)路,對各器件按序進(jìn)行編程。使用者可以通過讀取每個(gè)芯片特有的識別碼知道該器件在鏈中的位置。ARM嵌入式系統(tǒng)開發(fā)典型模塊 圖4.1 JTAG接口芯片內(nèi)部結(jié)構(gòu)圖 圖4.2 JTAG菊花鏈結(jié)構(gòu)圖(1指令寄存器IR:由2個(gè)或更多個(gè)指令寄存單元和指令譯碼器組成,通過它可以串行輸入執(zhí)行各種操作的指令。(2數(shù)據(jù)寄存器組:是一組基于電路的移位
5、寄存器。操作指令被串行裝入由當(dāng)前指令所選擇的數(shù)據(jù)寄存器。隨著操作的執(zhí)行,測試結(jié)果被移出。(3邊界寄存器DR:在內(nèi)部邏輯電路和各引腳之間均插入了一串邊界掃描單元,形成了由TDI到TDO之間的邊界寄存器鏈。(4旁路寄存器BP:它只是1位寄存器。它的一端與TDI相連,另一端與TDO相連。在指令控制下,由TDI輸入的數(shù)據(jù)可以直接經(jīng)由本片的旁路寄存器送到TDO。使用旁路寄存器,可以越過片1、片2的邊界寄存器,僅經(jīng)過它們的旁路寄存器直接向片3輸入數(shù)據(jù)。(5測試訪問端口(TAP控制器:TAP控制器是一個(gè)16狀態(tài)的莫爾型同步時(shí)序電路,響應(yīng)于測試時(shí)鐘TCK 的上升沿。在TCK和TMS協(xié)同配合下確定來自TDI的串
6、行數(shù)據(jù)是指令碼還是測試碼,進(jìn)而產(chǎn)生ClockDR、ClockIR、UpdateIR、UpdateDR、ShiftDR和Mode、Control 等信號,實(shí)現(xiàn)對IR和DR的設(shè)置和控制。(6測試總線:這種芯片至少有4個(gè)供邊界掃描用的附加引腳:TCK、TMS、TDI和TDO。還可以另設(shè)一個(gè)引腳TRST。TCK是測試時(shí)鐘輸入引腳,TMS是測試方式選擇引腳,TDI是測試用輸入引腳,TDO是測試用輸出引腳。這4個(gè)引腳構(gòu)成了測試總線。TRST供TAP控制器復(fù)位用。4.2.2 JTAG引腳定義JTAG接口主要包括4個(gè)引腳:TMS、TCK、TDI和TDO以及一個(gè)可選配的引腳TRST,用于驅(qū)動(dòng)電路模塊和控制執(zhí)行規(guī)
7、定的操作。各引腳的功能如下。(1TCK(Test Clock Input:JTAG的測試時(shí)鐘,為TAP控制器和寄存器提供測試參考。在TCK的同步作用下通過TDI和TDO引腳串行移入或移出數(shù)據(jù)及指令。同時(shí),TCK為TAP 控制器狀態(tài)機(jī)提供時(shí)鐘。(2TMS:TAP控制器的模式輸入信號。TCK的上升沿時(shí)刻TMS的狀態(tài)確定TAP控制器即將進(jìn)入的工作狀態(tài)。通常TMS引腳具有內(nèi)部上拉電阻,以保證該引腳在沒有驅(qū)動(dòng)時(shí)處于邏輯1狀態(tài)。(3TDI:JTAG指令和數(shù)據(jù)寄存器的串行數(shù)據(jù)輸入端。TAP控制器的當(dāng)前狀態(tài)以及保存在指令寄存器中的具體指令決定對于一個(gè)特定的操作由TDI裝入哪個(gè)寄存器。在TCK的上升沿時(shí)刻,TD
8、I引腳狀態(tài)被采樣,結(jié)果送到JTAG寄存器組。(4TDO:JTAG指令和數(shù)據(jù)寄存器的串行數(shù)據(jù)輸出端。TAP控制器的當(dāng)前狀態(tài)以及保持在指令寄存器中的具體指令決定對于一個(gè)特定的操作哪個(gè)寄存器的內(nèi)容送到TDO輸出。對于任何已知的操作,在TDI和TDO之間只能有一個(gè)寄存器(指令或數(shù)據(jù)處于有效連接狀態(tài)。TDO在TCK的下降沿改變狀態(tài),并且只在數(shù)據(jù)通過器件移動(dòng)過程中有效。該引腳在其他時(shí)間處于三態(tài)狀態(tài)。(5TRST:測試復(fù)位輸入信號,低電平有效,為TAP控制器提供異步初始化信號。ARM嵌入式系統(tǒng)開發(fā)典型模塊4.3 JTAG接口的內(nèi)部操作4.3.1 邊界掃描在JTAG調(diào)試當(dāng)中,邊界掃描(Boundary-Sca
9、n是一個(gè)很重要的概念。邊界掃描技術(shù)的基本思想是在靠近芯片的輸入輸出管腳上增加一個(gè)移位寄存器單元。因?yàn)檫@些移位寄存器單元都分布在芯片的邊界上(周圍,所以被稱為邊界掃描寄存器單元(Boundary-Scan Register Cell。當(dāng)芯片處于調(diào)試狀態(tài)的時(shí)候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,可以實(shí)現(xiàn)對芯片輸入輸出信號的觀察和控制。對于芯片的輸入管腳,可以通過與之相連的邊界掃描寄存器單元把信號(數(shù)據(jù)加載到該管腳中去;對于芯片的輸出管腳,也可以通過與之相連的邊界掃描寄存器“捕獲”(CAPTURE該管腳上的輸出信號。在正常的運(yùn)行狀態(tài)下,這些邊界掃描寄存
10、器對芯片來說是透明的,所以正常的運(yùn)行不會受到任何影響。這樣,邊界掃描寄存器提供了一個(gè)便捷的方式用以觀測和控制所需要調(diào)試的芯片。另外,芯片輸入輸出管腳上的邊界掃描(移位寄存器單元可以相互連接起來,在芯片的周圍形成一個(gè)邊界掃描鏈(Boundary-Scan Chain。一般的芯片都會提供幾條獨(dú)立的邊界掃描鏈,用來實(shí)現(xiàn)完整的測試功能。邊界掃描鏈可以串行地輸入和輸出,通過相應(yīng)的時(shí)鐘信號和控制信號,就可以方便地觀察和控制處在調(diào)試狀態(tài)下的芯片。利用邊界掃描鏈可以實(shí)現(xiàn)對芯片的輸入輸出進(jìn)行觀察和控制。邊界掃描鏈由若干具有相同結(jié)構(gòu)的掃描單元組成,其基本結(jié)構(gòu)與控制如圖4.3所示。 圖4.3 掃描鏈與掃描單元結(jié)構(gòu)與
11、控制邊界掃描單元的控制信號包括2類:一類是由TAP控制器產(chǎn)生的時(shí)序控制信號,另一類是由指令譯碼器產(chǎn)生的譯碼信號。掃描鏈的時(shí)序,大致可分為3個(gè)階段。(1捕獲階段:掃描單元從并行的數(shù)據(jù)輸入捕獲數(shù)據(jù)到S觸發(fā)器。(2移位階段:掃描單元將S觸發(fā)器中的值,串行移位到下一級掃描單元的S觸發(fā)器中,并將其前一級掃描單元S觸發(fā)器中的值移入。(3更新階段:所有掃描單元并行地將其S觸發(fā)器中的值,輸入到U觸發(fā)器中。為實(shí)現(xiàn)這3個(gè)階段,需要TAP控制器產(chǎn)生的3個(gè)控制信號。此外,還需要一個(gè)指令譯碼信號,控制是否將U觸發(fā)器中的值傳入核心邏輯。表4.1給出了一種符合JTAG標(biāo)準(zhǔn)的邊界掃描鏈的控制信號。表4.1 邊界掃描鏈中掃描單
12、元的控制信號 問對象。下面,讓我們從TAP(Test Access Port開始。TAP是一個(gè)通用的端口,通過TAP可以訪問芯片提供的所有數(shù)據(jù)寄存器(DR和指令存器(IR。對整個(gè)TAP的控制是通過TAP Controller來完成的。TAP總共包括5個(gè)信號, TCK、TMS、TDI、TDO和TRST,其中4個(gè)是輸入信號接口,另外1個(gè)是輸出信號接口,上面已經(jīng)作了介紹。一般,我們見到的開發(fā)板上都有一個(gè)JTAG接口,該JTAG接口的主要信號接口就是這5個(gè)。通過TAP接口,對數(shù)據(jù)寄存器(DR進(jìn)行訪問的一般過程如下。(1通過指令寄存器(IR,選定一個(gè)需要訪問的數(shù)據(jù)寄存器。(2把選定的數(shù)據(jù)寄存器連接到TD
13、I和TDO之間。(3由TCK驅(qū)動(dòng),通過TDI,把需要的數(shù)據(jù)輸入到選定的數(shù)據(jù)寄存器當(dāng)中去;同時(shí)把選定的數(shù)據(jù)寄存器中的數(shù)據(jù)通過TDO讀出來。下面我們一起來了解一下TAP的狀態(tài)機(jī)。TAP的狀態(tài)機(jī)如圖4.4所示,共有16個(gè)狀態(tài)。ARM嵌入式系統(tǒng)開發(fā)典型模塊在圖中,每個(gè)六邊形表示一個(gè)狀態(tài),六邊形中標(biāo)有該狀態(tài)的名稱和標(biāo)識代碼。圖中的箭頭表示了TAP Controller內(nèi)部所有可能的狀態(tài)轉(zhuǎn)換流程。狀態(tài)的轉(zhuǎn)換是由TMS控制的,所以在每個(gè)箭頭上標(biāo)有tms = 0或者tms = 1。在TCK的驅(qū)動(dòng)下,從當(dāng)前狀態(tài)到下一個(gè)狀態(tài)的轉(zhuǎn)換是由TMS信號決定。假設(shè)TAP Controller的當(dāng)前狀態(tài)為Select-DR-
14、Scan,在TCK的驅(qū)動(dòng)下,如果TMS=0,TAP Controller進(jìn)入Capture-DR狀態(tài);如果TMS=1,TAP Controller進(jìn)入Select-IR-Scan狀態(tài)。 圖4.4 TAP控制器狀態(tài)轉(zhuǎn)換圖這個(gè)狀態(tài)機(jī)看似很復(fù)雜,理解以后會發(fā)現(xiàn)這個(gè)狀態(tài)機(jī)其實(shí)很直接、很簡單。觀察上圖可以發(fā)現(xiàn),除了Test-Logic Reset和Test-Run/Idle狀態(tài)外,其他的狀態(tài)有些類似。例如Select-DR-Scan和Select-IR-Scan對應(yīng),Capture-DR和Capture-IR對應(yīng),Shift-DR和Shift-IR 對應(yīng),等等。在這些對應(yīng)的狀態(tài)中,DR表示Data Re
15、gister,IR表示Instruction Register。寄存器分為2大類,數(shù)據(jù)寄存器和指令寄存器。標(biāo)識有DR的狀態(tài)是用來訪問數(shù)據(jù)寄存器的,而標(biāo)識有IR的狀態(tài)是用來訪問指令寄存器的。下面具體介紹它們表示的意義及功能。(1Test-Logic Reset系統(tǒng)上電后,TAP Controller自動(dòng)進(jìn)入該狀態(tài)。在該狀態(tài)下,測試部分的邏輯電路全部被禁用,以保證芯片核心邏輯電路的正常工作。通過TRST信號也可以對測試邏輯電路進(jìn)行復(fù)位,使得TAP Controller進(jìn)入Test-Logic Reset狀態(tài)。前面我們說過TRST是可選的一個(gè)信號接口,這是因?yàn)樵赥MS上連續(xù)加5個(gè)TCK脈沖寬度的1信
16、號也可以對測試邏輯電路進(jìn)行復(fù)位,使得TAP Controller進(jìn)入Test-Logic Reset狀態(tài)。所以,在不提供TRST信號的情況下,也不會產(chǎn)生影響。在該狀態(tài)下,如果TMS一直保持為“1”,TAP Controller將保持在Test-Logic Reset狀態(tài)下;如果TMS由“1”變?yōu)椤?”(在TCK的上升沿觸發(fā),將使TAP Controller進(jìn)入Run-Test/Idle狀態(tài)。(2Run-Test/Idle這是TAP Controller在不同操作間的一個(gè)中間狀態(tài)。這個(gè)狀態(tài)下的動(dòng)作取決于當(dāng)前指令寄存器中的指令。有些指令會在該狀態(tài)下執(zhí)行一定的操作,而有些指令在該狀態(tài)下不需要執(zhí)行任何
17、操作。在該狀態(tài)下,如果TMS一直保持為0 TAP Controller將一直保持在Run-Test/Idle 狀態(tài)下;如果TMS由0變?yōu)?(在TCK的上升沿觸發(fā),將使TAP Controller進(jìn)入Select-DR-Scan 狀態(tài)。(3Select-DR-Scan這是一個(gè)臨時(shí)的中間狀態(tài)。如果TMS為0。(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入Capture-DR狀態(tài),后續(xù)的系列動(dòng)作都將以數(shù)據(jù)寄存器作為操作對象;如果TMS為1(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入Select-IR-Scan狀態(tài)。(4Capture-DR當(dāng)TAP Controller在這個(gè)狀態(tài)
18、中,在TCK的上升沿,芯片輸出管腳上的信號將被“捕獲”到與之對應(yīng)的數(shù)據(jù)寄存器的各個(gè)單元中去。如果TMS為0(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入Shift-DR狀態(tài);如果TMS為1(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入Exit1-DR狀態(tài)。(5Shift-DR在這個(gè)狀態(tài)中,由TCK驅(qū)動(dòng),每一個(gè)時(shí)鐘周期,被連接在TDI和TDO之間的數(shù)據(jù)寄存器將從TDI接收一位數(shù)據(jù),同時(shí)通過TDO輸出一位數(shù)據(jù)。如果TMS為0(在TCK的上升沿觸發(fā),TAP Controller保持在Shift-DR狀態(tài);如果TMS為1(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入到Ex
19、it1-DR狀態(tài)。假設(shè)當(dāng)前的數(shù)據(jù)寄存器的長度為4。如果TMS保持為0,那么在4個(gè)TCK時(shí)鐘周期后,該數(shù)據(jù)寄存器中原來的4位數(shù)據(jù)(一般是在Capture-DR狀態(tài)中捕獲的數(shù)據(jù)將從TDO輸出來;同時(shí)該數(shù)據(jù)寄存器中的每個(gè)寄存器單元中將分別獲得從ARM嵌入式系統(tǒng)開發(fā)典型模塊TDI輸入的4位新數(shù)據(jù)。(6Update-DR在Update-DR狀態(tài)下,由TCK上升沿驅(qū)動(dòng),數(shù)據(jù)寄存器當(dāng)中的數(shù)據(jù)將被加載到相應(yīng)的芯片管腳上去,用以驅(qū)動(dòng)芯片。在該狀態(tài)下,如果TMS為0,TAP Controller將回到Run-Test/Idle 狀態(tài);如果TMS為1,TAP Controller將進(jìn)入Select-DR-Scan狀
20、態(tài)。(7Select-IR-Scan這是一個(gè)臨時(shí)的中間狀態(tài)。如果TMS為0(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入Capture-IR狀態(tài),后續(xù)的系列動(dòng)作都將以指令寄存器作為操作對象;如果TMS為1(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入Test-Logic Reset狀態(tài)。(8Capture-IR當(dāng)TAP Controller在這個(gè)狀態(tài)中,在TCK的上升沿,一個(gè)特定的邏輯序列將被裝載到指令寄存器中去。如果TMS為0(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入Shift-IR狀態(tài);如果TMS為1(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入
21、Exit1-IR狀態(tài)。(9Shift-IR在這個(gè)狀態(tài)中,由TCK驅(qū)動(dòng),每一個(gè)時(shí)鐘周期,被連接在TDI和TDO之間的指令寄存器將從TDI接收一位數(shù)據(jù),同時(shí)通過TDO輸出一位數(shù)據(jù)。如果TMS為0(在TCK的上升沿觸發(fā),TAP Controller保持在Shift-IR狀態(tài);如果TMS為1(在TCK的上升沿觸發(fā),TAP Controller進(jìn)入到Exit1-IR狀態(tài)。假設(shè)指令寄存器的長度為4。如果TMS保持為0,那么在4個(gè)TCK時(shí)鐘周期后,指令寄存器中原來的4bit長的特定邏輯序列(在Capture-IR狀態(tài)中捕獲的特定邏輯序列將從TDO輸出來,該特定的邏輯序列可以用來判斷操作是否正確;同時(shí)指令寄存
22、器將獲得從TDI輸入的一個(gè)4bit長的新指令。(10Update IR在這個(gè)狀態(tài)中,在Shift IR狀態(tài)下輸入的新指令將被用來更新指令寄存器。下面介紹指令寄存器和數(shù)據(jù)寄存器訪問的一般過程。首先系統(tǒng)上電,TAP Controller進(jìn)入Test-Logic Reset狀態(tài),然后依次進(jìn)入:Run-Test/Idle Select-DR-ScanSelect-IR-ScanCapture-IRShift-IRExit1-IR Update-IR,最后回到Run-Test/Idle狀態(tài)。在Capture-IR狀態(tài)中,一個(gè)特定的邏輯序列被加載到指令寄存器當(dāng)中,然后進(jìn)入到Shift-IR狀態(tài)。在Shif
23、t-IR狀態(tài)下,通過TCK的驅(qū)動(dòng),可以將一條特定的指令送到指令寄存器當(dāng)中去。每條指令都將確定一條相關(guān)的數(shù)據(jù)寄存器。然后從Shift-IRExit1-IR Update-IR。在Update-IR狀態(tài),剛才輸入到指令寄存器中的指令將用來更新指令寄存器。最后,進(jìn)入到Run-Test/Idle狀態(tài),指令生效,完成對指令寄存器的訪問。然后當(dāng)前可以訪問的數(shù)據(jù)寄存器由指令寄存器中的當(dāng)前指令決定。要訪問由剛才的指令選定的數(shù)據(jù)寄存器,需要以Run-Test/Idle為起點(diǎn),依次進(jìn)入Select-DR-ScanCapture-DRShift-DRExit1-DRUpdate-DR,最后回到Run-Test/Id
24、le狀態(tài)。在這個(gè)過程當(dāng)中,被當(dāng)前指令選定的數(shù)據(jù)寄存器會被連接在TDI和TDO之間。通過TDI和TDO,就可以將新的數(shù)據(jù)加載到數(shù)據(jù)寄存器當(dāng)中去,同時(shí),也可以捕獲數(shù)據(jù)寄存器中的數(shù)據(jù)。具體過程如下。在Capture-DR 狀態(tài)中,由TCK驅(qū)動(dòng),芯片管腳上的輸出信號會被“捕獲”到相應(yīng)的邊界掃描寄存器單元中去。這樣,當(dāng)前的數(shù)據(jù)寄存器中就記錄了芯片相應(yīng)管腳上的輸出信號。接下來從Capture-DR 進(jìn)入到Shift-DR狀態(tài)中去。在Shift-DR狀態(tài)中,由TCK驅(qū)動(dòng),在每一個(gè)時(shí)鐘周期內(nèi),一位新的數(shù)據(jù)可以通過TDI串行輸入到數(shù)據(jù)寄存器當(dāng)中去,同時(shí),數(shù)據(jù)寄存器可以通過TDO串行輸出一位先前捕獲的數(shù)據(jù)。在經(jīng)過
25、與數(shù)據(jù)寄存器長度相同的時(shí)鐘周期后,就可以完成新信號的輸入和捕獲數(shù)據(jù)的輸出。接下來通過Exit1-DR狀態(tài)進(jìn)入到Update-DR狀態(tài)。在Update-DR 狀態(tài)中,數(shù)據(jù)寄存器中的新數(shù)據(jù)被加載到與數(shù)據(jù)寄存器的每個(gè)寄存器單元相連的芯片管腳上去。最后,回到Run-Test/Idle狀態(tài),完成對數(shù)據(jù)寄存器的訪問。上面就是通過TAP對數(shù)據(jù)寄存器訪問的一般流程。下面舉一個(gè)更直觀的例子?,F(xiàn)在假設(shè)TAP Controller處在Run-Test/Idle狀態(tài),指令寄存器中已經(jīng)成功地寫入了一條新的指令,該指令選定的是一條長度為6的邊界掃描鏈。下面介紹實(shí)際如何來訪問這條邊界掃描鏈。圖4.5所示的是測試芯片及其被當(dāng)
26、前指令選定的長度為6的邊界掃描鏈??梢钥闯?當(dāng)前選擇的邊界掃描鏈由6個(gè)邊界掃描移位寄存器單元組成,并且被連接在TDI和TDO之間。TCK時(shí)鐘信號與每個(gè)邊界掃描移位寄存器單元相連。每個(gè)時(shí)鐘周期可以驅(qū)動(dòng)邊界掃描鏈的數(shù)據(jù)由TDI到TDO的方向移動(dòng)一位,這樣,新的數(shù)據(jù)可以通過TDI輸入一位,邊界掃描鏈的數(shù)據(jù)可以通過TDO輸出一位。經(jīng)過6個(gè)時(shí)鐘周期,就可以完全更新邊界掃描鏈里的數(shù)據(jù),而且可以將邊界掃描鏈里的捕獲的6位數(shù)據(jù)通過TDO全部移出來。 圖4.5 測試芯片及其當(dāng)前選定的邊界掃描鏈圖4.6圖4.11表示了邊界掃描鏈的訪問過程。圖4.6表示了芯片和邊界掃描鏈的初始化狀態(tài),在測試狀態(tài)下,芯片的外部輸入和
27、輸出被隔離開了,芯片的輸入和輸出可以通過相應(yīng)的邊界掃描鏈來觀察和控制。在圖4.6中,掃描鏈里的每個(gè)移位寄存器單元的數(shù)據(jù)是不確定的,所以在圖中用X表示,整個(gè)掃描鏈里的數(shù)據(jù)序列是XXXXXX。要從TDI輸入到測試芯ARM嵌入式系統(tǒng)開發(fā)典型模塊片上的數(shù)據(jù)序列是:101010。同時(shí)要從TDO 得到芯片相應(yīng)管腳上的狀態(tài)?,F(xiàn)在TAP Controller 從Run-Test/Idle 狀態(tài)經(jīng)過Select-DR-Scan 狀態(tài)進(jìn)入到Capture-DR 狀態(tài),在Capture-DR 狀態(tài)當(dāng)中,在一個(gè)TCK 時(shí)鐘的驅(qū)動(dòng)下,芯片管腳上的信號狀態(tài)全部被捕獲到相應(yīng)的邊界掃描移位寄存器單元當(dāng)中去,如圖4.7所示。從
28、圖4.7中可以看出,在進(jìn)入Capture-DR 狀態(tài)后,經(jīng)過一個(gè)TCK 時(shí)鐘周期,掃描鏈中的數(shù)據(jù)序列變成了111000。在數(shù)據(jù)捕獲完成以后,從Capture-DR 狀態(tài)進(jìn)入到Shift-DR 狀態(tài)。在Shift-DR 狀態(tài)中,將通過6個(gè)TCK 時(shí)鐘周期來把新的數(shù)據(jù)序列101010通過TDI 輸入到邊界掃描鏈當(dāng)中去;同時(shí),將邊界掃描鏈中捕獲的數(shù)據(jù)序列111000通過TDO 輸出。在進(jìn)入到Shift-DR 狀態(tài)后,每經(jīng)過一個(gè)TCK 時(shí)鐘驅(qū)動(dòng),邊界掃描鏈從TDO 輸出一位數(shù)據(jù);同時(shí),從TDI 接收一位新的數(shù)據(jù)。圖4.8所示的是在Shift-DR 狀態(tài)下,1個(gè)TCK 時(shí)鐘周期后的掃描鏈的變化。圖4.9
29、所示的是在Shift-DR 狀態(tài)下,兩個(gè)TCK 時(shí)鐘周期后的掃描鏈的變化。此時(shí),掃描鏈已經(jīng)從TDI 串行得到了兩位新數(shù)據(jù),從TDO 也串行輸出了兩位數(shù)據(jù)。在TCK 時(shí)鐘的驅(qū)動(dòng)下,這個(gè)過程一直繼續(xù)下去。圖4.10所示的是在經(jīng)過6個(gè)TCK 時(shí)鐘周期以后掃描鏈的情況。從圖4.10中可以看到,邊界掃描鏈當(dāng)中已經(jīng)包含了新的數(shù)據(jù)序列101010。在TDO 端,經(jīng)過6個(gè)TCK 時(shí)鐘驅(qū)動(dòng)以后,也接收到了在Capture-DR 狀態(tài)下捕獲到的數(shù)據(jù)序列111000。到目前為止,雖然掃描鏈當(dāng)中包含了新的數(shù)據(jù)序列101010,但測試芯片的管腳上的狀態(tài)還是保持為111000。下一步,需要更新測試芯片相應(yīng)管腳上的信號狀態(tài)
30、。要實(shí)現(xiàn)更新,TAP Controller 從Shift-DR 狀態(tài),經(jīng)過Exit1-DR 狀態(tài),進(jìn)入到Update-DR 狀態(tài)。在Update-DR 狀態(tài)中,經(jīng)過一個(gè)周期的TCK 時(shí)鐘驅(qū)動(dòng),邊界掃描鏈中的新數(shù)據(jù)序列將被加載到測試芯片的相應(yīng)管腳上去,如圖4.11所示。從圖4.11可以看出,測試芯片的狀態(tài)已經(jīng)被更新,響應(yīng)管腳上的狀態(tài)已經(jīng)從111000變?yōu)?01010。最后從Update-DR 狀態(tài)回到Run-Test/Idle 狀態(tài),完成對選定的邊界掃描鏈的訪問。 圖4.6 邊界掃描鏈的訪問過程(1DEVICE UNDERTEST ARM 嵌入式系統(tǒng)開發(fā)典型模塊圖4.8 邊界掃描鏈的訪問過程(3
31、DEVICE UNDERTEST 圖4.10 邊界掃描鏈的訪問過程(5 在器。對于特定的指令和數(shù)規(guī)定的一些l指令寄存器允許特定的指令被裝載到指令寄存器當(dāng)中,用來選擇需要執(zhí)行的測試,或者選擇需要訪問的測試數(shù)據(jù)寄存器。每個(gè)支持JTAG調(diào)試的芯片必須包含一個(gè)指令寄存器。l Bypass寄存器Bypass寄存器是一個(gè)1位的移位寄存器,通過BYPASS指令,可以將Bypass寄存器連接到TDI和TDO之間。在不需要進(jìn)行任何測試的時(shí)候,將Bypass寄存器連接在TDI和TDO 之間,在TDI和TDO之間提供一條長度最短的串行路徑。這樣允許測試數(shù)據(jù)可以快速地通過當(dāng)前的芯片送到開發(fā)板上別的芯片上去。l Dev
32、ice identification寄存器Device identification寄存器中可以包括生產(chǎn)廠商的信息、部件號碼和器件的版本信息等。使用IDCODE指令,就可以通過TAP來確定器件的這些相關(guān)信息。l Boundary-Scan寄存器ARM嵌入式系統(tǒng)開發(fā)典型模塊Boundary-Scan寄存器就是前面例子中說到的邊界掃描鏈。通過邊界掃描鏈,可以進(jìn)行部件間的連通性測試。當(dāng)然,更重要的是可以對測試器件的輸入輸出進(jìn)行觀測和控制,以達(dá)到測試器件的內(nèi)部邏輯的目的。INTEST指令是在IEEE 1149.1標(biāo)準(zhǔn)里面定義的一條很重要的指令:結(jié)合邊界掃描鏈,該指令允許對開發(fā)板上器件的系統(tǒng)邏輯進(jìn)行內(nèi)部
33、測試。在ARM JTAG 調(diào)試當(dāng)中,這是一條頻繁使用的測試指令。前面講過,寄存器分為兩大類:指令寄存器和數(shù)據(jù)寄存器。上面提及的Bypass寄存器、Device Identification寄存器和Boundary-scan寄存器(邊界掃描鏈,都屬于數(shù)據(jù)寄存器。JTAG必須實(shí)現(xiàn)的指令有3條:Sample/Preload、Extest和Bypass。其詳細(xì)描述見表4.2。JTAG指令系統(tǒng)的擴(kuò)展性很強(qiáng),設(shè)計(jì)者可以根據(jù)需要插入任意條自定義指令。同時(shí)JTAG標(biāo)準(zhǔn)本身定義了一些可選指令,加強(qiáng)了測試能力。表4.2 JTAG指令 ARM 嵌入式系統(tǒng)開發(fā)典型模塊4.4 JTAG 接口的定義目前,JTAG 接口的
34、連接有2種標(biāo)準(zhǔn),即14針接口和20 針接口,其接口形狀圖核接口定義分別如圖4.12和圖4.13所示。圖4.12 14針JTAG 接口14針JTAG 接口的接口定義如表4.3所示。20針JTAG 接口的形狀如圖4.13所示。圖4.13 20針JTAG 接口20針JTAG 接口的接口定義如表4.4所示。表4.420針JTAG 接口定義引腳名稱描述1VTref目標(biāo)板參考電壓,接電源2 VCC 接電源3 nTRST 測試系統(tǒng)復(fù)位信號4、6、8、10、12、14、16、18、20 GND 接地5 TDI 測試數(shù)據(jù)串行輸入7 TMS 測試模式選擇9 TCK 測試時(shí)鐘11 RTCK 測試時(shí)鐘返回信號13 T
35、DO 測試數(shù)據(jù)串行輸出15 nRESET 目標(biāo)系統(tǒng)復(fù)位信號17、19 NC 未連接4.5 JTAG接口的應(yīng)用通過JTAG接口可以進(jìn)行嵌入式系統(tǒng)電路板及芯片的測試,也可以實(shí)現(xiàn)對電路板上的Flash編程。要通過JTAG接口對系統(tǒng)板上Flash編程,可以利用專用的硬件控制器或獨(dú)立的編程器來訪問JTAG器件實(shí)現(xiàn),也可以直接用電纜線把PC機(jī)并行口與嵌入式系統(tǒng)的微處理器的JTAG引腳連接起來,由PC機(jī)上的程序模擬JTAG時(shí)序?qū)崿F(xiàn)。嵌入式系統(tǒng)的Flash芯片的地址線、數(shù)據(jù)線和控制信號線接到嵌入式系統(tǒng)帶JTAG接口的微處理器相應(yīng)引腳上。在對Flash編程時(shí),PC機(jī)上運(yùn)行的程序控制PC機(jī)發(fā)送指令或數(shù)據(jù)到嵌入式系
36、統(tǒng)微處理器內(nèi)部的邊界掃描寄存器里,再把此數(shù)據(jù)或指令通過JTAG專用指令傳送給Flash,從而將代碼寫入Flash中。設(shè)計(jì)一個(gè)遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)。采用三星公司的S3C44B0X型微處理器,該微處理器帶有JTAG接口,利用該接口可對Flash寫入數(shù)據(jù)。連接如圖4.14所示。使用PC機(jī)并行接口中的幾條數(shù)據(jù)線和一條信號線與嵌入式系統(tǒng)的S3C44B0X型微處理器的JTAG接口相連,讀寫Flash的控制信號由微處理器產(chǎn)生,微處理器的JTAG指令有10條,其中EXTEST指令將選擇的掃描鏈置為測試模式,BYPASS指令在TDI和TDO之間連接一個(gè)1位移位寄存器和一個(gè)旁路寄存器。這2條指令是1EEE 1149.1標(biāo)準(zhǔn)規(guī)定的,對幾乎所有JTAG兼容芯片,這2條指令操作碼相同,分別為0000和1111。該采集系統(tǒng)采用SST的29EE010作為系統(tǒng)程序存儲Flash,存儲數(shù)據(jù)以字節(jié)為單位。它有1024頁,每頁有128B,存儲容量為128KB。對Flash編程時(shí),一般先要檢查Flash設(shè)備的識別碼,然后執(zhí)行擦除命令,在擦除完成后,進(jìn)行寫入數(shù)據(jù)。結(jié)合29E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 1584-2023 低壓電源系統(tǒng)的電涌保護(hù)器(SPD)
- 二零二五年度專業(yè)技術(shù)師徒傳承合作合同
- 2025年度門店合作線上線下融合營銷協(xié)議
- 二零二五年度不占股份分紅權(quán)益共享協(xié)議
- 二零二五年度招商引資合同中的政府與企業(yè)合作模式創(chuàng)新
- 2025年度終止供貨協(xié)議函范文模板與簽訂程序指導(dǎo)
- 二零二五年度綠色建筑產(chǎn)業(yè)廠房租賃服務(wù)協(xié)議
- 二零二五年度勞動(dòng)合同法未簽訂合同員工競業(yè)禁止協(xié)議
- 二零二五年度物業(yè)安全管理人員勞動(dòng)合同范本
- 二零二五年度消防安全設(shè)施設(shè)備安全評估與整改服務(wù)合同
- 《Spring框架》教學(xué)課件
- 2025年中考英語時(shí)文閱讀 6篇有關(guān)電影哪吒2和 DeepSeek的英語閱讀(含答案)
- 俞敏洪四級詞匯詞根聯(lián)想記憶法亂序wordlist
- 第四次工業(yè)革命ppt課件
- 水利工程水庫混凝土防滲墻施工方案
- 公路工程試驗(yàn)常規(guī)檢測項(xiàng)目、檢測標(biāo)準(zhǔn)、檢測頻率、取樣方法(標(biāo)準(zhǔn)版)
- 圖解調(diào)音臺使用說明(共14頁)
- 員工人事檔案登記表(最終版)
- 服裝測量方法及圖示
- 地基承載力與擊數(shù)對照表(輕)
- 大連理工大學(xué)機(jī)械制圖習(xí)題集答案
評論
0/150
提交評論