《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 九九九精品视频免费 | 精品乱码一区二区三区在线 | 日本精品久久久中文字幕 | 四虎成人免费电影 | 成人综合婷婷国产精品久久免费 | 日本视频免费 | 狠狠综合久久久久综 | 男女精品视频 | 九九精品免视频国产成人 | 国产精品一区三区 | 色综合久久精品中文字幕 | 激情视频综合网 | 免费高清影视 | a级毛片在线免费看 | 久久亚洲不卡一区二区 | 久久久久久久国产视频 | 欧美a网| 精品久久久久久亚洲 | 欧美在线看欧美高清视频免费 | 国产精品观看视频免费完整版 | 朝鲜妇女bbw | 欧美性生活视频免费播放网址大全观看 | 五月天综合网站 | 黑人中文字幕在线精品视频站 | 亭亭五月天激情 | 国产免费一区二区三区免费视频 | 免费在线观看污视频网站 | 欧美人人草 | 国产网站在线免费观看 | 欧美视频在线观看一区 | 五月天亚洲视频 | 四虎网站网址 | 精品视频一二三区 | 亚洲天天更新 | 成人自拍视频在线 | 99pao强力打造免费高清色 | 国产精品精品 | 色婷婷激情综合 | 精品国产欧美一区二区 | 四房婷婷 | 毛片网站免费在线观看 |