隨著集成電路的發展,利用大規模集成電路來完成各種高速、高精度電子儀器的設計已經成為一種行之有效的方法。采用這種技術制成的電子儀器電路結構簡單、性能可靠、測量精確且易于調試。本文采用AlteraCycloneII系列FPGA器件EP2C5,設計了高精度相位測量儀。測量相位差所需的信號源在FPGA內部運用DDS原理生成,然后通過高速時鐘脈沖計算兩路正弦波過零點之間的距離,最后通過一定的運算電路得到最終相位值,測相精度為1°。 系統硬件設計 該基于FPGA的相位測量儀,硬件組成包括FPGA、高速DAC以及電壓比較器等部分。其系統硬件結構如圖1所示。 圖1相位測量儀硬件結構圖 該測量儀由按鍵來預置正弦波的頻率及相位。通過FPGA內部的控制模塊來計算并產生正弦波所需的頻率控制字和相位控制字,然后將控制字輸入DDS模塊以產生波形數據輸出,經10位高速DACTHS5651輸出兩路正弦波。在測相位差時,將圖1中移相正弦波輸出分為兩路,其中一路直接經電壓比較器LM311整形后輸入測相模塊;另外一路先通過被測電路,然后再經電壓比較器整形后輸入測相模塊,從而得到正弦波經被測電路后產生的相移。 基于FPGA的硬件電路設計 DDS移相信號源設計 DDS的基本原理是利用采樣定理,通過查表法產生波形,本系統的移相信號發生模塊如圖2所示。 圖2基于DDS的數字移相信號發生模塊框圖 圖2中,加法器與寄存器級聯構成相位累加器。通過時鐘脈沖觸發相位累加器,從而將頻率控制字不斷累加。相位累加器產生一次溢出,就完成一次周期性的動作,這個周期就是DDS合成信號的一個頻率周期。 用相位累加器輸出的數據作為波形存儲器的相位取樣地址,把存儲在波形存儲器內的波形抽樣值經查找表查出,從而完成相位到幅值的轉換。然后將波形存儲器的輸出送到DAC,通過DAC將數字量形式的波形幅值轉換成合成頻率的模擬波形。 圖2中FWORD是10位頻率控制字;PWORD是10位相移控制字,用來控制正弦信號輸出的相移量;SINROM用來存放正弦波數據,有10位數據線和10位地址線。其中數據文件是MIF文件(數據深度1024,數據類型為10進制數),可由Matlab生成,存放數據的單元采用定制ROM的方法生成;POUT和FOUT都為10位輸出,分別和兩個高速DACTHS5651相連。 控制模塊的生成 在產生波形的過程中,DDS模塊所需的頻率和相位控制字由在FPGA內部編寫的控制模塊來給定。控制模塊的頂層原理框圖如圖3所示。 圖3控制模塊頂層原理框圖 圖3中,B1、C10、D100、P1K分別為頻率步進輸入端;Re為復位端;PW1、PW10分別為1?10?南轡徊澆?淙搿F渲衒bcout為頻率控制字計算模塊,完成由頻率步進值到二進制頻率控制字的轉換。 cout360為相位輸入計算模塊,由相位輸入端的脈沖輸入計算出實際的移相值(0麀359)。add_data_rom是存放相位控制字的ROM,其數據文件是MIF文件,內部360個地址值分別對應0麀359?南轡,每個地址中的數據為每個相位值對應的正弦波ROM的地址值。由于正弦波ROM將一個波形分成了1024個點,則0麀359?南轡恢刀雜α薙INROM中的360個點。考慮到1024/360=2。84非整,為了減小移相誤差,提高移相精度,本設計中采用分段處理的方法,將360個地址分成60組。第15、30、45、60組的6個地址中點與點之間的距離都為3;其余各組前5點之間的點距為3,第5點與第6點之間的點距為2。 相位測量模塊設計原理 本系統的相位測量采用由高速時鐘脈沖測量兩路波形過零點之間距離的方法。相位測量模塊原理框圖如圖4所示。 圖4相位測量模塊原理框圖 圖4中,A、B為兩路方波輸入,CLK為50MHz時鐘輸入,dfd2塊為下降沿觸發的2分頻模塊。A、B經2分頻的目的是使測相范圍由0麀180蟮0麀360OR為異或門,其輸出信號的脈寬為(b-a)。clxw為一高速計數器,通過25MHz的高頻時鐘來計算(b-a)的長度。fb360模塊為倍乘模塊,主要完成(b-a)×360的運算。bpsc模塊為分頻模塊,將25MHz的時鐘信號進行(b-a)×360倍的分頻,使其輸出信號脈寬為Tclk×(b-a)×360(Tclk為25MHz的時鐘周期)。xwc為相位差計數模塊,通過A相輸入脈沖,計算Tclk×(b-a)×360的長度,然后完成(b-a)×360/a的計算,進而得出相位差值輸出,同時該模塊還將測得的相位差值送到數碼管顯示。 在對該模塊進行仿真時,人為設定了頻率為10KHz,相位差為72。 系統驗證調試 在整個系統的驗證中,由外部按鍵通過控制模塊來設定波形的頻率和相位值,并通過將DDS模塊的輸出端FOUT和POUT外接10位DACTHS5651來產生波形。通過在示波器觀察兩路波形發現,波形比較穩定,頻率與設定值一致。此外,為了測量DDS模塊產生的移相是否正確,還人為的通過相位輸入端設定相移值,并將參考波形輸出端和移相輸出端輸出的波形經整形后,用測相模塊測量兩路波形的相位差,通過硬件調試發現測得的相位差與設定的相位差完全一致,從而證明了該系統是精確、穩定的。 結語 本系統選用Altera公司的quartusII4。1作為硬件開發平臺,并采用VHDL語言進行電路設計。在設計中按功能劃分模塊,方便了調試與修改,且易于升級。同時,系統設計中還較多采用了同步時序電路來實現各個進程模塊的功能,從而有效避免了電路毛刺現象。此外,在相位測量模塊中,相位差計數塊還帶有鎖存功能,從而有利于輸出的相位差值顯示穩定。 |