1 引言 移相電路在現代通訊技術、波形調制和雷達掃描等許多方面有著大量的運用。目前實現方式大致可分為模擬和數字2類。模擬移相器的電路較為復雜、線性差、響應時間慢,抗電磁干擾能力差。而數字移相器主要分2類[1]:第一類是運用直接數字式頻率合成技術dds。另一類是利用單片機計數延時的方法實現。其中使用dds的移相器的實現精度大多依照"360°/2°"的方式實現,即其能夠實現180°,90°,45°,22.5°,11.25°等精度[2]。另外其實現電路也較為復雜;而第二類利用單片機雖然可以實現較高精度的移相,但使用的單片機屬于硬核ip[2],在大規(guī)模集成和使用權問題上十分不方便。本文介紹的基于可編程數字控制方法的移相原理,其精度可以通過精度控制輸入信號任意賦予(在本文中精度調制為1°來說明)。此原理的電路采用采樣電路和精度為1°的360倍倍頻器等進行延時輸出波形,方法簡便,電路結構簡單,能夠配合任意工藝特性加以實現,且能夠方便地集成到大規(guī)模電路中去。2 基本原理 本系統是基于數字倍頻器進行延時操作而實現的移相。實現原理是把輸入模擬波形(如正弦信號)的周期tin轉化為原來的1/data,tin/data即為移相精度,data值通過精度控制輸入信號賦值。當data為360時,精度為1°;當data為720時,精度為0.5°;若要更小的精度,可依此類推。本文中為便于顯示移相波形,把精度設置為1°。則精度為tin/360,所用的倍頻器倍頻因子即為360。這樣經n個tin/360延時(n為移相的具體數值,由記時控制輸入信號d賦值),再輸出波形。和原波形相比就形成了移相。從實現的電路方面來講,要把輸入波形周期變?yōu)樵瓉淼?/360,或者說把輸入波形的頻率變?yōu)樵瓉淼?60倍,最直接的辦法就是采用倍頻器。而數字倍頻器的輸入是數字信號,則應先把模擬量轉化為數字量,這就需要一個模擬比較器。在得到倍頻輸出信號后,為了要得到希望的n值,還應在倍頻器后添加數字定時輸出計數器,以輸出延時控制信號。最后把模擬信號輸入a/d電路,通過rom存儲,再在延時控制信號的作用下延時輸出數字量,再經過d/a電路還原為模擬量,最終實現移相操作。其中倍頻器具有360倍倍頻能力?! ≥斎肽M信號(如正弦波)經過信號比較器,波形電壓與零伏比較后,高于零伏的電壓段轉化為高電平,低于的轉化為低電平,這樣輸入信號就轉化為周期相同的數字信號。a/d,rom,d/a和一些控制電路構成移相輸出控制模塊。其中移相控制部分的倍頻器,定時輸出計數器構成可編程數字控制部分,都可以通過硬件語言編譯實現。2.1數字倍頻器 這里使用的數字倍頻器(電路如圖2所示)的算法是基于采樣的原理來實現[4],理論上能夠實現任意倍倍頻,這里為方便說明和顯示波形,設置為360倍,即倍頻因子為360,精度為1°?! ‘斝盘朼經過比較器后,a轉化為具有相同周期的數字信號da,他們的周期均為tclk_in。通過引入高頻時鐘信號(其周期為thf_clk)采樣,以此來計數在一個tclk_in中含有的thf_clk的個數,把這個結果記為nhf。則有:nhf=tclk_in/thf_clk (1)
由于倍頻因子是360,所以對于倍頻后的結果clk_div_n1有:nhf_of_clk_dive_n1=nhf/360 (2)tclk_div_n1=nhf_of_clk_dive_n1×thf_clk (3)tclk_div_n1為倍頻后倍頻器輸出波形的周期,nhf_of_clk_dive_n1為一個tclk_div_n1中含有的采樣信號周期的個數。聯立式(1),(2),(3),可得:tclk_div_n1=tclk_in/360 (4)亦即:fclk_in×360=fclk_div_n1 (5) 從而實現了360倍倍頻。tclk_div_n1就是信號a相移27π/360(即1°)時所占的時間間隔。圖3是本倍頻器的仿真波形(這里把倍頻因子固定為360)。在每次輸入信號周期變化后,都按照新的周期進行360倍倍頻這里應說明的幾點是:
data就是精度控制信號,不難看出,實際上他也就是倍頻器的倍頻因子。當data=360時,移相精度為1°。那么當倍頻因子改變時,移相精度隨之而改變。若data為720,則移相精度為0.5°;若data為3 600,則移相精度為0.1°。這些都可以通過改變精度控制信號data來實現,從而達到精度可變的目的?! ?2)reset為復位信號,在輸入信號da(也就是電路圖中信號clk_in)時應先復位?! ?3)每隔一個tclk_in,nhf就會被重新計算一次,并與上次的結果作比較,這樣輸出信號cal_dif會在輸入信號clk_in的周期發(fā)生變化時(也就是兩個nhf數值不一樣時),輸出一個高電頻。這個高電頻就是下兩個模塊數字定時輸出計數器和數?;旌陷敵隹刂齐娐分幸徊糠帜K的復位信號,從而達到倍頻器輸出信號周期自調節(jié)的目的?! ?4)式(1)~式(5)的推導實際上都忽略了除法中的余數問題。當式(1)除不盡時要考慮余數的四舍五入問題。式(2),式(4)應修改為:nhf_of_clk_dive_n1=nhf/360 (6)tclk_in=360×tclk_div_n1+r (7)