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