基于FPGA的高精度相位測(cè)量?jī)x的設(shè)計(jì)方案
圖3中,B1、C10、D100、P1K分別為頻率步進(jìn)輸入端;Re為復(fù)位端;PW1、PW10分別為110的相位步進(jìn)輸入。其中fbcout為頻率控制字計(jì)算模塊,完成由頻率步進(jìn)值到二進(jìn)制頻率控制字的轉(zhuǎn)換。
cout360為相位輸入計(jì)算模塊,由相位輸入端的脈沖輸入計(jì)算出實(shí)際的移相值(0~359)。add_data_rom是存放相位控制字的ROM,其數(shù)據(jù)文件是MIF文件,內(nèi)部360個(gè)地址值分別對(duì)應(yīng)0~359的相危每個(gè)地址中的數(shù)據(jù)為每個(gè)相位值對(duì)應(yīng)的正弦波ROM的地址值。由于正弦波ROM將一個(gè)波形分成了1024個(gè)點(diǎn),則0~359的相位值對(duì)αSINROM中的360個(gè)點(diǎn)??紤]到1024/360=2。84非整,為了減小移相誤差,提高移相精度,本設(shè)計(jì)中采用分段處理的方法,將360個(gè)地址分成60組。第15、30、45、60組的6個(gè)地址中點(diǎn)與點(diǎn)之間的距離都為3;其余各組前5點(diǎn)之間的點(diǎn)距為3,第5點(diǎn)與第6點(diǎn)之間的點(diǎn)距為2。
相位測(cè)量模塊設(shè)計(jì)原理
本系統(tǒng)的相位測(cè)量采用由高速時(shí)鐘脈沖測(cè)量?jī)陕凡ㄐ芜^(guò)零點(diǎn)之間距離的方法。相位測(cè)量模塊原理框圖如圖4所示。
圖4相位測(cè)量模塊原理框圖
圖4中,A、B為兩路方波輸入,CLK為50MHz時(shí)鐘輸入,dfd2塊為下降沿觸發(fā)的2分頻模塊。A、B經(jīng)2分頻的目的是使測(cè)相范圍由0~180擴(kuò)大0~360。XOR為異或門(mén),其輸出信號(hào)的脈寬為(b-a)。clxw為一高速計(jì)數(shù)器,通過(guò)25MHz的高頻時(shí)鐘來(lái)計(jì)算(b-a)的長(zhǎng)度。fb360模塊為倍乘模塊,主要完成(b-a)×360的運(yùn)算。bpsc模塊為分頻模塊,將25MHz的時(shí)鐘信號(hào)進(jìn)行(b-a)×360倍的分頻,使其輸出信號(hào)脈寬為T(mén)clk×(b-a)×360(Tclk為25MHz的時(shí)鐘周期)。xwc為相位差計(jì)數(shù)模塊,通過(guò)A相輸入脈沖,計(jì)算Tclk×(b-a)×360的長(zhǎng)度,然后完成(b-a)×360/a的計(jì)算,進(jìn)而得出相位差值輸出,同時(shí)該模塊還將測(cè)得的相位差值送到數(shù)碼管顯示。
在對(duì)該模塊進(jìn)行仿真時(shí),人為設(shè)定了頻率為10KHz,相位差為72。
系統(tǒng)驗(yàn)證調(diào)試
在整個(gè)系統(tǒng)的驗(yàn)證中,由外部按鍵通過(guò)控制模塊來(lái)設(shè)定波形的頻率和相位值,并通過(guò)將DDS模塊的輸出端FOUT和POUT外接10位DACTHS5651來(lái)產(chǎn)生波形。通過(guò)在示波器觀察兩路波形發(fā)現(xiàn),波形比較穩(wěn)定,頻率與設(shè)定值一致。此外,為了測(cè)量DDS模塊產(chǎn)生的移相是否正確,還人為的通過(guò)相位輸入端設(shè)定相移值,并將參考波形輸出端和移相輸出端輸出的波形經(jīng)整形后,用測(cè)相模塊測(cè)量?jī)陕凡ㄐ蔚南辔徊睿ㄟ^(guò)硬件調(diào)試發(fā)現(xiàn)測(cè)得的相位差與設(shè)定的相位差完全一致,從而證明了該系統(tǒng)是精確、穩(wěn)定的。
結(jié)語(yǔ)
本系統(tǒng)選用Altera公司的quartusII4。1作為硬件開(kāi)發(fā)平臺(tái),并采用VHDL語(yǔ)言進(jìn)行電路設(shè)計(jì)。在設(shè)計(jì)中按功能劃分模塊,方便了調(diào)試與修改,且易于升級(jí)。同時(shí),系統(tǒng)設(shè)計(jì)中還較多采用了同步時(shí)序電路來(lái)實(shí)現(xiàn)各個(gè)進(jìn)程模塊的功能,從而有效避免了電路毛刺現(xiàn)象。此外,在相位測(cè)量模塊中,相位差計(jì)數(shù)塊還帶有鎖存功能,從而有利于輸出的相位差值顯示穩(wěn)定。
評(píng)論