基于USB的嵌入式CCD圖像數(shù)據(jù)采集系統(tǒng)的實現(xiàn)
2 軟件設計
本文引用地址:http://www.ex-cimer.com/article/83477.htm2.1 數(shù)據(jù)采集部分
數(shù)據(jù)采集是由S3C44B0X的PD口發(fā)出脈沖作為AD7829的轉換脈沖CONVST,當AD7829轉換結束時,EOC輸出有效低電平,S3C44B0X接到有效電平后,發(fā)下一路地址,然后讀數(shù)據(jù)。當AD7829的和信號有效時,在數(shù)據(jù)讀入S3C44B0X的數(shù)據(jù)緩沖區(qū)的同時將下一路的地址打入,這樣循環(huán)采集8路模擬輸入,直到數(shù)據(jù)采集結束,本過程的流程圖如圖3所示。
2.2 USB部分軟件設計
USB系統(tǒng)軟件由固件程序、USB系統(tǒng)驅動程序和應用程序三部分構成。
2.2.1 固件程序的開發(fā)
固件程序實際上是置于微控制器內(nèi)部的程序文件,用來輔助硬件完成通信任務。通過ISP1581的INT中斷信號與微控制器S3C44B0X的EINT0中斷口相連,當接收數(shù)據(jù)或發(fā)送數(shù)據(jù)成功時就會產(chǎn)生中斷,固件程序的任務就是對這些中斷進行響應,完成設備的配置,讓USB驅動程序知道設備的能力,接收USB主控制器發(fā)來的數(shù)據(jù)和向主機發(fā)送數(shù)據(jù)。設備固件程序是設備運行的核心,本系統(tǒng)采用Keil C進行編寫。SP1581的固件程序采用模塊化設計,包括主循環(huán)程序、中斷服務程序、USB標準請求處理和批量數(shù)據(jù)傳送請求處理四部分。固件模塊結構見圖4。
2.2.2 應用程序
應用程序包括Win32DLL程序和用戶應用程序。Win32動態(tài)連接庫包含共享函數(shù)庫的二進制文件,可以被多個應用程序同時使用。客戶應用程序則是實現(xiàn)數(shù)據(jù)采集系統(tǒng)功能的軟件程序,在本系統(tǒng)中采用Visual C++進行編寫。
2.2.3 USB系統(tǒng)驅動程序
USB系統(tǒng)驅動程序采用分層結構模型(WDM),該模型定義了分層的驅動程序, USB設備驅動程序不直接與硬件對話,而是通過USB驅動程序接口將USB請求塊提交到總線驅動程序進而完成硬件操作。從系統(tǒng)的角度來說,在USB設備插入主機后,主機檢測到USB設備,讀取設備描述符,然后主機根據(jù)設備描述符中提供的廠商ID和產(chǎn)品ID等,啟用相應USB設備驅動程序,讀取USB設備中的配置描述符、接口描述符和端點描述符,根據(jù)需要選擇恰當?shù)呐渲谩⒔涌诤投它c,確定傳輸方式。這一過程完成后,PC機與USB設備之間就能夠進行數(shù)據(jù)傳輸了。
USB總線的特點使其非常適合用作小型儀器與主機之間的通訊接口,實現(xiàn)主機與便攜式儀器之間的簡單、快速和可靠的連接。將USB接口應用到數(shù)據(jù)采集系統(tǒng)中,提高了數(shù)據(jù)采集系統(tǒng)的速度,增強了系統(tǒng)的抗干擾能力和數(shù)據(jù)傳輸?shù)目煽啃?。本文詳細介紹了基于ARM芯片S3C44B0X和USB2.0接口控制芯片ISP1581的數(shù)據(jù)采集系統(tǒng)的軟硬件設計開發(fā)方案,設計開發(fā)過程較為繁雜,涉及到多方面的軟件程序與硬件電路的聯(lián)合使用,通過實驗測試,效果良好。
參考文獻
[1] 羅浩,楊曉非.脫機式數(shù)據(jù)采集系統(tǒng)的設計[J]. 微計算機信息,2006,22(4):93-95.
[2] 高美珍,洪家平. 基于USB接口和嵌入式芯片總線的數(shù)據(jù)采集系統(tǒng)[J]. 儀表技術與傳感器,2005,(8):51-53.
[3] 邢微,劉開華.數(shù)據(jù)采集系統(tǒng)USB2.0接口設計[J].電子測量技術,2006,29(1):12-13.
[4] 夏益民,王廣君. 基于USB總線的高速數(shù)據(jù)采集系統(tǒng)[J]. 國外電子元器件,2003,(10):20-23.
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論