- 相關推薦
基于FPGA的USB2.0控制器設計
摘要:介紹了一種用VHDL設計USB2.0功能控制器的方法,詳術了其原理和設計思想,并在FPGA上予以實現。關鍵詞:USB VHDL FPGA
在視頻存儲和圖像寬帶領域中,經常遇到實時高速數據傳輸的要求。2000年4月,由Intel、Microsoft、NEC、Compaq、Lucent、Phillips等公司共同制訂的USB2.0(Universal Serial Bus)傳輸協議,其速度遠遠超過了目前使用IEEE1394接口進行視頻傳輸的400Mbps,達到了480Mbps;而且具有即插即用的PnP(Plug And Play)、可進行菊花鏈式的級聯(通過USB HUB進行外圍擴展)、可串連多達127個USB設備等優點。應用該協議可支持實時語音、音頻和視頻數據的傳輸。
本文針對高速數據傳輸需求,根據USB2.0的協議規范,利用VHDL語言實現符合該協議的功能控制器,在視頻壓解系統中使數據在PC與外設之間高速傳輸。如圖1所示由視頻A/D采集的原始視頻數據,在Philips公司生產的TM1300專用視頻處理器中壓縮后,通過USB控制器送至PC機。PC機的整個通過USB控制器傳輸到TM1300,解壓后發送至視頻D/A。
1 控制器結構原理
USB2.0控制器結構框圖如圖2所示。控制器主要由兩個部分組成,其一為與外設的接口,另一個是內部協議層邏輯PL(Protocol Layer)。內部存儲器仲裁器實現對內部DMA和外部總線對存儲器訪問之間的仲裁。PL則實現USB的數據I/O和控制。
接口有三種:一種是與微控制器之間的功能接口;一種是與單口同步靜態存儲器(SSRAM)之間的接口;另外一種是與物理層之間的接口。這里符合UTMI(USB Transceiver Macrocell Interface)規范定義。
2 控制器實現
控制器接口的信號框圖如圖3所示。存儲器采用標準的單口SRAM,其信號接口由32位數據線SRAM_DATA、15位地址線SRAM_ADDR及讀寫信號(SRAM_WE和SRAM_RD)組成,系統所需SRAM的容量為2 15×32bit=128KB。
而與微控制器之間的接口信號包括32位數據線DATA、18位地址線ADDR以及DMA請求和響應信號(DMA_REQ和DMA_ACK)。由于要支持到128KB,需要17位地址線,另外還需要一根地址線來選通SSRAM和USB控制器內部的寄存器,總共需要18根地址線addr[17:0]。定義如下:
USB_RF_SEL <= !addr[17];
USB_MEM_SEL <=addr[17];
第18位地址addr[17]為高時選擇緩沖存儲器,否則選擇內部寄存器。地址addr[16:2]直接用于存儲器SSRAM的地址。
2.1 UTMI接口
UTMI接口信號包括:與發送數據相關的信號(TxValid、TxReady等),與接收數據相關的信號(RxActive、RxValid、RxError等)以及16位雙向數據線。
&nbs
[1] [2] [3] [4] [5]
【基于FPGA的USB2.0控制器設計】相關文章:
基于FPGA的DDS設計方法05-02
基于FPGA的數字系統設計04-27
基于FPGA的DDS信號源設計04-27
基于FPGA技術的位置反饋系統設計05-01
基于DSP和FPGA的筆劃字符發生器設計04-26
基于FPGA的α-β濾波器的實現05-02
基于DSP的自適應桁架振動控制器設計04-30