CCD信號采集系統的USB接口設計
(1)Windows DDK(Device Driver Kits),DDK基于匯編語(yǔ)言的編程方式和內核模式的調用,對沒(méi)有深厚的操作系統原理和編程水平的人員來(lái)說(shuō),任務(wù)相當艱巨。
(2)NuMega公司的Driverstudio工具開(kāi)發(fā)包,其中的DriverWorks實(shí)際上實(shí)現了對DDK類(lèi)的封裝,可以提供給用戶(hù)驅動(dòng)程序的開(kāi)發(fā)框架,只需用戶(hù)在相應的代碼段中加入自己系統的控制代碼即可,不必了解內核機制,大大加速了USB外設的開(kāi)發(fā)速度。本系統就是使用DriverWorks來(lái)開(kāi)發(fā)USB設備驅動(dòng)程序的。生成的應用接口函數在VC中調用,大大降低了主機軟件的難度。
3.3 用戶(hù)應用程序設計
應用程序實(shí)現的功能有:?jiǎn)?dòng)/關(guān)閉USB設備,設置USB數據傳輸管道/端口,采集數據,顯示數據等。這里,采用VisualC++6.0作為程序的開(kāi)發(fā)環(huán)境,并且充分運用了多線(xiàn)程的編程思想。從而實(shí)現同時(shí)進(jìn)行數據采集與實(shí)時(shí)顯示。
為了實(shí)現與驅動(dòng)程序的通信,應用程序首先創(chuàng )建一個(gè)事件和一個(gè)線(xiàn)程,再將事件句柄傳遞給WDM,用這一線(xiàn)程來(lái)等待WDM發(fā)送的事件消息,接收到事件消息后,就讀取驅動(dòng)程序的數據,顯示數據。
在Windows中,Win32應用程序調用的APl函數有5個(gè);CreateFile(),ReadFile(),WriteFi|e(),DeviceloControl()和CloseHandle()。
應用程序為打開(kāi)一個(gè)WDM設備驅動(dòng)程序,使用CreateFile()函數。他的第一個(gè)參數是一個(gè)符號鏈接名。如果用DriverWorks創(chuàng )建一個(gè)WDM驅動(dòng)程序,通常會(huì )用類(lèi)KUnitizedName生成一個(gè)設備符號鏈接名。這名字的后面有一個(gè)數字,一般是一個(gè)o。例如,若符號鏈接名為USBDevice,則傳遞給CreateFile()的是\\\\.\\USBDevice0。

一旦應用程序獲得設備的有效句柄,他就能夠調用Win32函數,這將產(chǎn)生對應于此設備對象的相應IRP,發(fā)送給驅動(dòng)程序,完成相應功能。這種關(guān)系如表1所示。
本文引用地址:http://dyxdggzs.com/article/150883.htm
![]() |
4 結 語(yǔ)
本采集系統利用USB技術(shù)實(shí)現與計算機通信,有眾多的優(yōu)點(diǎn):
①安裝方便,支持即插即用。
②供電方便,可直接由主機通過(guò)USB接口提供5V的電壓。
⑧性?xún)r(jià)比高,遠優(yōu)于并行口和串行口的CCD圖像采集系統。
評論