嵌入式系統(tǒng)基礎教程JTAG技術應用_第1頁
嵌入式系統(tǒng)基礎教程JTAG技術應用_第2頁
嵌入式系統(tǒng)基礎教程JTAG技術應用_第3頁
嵌入式系統(tǒng)基礎教程JTAG技術應用_第4頁
嵌入式系統(tǒng)基礎教程JTAG技術應用_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

嵌入式系統(tǒng)基礎教程JTAG技術應用2第3章嵌入式微處理器技術基礎本章主要介紹以下內容:嵌入式微處理器典型技術主流嵌入式微處理器嵌入式處理器的調試技術邊界掃描測試技術JTAG33.4邊界掃描測試接口JTAGJTAG是一種片上調試接口,即OCD接口。OCD英文原文:On-ChipDebuggingInterfaceJTAG的建立使得集成電路固定在PCB(PrintedCircuitBoard,印刷電路板)上,只通過邊界掃描便可以被測試。含有JTAG口的芯片種類較多,如CPU、DSP、CPLD/FPGA等,廣泛得到應用。43.4.1測試摩爾定律1999年英特爾公司的副總裁PatrickCelsinger先生在美國大西洋城舉行的國際測試會議上提出了測試摩爾定律,并就此了講演。該定律預測未來幾年,每一晶體管的硅投資成本將低于其測試成本。PatrickCelsinger先生指出,硅成本已迅速下降,測試成本卻基本保持不變。并且,被測器件的速度常常比測試設備能測的速度高。也就是說,測試設備的發(fā)展速度已跟不上測試對象的發(fā)展。同時,測試成本在制造成本中所占比例過大。

53.4.2JTAG基本概念JTAG是JointTestActionGroup(聯(lián)合測試行動組)的縮寫,聯(lián)合測試行動組是IEEE的一個下屬組織該組織研究標準測試訪問接口和邊界掃描結構(StandardTestAccessPortandBoundary-ScanArchitecture)JTAG的研究成果被接納為IEEE1149.1-1990規(guī)范JTAG成為電子行業(yè)的一種國際測試標準現(xiàn)在,人們通常用JTAG來表示IEEE1149.1-1990規(guī)范,或者滿足IEEE1149規(guī)范的接口或者測試方法。6JTAG掃描循環(huán)示意圖7邊界掃描單元JTAG標準定義了一個串行的移位寄存器寄存器的每一個單元分配給IC芯片的相應引腳每一個獨立的單元稱為BSC(Boundary-ScanCell)邊界掃描單元這個串聯(lián)的BSC在IC內部構成JTAG回路所有的BSR(Boundary-ScanRegister)邊界掃描寄存器通過JTAG測試激活8ARM的JTAG調試結構9ARM7TDMI調試結構(英文)10ARM調試系統(tǒng)說明調試系統(tǒng)一般包括3部分:調試主機是運行軟件調試器的計算機例如ADW,ARMDebuggerforWindows調試主機允許發(fā)出高級命令,如設置斷點或檢查存儲器內容。協(xié)議轉換器處理調試主機和ARM7TDMI處理器JTAG接口之間的通訊包括調試主機發(fā)出的高級命令以及JTAG接口的低級命令。一般通過增強型并行口進行連接。11ARM調試系統(tǒng)說明(續(xù))調試目標ARMCPU主處理器邏輯:對調試有硬件支持。嵌入式ICE-RT邏輯:這是用于產(chǎn)生調試異常(如斷點)的寄存器和比較器的集合。TAP控制器:用JTAG串行接口控制掃描鏈的動作。12協(xié)議轉換器的調試擴充功能ARM7TDMI具有易于在最低層調試的硬件擴充,其調試擴充功能如下列出:允許暫停程序的執(zhí)行;檢查和修改內核的內部狀態(tài);查看和修改存儲器系統(tǒng)的狀態(tài);執(zhí)行中止異常,允許實時的內核監(jiān)控;重新開始程序執(zhí)行。133.4.3ARM7TDMI掃描鏈布局14ARM7TDMI內核掃描鏈結構113位38位33位15JTAG接口的IC內部結構16JTAG狀態(tài)轉換圖17JTAG信號TMS:測試模式選擇(TestModeSelect)通過TMS信號控制JTAG狀態(tài)機的狀態(tài)。TCK:JTAG的時鐘信號TDI:數(shù)據(jù)輸入信號TDO:數(shù)據(jù)輸出信號nTRST:JTAG復位信號,復位JTAG的狀態(tài)機和內部的宏單元(Macrocell)。183.4.4TAP控制器TAP控制器內部有多個寄存器測試數(shù)據(jù)寄存器JTAG控制指令寄存器旁路寄存器ARM7TDMI器件識別碼(ID)寄存器掃描路徑選擇寄存器19JTAG的TAP控制器結構20測試數(shù)據(jù)寄存器在TDI和TDO之間可以連接的測試數(shù)據(jù)寄存器有如下8個:指令寄存器;旁路寄存器;ARM7TDMI的器件識別(ID)碼寄存器;掃描路徑選擇寄存器;掃描鏈0、1、2和3。21JTAG控制指令寄存器JTAG接口中指令寄存器長度是4位在指令寄存器共安排10條控制指令,見下表。指令二進制指令二進制EXTEST0000HIGHZ0111SCAN_N0010CLAMPZ1001SAMPLE/PRELOAD0011INTEST1100RESTART0100IDCODE1110CLAMP0101BYPASS111122JTAG的指令寄存器在SHIFT-IR態(tài),將指令寄存器選做TDI和TDO之間串行路徑。見(a)在UPDATE-IR態(tài),指令寄存器的值成為當前指令。見(b)在CAPTURE-IR態(tài),將b0001加載到該寄存器。該值在SHIFT-IR態(tài)移位輸出。見(c)復位時,IDCODE(b1110)成為當前指令。見(d)指令寄存器的最低有效位首先被掃描輸入和輸出。指令寄存器TDITDOSHIFT-IR狀態(tài)(a)指令寄存器值=0001CAPTURE-IR狀態(tài)(c)TDITDO當前指令寄存器TDITDOUPDATE-IR狀態(tài)(b)當前指令寄存器IDCODE=0001IDCODE-IR狀態(tài)(d)TDITDO23旁路寄存器功能:通過提供TDI和TDO之間的路徑,在掃描測試期間對器件旁路。長度:1位操作方式:當BYPASS指令是指令寄存器中的當前指令時,串行數(shù)據(jù)在SHIFT-DR態(tài)以1個TCK周期的延遲從TDI傳到TDO。旁路寄存器沒有并行輸出。在CAPTURE-DR態(tài),從旁路寄存器的并行輸入端裝入“0”。24ARM7TDMI器件

識別碼(ID)寄存器識別碼用途:讀32位器件識別碼。不提供可編程的識別碼。長度:32位。寄存器的格式如下圖所示。操作方式當IDCODE指令是當前指令時,將ID寄存器選做TDI和TDO之間的串行路徑。ID寄存器沒有并行輸出。在CAPTURE-DR態(tài),32位器件識別碼從其并行輸入端加載到ID寄存器。寄存器的最低有效位首先被掃描輸出。版本4位部件編號16位制造者標識12位031112825掃描路徑選擇寄存器用途和長度變換當前活動的掃描鏈,4位。操作方式僅當執(zhí)行了一條SCAN_N指令或當發(fā)生復位時,當前所選的掃描鏈改變。復位時,將掃描鏈0選做活動的掃描鏈。在SHIFT-DR態(tài),SCAN_N指令把掃描路徑選擇寄存器作為TDI和TDO之間的串行數(shù)據(jù)移位路徑。在CAPTURE-DR態(tài),將b1000加載到該寄存器。這個值在SHIFT-DR態(tài)加載輸出,同時裝入新值。在UPDATE-DR態(tài),由寄存器中的值選擇一個掃描鏈成為當前活動的掃描鏈。所有進一步的指令(如INTEST)都應用到該掃描鏈上。26掃描鏈編號分配掃描鏈編號功能0宏單元掃描測試1調試2嵌入式ICE-RT邏輯編程3外部邊界掃描(由ASIC設計者實現(xiàn))4保留8保留273.4.5JTAG掃描鏈工作原理JTAG掃描鏈由掃描單元組成每一個被測試邏輯電路引出信號線同它的引腳之間配置一個掃描單元每一個掃描單元的內部由兩個D觸發(fā)器和兩個多路選擇器組成分別把邏輯電路輸入輸出線同引腳之間的穿越掃描單元的電流方向成為橫向,沿掃描單元串接線運動的電流方向成為縱向。JTAG掃描鏈一共有四種操作:掛起、捕獲、移位和更新。28JTAG掃描單元構造縱向縱向橫向橫向橫向四種操作:掛起,移位,俘獲,更新29JTAG掃描鏈的組成LogicPinPinPinPinLogicLogicLogicLogic縱向橫向PinPinLogic30JTAG處于掛起狀態(tài)橫向直行橫向直行如同掃描鏈不存在31捕獲JTAG狀態(tài)當前引腳信號的快照存入掃描鏈32移位數(shù)據(jù)縱向直行此刻處理器的工作脈沖暫停33移位結束縱向直行此刻處理器的工作脈沖暫停34數(shù)據(jù)更新JTAG掃描鏈取代系統(tǒng)向處理器輸入信號,并且替代處理器向系統(tǒng)輸出信號。35掃描鏈0ScanChain0:有113個掃描單元,包括ARM核的所有的I/O、地址數(shù)據(jù)總線和輸入輸出控制信號。這條鏈上的信號復雜,不易控制,但是包含的信息豐富,可以通過這條鏈得到ARM7TDMI內核的所有信息。從查詢數(shù)據(jù)輸入到輸出,掃描鏈的順序為:(1)數(shù)據(jù)總線位[0]-位[31];(2)內核控制信號;(3)地址總線位[31]-位[0];(4)嵌入式ICE-RT控制信號。嵌入式ICE-RT控制信號(特別是DBGRQI)首先被掃描輸出。36掃描鏈0單元編號信號類型編號信號類型1~32D[0]~D[31]輸入/輸出41BL[0]輸入33BREAKPT輸入42BL[1]輸入34NENIN輸入43BL[2]輸入35NENOUT輸出44BL[3]輸入36LOCK輸出45DCTL輸出37BIGEND輸入46nRW輸出38DBE輸入47DBGACK輸出39MAS[0]輸出48CGENDBGACK輸出40MAS[1]輸出49nFIQ輸入37掃描鏈0單元(續(xù)1)編號信號類型編號信號類型50nIRQ輸入59nMREQ輸出51nRESET輸入60SEQ輸入52ISYNC輸入61nTRANS輸入53BRGRQ輸入62CPB輸入54ABORT輸入63nM[4]輸出55CPA輸入64nM[3]輸出56nOPC輸出65nM[2]輸出57IFEN輸入66nM[1]輸出58nCPI輸出67nM[0]輸出38掃描鏈0單元(續(xù)2)編號信號類型編號信號類型68nEXEC輸出69ALE輸出70ABE輸入71APE輸入72TBIT輸出73nWAIT輸入74~105A[31]~A[0]輸出106~113ICE-RT信號39掃描鏈1掃描鏈1:有33個掃描單元,包括ARM核的數(shù)據(jù)總線和一個斷點控制信號。這是一條很有用的鏈,通過控制這條鏈,可以控制ARM核執(zhí)行指定的指令,從而實現(xiàn)對ARM的內部寄存器、協(xié)處理器以及外部存儲器的讀寫操作。40掃描鏈1(續(xù))掃描鏈1的前32位用于數(shù)據(jù)值,加上在BREAKPT內核輸入上的掃描單元。第33位有如下4個用途:在正常INTEST測試條件下,允許將已知值掃描到BREAKPT的輸入。在EXTEST測試條件下,捕獲從系統(tǒng)加到BREAKPT輸入的值。在調試期間,第33位的值決定在執(zhí)行指令之前ARM7TDMI核是否同步回系統(tǒng)速度。ARM7TDMI核進入調試狀態(tài)后,該位第一次被捕獲并被掃描輸出。其值告訴調試器內核是否由斷點(位[33]清零)或由觀察點(位[33]置位)進入調試狀態(tài)。41掃描鏈2ScanChain2共有38個掃描單元,通過控制EmbeddedICE宏單元,實現(xiàn)對ARM執(zhí)行指令的斷點、觀察點的控制。從TDI到TDO的掃描鏈次序如下:讀/寫;寄存器地址位[4]-位[0];數(shù)據(jù)值位[31]-位[0]。423.4.6嵌入式ICE-RT邏輯嵌入式ICE-RT邏輯也稱為EmbeddedICE或者EmbeddedICE-RT,其主要功能是為ARM7TDMI核提供集成的在線調試支持。ARM公司的片上測試部件。使用ARM7TDMI的TAP控制器來控制嵌入式ICE-RT邏輯的串行數(shù)據(jù)輸入。下圖給出了內核、嵌入式ICE-RT邏輯和TAP控制器之間的關系。圖中僅顯示了有關的信號。43嵌入式ICE-RT連線結構圖44嵌入式ICE-RT邏輯的組成嵌入式ICE-RT邏輯的組成如下:2個實時觀察點單元;3個獨立的寄存器:調試控制寄存器、調試狀態(tài)寄存器、中止狀態(tài)寄存器;調試通信通道DCC(DebugCommunicationsChannel)。45嵌入式ICE-RT邏輯的組成(續(xù))調試控制寄存器和調試狀態(tài)寄存器提供嵌入式ICE-RT操作的所有控制。在選擇監(jiān)控模式時使用中止狀態(tài)寄存器??梢跃幊?個或2個觀察點單元來暫停內核程序的執(zhí)行。當編程進入嵌入式ICE-RT的值與當前出現(xiàn)在地址總線、數(shù)據(jù)總線和各種控制信號的值匹配時,暫停執(zhí)行。46EmbeddedICE的數(shù)據(jù)結構EmbeddedICE是集成在ARM內核中的嵌入式ICE仿真器。其結構如下圖所示。通過對EmbeddedICE的控制,對EmbeddedICE中寄存器的讀取,可以獲得ARM內核的狀態(tài),為程序設置斷點以及讀取Debug通訊通道。EmbeddedICE的串行數(shù)據(jù)長度是38位,包括:32位數(shù)據(jù)5位的訪問EmbeddedICE中寄存器的地址1個讀寫控制位47EmbeddedICE結構EmbeddedICE掃描鏈共38位48EmbeddedICE的寄存器地址寬度功能地址寬度功能000006Debugcontrol011009Watchpoint0controlvalue000015Debugstatus011018Watchpoint0controlmask000101Abortstatus1000032Watchpoint1addressvalue001006Debugcommandscontrolregister1000132Watchpoint1addressmask0010132Debugcommandsdataregister100102Watchpoint1datavalue0100032Watchpoint0addressvalue1001132Watchpoint1datamask0100132Watchpoint0addressmask101009Watchpoint1controlvalue0101032Watchpoint0datavalue101018Watchpoint1controlmask0101132Watchpoint0datamask49Watchpoint寄存器的使用

EmbeddedICE的一個主要作用就是可以在ARM的程序中設置軟件或者硬件的斷點。在EmbeddedICE中,集成了一個比較器,比較器負責把ARM處理器取指的地址A[31:0]、數(shù)據(jù)D[31:0]以及一些控制信號與EmbeddedICE中Watchpoint寄存器中設置的數(shù)值相比較具體的說應該是進行同或運算比較的結果用來確定輸出一個ARM的斷點(Breakpoint)信號。具體的運算關系如下公式所描述:({Av[31:0],Cv[4:0]}XNOR{A[31:0],C[4:0]})OR{Am[31:0],Cm[4:0]}==0x1FFFFFFFFF50EmbeddedICE斷點信號條件當上述表達式為真的時候,斷點信號有效,ARM的內核就進入了Debug模式。在Debug模式下,ARM內核的時鐘從系統(tǒng)的主時鐘(MCLK)被替換成跟蹤時鐘(DCLK)。跟蹤時鐘(DCLK)是通過在JTAG的狀態(tài)機的Run-test/Idle狀態(tài)的TCK來控制的。

51Watchpoint表達式的含義

信號說明Av[31:0]Watchpoint中地址寄存器(Addressregister)的數(shù)據(jù)Am[31:0]Watchpoint中地址mask寄存器(addressmaskregister)的數(shù)據(jù)A[31:0]從ARM7TDMI的核中得到的總線的地址,也就是當前處理器取址的地址Dv[31:0]Watchpoint中數(shù)據(jù)寄存器(dataregister)中的數(shù)據(jù)Dm[31:0]Watchpoint中數(shù)據(jù)mask寄存器(datamaskregister)的數(shù)據(jù)D[31:0]從ARM7TDMI的核中得到的總線的數(shù)據(jù),也就是當前處理器取址所到的數(shù)據(jù)Cv[8:0]Watchpoint中控制寄存器(controlregister)中的數(shù)據(jù)Cm[7:0]Watchpoint中控制mask寄存器(controlmaskregister)中的數(shù)據(jù)C[9:0]ARM7TDMI的控制總線523.4.7ARM7TDMI斷點的設置ARM中斷點的設置主要是設置EmbeddedICE中的寄存器主要包括:設置EmbeddedICE的兩個watchpoint單元的地址、數(shù)據(jù)或控制信號寄存器。當一個(或者兩個)watchpoint寄存器滿足條件的時候,ARM就從運行狀態(tài)進入Debug狀態(tài)。也就是與ARM中的地址(也可以包括數(shù)據(jù))和ARM所執(zhí)行的當前的指令相同的時候53硬件斷點和軟件斷點在ARM7TDMI處理器的內核中,有兩種斷點的設置方式:硬件斷點和軟件斷點硬件斷點通過設置EmbeddedICE中的Watchpoint寄存器中的地址相關的寄存器,來實現(xiàn)斷點。通過這種方式設置斷點,斷點數(shù)目受EmbeddedICE中的Watchpoint數(shù)目的限制(在ARM7TDMI處理器的內核中,只有兩組Watchpoint寄存器,最多只能設置兩個硬件斷點)。硬件斷點可以在任何地方設置。不受存儲器類型的限制。54軟件斷點軟件斷點的實現(xiàn)比較復雜,需要如下幾個步驟:通過設置EmbeddedICE中的Watchpoint寄存器中的數(shù)據(jù)相關寄存器(datavalue和datamaskvalue)為一個特殊的32位數(shù)字—ARM的未定義指令,比如:0x06000010。替換RAM中的指令為上面所設置的那個未定的指令0x06000010,作為一個標志。當系統(tǒng)運行到RAM中所設定的單元位置時候,那個事先設置的標志數(shù)字將被當作一個指令讀入處理器的內核。55軟件斷點(續(xù))此時,系統(tǒng)所讀入的指令的數(shù)據(jù)剛好和datavalue中的數(shù)字相吻合,系統(tǒng)就進入了Debug模式。這就是軟件斷點的工作過程。軟件斷點的數(shù)目不受ARM內核的Watchpoint數(shù)目的限制,不管系統(tǒng)設置多少個軟件斷點,僅僅使用了ARM內核的一個Watchpoint資源。軟件斷點是通過替換系統(tǒng)的斷點地址的指令實現(xiàn)的,所以,軟件斷點只能在可寫的存儲器的地址中設置(比如:RAM),而不能在ROM(比如:Flash)中設置。56斷點設置小結總之,在有兩個Watchpoint資源的ARM7TDMI的內核中,斷點可以有如下情況:2個硬件斷點,沒有軟件斷點1個硬件斷點,任意多個軟件斷點任意多個軟件斷點573.4.8ARM調試接口ARM7TDMI調試接口基于IEEE標準1149.1-1990以及標準測試訪問口和邊界掃描體系結構(StandardTestAccessPortandBoundary-ScanArchitecture)。調試擴充可強迫內核進入下列模式之一:暫停模式(調試模式):在斷點或觀察點,內核進入調試狀態(tài)。在調試狀態(tài),內核停止工作并與系統(tǒng)的其它部分隔離。當調試完成后,調試主機恢復內核和系統(tǒng)狀態(tài),程序重新開始執(zhí)行。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論