• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于CPLD和單片機(jī)的等精度數(shù)字頻率計設(shè)計

      2015-05-29 21:06:53李莉熊晶
      現(xiàn)代電子技術(shù) 2015年10期

      李莉+熊晶

      摘 要: 根據(jù)相位重合點(diǎn)理論對等精度數(shù)字頻率計進(jìn)行改進(jìn),采用該理論可使對標(biāo)準(zhǔn)頻率信號和待測頻率的計數(shù)同時開始,消除了對標(biāo)準(zhǔn)頻率信號計數(shù)時±1個周期的誤差。系統(tǒng)設(shè)計主要包括三部分:待測頻率的整形放大部分;計數(shù)部分,采用CPLD,相位重合點(diǎn)的檢測也在CPLD中完成;頻率的計算和顯示部分由單片機(jī)AT89C51完成。CPLD部分的仿真使用Max+Plus Ⅱ,單片機(jī)部分的仿真使用Protues軟件。測試結(jié)果表明,待測頻率在1 Hz~10 MHz范圍內(nèi),頻率計測量精度高,穩(wěn)定性好。

      關(guān)鍵詞: 相位重合點(diǎn)理論; CPLD; 等精度數(shù)字頻率計; Max+Plus Ⅱ

      中圖分類號: TN710?34; TM935.13 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)10?0118?03

      頻率計是一種應(yīng)用在電子、通信、工業(yè)生產(chǎn)領(lǐng)域的常用的電子測量儀器。常用的對頻率計的設(shè)計方法有直接測量法,模擬內(nèi)插法,多周期同步法,等精度測量法[1?2]等。在這些測量方法中等精度測量法的精度最高,但是該方法對標(biāo)準(zhǔn)頻率信號的計數(shù)部分存在±1個周期的誤差,本文采用相位重合點(diǎn)理論,可消除±1個周期的誤差。

      1 系統(tǒng)整體設(shè)計方案

      由于待測頻率fx往往是小信號,并且不是方波,所以要先放大和整形,經(jīng)過處理后的信號和標(biāo)準(zhǔn)頻率信號f0送到CPLD,單片機(jī)對CPLD發(fā)控制命令,CPLD進(jìn)行相位檢測和計數(shù),計得的兩組數(shù)值(在實(shí)際閘門時間內(nèi)對fx的計數(shù)值nx和對f0的計數(shù)值n0)送往8051,單片機(jī)根據(jù)公式[fxnx=f0n0]計算出fx,最后通過液晶顯示器LM0 16L 顯示出當(dāng)前頻率值。整體設(shè)計方案如圖1所示。

      圖1 系統(tǒng)框圖

      2 系統(tǒng)設(shè)計

      2.1 放大整形電路的設(shè)計

      放大部分采用共射極放大電路,整形部分采用施密特觸發(fā)器74LS14。由于共射極放大電路是反向放大,而施密特觸發(fā)器內(nèi)部就帶有反向器,所以最終可實(shí)現(xiàn)放大整形后不會反向。

      2.2 相位重合檢測部分

      2.2.1 傳統(tǒng)等精度頻率計測頻原理

      傳統(tǒng)的等精度頻率[3?4]計測量原理[5]如圖2所示。標(biāo)準(zhǔn)頻率信號f0送入計數(shù)器counter0的時鐘端CLK,待測頻率fx連D觸發(fā)器的時鐘端和counterx的時鐘端CLK,D觸發(fā)器的輸入端接閘門信號,輸出端接兩個計數(shù)器的使能端。當(dāng)閘門信號在高電平器期間,并且fx是上升沿時,兩個計數(shù)器同時計數(shù),停止計數(shù)時刻是在閘門信號變?yōu)榈碗娖胶蟛⑶沂莊x的下一個時鐘信號上升沿到來時結(jié)束計數(shù)。這種方法可以保證對fx的計數(shù)不存在任何誤差,但是對f0的計數(shù)則有±1個誤差,并且對于f0的給定,必定是個高頻信號,比如100 MHz,而采用本文的方法對f0則無要求。

      圖2 傳統(tǒng)等精度頻率計結(jié)構(gòu)圖

      2.2.2 相位重合理論

      設(shè)[f1=A×f],[f2=B×f],A,B是相互沒有公約數(shù)的兩個正整數(shù),則f就是f1和f2的最大公因子頻率fmaxc。設(shè)[tminc=1fmaxc],tminc叫作最小公倍數(shù)周期。在一個tminc周期中f1和f2中的相位差中有一些值分別等于初始相位差加0,ΔT,2ΔT,3ΔT,…,ΔT=[fmaxcf1f2],這些值遠(yuǎn)小于f1和f2的周期值,這樣的一些點(diǎn)叫做兩信號的“相位重合點(diǎn)”。所謂相位重合并非絕對重合,而是一個相對的概念。在一個tminc周期中包含A個頻率值是f1的周期和B個頻率值是f2的周期。

      利用上述理論,可得到相位重合點(diǎn)檢測電路[6?9],如圖3所示。

      圖3 相位重合檢測電路

      2.2.3 修正后的相位重合檢測電路

      該電路理論可以找到相位重合點(diǎn),是利用信號經(jīng)過非門之后有延時,但是仿真不通過,這是由于仿真軟件把原信號和取反后再相與邏輯綜合掉了,所以經(jīng)過非門之后的信號必須要有個延時才可以,同理加入邏輯門的方法進(jìn)行延時也行不通,比如再增加2個非門的方法。在Max+Plus Ⅱ軟件中有延時單元LCELL可以用,但是延時不精確,甚至可能造成系統(tǒng)不穩(wěn)定。由于Max+Plus Ⅱ中沒有電容電阻這些元件,所以也不能用RC電路進(jìn)行延時。本文采用延時的方法是通過加入D觸發(fā)器來延時,信號經(jīng)過D觸發(fā)器的延時時間為1個CP脈沖的時間,電路圖如圖4所示。

      圖4 修正后的相位重合點(diǎn)檢測電路

      從波形圖圖5可以看出,a信號與b信號的初始相位差為0,b信號的周期是a信號的3倍,根據(jù)相位重合點(diǎn)理論,可以得到在每一個300 ns后必然有相位重合點(diǎn)。當(dāng)chonghe端是一個窄脈沖的上升沿時說明b信號和a信號相位重合。由于信號經(jīng)過非門有幾個ns的延時,并且經(jīng)過D觸發(fā)器后還有1個CP脈沖的延時,所以觀測到的相位重合點(diǎn)有幾個ns的滯后。

      圖5 修正后的相位檢測電路波形圖

      2.3 計數(shù)電路

      計數(shù)電路部分加入相位重合檢測電路構(gòu)成實(shí)際的計數(shù)電路,PINLVJIXIN2模塊是普通的等精度計數(shù)器模塊,采用VHDL語言編寫,各引腳含義如下:bclk,標(biāo)準(zhǔn)時鐘信號輸入端;tclk1,待測信號輸入端;clr,清零端;cl,預(yù)置門控信號;tclk,計數(shù)控制端(tclk引腳是上升沿,并且cl是高電平,開始計數(shù),當(dāng)cl是低電平,并且下一個tclk上升沿到來時,停止計數(shù));start,開始計數(shù)的輸出信號,此信號為‘1表明真正開始計數(shù),為‘0表明停止計數(shù); sel[2..0],多路通道數(shù)據(jù)選擇端;當(dāng)sel 分別取值0,1,2,3時,由低8位到高8位分4次讀出標(biāo)準(zhǔn)頻率計數(shù)值, 當(dāng)sel 分別取值4,5,6,7時,由低8位到高8位分4次讀出待測頻率計數(shù)值。data[7..0],8位數(shù)據(jù)端口。實(shí)體及部分結(jié)構(gòu)體程序如下:

      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計數(shù)模塊編譯通過后可生成原理圖,PINLVJIXIN2的原理圖和相位重合檢測電路共同構(gòu)成相位檢測及計數(shù)模塊圖, 如圖 6所示,相位重合檢測電路的輸出端chonghe引腳連PINLVJIXIN2的tclk端。當(dāng)chonghe端輸出一個窄脈沖時,并且cl是高電平期間,在這個窄脈沖的上升沿,PINLVJIXIN2模塊中的兩個計數(shù)器(計標(biāo)準(zhǔn)時鐘信號的計數(shù)器和計待測頻率的計數(shù)器)開始計數(shù),停止計數(shù)時刻是在cl信號變?yōu)榈碗娖揭院?,?dāng)chonghe端又來一個窄脈沖的上升沿時停止計數(shù)。這樣可以保證兩個計數(shù)器是同時開始計數(shù),并且同時停止計數(shù),可消除傳統(tǒng)等精度頻率計對標(biāo)準(zhǔn)頻率信號計數(shù)時+1個脈沖的誤差。

      從圖7 CPLD計數(shù)輸出波形圖可以看出,當(dāng)sel[2..0]為4,5,6,7時fx計了1個脈沖,即公式[fxnx=f0n0]中的nx=1,當(dāng)sel[2..0]為0,1,2,3時f0計了3個脈沖,即n0=3,計數(shù)結(jié)果正確。

      圖6 相位檢測及計數(shù)模塊頂層文件原理圖

      圖7 CPLD計數(shù)輸出波形圖

      2.4 單片機(jī)模塊

      在該模塊中,單片機(jī)完成3個功能[10],一個是對CPLD發(fā)命令并接收CPLD傳送回的數(shù)據(jù),P0.7(接clr端)先發(fā)低電平,使兩個32位計數(shù)器清零,當(dāng)清零之后,單片機(jī)給CPLD先發(fā)高電平信號再發(fā)低電平信號, 通過P3.7(接cl),單片機(jī)不斷檢測P3.6引腳(接start端),當(dāng)P3.6由高電平變?yōu)榈碗娖綍r, P3.6,P3.5,P3.4(接sel[2..0])分別取值0,1,2,3時,由低8位到高8位分4次讀出標(biāo)準(zhǔn)頻率計數(shù)值,當(dāng)sel 分別取值4,5,6,7時,由低8位到高8位分4次讀出待測頻率計數(shù)值,這時數(shù)據(jù)按這個對應(yīng)關(guān)系送到P1口;另一個功能是根據(jù)[fxnx=f0n0]計算出fx,采用匯編語言,編譯軟件選用WAVE仿真軟件,最后一個功能則是進(jìn)行顯示,顯示器采用LM0 16L。液晶顯示部分較為簡單就不在詳述。

      3 結(jié) 語

      本設(shè)計利用相位重合點(diǎn)理論提高了等精度頻率計的精度,重點(diǎn)設(shè)計了相位檢測電路,并和計數(shù)電路相結(jié)合, 采用改進(jìn)電路后的計數(shù)器件是大規(guī)??删幊踢壿嬈骷﨏PLD,利用其高速、靈活的特點(diǎn),計算及顯示部分采用AT89C51單片機(jī)和LM0 16L。經(jīng)Max+Plus Ⅱ及WAVE和Protues進(jìn)行分塊仿真,在理論上論證了系統(tǒng)的穩(wěn)定性和可靠性。

      參考文獻(xiàn)

      [1] 潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2006.

      [2] 黃俊,余水寶.基于STC12C5A60S2的高頻高精度頻率計的設(shè)計[J].微型機(jī)與應(yīng)用,2012,31(17):22?24.

      [3] 郝統(tǒng)關(guān),程明.基于FPGA Nios Ⅱ的等精度頻率計設(shè)計[J].電測與儀表,2009,46(2):56?58.

      [4] 李云紅.相位檢測頻率系統(tǒng)的設(shè)計[J].艦船檢電子工程,2009(4):171?173.

      [5] 李國利,劉旭明,翟力欣.基于FPGA與單片機(jī)的等精度頻率計的設(shè)計[J].電子設(shè)計工程,2013,21(22):171?172.

      [6] 黃冠中,李志強(qiáng).基于PXI總線的寬帶頻率計設(shè)計[J].現(xiàn)代電子技術(shù),2010,33(11):18?19.

      [7] 薛偉,王梅.基于相位重合點(diǎn)檢測技術(shù)的測頻方法的改進(jìn)[J].電子科技,2005(7):17?20.

      [8] 康欽馬,姜海寧,周渭.基于相位重合檢測技術(shù)的虛擬頻率計設(shè)計[J].電子測量與儀器學(xué)報,2005,19(2):45?48.

      [9] 郭豫榮.一種新型頻率計的設(shè)計[J].赤峰學(xué)院學(xué)報:自然科學(xué)版,2012,28(16):73?75.

      [10] 孟召議.基于單片機(jī)AT89C52的頻率計的設(shè)計[J].長沙通信職業(yè)技術(shù)學(xué)院學(xué)報,2012,11(3):51?54.

      金昌市| 梅州市| 吉木萨尔县| 当涂县| 东辽县| 霞浦县| 阜新市| 利津县| 永州市| 秭归县| 江北区| 固安县| 定兴县| 海兴县| 娄烦县| 教育| 库车县| 民乐县| 横山县| 普安县| 丰顺县| 藁城市| 禄劝| 琼海市| 寿宁县| 乌拉特中旗| 康平县| 同仁县| 宜章县| 建平县| 隆德县| 张家界市| 沧州市| 芜湖县| 吴忠市| 呼伦贝尔市| 西吉县| 北辰区| 龙胜| 宜章县| 新兴县|