6.5等精度數字頻率相位測試儀_第1頁
6.5等精度數字頻率相位測試儀_第2頁
6.5等精度數字頻率相位測試儀_第3頁
6.5等精度數字頻率相位測試儀_第4頁
6.5等精度數字頻率相位測試儀_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE2566.5等精度數字頻率/相位測試儀程序設計與仿真1實驗目的學習利用EDA技術和FPGA實現等精度數字頻率/相位測試儀的設計。2實驗原理基于傳統(tǒng)測頻原理的頻率計的測量精度將隨被測信號頻率的下降而降低,即測量精度隨被測信號的頻率的變化而變化,在實用中有較大的局限性,而等精度頻率計不但具有較高的測量精度,且在整個頻率區(qū)域能保持恒定的測試精度。設計項目可達到的指標如下:=1\*GB3①頻率測試功能:測頻范圍0.1Hz~100MHz。測頻精度:測頻全域相對誤差恒為百萬分之—。=2\*GB3②脈寬測試功能:測試范圍0.1us~ls,測試精度0.0lus。=3\*GB3③占空比測試功能:測試(顯示)精度1%一99%。=4\*GB3④相位測試功能:測試范圍0~360度,測試精度0.2度。(1)主系統(tǒng)組成等精度頻率計的主系統(tǒng)如圖6.5.1所示,主要由六個部分構成:=1\*GB3①信號整形電路。用于對待測信號進行放大和整形,以便作為PLD器件的輸入信號。=2\*GB3②測頻電路。是測頻的核心電路模塊,可以由FPGA器件擔任。=3\*GB3③100MHz的標準頻率信號源(可通過PLL倍頻所得)進入FPGA。=4\*GB3④單片機電路模塊。用于控制FPGA的測頻操作和讀取測頻數據,并做出相應數據處理。安排單片機的P0口讀取測試數據,P2口向FPGA發(fā)控制命令。=5\*GB3⑤鍵盤模塊。可以用5個鍵執(zhí)行測試控制,一個是復位鍵,其余是命令鍵。=6\*GB3⑥數碼管顯示模塊。可以用7個數碼管顯示測試結果,最高可表示百萬分之一的精度??紤]到提高單片機I/O口的利用率,降低編程復雜性,提高單片機的計算速度以及降低數碼顯示器對系統(tǒng)的干擾,可以采用串行靜態(tài)顯示或是液晶顯示方式。圖6.5.1頻率計主系統(tǒng)電路組成(2)主系統(tǒng)組成測頻原理。等精度測頻原理可以簡單地用圖6.5.2和波形圖6.5.5和圖6.5.6來說明。圖6.5.2中“預置門控信號”CL可由單片機發(fā)出,可以證明,在1秒至0.1秒間的選擇范圍內,CL的時間寬度對測頻精度幾乎沒有影響,在此設其寬度為Tpr。BZH和TF模塊是兩個可控的32位高速計數端,BENA和ENA分別是它們的計數允許信號端,高平有效。標準頻率信號從BZH的時鐘輸入端BCLK輸入,設其頻率為FS:經整形后的被測信號從與BZH相似的32位計數器TF的時鐘輸入端TCLK輸入,設其真實頻率值為FxC,被測頻率為Fx。等精度測頻原理說明如下:圖6.5.2頻率計主系統(tǒng)電路組成測頻開始前,首先發(fā)出—個清零信號CLR,使兩個計數器和D觸發(fā)器置0,同時D觸發(fā)器通過信號ENA,禁止兩個汁數器汁數。這是一個初始化操作。然后由單片機發(fā)出允計測頻命令,令預置門控信號CL為高電平(注意將圖6.5.2和圖6.5.5和圖6.5.6波形時序圖聯系起來看),這時D觸發(fā)器要—直等到被測信號的上升沿通過時Q端才被置1(即令START為高電平),與此同時,將同時啟動計數器BHZ和TF,進入圖6.5.5和圖6.5.6所示的“計數允許周期”。在此期間,BHT和TF分別對被測信號(頻率為Fx)和標準頻率信號(頻率為Fs)同時計數。當Tpr秒后,預置門信號被單片機置為低電平,但此時兩個計數器并沒有停止計數,一直等到隨后而至的被測信號的上升沿到來時,才通過D觸發(fā)器將這兩個計數器同時關閉。由圖6.5.5和圖6.5.6可見,CL的寬度和發(fā)生的時間都不會影響計數使能信號(START),允許計數的周期總是恰好等于待測信號TCLK的完整周期數這樣一個事實,這正是確保TCLK在任何頻率條件下都能保持恒定精度的關鍵。而且,CL寬度的改變以及隨機的出現時間造成的誤差最多只有BCLK信號的一個時鐘周期,如果BCLK由精確穩(wěn)定的晶體振蕩器(100MHz)發(fā)出,則任何時刻的絕對測量誤差只有10ns。設在—次預置門時間Tpr中對被測信號的計數值為Nx,對標準頻率信號的計數值為Ns則下式成立:(6-5-1)不難得到測得的頻率為:(6-5-2)最后通過控制SEL選擇信號和64位至8位的多路選擇器MUX64-8,將計數器BHZ和TF中的兩個32位數據分8次讀入單片機按式(6-5-2)進行計算,并顯示結果。(3)VHDL測試程序設計。根據邏輯原理圖6.5.1功能波形圖6.5.5和圖6.5.6,以及以上給出的測頻原理說明,可以寫出相應的VHDL功能描述。圖6.5.3即根據源程序畫出的電路模塊。本實驗中的源程序已通過了綜合和硬件測試,可以直接應用。源程序與單片機可以按照如下方式接口:=1\*GB3①單片機的P0口接8位數據DATA[7..0],負責讀取測頻數據。=2\*GB3②單片機可以通過信號START,了解計數是否結束,以確定何時可以讀取數據。=3\*GB3③在測脈寬階段(SPUL=0),EEND的功能與START基本相同,當其由低電平變到高電平時指示脈寬計數結束。=4\*GB3④P2.2、P2.1和P2.0-~SEL[2..0]相接,用于控制多路通道的數據選擇。當SEL分別為"000”、“001”、“010"、“011”時,由低8位到高8位讀出標準頻率計數值:當SEL分別為“100”、“101”、“110"、“=5\*GB3⑤P2.4接清零信號CLR,高電平有效。每一測頻周期開始時,都應首先清零。=6\*GB3⑥P2.5和P2.6分別接控制信號CL和SPUL。CL和SPUL協同控制測試操作。即當SPUL為“1”時,CL作為預置門控信號,用于測頻計數的時間控制(如可取0.5s):當SPUL為“0”時,CL作為測脈寬控制信號。這時,CL若為“1”,測TCLK的高電平脈寬,而當CL為“0”,時,則測TCLK的低電平脈寬。然后分別從DATA數據口讀出BZH對標準頻率的計數,即只需令SEL的取值分別為“000”、“001”、“010”(6-5-3)圖6.5.3RTL圖(4)主系統(tǒng)組成測試與實現。單片機程序中可以根據以上給出的控制方法進行測量控制,在讀取相以的數據后,按照式(6-5-2)和式(6-5-3)進行計算。測試步驟如下:=1\*GB3①在使用單片機統(tǒng)調用前,應該直接對下載了實驗源程序的FPGA進行測試,如果使用GW48EDA系統(tǒng),建議電路圖用實驗電路模式5(附錄A圖A-6)。如果以上的仿真測試無誤,進行引腳鎖定,以便能在實驗系統(tǒng)上進行FPGA硬件功能的測試。BCLK接系統(tǒng)的clock9(50MHz):TCLK接clock0,可選擇多個信號測試,如2、4、8Hz等,或拔下短路帽輸入其他待測信號:信號CLR、CL、SPUL分別由鍵7、鍵8、鍵4控制:SI:ART和EEND分別由發(fā)光管7和8顯示:8位輸出數據DATA7、DATA6…DATA0分別用數碼管2和1顯示,由高位到低位分別鎖定在FPGA上。DATA[7..0]讀取選樣信號SEL2、SEL1、SEL0分別由鍵3、鍵2、鍵1控制。在測試過程中,應該根據圖6.5.5和圖6.5.6的電平設置,控制按鍵,以便測得正確的頻率和脈寬。=2\*GB3②如果能通過以上步驟,則表明專用功能的FPGA已設計完成,可根據用戶板的引腳情況,重新鎖定引腳,以便將FPGA插到用戶板上,與板上的單片機和其他器件協調工作,完成獨立的測頻系統(tǒng)。=3\*GB3③根據圖6.5.5和圖6.5.6各信號的時序設置方式和輸出信號的含義,設計單片機程序,其中包括單片機與FPGA的數據通信程序單片機控制FPGA進行測頻和測脈寬的控制程序、數據運算程序等。最后將設計調試好的單片機程序編譯后燒錄進單片機中。=4\*GB3④為了提高測試精度,可以利用PLL將系統(tǒng)時鐘在FPGA中倍頻到100MHz或更高。=5\*GB3⑤統(tǒng)調中,利用GW48系統(tǒng)的各種標準頻率,測試用戶板的功能。=6\*GB3⑥最后用ByteBlasterII燒錄Cyclone/II的配置器件EPCSl,完成掉電保護設計。(5)相位測試。圖6.5.4測相儀模型由圖6.5.5和圖6.5.6可知,對于源程序補充一個簡單邏輯模塊就能構成一個相位測試儀。圖6.5.4是—個測相儀電路框圖。在FPGA模塊中除了原來的測頻測脈寬功能塊外,還增加了一個鑒相器,鑒相器接受來自外部的兩路被整形后的信號。由鑒相器輸出的脈沖信號的占空比與這兩路信號的相位差成正比,即(6-5-4)其中N1是高電平脈寬時間內的計數值,N2是低電平脈寬時間內的計數值。3實驗內容(1)根據以上步驟,首先完成等精度頻率汁FPGA的設計,并在GW48系統(tǒng)上硬件驗證源程序的各項功能:等精度測頻率、測脈寬、測占空比。在GW48系統(tǒng)上給出的標準待測頻率,計算誤差,并與理淪誤差值比較。(2)根據圖6.5.5和圖6.5.6和式(6-5-2)、式(6-5-3)設計單片機程序,完成單片機與FPGA的接口程序、控制程序和計算顯示程序的設計。完成等精度頻率計獨立系統(tǒng)的設計,控制鍵可以參考圖6.5.1的電路,每一個鍵控制一種功能。(3)修改原設計,增加測相位功能,并在系統(tǒng)上增加一個鍵,控制測相差和顯示。被測信號可以用前面設計的移相信號發(fā)生器產生。(4)實驗內容4:用嵌入式鎖相環(huán)PLL的LPM模塊對實驗系統(tǒng)的50MHz或20MHz時鐘源倍頻達到100MHz,PLL的輸出信號作為頻率計的標準頻率源。注意PLL的輸入時鐘必須是器件的專用時鐘輸入腳。4實驗預習思考(1)根據圖6.5.3說明信號SPUL和EEND的作用,信號CL和START的關系。(2)分析圖6.5.5和圖6.5.6,說明信號START利EEND的關系,并計算TCLK的脈寬,詳細說明占空比的測量方法。(3)用數學方法證明,CL的時間在0.1-ls間,在可測的頻率內,誤差小于等于標準頻率源一個周期。5程序設計與仿真程序設計源程序如下:LIBRARYIEEE;--2004GWDVPB,模式5USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYetesterISPORT(BCLK:INSTD_LOGIC;--Clock9標準頻率時鐘信號TCLK:INSTD_LOGIC;--clock2待測頻率時鐘信號CLR:INSTD_LOGIC;--鍵7:PIO6清零和初始化信號CL:INSTD_LOGIC;--鍵8:PIO7當SPUL為高電平時,CL為預置門控信號,用于測頻計數時間控制--當SPUL為低電平時,CL為測脈寬控制信號,CL高電平時測高電平脈寬--而當CL為低電平時,測低電平脈寬。SPUL:INSTD_LOGIC;--鍵4:PIO3測頻或測脈寬控制START:OUTSTD_LOGIC;--發(fā)光管8:PIO15EEND:OUTSTD_LOGIC;--發(fā)光管7:PIO14由低電平變到高電平時指示脈寬計數結束,SEL:INSTD_LOGIC_VECTOR(2DOWNTO0);--鍵3、2、1:PIO2/PIO1/PIO0--兩個32位計數器計數值分8位讀出多路選擇控制DATA:OUTSTD_LOGIC_VECTOR(7DOWNTO0)--數碼管2/1:PIO23/22/21/20/19/18/17/16,8位數據讀出);ENDetester;ARCHITECTUREbehavOFetesterISSIGNALBZQ:STD_LOGIC_VECTOR(31DOWNTO0);--標準計數器SIGNALTSQ:STD_LOGIC_VECTOR(31DOWNTO0);--測頻計數器SIGNALENA:STD_LOGIC;--計數使能SIGNALMA:STD_LOGIC;SIGNALCLK1:STD_LOGIC;SIGNALCLK2:STD_LOGIC;SIGNALCLK3:STD_LOGIC;SIGNALQ1:STD_LOGIC;SIGNALQ2:STD_LOGIC;SIGNALQ3:STD_LOGIC;SIGNALBENA:STD_LOGIC;SIGNALPUL:STD_LOGIC;--脈寬計數使能SIGNALSS:STD_LOGIC_VECTOR(1DOWNTO0);BEGINSTART<=ENA;DATA<=BZQ(7DOWNTO0)WHENSEL="000"ELSE--標準頻率計數低8位輸出BZQ(15DOWNTO8)WHENSEL="001"ELSEBZQ(23DOWNTO16)WHENSEL="010"ELSEBZQ(31DOWNTO24)WHENSEL="011"ELSE--標準頻率計數最高8位輸出TSQ(7DOWNTO0)WHENSEL="100"ELSE--待測頻率計數值最低8位輸出TSQ(15DOWNTO8)WHENSEL="101"ELSETSQ(23DOWNTO16)WHENSEL="110"ELSETSQ(31DOWNTO24)WHENSEL="111"ELSE--待測頻率計數值最高8位輸出TSQ(31DOWNTO24);BZH:PROCESS(BCLK,CLR)--標準頻率測試計數器,標準計數器BEGINIFCLR='1'THENBZQ<=(OTHERS=>'0');ELSIFBCLK'EVENTANDBCLK='1'THENIFBENA='1'THENBZQ<=BZQ+1;ENDIF;ENDIF;ENDPROCESS;TF:PROCESS(TCLK,CLR,ENA)--待測頻率計數器,測頻計數器BEGINIFCLR='1'THENTSQ<=(OTHERS=>'0');ELSIFTCLK'EVENTANDTCLK='1'THENIFENA='1'THENTSQ<=TSQ+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(TCLK,CLR)--計數控制使能觸發(fā)器,CL為預置門控信號,同時兼作正負脈寬測試控制信號BEGINIFCLR='1'THENENA<='0';ELSIFTCLK'EVENTANDTCLK='1'THENENA<=CL;ENDIF;ENDPROCESS;MA<=(TCLKANDCL)ORNOT(TCLKORCL);--測脈寬邏輯CLK1<=NOTMA;CLK2<=MAANDQ1;CLK3<=NOTCLK2;SS<=Q2&Q3;DD1:PROCESS(CLK1,CLR)BEGINIFCLR='1'THENQ1<='0';ELSIFCLK1'EVENTANDCLK1='1'THENQ1<='1';ENDIF;ENDPROCESS;DD2:PROCESS(CLK2,CLR)BEGINIFCLR='1'THENQ2<='0';ELSIF

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論