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