《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久香草视频在线观看 | 一区二区三区日韩 | 免费一级片视频 | 成人国产免费 | 中国欧美一级毛片免费 | 中文字幕一二区 | 久久精品国产精品亚洲综合 | 日韩视频一区二区 | 特级毛片aaaa级毛片免费 | 日本高清免费视频色www | 性欧美视频a毛片在线播放 性欧美一级 | 一区二区三区四区视频在线观看 | 国产在线观看免费视频软件 | cao美女视频网站在线观看 | 日韩三级一区二区 | 欧美激情特级黄aa毛片 | 久草在线资源网站 | 黄色美女网站免费看 | 欧美日韩亚洲综合久久久 | 可以免费观看欧美一级毛片 | 黄色毛片视频校园交易 | 亚洲成人在线免费观看 | 国产乱子视频 | 一级欧美一级日韩片 | 久久精品中文字幕不卡一二区 | 亚洲爽 | 欧美日韩在线观看视频 | 视频一区色眯眯视频在线 | 精品国产v无码大片在线观看 | 黄色美女视频 | 日韩成人三级 | 波多野结衣视频免费观看 | 美国美女一级毛片免费全 | 亚洲视频免费看 | 国产精品1区2区3区在线播放 | 美女mm131爽爽爽免费视色 | 亚洲综合色在线观看 | 亚洲日本va午夜中文字幕一区 | 国产精品拍拍拍福利在线观看 | 日本一区毛片免费观看 | 日本道在线播放 |