李莉+熊晶


摘 要: 根據相位重合點理論對等精度數字頻率計進行改進,采用該理論可使對標準頻率信號和待測頻率的計數同時開始,消除了對標準頻率信號計數時±1個周期的誤差。系統設計主要包括三部分:待測頻率的整形放大部分;計數部分,采用CPLD,相位重合點的檢測也在CPLD中完成;頻率的計算和顯示部分由單片機AT89C51完成。CPLD部分的仿真使用Max+Plus Ⅱ,單片機部分的仿真使用Protues軟件。測試結果表明,待測頻率在1 Hz~10 MHz范圍內,頻率計測量精度高,穩定性好。
關鍵詞: 相位重合點理論; CPLD; 等精度數字頻率計; Max+Plus Ⅱ
中圖分類號: TN710?34; TM935.13 文獻標識碼: A 文章編號: 1004?373X(2015)10?0118?03
頻率計是一種應用在電子、通信、工業生產領域的常用的電子測量儀器。常用的對頻率計的設計方法有直接測量法,模擬內插法,多周期同步法,等精度測量法[1?2]等。在這些測量方法中等精度測量法的精度最高,但是該方法對標準頻率信號的計數部分存在±1個周期的誤差,本文采用相位重合點理論,可消除±1個周期的誤差。
1 系統整體設計方案
由于待測頻率fx往往是小信號,并且不是方波,所以要先放大和整形,經過處理后的信號和標準頻率信號f0送到CPLD,單片機對CPLD發控制命令,CPLD進行相位檢測和計數,計得的兩組數值(在實際閘門時間內對fx的計數值nx和對f0的計數值n0)送往8051,單片機根據公式[fxnx=f0n0]計算出fx,最后通過液晶顯示器LM0 16L 顯示出當前頻率值。整體設計方案如圖1所示。
圖1 系統框圖
2 系統設計
2.1 放大整形電路的設計
放大部分采用共射極放大電路,整形部分采用施密特觸發器74LS14。由于共射極放大電路是反向放大,而施密特觸發器內部就帶有反向器,所以最終可實現放大整形后不會反向。
2.2 相位重合檢測部分
2.2.1 傳統等精度頻率計測頻原理
傳統的等精度頻率[3?4]計測量原理[5]如圖2所示。標準頻率信號f0送入計數器counter0的時鐘端CLK,待測頻率fx連D觸發器的時鐘端和counterx的時鐘端CLK,D觸發器的輸入端接閘門信號,輸出端接兩個計數器的使能端。當閘門信號在高電平器期間,并且fx是上升沿時,兩個計數器同時計數,停止計數時刻是在閘門信號變為低電平后并且是fx的下一個時鐘信號上升沿到來時結束計數。這種方法可以保證對fx的計數不存在任何誤差,但是對f0的計數則有±1個誤差,并且對于f0的給定,必定是個高頻信號,比如100 MHz,而采用本文的方法對f0則無要求。
圖2 傳統等精度頻率計結構圖
2.2.2 相位重合理論
設[f1=A×f],[f2=B×f],A,B是相互沒有公約數的兩個正整數,則f就是f1和f2的最大公因子頻率fmaxc。設[tminc=1fmaxc],tminc叫作最小公倍數周期。在一個tminc周期中f1和f2中的相位差中有一些值分別等于初始相位差加0,ΔT,2ΔT,3ΔT,…,ΔT=[fmaxcf1f2],這些值遠小于f1和f2的周期值,這樣的一些點叫做兩信號的“相位重合點”。所謂相位重合并非絕對重合,而是一個相對的概念。在一個tminc周期中包含A個頻率值是f1的周期和B個頻率值是f2的周期。
利用上述理論,可得到相位重合點檢測電路[6?9],如圖3所示。
圖3 相位重合檢測電路
2.2.3 修正后的相位重合檢測電路
該電路理論可以找到相位重合點,是利用信號經過非門之后有延時,但是仿真不通過,這是由于仿真軟件把原信號和取反后再相與邏輯綜合掉了,所以經過非門之后的信號必須要有個延時才可以,同理加入邏輯門的方法進行延時也行不通,比如再增加2個非門的方法。在Max+Plus Ⅱ軟件中有延時單元LCELL可以用,但是延時不精確,甚至可能造成系統不穩定。由于Max+Plus Ⅱ中沒有電容電阻這些元件,所以也不能用RC電路進行延時。本文采用延時的方法是通過加入D觸發器來延時,信號經過D觸發器的延時時間為1個CP脈沖的時間,電路圖如圖4所示。
圖4 修正后的相位重合點檢測電路
從波形圖圖5可以看出,a信號與b信號的初始相位差為0,b信號的周期是a信號的3倍,根據相位重合點理論,可以得到在每一個300 ns后必然有相位重合點。當chonghe端是一個窄脈沖的上升沿時說明b信號和a信號相位重合。由于信號經過非門有幾個ns的延時,并且經過D觸發器后還有1個CP脈沖的延時,所以觀測到的相位重合點有幾個ns的滯后。
圖5 修正后的相位檢測電路波形圖
2.3 計數電路
計數電路部分加入相位重合檢測電路構成實際的計數電路,PINLVJIXIN2模塊是普通的等精度計數器模塊,采用VHDL語言編寫,各引腳含義如下:bclk,標準時鐘信號輸入端;tclk1,待測信號輸入端;clr,清零端;cl,預置門控信號;tclk,計數控制端(tclk引腳是上升沿,并且cl是高電平,開始計數,當cl是低電平,并且下一個tclk上升沿到來時,停止計數);start,開始計數的輸出信號,此信號為‘1表明真正開始計數,為‘0表明停止計數; sel[2..0],多路通道數據選擇端;當sel 分別取值0,1,2,3時,由低8位到高8位分4次讀出標準頻率計數值, 當sel 分別取值4,5,6,7時,由低8位到高8位分4次讀出待測頻率計數值。data[7..0],8位數據端口。實體及部分結構體程序如下:
entity pinlvjixin2 is
port(bclk, tclk, tclk1, clr, cl:in std_logic;
start:out std_logic;
sel:in std_logic_vector(2 downto 0);
data:out std_logic_vector(7 downto 0));
end entity pinlvjixin2;
architecture one of pinlvjixin2 is
signal bzqxin:std_logic_vector(31 downto 0);
signal tsqxin:std_logic_vector(31 downto 0);
signal ena:std_logic;
signal bena:std_logic;
begin
start<=ena;
bena<=ena;
data<=bzqxin(7 downto 0) when sel="000" else
bzqxin(15 downto 8) when sel="001" else
bzqxin(23 downto 16) when sel="010" else
bzqxin(31 downto 24) when sel="011" else
tsqxin(7 downto 0) when sel="100" else
tsqxin(15 downto 8) when sel="101" else
tsqxin(23 downto 16) when sel="110" else
tsqxin(31 downto 24) when sel="111" else
tsqxin(31 downto 24);
bzh :process(clr, bclk,bena)
begin
if clr=′1′ then bzqxin<=(others=>′0′);
elsif bclk′event and bclk=′1′ then
if bena=′1′ then bzqxin<=bzqxin+1;
end if;
end if;
end process;
……
PINLVJIXIN2計數模塊編譯通過后可生成原理圖,PINLVJIXIN2的原理圖和相位重合檢測電路共同構成相位檢測及計數模塊圖, 如圖 6所示,相位重合檢測電路的輸出端chonghe引腳連PINLVJIXIN2的tclk端。當chonghe端輸出一個窄脈沖時,并且cl是高電平期間,在這個窄脈沖的上升沿,PINLVJIXIN2模塊中的兩個計數器(計標準時鐘信號的計數器和計待測頻率的計數器)開始計數,停止計數時刻是在cl信號變為低電平以后,當chonghe端又來一個窄脈沖的上升沿時停止計數。這樣可以保證兩個計數器是同時開始計數,并且同時停止計數,可消除傳統等精度頻率計對標準頻率信號計數時+1個脈沖的誤差。
從圖7 CPLD計數輸出波形圖可以看出,當sel[2..0]為4,5,6,7時fx計了1個脈沖,即公式[fxnx=f0n0]中的nx=1,當sel[2..0]為0,1,2,3時f0計了3個脈沖,即n0=3,計數結果正確。
圖6 相位檢測及計數模塊頂層文件原理圖
圖7 CPLD計數輸出波形圖
2.4 單片機模塊
在該模塊中,單片機完成3個功能[10],一個是對CPLD發命令并接收CPLD傳送回的數據,P0.7(接clr端)先發低電平,使兩個32位計數器清零,當清零之后,單片機給CPLD先發高電平信號再發低電平信號, 通過P3.7(接cl),單片機不斷檢測P3.6引腳(接start端),當P3.6由高電平變為低電平時, P3.6,P3.5,P3.4(接sel[2..0])分別取值0,1,2,3時,由低8位到高8位分4次讀出標準頻率計數值,當sel 分別取值4,5,6,7時,由低8位到高8位分4次讀出待測頻率計數值,這時數據按這個對應關系送到P1口;另一個功能是根據[fxnx=f0n0]計算出fx,采用匯編語言,編譯軟件選用WAVE仿真軟件,最后一個功能則是進行顯示,顯示器采用LM0 16L。液晶顯示部分較為簡單就不在詳述。
3 結 語
本設計利用相位重合點理論提高了等精度頻率計的精度,重點設計了相位檢測電路,并和計數電路相結合, 采用改進電路后的計數器件是大規模可編程邏輯器件CPLD,利用其高速、靈活的特點,計算及顯示部分采用AT89C51單片機和LM0 16L。經Max+Plus Ⅱ及WAVE和Protues進行分塊仿真,在理論上論證了系統的穩定性和可靠性。
參考文獻
[1] 潘松,黃繼業.EDA技術實用教程[M].北京:科學出版社,2006.
[2] 黃俊,余水寶.基于STC12C5A60S2的高頻高精度頻率計的設計[J].微型機與應用,2012,31(17):22?24.
[3] 郝統關,程明.基于FPGA Nios Ⅱ的等精度頻率計設計[J].電測與儀表,2009,46(2):56?58.
[4] 李云紅.相位檢測頻率系統的設計[J].艦船檢電子工程,2009(4):171?173.
[5] 李國利,劉旭明,翟力欣.基于FPGA與單片機的等精度頻率計的設計[J].電子設計工程,2013,21(22):171?172.
[6] 黃冠中,李志強.基于PXI總線的寬帶頻率計設計[J].現代電子技術,2010,33(11):18?19.
[7] 薛偉,王梅.基于相位重合點檢測技術的測頻方法的改進[J].電子科技,2005(7):17?20.
[8] 康欽馬,姜海寧,周渭.基于相位重合檢測技術的虛擬頻率計設計[J].電子測量與儀器學報,2005,19(2):45?48.
[9] 郭豫榮.一種新型頻率計的設計[J].赤峰學院學報:自然科學版,2012,28(16):73?75.
[10] 孟召議.基于單片機AT89C52的頻率計的設計[J].長沙通信職業技術學院學報,2012,11(3):51?54.