基于FPGA的USB接口IP核設(shè)計(jì)
摘要: 重點(diǎn)闡述了USB接口IP核關(guān)鍵模塊的設(shè)計(jì)和驗(yàn)證,用VerilogHDL對(duì)USBIP核協(xié)議RTL級(jí)代碼編寫(xiě),對(duì)USB協(xié)議的數(shù)據(jù)流、傳輸?shù)冗M(jìn)行了深入的分析,在Xilinx ISE軟件平臺(tái)上進(jìn)行了FPGA綜合,并在Xilinx FPGA開(kāi)發(fā)板上調(diào)試成功。通過(guò)在ModelSim6.0上仿真、ISE9.1上綜合并在FPGA開(kāi)發(fā)板上驗(yàn)證,最后采用0.35μm CMOS工藝實(shí)現(xiàn)版圖設(shè)計(jì),工作頻率120 MHz,3.3 V電壓時(shí)工作電流9mA,靜態(tài)電流40μA。結(jié)果表明文中USB接口IP設(shè)計(jì)是可行的。
關(guān)鍵詞: IP;通用串行總線;VerilogHDL;協(xié)議層;SIE
USB(通用串行總線)作為一種外設(shè)連接技術(shù),是計(jì)算機(jī)外設(shè)連接技術(shù)的重大變革,USB具有速度快、通用性好、擴(kuò)展性強(qiáng)、功耗低、穩(wěn)定、易開(kāi)發(fā)等眾多優(yōu)點(diǎn),在實(shí)踐中獲得了廣泛的應(yīng)用,逐步成為PC機(jī)的一種標(biāo)準(zhǔn)接口。USB接口控制芯片是實(shí)現(xiàn)USB設(shè)備與主機(jī)建立通信所必須的芯片,目前國(guó)內(nèi)的USB開(kāi)發(fā)者所采用的芯片都是由國(guó)外的芯片商所提供,如Cypress、NEC、Motorola等大的IC設(shè)計(jì)公司,價(jià)格較貴。由于USB的廣泛應(yīng)用,國(guó)內(nèi)外眾多科研機(jī)構(gòu)和集成電路設(shè)計(jì)公司都把目光投向USB這項(xiàng)具有廣闊市場(chǎng)前景的技術(shù)。USB內(nèi)核(USB Core)是USB接口控制芯片的關(guān)鍵模塊,設(shè)計(jì)一個(gè)穩(wěn)定、高速的USB內(nèi)核更是芯片成功推向市場(chǎng)的前提。
1 USB通信原理
USB通信邏輯上分成了3層:信號(hào)層、協(xié)議層和數(shù)據(jù)層。信號(hào)層用來(lái)實(shí)現(xiàn)在USB設(shè)備和主機(jī)的物理連接之間傳輸位信息流的信息。邏輯層用來(lái)實(shí)現(xiàn)在USB設(shè)備和USB主機(jī)端的協(xié)議軟件之間傳輸包字節(jié)流的信息,它們?cè)谛盘?hào)層被編碼成NRZI位信息后傳送出去。數(shù)據(jù)傳輸層用來(lái)實(shí)現(xiàn)在USB主機(jī)端的客戶端驅(qū)動(dòng)程序和設(shè)備端的功能接口之間傳輸有一定意義的信息,這些信息在協(xié)議層被打包成包格式。
1.1 傳輸?shù)幕締卧?br /> 包(Packet)是USB系統(tǒng)中信息傳輸?shù)幕締卧=Y(jié)構(gòu),如圖1所示,根據(jù)USB規(guī)范,包的類(lèi)型有:令牌包、數(shù)據(jù)包、握手包和專(zhuān)用包。
USB總線操作(通訊過(guò)程)都可以歸結(jié)為3種包的傳輸:令牌包、數(shù)據(jù)包和應(yīng)答包。任何操作都是從主機(jī)開(kāi)始的,主機(jī)以預(yù)先排好的時(shí)序,發(fā)出一個(gè)描述操作類(lèi)型、方向、外設(shè)地址以及端點(diǎn)號(hào),稱之為令牌包Foken Packet。然后由在令牌中指定的數(shù)據(jù)發(fā)送者發(fā)出一個(gè)數(shù)據(jù)包Data Packet或者報(bào)告它沒(méi)有數(shù)據(jù)可以傳輸。而數(shù)據(jù)的目的地一般要以一個(gè)應(yīng)答包Handshake Packet做出響應(yīng)表明傳輸是否成功。
評(píng)論