


摘? 要:傳統的相位檢測主要依靠模擬電路實現,響應速度很快,但精度不高。為了解決相位檢測器因對環境較為敏感而影響其檢測精度的問題,提出一種基于FPGA的相位檢測系統。該系統由模擬電路和主控芯片FPGA組成,將模擬電路響應速度快、數字電路測量精度高的優點充分結合;將兩路被測信號通入濾波器濾除干擾,然后通過過零比較電路將信號轉換成方波,最后將方波輸入FPGA中,使用高頻脈沖進行插補計數,實現對信號相位的精確檢測。
關鍵詞:相位檢測;FPGA;高頻脈沖計數
中圖分類號:TN763.3? ? ? ? ? ? ? ? ?文獻標識碼:A文章編號:2096-4706(2021)19-0060-04
Design of Phase Detection System Based on PFGA
LENG Congyang
(College of Mechanical Engineering, Chongqing University of Technology, Chongqing? 400054, China)
Abstract: The traditional phase detection mainly depends on the analog circuit, which has fast response speed, but low precision. In order to solve the problem that the phase detector is sensitive to the environment and affects its detection accuracy, a phase detection system based on FPGA is proposed. The system is composed of analog circuit and main control chip FPGA, which fully combines the advantages of fast response speed of analog circuit and high measurement accuracy of digital circuit; the two measured signals are passed into the filter to filter out the interference, and then the signal is converted into square wave through the zero-crossing comparison circuit. Finally, the square wave is input into FPGA, and the high-frequency pulse is used for interpolation and counting to realize the accurate detection of signal phase.
Keywords: phase detection; FPGA; high-frequency pulse counting
0? 引? 言
當今世界,科學技術日新月異,相位檢測技術的重要性日益凸顯。隨著國家對國防建設需求的不斷提升,航空航天技術的不斷發展,對相位檢測技術的精度和抗干擾能力提出了更高的要求[1]。在傳統的相位檢測系統中,需要采用電容器和電阻器共同完成相位的檢測,很難達到較高的精度,對于不同頻率、不同類型的信號需要進行相應的調節才能實現相位檢測,不但增加了檢測者的工作量,而且不能滿足高精密制造對高精度相位檢測技術的需求[2]。董淑豪等提出一種結合運用DDS信號發生器和模擬電路的鑒相方法[3],將精度做到了0.000 1°,雖然精度很高,但是由于加入了DDS模塊,使檢測系統的制造成本大幅提高。本文提出一種基于現場可編程門陣列(Field Programmable Gate Array, FPGA)的數字相位檢測系統,無須進行器件調節,就可以滿足多種頻率、多種類型信號的高精度檢測,不但滿足抗干擾要求,而且檢測精度大大提高。
1? 相位檢測系統
本相位檢測系統的工作原理是將有相位差的兩路信號一起通過濾波器消除干擾因素,然后通過LM211過零比較模塊將原信號變成兩路有相位差的方波,將方波送入FPGA中進行異或運算,得到與相位差相對應的高電平長度和周期,最后將高電平時間和周期進行高頻信號的插補,得到輸入信號周期和相位差信號高電平長度的數字信息,通過串口將信息發送至上位機進行相位差的顯示,實現兩路信號相位差的高精度數字測量。整個檢測系統的系統框圖如圖1所示。
2? 高效濾波器模塊
濾波電路可以消除輸入信號的諧波成分,提高電路的抗干擾能力[4],為提高相位檢測的準確性提供保障。為了使輸入信號在高頻段能夠以較快的速率下降,從而提高濾波器的濾波效果,在一階濾波器的基礎上再增加一個RC低通濾波環節,形成二階濾波電路。相較于一階濾波電路,二階濾波器的濾波效果更好,幅頻特性更優。濾波器的具體電路如圖2所示。
3? 過零比較電路
通過過零比較器,可以將濾波器的輸出信號轉變為能在FPGA中進行運算的方波信號,交流信號分為零點以上的部分和零點以下的部分,通過電壓比較器,將交流信號與零位電壓相比較,大于零的部分置為高電平,低于零的部分置為低電平。本文選擇LM211電壓比較器,因為其響應時間較短并且準確度較高,能提高相位電壓比較的速度和精度,進而提高相位檢測精度。較寬的輸入電壓范圍也讓相位檢測系統能夠適用于更加復雜的使用環境,提高抗干擾能力。具體的電路設計和示波器顯示輸出波形如圖3(a)、(b)所示。
4? FPGA程序設計和比相算法
4.1? 相位差信號獲取
將兩路有相位差的電信號轉換成對應的方波信號后,如何通過高精度的計算將信號之間的相位數據計算出來成為相位檢測系統的關鍵。為了能將兩路信號的相位差用電信號表示出來,在FPGA運算中,首先對兩路信號進行二分頻處理,將信號的周期擴大為原來的兩倍,然后對周期擴大的信號進行異或處理,得到兩個方波的信號差P,并且隨著相位差的擴大,P的高電平時間越來越長,信號仿真如圖4所示。
4.2? 高頻計數時鐘設計
得到相位差波形后,使用FPGA的高頻時鐘進行計數,讀出波形P的高電平時間就是方波信號a和方波信號b的相位差。為了得到更高精度的數據,理論上通入的時鐘信號頻率越大,計數的數值就越大,從而檢測的精度也就越高。然而,由于FPGA受外部的晶振頻率限制,一般石英晶體能提供50 MHz的工作頻率,如果檢測信號為10 kHz的正弦信號,相位檢測的最大分辨率為:
(1)
在計數時鐘的計數頻率為50 MHz時,根據式(1)可以計算出相位檢測的最大分辨率為0.072°。
在我們的日常生活用品制造業中,這種檢測精度已經能夠滿足使用要求,但是在國防軍工和航天航空等高精尖領域,這樣的精度還遠遠不夠。因此,結合FPGA的工作原理,利用FPGA中的鎖相環技術進行倍頻操作,提高檢測精度[5,6]。鎖相環(Phase-Locked Loop, PLL)是一種反饋控制電路,通過讀取輸入信號的頻率和相位等參數信息,調節環路內部信號對應的參數。利用鎖相環能夠對輸出信號和輸入信號的頻率進行主動跟蹤的特性,一般將鎖相環運用到閉環跟蹤電路中。在現代電子信息技術中,為了使電路具有更高的振蕩頻率,通常采用石英晶體作為開發板等電子設備的振蕩器,石英振蕩器的振蕩頻率雖然較高,但是不能對頻率進行調節,所以不能應用于一些需要頻率發生變化的場景,利用鎖相環、分頻器、倍頻器等頻率合成技術,可以得到更多更穩定的振蕩信號。本文利用鎖相環進行5倍頻生成250 MHz的高頻信號,并通過鎖相環的功能生成四路相位依次相差90°的不同相位時鐘信號,用Verilog語言編寫加法器,加法器將四路檢測到的信號相位相加,得到精確的信號周期信息和兩路信號的相位差信息。最后通過式(1)可以算出,通過改進計數時鐘頻率的相位檢測系統在檢測信號的頻率為10 kHz時,其測量分辨率可以達到0.0036°。這在目前的高精尖制造中完全可以滿足要求。
4.3? 串口通信模塊設計
通過有效的方式快速準確地將相位信息顯示出來也是關鍵。由于相位信息的數據量不大,并且對速度的要求不高,所以采用通用的串口通信技術[7,8],將相位信息發送至上位機進行顯示。借助通用異步串行收發通信技術可以和多種標準串行數據總線相連接,因為這種通信方式的數據結構非常簡單,而且還可以根據需求改變數據位,通信協議也較為簡潔,所以在工程中得到了廣泛的應用。本文采用硬件編程語言Verilog[9],以狀態機的方式進行頂層文件的設計,實現相位數據與上位機的通信連接。該數據發送模塊采用57 600的波特率進行通信,應用50 MHz的時鐘,需要對時鐘進行55分頻。狀態轉換圖如圖5所示。
整個數據發送模塊又由五個狀態構成,分別為空閑等待狀態(IDLE)、起始發送狀態(START)、移位等待狀態(WAIT)、移位狀態(SHIFT)和停止狀態(STOP)。電路上電后進入復位模式,狀態機進入空閑等待狀態(IDLE),數據發送器等待發送使能信號Send-en的上升沿,當上升沿來臨,發送器立即進入起始發送狀態,開始對數據的起始位(即邏輯零)進行發送,同時進入等待的狀態。滿足發送條件時就對數據進行依次移位發送,對于任意的單個數據發送完成后立即回到等待狀態,當一幀數據發送完成后進入停止狀態,等待下一次的發送命令。
5? 仿真模型和實驗平臺的搭建
在可編程片上系統(System on a Programmable Chip, SoPC)設計平臺Quartus上進行仿真驗證和實驗程序編寫。使用Verilog硬件編程語言分別編寫輸入信號穩定模塊、方波分頻模塊、兩個信號異或模塊、計數時鐘倍頻模塊和串口通信模塊。其中,計數時鐘倍頻模塊通過鎖相環產生四路一次相差90°的五倍頻信號,通過加法器功能將四路信號相加后,再利用串口通信模塊將其發送至上位機進行相位信息的顯示。Verilog程序設計總框圖如圖6所示。其中,PLL為時鐘倍頻模塊,Count為將四路檢測信號相加的加法器模塊,Uart為串口通信模塊。所搭建的實驗測試平臺如圖7所示。
將有相位差的兩路信號通入相位檢測系統中,當采用FPGA晶振的原始計數頻率(50 MHz)作為計數時鐘時,實際測量精度數據如表1所示。
由表1可以看出數據的精度不高,計數脈沖頻率較低,造成周期數據太少,影響檢測精度。表2是采用鎖相環倍頻技術以及將四路檢測信號通過Verilog硬件編程語言編寫的加法器相加得到的相當于1 GHz計數時鐘的相位檢測數據。
由表2可以看出,相較于50 MHz的計數脈沖,通過高頻計數處理的計數脈沖能將周期分成更多的數據點,得到更大的數據量,從而實現更高精度的測量。
6? 結? 論
這種基于FPGA的相位檢測系統可用于對多種頻率的信號進行相位檢測,并且減少了模擬電路的使用,大大提高了整個系統的抗干擾能力,其中大部分的模塊都是通過Verilog語言編程實現,方便后期的改進和調節。通過實驗的數據可以得出,采用的計數脈沖頻率越大,整個系統的穩定性越高,當輸入信號為10 kHz時,其最大分辨率能達到0.003 6°,相位檢測較為準確。
參考文獻:
[1] 馮健朋,趙小勇.航空發動機振動不平衡相位檢測方法研究 [J].燃氣渦輪試驗與研究,2018,31(3):38-42.
[2] 劉小康,彭凱,王先全,等.納米時柵位移傳感器的理論模型與誤差分析 [J].儀器儀表學報,2014,35(5):1136-1142.
[3] 董淑豪,吳東岷.基于FPGA的高精度鑒相器實現 [J].電子技術應用,2020,46(10):57-60+78.
[4] 康學福.濾波電路頻率特性的仿真分析 [J].國外電子測量技術,2014,33(1):40-42+49.
[5] 肖帥,孫建波,耿華,等.基于FPGA實現的可變模全數字鎖相環 [J].電工技術學報,2012,27(4):153-158.
[6] 余成波,張林,龍曦.基于FPGA數字PLL諧振頻率的跟蹤研究 [J].重慶理工大學學報(自然科學),2019,33(4):141-146.
[7] 殷安龍,張持健,陳林,等.基于FPGA的多串口通信設計與實現 [J].電子設計工程,2016,24(17):45-47.
[8] 羅超,劉昌祿,胡敬營.一種基于FPGA的并行CRC及其UART實現 [J].電子測量技術,2016,39(2):147-150.
[9] 李浪,鄒祎,李仁發,等.Verilog HDL語言的AES密碼算法FPGA優化實現 [J].重慶大學學報,2014,37(6):56-64.
作者簡介:冷從陽(1996-),男,漢族,重慶璧山人,碩士研究生在讀,研究方向:智能儀器與傳感器。