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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FPGA和單片機的掃頻儀研究與設(shè)計

          基于FPGA和單片機的掃頻儀研究與設(shè)計

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

          一個網(wǎng)絡(luò)的包括幅頻特性和相頻特性,在系統(tǒng)設(shè)計時,各個網(wǎng)絡(luò)的對該系統(tǒng)的穩(wěn)定性、工作頻帶、傳輸特性等都具有重要影響。實際操作中,大大簡化了測量操作,提高了工作效率,達到了測量過程快速、直觀、準確、方便的目的,在生產(chǎn)、科研、教學(xué)上得到廣泛運用。本設(shè)計采用數(shù)字頻率合成技術(shù)產(chǎn)生掃頻信號,以單片機和為控制核心,通過A/D和D/A轉(zhuǎn)換器等接口電路,實現(xiàn)掃頻信號頻率的步進調(diào)整、數(shù)字顯示及被測網(wǎng)絡(luò)幅頻特性與相頻特性參數(shù)的顯示。

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

          1 系統(tǒng)總體方案及設(shè)計框圖

          1.1 系統(tǒng)總體方案

          將輸出頻率步進可調(diào)的正弦掃頻信號源作為被測網(wǎng)絡(luò)的激勵Vi,可得被測網(wǎng)絡(luò)的響應(yīng)為V0。通過測量各頻率點的幅度就可得到V0和Vi的有效值,兩者之比就是該點的幅度頻率響應(yīng);對V0和Vi進行過零比較、整形,再送到測量相位差,即可得到相頻特性。


          1.2 系統(tǒng)總體設(shè)計框圖

          系統(tǒng)通過鍵盤掃描得到外界設(shè)置的掃頻范圍和頻率步進,通過調(diào)用DDS控模塊控制DAC904,輸出掃頻信號。由于信號在被測網(wǎng)絡(luò)阻帶內(nèi)會有很大的衰減,故用程控放大處理經(jīng)被測網(wǎng)絡(luò)的掃頻信號之后,利用AD637進行有效值采樣,LM311進行整形。信號有效值經(jīng)MAXl270進行AD轉(zhuǎn)換后得到有效值的數(shù)字量,整形后的信號經(jīng)測相模塊處理得到相位差值。在中寫入2個RAM存放被測信號的有效值和相位差值。完成一次掃頻后通過波形顯示模塊將幅頻、相頻曲線顯示在示波器上,并將特定頻率點的幅度和相位差值在液晶顯示器上進行顯示。系統(tǒng)實現(xiàn)框圖如圖1所示。

          2 系統(tǒng)功能部分設(shè)計

          2.1 掃頻信號的產(chǎn)生

          直接數(shù)字合成(DDFS)信號源。它是一種完全數(shù)字化的方法:先將一個周期的正弦波(或者其他波形)的離散樣點幅值的數(shù)字量預(yù)先存儲于ROM或者RAM中,按一定的地址增量間隔讀出,經(jīng)D/A轉(zhuǎn)換后成為不同頻率的模擬正弦波信號波形,再經(jīng)低通濾掉毛刺即可得到所需頻率的輸入信號。按此原理,DDS可以合成任意波形,且可以精確控制相位,頻率也非常穩(wěn)定。利用FPGA制作起來相當容易,且掃頻步進實現(xiàn)簡單。設(shè)FPGA內(nèi)部的參考頻率源的頻率為fclk,采用計數(shù)容量為2N的相位累加器(N為相位累加器的位數(shù)),頻率控制字為M,則DDS系統(tǒng)輸出信號的頻率fout=fclk/2N×M。頻率分辨率為:△f=fclk/2N。

          若選取晶振頻率為40 MHz,頻率控制字為24位,相位累加器的位數(shù)為31位,則輸出頻率范圍為0.02 Hz~312 kHz,步進頻率為40 MHz/231≈0.02 Hz。

          系統(tǒng)采用高速14-bit電流輸出型D/A轉(zhuǎn)換器DAC904制作DDS掃頻信號源。通過FPGA給其20 MHz的時鐘信號以輸出10 Hz~100 kHz的掃頻信號。該器件制作成的PCB板中,很好地考慮了接地,使得輸出信號在頻率為1 MHz可以達到無明顯失真。DAC904采用內(nèi)部基準和雙極性接法,輸出信號幅值范圍為0~5 V。其原理圖如圖2所示。

          2.2 幅頻特性測試方案

          使用集成真有效值轉(zhuǎn)換器AD637先檢測出信號每個頻率點的有效值,再經(jīng)過A/D采樣將得到的數(shù)據(jù)讀到單片機中進行處理即可。該器件外接電路簡單,工作頻帶很寬,與A/D轉(zhuǎn)換器級聯(lián),可以對任何復(fù)雜波形的有效值、平均值、均方值、絕對值進行采樣,測量誤差小于±(0.2%讀數(shù)+0.5 mV),可以達到很高的測量精度。

          2.3 相頻特性測試方案

          采用計數(shù)法實現(xiàn)相位的測量。計數(shù)法的思想是將相位量轉(zhuǎn)化為數(shù)字脈沖量,然后對數(shù)字脈沖進行測量而得到相位差。對轉(zhuǎn)換后的數(shù)字脈沖量進行異或運算,產(chǎn)生脈寬為T0、周期為T的另一路方波,若高頻計數(shù)時鐘脈沖周期為TCP,則在一個周期T的時間內(nèi)的計數(shù)數(shù)值為:

          式中,φx為相位差的度數(shù)。

          這種方法應(yīng)用比較廣泛,精度較高,電路形式簡單,適合FPGA實現(xiàn)。

          實際測量中,當兩輸入信號頻率較高且相位差很小時,得到的脈沖很窄,這會造成較大誤差。為了克服上述缺陷,引入等精度測量的思想(如圖3),采用多周期同步計數(shù)法,利用觸發(fā)器產(chǎn)生一個寬度為被測信號fa整數(shù)倍的閘門信號。利用計數(shù)器1測量出閘門信號內(nèi)通過高頻脈沖fm的個數(shù)N1,利用計數(shù)器2測量出相同時間內(nèi)閘門信號、異或信號、高頻脈沖三者相與后的脈沖數(shù)N2。因此,相位差值為△φ=N2/N1x36 0°。測量相位的同時,在FPGA內(nèi)部引入一D觸發(fā)器,用一路方波信號控制另一路方波,通過觸發(fā)器輸出的高低以判斷信號相位差范圍是大于180°還是小于180°。

          2.4 系統(tǒng)顯示電路設(shè)計

          為了在示波器上顯示曲線,需要通過2個D/A轉(zhuǎn)換器向X、Y軸同步送入掃描信號和數(shù)據(jù)信號。X軸方向的DA轉(zhuǎn)換器輸出掃描信號為O~5 V的鋸齒波信號,而數(shù)據(jù)信號為-5~5 V,反應(yīng)了各個頻率點上的信號幅值和相位,由另一片D/A轉(zhuǎn)換器向Y軸方向輸出。

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

          系統(tǒng)軟件設(shè)計由單片機和FPGA組成。整個系統(tǒng)以用戶按鍵中斷為主線,調(diào)用不同的處理函數(shù),與FPGA中各個控制模塊之間,以總線的進行數(shù)據(jù)的交換,實現(xiàn)了系統(tǒng)測量的功能。軟件流程圖見圖4。

          4 結(jié)束語

          利用數(shù)字頻率合成技術(shù)(DDS)產(chǎn)生掃頻信號,通過14位D/A轉(zhuǎn)換器DAC904產(chǎn)生了10 Hz~100 kHz的正弦掃頻信號,作用于被測網(wǎng)絡(luò)。網(wǎng)絡(luò)的輸出信號通過有效值采樣電路,以及由比較器LM311配合FPGA內(nèi)部實現(xiàn)的測相電路,完成了對被測網(wǎng)絡(luò)頻率特性的測量。

          為對系統(tǒng)的性能進行測試,制作了一個中心頻率為5 kHz。帶寬為±50 Hz的阻容雙T網(wǎng)絡(luò)。測試結(jié)果表明,在網(wǎng)絡(luò)的通帶和阻帶內(nèi),相頻特性測量均達到了3°以內(nèi)的測量精度,幅頻特性的測量誤差均小于50%。此外,該系統(tǒng)可以通過鍵盤輸入掃頻范圍,通過示波器顯示幅頻、相頻曲線,并可以在液晶顯示器上顯示該網(wǎng)絡(luò)在特定頻率點上的幅度、相位特性值。該系統(tǒng)操作簡單,成本低廉,測量精確,具有很強的實用性。



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