《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于CY7C68013A的USB2.0高速接口設(shè)計(jì)
基于CY7C68013A的USB2.0高速接口設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2014年第1期
趙 林, 孟令軍, 于 磊, 張 園
中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室 電子測(cè)試技術(shù)重點(diǎn)實(shí)驗(yàn)室, 山西 太原030051
摘要: 為了充分利用USB2.0的帶寬,解決數(shù)據(jù)傳輸時(shí)存在的速度瓶頸問(wèn)題,提出了一種基于CY7C68013A的USB2.0高速接口設(shè)計(jì)方法。采用CY7C68013A的SLAVE FIFO工作模式,芯片內(nèi)部CPU不參與數(shù)據(jù)傳輸,F(xiàn)PGA設(shè)計(jì)的外部控制電路直接讀寫(xiě)芯片內(nèi)部FIFO,有效避免了內(nèi)部CPU參與數(shù)據(jù)傳輸時(shí)帶來(lái)的時(shí)間開(kāi)銷(xiāo),從而提高了傳輸速度。
關(guān)鍵詞: FPGA USB2.0 CY7C68013A
中圖分類(lèi)號(hào): TP303
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)01-0131-03
USB2.0 high speed interface design based on CY7C68013A
Zhao Lin, Meng Lingjun, Yu Lei, Zhang Yuan
National Key Laboratory For Electronic Measurement Technology, Key Laboratory of Instrumentation Science & Dynamic Measurement, North University of China, Taiyuan 030051, China
Abstract: In order to fully utilize the bandwidth of USB2.0 and solve the transmission bottleneck problem, a high-speed USB2.0 interface based on CY7C68013A is proposed in this paper. CY7C68013A runs at SLAVE FIFO mode,the chip’s CPU is not involved in the data transmission. The external control circuit is designed by FPGA which read and write the chip FIFO directly. The design effectively avoids wasting of time if the internal CPU participate in the data transmission, and increases the transmission speed.
Key words : USB 2.0; CY7C68013A; FPGA

    USB(Universal Serial Bus)是一種通用串行總線(xiàn),主要用于USB主機(jī)和USB設(shè)備的通信。USB接口以其快速、即插即拔、接口規(guī)范統(tǒng)一及使用方便等優(yōu)點(diǎn)成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì)[1-2]。雖然USB2.0接口最高可達(dá)到60 MB/s(480 Mb/s)的傳輸速度,但是目前多數(shù)USB2.0設(shè)備的傳輸速度通常低于30 MB/s,難以滿(mǎn)足某些系統(tǒng)對(duì)高速數(shù)據(jù)傳輸?shù)男枨?,如高清圖像、高清視頻的實(shí)時(shí)采集。本文所設(shè)計(jì)的USB2.0傳輸速度可達(dá)約49 MB/s,滿(mǎn)足了高速數(shù)據(jù)傳輸?shù)囊蟆?br/>1 芯片介紹
    CY7C68013A芯片是賽普拉斯半導(dǎo)體公司USB2.0控制器中的旗艦產(chǎn)品,單片集成USB2.0收發(fā)器、智能串行接口引擎和增強(qiáng)型8051微處理器,16 kB代碼/數(shù)據(jù)RAM,4 kB FIFO,可配置為2倍、3倍和4倍緩沖區(qū),一個(gè)可編程GPIF接口,支持USB2.0協(xié)議規(guī)定的控制傳輸、同步傳輸、中斷傳輸以及批量傳輸。支持速率為12 Mb/s的全速傳輸和速率為480 Mb/s的高速傳輸[3-4]。
2 接口設(shè)計(jì)
2.1 硬件連接

 采用ALTERA公司CycloneIII系列的FPGA芯片作為主控器, CY7C68013A工作在SLAVE FIFO模式, 內(nèi)部的CPU不參與數(shù)據(jù)傳輸,F(xiàn)PGA直接對(duì)芯片內(nèi)部FIFO進(jìn)行讀取,硬件連接如圖1所示,各信號(hào)功能如表1所示。

2.2 固件設(shè)計(jì)
    為了縮短開(kāi)發(fā)周期,賽普拉斯半導(dǎo)體公司為用戶(hù)提供了固件框架,用戶(hù)只需在此固件的基礎(chǔ)上進(jìn)行修改即可實(shí)現(xiàn)二次開(kāi)發(fā)。固件的工作流程為:上電復(fù)位后,首先初始化全局變量,然后調(diào)用TD_Init()函數(shù)來(lái)配置傳輸所用到的端點(diǎn)和FIFO,初始化用戶(hù)自定義變量。使能中斷后,CPU進(jìn)入循環(huán)中,每次循環(huán)都調(diào)用一次TD_Poll()函數(shù),用戶(hù)程序放在此函數(shù)中。需要用戶(hù)修改的函數(shù)是TD_Init()和TD_Poll()。
    CY7C68013A內(nèi)部集成8個(gè)512 B緩沖區(qū),有12種配置方法。為了實(shí)現(xiàn)高速傳輸,本設(shè)計(jì)用到所有緩沖區(qū),設(shè)置成2個(gè)端點(diǎn):端點(diǎn)2為輸出端點(diǎn),端點(diǎn)深度4×512 B;端點(diǎn)6為輸入端點(diǎn),端點(diǎn)深度4×512 B。具體代碼如下:
void TD_Init( void )
{
    CPUCS=0x12;                //CPU工作時(shí)鐘為48 MHz
    IFCONFIG=0x43;        //同步SLAVE FIFO工作模式,
                        同步時(shí)鐘由FPGA提供,頻率為
                        48 MHz
    SYNCDELAY;
    EP2CFG=0xA0;        //端點(diǎn)2方向?yàn)镺UT,4倍緩沖,
                        每個(gè)緩沖區(qū)大小為512 B
    SYNCDELAY;
    EP6CFG=0xE0;        //端點(diǎn)6方向?yàn)镮N,4倍緩沖,每
                        個(gè)緩沖區(qū)大小為512 B
    SYNCDELAY;
    FIFORESET=0x80;                   //激活A(yù)K-ALL
    SYNCDELAY;
    FIFORESET=0x02;                         //復(fù)位端點(diǎn)2
    SYNCDELAY;
    FIFORESET=0x06;                      //復(fù)位端點(diǎn)6
    SYNCDELAY
    FIFORESET=0x00;                              //關(guān)閉AK-ALL
    SYNCDELAY;
    PINFLAGSAB=0xE6;             //FLAGB為端點(diǎn)6滿(mǎn)標(biāo)志
    SYNCDELAY;
    PINFLAGSCD=0xF8;              //FLAGC為端點(diǎn)2空標(biāo)志
    SYNCDELAY;
    FIFOPINPOLAR=0x00;               //所有控制信號(hào)低有效
    SYNCDELAY;
    EP2FIFOCFG=0x11;        //端點(diǎn)2為自動(dòng)模式,寬度
                            為16 bit
    SYNCDELAY;
    EP6FIFOCFG=0x09;        //端點(diǎn)6為自動(dòng)模式,寬度
                            為16 bit
}
void TD_Poll( void )
{
                 //為了實(shí)現(xiàn)高速傳輸,內(nèi)部低速CPU不參
                      //與數(shù)據(jù)傳輸,讀寫(xiě)FIFO由FPGA來(lái)完成,
                      //此處不需代碼
}
3 工作過(guò)程
3.1 寫(xiě)入數(shù)據(jù)

    FPGA不斷檢測(cè)FLAGB(端點(diǎn)6滿(mǎn)信號(hào)),當(dāng)FLAGB為高時(shí),端點(diǎn)6非滿(mǎn),F(xiàn)PGA拉低SLWR信號(hào),在每個(gè)IFCLK上升沿寫(xiě)入一個(gè)16 bit數(shù)據(jù);當(dāng)FLAGB為低時(shí),端點(diǎn)6滿(mǎn),F(xiàn)PGA拉高SLWR信號(hào),停止寫(xiě)數(shù)。工作流程如圖2所示。

4 調(diào)試結(jié)果
    實(shí)驗(yàn)用Quartus II自帶邏輯分析儀Signal Tap II對(duì)讀寫(xiě)數(shù)據(jù)進(jìn)行實(shí)時(shí)采樣。
4.1 寫(xiě)入數(shù)據(jù)
 圖4為寫(xiě)入數(shù)據(jù)的波形, FIFOADDR指向端點(diǎn)6,F(xiàn)PGA檢測(cè)到端點(diǎn)6非滿(mǎn)時(shí),拉低SLWR信號(hào),在SLWR低電平期間每個(gè)IFCLK上升沿寫(xiě)入一個(gè)16 bit數(shù)據(jù)。為了便于看清整體傳輸過(guò)程,將寫(xiě)入波形縮小,如圖5所示。

    圖5顯示了一次性將512 B數(shù)據(jù)寫(xiě)入端點(diǎn)6所用的時(shí)間,約為5.3 ?滋s,突發(fā)數(shù)據(jù)傳輸速率為96 MB/s。在每次寫(xiě)入512 B數(shù)據(jù)后會(huì)有一段約為4.9 μs的空閑時(shí)間,空閑時(shí)間是主機(jī)用來(lái)處理數(shù)據(jù)的時(shí)間,即是主機(jī)而不是CY7C68013A限制著傳輸速度。由突發(fā)傳輸階段和空閑階段可以算出平均寫(xiě)入數(shù)據(jù)的速率約為49.8 MB/s。
4.2 讀出數(shù)據(jù)
    圖6為讀出數(shù)據(jù)的波形,F(xiàn)IFOADDR指向端點(diǎn)2,F(xiàn)PGA檢測(cè)到端點(diǎn)2非空時(shí),拉低SLRD和SLOE信號(hào),在SLRD低電平期間每個(gè)IFCLK上升沿讀出一個(gè)16 bit數(shù)據(jù)。為了便于看清整體傳輸過(guò)程,將寫(xiě)入波形縮小,如圖7所示。
    圖7顯示了從端點(diǎn)2一次性讀出512 B數(shù)據(jù)所用的時(shí)間,約為5.3 ?滋s,突發(fā)數(shù)據(jù)傳輸速率為96 MB/s。在每次讀出512 B數(shù)據(jù)后會(huì)有一段約為5.1 ?滋s的空閑時(shí)間,空閑時(shí)間是主機(jī)用來(lái)處理數(shù)據(jù)的時(shí)間,即是主機(jī)而不是CY7C68013A限制著傳輸速度。由突發(fā)傳輸階段和空閑階段可以算出平均讀出數(shù)據(jù)的速率約為48.9 MB/s。

 

    本文闡述了一種高速USB2.0接口的整體設(shè)計(jì)過(guò)程,充分利用了USB2.0帶寬,讀寫(xiě)速度可達(dá)49 MB/s。實(shí)踐表明,該接口可應(yīng)用于高清圖像、高清視頻的實(shí)時(shí)采集系統(tǒng)中。
參考文獻(xiàn)
[1] Cypress Semiconductor Corporation. EZ-USB[R]. FX2LP  Datasheet.USA,2012.
[2] Cypress Semiconductor Corporation. EZ-USB[R]. Technical Reference Manual. USA, 2011.
[3] 胡曉軍.USB接口開(kāi)發(fā)技術(shù)[M]. 西安:西安電子科技大學(xué)出版社, 2005.
[4] 戴小俊.基于USB和DSP的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,2007,33(1):84-86.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。