基于FPGA和USB2.0的高速CCD聲光信號(hào)采集系統(tǒng)
A/D轉(zhuǎn)換模塊 AD9822是ADI公司的專用CCD信號(hào)處理芯片,內(nèi)部集成CDS,PGA,14位
USB接口傳輸模塊 USB 2.0協(xié)議的傳輸速度高達(dá)480 Mb/s,且具有接口簡(jiǎn)單及誤碼率低等優(yōu)點(diǎn),能夠滿足該系統(tǒng)高速傳輸?shù)男枰?。選用Cypress公司的新一代低功耗CY7C68013A芯片,與之相應(yīng)的開(kāi)發(fā)包和開(kāi)發(fā)文檔較齊全,縮短了開(kāi)發(fā)周期,降低了開(kāi)發(fā)難度。為了保證數(shù)據(jù)傳輸?shù)乃俣龋珻Y7C68013A工作于SlaveFIFO模式,不需要EZ-USB FX2LP的CPU干預(yù),即可完成與FPGA的數(shù)據(jù)傳輸。EP2C35與CY7C68013A的通信采用了Slave FIFO模式下的異步方式,向大端點(diǎn)EP6寫(xiě)數(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ǔ)上,用戶只需要編寫(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
應(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文件。
評(píng)論