徐 偉,吳 靜, 楊 陽, 袁振國, 王 迪
(南京信息工程大學 江蘇省氣象探測與信息處理重點實驗室, 江蘇 南京 210044)
陳壽法等[1]提出了一種等精度頻率計,實現了量程可自動切換的頻率測量,但測量頻率范圍較小,最高頻率只能達到30 MHz,且沒有研究當被測信號幅度很小時的測量性能。武衛華等[2]中提出了一種高精度的頻率計,但實驗預定測頻范圍僅為1 Hz~10 MHz,且實際實驗受信號源輸出限制,只是對10 Hz~5 MHz的正弦、方波信號分別進行了頻率與周期的跟蹤測量。林建英等[3]提出一種等精度數字頻率計的SOPC實現方法,該方法可測量頻率、周期和占空比,但只討論了被測信號范圍為1 Hz~12.5 MHz的誤差。
綜上,目前基于等精度測量方法所設計的頻率計缺乏有效的寬帶信號調理電路而造成被測信號為單一的方波脈沖[4-5]、對被測信號幅度要求高[6-8]、無兩路信號的時間間隔測量功能等問題[9-11]。
針對這些問題,本文綜合測量多種要素的等精度信號參數測量儀,采用AGC電路實現寬頻帶范圍內小信號和大信號的自動調節,采用復雜可編程邏輯器件(CPLD)完成時序電路。主控制器選用MSP430系列單片機,實現整個測試信號的控制、計數值處理和TFT屏顯示。結合了單片機控制靈活性和CPLD處理脈沖信號高精度的優點,可靠性高、測頻范圍寬、精度高、結構緊湊。
為實現寬頻率范圍輸入信號的高精度測量,采用等精度測量原理。CPLD實現測頻電路結構見圖1,由觸發器、計數器、單片機和CPLD通信實體等組成。
計數器1和計數器2分別對基準時鐘信號(基準信號)fsc和被測信號fin計數。計數結果發送到主控制器計算處理。閘門EN控制計數開始和結束。

圖1 CPLD測頻原理圖
測量時序見圖2。單片機產生預置閘門GATE信號(高電平有效),高電平時間固定,如1 s。閘門信號GATE有效時,兩計數器并不立即開始計數。GATE送CPLD的D觸發器輸入端,由于D觸發器的邊沿觸發特性,只有時鐘信號CLK即被測信號fin的上升沿到來時,輸出端Q才等于GATE,使能兩計數器。D觸發器相當于同步門的作用,CPLD通過檢測被測信號fin上升沿,實現門控信號EN與fin上升沿同步。保證兩計數器在被測信號的上升沿到來時才有效,計數開始與結束時間與被測信號嚴格同步。

圖2 等精度測量的時序
當1 s的預置閘門GATE變為低電平時,使能信號EN不是立刻變為低電平,而是要等到D觸發器的時鐘CLK(被測信號fin)新的上升沿到來時才失效,兩計數器并不立刻停止計數。根據兩計數器的計數值和基準時鐘的頻率計算被測信號的頻率。
理想情況下,在實際的閘門時間EN內,兩計數器對基準時鐘信號fsc和被測信號fin的計數值分別為N1和N2。基準時鐘信號的頻率為fsc。則被測信號的頻率fin為
(1)
對被測信號的計數都是在其信號的上升沿觸發的,下降沿停止,整個閘門時間EN為其周期的整數倍。實際的計數值N2不存在誤差。而對基準時鐘信號的計數最多可能相差一個數的誤差,即|N1|1。則實際測得的被測信號的頻率為
(2)
相對誤差為
(3)
將式(1)和(2)代入(3)式得
(4)
相對誤差與被測信號的頻率沒有關系,只與閘門時間EN和基準信號的頻率有關。整個頻率范圍內等精度測量。閘門時間EN越長,基準頻率越高,被測信號的相對誤差就越小。EN時間約為1 s,CPLD的晶振時鐘為50 MHz,則相對誤差達2×10-8。
信號參數量測儀的任務是能夠快速準確識別輸入信號的頻率周期、時間間隔和占空比。單片機完成按鍵的識別、TFT液晶屏的驅動顯示、最終頻率周期、時間間隔和占空比的計算處理等任務[12-13]。選用具有豐富的外部中斷資源和較多IO口的430單片機作為主控制器。時序電路通過CPLD實現,并使用VHDL語言編程[14-15]。軟件編寫數據總線和控制總線來實現單片機和CPLD之間的通信。圖3為系統總體框圖。

圖3 系統總體框圖
要求被測信號頻帶寬且幅度變化大,若前級信號調理電路設置為固定的放大倍數,則放大后的信號幅度變化范圍大,不利于后級的電路對波形的變換和處理。為適應不同幅度的輸入信號,采用寬帶AGC(自動增益控制)電路對被測信號的放大倍數自動調節,使放大后的信號幅度穩定,便于后級電路處理。
圖4為前級寬帶調理電路框圖,主要由可控增益放大器、檢波電路、高速比較電路和高速緩沖器組成,圖5為AGC電路原理圖。

圖4 寬帶信號調理電路框圖

圖5 AGC電路原理圖
VCA810為寬帶可控增益放大器,3腳G輸入的直流電壓控制放大倍數。高速比較器AD8561構成過零比較,與后級的充放電電路構成負反饋,控制VCA810的放大倍數。

圖6 控制器最小系統及端口分配
選用MSP430F169單片機為主控,見圖6。圖6中晶振X1和X2分別產生低速、高速時鐘。按鍵K1、電容C5、電阻R2構成復位電路,JP1為下載口。端口分配如表1。

表1 單片機端口資源分配
2.4.1 頻率周期測量
CPLD測量頻率和周期電路見圖7,包括計數器inst2和inst3、D觸發器inst1、分頻器inst、與單片機通信接口inst4和inst6。輸入包括基準時鐘fsc、被測信號fin、寫控制wr、字節選擇add1和add2、清零clr。輸出為測量數據selcode。計數器inst2和inst3分別對被測信號Fin和50 MHz的基準時鐘計數。開始時間受閘門EN控制。分頻器inst對50 MHz信號分頻得到周期1s的預置閘門,有效時并不立即開啟計數。預置閘門通過D觸發器產生與被測信號嚴格同步的實際閘門EN。

圖7 等精度測量頻率和周期電路
由輸入信號上升沿開啟閘門,計數器1和2分別用來給標準頻率和被測數字信號計數。閘門控制結束時計數器1計數為N1,計數器2為N2,標準頻率為fsc,被測頻率為fin,則有:
fin/N2=fsc/N1
(5)
fin=fsc×N2/N1
(6)
2.4.2 時間間隔測量
圖8為CPLD實現時間間隔測量原理圖。由實體計數器inst7和通信接口實體inst9組成。輸入端口包括兩路脈沖信號A3和A4、清零控制clr2、基準時鐘fsc1、字節選擇wr5、add3、add4。計數值通過selcode以字節方式發送到單片機。
計數器的過程中,檢測A、B信號的邊沿。A信號的上升沿觸發時鐘計數,B信號的上升沿停止計數,計數值通過接口實體發送到單片機進行處理,計數值N乘以時鐘周期T,就是A和B信號的時間間隔。
(7)
2.4.3 占空比測量
圖9為CPLD實現占空比測量電路。

圖9 占空比測量原理圖
通過測頻電路測量脈沖信號的頻率f,再將被測信號輸入到圖9中實體inst7,檢測被測信號的邊沿,在高電平期間對基準時鐘fsc計數,若高電平期間的計數個數為N,通過上面的測頻電路測得的信號頻率為fsc,則占空比D為
(8)
測量電路由CPLD實現,按鍵識別和計算處理、TFT屏、通信等任務由單片機完成。軟件流程見圖10。

圖10 系統流程圖
在IAR和Quartus中分別編寫并下載單片機和CPLD程序。信號發生器提供輸入信號,通過鍵盤選擇頻率計功能,測試數據見表2(表中Vrms為電壓有效值,VPP為電壓峰峰值)。

表2 測量數據
系統實現了對頻率范圍1 Hz~100 MHz、有效值電壓10 mV~1 V的正弦信號的頻率測量,相對誤差的絕對值不大于10-4;頻率范圍100 Hz~5 MHz、有效值電壓50 mV~1 V的方波信號的時間間隔測量,測量相對誤差的絕對值不大于10-2;頻率范圍1 Hz~5 MHz、有效值電壓50 mV~1 V的脈沖信號的占空比測量,測量相對誤差的絕對值不大于10-2。數據刷新時間不大于2 s。
在CPLD硬件平臺上,使用VHDL語言編寫D觸發器、計數器、單片機和CPLD接口等實體電路,輔以單片機實現信號參數號的等精度測量。在單片機和CPLD通信時,上升沿寫特征值,下降沿寫地址,確保了數據傳輸的有效性和可靠性。通過不同的特征值,實現多個程序功能的選擇,增加了系統的可擴展性。此外,改善相應的電路中元器件值和晶振大小可以擴展頻寬和有效值電壓范圍。系統實現了高精度的寬幅度、寬頻率測量。
[1] 陳壽法,王中鵬. 基于等精度測量原理頻率計的設計與實現[J]. 杭州應用工程技術學院學報,2014(6):409-414.
[2] 武衛華,鄭詩程.基于SoPC的嵌入式數字頻率計設計與實現[J].電子測量與儀器學報,2010,24(2):172-178.
[3] 林建英,高苗苗,楊素英.基于SOPC的等精度數字頻率計設計[J]. 國外電子測量技術,2010,29(12):51-55.
[4] 張博,曹學巖,房亮. 基于VHDL的簡易數字頻率計的設計[J]. 傳感器世界,2013,19(5):29-34.
[5] 賀同,陳星,洪龍龍. 基于FPGA的全相位FFT高精度頻率測量[J]. 電子測量技術,2013,36(8):80-83.
[6] 李炎, 趙偉,黃巧巧,等.多通道高精度動態頻率測量系統的研究與實現[J]. 電子測量技術,2012,35(12):75-80.
[7] 晏細蘭,謝景明,熊茂華.基于FPGA和VHDL的高精度數字頻率計研究與設計[J]. 計算機光盤軟件與應用,2014(15):91-94.
[8] 沈亞鈞.基于單片機的數字頻率計設計[J]. 山西電子技術,2012(5):14-16.
[9] 徐偉,湯瑩,楊緒森, 等.基于CPLD的高精度程控移相器[J]. 電子測量技術,2014,37(1/2):5-9.
[10] 裴林廷,黃世玲.一種基于FPGA小信號寬頻帶數字頻率計的設計[J]. 科技創新與應用,2016(7):61.
[11] 范啟亮.一種簡易數字頻率計的設計與實現[J]. 科技風,2014(20):48-49.
[12] 肖春芳,韓緒鵬.基于單片機控制的數字頻率計設計[J]. 國外電子元器件,2012,20(1):140-143.
[13] 張杰,楊艷麗,馬莉莉, 等.基于單片機C語言的數字頻率計設計[J].內蒙古農業大學學報(自然科學版),2007,28(2):191-192.
[14] 方敏,侯其立,李苗, 等.基于TMS320F2812的數字頻率計[J]. 實驗室研究與探索,2009,28(5):37-40.
[15] 張青林.基于單片機和CPLD的數字頻率計設計[J].合肥學院學報(自然科學版),2010,20(1):43-46.