基于FPGA和USB2.0的高速CCD聲光信號采集系統
A/D轉換模塊 AD9822是ADI公司的專用CCD信號處理芯片,內部集成CDS,PGA,14位
USB接口傳輸模塊 USB 2.0協議的傳輸速度高達480 Mb/s,且具有接口簡單及誤碼率低等優點,能夠滿足該系統高速傳輸的需要。選用Cypress公司的新一代低功耗CY7C68013A芯片,與之相應的開發包和開發文檔較齊全,縮短了開發周期,降低了開發難度。為了保證數據傳輸的速度,CY7C68013A工作于SlaveFIFO模式,不需要EZ-USB FX2LP的CPU干預,即可完成與FPGA的數據傳輸。EP2C35與CY7C68013A的通信采用了Slave FIFO模式下的異步方式,向大端點EP6寫數據,配置其為512 B四重緩沖區,批量AUTO IN傳輸模式,每次自動提交512 B數據。圖4為EP2C35與CY7C68013A的接口連接。
3 系統軟件設計
系統軟件設計包括:
固件程序(Firmware)設計 設備固件的主要功能是控制CY7C68013A接收并處理USB驅動程序的請求。如請求設備描述符,請求或設置設備狀態,請求或設置設備接口等USB 2.0標準請求;輔助硬件完成設備的重新枚舉、端點配置、控制和監測USB的活動,根據PC主機的命令與外圍電路進行數據交換等。Cy-press公司為用戶提供了一個固件程序框架,是通用性強的模塊化程序。在框架的基礎上,用戶只需要編寫Function.c文件即可完成USB功能開發。主要包括:Slave FIFO模式的初始化和用戶自定義請求。
驅動程序開發 系統包括兩個USB驅動程序:一個驅動專用于下載芯片的固件程序CCDloader.sys,另一個通用驅動程序ccdusb.sys用來實現USB設備與應用程序的通信和控制。芯片固件程序在主機上,當系統上電時,前者將其下載到芯片的RAM中,并由增強型8051
應用程序開發 它的主要任務是與USB驅動程序通信,控制聲光信號采集過程。在此用Visual C++6.0進行程序設計。CyAPI控制函數類為FX2LP系列USB接口芯片提供了十分精細的控制接口,只需在應用程序中加頭文件CyAPI.h和庫文件CyAPI.lib即可調用相應的控制函數,打開USB設備讀取數據并存儲到主機硬盤中的CcdData.txt文件。
評論