新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 高速雙路數據采集系統

        高速雙路數據采集系統

        作者: 時間:2011-12-04 來源:網絡 收藏
        GPIF狀態機可以定義四個波形描述符,一般情況下是:FIFO讀,FIFO寫,單字/字節讀,單字/字節寫。Cypress提供了圖形化的波形描述工具GPIF Designer,用戶只需要給出GPIF波形,GPIF Designer會自動生成C語言的波形代碼Gpif.c,可以直接鏈接到用戶的固件程序中。本文中用到了FIFORd描述符,波形如圖3所示。

        本文引用地址:http://www.104case.com/article/194659.htm


          圖3 GPIF Designer設計的 FIFORd波形

          4.系統軟件編寫

          系統軟件主要包括三個部分:下位機CY7C68013的固件,USB驅動程序和上位機主機應用程序。

          4.1 固件程序編寫

          對于下位機CY7C68013的固件編寫,Cypress公司給出了在Keil C51下的固件程序框架,固件框架完成EZ-USB FX2的初始化、USB標準設備請求處理、USB掛起模式下的電源管理服務和USB中斷處理。Cypress還提供了函數鉤子來加速用戶代碼的添加。用戶只需要簡單地提供一個USB描述符表和執行外圍功能的代碼即可。

          4.2 驅動程序編寫

          Windows系統下的USB驅動包括三層,從高到低依次是:USB客戶端設備驅動(USB Client Device Driver)、USB總線驅動(USB Hub(Bus) Driver)、主機控制器驅動(Host Controller Driver)。后兩者由Windows系統提供,用戶只需要開發USB客戶端設備驅動程序,Cypress公司提供了一個通用的驅動程序 (General Purpose Driver),即ezusb.sys,一般情況下,該驅動程序可以滿足FX2開發者的需要。本文使用了Cypress公司的通用驅動 ezusb.sys。為了使用ezusb.sys,用戶必須編寫對應的inf文件,inf文件將特定的USB設備綁定給相應的驅動程序,該inf文件參照 ezusbw2k.inf編寫。

          4.3 主機應用程序編寫

          通用驅動程序GPD即ezusb.sys提供了基本USB設備請求和數據傳輸的用戶模式接口,用戶模式應用程序通過Win32函數 DeviceIoControl()給設備驅動器發送請求。Ezusb.sys提供了基本設備請求、批量讀寫、同步讀寫等一系列IOCTL函數。這里以 IOCTL_EZUSB_BULK_READ(EZUSB批量傳輸)為例加以介紹。

          批量傳輸模式下讀FX2的端點FIFO的關鍵代碼如下:

          DWORD ioctl_val=IOCTL_EZUSB_BULK_READ; //設置從設備中讀數據

          Bresult=DeviceIoControl ( hDevice , ioctl_val , //從設備讀數據

          bulkControl , //端點號

          sizeof ( BULK_TRANSFER_CONTROL), //傳入參數的大小

          buffer , //讀數據的緩沖區

          length , //讀數據的長度

          (unsigned long *)nBytes , //驅動返回的數據的實際長度

          NULL);

          限于篇幅,其他程序代碼從略。

          6.結束語

          本文的創新點是充分發揮了CY7C68013的優勢,利用FX2的內部可編程狀態機GPIF實現了與外圍FIFO“無膠”連接,避免了使用外圍ASIC或者CPLD、FPGA等的麻煩,系統升級方便。整個電路結構緊湊,占用面積小,便于攜帶。

          本文采用Cypress公司的USB2.0芯片CY7C68013設計了一種通用的高速雙路同步,通過將其與高精度激光縱模分析儀連接進行試驗,證明該系統實現了數據的高速實時傳輸,達到了預先設計的目標。隨著USB口的進一步普及和計算機的發展,本文設計的這種USB必將得到更加廣泛的應用。


        上一頁 1 2 下一頁

        關鍵詞: 數據采集系統

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 金川县| 如东县| 淮北市| 汉阴县| 册亨县| 大连市| 灵川县| 丹巴县| 金平| 屯门区| 石阡县| 渭南市| 油尖旺区| 晋城| 乐都县| 新郑市| 武汉市| 方城县| 邢台市| 墨脱县| 南通市| 友谊县| 子长县| 随州市| 车险| 内黄县| 水富县| 桦南县| 镇巴县| 长子县| 玉林市| 元朗区| 潼南县| 宁陕县| 隆化县| 屏东县| 英超| 鲜城| 基隆市| 习水县| 古蔺县|