新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > 高速USB接口設計

高速USB接口設計

作者: 時間:2009-04-27 來源:網絡 收藏
1 引言
傳統(tǒng)的通信方式傳輸速度慢、抗干擾能力弱、安裝麻煩等原因嚴重阻礙了數據采集設備的發(fā)展,隨著電子信息技術的迅猛發(fā)展。計算機和外圍設備得到飛速發(fā)展和應用。新一代通用串行總線,簡稱。具有傳輸線少、速度快、支持熱插拔以及易于擴展等優(yōu)點,很好解決了以上問題,因此串行總線技術在計算機系統(tǒng)及通信設備中得到廣泛的應用,為了滿足數據采集傳輸速度的要求.所以提出了高速接口的設計與實施。
系統(tǒng)硬件實現數據采集功能,并將采集的數據送至控制器,再通過USB接口將數據傳送給PC機。硬件設計主要包括USB2.O主控制器(CY7C68013)外圍電路設計、CY7C68013與FPGA連接等。系統(tǒng)軟件包括USB固件程序、設備的驅動程序和用戶界面程序。USB固件程序在keilC中完成,實現對CY7C68013初始化,設備驅動程序為用戶界面程序提供軟件和硬件平臺連接的通道,由DriverStudiO開發(fā);用戶界面程序采用VB語言完成,在VB中調用驅動函數中的句柄對硬件設備進行操作,實現數據的接收、保存、顯示和打印功能。

2 USB控制器件CY7C68013內部結構
CY7C68013是Cypres公司生產EZ―USB FX2系列的一種。其內部結構如圖1所示。EZ-USB FX2系列的典型應用是無線局域網、移動硬盤、DSL調制解調器等接口類設備。為滿足不同用戶的需要,Cypress公司為FX2提供了4種封裝形式:128引腳TQFP;100引腳QFN;56引腳QFN;56引腳SSOP。這些同種類不同封裝的其內部結構相同,不同的封裝形式引出的外部引腳數量有所不同。EZ―USB FX2擁有獨特的結構,其串行接口引擎(SIE)負責完成諸如數據的編解碼、差錯控制、位填充等與USB協議有關的功能,將嵌入式MCU(增強型8051)解放出來,簡化固件代碼的開發(fā)。FX2中還包含一個通用可編程接口(GPIF),它支持所有通用的總線標準,并可與外部ASIC、DSP等直接相連,對于EZ―USB FX系列需要微處理器(增強型8051)參與端點FIFO與外圍電路之間的數據傳輸,由于增強型8051本身的工作頻率較低,限制了傳輸速率的進一步提高。雖然這種限制在12Mb/s的全速模式下并不明顯,但當速率提升至480 Mb/s的高速模式時,微處理器必將成為整個系統(tǒng)的帶寬瓶頸。為此,在EZ―USBFX2中,USB接口和外圍電路直接共享FIFO存儲器。增強型8051可不參與數據傳輸,但通過FIFO或RAM的方式訪問所傳輸的數據,這些FIF0與USB之間的傳輸以數據包的形式實現,此處理被稱為“量子FIF0”,它很好的解決了USB高速傳輸模式下的帶寬問題。

本文引用地址:http://www.butianyuan.cn/article/188948.htm

EZ-USBFX2內部包含3個固定的64字節(jié)端點緩沖區(qū)(0xE740~0x7FF)和4KB的可配置端點緩沖區(qū)空間(OxF000~OxFFFF)。3個64字節(jié)的緩沖區(qū)分別用于EPO,EPIIN和EPIOUT,4KB的可配置緩沖區(qū)用于EP2、EP4、EP6和EP8。其中,端點0默認為控制端點,其0UT和IN數據共享一塊存儲空間(OxE740~OxE77F),端點1支持塊傳輸、中斷傳輸和同步傳輸,其OUT數據占用緩沖區(qū)OxE780~0xE7BF,IN數據占用緩沖區(qū)OxE7C0~0xE7FFa端點。端點l僅能由EZ-USB FX2的固件訪問端點2、端點4,端點6和端點8是大容量高帶寬的數據傳輸端點,其無需8051固件干涉便可同外圍電路完成高速數據傳輸。這4個端點具有非常靈活的配置方式,適應不同場合下的帶寬要求。其中雙重緩沖意味著USB讀寫一個緩沖區(qū)的同時,另一緩沖區(qū)可以與外圍電路進行數據通信;三重緩沖增加了第3個數據緩沖區(qū),可供USB端或外圍電路端使用;四重緩沖增加了第4個緩沖區(qū)。多重緩沖結構可在數據讀寫雙方速度相似時,有效提高USB帶寬的性能,平滑帶寬抖動,并減少雙方的互相等待時間。

3 硬件設計
USB控制器及其外圍電路組成系統(tǒng)的數據讀取和傳輸模塊,主要負責讀取數據及與PC機通信,從而完成系統(tǒng)功能。EZ―USBFX2和FPGA的從SlaveFIF0硬件連接如圖2所示。

EZ-USBFX2和FPGA之間的通信模式既可選擇從屬FIFO接口模式,也可選擇GPIF接口模式。通過配置IF―CONFIG[l:0]來選擇。當為11時,選擇從屬FIFO接口模式;當為10時,選擇GPIF接口模式。
當EZ―USBFX2被設置為SlaveFIFO接口模式時,USB數據在PC機和FPGA中傳輸,不需EZ-USBFX2的CPU參與,而經EZ-USBFX2的內部端點FIFO傳輸。對FPGA端點FIFO提供了FPGA經16位數據總線FD連接EZ―USBFX2 FIFO,其數據總線是雙向,通過SLOE引腳控制輸出。FIFOADR[1:O]引腳選擇4個FIFO中的一個與FD總線連接。異步方式下,SLRD和SLWR是讀/寫選通信號。同步方式下,SLRD和SLWER作為IFCLIK時鐘引腳使能信號。這里采用異步方式。

4 USB固件程序的設計
為了簡化固件編程,Cypress提供了固件編程框架,在此基礎上只需要修改少量代碼即完成固件編程。固件編程框架完成了USB標準設備請求和USB電源管理,并提供了任務調度函數,在任務調度函數中編寫少量代碼就可完成編程。只需要提供USB設備描述符表和外圍操作程序就可實現一
個功能完整的USB設備。
4.1 函數介紹
Void TD_Init(void):此函數主要完成EZ-USBFX2的初始化,在EZ―USBFX2再次枚舉和開始任務分配前被調用,其目的是初始化各個端口以及各端口的先入先出緩沖區(qū)。


上一頁 1 2 下一頁

關鍵詞: USB 接口設計

評論


相關推薦

技術專區(qū)

關閉