《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > CCD信號采集系統(tǒng)的USB接口設計
CCD信號采集系統(tǒng)的USB接口設計
現(xiàn)代電子技術
李 虹 常丹華
摘要: CCD信號采集系統(tǒng)的USB接口設計,CCD(ChargeCoupledDevices)電荷耦合器件是20世紀70年代初發(fā)展起來的新型半導體集成光電器件。由于CCD器件具有諸多優(yōu)點:靈敏度高、光譜響應寬、動態(tài)范圍大、空間自掃描等,使得近30年來,CCD器件及其應用技術的研究取
Abstract:
Key words :

CCD" title="CCD">CCD(ChargeCoupledDevices)電荷耦合器件是20世紀70年代初發(fā)展起來的新型半導體集成光電器件。由于CCD器件具有諸多優(yōu)點:靈敏度高、光譜響應寬、動態(tài)范圍大、空間自掃描等,使得近30年來,CCD器件及其應用技術的研究取得了驚人的進展,特別是在圖像傳感和非接觸測量領域的發(fā)展更為迅速。目前,CCD應用技術已成為集光學、電子學、精密機械及微計算機為一體的綜合性技術,在現(xiàn)代光子學、光電檢測技術和現(xiàn)代測量技術中成果累累。隨著CCD技術的迅猛發(fā)展,針對CCD信號" title="信號">信號的采集" title="采集">采集及采集之后的信號如何與計算機進行信息通信就成為CCD應用的一個重要問題,而能夠針對CCD每一個象素進行高速采集并實時的傳輸給計算機處理,將會大大的提高采集到的CCD信號的精度并解決實時處理的問題,這在CCD信號采集和處理領域都將有非常廣闊的前景。

    通用串行總線USB" title="USB">USB(UniversalSerialBus)是1995年由康柏、微軟、IBM,DEC等公司為解決傳統(tǒng)總線不足而推廣的一種新型的通信標準。USB總線接口" title="接口">接口具有較高的數(shù)據(jù)傳輸率、使用靈活、易擴展等優(yōu)點,非常適合CCD的數(shù)據(jù)采集。他有低速、全速和高速三種工作方式,即USBl.1版本中.的低速模式和全速模式,低速模式的傳輸速率為1.5Mb/s,支持一些不需要很大數(shù)據(jù)吞吐量和很高實時性的設備,如鼠標、鍵盤等;全速模式的傳輸速率可以達到12Mb/s。,可以外接速率更高的外設,適合用于線陣CCD的數(shù)據(jù)采集。在USB 2.0版本中,增加了一種高速模式,其數(shù)據(jù)傳輸率最高可以達到480Mb/s,完全可以滿足高速CCD數(shù)據(jù)采集系統(tǒng)" title="系統(tǒng)">系統(tǒng)的需要。

2 接口硬件組成

    本系統(tǒng)選用高速的AD(模數(shù))轉(zhuǎn)換器,用于采集CCD信號,配以先進先出(FIFO)存儲器作為數(shù)據(jù)高速緩沖器,用于存儲AD轉(zhuǎn)換后的數(shù)據(jù),并采用具有微控制器的USB接口芯片,從而通過USB接口將采集到的數(shù)據(jù)輸入計算機。系統(tǒng)原理框圖如圖1所示。
 

 



(1)Windows DDK(Device Driver Kits),DDK基于匯編語言的編程方式和內(nèi)核模式的調(diào)用,對沒有深厚的操作系統(tǒng)原理和編程水平的人員來說,任務相當艱巨。

(2)NuMega公司的Driverstudio工具開發(fā)包,其中的DriverWorks實際上實現(xiàn)了對DDK類的封裝,可以提供給用戶驅(qū)動程序的開發(fā)框架,只需用戶在相應的代碼段中加入自己系統(tǒng)的控制代碼即可,不必了解內(nèi)核機制,大大加速了USB外設的開發(fā)速度。本系統(tǒng)就是使用DriverWorks來開發(fā)USB設備驅(qū)動程序的。生成的應用接口函數(shù)在VC"中調(diào)用,大大降低了主機軟件的難度。

3.3 用戶應用程序設計" title="設計">設計

    應用程序?qū)崿F(xiàn)的功能有:啟動/關閉USB設備,設置USB數(shù)據(jù)傳輸管道/端口,采集數(shù)據(jù),顯示數(shù)據(jù)等。這里,采用VisualC++6.0作為程序的開發(fā)環(huán)境,并且充分運用了多線程的編程思想。從而實現(xiàn)同時進行數(shù)據(jù)采集與實時顯示。

    為了實現(xiàn)與驅(qū)動程序的通信,應用程序首先創(chuàng)建一個事件和一個線程,再將事件句柄傳遞給WDM,用這一線程來等待WDM發(fā)送的事件消息,接收到事件消息后,就讀取驅(qū)動程序的數(shù)據(jù),顯示數(shù)據(jù)。

    在Windows中,Win32應用程序調(diào)用的APl函數(shù)有5個;CreateFile(),ReadFile(),WriteFi|e(),DeviceloControl()和CloseHandle()。
應用程序為打開一個WDM設備驅(qū)動程序,使用CreateFile()函數(shù)。他的第一個參數(shù)是一個符號鏈接名。如果用DriverWorks創(chuàng)建一個WDM驅(qū)動程序,通常會用類KUnitizedName生成一個設備符號鏈接名。這名字的后面有一個數(shù)字,一般是一個o。例如,若符號鏈接名為"USBDevice",則傳遞給CreateFile()的是"\\\\.\\USBDevice0"。

    一旦應用程序獲得設備的有效句柄,他就能夠調(diào)用Win32函數(shù),這將產(chǎn)生對應于此設備對象的相應IRP,發(fā)送給驅(qū)動程序,完成相應功能。這種關系如表1所示。
 

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。