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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于USB通信的FPGA高速數(shù)據(jù)采集系統(tǒng)

          基于USB通信的FPGA高速數(shù)據(jù)采集系統(tǒng)

          作者: 時間:2011-06-29 來源:網(wǎng)絡(luò) 收藏

          1.3 器件
          接口使用方便,連接簡單,但是協(xié)議很復(fù)雜。因此,外設(shè)必須使用控制器芯片,管理數(shù)據(jù)USB控制器采用集成了8051單片機的CY7C68013A控制器芯片,該芯片遵從USB 2.0規(guī)范,有較快的傳輸速度,是目前比較通用的一種USB控制芯片。
          CY7C68013A是Cypress公司EZ-USB FX2LP系列芯片中比較經(jīng)典的一款USB控制器,其內(nèi)部結(jié)構(gòu)如圖2所示。其中,主要包括USB 2.0收發(fā)器、串行引擎(SIE)、增強型8051內(nèi)核、16 KB的RAM、4 KB的FIFO存儲器、I/O接口、數(shù)據(jù)總線、地址總線和通用可編程接口(GPIF)。

          本文引用地址:http://www.ex-cimer.com/article/156123.htm

          c.jpg


          EZ-USB FX2LP擁有非常獨特的結(jié)構(gòu),其串行接口引擎(SIE)負責(zé)完成串行數(shù)據(jù)的解碼、差錯控制、位填充等與USB有關(guān)的功能。串行接口引擎(SIE)能夠?qū)崿F(xiàn)大部分的功能,從而減輕了嵌入式增強型8051的負擔(dān),簡化了USB固件程序的開發(fā)。

          2 軟硬件實現(xiàn)
          2.1 A/D轉(zhuǎn)換
          通過PINFET光電轉(zhuǎn)換為單端模擬信號,而A/D轉(zhuǎn)換器AD7356是差分輸入方式,所以需要對輸入方式進行轉(zhuǎn)換。AD7356說明書中給出了詳細的轉(zhuǎn)換電路,按說明連接即可。由于AD7356供電電源為2.5 V,所以和之間的連接需要調(diào)整AD7356的信號電平,使得輸出電平與的3.3 V電平兼容。在電路設(shè)計時,可以通過將AD7356的Vdriver引腳連接到3.3 V,這樣使得輸出信號電平為3.3 V。
          采用的AD7356采樣頻率由輸入時鐘信號決定,而采樣通過使能引腳CS控制。在設(shè)定好采樣頻率后,A/D轉(zhuǎn)換程序主要依靠對CS信號控制,并對輸入得兩路信號串并轉(zhuǎn)換即可。
          2.2 數(shù)據(jù)緩存
          數(shù)據(jù)緩存主要是利用內(nèi)自帶的塊RAM對多路信號進行排序、存儲,然后按USB數(shù)據(jù)包大小打包傳輸,因此對于硬件(FPGA)不再多做介紹。
          數(shù)據(jù)緩存的軟件實現(xiàn)主要依靠FPGA內(nèi)的雙口RAM IP核。雙口RAM由于有2個單獨的數(shù)據(jù)輸入和輸出口,所以可以調(diào)節(jié)輸入輸出端口的速度,使得數(shù)據(jù)讀取與輸入速度可以方便的控制。另外,由于本系統(tǒng)有多路光信號,所以FPGA內(nèi)還需要對各個雙口RAM的讀取進行控制,對各路信號讀取順序進行,其軟件結(jié)構(gòu)圖如圖3所示。每路A/D都有兩個RAM輪流存儲采集數(shù)據(jù),一方面避免RAM出現(xiàn)數(shù)據(jù)溢出,保證數(shù)據(jù)不丟失;另一方面可以通過將RAM大小設(shè)定與USB數(shù)據(jù)包大小一致,使USB傳輸?shù)目刂坪唵巍?/p>

          d.jpg



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();