<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA和USB2.0的高速CCD聲光信號采集系統(tǒng)

          基于FPGA和USB2.0的高速CCD聲光信號采集系統(tǒng)

          作者: 時間:2010-03-17 來源:網(wǎng)絡 收藏

            A/D轉換模塊 AD9822是ADI公司的專用CCD信號處理芯片,內部集成CDS,PGA,14位ADC、暗電平自動校準、偏置電壓控制以及串行接口等功能,采樣速度高達15 MHz。ADCCLK的下降沿輸出數(shù)據(jù)的高8位,ADCCLK的上升沿輸出數(shù)據(jù)的低6位。AD9822采樣控制時序及寄存器編程都是由EP2C35實現(xiàn),與RL2048P輸出信號同步,保證采集數(shù)據(jù)的正確性。采用相關雙采樣模式可以抑制CCD的復位噪聲,本系統(tǒng)設置其寄存器分別為0x0058,0x10C0,0x2000,0x50FF。

            USB接口傳輸模塊 USB 2.0協(xié)議的傳輸速度高達480 Mb/s,且具有接口簡單及誤碼率低等優(yōu)點,能夠滿足該系統(tǒng)高速傳輸?shù)男枰?。選用Cypress公司的新一代低功耗CY7C68013A芯片,與之相應的開發(fā)包和開發(fā)文檔較齊全,縮短了開發(fā)周期,降低了開發(fā)難度。為了保證數(shù)據(jù)傳輸?shù)乃俣?,CY7C68013A工作于SlaveFIFO模式,不需要EZ-USB FX2LP的CPU干預,即可完成與的數(shù)據(jù)傳輸。EP2C35與CY7C68013A的通信采用了Slave FIFO模式下的異步方式,向大端點EP6寫數(shù)據(jù),配置其為512 B四重緩沖區(qū),批量AUTO IN傳輸模式,每次自動提交512 B數(shù)據(jù)。圖4為EP2C35與CY7C68013A的接口連接。

          EP2C35與CY7C68013A的接口連接

            3 系統(tǒng)軟件設計

            系統(tǒng)軟件設計包括:

            固件程序(Firmware)設計 設備固件的主要功能是控制CY7C68013A接收并處理USB驅動程序的請求。如請求設備描述符,請求或設置設備狀態(tài),請求或設置設備接口等USB 2.0標準請求;輔助硬件完成設備的重新枚舉、端點配置、控制和監(jiān)測USB的活動,根據(jù)PC主機的命令與外圍電路進行數(shù)據(jù)交換等。Cy-press公司為用戶提供了一個固件程序框架,是通用性強的模塊化程序。在框架的基礎上,用戶只需要編寫Function.c文件即可完成USB功能開發(fā)。主要包括:Slave FIFO模式的初始化和用戶自定義請求。

            驅動程序開發(fā) 系統(tǒng)包括兩個USB驅動程序:一個驅動專用于下載芯片的固件程序CCDloader.sys,另一個通用驅動程序ccdusb.sys用來實現(xiàn)USB設備與應用程序的通信和控制。芯片固件程序在主機上,當系統(tǒng)上電時,前者將其下載到芯片的RAM中,并由增強型8051微處理器執(zhí)行。當固件下載完成后,模擬一次斷開重新連接,此時下載的固件響應USB枚舉,并加載USB設備通用驅動程序。USB的驅動程序是WDM類型,可以使用Windows DDK,WinDriver,DriverStudio開發(fā)。

            應用程序開發(fā) 它的主要任務是與USB驅動程序通信,控制過程。在此用Visual C++6.0進行程序設計。CyAPI控制函數(shù)類為FX2LP系列USB接口芯片提供了十分精細的控制接口,只需在應用程序中加頭文件CyAPI.h和庫文件CyAPI.lib即可調用相應的控制函數(shù),打開USB設備讀取數(shù)據(jù)并存儲到主機硬盤中的CcdData.txt文件。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();