新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 高速USB接口設(shè)計(jì)

高速USB接口設(shè)計(jì)

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

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

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

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

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

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

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


上一頁 1 2 下一頁

關(guān)鍵詞: USB 接口設(shè)計(jì)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉