CCD" title="CCD">CCD(ChargeCoupledDevices)電荷耦合器件是20世紀70年代初發展起來的新型半導體集成光電器件。由于CCD器件具有諸多優點:靈敏度高、光譜響應寬、動態范圍大、空間自掃描等,使得近30年來,CCD器件及其應用技術的研究取得了驚人的進展,特別是在圖像傳感和非接觸測量領域的發展更為迅速。目前,CCD應用技術已成為集光學、電子學、精密機械及微計算機為一體的綜合性技術,在現代光子學、光電檢測技術和現代測量技術中成果累累。隨著CCD技術的迅猛發展,針對CCD信號" title="信號">信號的采集" title="采集">采集及采集之后的信號如何與計算機進行信息通信就成為CCD應用的一個重要問題,而能夠針對CCD每一個象素進行高速采集并實時的傳輸給計算機處理,將會大大的提高采集到的CCD信號的精度并解決實時處理的問題,這在CCD信號采集和處理領域都將有非常廣闊的前景。
通用串行總線USB" title="USB">USB(UniversalSerialBus)是1995年由康柏、微軟、IBM,DEC等公司為解決傳統總線不足而推廣的一種新型的通信標準。USB總線接口" title="接口">接口具有較高的數據傳輸率、使用靈活、易擴展等優點,非常適合CCD的數據采集。他有低速、全速和高速三種工作方式,即USBl.1版本中.的低速模式和全速模式,低速模式的傳輸速率為1.5Mb/s,支持一些不需要很大數據吞吐量和很高實時性的設備,如鼠標、鍵盤等;全速模式的傳輸速率可以達到12Mb/s。,可以外接速率更高的外設,適合用于線陣CCD的數據采集。在USB 2.0版本中,增加了一種高速模式,其數據傳輸率最高可以達到480Mb/s,完全可以滿足高速CCD數據采集系統" title="系統">系統的需要。
2 接口硬件組成
本系統選用高速的AD(模數)轉換器,用于采集CCD信號,配以先進先出(FIFO)存儲器作為數據高速緩沖器,用于存儲AD轉換后的數據,并采用具有微控制器的USB接口芯片,從而通過USB接口將采集到的數據輸入計算機。系統原理框圖如圖1所示。
![]() (1)Windows DDK(Device Driver Kits),DDK基于匯編語言的編程方式和內核模式的調用,對沒有深厚的操作系統原理和編程水平的人員來說,任務相當艱巨。 (2)NuMega公司的Driverstudio工具開發包,其中的DriverWorks實際上實現了對DDK類的封裝,可以提供給用戶驅動程序的開發框架,只需用戶在相應的代碼段中加入自己系統的控制代碼即可,不必了解內核機制,大大加速了USB外設的開發速度。本系統就是使用DriverWorks來開發USB設備驅動程序的。生成的應用接口函數在VC"中調用,大大降低了主機軟件的難度。 3.3 用戶應用程序設計" title="設計">設計 應用程序實現的功能有:啟動/關閉USB設備,設置USB數據傳輸管道/端口,采集數據,顯示數據等。這里,采用VisualC++6.0作為程序的開發環境,并且充分運用了多線程的編程思想。從而實現同時進行數據采集與實時顯示。 為了實現與驅動程序的通信,應用程序首先創建一個事件和一個線程,再將事件句柄傳遞給WDM,用這一線程來等待WDM發送的事件消息,接收到事件消息后,就讀取驅動程序的數據,顯示數據。 在Windows中,Win32應用程序調用的APl函數有5個;CreateFile(),ReadFile(),WriteFi|e(),DeviceloControl()和CloseHandle()。 應用程序為打開一個WDM設備驅動程序,使用CreateFile()函數。他的第一個參數是一個符號鏈接名。如果用DriverWorks創建一個WDM驅動程序,通常會用類KUnitizedName生成一個設備符號鏈接名。這名字的后面有一個數字,一般是一個o。例如,若符號鏈接名為"USBDevice",則傳遞給CreateFile()的是"\\\\.\\USBDevice0"。 ![]() 一旦應用程序獲得設備的有效句柄,他就能夠調用Win32函數,這將產生對應于此設備對象的相應IRP,發送給驅動程序,完成相應功能。這種關系如表1所示。
|