基于USB的ARM仿真器的研究與設(shè)計(jì)_第1頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于usb的arm仿真器的研究與設(shè)計(jì)基于jtag器的調(diào)試是目前開(kāi)發(fā)中采納最多的一種方式。大多數(shù)arm設(shè)計(jì)采納了片上jtag接口,并將其作為測(cè)試、調(diào)試辦法的重要組成。jtag仿真器通過(guò)arm芯片的jtag邊界掃描口與arm cpu核通信,實(shí)現(xiàn)了徹低非插入式調(diào)試,不用法片上資源,不需要目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口。因?yàn)閖tag調(diào)試的目標(biāo)程序是在目標(biāo)板上執(zhí)行,使得仿真越發(fā)臨近于目標(biāo)硬件。目前針對(duì)系統(tǒng)開(kāi)發(fā)的調(diào)試工具品種繁多,如arm公司的axd debugger軟件與mutil-ice仿真器等。但是大部分嵌入式調(diào)試工具價(jià)格過(guò)高,因此設(shè)計(jì)實(shí)現(xiàn)一種速度快、性能穩(wěn)定、價(jià)格低廉、易于實(shí)現(xiàn)的arm調(diào)試工

2、具是非常須要的。1 arm jtag調(diào)試原理arm典型的調(diào)試系統(tǒng)結(jié)構(gòu)1所示。調(diào)試系統(tǒng)包括調(diào)試主機(jī)、仿真器和調(diào)試目標(biāo)。調(diào)試主機(jī)是一臺(tái)運(yùn)行調(diào)試軟件(例如ads)的計(jì)算機(jī)。調(diào)試主機(jī)可以發(fā)出高層的調(diào)試指令,例如設(shè)置斷點(diǎn)、拜訪內(nèi)存等。仿真器用來(lái)將調(diào)試主機(jī)發(fā)出的高層調(diào)試指令轉(zhuǎn)換為底層的arm jtag調(diào)試指令。由于目標(biāo)機(jī)無(wú)法識(shí)別調(diào)試主機(jī)發(fā)送來(lái)的高級(jí)指令,因此就需要仿真器將調(diào)試主機(jī)發(fā)出的高層調(diào)試指令轉(zhuǎn)換為底層的arm jtag調(diào)試指令。在囫圇調(diào)試系統(tǒng)中起到重要的作用,其性能也打算了囫圇調(diào)試系統(tǒng)性能。2 計(jì)劃設(shè)計(jì)本文提出了一種采納philips公司的arm7芯片lpc2148設(shè)計(jì),具有2.0通信方式、高速穩(wěn)定

3、的arm仿真器實(shí)現(xiàn)計(jì)劃,2所示。守護(hù)進(jìn)程接收從ide集成開(kāi)發(fā)環(huán)境發(fā)送來(lái)的調(diào)試指令,將其通過(guò)usb轉(zhuǎn)發(fā)到arm仿真器,arm仿真器再將調(diào)試指令轉(zhuǎn)換成jtag格式的信號(hào)并發(fā)送到i/o口,從而控制調(diào)試目標(biāo)執(zhí)行特定的操作,達(dá)到調(diào)試的目的。同理,從調(diào)試目標(biāo)返回的數(shù)據(jù),先經(jīng)過(guò)arm仿真器的譯碼,再經(jīng)過(guò)守護(hù)進(jìn)程返回到ide開(kāi)發(fā)環(huán)境,從而形成一個(gè)完整的調(diào)試系統(tǒng)。3 硬件設(shè)計(jì)本設(shè)計(jì)的最大特點(diǎn)是采納了lpc2148作為主控芯片。該芯片內(nèi)部集成了arm7tdmi-s微控制器和徹低兼容usb2.0的設(shè)備控制器,支持32個(gè)物理(16個(gè)規(guī)律)端點(diǎn);支持控制、批量、中斷和同步端點(diǎn);全部端點(diǎn)都有一個(gè)雙向的dma通道。由于芯片

4、內(nèi)部集成了usb控制器,大大降低了電路板的設(shè)計(jì)難度和開(kāi)發(fā)成本。其硬件電路框圖3所示。(1)本機(jī)jtag調(diào)試電路為了便于調(diào)試和燒寫(xiě)程序,將芯片lpc2148的jtag接口接到一個(gè)20引腳的標(biāo)準(zhǔn)jtag插口。本設(shè)計(jì)中用法引腳p0.8、p0.9、p0.10、p0.12、p0.14作為外部jtag接口,盡量不用有其他接口功能的引腳,如p0.11、p0.14接口與i2c接口scl1、sda1功能復(fù)用,以便于未來(lái)的硬件升級(jí)。為了增加帶負(fù)載能力,用法一片74hc244芯片,同時(shí)為了盡量兼容大部分arm開(kāi)發(fā)板上的不同jtag插口,本設(shè)計(jì)提供了一個(gè)20引腳的jtag插口和一個(gè)14引腳的jtag插口。(2)usb

5、電路(包括供電電路)usb接口電路4所示。為了使lpc2148的軟件可以更靈便地控制usb設(shè)備與主機(jī)之間的銜接,本接口電路用法p0.31(只能用法該引腳)來(lái)實(shí)現(xiàn)softconnect特性。當(dāng)p0.31輸出低電平常,d+線通過(guò)上拉到vdd3.3,通知usb主機(jī):usb設(shè)備與其建立銜接;當(dāng)p0.31輸出高電平常,d+線斷開(kāi)與vdd3.3的銜接,通知usb主機(jī):usb設(shè)備已經(jīng)斷開(kāi)與usb主機(jī)的銜接。q1選用的是p溝道m(xù)os管,而不選用一般的pnp,由于mos管是驅(qū)動(dòng)型,驅(qū)動(dòng)幾乎為0;而一般的pnp三極管是電流驅(qū)動(dòng),需要一定的驅(qū)動(dòng)電流。導(dǎo)通時(shí),p0.31_p17有可能被拉低,lpc2148要求該引腳在

6、復(fù)位引腳為低電平期間不能被拉低,否則jtag口將被禁止,因此必需選用p溝道的mos管。lpc2148的p0.23引腳為usb設(shè)備控制器,用于檢測(cè)usb總線是否插入檢測(cè)引腳。4 仿真器固件程序設(shè)計(jì)仿真器lpc2148芯片中的固件程序?qū)崿F(xiàn)的功能包括:通過(guò)usb與上位機(jī)軟件舉行通信,并將上位機(jī)發(fā)送過(guò)來(lái)的、經(jīng)過(guò)封裝的usb數(shù)據(jù)流轉(zhuǎn)換為jtag信號(hào),并終于送到相應(yīng)的引腳或者將相應(yīng)引腳的數(shù)據(jù)經(jīng)過(guò)封裝后,通過(guò)usb傳送到pc機(jī)中。圖5為應(yīng)用程序的流程圖。主函數(shù)首先將作為jtag接口用法的5個(gè)引腳設(shè)置成相應(yīng)屬性,并完成usb設(shè)備初始化,配置中斷向量、開(kāi)中斷,然后進(jìn)入無(wú)限循環(huán)函數(shù)。無(wú)限循環(huán)函數(shù)首先處理usb大事

7、,如usb控制傳輸、usb總線復(fù)位等。然后推斷標(biāo)記位是否收到數(shù)據(jù),假如未收到則繼續(xù)執(zhí)行無(wú)限循環(huán);假如收到了數(shù)據(jù),則將數(shù)據(jù)從端點(diǎn)緩沖區(qū)讀出,再交給數(shù)據(jù)處理函數(shù)處理。數(shù)據(jù)處理函數(shù)根據(jù)上位機(jī)程序?qū)?shù)據(jù)封裝方式舉行解析,按照解析的指令(讀取tdi、寫(xiě)tms或tdo等),通過(guò)分支處理跳到相應(yīng)的處理函數(shù)。在這個(gè)過(guò)程中假如上位機(jī)要讀取調(diào)試目標(biāo)數(shù)據(jù),可將相應(yīng)的值按同樣格式舉行封裝,然后通過(guò)usb發(fā)送到上位機(jī)。數(shù)據(jù)封裝格式6所示。定義的指令碼如下:define unkown_command 0x00 /未知命令define port_direction 0x01 /設(shè)置端口方向?yàn)檩斎牖蜉敵鰀efine port

8、_set 0x02 /將jtag端口的引腳都設(shè)為高電平define port_get 0x03 /讀jtag端口的引腳數(shù)據(jù)define port_setbit 0x04 /設(shè)置jtag端口的某一位為1,由data0中數(shù)據(jù)打算設(shè)置的詳細(xì)位數(shù)define port_getbit 0x05 /讀取jtag端口的某一位為1,由data0中數(shù)據(jù)打算讀取的詳細(xì)位數(shù)define write_tdi 0x06 /寫(xiě)tdi信號(hào)指令define read_tdo 0x07 /讀tdo信號(hào)指令define write_and_read 0x08 /讀寫(xiě)命令,對(duì)tdi寫(xiě)一位,對(duì)tdo一位define write_tms 0x09 /寫(xiě)tms信號(hào)指令define write_tms_chain 0x0a /寫(xiě)tms掃描鏈指令本仿真

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論