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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

          基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-05-18 來(lái)源:網(wǎng)絡(luò) 收藏

          3 系統(tǒng)軟件設(shè)計(jì)

          3.1 總體方案設(shè)計(jì)

          系統(tǒng)的軟件總體方案設(shè)計(jì)流程圖如圖4所示。當(dāng)、ADC以及12864顯示器初始化完畢之后,判斷是否有模擬信號(hào)輸入到ADC器件中,如果沒(méi)有,則等待信號(hào)的輸入;如果有,則ADC開(kāi)始采集數(shù)據(jù)并轉(zhuǎn)換。轉(zhuǎn)換完成之后,送到芯片進(jìn)行數(shù)據(jù)處理。然后,傳送到12864顯示器中進(jìn)行波形的顯示。最后,再次判斷有無(wú)信號(hào)輸入到ADC中,如果有,則繼續(xù)進(jìn)行下次的采集流程;如果沒(méi)有,則結(jié)束程序。

          d.JPG

          3.2 FIFO緩存設(shè)計(jì)

          由于A/D轉(zhuǎn)換器、FPGA以及12864顯示器之間處理數(shù)據(jù)的速度不同,為了消除不必要的數(shù)據(jù)丟失與毛刺現(xiàn)象或者重復(fù)讀取,可以將處理后的數(shù)據(jù)暫時(shí)存入FIFO中。FIFO是一個(gè)先入先出的堆棧,利用FPGA內(nèi)部強(qiáng)大的寄存器功能,設(shè)計(jì)了一個(gè)FIFO的數(shù)據(jù)緩沖器。

          如圖5所示,A/D轉(zhuǎn)換器將轉(zhuǎn)換好的數(shù)據(jù)存入FIFO緩存中,F(xiàn)PGA檢測(cè)顯示器12864有無(wú)讀信號(hào),如果有讀信號(hào),則FIFO輸出信號(hào)給顯示器;如果沒(méi)有,則數(shù)據(jù)繼續(xù)存儲(chǔ)在FIFO中,等待被取走。

          4 結(jié)束語(yǔ)

          基于FPGA在高速方面有單片機(jī)和DSP無(wú)法比擬的優(yōu)勢(shì),F(xiàn)PGA具有時(shí)鐘頻率高,內(nèi)部延時(shí)小,全部控制邏輯由硬件完成,速度快,效率高,組成形式靈活等特點(diǎn)。因此,本文研究并開(kāi)發(fā)了一個(gè)基于FPGA的系統(tǒng)。本文中所提出的數(shù)據(jù)采集方案,就是利用FPGA作為整個(gè)數(shù)據(jù)采集系統(tǒng)的核心來(lái)對(duì)系統(tǒng)時(shí)序和各邏輯模塊進(jìn)行控制。依靠FPGA強(qiáng)大的功能基礎(chǔ),以FPGA作為橋梁合理的連接了ADC、顯示器件以及其他外圍電路,最終實(shí)現(xiàn)了課題的要求,達(dá)到了數(shù)據(jù)采集的目的。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();