CCD信號采集系統(tǒng)的USB接口設計
(1)Windows DDK(Device Driver Kits),DDK基于匯編語言的編程方式和內核模式的調用,對沒有深厚的操作系統(tǒng)原理和編程水平的人員來說,任務相當艱巨。
(2)NuMega公司的Driverstudio工具開發(fā)包,其中的DriverWorks實際上實現了對DDK類的封裝,可以提供給用戶驅動程序的開發(fā)框架,只需用戶在相應的代碼段中加入自己系統(tǒng)的控制代碼即可,不必了解內核機制,大大加速了USB外設的開發(fā)速度。本系統(tǒng)就是使用DriverWorks來開發(fā)USB設備驅動程序的。生成的應用接口函數在VC中調用,大大降低了主機軟件的難度。
3.3 用戶應用程序設計
應用程序實現的功能有:啟動/關閉USB設備,設置USB數據傳輸管道/端口,采集數據,顯示數據等。這里,采用VisualC++6.0作為程序的開發(fā)環(huán)境,并且充分運用了多線程的編程思想。從而實現同時進行數據采集與實時顯示。
為了實現與驅動程序的通信,應用程序首先創(chuàng)建一個事件和一個線程,再將事件句柄傳遞給WDM,用這一線程來等待WDM發(fā)送的事件消息,接收到事件消息后,就讀取驅動程序的數據,顯示數據。
在Windows中,Win32應用程序調用的APl函數有5個;CreateFile(),ReadFile(),WriteFi|e(),DeviceloControl()和CloseHandle()。
應用程序為打開一個WDM設備驅動程序,使用CreateFile()函數。他的第一個參數是一個符號鏈接名。如果用DriverWorks創(chuàng)建一個WDM驅動程序,通常會用類KUnitizedName生成一個設備符號鏈接名。這名字的后面有一個數字,一般是一個o。例如,若符號鏈接名為USBDevice,則傳遞給CreateFile()的是\\\\.\\USBDevice0。
一旦應用程序獲得設備的有效句柄,他就能夠調用Win32函數,這將產生對應于此設備對象的相應IRP,發(fā)送給驅動程序,完成相應功能。這種關系如表1所示。
本文引用地址:http://www.ex-cimer.com/article/150883.htm
4 結 語
本采集系統(tǒng)利用USB技術實現與計算機通信,有眾多的優(yōu)點:
①安裝方便,支持即插即用。
②供電方便,可直接由主機通過USB接口提供5V的電壓。
⑧性價比高,遠優(yōu)于并行口和串行口的CCD圖像采集系統(tǒng)。
評論