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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 單片機(jī)與FPGA實(shí)現(xiàn)等精度頻率測(cè)量和IDDS技術(shù)設(shè)計(jì)方

          單片機(jī)與FPGA實(shí)現(xiàn)等精度頻率測(cè)量和IDDS技術(shù)設(shè)計(jì)方

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

          1.1.2 相位部分

          相位寄存器的輸出通過(guò)相位調(diào)制器與相位控制字K相加,使最終的輸出產(chǎn)生一定的相位偏移θ,θ的值與相位控制字K與ROM中的數(shù)據(jù)有關(guān)。我們通過(guò)設(shè)置兩路信號(hào)的K值,使兩路信號(hào)有不同的相位偏移量,從而產(chǎn)生相位差△θ。設(shè)A路信號(hào)的控制字為K,B路信號(hào)的控制字為K’,考慮到的內(nèi)部資源,取512個(gè)采樣點(diǎn),可得

          通常我們只要改變控制字K就可以實(shí)現(xiàn)步進(jìn)調(diào)整。

          1.2 DDS產(chǎn)生的軟件設(shè)計(jì)

          1.2.1 軟件設(shè)計(jì)

          負(fù)責(zé)接收由送過(guò)來(lái)的頻率字與相位控制字,同時(shí)將波形在ROM中的數(shù)據(jù)送給DA轉(zhuǎn)換器進(jìn)行DA轉(zhuǎn)換,輸出正弦波、方波、三角波三種波形,通過(guò)調(diào)節(jié)DA轉(zhuǎn)換器的基準(zhǔn)電壓可調(diào)節(jié)輸出的正弦波、方波、三角波三種波形的幅度,利用按鍵可以設(shè)置一定范圍內(nèi)的頻率值和步進(jìn)值,并能實(shí)現(xiàn)波形間的任意切換,實(shí)現(xiàn)了頻率、步進(jìn)、幅度的任意調(diào)節(jié)。

          1.2.2 軟件設(shè)計(jì)

          軟件設(shè)計(jì)主要是負(fù)責(zé)接收鍵盤(pán)置入的頻率、步進(jìn)值、選擇波形并將其在液晶顯示屏中顯示和把各種控制信號(hào)和數(shù)據(jù)送到FPGA中??稍O(shè)置任意頻率、任意步進(jìn)、波形切換等多種輸出方式,在此基礎(chǔ)上可擴(kuò)展為任意信號(hào)發(fā)生器,具體程序流程圖如圖3:

          1.2.3 FPGA與單片機(jī)的通信

          本系統(tǒng)設(shè)計(jì)中,F(xiàn)PGA與凌陽(yáng)單片機(jī)采用串行輸入并行輸出的方式進(jìn)行通信。使用VHDL語(yǔ)言在EP2C20器件中利用D觸發(fā)器和移位寄存器接收凌陽(yáng)單片機(jī)發(fā)送過(guò)來(lái)的頻率控制字和相位控制字,然后送入相位累加器。在FPGA與凌陽(yáng)單片機(jī)通信中,單片機(jī)實(shí)行串行輸入,不斷地向FPGA送頻率控制字和相位控制字,送給FPGA實(shí)現(xiàn)相位累加。



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