《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于CY7C68013A的USB2.0高速接口設計
基于CY7C68013A的USB2.0高速接口設計
來源:電子技術應用2014年第1期
趙 林, 孟令軍, 于 磊, 張 園
中北大學 儀器科學與動態測試教育部重點實驗室 電子測試技術重點實驗室, 山西 太原030051
摘要: 為了充分利用USB2.0的帶寬,解決數據傳輸時存在的速度瓶頸問題,提出了一種基于CY7C68013A的USB2.0高速接口設計方法。采用CY7C68013A的SLAVE FIFO工作模式,芯片內部CPU不參與數據傳輸,FPGA設計的外部控制電路直接讀寫芯片內部FIFO,有效避免了內部CPU參與數據傳輸時帶來的時間開銷,從而提高了傳輸速度。
關鍵詞: FPGA USB2.0 CY7C68013A
中圖分類號: TP303
文獻標識碼: A
文章編號: 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)是一種通用串行總線,主要用于USB主機和USB設備的通信。USB接口以其快速、即插即拔、接口規范統一及使用方便等優點成為現代數據傳輸的發展趨勢[1-2]。雖然USB2.0接口最高可達到60 MB/s(480 Mb/s)的傳輸速度,但是目前多數USB2.0設備的傳輸速度通常低于30 MB/s,難以滿足某些系統對高速數據傳輸的需求,如高清圖像、高清視頻的實時采集。本文所設計的USB2.0傳輸速度可達約49 MB/s,滿足了高速數據傳輸的要求。
1 芯片介紹
    CY7C68013A芯片是賽普拉斯半導體公司USB2.0控制器中的旗艦產品,單片集成USB2.0收發器、智能串行接口引擎和增強型8051微處理器,16 kB代碼/數據RAM,4 kB FIFO,可配置為2倍、3倍和4倍緩沖區,一個可編程GPIF接口,支持USB2.0協議規定的控制傳輸、同步傳輸、中斷傳輸以及批量傳輸。支持速率為12 Mb/s的全速傳輸和速率為480 Mb/s的高速傳輸[3-4]。
2 接口設計
2.1 硬件連接

 采用ALTERA公司CycloneIII系列的FPGA芯片作為主控器, CY7C68013A工作在SLAVE FIFO模式, 內部的CPU不參與數據傳輸,FPGA直接對芯片內部FIFO進行讀取,硬件連接如圖1所示,各信號功能如表1所示。

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

    FPGA不斷檢測FLAGB(端點6滿信號),當FLAGB為高時,端點6非滿,FPGA拉低SLWR信號,在每個IFCLK上升沿寫入一個16 bit數據;當FLAGB為低時,端點6滿,FPGA拉高SLWR信號,停止寫數。工作流程如圖2所示。

4 調試結果
    實驗用Quartus II自帶邏輯分析儀Signal Tap II對讀寫數據進行實時采樣。
4.1 寫入數據
 圖4為寫入數據的波形, FIFOADDR指向端點6,FPGA檢測到端點6非滿時,拉低SLWR信號,在SLWR低電平期間每個IFCLK上升沿寫入一個16 bit數據。為了便于看清整體傳輸過程,將寫入波形縮小,如圖5所示。

    圖5顯示了一次性將512 B數據寫入端點6所用的時間,約為5.3 ?滋s,突發數據傳輸速率為96 MB/s。在每次寫入512 B數據后會有一段約為4.9 μs的空閑時間,空閑時間是主機用來處理數據的時間,即是主機而不是CY7C68013A限制著傳輸速度。由突發傳輸階段和空閑階段可以算出平均寫入數據的速率約為49.8 MB/s。
4.2 讀出數據
    圖6為讀出數據的波形,FIFOADDR指向端點2,FPGA檢測到端點2非空時,拉低SLRD和SLOE信號,在SLRD低電平期間每個IFCLK上升沿讀出一個16 bit數據。為了便于看清整體傳輸過程,將寫入波形縮小,如圖7所示。
    圖7顯示了從端點2一次性讀出512 B數據所用的時間,約為5.3 ?滋s,突發數據傳輸速率為96 MB/s。在每次讀出512 B數據后會有一段約為5.1 ?滋s的空閑時間,空閑時間是主機用來處理數據的時間,即是主機而不是CY7C68013A限制著傳輸速度。由突發傳輸階段和空閑階段可以算出平均讀出數據的速率約為48.9 MB/s。

 

    本文闡述了一種高速USB2.0接口的整體設計過程,充分利用了USB2.0帶寬,讀寫速度可達49 MB/s。實踐表明,該接口可應用于高清圖像、高清視頻的實時采集系統中。
參考文獻
[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接口開發技術[M]. 西安:西安電子科技大學出版社, 2005.
[4] 戴小俊.基于USB和DSP的數據采集系統設計[J]. 電子技術應用,2007,33(1):84-86.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲高清在线观看看片 | 日本乱人伦片中文字幕三区 | 色综合久久88色综合天天提莫 | a级毛片免费观看在线播放 a级毛片免费看 | 91精品日本久久久久久牛牛 | 未成人做爰视频www 窝窝午夜精品一区二区 | 国产视频久久 | 中国一级特黄真人毛片 | 久久99精品久久久久久h | 欧美一级特黄aaaaaa在线看片 | 在线播放国产真实女同事 | 777444欧美影视 | 免费人成黄页在线观看视频国产 | aaa色| 欧美videos娇小 | 97公开视频 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 香蕉久久国产 | 免费精品国产日韩热久久 | pgone太大了兽王免费视频 | 日本aaaa级片 | 久久久99视频 | 久久大胆视频 | 兔子先生节目在线观看免费 | 中文字幕欧美亚洲 | 国内9l视频自拍 | 俄罗斯毛片免费大全 | 91国偷自产一区二区三区 | 欧美日韩国产亚洲综合不卡 | 高清国产在线播放成人 | 夜夜躁狠狠躁日日躁2021 | 91精品国产欧美一区二区 | 九九在线观看视频 | 99久久久久国产精品免费 | 精品亚洲永久免费精品 | 日本无卡码一区二区三区 | 91成人精品 | 亚洲一区二区三区免费视频 | 欧美天堂 | 波多野结衣一区二区三区高清在线 | 亚洲tv成人天堂在线播放 |