基于FPGA的USB接口讀寫設(shè)計_第1頁
基于FPGA的USB接口讀寫設(shè)計_第2頁
基于FPGA的USB接口讀寫設(shè)計_第3頁
基于FPGA的USB接口讀寫設(shè)計_第4頁
基于FPGA的USB接口讀寫設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、文章編號:1671-7872(200601-0076-04基于FPG A的U SB接口讀寫設(shè)計周芳(南京航空航天大學(xué)信息科學(xué)與技術(shù)學(xué)院,江蘇南京210016摘要:介紹了一種用FPG A實現(xiàn)U SB接口讀寫的設(shè)計方法。著重分析主循環(huán),中斷服務(wù)處理器和D12命令接口等幾個結(jié)構(gòu)模塊的設(shè)計。在X i l i nx I SE軟件平臺上,驗證了讀寫模塊的V er i l og H D L語言代碼。關(guān)鍵詞:U SB;FPG A;PD I U SBD12;V er i l og H D L中圖分類號:TN402文獻標(biāo)識碼:BD esi gn ofU SB I nt er f ace R ead-W r i t

2、 e Based on FPG AZHOU Fang(Col l ege of I nf or m at i on Sci ence&Technol ogy,N anj i ng U ni ver s i t y of A er onaut i cs&A s t r onaut i cs,N anj i ng210016, Chi naAbstract:A way t o des i gn U SB i nt er f ace R ead-W r i t e bas ed on FPG A i s i nt r oduced.M ai n Loop,I nt er r upt

3、Ser vi ce Pr ocessorand D12Com m and I nt er f ace,et c ar e anal yzed and des i gned,and r eal i z ed by V er i l og H D L i n X i l i nx I SE. Key words:U ni ver s alSer i alBus;FPG A;PD I U SBD12;V er i l og H D L引言U SB(U ni ver s alSer i alBus就是通用串行總線,是近年來應(yīng)用在PC領(lǐng)域的新型接口技術(shù)。由于U SB可以用簡便有效的方法與多種類型的外設(shè)通

4、信,導(dǎo)致了U SB接口的設(shè)計和編程比較復(fù)雜。為了降低設(shè)計者的開發(fā)難度,使用專用的U SB控制器已成為首選方案。目前市場上供應(yīng)的U SB控制器主要有兩種:一種是微控制器(M CU集成在芯片里面,如CY PR ESS的EZ-U SB和SI EM EN S的C541等;另一種就是純粹的U SB接口芯片,僅用來處理U SB通信,由另一個外部M CU管理U SB控制器的寄存器、設(shè)備描述符的獲取和數(shù)據(jù)包的交換等,U SB控制器使用串行口或并行口與M CU連接。這類芯片主要有PH I LI PS的PD I U SBD11(I2C接口和PD I U SBD12(并行接口等。文中所采用的是PH I LI PS公

5、司的PD I U SBD12器件。如今,計算機外圍設(shè)備市場上使用U SB接口的數(shù)碼相機、掃描儀、U盤和鼠標(biāo)等設(shè)備比較常見,這些設(shè)備均可采用外部M CU加U SB接口芯片的設(shè)計。如果設(shè)備的應(yīng)用比較簡單,那么M CU所要處理的事務(wù)量不大,它的某些功能不一定能派上用場,這時完全可以考慮用現(xiàn)場可編程門陣列(FPG A來取代微控制器,管理U SB控制器的寄存器、設(shè)備描述符的獲取和數(shù)據(jù)包的交換等。此外,由于FPG A能夠滿足低功率和可重配置邏輯解決方案的要求,在復(fù)用和可移植性方面,FPG A器件比M CU具有更高的勝算把握1。用FPG A實現(xiàn)U SB接口的讀寫正是居于此思想來設(shè)計的,由U SB設(shè)備控制器P

6、D I U SBD12(以下簡稱D12和FPG A組合在一起,以實現(xiàn)與主機之間的數(shù)據(jù)通信。該方案實現(xiàn)的U SB通信便于修改且易于實現(xiàn),如果U SB設(shè)備控制器部分是用I P核實現(xiàn)的,還可以與FPG A相結(jié)合,作為一個功能模塊嵌入到SO C中,可使不同情況最大限度地靈活設(shè)計片上系統(tǒng)。收稿日期:2005-05-10作者簡介:周芳(1979-,女,江蘇南京人,碩士研究生,助教,研究方向為數(shù)字系統(tǒng)設(shè)計與計算機應(yīng)用。周芳:基于FP G A的U S B接口讀寫設(shè)計77第1期1系統(tǒng)結(jié)構(gòu)原理接口讀寫設(shè)計的重點是U S B接口讀寫部Array分,其設(shè)計思想主要是基于P D I U S B D12芯片的應(yīng)用2。它通

7、過與D12芯片的通信,對主機傳來的數(shù)據(jù)進行處理,或者按照協(xié)議規(guī)定向主機發(fā)送數(shù)據(jù),實現(xiàn)與主機之間的U S B通信。根據(jù)讀寫模塊所要實現(xiàn)的功能,可以將其劃分為幾個部分:主循環(huán);中斷服務(wù)處理器I S P(i nt er r uptser vi ce pr ocessor;D12命令接口;標(biāo)準(zhǔn)請求處理器S R C P(st andar d r equest com m andpr ocessor和R A M數(shù)據(jù)緩沖區(qū),其結(jié)構(gòu)框圖如圖1系統(tǒng)層次結(jié)構(gòu)框圖圖1所示。2USB接口讀寫模塊與PDIUSBD12的接口P D I U S B D12采用通用并行接口實現(xiàn)與讀寫模塊的通信,它們之間的接口主要有多路復(fù)用的

8、8位地址/數(shù)據(jù)總線、地址鎖存信號、中斷信號、讀寫信號、片選信號和時鐘信號2,如圖2所示。對于微控制器而言,D12可以看成是一個有8位數(shù)據(jù)總線和1位地址線的存儲設(shè)備;A LE是地址鎖存信號,在多路地址/數(shù)據(jù)復(fù)用總線中,A LE下降沿鎖存地址信息;中斷信號為低電平有效并且引腳上接一個上拉電阻,D12通過該信號通知讀寫模塊圖2D12與讀寫模塊之間的接口需要進行和主機之間的數(shù)據(jù)處理;讀寫信號和片選信號均為低電平有效;時鐘信號輸出時鐘的頻率為48M H z/(N+1,其中N的數(shù)值由D12片內(nèi)寄存器決定,范圍從0到11。讀寫模塊可以通過設(shè)置該寄存器的數(shù)值來要求D12輸出相應(yīng)的時鐘頻率,這里所要求的時鐘頻率

9、是12M H z。此外,由于D12是工作在多路復(fù)用地址/數(shù)據(jù)總線模式下,所以要求D12的地址位A0接固定高電平。3讀寫模塊的設(shè)計3.1D12命令接口讀寫模塊是通過對D12輸入一系列命令來完成和主機之間的數(shù)據(jù)傳輸,這些命令主要包括設(shè)置地址、設(shè)置工作模式、讀中斷寄存器、選擇端點、端點應(yīng)答、端點輸入和端點輸出等。D12命令接口模塊的功能就是實現(xiàn)這些命令,它處于整個讀寫模塊的最低層,直接與D12進行數(shù)據(jù)接口,所以該模塊首先要能產(chǎn)生和M C U一樣的讀寫信號時序,其部分V er i l og H D L語言描述如下:assi gn m cu_dat a=w r?8'hzz:l am cu_dat

10、 a;/數(shù)據(jù)總線為雙向總線al w ays(posedge al e/al e上升沿鎖定地址l am cu_dat a<=addr;al w ays(negedge al e/al e下降沿關(guān)閉地址信息l am cu_dat a<=dat a_i n;al w ays(negedge r d/讀指令dat a_out<=m cu_dat a;al w ays(posedge cl k ornegedge r st/設(shè)計一狀態(tài)機產(chǎn)生讀寫指令的時序i f(!r stst at e<=I D LE;el se st at e<=next_st at e;安徽工業(yè)大學(xué)學(xué)報

11、2006年78al w ays(posedge cl kbegi nnext_st at e=st at e;/默認(rèn)時不改變當(dāng)前狀態(tài),狀態(tài)機設(shè)計部分省略針對不同的D12命令,數(shù)據(jù)總線上的數(shù)據(jù)和地址都不一樣。在對D12進行命令輸入時,首先向奇地址(如0F3H輸出相應(yīng)的命令代碼,然后再向偶地址(如0F0H輸出數(shù)據(jù),或從偶地址讀回數(shù)據(jù)。比如要實現(xiàn)讀中斷寄存器命令,D12命令接口模塊先向0F3H地址輸入數(shù)據(jù)0F4H(D12讀中斷寄存器命令代碼,然后再從0F0H的地址單元讀回一字節(jié)數(shù)據(jù),該數(shù)據(jù)內(nèi)容就是中斷寄存器的內(nèi)容。3.2中斷服務(wù)處理器D12是由中斷信號通知接口讀寫模塊和主機之間進行數(shù)據(jù)處理。中斷服務(wù)

12、處理器在接收到該信號后,通過D12命令接口向D12發(fā)送讀中斷寄存器命令,根據(jù)得到的中斷寄存器中的內(nèi)容來轉(zhuǎn)入相應(yīng)的中斷服務(wù)。根據(jù)D12的應(yīng)用特性和U S B協(xié)議3,可以把中斷服務(wù)類型分為6類:端點0輸入中斷/輸出中斷,端點1輸入中斷/輸出中斷和端點2輸入中斷/輸出中斷。其部分V er i l og H D L語言描述如下: case(I N I S R/I N I S R:中斷寄存器8'b10000000:S U S P E N D=1'b1;/總線掛起狀態(tài)8'b01000000:B U S R S T=1'b1;/總線復(fù)位狀態(tài)8'b00100000:E

13、P0TX=1'b1;/端點0輸入中斷8'b00010000:E P0R X=1'b1;/端點0輸出中斷8'b00001000:E P1TX=1'b1;/端點1輸入中斷8'b00000100:E P1R X=1'b1;/端點1輸出中斷8'b00000010:E P2TX=1'b1;/端點2輸入中斷8'b00000001:E P2R X=1'b1;/端點2輸出中斷文中設(shè)置D12的端點1和端點2同為批量傳輸類型,它們的中斷服務(wù)設(shè)計完全相同。處理輸入中斷時,需要調(diào)用D12命令接口模塊向D12發(fā)送端點輸入命令;同樣處

14、理輸出中斷時,需要調(diào)用D12命令接口模塊向D12發(fā)送端點輸出命令,端點的輸入/輸出 D12的端點0設(shè)置為控制傳輸類型,由于它所要傳輸?shù)臄?shù)據(jù)是U S B協(xié)議中所規(guī)定的一些標(biāo)準(zhǔn)數(shù)據(jù),所以端點0的中斷服務(wù)設(shè)計要比端點1和端點2復(fù)雜,在設(shè)計時除了要有和端點1、端點2相同的模塊外,還應(yīng)加上與標(biāo)準(zhǔn)請求處理器的連接。圖3端點輸入/輸出中斷服務(wù)處理狀態(tài)圖3.3標(biāo)準(zhǔn)請求處理器根據(jù)U S B協(xié)議所規(guī)定的,所有的U S B設(shè)備在剛接到主機時都處于缺省狀態(tài),所以主機要通過控制端點0向設(shè)備發(fā)送一系列請求,要求設(shè)備返回相應(yīng)的數(shù)據(jù),從而完成對設(shè)備的配置工作。標(biāo)準(zhǔn)請求共有11種類型,包括清除特性、請求配置、請求設(shè)備描述符、請

15、求接口設(shè)置、請求狀態(tài)、設(shè)置地址、設(shè)置配置值、設(shè)置特性和設(shè)置接口等標(biāo)準(zhǔn)請求3。標(biāo)準(zhǔn)請求處理器模塊接收到從端點0送來的數(shù)據(jù)包,提取出其中標(biāo)志字節(jié),判斷為哪種標(biāo)準(zhǔn)請求,然后轉(zhuǎn)到相應(yīng)的處理。每種標(biāo)準(zhǔn)請求的處理都不一樣,比如,主機請求設(shè)備描述符時,標(biāo)準(zhǔn)請求處理器模塊先確定描述符類型是用于設(shè)備還是端點。如果是設(shè)備,那么標(biāo)準(zhǔn)請求處理器通知端點0發(fā)送R A M數(shù)據(jù)緩沖區(qū)中事先存放的設(shè)備描述符;如果是端點,就發(fā)送端點描述符。3.4RAM數(shù)據(jù)緩沖區(qū)R A M數(shù)據(jù)緩沖區(qū)的設(shè)置和端點是相對應(yīng)的,每個端點緩沖區(qū)分輸入和輸出兩個部分,其大小均設(shè)置為128字節(jié)。端點0的輸出緩沖區(qū)用來存放設(shè)備描述符和端點描述符;端點1和端點

16、2的數(shù)據(jù)緩沖區(qū)則用來存第1期放實際應(yīng)用中傳輸?shù)臄?shù)據(jù)。3.5主循環(huán)主循環(huán)模塊在功能上處于整個FP G A 模塊的最頂層,主要檢查事件標(biāo)志并進入對應(yīng)的模塊進行處理;此外,還可根據(jù)使用的需要,包含人機接口的部分。中斷服務(wù)處理器模塊和主循環(huán)模塊通過事件標(biāo)志信號進行通信的,文中共設(shè)計了8位事件標(biāo)志位,如表1表1事件標(biāo)志位說明標(biāo)志位標(biāo)志位說明BU SR ST 該位置1表示總線復(fù)位SU SPEN D 該位置1表示總線掛起SETP 該位置1表示主機發(fā)送有SETU P 包I N I SR 該位置1表示進入D 12中斷處理程序CST0和CST1這兩位表示在處理SETU P 包過程中,D 12的處理狀態(tài)CO N F

17、I G 該位置1表示該設(shè)備枚舉成功EP1R X D 該位置1表示主機通過控制端點發(fā)數(shù)據(jù) 圖4主循環(huán)設(shè)計流程圖3C om pag,H ew l et t -P ackar d,I nt el ,Lucent ,M i cr osof t ,N E C ,P hi l i ps.U ni ver salS er i alB us S peci f i cat i on R evi si on 2.0D B /O L.ht t p:/w w w .usb.or g/devel oper s/docs/usb_20.zi p,2002-12-21/2005-04-24.4P hi l i ps I n

18、c.Fi r m w ar e P r ogr am m i ng G ui de f or P D I U S B D 12V er si on1.0D B /O L.ht t p:/w w w .sem i conduct or s.phi l i /acr obat _dow nl oad/var i ous/P D I U S B D 12_P R O G R A M M I N G _G U I D E .pdf .1998-09-23/2005-04-24.5X i l i nx I nc.I S E 4U serG ui de D B /O L.ht t p:/w w w .xi l i /suppor t /sw _m anual s/xi l i nx6/i ndex.ht m ,2001/2005-04-22.所示。中斷服務(wù)處理器模塊從D 12收集數(shù)據(jù),放入內(nèi)部R A M區(qū),然后置相應(yīng)的標(biāo)志位;而主循環(huán)則查詢標(biāo)志位,對數(shù)據(jù)進行處理。主循環(huán)設(shè)計為一狀態(tài)機,輪循各標(biāo)志位的狀態(tài),主循環(huán)的設(shè)計流程圖如圖4所示4。4結(jié)論提出的U S B 接口讀寫模塊的實現(xiàn)方案,用V er i l og H D L 語言實現(xiàn)代碼,已在X I LI N X 公司的FP G A V i r t ex X C V 300-6f g456中用X i l i nx I S

溫馨提示

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

最新文檔

評論

0/150

提交評論