《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于CY7C68013的高速數據傳輸系統的設計
基于CY7C68013的高速數據傳輸系統的設計
來源:電子技術應用2010年第7期
熊俊俏,劉 崢
武漢工程大學 電氣信息學院,湖北 武漢430073
摘要: 采用Cypress公司的CY7C68013芯片設計了通用的USB接口,結合MAX7128的串/并/串轉換和光纖收發系統,實現數據的高速傳輸。介紹了系統的軟硬件結構, 詳細介紹了固件設計和WDM驅動程序的結構、特性、工作機制、軟件流程及與USB設備通信的方法。測試表明,該系統達到了預期的設計目標和實用要求。
中圖分類號: TP334.7
文獻標識碼: A
文章編號: 0258-7998(2010)07-0073-03
Design and realization of high-speed data transmission system based on CY7C68013
XIONG Jun Qiao,LIU Zheng
College of Electrical and Electronic Engineering, Wuhan Institute of Technology, Wuhan 430073,China
Abstract: A common USB interface was designed based on Cypress′s CY7C68013 chip, jointed with serial- parallel or parallel-serial conversion by MAX7128 and optical transceiver systems, the high-speed data transmission was achieved. The system hardware and software architecture was described. All were described in detail including firmware design, structure、characteristics and working mechanism of WDM driver software, software processes and methods to communicate with USB devices. The testing shows that the system can absolutely fulfill the design and practical requirements.
Key words : CY7C68013;USB2.0;MCU;WDM

    USB控制器是以USB串口引擎為主的專用集成電路,并可延伸至對其進行管理的MCU以及相應的軟硬件。目前市場上供應的USB控制器主要有2種:帶USB接口的單片機(MCU)或純粹的USB接口芯片。帶USB接口的單片機可分為2類:一類是從底層設計專用于USB控制的單片機,如Cypress公司的CY7C63513、CY7C64013等[1],由于開發工具的專用性,往往應用于各種專業應用場合,如微機主板等[2-4];另一類是增加了USB接口的普通單片機,如Intel公司的8X931、8X930以及Cypress公司的EZ-USB,由于均基于8051內核,因而得到了廣泛應用。
1 CY7C68013與系統結構簡介
    Cypress公司的CY7C68013芯片是集成USB2.0協議的微處理器,支持12 Mb/s的全速傳輸和480 Mb/s的高速傳輸,具有控制傳輸、中斷傳輸、塊傳輸和同步傳輸4種傳輸方式,內部包括一個增強型8051處理器內核、一個串行接口引擎(SIE)、一個USB收發器、8.5 KB片上RAM和4 KB FIFO存儲器以及一個通用可編程接口(GPIF)。8051可工作在48 MHz/24 MHz/12 MHz時鐘頻率,內部可自動產生480 MHz的頻率供USB2.0串行收發引擎使用。由于數據緩沖器與SIE相連接,數據進入收發器后,通過SIE可直接轉向FIFO,通過8 bit或16 bit數據接口與外設連接,存取數據。微控制器不參與數據傳輸,但允許以FIFO或RAM的方式訪問這些共享FIFO,從而實現低速控制、高速傳輸。CY7C68013有GPIF/SLAVE FIFO/GPIO 3種接口模式,本系統采用Slave FIFO接口模式,選用控制傳輸和塊傳輸2種方式,外部控制器可像普通FIFO一樣對FIFO進行讀寫。
    本數據傳輸系統分為3部分:發送端和接收端、CY7C68013控制器、具有并/串(或串并轉換)功能的CPLD芯片(MAX7128)以及光纖傳輸模塊。其中,CY7C68013和MAX7128之間采用并行連接方式,MAX7128與激光發送(接收)模塊間是串行連接,如圖1(a)所示。

    圖1(a)中,主機將數據發送到CY7C68013端點FIFO緩沖器中,然后CY7C68013將端點FIFO中的數據分字節放到一組I/O口上,并且使能讀信號,MAX7128讀取I/O上的邏輯值,當接收512 B后,MAX7128將這512 B的數據從低到高串行發送給激光發送模塊;數據經過光纖傳輸,進入激光接收模塊,輸出串行信號,通過MAX7128實現串并轉換,數據寬度為8 bit,通過CY7C68013的從屬FIFO的寫入時序即可將數據寫入CY7C68013的端點緩沖器中。
    USB數據傳輸接口開發分為4個層次,接口硬件、接口軟件、驅動和應用程序如圖1(b)所示。
2 固件程序設計
    由于高速數據傳輸不需要固件程序參與,固件程序僅僅處理主機的發送請求。在發送端,固件將數據放置到I/O口上供MAX7128讀取;在接收端,MAX7128完成串并轉換后,將數據用特定時序寫入CY7C68013。此時只需設定寄存器,固件程序相對簡單,圖2為發送和接收固件程序流程。

    CY7C68013芯片固件程序負責處理主(從)機發送來的各種請求,以完成與外圍電路間的各種數據傳輸。本系統固件一共包含九個程序文件,其中的頭文件分別定義了CY7C68013中的寄存器名和特殊功能寄存器、通用的CY7C68013常量、數據類型和宏、特殊功能寄存器所需要的同步延遲宏、用來描述CY7C68013狀態的各種USB描述符、INT2和INT4中斷跳轉表等。主函數負責處理標準USB請求和自定義請求,控制整個硬件系統的運行。接收端固件主循環不用做任何操作,與發送端程序流程圖完全相同。其固件運行的主程序清單如下,負責處理主機發出的各種USB請求。
……
    TD_Init();//初始化用戶設備
    EZUSB_IRQ_ENABLE();//使能USB中斷(INT2)
    EZUSB_ENABLE_RSMIRQ();//使能喚醒中斷
    INTSETUP |=(bmAV2EN | bmAV4EN);//使能INT2
//和INT4中斷跳轉向量
    USBIE |=bmSUDAV | bmSUTOK | bmSUSP | bmURES |
bmHSGRANT;//使能所選擇的中斷
    EA=1;//打開8051中斷
    UsbDisconnect();
    CKCON=(CKCON&(~bmSTRETCH)) | FW_STRETCH_
VALUE;//設為0值
    Sleep=FALSE;//清除sleep標志
    while(TRUE)//主循環
    {
        if(GotSUD)//等待SETUP令牌數據的到來
        {
            ParseControlTransfer();//處理SETUP令牌數據
            GotSUD=FALSE;//清除SUDAV標志
        }
        if (Sleep)
        {
            Sleep=FALSE;//清除sleep標志
            do
            {
            EZUSB_Susp();//置8051為空閑
            }
            while(!Rwuen&&EZUSB_EXTWAKEUP());
            EZUSB_Resume();//從空閑狀態恢復
        }
        TD_Poll();//完成用戶任務
    }
……
    需要強調的是:固件程序設計完成后需要進行調試,確保系統硬件正常工作。
    (1)工作時鐘頻率的確定:晶振兩引腳對地電壓均為1.6 V左右,此時CLKOUT引腳默認輸出為24 MHz,當輸出48 MHz時,電壓為2.5 V。
    (2)電平觸發中斷方式:中斷后一定要讀上次傳輸狀態寄存器(命令40 H~45 H),以清除中斷寄存器中的中斷標志,這樣中斷輸出才能變回高電平。
    (3)使能端口:接收到Setup包后,必須用ACKsetup命令重新使能端口為低電平。
    (4)緩沖區數據標志:在向IN端點寫完數據后,必須設置EP2BCH:L,指明緩沖區中的數據有效,示意可以發送到主機。當IN端點的數據被外設讀走后,一定要調用OUTPKTEND來清除緩沖區數據,否則無法向IN端點寫入數據。
    在USB設備枚舉的過程中,可采用USB調試工具BusHound軟件來抓取它和主機的通信數據進行分析,以檢查硬件和固件程序的工作是否正確。
3 驅動程序設計
    為了配合CY7C68013的工作,需要有驅動程序[6,7]以使上位機程序能正常訪問USB芯片。以Cypress公司提供的參考程序為基礎[1],增加自定義控制請求即可。
    由于驅動程序必須和系統的總線驅動進行通信,系統總線驅動為WDM(Win32 Driver Model)驅動。因此,USB驅動程序采用WDM設備驅動程序[8]。由于USB總線驅動程序(USBD)一般由操作系統提供,負責與實際的硬件打交道,因此,重點是開發USB設備驅動程序(USB Device Driver)。USB設備的WDM驅動程序是通過創建URB(USB請求塊),并向USB總線驅動程序發送包含URB的IRP來實現對USB設備信息的發送和接收。此外,USB設備驅動程序除負責處理應用程序的I/O請求外,還要處理PnP請求。
    CY7C68013的驅動程序包括2部分:usbfft.sys,專用于下載芯片的固件程序;loaderfft.sys,上位機和CY7-
C68013進行通訊的部分,用于實現數據收發功能。這2個部分都存放在上位機上,當系統上電或USB連接時,固件部分將自動下載到芯片的RAM中供8051執行。
4 應用程序設計
    上位機是人機交互的平臺,需要良好的操作界面。本系統通過VB6.0開發了上位機應用程序,運行界面如圖3所示。

    應用程序是完成數據發送與接收并且對系統進行有效控制的平臺,不僅需要向CY7C68013發送數據,還需要將接收的數據顯示出來并保存。此外為了系統測試的方便,增加了誤碼率和速率測試模塊,以測試系統的整體性能。
    本系統上位機的主要功能有:(1)文件的發送;(2)文件的接收;(3)速率測試;(4)誤碼率測試;(5)系統控制,用來獲取CY7C68013描述符以及其內部寄存器的情況,并對整個系統進行控制,如使能CY7C68013的數據輸出功能及片內數據轉移功能等。
    系統中定義了6個時間控件來完成數據的發送與接收,timer1、timer3和timer4分別完成文件、誤碼率及速率測試的發送,Timer2、timer6和timer8分別完成文件、誤碼率及速率測試的接收。另外定義了一個時間控件來控制開啟哪一個接收數據時間控件。為了保證有效判斷所接收到的數據是文件、速率測試還是誤碼率測試數據,在timer1、timer3和timer4發送前都先發送一個512 B的前導包。全為1時表示下一個數據包包含著速率測試數據,全為2時表示下一個數據包包含著誤碼率測試數據,全為3時表示下一個數據包包含著文件數據。這樣就能判斷出應該開啟哪一個接收時鐘。
    具體的文件數據處理方法是:文件打開后,先將文件緩沖,定義一個二維數組:行512 B,列由文件大小決定。數組的第一個512 B前20 B記錄所發送文件的大小,并且在最開始的5 B以0xAA填充,表明這個數據包是全部文件的開始,當文件大小不足填滿最后的512 B時,數據補0,但數組結尾為0xAA。
    采用CY7C68013設計的高速數據傳輸系統,經過測試,達到了設計要求,實現了數據的高速傳輸,為下一步開展數據編碼/譯碼、調制/解調研究打下了良好的基礎。
參考文獻
[1] www.cypress.com.EZ-USB FX2 Technical Reference Manual.
[2] 戴紅梅,胡仁杰.USB(通用串行總線)及USB外設的開發[J].電測與儀表,2000(12):53-56.
[3] 陳明智,李鋒,尚淮.USB通信協議分析和系統設計[J].自動化與儀器儀表,2006(6):46-49.
[4] 鄒建彬,高凱,張爾揚.基于USB 2.0協議的高速圖像傳輸系統[J].現代電子技術,2009(22):195-197.
[5] 李鑒,黃大勇.基于CY7C68013的USB數據采集系統[J].微計算機信息.測控自動化,2009,25(1-1):97-98+154.
[6] 陸原,魏杰,孟瑋.Windows XP環境下USB設備驅動程序的開發[J].國外電子元器件,2007(7):28-30.
[7] 陳新忠.USB設備驅動程序設計[J].電子產品世界,2009(5):48-51.
[8] 王躍鋼 ,韓心中.基于WDM模式的USB設備驅動程序開發[J].微計算機信息(管控一體化),2006,22(8-3):
305-307.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲免费婷婷| 国产精品99久久久久久有的能看| 国产精品麻豆欧美日韩ww | 一区二区激情小说| 亚洲婷婷在线| 国内精品国语自产拍在线观看| 免费国产自线拍一欧美视频| 日韩一二三区视频| 亚洲中字黄色| 激情久久久久久久久久久久久久久久| 欧美国产亚洲精品久久久8v| 亚洲免费一级电影| 亚洲电影免费观看高清完整版在线观看| 欧美日韩成人在线| 欧美一区国产在线| 亚洲精品免费一区二区三区| 亚洲深夜av| 国产香蕉97碰碰久久人人| 欧美.com| 香蕉成人啪国产精品视频综合网| 久久精品一区四区| 一区二区三区四区五区精品| 激情一区二区三区| 国产精品免费久久久久久| 牛人盗摄一区二区三区视频| 亚洲欧美美女| 亚洲老司机av| 欧美在线免费播放| 制服丝袜亚洲播放| 亚洲国产婷婷香蕉久久久久久| 国产精品综合av一区二区国产馆| 欧美黑人在线观看| 久久精品夜色噜噜亚洲a∨ | 黄色成人精品网站| 欧美色图五月天| 另类综合日韩欧美亚洲| 欧美亚洲三区| 一区二区免费看| 久久精品72免费观看| 亚洲视频精选| 亚洲国产精品www| 国产午夜亚洲精品羞羞网站| 欧美性猛交99久久久久99按摩| 你懂的视频一区二区| 久久精品国产欧美激情| 在线视频一区二区| 亚洲黄色高清| 性欧美xxxx视频在线观看| 99re热精品| 91久久夜色精品国产网站| 国产一区二区三区免费不卡| 国产精品久久久久久亚洲毛片| 欧美国产日韩一区二区在线观看| 久久亚洲风情| 欧美一区二区黄色| 亚洲欧美中文日韩在线| 一区二区三区欧美激情| 亚洲欧洲一区二区在线观看| 欧美专区在线观看| 午夜激情综合网| 亚洲性色视频| 一区二区高清视频| 亚洲美女视频在线观看| 亚洲日本va午夜在线影院| 亚洲高清二区| 亚洲高清色综合| 在线日韩视频| 在线国产亚洲欧美| 伊人久久男人天堂| 黄色成人av| 在线成人黄色| 尤物视频一区二区| 一区在线电影| 亚洲第一区中文99精品| 在线观看日韩www视频免费| 一区精品久久| 在线观看欧美| 亚洲高清色综合| 亚洲激精日韩激精欧美精品| 亚洲欧洲一区二区在线播放 | 一区二区在线视频| 在线播放一区| 亚洲国产美女精品久久久久∴| 亚洲高清二区| 亚洲日本中文字幕| 99精品久久久| 亚洲夜间福利| 午夜亚洲影视| 亚洲国产精品一区在线观看不卡| 最新69国产成人精品视频免费| 亚洲精品欧洲精品| 亚洲麻豆av| 99re在线精品| 亚洲免费一在线| 久久国产精品久久w女人spa| 久久精品亚洲一区二区| 久热精品视频在线观看一区| 你懂的国产精品| 欧美精品导航| 欧美亚洲第一区| 国产区精品视频| 黄色成人免费网站| 最新国产の精品合集bt伙计| 夜夜夜久久久| 性欧美办公室18xxxxhd| 亚洲黄色免费网站| 亚洲特黄一级片| 欧美一区二视频| 免费成人网www| 欧美日韩小视频| 国产麻豆精品在线观看| 永久555www成人免费| 亚洲精品在线观| 亚洲欧美日韩成人| 亚洲经典一区| 亚洲小视频在线观看| 欧美有码视频| 欧美波霸影院| 国产精品久久久久久久久借妻| 国内成+人亚洲| 99精品国产在热久久| 销魂美女一区二区三区视频在线| 亚洲人成网站777色婷婷| 亚洲免费影视第一页| 久久午夜影视| 欧美午夜精彩| 激情久久综艺| 正在播放亚洲| 亚洲国产日韩在线| 午夜精品福利视频| 欧美激情一区二区三区在线视频 | 久久三级福利| 欧美日韩亚洲视频| 国产自产女人91一区在线观看| 日韩视频在线观看| 久久精品国产亚洲aⅴ| 这里只有精品电影| 久久久激情视频| 欧美吻胸吃奶大尺度电影| 红桃av永久久久| 亚洲在线观看免费视频| 亚洲日本va午夜在线电影| 午夜日韩在线观看| 欧美成人一区二区三区| 国产日韩成人精品| 日韩视频永久免费观看| 欧美一区二区三区四区夜夜大片| 一区二区三区欧美在线| 久久一区二区三区四区| 国产精品视频观看| 亚洲精品免费在线播放| 久久国产99| 欧美一级日韩一级| 欧美日韩一区二区三区在线视频| 红桃av永久久久| 亚洲欧美激情诱惑| 亚洲视频在线二区| 欧美精品日韩一区| 激情综合在线| 性8sex亚洲区入口| 亚洲免费一在线| 欧美日韩欧美一区二区| 亚洲国产精品一区在线观看不卡| 欧美一区日韩一区| 欧美一级大片在线免费观看| 欧美特黄一级大片| 91久久精品久久国产性色也91| 性伦欧美刺激片在线观看| 亚洲女女女同性video| 欧美日韩国产123| 亚洲激情av在线| 亚洲黄色在线观看| 久久香蕉国产线看观看网| 国产日韩亚洲欧美| 亚洲伊人一本大道中文字幕| 在线一区免费观看| 欧美精品自拍| 91久久精品国产91久久| 91久久久久| 欧美成人午夜激情| 亚洲成人在线免费| 亚洲国产成人久久综合| 久久中文欧美| 韩国精品久久久999| 久久国产婷婷国产香蕉| 久久免费精品视频| 国产在线精品成人一区二区三区| 欧美一级黄色网| 久久精品日韩| 韩国在线一区| 亚洲第一天堂av| 狂野欧美一区| 亚洲国产福利在线| 日韩视频一区二区在线观看| 欧美另类69精品久久久久9999| 亚洲毛片网站| 亚洲午夜视频在线| 国产精品久久久久久久久借妻| 亚洲欧美www| 久久久国产午夜精品|