通用線陣CCD采集系統(tǒng)設(shè)計(jì)
2.3 軟件設(shè)計(jì)
軟件設(shè)計(jì)主要包括3方面工作:USB驅(qū)動(dòng)程序設(shè)計(jì)、動(dòng)態(tài)鏈接庫(kù)設(shè)計(jì)以及應(yīng)用處理軟件設(shè)計(jì)。
2.3.1 USB驅(qū)動(dòng)程序設(shè)計(jì)
EZ-USB提供的FPD(通用設(shè)備驅(qū)動(dòng)程序)是一個(gè)通用的設(shè)備驅(qū)動(dòng)程序。利用Microsoft WDM DDK和Visiual C++5.0以上版本就可以修改和編譯驅(qū)動(dòng)程序,生成文件ezusb.sys。具體操作如下:①修改驅(qū)動(dòng)程序的PID。在工程里EzUsbDevice.cpp文件中修改PID.VID延用0x0547不變,PID自行設(shè)定。②利用hex2c.exe將USB固件Intel HEX記錄格式的代碼文件轉(zhuǎn)換為C文件,打開(kāi)該C文件,用其中的firmware[]數(shù)組代替在工程里zUsbFirmware.cpp文件中提供的數(shù)組。③編譯生成ezusb.sys文件并編寫(xiě)相應(yīng)的INF文件。
2.3.2 動(dòng)態(tài)鏈接庫(kù)設(shè)計(jì)
動(dòng)態(tài)鏈接庫(kù)主要是通過(guò)I/O控制調(diào)用來(lái)訪問(wèn)EZ-USBGPD。通過(guò)調(diào)用CreateFile()來(lái)取得訪問(wèn)設(shè)備驅(qū)動(dòng)程序的句柄,然后使用DeviceIoControl()提交不同I/O控制碼,從而完成USB的控制和輸入/輸出操作。
2.3.3 應(yīng)用處理軟件設(shè)計(jì)
應(yīng)用軟件通過(guò)訪問(wèn)動(dòng)態(tài)鏈接庫(kù)(DLL)獲取采集譜線數(shù)據(jù),其主要功能有顯示、設(shè)置積分時(shí)間、定格譜線、保存、捕捉、局部放大、添加譜線。
3 測(cè)試結(jié)果
采用通用CCD采集系統(tǒng)分別對(duì)3款CCD進(jìn)行驅(qū)動(dòng)和采集。這3種CCD的參數(shù)如表2所示。使用應(yīng)用軟件EMSpectro采集上述CCD譜線,采集效果如圖4所示。
4 結(jié)束語(yǔ)
采用該系統(tǒng)對(duì)3種不同型號(hào)CCD成功驅(qū)動(dòng)并采集,測(cè)試結(jié)果達(dá)到了預(yù)期的效果。系統(tǒng)體積小、功耗低、兼容性好、可擴(kuò)展性高。該系統(tǒng)已成功應(yīng)用于實(shí)驗(yàn)室開(kāi)發(fā)CCD相關(guān)項(xiàng)目中。
評(píng)論