JTAG接口
時間:2018-03-08作者:華清遠見
JTAG是(Joint Test Action Group(聯合測試行為組織))的英文縮寫,該組織成立于1985 年,是由幾家主要的電子制造商發起制訂的PCB 和IC 測試標準。JTAG 主要應用于:電路的邊界掃描測試和可編程芯片的在線系統編程。 JTAG的發展: JTAG現在發展已經成為了一種標準測試協議,主要用于芯片內部測試。現今多數的高級器件都支持JTAG協議,如DSP、FPGA、ARM、部分單片機器件等。標準的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數據輸入和數據輸出線。相關JTAG引腳的定義為:TCK為測試時鐘輸入;TDI為測試數據輸入,數據通過TDI引腳輸入JTAG接口;TDO為測試數據輸出,數據通過TDO引腳從JTAG接口輸出;TMS為測試模式選擇,TMS用來設置JTAG接口處于某種特定的測試模式;TRST為測試復位,輸入引腳,低電平有效。GND TI還定義了一種叫SBW-JTAG的接口,用來在引腳較少的芯片上通過最少的利用引腳實現JTAG接口,它只有兩條線,SBWTCK,SBWTDIO。實際使用時一般通過四條線連接,VCC,SBWTCK,SBWTDIO,GND,這樣就可以很方便的實現連接,又不會占用大量引腳。比如STM32/8系列的芯片調試就有Serial wire調試模式,使用該方法可以在僅用4根線的情況下對芯片進行程序下載和單步調試等功能。 JATG的作用和原理: 一個含有JTAG Debug接口模塊的CPU,只要時鐘正常,就可以通過JTAG接口訪問CPU的內部寄存器和掛在CPU總線上的設備,如FLASH,RAM,SOC(比如4510B,44Box,AT91M系列)內置模塊的寄存器,像UART,Timers,GPIO等等的寄存器。 JTAG中輸入/輸出的捕獲/模擬使用的是邊界掃描技術。 邊界掃描(Boundary-Scan)技術的基本思想是在靠近芯片的輸入/輸出引腳上增加一個移位寄存器單元,也就是邊界掃描寄存器(Boundary-Scan Register)。 當芯片處于調試狀態時,邊界掃描寄存器可以將芯片和外圍的輸入/輸出隔離開來。通過邊界掃描寄存器單元,可以實現對芯片輸入/輸出信號的觀察和控制。對于芯片的輸入引腳,可以通過與之相連的邊界掃描寄存器單元把信號(數據)加載到該引腳中去;對于芯片的輸出引腳,也可以通過與之相連的邊界掃描寄存器“捕獲”該引腳上的輸出信號。在正常的運行狀態下,邊界掃描寄存器對芯片來說是透明的,所以正常的運行不會受到任何影響。這樣,邊界掃描寄存器提供了一 種便捷的方式用于觀測和控制所需調試的芯片。另外,芯片輸入/輸出引腳上的邊界掃描(移位)寄存器單元可以相互連接起來,任芯片的周圍形成一個邊界掃描鏈 (Boundary-Scan Chain)。邊界掃描鏈可以串行地輸入和輸出,通過相應的時鐘信號和控制信號,就可以方便地觀察和控制處在調試狀態下的芯片。 JTAG接口: 通常所說的JTAG大致分兩類,一類用于測試芯片的電氣特性,檢測芯片是否有問題;一類用于Debug;一般支持JTAG的CPU內都包含了這兩個模塊。 上面說的只是JTAG接口所具備的能力,要使用這些功能,還需要軟件的配合,具體實現的功能則由具體的軟件決定。 通過JTAG下載程序前應關閉所有中斷,在使用JTAG接口的時候,各中斷的使能未知,尤其是FLASH里有可執行碼的情況,可能會有一些中斷被使能。使用JTAG下載完代碼,要執行時,有可能因為未完成初始化就產生了中斷,導致程序異常。所以,需要先關閉中斷,一般通過設置SOC的中斷控制寄存器完成。 現如今使用JTAG對于ARM系列芯片,在需要燒寫大量數據時,一般先會制作一段特殊的代碼,比如U-boot集成這些功能,可以調試和下載程序,甚至可以使用多種手段,如使用串口,USB,網卡等方式下載,極大的提高了程序燒寫的速度,特別是在下載和移植系統的時候效果尤為明顯。 相關資訊
發表評論
|