《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 夜夜爽免费视频 | 日本视频一区二区三区 | 你懂的免费 | 每日更新国产 | 亚洲小说综合 | 国产全黄a一级毛片 | 国内成人精品视频 | 看全色黄大色大片免费久久久 | 91视频最新地址 | 日本韩国三级在线 | 男女午夜性爽快免费视频不卡 | 2021国产精品自拍 | 欧美00xx | 黄色片一级片 | 日本特交大片免费观看 | 久久精品一区二区三区日韩 | 狠狠色噜噜狠狠狠狠97不卡 | 最新中文字幕av专区 | 亚洲福利精品一区二区三区 | 五月欧美| 农村寡妇女人一级毛片 | 一本久久综合亚洲鲁鲁五月天 | 成人免费手机在线看网站 | 热热色原原网站 | yellow在线免费视频 | 伊人激情综合 | 久久综合久久精品 | 国产欧美亚洲三区久在线观看 | 在线色视频网站 | 在线你懂的视频 | 欧美一级黄色片免费看 | 男女国产视频 | 日韩在线aⅴ免费视频 | 欧美日韩在线播放成人 | 日韩美a一级毛片 | 亚洲欧美片| 在线观看国产精成人品 | 91av综合| 国产成人精品免费视频 | 黄色免费观看视频 | 中文字幕精品视频在线观看 |