測試訪問口TAP
TAP(TestAccessPort)是一個(gè)通用的端口,通過TAP 可以訪問芯片提供的所有數(shù)據(jù)寄存器(DR)和指令寄存器(IR)。對(duì)整個(gè)TAP的控制是通過TAP控制器(TAPController)來完成的。下面先 分別介紹一下TAP的幾個(gè)接口信號(hào)及其作用。其中,前4個(gè)信號(hào)在IEEE1149.1標(biāo)準(zhǔn)里是強(qiáng)制要求的。
TCK:時(shí)鐘信號(hào),為TAP的操作提供了一個(gè)獨(dú)立的、基本的時(shí)鐘信號(hào)。
TMS:模式選擇信號(hào),用于控制TAP狀態(tài)機(jī)的轉(zhuǎn)換。
TDI:數(shù)據(jù)輸入信號(hào)。
TDO:數(shù)據(jù)輸出信號(hào)。
TRST:復(fù)位信號(hào),可以用來對(duì)TAPController進(jìn)行復(fù)位(初始化)。這個(gè)信號(hào)接口在IEEE1149.1標(biāo)準(zhǔn)里并不是強(qiáng)制要求的,因?yàn)橥ㄟ^TMS也可以對(duì)TAPController進(jìn)行復(fù)位。
STCK:時(shí)鐘返回信號(hào),在IEEE1149.1標(biāo)準(zhǔn)里非強(qiáng)制要求。
簡單地說,PC機(jī)對(duì)目標(biāo)板的調(diào)試就是通過TAP接口完成對(duì)相關(guān)數(shù)據(jù)寄存器(DR)和指令寄存器(IR)的訪問。
系統(tǒng)上電后,TAPController 首先進(jìn)入 Test-LogicReset 狀態(tài),然后依次進(jìn)入Run-Test/Idle、Selcct-DR- Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exitl-IR、Update-IR狀態(tài),最后回到 Run- Tcst/Idle 狀態(tài)。在此過程中,狀態(tài)的轉(zhuǎn)移都是通過TCK信號(hào)進(jìn)行驅(qū)動(dòng)(上升沿),通過TMS信號(hào)對(duì)TAP的狀態(tài)進(jìn)行選擇轉(zhuǎn)換的。其中,
在 Capture-IR狀態(tài)下,一個(gè)特定的邏輯序列被加載到指令寄存器中;
在Shift-IR狀態(tài)下,可以將一條特定的指令送到指令寄存器中;
在 Update—IR狀態(tài)下,剛才輸入到指令寄存器中的指令將用來更新指令寄存器。
最后,系統(tǒng)又回到Run—Test/Idle狀態(tài),指令生效,完成對(duì)指令寄存器的訪問。
當(dāng)系統(tǒng)又返回到Run—Test/Idle狀態(tài)后,根據(jù)前面指令寄存器的內(nèi)容選定所需要的數(shù)據(jù)寄存器,開始執(zhí)行對(duì)數(shù)據(jù)寄存器的工作。其基本原理與指令寄存器的訪問完全相同,依次為seIect—DR—Scan、Capture—DR、Shift—D、Exitl一DR、Update—DR, 最后回到 Run-Tcst/Idle 狀態(tài)。通過TDl和TDO,就可以將新的數(shù)據(jù)加載到數(shù)據(jù)寄存器中。經(jīng)過一個(gè)周期后,就可以捕獲數(shù)據(jù)寄存器中的數(shù)據(jù),完 成對(duì)與數(shù)據(jù)寄存器的每個(gè)寄存器單元相連的芯片引腳的數(shù)據(jù)更新,也完成了對(duì)數(shù)據(jù)寄存器的訪問。
Keil、IAR、DS-5、ADS開發(fā)工具軟件等都有一個(gè)公共的調(diào)試接口RDI,那么我們?nèi)绾瓮瓿?RDI -》JTAG調(diào)試協(xié)議的轉(zhuǎn)換呢?兩種做法:
在電腦上寫一個(gè)服務(wù)程序,把Keil、IAR、DS-5中的RDI命令解析成相關(guān)的JTAG協(xié)議,然后通后一個(gè)物理轉(zhuǎn)換接口(注意,這個(gè)轉(zhuǎn)換只是電氣物理層上的轉(zhuǎn)換,就像RS232那樣的作用)發(fā)送你的的目標(biāo)板。H-JTAG就是這樣的。H-JTAG的硬件就僅是一個(gè)物理電平的轉(zhuǎn)換接口,所以很簡單。 而電腦中裝的H-JTAG軟件就是前面說到的服務(wù)程序,負(fù)責(zé)協(xié)議轉(zhuǎn)換的。
做一個(gè)板,用此板直接接收來自Keil、IAR、DS-5等軟件的調(diào)試命令,由此板做RDI -》 JTAG協(xié)議的轉(zhuǎn)換。然后與目標(biāo)板通信,這就是JLINK、ULINK2等仿真器的工作原理。
由上可以看出,H-JTAG由于是軟件作協(xié)議轉(zhuǎn)換的,所以速度較慢,但是硬件簡單。而第二種方法的JLINK一般帶一個(gè)強(qiáng)勁的CPU,作硬件協(xié)議轉(zhuǎn)換,把以硬件復(fù)雜,但速度快。目前,市場上的JTAG接口仿真器有14引腳和20引腳兩種。其中,以20引腳為主流標(biāo)準(zhǔn),但也有少數(shù)的目標(biāo)板采用14引腳。經(jīng)過簡單的信號(hào)轉(zhuǎn)換后,可以將它們通用。
評(píng)論