<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > EmJTAG 協(xié)議轉換器的設計與實(shí)現

EmJTAG 協(xié)議轉換器的設計與實(shí)現

作者: 時(shí)間:2008-05-08 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要是ARM嵌入式系統調試技術(shù)的關(guān)鍵所在。本文介紹了一種基于USB接口的)設計思想,并給出了硬件設計和固件設計的實(shí)現方法。
關(guān)鍵詞;硬件設計;固件設計

1 引言

協(xié)議轉換器的主要功能是接收調試服務(wù)器發(fā)來(lái)的各種調試協(xié)議信息,將它們轉換成JTAG 時(shí)序信號,控制ARM 核以及EmbeddedICE 宏單元,并返回一些數據和狀態(tài)信息給調試器。所以協(xié)議轉換器主要由兩部分組成:與調試器的通信接口部分,用于準確接收調試器發(fā)來(lái)的各種調試協(xié)議信息;與目標板的JTAG 接口部分,用于產(chǎn)生快速穩定的JTAG 時(shí)序信號。

各調試工具生產(chǎn)商所設計的協(xié)議轉換器各不相同,但歸納起來(lái)主要有3種實(shí)現模型:

1.利用PC 的并口,外部加上簡(jiǎn)單的接口驅動(dòng)電路或單片機引出JTAG 接口。這種實(shí)現模型的特點(diǎn)是價(jià)格便宜,沒(méi)有固件程序或只有簡(jiǎn)單的固件程序,與調試器的接口單一,JTAG 時(shí)鐘頻率低,程序下載速度慢。網(wǎng)上流行的Wiggler 協(xié)議轉換器和EasyJTAG 協(xié)議轉換器就是基于這種實(shí)現模型。

2.利用單片復雜FPGA,實(shí)現與調試器的接口部分和產(chǎn)生快速JTAG 時(shí)序信號。這種實(shí)現模式的特點(diǎn)是價(jià)格昂貴,固件程序復雜,JTAG 時(shí)鐘頻率高,下載速度快。ARM 公司生產(chǎn)的Multi-ICE 協(xié)議轉換器就是基于這種實(shí)現模型。

3.利用通用微處理器實(shí)現與調試器的接口部分,利用簡(jiǎn)單FPGA 或CPLD 產(chǎn)生快速JTAG 信號。這種實(shí)現模型是前兩種實(shí)現模型的折中,價(jià)格適中,固件程序升級容易,與調試器的接口豐富,JTAG 時(shí)鐘頻率快,程序下載速度快。

本文介紹了使用ST72651設計實(shí)現協(xié)議轉換器。利用ST72651 內部集成的USB模塊和數據傳輸協(xié)處理器(DTC)分別實(shí)現與調試器的接口和JTAG 信號的穩定高速產(chǎn)生。這種實(shí)現方法屬于第3 種模型,但微處理器模塊和DTC 模塊是封裝在同一個(gè)芯片里面,這保證了微處理器模塊和DTC 模塊之間數據的快速傳輸。

2 硬件設計

2.1 ST72651 的概述

ST72651 是專(zhuān)門(mén)為解決USB 接口的大量數據傳輸應用而設計的一款芯片。它基于ST7標準內核,內部集成了一個(gè)全速的USB接口,以及一個(gè)時(shí)鐘頻率為24M 的數據傳輸協(xié)處理器(DTC),32KB 的程序存儲空間,5KB 的RAM,支持I2C 和SPI 接口, 2.7V-5.5V 的工作電壓范圍,可用USB 接口直接供電,是一款功能強大的8 位機。

2.2 硬件原理框圖

基于ST72651的協(xié)議轉換器原理框圖如圖1所示。

圖 1 協(xié)議轉換器硬件原理框圖

USB 接口部分的電路比較簡(jiǎn)單,只需在USB 的DP 腳上拉一個(gè)電阻,以使得USB 主機識別到該USB 設備。DTC 模塊產(chǎn)生的4 個(gè)JTAG 時(shí)鐘通過(guò)I/O 口引出,外部加一個(gè)接口驅動(dòng)芯片,然后連到標準的JTAG接口上。TAP 控制器復位信號nTRST 和系統復位信號nSRST 通過(guò)I/O 邏輯直接控制。系統采用USB 供電模式,POWER 燈指示系統的供電狀態(tài)。BUSY 燈連到TCK 引腳上,指示系統是否處于忙狀態(tài)。內部集成的電壓校準器產(chǎn)生3.3V 的電壓供給接口驅動(dòng)芯片。

3 固件設計

采用分模塊設計固件程序,包括下列六個(gè)模塊:DTC軟件插件程序模塊,掃描鏈操作模塊,EmbeddedICE 寄存器操作模塊,高層調試命令模塊,USB接口驅動(dòng)模塊,主程序狀態(tài)機模塊。各模塊的調用關(guān)系如圖2所示。

圖 2 固件各模塊調用關(guān)系

3.1 DTC插件程序模塊

ST72651內部集成的數據傳輸協(xié)處理器(DTC)是一個(gè)通用的串行/并行通信接口。ST7 核也可以讀寫(xiě)DTC 的數據傳輸緩沖區,因此需要一個(gè)仲裁電路用于防止ST7核和DTC沖突訪(fǎng)問(wèn)該緩沖區。如果其中有一個(gè)在訪(fǎng)問(wèn)數據傳輸緩沖區,則另一個(gè)的請求將在數據傳輸緩沖區空閑時(shí)才得到響應;如果兩個(gè)同時(shí)請求,則按優(yōu)先級響應,ST7核的優(yōu)先級高于DTC。ST7 核通過(guò)DTC 控制寄存器DTCCR 控制DTC的操作,通過(guò)DTC 狀態(tài)寄存器DTCSR 查詢(xún)DTC 的狀態(tài),通過(guò)DTC 指針寄存器DTCPR 改變DTC的操作指針。DTC功能框圖如圖3所示。

圖 3 DTC功能框圖

DTC運行的插件程序非常簡(jiǎn)單:將數據傳輸緩沖區中的數據快速移出到I/O口,或將I/O口數據快速移入到數據傳輸緩沖區。由DTC操作的I/O口為4個(gè)JTAG信號:TCK、TMS、TDI和TDO。TCK作為移入/移出數據的觸發(fā)時(shí)鐘,TDI作為移出數據出口,TDO作為移入數據進(jìn)口,TMS作為輸入信號,與TCK 一起決定TAP 控制器狀態(tài)的轉移過(guò)程。執行插件程序前必須使TAP 控制器處Select-DR-Scan 狀態(tài),執行完插件程序后TAP 控制器返回到Select-DR-Scan狀態(tài)。

3.2 掃描鏈操作模塊

掃描鏈操作模塊調用DTC 軟件插件程序,完成初始化TAP 控制器、掃描鏈1操作和掃描鏈2操作。掃描鏈1有33位,按掃描先后順序依次為:BREAKPT位(輸入),D31-D0(輸入/輸出)。掃描鏈1 操作的目的是移入BREAKPT 位和向/從數據總線(xiàn)移入/移出 32位數據。掃描鏈2有38位,按掃描先后順序依次為:EmbeddedICE 寄存器的D0-D31,EmbeddedICE 寄存器的A0-A4,讀/寫(xiě)位。掃描鏈2 操作的目的是讀寫(xiě)EmbeddedICE 宏單元的寄存器。

3.3 EmbeddedICE寄存器操作模塊

EmbeddedICE 寄存器的讀寫(xiě)通過(guò)對掃描鏈2 操作實(shí)現。讀時(shí)將欲讀的EmbeddedICE 寄存器地址作為參數調用掃描鏈2 操作函數,寫(xiě)時(shí)將欲寫(xiě)的值和EmbeddedICE 寄存器地址作為參數調用掃描鏈2操作函數。

3.4 高層調試命令模塊

高層調試命令模塊完成的功能是:調用掃描鏈操作模塊和EmbeddedICE 寄存器操作模塊,實(shí)現各種調試控制命令,這些命令供主程序狀態(tài)機模塊調用。包括下列調試控制命令:讀寫(xiě)核寄存器,讀寫(xiě)存儲器,設置與清除硬件斷點(diǎn),設置與清除軟件斷點(diǎn),設置與清除觀(guān)察點(diǎn),復位,停止運行,全速運行,單步運行,返回處理器狀態(tài),返回設備標志位。

3.5 USB接口驅動(dòng)模塊

USB接口驅動(dòng)模塊主要包含五個(gè)函數:函數InitUSB( )用于初始化USB;函數USB_Polling( )用于處理USB 主機發(fā)來(lái)的USB 標準設備請求,實(shí)現USB 枚舉階段的傳輸過(guò)程,同時(shí)根據狀態(tài)寄存器的標志位調用相應的端點(diǎn)處理函數;CTR中斷服務(wù)程序用于處理端點(diǎn)上發(fā)生的各種中斷;函數USB_RecvDataEP2(unsigned char *dp, uint8 len)和USB_SendDataEP2(unsigned char *dp, uint8 len)分別用于從端點(diǎn)2接收和發(fā)送USB包。

ST72651內部集成的USB模塊實(shí)現兼容USB2.0規范的全速(12Mb/s)USB協(xié)議。它包括:模擬收發(fā)器、3.3V 電壓校準器、串行接口引擎(SIE)、USB 數據緩沖區接口、端點(diǎn)相關(guān)寄存器和各種控制狀態(tài)寄存器,如圖4所示。

圖 4 USB功能模塊

3.6 主程序狀態(tài)機模塊

主程序狀態(tài)機模塊循環(huán)調用USB 接口驅動(dòng)模塊的USB_RecvDataEP2( )函數接收調試器發(fā)來(lái)的命令報文,根據命令報文的主命令號和次命令號調用高層調試命令模塊的相應命令函數, 并將命令函數返回的數據通過(guò)調用USB_SendDataEP2( )函數返回給調試器,最終根據命令函數返回的狀態(tài)通過(guò)調用USB_SendDataEP2( )函數發(fā)確認報文給調試器。

4 結束語(yǔ)

本文所設計的協(xié)議轉換器代碼下載速度、單步執行能力等各方面性能都接近ARM公司生產(chǎn)的Multi-ICE協(xié)議轉換器的性能。而支持USB接口協(xié)議與主機通信,在PC外圍接口簡(jiǎn)化的今天,USB接口就大大方便了嵌入式軟件設計者的使用,同時(shí)價(jià)格上的優(yōu)勢不言而喻的。該協(xié)議轉換器實(shí)現與現成調試器AXD的連接,而ARM公司擁有調試器AXD的知識產(chǎn)權。為實(shí)現一個(gè)完整的自主產(chǎn)權ARM嵌入式軟件開(kāi)發(fā)工具鏈,還須完成的工作包括:自主產(chǎn)權編譯系統的實(shí)現,自主產(chǎn)權主機調試器的實(shí)現。筆者希望本文對ARM調試系統在國內的研究和推廣有所貢獻。

本文作者創(chuàng )新點(diǎn):本設計選取內部集成USB模塊和數據傳輸協(xié)處理器(DTC)模塊的微處理芯片。USB模塊實(shí)現與調試器的通信,數據傳輸協(xié)處理器(DTC)模塊產(chǎn)生穩定高速的JTAG 時(shí)序信號。微處理器模塊和DTC 模塊封裝在同一個(gè)芯片里,這保證了微處理器模塊和DTC 模塊之間數據的快速傳輸。用封裝在一塊芯片上USB模塊、微處理器模塊和DTC 模塊實(shí)現EmJTAG 協(xié)議轉換器,以此協(xié)議轉換器為理論基礎的調試器非常方便、高速穩定和高性?xún)r(jià)比。

參考文獻:

[1] 楊峰,張根寶等,基于JTAG的ARM芯片系統調試,微計算機信息,2005年,11-2:87-89

[2] ST,ST72651 DTC Specification,Jan. 2002

[3] 馬忠梅等,ARM嵌入式處理器結構與應用基礎,北京航空航天大學(xué)出版社,2002年1月



關(guān)鍵詞: EmJTAG 協(xié)議轉換器

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>