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