• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CY7C68013的USB2.0數據傳輸模塊設計

    基于CY7C68013的USB2.0數據傳輸模塊設計

    作者: 時間:2009-11-13 來源:網絡 收藏

      3 系統軟件設計

      3.1GPIF接口模式

      FX支持3種接口方式:端口、Slave FIFOs和可編程接口GPIF。

      在“端口”模式下,所有I/O引腳都可作為8051的通用I/O口。在“從FIFO”模式下,外部邏輯或外部處理器直接與FX2端點FIFO相連。在這種模式下,GPIF 不被激活,這種模式下,外部主控端既可以是異步方式,也可以是同步方式,并可以為FX2 接口提供自己的獨立時鐘?!癎PIF主控”接口模式使用PORTB 和PORTD構成通向四個FX2端點FIFO(EP2、EP4、EP6和EP8)的16位數據接口。GPIF 作為內部的主控制器與FIFO直接相連, 并產生用戶可編程的控制信號與外部接口進行通信。GPIF使用內部時鐘。用戶將波形文件程序存在內部RAM的程序存儲區中。

      根據系統需要,設計中采用GPIF接口模式將CY7C68013設為FIFO READ和SINGLE READ兩種模式, 讓GPIF中的端點FIFO與通信中端點緩沖直接建立連接, 數據的傳送不再需要CPU 的參與。 根據外部測試電路的要求,適用于不同測試環境預設電路的CPLD編程信號,根據實際的測試信號的頻率采用不同的采樣頻率,設定不同的觸發電平,使用單次寫模式可以完成編程數據的輸出。針對的測試數據采用FIFO多次讀模式,實現數據的批量傳輸。設計中采用48M晶振,由于靜態存儲器的在使能信號(OE)的上升沿后推地址(Adr),而數據在總線上的保持時間至少需要85ns,因此在波形設計中數據有效時間應該為4個時鐘周期,才能夠滿足地址有效的要求。靜態存儲器讀操作時序圖如圖2所示。

      

      3.2固件程序設計

      固件是指存儲在接口芯片或微控器中的代碼,用于控制硬件系統運行,各種標準請求的處理,以及USB閑置模式的電源管理服務,實現主機與外設之間的通信和數據傳輸。主要是根據系統需求設計相應的程序框架圖。 公司為FX2 固件開發提供了一個固件庫和固件框架,都是在KeilC51集成開發環境下開發的,固件庫提供了一些常量、數據結構、函數來簡化用戶對芯片的使用。C 語言環境, 同時保留了匯編代碼高效、快速的特點,將代碼在KeilC51環境中進行編譯。編譯通過后,將固件代碼下載到USB單片機中,就可以實現GPIF多字節讀等操作。在程序起始時,固件架構會執行下列步驟:

      (1)首先,設置所有的內部狀態變量。

      (2)然后,調用用戶的初始設置函數TD_Init()。待返回后固件架構就會設置USB接口成為未配置的狀態,并且使能中斷。

      (3)接下來,在1秒的間隔內開始重新設備列舉(ReNumerate)設備,并直到設置(SETUP)封包收到端點0為止。

      (4)一旦SETUP封包被檢測到,固件架構就會啟動與PC主機合作的工作分配器。而這個工作分配器就會順序重復執行下列的工作:

     ?、僬{用用戶函數TD_Poll()。

      ②判斷標準設備請求是否決定。如果已決定,它將解析所收到的命令請求并加以響應。

     ?、叟袛郩SB核心是否己經報告了USB中止(suspend)事件。

      用戶需要編寫TD_Poll()中的代碼完成特定的功能,判斷USB設備枚舉的狀態決定每次出發FIFO波形文件的次數,數據短包的處理方式等,實現數據的讀取。



    關鍵詞: USB Cypress

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 夏邑县| 上虞市| 怀仁县| 和静县| 青川县| 博罗县| 克什克腾旗| 屏边| 辽源市| 霍林郭勒市| 安多县| 邮箱| 乐昌市| 广南县| 天柱县| 高清| 钟山县| 苍南县| 同德县| 湖南省| 乳山市| 专栏| 进贤县| 济南市| 商城县| 吴旗县| 仲巴县| 武功县| 广水市| 车致| 焦作市| 江山市| 禹城市| 鹤岗市| 三都| 金川县| 鄂尔多斯市| 琼结县| 海淀区| 开原市| 庄河市|