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