桂林電子科技大學信息科技學院 桂邦豪
相位測量作為一種重要的信號檢測技術,已廣泛應用于電力、機械、航空航天、醫療、化工等各個領域,而其性能往往對所應用的系統起著重要的作用。目前,國內相位計生產廠家或研究單位明顯存在著技術老化問題,其采用的器件、方法和技術與發達國家相比有較大的差距。同時,隨著國防和科教等的發展又迫切需要高精度、高性能的相位計。
本次設計采用杭州康芯電子有限公司生產的以Altera 公司生產的FPGA器件::Cyclone EP1C3T144C8N為主體的適配板作為數據采集電路硬件的核心,該適配板提供了一片集成度為15萬門的EP1C3T144C8N,一個20MHz時鐘,一個JATG下載模式,一個AS模式下載口,使用起來十分方便。其中它所提供的20MHz時鐘可直接用來作為數據采集時所用的基準信號源。
Altera Cyclone FPGA是目前市場上性價比最優且價格最低的FPGA。Cyclone器件具有為大批量價格敏感應用優化的功能集,這些應用市場包括消費類、工業類、汽車業、計算機和通信類。器件基于成本優化的全銅1.5V SRAM工藝,容量從2910至20060個邏輯單元,具有多達294912bit嵌入RAM。Cyclone FPGA支持各種單端I/O標準如LVTTL、LVCMOS、PCI和SSTL-2/3,通過LVDS和RSDS標準提供多達129個通道的差分I/O支持。每個LVDS通道高達640Mbps。Cyclone器件具有雙數據速率(DDR) SDRAM和FCRAM接口的專用電路。Cyclone FPGA中有兩個鎖相環(PLLs)提供六個輸出和層次時鐘結構,以及復雜設計的時鐘管理電路。這些業界最高效架構特性的組合使得FPGA系列成為ASIC最靈活和最合算的代方案。
FPGA數據采集電路測量正弦波信號頻率的原理是:在正弦波整形后得到的方波信號的一個周期為Tc秒的數據采樣信號進行計數,其計數結果乘以1/Tc,就是被測正弦波的頻率,單位為Hz。測量正弦波信號周期的原理是:在正弦波信號整形后得到的方波信號的一個周期為Tc秒的數據采樣信號進行計數,其計數結果乘以Tc秒,就是被測信號的周期,單位為秒。測量兩個同頻信號的相位差,關鍵就是要測出兩個同頻正弦波信號起點的時間差△t,若△t測出,則根據:△a=△t×360°/t即可求出相位差△a,因此其測量原理與測量正弦波信號周期的原理相似。
本數字式相位測量儀的要求是測試并顯示兩路輸入信號的頻率范圍在20Hz~20kHz,測試并顯示信號a,b的相位差,相位差的變化范圍為:a = 0°~359.9°,相位差的顯示分辨率為0.1,要求測量相位差的絕對誤差 ≤ 2°。由此可知:

由以上分析可以知道,要保證系統要求的精度,必須采用高于1/0.27uS=3. 7MHz的采集速度對信號周期進行計數,為進一步提高測量精度,同時為了便于計算,我們采用了10MHz方波作為FPGA數據采樣信號,FPGA在10MHz時鐘信號作用下對待測信號的周期進行計數,并對兩個同頻正弦信號所對應的時間差進行計數,分別得到19位的數字量,19位的數字量的物理單位是0.1us。本設計采用20MHz的信號進行二分頻,得到10MHz的數據采樣信號,其采樣的周期為0.1us。
為了實現中低頻測量精度的要求,我們可以采用10MHz的信號來循環計數被測信號的周期和兩個同頻正弦信號的相位所對應的時間差值,時間單位為0.1us。也就是說,計數的周期和相位差所對應的時間差值的精度是0.1us。利用被測信號來刷新采樣計數,在20Hz時,刷新的頻率可以精確到10Hz,20kHz時達到10kHz,可以實現高頻多測量,低頻少測量的效果,時間計數精確可靠,為后面單片機的數據處理提供了穩定、可靠的數據源。
根據以上設計思想,FPGA數據采集電路可以設計成五個模塊,他們分別是:失重信號分頻模塊FPQ,測量控制信號發生模塊KZXH,被測信號有關時間檢測模塊SJJC,數據鎖存模塊SJSC和輸出選擇模塊SCXZ,整個系統組成框圖如圖1所示。

圖1 FPGA數據采集電路系統組成框圖
其中時鐘信號分頻模塊的FPQ作用是:將輸入的20MHz的信號分頻成10MHz的控制基準時鐘信號CLKF。測量控制信號發生模塊KZXH的作用是:根據兩路被策信號整形后得到的方波CLKAA和CLKBB,產生有關的控制信號,包括時間檢測使能信號ENA,時間檢測清零信號CLRA,鎖存頻率數據控制信號LOADA,鎖存兩被測信號相位差數據控制信號CLB。被測信號頻率和相位差數據檢測模塊SJJC的作用是:在控制信號ENA和CLRA的控制下,對測控基準時鐘信號CLKF進行計數和清零,以便獲取有關頻率和相位差數據。數據鎖存模塊SJSC的作用是:在LOADA的上升沿將頻率鎖存在DATAA中,在CLB的下降沿時將相位差數據鎖存在DATAB中。輸出選擇模塊SCXZ的作用是:根據單片機發出的控制信號EN和輸出數據類型選擇信號RSEL,將被測信號頻率數據或相位差數據輸出。
程序利用VHDL語言進程之間的并行關系同時對被測信號的周期和相位差值進行計數。并使用Quartus II對其進行編譯及時序仿真。
FPGA數據采集電路的功能就是實現將待測正弦信號的周期、相位差轉變為19位的數字量。并將數據存放到鎖存器中等待單片機的取數。
根據系統的整體設計方案,FPGA數據采集電路的輸入信號有:CLK—系統工作用時鐘信號輸入端;CLKAA,CLKBB—兩路被測信號輸入端;EN—單片機發出的傳送數據使能信號,在EN的上升沿,FPGA向單片機傳送數據;RSEL—單片機發出的傳送數據類型信號,當RSEL=0時,FPGA向單片機傳送被測信號的頻率數據,當RSEL=1時,FPGA向單片機傳送被測信號的相位差數據。FPGA數據采集電路的輸出信號有:DATA[18…0]—FPGA到單片機的數據輸出口,由輸出控制信號EN和RSEL控制。其應實現的功能就是負責對被測信號頻率數據和相位數據的實時測量。
主要使用Quartus II對已經編寫好的VHDL程序進行時序仿真。根據需要對各個輸入信號設定初值后進行仿真,可得到正確的波形圖,如圖2所示。

圖2 FPGA數據采集仿真圖
本文論述的基于FPGA的相位測量儀,充分利用了FPGA器件的特性,將數據采集分為五個模塊,采用了10MHz的控制基準時鐘信號CLKF,將相位差轉變為19位的數字量,得到較為簡單的硬件電路,簡化了軟件編程,整個系統超過了設計的要求。
[1]汪偉,黃芳玲,等.CPLD在相位測量中的應用[J].儀器儀表學報,2003(24).
[2]金寧,汪偉,等.高精度數字檢相電路設計[J].中國計量學院學報,2002(1).
[3]王振江.VHDL數字電路設計與應用實踐教程[M].北京:機械工業出版社,2006.1
[4]VHDL Landuage Reference Guide,Aldec Inc.Henderson NV USA,1999.