新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > JTAG基本原理及仿真器性能比較

JTAG基本原理及仿真器性能比較

作者: 時(shí)間:2008-05-07 來(lái)源:網(wǎng)絡(luò) 收藏
摘要 簡(jiǎn)要介紹概念及主要應(yīng)用;以簡(jiǎn)易為例、通過(guò)對(duì)JD4480X和STR710目標(biāo)板的圖進(jìn)行對(duì)比分析,詳細(xì)介紹JTAG的工作;并對(duì)簡(jiǎn)易JTAG與進(jìn)行了分析
關(guān)鍵詞 JTAG ARM


JTAG(Joint Test Action Group,聯(lián)合測(cè)試行動(dòng)組)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議(IEEE 1149.1兼容)。標(biāo)準(zhǔn)的JTAG接口是4線――TMS、TCK、TDI、TDO,分別為模式選擇、時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。
JTAG的主要功能有兩種,或者說(shuō)JTAG主要有兩大 類:一類用于測(cè)試芯片的電氣特性,檢測(cè)芯片是否有問(wèn)題;另一類用于Debug,對(duì)各類芯片以及其外圍設(shè)備進(jìn)行調(diào)試。一個(gè)含有JTAG Debug接口模塊的CPU,只要時(shí)鐘正常,就可以通過(guò)JTAG接口訪問(wèn)CPU的內(nèi)部寄存器、掛在CPU總線上的設(shè)備以及內(nèi)置模塊的寄存器。本文主要介紹的是Debug功能。

1 JTAG分析
簡(jiǎn)單地說(shuō),JTAG的工作原理可以歸結(jié)為:在器件內(nèi)部定義一個(gè)TAP(Test Access Port,測(cè)試訪問(wèn)口),通過(guò)專用的JTAG測(cè)試工具對(duì)內(nèi)部節(jié)點(diǎn)進(jìn)行測(cè)試和調(diào)試。首先介紹一下邊界掃描和TAP的概念和內(nèi)容。
1.1 邊界掃描
邊界掃描(Boundary-Scan)技術(shù)的基本思想是在靠近芯片的輸入/輸出引腳上增加一個(gè)移位寄存器單元,也就是邊界掃描寄存器(Boundary-Scan Register)。
當(dāng)芯片處于調(diào)試狀態(tài)時(shí),邊界掃描寄存器可以將芯片和外圍的輸入/輸出隔離開(kāi)來(lái)。通過(guò)邊界掃描寄存器單元,可以實(shí)現(xiàn)對(duì)芯片輸入/輸出信號(hào)的觀察和控制。對(duì)于芯片的輸入引腳,可以通過(guò)與之相連的邊界掃描寄存器單元把信號(hào)(數(shù)據(jù))加載到該引腳中去;對(duì)于芯片的輸出引腳,也可以通過(guò)與之相連的邊界掃描寄存器“捕獲”該引腳上的輸出信號(hào)。在正常的運(yùn)行狀態(tài)下,邊界掃描寄存器對(duì)芯片來(lái)說(shuō)是透明的,所以正常的運(yùn)行不會(huì)受到任何影響。這樣,邊界掃描寄存器提供了一種便捷的方式用于觀測(cè)和控制所需調(diào)試的芯片。另外,芯片輸入/輸出引腳上的邊界掃描(移位)寄存器單元可以相互連接起來(lái),在芯片的周圍形成一個(gè)邊界掃描鏈(Boundary-Scan Chain)。邊界掃描鏈可以串行地輸入和輸出,通過(guò)相應(yīng)的時(shí)鐘信號(hào)和控制信號(hào),就可以方便地觀察和控制處在調(diào)試狀態(tài)下的芯片。
1.2 測(cè)試訪問(wèn)口TAP
TAP(Test Access Port)是一個(gè)通用的端口,通過(guò)TAP可以訪問(wèn)芯片提供的所有數(shù)據(jù)寄存器(DR)和指令寄存器(IR)。對(duì)整個(gè)TAP的控制是通過(guò)TAP控制器(TAP Controller)來(lái)完成的。下面先分別介紹一下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),可以用來(lái)對(duì)TAP Controller進(jìn)行復(fù)位(初始化)。這個(gè)信號(hào)接口在IEEE 1149.1標(biāo)準(zhǔn)里并不是強(qiáng)制要求的,因?yàn)橥ㄟ^(guò)TMS也可以對(duì)TAP Controller進(jìn)行復(fù)位。
◇STCK:時(shí)鐘返回信號(hào),在IEEE 1149.1標(biāo)準(zhǔn)里非強(qiáng)制要求。
◇DBGRQ:目標(biāo)板卜工作狀態(tài)的控制信號(hào)。在IEEE 1149.1標(biāo)準(zhǔn)里沒(méi)有要求,只是在個(gè)別目標(biāo)板(例如STR710)中會(huì)有。
簡(jiǎn)單地說(shuō),PC機(jī)對(duì)目標(biāo)板的調(diào)試就是通過(guò)TAP接口完成對(duì)相關(guān)數(shù)據(jù)寄存器(DR)和指令寄存器(IR)的訪問(wèn)。
系統(tǒng)上電后,TAP Controller首先進(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)。在此過(guò)程中,狀態(tài)的轉(zhuǎn)移都是通過(guò)TCK信號(hào)進(jìn)行驅(qū)動(dòng)(上升沿),通過(guò)TMS信號(hào)對(duì)TAP的狀態(tài)進(jìn)行選擇轉(zhuǎn)換的。其中,在Capture-IR狀態(tài)下,一個(gè)特定的邏輯序列被加載到指令寄存器中;在Shift-IR狀態(tài)下,可以將一條特定的指令送到指令寄存器中;在Update―IR狀態(tài)下,剛才輸入到指令寄存器中的指令將用來(lái)更新指令寄存器。最后,系統(tǒng)又回到Run―Test/Idle狀態(tài),指令生效,完成對(duì)指令寄存器的訪問(wèn)。當(dāng)系統(tǒng)又返回到Run―Test/Idle狀態(tài)后,根據(jù)前面指令寄存器的內(nèi)容選定所需要的數(shù)據(jù)寄存器,開(kāi)始執(zhí)行對(duì)數(shù)據(jù)寄存器的工作。其基本原理與指令其存器的訪問(wèn)完全相同,依次為seIect―DR―Scan、Capture―DR、Shift―D、Exitl一DR、Update―DR,最后回到Run-Tcst/Idle狀態(tài)。通過(guò)TDl和TDO,就可以將新的數(shù)據(jù)加載到數(shù)據(jù)寄存器中。經(jīng)過(guò)一個(gè)周期后,就可以捕獲數(shù)據(jù)寄存器中的數(shù)據(jù),完成對(duì)與數(shù)據(jù)寄存器的每個(gè)寄存器單元相連的芯片引腳的數(shù)據(jù)更新,也完成了對(duì)數(shù)據(jù)寄存器的訪問(wèn)。
目前,市場(chǎng)上的JTAG接口有14引腳和20引腳兩種。其中,以20引腳為主流標(biāo)準(zhǔn),但也有少數(shù)的目標(biāo)板采用14引腳。經(jīng)過(guò)簡(jiǎn)單的信號(hào)轉(zhuǎn)換后,可以將它們通用。
下面通過(guò)對(duì)JD44BOX實(shí)驗(yàn)開(kāi)發(fā)板的簡(jiǎn)易JTAG的基本原理進(jìn)行分析,以及對(duì)JD44BOX和STR710試驗(yàn)開(kāi)發(fā)板主板的JTAG原理進(jìn)行對(duì)比,進(jìn)一步闡述JTAG的工作原理。JD44BOX實(shí)驗(yàn)開(kāi)發(fā)板的簡(jiǎn)易JTAG的原理圖如圖1所示。

圖1中,74LS244為三態(tài)輸出的8組緩沖器和總線驅(qū)動(dòng)器,其功能如表l所列。

由表1可知,在JD4480X實(shí)驗(yàn)板的調(diào)試過(guò)程中,這款簡(jiǎn)易JTAG的主要作用就是將PC機(jī)發(fā)出的電信號(hào)與實(shí)驗(yàn)板的電信號(hào)進(jìn)行匹配,以實(shí)現(xiàn)驅(qū)動(dòng)目標(biāo)板的功能。
STR710和JD44BOX主板的JTAG原理圖如圖2和圖3所示。

通過(guò)圖2和圖3的對(duì)比可以發(fā)現(xiàn),雖然所用的有很大的差別,但是,實(shí)際上忽略一些上下拉電阻以及保護(hù)電容(這些電阻、電容對(duì)于電路功能沒(méi)有意義),它們的基本原理圖是十分相似的,唯一的差別就在于對(duì)RTCK信號(hào)(用于測(cè)試時(shí)鐘返回)和DBGRQ信號(hào)(用于設(shè)置目標(biāo)板工作狀態(tài))的處理。實(shí)際上,在IEEE1149.1標(biāo)準(zhǔn)中這兩個(gè)信號(hào)都不是強(qiáng)制要求的。因此,在分析仿真器(JTAG)的工作原理時(shí)完全可以忽略這兩個(gè)信號(hào)的情況,而僅對(duì)IFEE 1149.1標(biāo)準(zhǔn)中強(qiáng)制要求的4個(gè)信號(hào)進(jìn)行分析。

2 仿真器與簡(jiǎn)易JTAG的對(duì)比
2.1 仿真器硬件連接
PC機(jī)配置:1.66 GHz,256 MB內(nèi)存。
調(diào)試軟件:ADS1.2。
目標(biāo)板:JD44BOX。
完成任務(wù):文件的下載。
硬件連接如圖4所示。通過(guò)主機(jī)的并口與仿真器相連接,再將仿真器與目標(biāo)板的JTAG調(diào)試接口連接。

2.2 對(duì)比
如表2所列,雖然通過(guò)不同的調(diào)試代理所需的下載時(shí)間有所不同,但是兩種仿真器所存在的性能差異仍然很明顯。在選用簡(jiǎn)易JTAG下載文件的過(guò)程中,效率最高的調(diào)試代理所需的時(shí)間仍將近是仿真器的6倍,這就是仿真器的優(yōu)勢(shì)所在。性能的提高必然要付出更多的代價(jià),對(duì)開(kāi)發(fā)者來(lái)說(shuō)這個(gè)代價(jià)就是成本。經(jīng)過(guò)市場(chǎng)的考察,仿真器的價(jià)格一般在千兀左右,而簡(jiǎn)易JTAG的價(jià)格一般在百元左右,也就是存在將近10倍的差別。另外,還需要考慮的就是其兼容性。兼容性包括與H標(biāo)板的兼容和與調(diào)試代理的兼容。在與目標(biāo)板的兼容方面,后面的內(nèi)容中會(huì)有詳細(xì)說(shuō)明;在與調(diào)試代理的兼容方面也有所反映。簡(jiǎn)易JTAG能夠與多個(gè)調(diào)試代理兼容,而仿真器只能使用其自帶的調(diào)試代理,具有一定的局限性。

2.3 原因分析
既然所有JTAG的基本原理都是一樣的,為什么這兩種仿真器的速度會(huì)存在如此大的差異,而且并不是所有的仿真器都是通用的呢?
首先介紹一下ARM7掃描鏈架構(gòu),如圖5所示。

與簡(jiǎn)易JTAG,在掃描過(guò)程中,STR710的仿真器為ARM7TDMI添加了一個(gè)專門的指針通道以及相應(yīng)的存儲(chǔ)空間store-multiple(STM)。因此在調(diào)試狀態(tài)下,仿真器不再利用系統(tǒng)除了邊界扣描寄存器外的任何其他資源,而是通過(guò)JTAG-style接口直接獲取系統(tǒng)的狀態(tài)信息,對(duì)系統(tǒng)狀態(tài)進(jìn)行觀測(cè)以及調(diào)試,進(jìn)而大大提高調(diào)試速度。
在STR7lO目標(biāo)板中,ARM7TDMI可以通過(guò)外部信號(hào)和內(nèi)部電路模塊(ICE)進(jìn)入調(diào)試狀態(tài)。當(dāng)目標(biāo)板一旦進(jìn)入調(diào)試狀態(tài)后,內(nèi)核就將其與存儲(chǔ)器分離開(kāi)來(lái),這樣內(nèi)核就可以保證在不影響系統(tǒng)正常運(yùn)作的狀態(tài)下對(duì)系統(tǒng)的狀況進(jìn)行監(jiān)測(cè)和調(diào)試。同時(shí),ARM7TDMI內(nèi)部狀態(tài)的檢測(cè)是通過(guò)JTAG-style接口進(jìn)行的,這個(gè)接口允許指令不通過(guò)數(shù)據(jù)線直接進(jìn)入到內(nèi)核的掃描通道。這樣在調(diào)試狀態(tài)下,STM就可以直接嵌入到指令通道并存儲(chǔ)ARM7TDMI寄存器的內(nèi)容,在不影響系統(tǒng)工作的情況下將這些內(nèi)容移位出來(lái),使仿真器獲得目標(biāo)板的狀態(tài)信息。
與仿真器,簡(jiǎn)易JTAG完成的工作就要少得多。它只是完成了對(duì)主機(jī)信號(hào)的電平轉(zhuǎn)換,也就是相當(dāng)于一個(gè)驅(qū)動(dòng)器。上面提到的所有工作都要交給CPU去做,因此在使用簡(jiǎn)易JTAG下載文件時(shí)目標(biāo)板自然會(huì)相應(yīng)地降低速度。尤其是當(dāng)程序相對(duì)較大時(shí),其速度就會(huì)大大降低,對(duì)于一些開(kāi)發(fā)人員來(lái)講,這是相當(dāng)致命的缺點(diǎn)。
關(guān)于仿真器與目標(biāo)板的兼容問(wèn)題,現(xiàn)在市場(chǎng)上的部分仿真器出現(xiàn)不同程度的不兼容問(wèn)題,其產(chǎn)生的主要原因是對(duì)RTCK信號(hào)(DBGRQ信號(hào)極不常見(jiàn),這里不作介紹)的處理情況存在一些差異(不包括周立功系列的實(shí)驗(yàn)開(kāi)發(fā)板,它們的仿真器使用的足單片機(jī),與大多數(shù)的仿真器都不能兼容)。例如,在STR710中是將STCK信號(hào)與TCK信號(hào)直接相連了,而在nano2410A實(shí)驗(yàn)開(kāi)發(fā)板中是將STCK信號(hào)直接接地,因此造成了ARM JTAG Emulator在nano2410A實(shí)驗(yàn)開(kāi)發(fā)板中的不兼容。在對(duì)nano2410A主板的JTAG進(jìn)行了小小的改動(dòng)后就完成了仿真器兼容性的擴(kuò)展。
備注:①JD4480X為北京交通大學(xué)自控室實(shí)驗(yàn)開(kāi)發(fā)板,STR710為北京微芯力科技有限公司實(shí)驗(yàn)開(kāi)發(fā)板;②實(shí)驗(yàn)數(shù)據(jù)為秒表所測(cè)。



關(guān)鍵詞: 性能 比較 仿真器 原理 基本 JTAG

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉