《電子技術應用》
您所在的位置:首頁 > 可编程逻辑 > 设计应用 > 基于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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美综合在线第二页| 国产高潮呻吟久久久| 久久久久久九九| 91精品视频免费看| 国产精品美女在线| 欧美国产亚洲一区| 日韩视频 中文字幕| 日韩wumaV| 亚洲二区自拍| 国产精品高清在线| 国语自产精品视频在线看| 日韩在线播放一区| 欧美日本亚洲| 日韩精品一区二区三区外面| 69av在线视频| 亚洲熟妇无码一区二区三区| 国产成a人亚洲精v品在线观看| 国产在线精品成人一区二区三区| 日韩视频永久免费观看| 99免费视频观看| 国产福利不卡| av免费观看网| 国产精品免费在线播放| 国产精品入口尤物| 国产精品毛片一区视频| 国产精品国产三级国产专播精品人| 国产区精品视频| 国产精品高潮呻吟久久av野狼| 国产精品九九久久久久久久| 精品国产乱码久久久久| 国产一区视频免费观看| 国产精品毛片va一区二区三区| 国产精品免费在线免费| www国产精品com| 久久亚洲a v| 久久精品午夜福利| 久久99精品久久久久子伦| 精品人妻一区二区三区四区在线| 久久久亚洲影院| 国产日韩中文字幕| 国产精品爽爽爽|