基于USB數(shù)據(jù)采集系統(tǒng)的設計開發(fā)
2 系統(tǒng)軟件設計
本數(shù)據(jù)采集系統(tǒng)的軟件部分主要由:固件程序設計、應用程序設計和USB驅動程序設計三部分組成。
2.1固件程序設計
固件程序中AD7829的轉換脈沖/CONVST是由LPC2132 的P0.18 口發(fā)出,當AD7829轉換結束后輸出有效低電平,LPC2132接到有效電平后,發(fā)下一路地址(通過A0,A1,A2的高低電平配置)給AD7829,然后讀數(shù)據(jù),當AD7829的/RD和/CS信號有效時,將數(shù)據(jù)讀人LPC2132的數(shù)據(jù)緩沖區(qū)的同時將下一路的地址打人,這樣循環(huán)采集8路模擬輸入,直到數(shù)據(jù)采集結束。
LPC2132與ISP1581之間的通信時靠LPC2132給ISP1581發(fā)送命令和數(shù)據(jù)來實現(xiàn)的。通過ISP1581的INT中斷信號與微控制器LPC2132的EINT0口相連,當接收或發(fā)送數(shù)據(jù)成功時會產(chǎn)生中斷,固件程序對這些中斷進行響應并完成設備的配置。設備固件程序采用Keil C進行編寫,包括主循環(huán)程序、中斷服務程序、USB標準請求處理和批量數(shù)據(jù)傳送請求處理4部分。如圖3所示。
圖3 固件程序框圖
2.2 應用程序設計
應用程序包括Win32DLL程序和用戶應用程序。Win32動態(tài)連接庫是包含共享函數(shù)庫的二進制文件,可以被多個應用程序同時使用??蛻魬贸绦騽t是實現(xiàn)數(shù)據(jù)采集系統(tǒng)功能的軟件程序,在本系統(tǒng)中采用Visual C++進行編寫。
2.3 USB系統(tǒng)驅動程序設計
USB系統(tǒng)驅動程序采用分層結構模型,如圖 4 所示。選用Microsoft公司提供的Windows驅動開發(fā)工具Windows DDK。
圖 4 USB分層驅動模型
應用程序通過Win32 子系統(tǒng)利用一個Windows定義的軟件接口(API)來同根集線器驅動程序進行通信。而USB根集線器驅動程序則要通過USBDI(通用串行總線驅動程序接口) 來實現(xiàn)同通用串行總線驅動程序(USBD)的通信。然后, US2BD會選擇兩種主控制器驅動程序之一來同其下方的主控制器進行通信。最后,主控制器驅動程序會直接實現(xiàn)對USB 物理總線的訪問。在USB可用之前, 必須對其進行配置和接口選擇, 然后所選擇接口的各個管道才是可用的。在USBDI的基礎上進行編程將大大簡化, 用戶不用關心IRP的類型, 而只需要在相應的分發(fā)例程中通過構造USB塊并將其通過USBDI發(fā)送下去,就可以實現(xiàn)對USB設備的控制[5]。
3 結束語
USB數(shù)據(jù)采集系統(tǒng)優(yōu)于傳統(tǒng)的實時數(shù)據(jù)采集系統(tǒng),它具有安裝方便,支持即插即用,易于擴展,電磁干擾小,性價比高等優(yōu)點。系統(tǒng)采用ARM7 芯片LPC2132和USB 2.0接口控制芯片ISP1581,實現(xiàn)數(shù)據(jù)采集系統(tǒng)的軟硬件設計開發(fā)。在實驗測試中,使用信號發(fā)生器生成8路模擬信號并將其接到數(shù)據(jù)采集系統(tǒng)的輸入端,在PC機上可顯示出對應的8路模擬信號波形,單路采樣率為150 kSPS,達到系統(tǒng)設計的要求,證明了設計的正確性和實用性。
參考文獻
[1] 王立萍,吳黎明.基于嵌入式USB數(shù)據(jù)采集系統(tǒng)的設計開發(fā) [J]. 電子測量技術,2007,30(9):24~26
[2] ISP1581 Users Manual [Z].Philips Corp
[3] 周立功,張華.深入淺出ARM7[M].北京:北京航空航天大學出版社,2005.52~53.
[4] 張廣利,閻有運.基于AT89S52的USB數(shù)據(jù)采集系統(tǒng)的設計[J] .儀器儀表用戶,2008,03:33~35.
[5] 周沖,劉鎮(zhèn).基于AT89S52的USB數(shù)據(jù)采集系統(tǒng)的設計[J] .科學技術與工程,2007,7(22):5935~5938
伺服電機相關文章:伺服電機工作原理
評論