《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 午夜爱爱网站 | 欧美妇性猛交视频 | 精品一区二区三区在线观看视频 | 欧美成人观看 | 在线观看啊啊啊 | 日本免费一级视频 | 成年视频xxxxx在线入口 | 国产成人综合久久精品红 | 午夜影院免费 | 欧美成人精品第一区二区三区 | 欧美色片在线观看 | 77788色淫网站免费视频 | 日本视频一区二区三区 | 一区二区国产在线观看 | 手机看片高清日韩精品 | a级大片在线观看 | 亚洲视频1| 日本黄色美女网站 | 亚洲国产成人久久综合一 | 黄色片一级视频 | 国产年成美女网站视频免费看 | 一本大道香蕉大vr在线吗视频 | 一级片手机在线 | 福利网在线观看 | 视频色www永久免费 视频区小说区图片区激情 视频免费1区二区三区 | 亚洲欧美日韩不卡 | 国产高清国产精品国产k | 国产视频福利在线 | 操美女影院 | 羞羞视频网页 | 午夜亚洲国产成人不卡在线 | 刺激第一页720lu久久 | 欧美色图亚洲 | 毛片在线视频 | 精品午夜寂寞黄网站在线 | 欧美日韩在线免费观看 | 成人精品一区二区不卡视频 | 色www免费视频 | 国产欧美日韩在线 | 日韩免费a级在线观看 | 污香蕉视频在线观看 |