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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA的USB接口數據采集系統(tǒng)設計

          基于FPGA的USB接口數據采集系統(tǒng)設計

          作者: 時間:2011-07-22 來源:網絡 收藏

          3.2 與USB芯片的連接設計
          當EZ-USB FX2LP工作于Slave FIFO模式時,外圍電路可以像普通FIFO一樣對EZ-USB FX2LP中的端點數據緩沖區(qū)進行讀寫[2]。本系統(tǒng)采用作為主控制器,因而,對USB控制采用Slave FIFO模式,通過控制CY7C68013內4 KB的FIFO進行與上位機之間的數據傳輸。FPGA與USB芯片的硬件連接如圖3所示。

          基于FPGA的USB接口數據采集系統(tǒng)設計

          4 系統(tǒng)軟件設計
          系統(tǒng)軟件設計主要包括FPGA控制邏輯設計、USB固件程序設計、USB設備驅動程序和上位機應用程序。


          4.1 FPGA設計
          FPGA程序的設計是整個采集系統(tǒng)的關鍵,整體分成三大模塊:分頻采樣控制模塊、通道選擇模塊和USB傳輸控制模塊。以下是各個模塊設計的具體介紹。


          4.1.1 分頻采樣控制模塊
          本系統(tǒng)中,F(xiàn)PGA的主時鐘m_clk由USB芯片輸出的30 MHz頻率提供,由于A/D采樣需要3 MHz的時鐘頻率,因此首先模塊對主時鐘進行10分頻得到3 MHz同步時鐘信號o_clk。同時,該模塊還要控制數據采樣、A/D轉換以及數據的串并轉換。在采樣時刻到來時,在同步脈沖o_clk和片選信號cs(低電平有效)的控制下,依據ADS7817轉換時序圖進行采樣、轉換。轉換過程中計數o_clk脈沖,每12個脈沖置位cs為高電平,使結果僅輸出一次,否則在DOUT端繼續(xù)從最低位到最高位依次輸出轉換結果。in_data是A/D轉換后的串行輸出數據,o_Para是對in_data經過串并轉換后輸出的并行16 bit數據。


          4.1.2 USB傳輸控制模塊
            該模塊主要負責對USB芯片端點的讀寫控制。USB芯片端點FIFO用于數據的緩存,一方面存儲上位機發(fā)出的采集參數信息,另一方面存儲FPGA輸出的并行16 bit采集數據。該模塊通過判斷端點FIFO的空、滿標志位來對USB端點2、4、6、8進行讀寫控制。本系統(tǒng)采用異步FIFO讀、寫控制模式,該模塊用狀態(tài)機來實現(xiàn),將讀、寫過程分別分成5個狀態(tài),異步FIFO讀狀態(tài)機如圖4所示。

          基于FPGA的USB接口數據采集系統(tǒng)設計

          IDLE:當“寫”事件發(fā)生時,轉到狀態(tài)1。
          狀態(tài)1:指向OUT FIFO,激活FIFOADR[1:0],轉向狀態(tài)2。
          狀態(tài)2:激活SLOE,如果FIFO空標志為“假”(FIFO 不空),則轉向狀態(tài)3;否則停留在狀態(tài)2。
          狀態(tài)3:激活SLOE,SLRD,傳送數據到總線上;撤銷激活SLRD(指針加1)和SLOE,轉向狀態(tài)4。
          狀態(tài)4:如果有更多的數據要求,則轉向狀態(tài)2;否則轉向IDLE。


          4.1.3 通道選擇模塊
          該模塊主要負責系統(tǒng)通道的選通,根據得到的采集參數信息選擇相應的通道進行[3]。該模塊通過產生不同的電平,來控制集成D觸發(fā)器SN74LS174的其中5個輸入端,從而達到選擇通道的目的。


          4.2 USB固件程序設計
          本系統(tǒng)中數據通道分為采集數據上傳通道和控制字下傳通道。根據設計需要進行配置,配置端點4、6、8為采集數據上傳通道,用于從FPGA向主機傳輸采集數據,采用塊傳輸模式,512 B 2重緩沖,16 bit數據自動輸入模式;配置端點2為控制字下傳通道,用于傳送主機控制字到FPGA,采用塊傳輸模式,512 B 2重緩沖,16 bit自動輸出模式。固件程序采用Cypress公司提供的固件程序框架,在其初始化函數中添加了用戶配置代碼。改動部分代碼如下所示:
          void TD_Init(void)
          {...
          EP2CFG=0xA2;
          EP4CFG=EP6CFG=EP8CFG=0xE2;
          EP2FIFOCFG=0x15;
          EP4FIFOCFG=EP6FIFOCFG=EP6FIFOCFG=0x0D;
          ...
          }
          4.3 USB設備驅動程序設計
          Cypress為其EZ-USB系列USB接口芯片提供了一個完整的開發(fā)包,其中包括通用USB驅動程序。本系統(tǒng)按照設計要求,在DDK平臺上修改通用USB驅動程序代碼,生成本系統(tǒng)的驅動程序代碼。


          4.4 上位機應用程序設計
          上位機應用程序的作用就是提供一個人機交互的顯示界面,體現(xiàn)系統(tǒng)的運行狀態(tài)。這里采用Microsoft Visual C++ 6.0進行上位機應用程序的設計,程序中采用CYAPI控制函數類。CyAPI控制函數類為EZ-USB FX2LP系列USB接口芯片提供了十分精細的控制接口[4]。在使用Cypress公司提供的驅動程序基礎上,只需在主機程序中加入頭文件CyAPI.h和庫文件CyAPI.lib即可調用相應的控制函數。


          5 FPGA核心模塊仿真
          圖5是針對分頻采樣控制模塊的仿真時序。波形結果顯示該模塊在一個采樣周期內能夠準確產生同步時鐘信號o_clk和片選信號cs,并且串行輸入數據in_data經過串并轉換后能夠準確無誤地并行輸出。

          基于FPGA的USB接口數據采集系統(tǒng)設計

          本文創(chuàng)新點是設計了一款同時支持單端16路和差分8路模擬信號輸入、FPGA為核心控制和為接口傳輸的多通道、實時、高速、便攜式系統(tǒng)。本系統(tǒng)在Altera公司提供的Quartus II 8.0 集成開發(fā)環(huán)境下進行設計、編譯、綜合、優(yōu)化、布局布線、驗證和仿真,并成功下載到FPGA芯片中。經過長時間的測試,系統(tǒng)工作穩(wěn)定、性能可靠,說明了設計結構的合理性,比較適合野外現(xiàn)場的場合。


          上一頁 1 2 下一頁

          關鍵詞: FPGA USB2.0 數據采集

          評論


          相關推薦

          技術專區(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); })();