新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于USB數據采集系統的設計開發

        基于USB數據采集系統的設計開發

        作者: 時間:2010-08-03 來源:網絡 收藏


        2 軟件設計
        的軟件部分主要由:固件程序設計、應用程序設計和驅動程序設計三部分組成。

        2.1固件程序設計
        固件程序中AD7829的轉換脈沖/CONVST是由LPC2132 的P0.18 口發出,當AD7829轉換結束后輸出有效低電平,LPC2132接到有效電平后,發下一路地址(通過A0,A1,A2的高低電平配置)給AD7829,然后讀數據,當AD7829的/RD和/CS信號有效時,將數據讀人LPC2132的數據緩沖區的同時將下一路的地址打人,這樣循環采集8路模擬輸入,直到結束。
        LPC2132與ISP1581之間的通信時靠LPC2132給ISP1581發送命令和數據來實現的。通過ISP1581的INT中斷信號與微控制器LPC2132的EINT0口相連,當接收或發送數據成功時會產生中斷,固件程序對這些中斷進行響應并完成設備的配置。設備固件程序采用Keil C進行編寫,包括主循環程序、中斷服務程序、標準請求處理和批量數據傳送請求處理4部分。如圖3所示。



        圖3 固件程序框圖

        2.2 應用程序設計
        應用程序包括Win32DLL程序和用戶應用程序。Win32動態連接庫是包含共享函數庫的二進制文件,可以被多個應用程序同時使用。客戶應用程序則是實現功能的軟件程序,在本系統中采用Visual C++進行編寫。
        2.3 系統驅動程序設計
        USB系統驅動程序采用分層結構模型,如圖 4 所示。選用Microsoft公司提供的Windows驅動開發工具Windows DDK。



        圖 4 USB分層驅動模型

        應用程序通過Win32 子系統利用一個Windows定義的軟件接口(API)來同根集線器驅動程序進行通信。而USB根集線器驅動程序則要通過USBDI(通用串行總線驅動程序接口) 來實現同通用串行總線驅動程序(USBD)的通信。然后, US2BD會選擇兩種主控制器驅動程序之一來同其下方的主控制器進行通信。最后,主控制器驅動程序會直接實現對USB 物理總線的訪問。在USB可用之前, 必須對其進行配置和接口選擇, 然后所選擇接口的各個管道才是可用的。在USBDI的基礎上進行編程將大大簡化, 用戶不用關心IRP的類型, 而只需要在相應的分發例程中通過構造USB塊并將其通過USBDI發送下去,就可以實現對USB設備的控制[5]。


        3 結束語
        USB數據采集系統優于傳統的實時數據采集系統,它具有安裝方便,支持即插即用,易于擴展,電磁干擾小,性價比高等優點。系統采用ARM7 芯片LPC2132和USB 2.0接口控制芯片ISP1581,實現數據采集系統的軟硬件。在實驗測試中,使用信號發生器生成8路模擬信號并將其接到數據采集系統的輸入端,在PC機上可顯示出對應的8路模擬信號波形,單路采樣率為150 kSPS,達到系統設計的要求,證明了設計的正確性和實用性。


        參考文獻
        [1] 王立萍,吳黎明.嵌入式USB數據采集系統的 [J]. 電子測量技術,2007,30(9):24~26
        [2] ISP1581 Users Manual [Z].Philips Corp
        [3] 周立功,張華.深入淺出ARM7[M].北京:北京航空航天大學出版社,2005.52~53.
        [4] 張廣利,閻有運.AT89S52的USB數據采集系統的設計[J] .儀器儀表用戶,2008,03:33~35.
        [5] 周沖,劉鎮.AT89S52的USB數據采集系統的設計[J] .科學技術與工程,2007,7(22):5935~5938

        伺服電機相關文章:伺服電機工作原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 正蓝旗| 温泉县| 蒙自县| 邓州市| 凤山县| 策勒县| 榆社县| 尤溪县| 津南区| 万全县| 密山市| 砚山县| 宁陕县| 库尔勒市| 德清县| 大新县| 海盐县| 龙游县| 成安县| 开鲁县| 霍林郭勒市| 崇义县| 广宗县| 彩票| 广汉市| 衡阳县| 泽库县| 蒙山县| 普兰店市| 扎囊县| 定州市| 临颍县| 宜兰县| 大庆市| 苍梧县| 芦山县| 临汾市| 饶阳县| 金山区| 塔河县| 东山县|