基于FPGA和USB 2.0的高速CCD聲光信號(hào)采集系統(tǒng)
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)包括:
固件程序(Firmware)設(shè)計(jì) 設(shè)備固件的主要功能是控制CY7C68013A接收并處理USB驅(qū)動(dòng)程序的請(qǐng)求。如請(qǐng)求設(shè)備描述符,請(qǐng)求或設(shè)置設(shè)備狀態(tài),請(qǐng)求或設(shè)置設(shè)備接口等USB 2.0標(biāo)準(zhǔn)請(qǐng)求;輔助硬件完成設(shè)備的重新枚舉、端點(diǎn)配置、控制和監(jiān)測(cè)USB的活動(dòng),根據(jù)PC主機(jī)的命令與外圍電路進(jìn)行數(shù)據(jù)交換等。Cy-press公司為用戶提供了一個(gè)固件程序框架,是通用性強(qiáng)的模塊化程序。在框架的基礎(chǔ)上,用戶只需要編寫(xiě)Function.c文件即可完成USB功能開(kāi)發(fā)。主要包括:Slave FIFO模式的初始化和用戶自定義請(qǐng)求。
驅(qū)動(dòng)程序開(kāi)發(fā) 系統(tǒng)包括兩個(gè)USB驅(qū)動(dòng)程序:一個(gè)驅(qū)動(dòng)專用于下載芯片的固件程序ccdloader.sys,另一個(gè)通用驅(qū)動(dòng)程序ccdusb.sys用來(lái)實(shí)現(xiàn)USB設(shè)備與應(yīng)用程序的通信和控制。芯片固件程序在主機(jī)上,當(dāng)系統(tǒng)上電時(shí),前者將其下載到芯片的RAM中,并由增強(qiáng)型8051微處理器執(zhí)行。當(dāng)固件下載完成后,模擬一次斷開(kāi)重新連接,此時(shí)下載的固件響應(yīng)USB枚舉,并加載USB設(shè)備通用驅(qū)動(dòng)程序。USB的驅(qū)動(dòng)程序是WDM類型,可以使用Windows DDK,WinDriver,DriverStudio開(kāi)發(fā)。
應(yīng)用程序開(kāi)發(fā) 它的主要任務(wù)是與USB驅(qū)動(dòng)程序通信,控制聲光信號(hào)采集過(guò)程。在此用Visual C++6.0進(jìn)行程序設(shè)計(jì)。CyAPI控制函數(shù)類為FX2LP系列USB接口芯片提供了十分精細(xì)的控制接口,只需在應(yīng)用程序中加頭文件CyAPI.h和庫(kù)文件CyAPI.lib即可調(diào)用相應(yīng)的控制函數(shù),打開(kāi)USB設(shè)備讀取數(shù)據(jù)并存儲(chǔ)到主機(jī)硬盤(pán)中的CcdData.txt文件。
4 實(shí)驗(yàn)數(shù)據(jù)分析
使用TEKTRONIX公司的示波器,對(duì)經(jīng)過(guò)隔直處理后的RL2048P輸出信號(hào)在各種實(shí)驗(yàn)條件下進(jìn)行了測(cè)試和分析。如圖2所示,VOUT為像元輸出信號(hào),每一個(gè)像元輸出信號(hào)的開(kāi)始都有一個(gè)同步參考信號(hào),后面部分才為有效信號(hào)輸出,由于CCD輸出信號(hào)為負(fù)極性信號(hào),所以有效信號(hào)值相對(duì)于參考信號(hào)為負(fù)。
圖5為全暗條件RL2048P的輸出,由于光敏面上沒(méi)有光,只有暗電平信號(hào)輸出,所以像元的輸出有效信號(hào)幾乎為零。圖6為弱光條件RL2048P的輸出,有效信號(hào)幅值發(fā)生了變化。圖7為全亮條件RL2048P的輸出,有效信號(hào)到達(dá)了飽和值。RL2048P的實(shí)際輸出和理論分析一致,工作正常。聲光信號(hào)通過(guò)中間有孔的不透光遮擋板照在CCD上,使用應(yīng)用軟件進(jìn)行數(shù)據(jù)采集。從CCD Data.txt數(shù)據(jù)文件中連續(xù)提取8 192個(gè)像元點(diǎn)即四幀CCD數(shù)據(jù),Matlab軟件分析如圖8所示。
有光照射的位置對(duì)應(yīng)為高,實(shí)測(cè)數(shù)據(jù)和理論值吻合。在其他條件下也做相關(guān)實(shí)驗(yàn),結(jié)果與理論基本一致。由于篇幅所限,本文不做詳細(xì)介紹。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)功能完整,可以實(shí)現(xiàn)聲光信號(hào)的高速采集、傳輸及儲(chǔ)存。
5 結(jié) 語(yǔ)
系統(tǒng)采用現(xiàn)場(chǎng)FPGA作為硬件設(shè)計(jì)核心,使用Veritog語(yǔ)言。進(jìn)行硬件描述,使系統(tǒng)更靈活,可在線編程,便于擴(kuò)展和升級(jí)。這里的CCD驅(qū)動(dòng)時(shí)序采用狀態(tài)機(jī)與分頻相結(jié)合的新方法,實(shí)際測(cè)試驅(qū)動(dòng)波形穩(wěn)定且沒(méi)有毛刺,CCD輸出信號(hào)質(zhì)量高。USB應(yīng)用于Slave FIFO高速傳輸模式,滿足了高速CCD聲光信號(hào)采集的要求,具有實(shí)時(shí)性、高速、穩(wěn)定、可靠等特點(diǎn)。
評(píng)論