基于FPGA和USB 2.0的高速CCD聲光信號(hào)采集系統(tǒng)
0 引 言
本文引用地址:http://butianyuan.cn/article/201706/349354.htm在現(xiàn)代通信和雷達(dá)領(lǐng)域中,寬帶、高增益、實(shí)時(shí)并行處理是現(xiàn)代接收機(jī)的重要標(biāo)志。因而,這種具有高速并行處理能力和特有的大帶寬性能的聲光處理系統(tǒng)具有巨大的潛在優(yōu)勢(shì)。以聲光器件為基礎(chǔ)的接收機(jī)除了具有寬帶、高增益、實(shí)時(shí)并行處理等特點(diǎn)外,還具有容量大,體積小,功耗低等優(yōu)點(diǎn)。因而,采用聲光信號(hào)處理技術(shù)解決帶寬、高增益和實(shí)時(shí)并行處理問題具有重要意義,聲光信號(hào)的采集系統(tǒng)的設(shè)計(jì)是整個(gè)聲光系統(tǒng)關(guān)鍵之一。這里設(shè)計(jì)了一個(gè)基于FPGA和USB 2.0的高速CCD聲光信號(hào)采集系統(tǒng),為聲光信號(hào)采集提供了硬件平臺(tái)。
1 系統(tǒng)概述
聲光信號(hào)采集系統(tǒng)框圖如圖1所示。系統(tǒng)主要由CCD聲光信號(hào)采集模塊、A/D轉(zhuǎn)換模塊、FPGA驅(qū)動(dòng)和控制模塊及USB接口傳輸模塊四部分組成。
系統(tǒng)上電后,USB設(shè)備按照上位機(jī)的命令完成對(duì)。FPGA數(shù)據(jù)采集參數(shù)的初始化設(shè)置及采集控制。RL2048P在驅(qū)動(dòng)時(shí)序的嚴(yán)格控制下工作,采集的模擬信號(hào)經(jīng)專用CCD信號(hào)處理芯片AD9822的相關(guān)雙采樣及模/數(shù)轉(zhuǎn)換后,緩存在EP2C35內(nèi)部配置的FIFO中,然后判斷當(dāng)FIFO中的數(shù)據(jù)達(dá)到2 048 B時(shí),向USB控制器CY7C68013A中異步寫數(shù)據(jù),由于USB設(shè)置自動(dòng)IN模式,可以直接把FIFO中數(shù)據(jù)傳輸?shù)絇C上位機(jī)硬盤文件中,因而可完成CCD聲光信號(hào)的采集、傳輸及存儲(chǔ)。
2 系統(tǒng)各模塊設(shè)計(jì)
系統(tǒng)各模塊設(shè)計(jì)為:
FPGA驅(qū)動(dòng)及控制模塊 系統(tǒng)采用Altera公司的CycloneⅡ系列。EP2C35F672C6芯片,具有高性價(jià)比及豐富的邏輯資源,可滿足系統(tǒng)的要求。有4個(gè)PLL,33 216個(gè)LE,48 KB存儲(chǔ)器資源,可以配置成各種模式的ROM,RAM及。FIFO,35個(gè)18×18的專用乘法器。FPGA的主要功能是產(chǎn)生RL2048P驅(qū)動(dòng)時(shí)序,控制AD9822采樣及對(duì)其寄存器實(shí)現(xiàn)串行編程,內(nèi)部配置FIFO緩存數(shù)據(jù)以及與USB接口通信,并傳輸數(shù)據(jù)到上位機(jī)中。
CCD聲光信號(hào)采集模塊 選用PerkinElmer公司的RL2048P線陣CCD。該芯片主要用于高速信號(hào)采集,2 048個(gè)有效像元,具有高靈敏度、大動(dòng)態(tài)范圍、寬光譜范圍等特點(diǎn),最高工作頻率為40 MHz,該系統(tǒng)設(shè)計(jì)為10 MHz。EP2C35的時(shí)序驅(qū)動(dòng)輸出是3.3 V的LVTTL電平,不能直接驅(qū)動(dòng)RL2048P(多電平要求)。因此,使用DG642和74FCT16244TV芯片完成電平轉(zhuǎn)換,增強(qiáng)驅(qū)動(dòng)能力。圖2為RL2048P驅(qū)動(dòng)時(shí)序圖;圖3為使用Verilog HDL編寫驅(qū)動(dòng)時(shí)序的QuartusⅡ仿真。由比較可見,設(shè)計(jì)完全能滿足時(shí)序的嚴(yán)格要求。
A/D轉(zhuǎn)換模塊 AD9822是ADI公司的專用CCD信號(hào)處理芯片,內(nèi)部集成CDS,PGA,14位ADC、暗電平自動(dòng)校準(zhǔn)、偏置電壓控制以及串行接口等功能,采樣速度高達(dá)15 MHz。ADCCLK的下降沿輸出數(shù)據(jù)的高8位,ADCCLK的上升沿輸出數(shù)據(jù)的低6位。AD9822采樣控制時(shí)序及寄存器編程都是由EP2C35實(shí)現(xiàn),與RL2048P輸出信號(hào)同步,保證采集數(shù)據(jù)的正確性。采用相關(guān)雙采樣模式可以抑制CCD的復(fù)位噪聲,本系統(tǒng)設(shè)置其寄存器分別為0x0058,0x10C0,0x2000,0x50FF。
USB接口傳輸模塊 USB 2.0協(xié)議的傳輸速度高達(dá)480 Mb/s,且具有接口簡(jiǎn)單及誤碼率低等優(yōu)點(diǎn),能夠滿足該系統(tǒng)高速傳輸?shù)男枰?。選用Cypress公司的新一代低功耗CY7C68013A芯片,與之相應(yīng)的開發(fā)包和開發(fā)文檔較齊全,縮短了開發(fā)周期,降低了開發(fā)難度。為了保證數(shù)據(jù)傳輸?shù)乃俣?,CY7C68013A工作于SlaveFIFO模式,不需要EZ-USB FX2LP的CPU干預(yù),即可完成與FPGA的數(shù)據(jù)傳輸。EP2C35與CY7C68013A的通信采用了Slave FIFO模式下的異步方式,向大端點(diǎn)EP6寫數(shù)據(jù),配置其為512 B四重緩沖區(qū),批量AUTO IN傳輸模式,每次自動(dòng)提交512 B數(shù)據(jù)。圖4為EP2C35與CY7C68013A的接口連接。
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ǔ)上,用戶只需要編寫Function.c文件即可完成USB功能開發(fā)。主要包括:Slave FIFO模式的初始化和用戶自定義請(qǐng)求。
驅(qū)動(dòng)程序開發(fā) 系統(tǒng)包括兩個(gè)USB驅(qū)動(dòng)程序:一個(gè)驅(qū)動(dòng)專用于下載芯片的固件程序CCDloader.sys,另一個(gè)通用驅(qū)動(dòng)程序ccdusb.sys用來實(shí)現(xiàn)USB設(shè)備與應(yīng)用程序的通信和控制。芯片固件程序在主機(jī)上,當(dāng)系統(tǒng)上電時(shí),前者將其下載到芯片的RAM中,并由增強(qiáng)型8051微處理器執(zhí)行。當(dāng)固件下載完成后,模擬一次斷開重新連接,此時(shí)下載的固件響應(yīng)USB枚舉,并加載USB設(shè)備通用驅(qū)動(dòng)程序。USB的驅(qū)動(dòng)程序是WDM類型,可以使用Windows DDK,WinDriver,DriverStudio開發(fā)。
應(yīng)用程序開發(fā) 它的主要任務(wù)是與USB驅(qū)動(dòng)程序通信,控制聲光信號(hào)采集過程。在此用Visual C++6.0進(jìn)行程序設(shè)計(jì)。CyAPI控制函數(shù)類為FX2LP系列USB接口芯片提供了十分精細(xì)的控制接口,只需在應(yīng)用程序中加頭文件CyAPI.h和庫文件CyAPI.lib即可調(diào)用相應(yīng)的控制函數(shù),打開USB設(shè)備讀取數(shù)據(jù)并存儲(chǔ)到主機(jī)硬盤中的CcdData.txt文件。
4 實(shí)驗(yàn)數(shù)據(jù)分析
使用TEKTRONIX公司的示波器,對(duì)經(jīng)過隔直處理后的RL2048P輸出信號(hào)在各種實(shí)驗(yàn)條件下進(jìn)行了測(cè)試和分析。如圖2所示,VOUT為像元輸出信號(hào),每一個(gè)像元輸出信號(hào)的開始都有一個(gè)同步參考信號(hào),后面部分才為有效信號(hào)輸出,由于CCD輸出信號(hào)為負(fù)極性信號(hào),所以有效信號(hào)值相對(duì)于參考信號(hào)為負(fù)。
圖5為全暗條件RL2048P的輸出,由于光敏面上沒有光,只有暗電平信號(hào)輸出,所以像元的輸出有效信號(hào)幾乎為零。圖6為弱光條件RL2048P的輸出,有效信號(hào)幅值發(fā)生了變化。圖7為全亮條件RL2048P的輸出,有效信號(hào)到達(dá)了飽和值。RL2048P的實(shí)際輸出和理論分析一致,工作正常。聲光信號(hào)通過中間有孔的不透光遮擋板照在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é) 語
系統(tǒng)采用現(xiàn)場(chǎng)FPGA作為硬件設(shè)計(jì)核心,使用Veritog語言。進(jìn)行硬件描述,使系統(tǒng)更靈活,可在線編程,便于擴(kuò)展和升級(jí)。這里的CCD驅(qū)動(dòng)時(shí)序采用狀態(tài)機(jī)與分頻相結(jié)合的新方法,實(shí)際測(cè)試驅(qū)動(dòng)波形穩(wěn)定且沒有毛刺,CCD輸出信號(hào)質(zhì)量高。USB應(yīng)用于Slave FIFO高速傳輸模式,滿足了高速CCD聲光信號(hào)采集的要求,具有實(shí)時(shí)性、高速、穩(wěn)定、可靠等特點(diǎn)。(發(fā)布者:chiying)
評(píng)論