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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的多功能頻率計的設(shè)計

          基于FPGA的多功能頻率計的設(shè)計

          作者: 時間:2012-12-20 來源:網(wǎng)絡(luò) 收藏

          n.JPG


          計數(shù)器控制模塊:門控信號啟動(上升沿)后,在被測信號的上升沿啟動計數(shù)允許模塊,允許計數(shù)器計數(shù);門控信號關(guān)閉(下降沿)后,在被測信號的下一個上升沿關(guān)閉計數(shù)允許模塊,停止計數(shù),從而保證了門控信號是被測信號的整數(shù)倍,達(dá)到了等精度的目的。
          計數(shù)器模塊:在設(shè)計計數(shù)器的過程中需要注意計數(shù)器的寬度設(shè)置,系統(tǒng)中采用的最大門控時間為10 s,標(biāo)準(zhǔn)信號源的頻率為50 MHz,則在計數(shù)的允許時間內(nèi)計數(shù)的最大值為:10 50 000 000=500 000 000229=536 870 912,為了方便數(shù)據(jù)傳輸,系統(tǒng)中采用了32位位寬的計數(shù),如圖7所示,仿真波形如圖8所示。

          a.JPG

          b.JPG


          鎖存器模塊:在門控信號關(guān)閉的同時,停止計數(shù),同時啟動鎖存模塊,把測量的數(shù)據(jù)鎖存起來,以便傳輸。
          中斷輸出:鎖存數(shù)據(jù)的同時,給單片機(jī)一個低電平的中斷信號,通知單片機(jī)讀取數(shù)據(jù)。該模塊用于鎖存計數(shù)器輸出計數(shù)值,供51IP軟核讀取,進(jìn)行處理顯示。計數(shù)器模塊在門控信號關(guān)閉(下降沿)的同時,停止計數(shù),同時啟動鎖存模塊,把測量的數(shù)據(jù)鎖存起來,以便傳輸,鎖存電路如圖9所示。

          c.JPG


          數(shù)據(jù)選擇輸出:系統(tǒng)中采用了2個32位的計數(shù)器,由于單片機(jī)采用的是51系列單片機(jī),只有8位的數(shù)據(jù)總線,所以一次通信只能傳輸8位數(shù)據(jù),所以設(shè)計了一個數(shù)據(jù)輸出控制模塊。

          d.JPG


          頂層模塊:實例化所有的底層模塊。部分的整體結(jié)構(gòu)圖如圖10所示。

          4 MC8051 IP Core軟件設(shè)計流程
          系統(tǒng)軟件設(shè)計流程如圖11所示。

          e1.jpg


          中斷服務(wù)子程序如圖12所示。

          e.JPG



          5 結(jié)論
          文中采用Altera的cyclone II系列的EP2C8Q208C8這款芯片。設(shè)計中使用了Verilog語言對各個模塊的描述設(shè)計。文中提出的數(shù)字設(shè)計方案采用等精度的測量算法,以先進(jìn)的可編程邏輯器件作為核心控制及運算電路單元可達(dá)到很高的測量精度要求,8051IPCore嵌入到FPGA芯片系統(tǒng),與測頻模塊共用同一個FPGA芯片,和傳統(tǒng)的相比大大減小了電路板的尺寸,同時增加了系統(tǒng)的可靠性、設(shè)計靈活性和可更改性。實現(xiàn)了數(shù)字系統(tǒng)的軟件化。加入LCD液晶顯示,使測量效果更加直觀。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: FPGA 多功能 頻率計

          評論


          相關(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); })();