專利名稱:一種數字精密移相方法及移相器的制作方法
技術領域:
本發明涉及一種原子鐘用數字精密移相方法,同時還涉及移相器,可廣泛應用于各類原子鐘和精密時間設備。
背景技術:
在原子鐘和精密時間設備電路中,實現移相的方法有多種多樣,但大體上可分為三類,一類是模擬移相,采用放大器加RC移相網絡或移位濾波器等方式,其機理是利用濾波網絡的相頻特性已達到移相的目的,但由于分立線性元件(如電容、電阻等)和晶體管的參數有較大離散性并且溫度效應較大,并且晶體管參數的波動還與電源波動直接相關,所以導致移相相位值有較大波動并且難以將移相精度做高;另一類是利用數字門電路的傳輸延時時間(propagation delay)進行相位移動,這種方法僅在待移相頻率較高且相移值較固定的情況下使用,如欲修改相移值則必須修改門電路的級數,顯然此種方式的修改靈活性較差;第三種方式是利用單片機的程序語句進行軟件延時或利用可編程器件(如CPLD、FPGA等)進行可控制的硬件延時,此種方法移相范圍寬、精度高,并且修改方便、相移穩定,現階段應用較廣,但在某些特殊場合禁止使用單片機、可編程器件及存儲器之類器件,而適用于這些器件的方法又很難用分立電路實現,所以限制了這類方法在某些特殊場合的使用。
發明內容
本發明的目的在于提供了一種數字精密移相方法,其方法易行,結構簡單,成本低廉,既能夠用可編程邏輯器件實現,又可用分立器件實現,移相范圍覆蓋0~360度且移相精度極高,移相值修改方便且相移穩定,輸出信號與輸入信號嚴格同步。
本發明的另一個目的在于提供一種移相器,其結構簡單,成本低廉,移相范圍覆蓋0~360度且移相精度極高,移相值修改方便且相移穩定,輸出信號與輸入信號嚴格同步。
本發明的目的是這樣實現的①利用高速多位計數器對高頻時標信號進行分頻,輸出待移相的低頻信號及其二倍頻信號;②利用高速多位可預置計數器以二倍頻信號上升/下降沿為計數零點對高頻時標信號進行計數,產生移相標志方波;③利用D觸發器以移相標志方波作為時鐘、以待移相的低頻信號作為輸入,輸出移相信號,完成信號的移相。
本發明的目的實現步驟是①n位計數器由24位計數器模塊組成,24位計數器模塊由CPLD實現,設置24位計數器模塊的分頻次數為N,輸入信號FIN接入n位計數器的時鐘輸入端,n位計數器輸出兩路同步方波信號,其中一路信號為FIN×1/N,另一路信號為FIN×2/N,FIN×1/N的頻率為FIN的1/N,而FIN×2/N的頻率為FIN×1/N的兩倍,FIN×1/N即為待移相的方波信號;②m位可預置計數器由23位可預置計數器模塊組成,23位可預置計數器模塊由CPLD實現,設置23位可預置計數器模塊的預置數為M,輸入信號FIN和信號FIN×2/N分別接入m位可預置計數器的時鐘輸入端和清零端,設置可預置數M及計數器參數使得可預置計數器以信號FIN×2/N的下降沿為零點進行清零并開始計數,當計數值到達可預置數M時可預置計數器輸出移相標志方波FR,移相標志方波FR相對于待移相方波信號FIN×1/N的相移值為360度×M/N,移相精度為360度/N;③D觸發器由D觸發器模塊組成,D觸發器模塊由CPLD實現,移相標志方波FR和待移相的方波信號FIN×1/N分別接入D觸發器的時鐘輸入端和信號輸入端,D觸發器的兩個輸出端分別輸出信號FOUT和/FOUT,FOUT與移相標志方波FR同相位,FOUT相對于待移相的方波信號FIN×1/N的移相范圍為0~180度,輸出信號/FOUT與移相標志方波FR反相位,/FOUT相對于待移相的方波信號FIN×1/N的移相范圍為180~360度,完成移相。
本發明與現有技術相比具有以下優點1、在本移相方法中,采用純數字電路進行移相,能夠保證輸出信號與輸入信號的嚴格同步,輸出信號相位穩定。
2、采用高速多位計數器和可預置計數器,適用于頻率從極低頻至幾十兆赫茲的信號。
3、移相范圍覆蓋0~360度,移相精度由高頻時標脈沖決定所以移相精度極高,相移穩定且移相值不受外界環境溫度影響,移相值由可預置數決定所以相移值修改方便。
4、本發明方法易行,結構簡單,成本低廉,既能夠用可編程邏輯器件實現,又可用分立器件實現,可廣泛應用于各類原子鐘和精密時間設備。
圖1為一種數字精密移相方法方框圖;圖2為一種移相器結構示意圖;圖3為一種移相器信號波形示意圖。
其中M1-n位計數器;M2-m位可預置計數器;M3-D觸發器;1-24位計數器模塊;2-23位可預置計數器模塊;3-D觸發器模塊。
4-CPLD;具體實施方式
1、部件選取A、CPLD4選用ALTERA公司EPM1270T144C5;B、24位計數器模塊1在CPLD4內部用Verilog HDL語言實現;
C、23位可預置計數器模塊2在CPLD4內部用Verilog HDL語言實現;D、D觸發器模塊3在CPLD4內部用Verilog HDL語言實現。
2、具體實施方法由圖1所示,一種移相方法的實施步驟如下①輸入信號FIN接入n位計數器M1的時鐘輸入端,計數器M1輸出兩路同步方波信號,其中一路信號為FIN×1/N,另一路信號為FIN×2/N,FIN×1/N的頻率為FIN的N分之一,而FIN×2/N的頻率為FIN×1/N的兩倍,其中N≤2n且N值由計數器M1的控制參數決定,FIN×1/N即為待移相的方波信號;②輸入信號FIN和信號FIN×2/N分別接入m位可預置計數器M2的時鐘輸入端和清零端,設置可預置數M及計數器參數使得可預置計數器M2以信號FIN×2/N的下降沿為零點開始計數,當計數值到達可預置數M時可預置計數器M2輸出移相標志方波FR同時計數器清零從新開始計數,其中m≥log2N,M≤2m;③可見移相精度達360度/N,移相標志方波FR相對于待移相方波信號FIN×1/N的相移值為360度×M/N,如m≥n-1則移相范圍覆蓋0~180度;④移相標志方波FR和待移相的方波信號FIN×1/N分別接入D觸發器M3的時鐘輸入端和“D”端,D觸發器M3的“Q”端和“/Q”端分別輸出信號FOUT和/FOUT,完成移相;⑤D觸發器M3輸出信號FOUT與移相標志方波FR同相位,FOUT相對于待移相的方波信號FIN×1/N的移相范圍為0~180度,輸出信號/FOUT與移相標志方波FR反相位,/FOUT相對于待移相的方波信號FIN×1/N的移相范圍為180~360度,所以本方法移相范圍覆蓋0~360度而且移相精度為360度/N。
一種實現上述方法的裝置的實施步驟如下由圖2可知,本裝置由CPLD 4構成,CPLD 4內部包括24位計數器模塊1、23位可預置計數器模塊2及D觸發器模塊3。
由圖2和圖3可知,各部件之間的連接關系和各部件的作用是
24位計數器模塊1在CPLD 4中實現。設置24位計數器模塊1的分頻次數為N;24位計數器模塊1的“cp”輸入端與輸入信號FIN連接,“out1”輸出端和“out2”輸出端分別與D觸發器模塊3的“D”輸入端和23位可預置計數器模塊2的“CLR↓”輸入端連接;24位計數器模塊1的“out1”端輸出信號FIN×1/N,信號頻率為FIN/N,信號分為兩路,一路作為待移相方波信號輸出,另一路接入D觸發器模塊3的“D”端;24位計數器模塊1的“out2”端輸出信號FIN×2/N,信號頻率為FIN×2/N,信號接入23位可預置計數器模塊2的“CLR↓”端;24位計數器模塊1的作用是以輸入信號FIN作為時標產生待移相的頻率為FIN/N的低頻方波信號及其二倍頻方波信號,移相精度由高頻時標脈沖決定即移相精度為360度/N。24位計數器模塊1的模塊構造Verilog HDL語言是module ml(fin,fin_n_div,fin_2n_div);//模塊定義,輸入輸出參數表,//其中fin為信號FIN,fin_n_div為信號FIN×1/N,fin_2n_div為信號FIN×2/Ninput fin;//輸入時鐘finoutput fin_n_div;//輸出n分頻信號fin_n_divoutput fin_2n_div;//輸出2n分頻信號fin_2n_divreg[23:0]count;//24位計數器reg fm_n_div,fin_2n_div;//寄存器定義parameter m;//常數定義,m=n/2,設置分頻次數M;always@(negedge fin)//時鐘fin的下降沿觸發beginif(count<m)//判斷語句begincount<=count+1;//計數器對fin下降沿計數endelse if(count==m)//判斷語句begincount<=count+1;//計數器對fin下降沿計數fin_n_div<=!fin_n_div;//fin_n_div取反end
else if(count<2*m)//判斷語句begincount<=count+1;//計數器對fin下降沿計數endelse if(count==2*m)//判斷語句begincount<=0;//計數器置零fin_n_div<=!fin_n_div;//fin_n_div取反fm_2n_div<=!fin_2n_div;//fin_2n_div取反endendendmodule23位可預置計數器模塊2在CPLD 4中實現。設置23位可預置計數器模塊2的預置數為M,清零方式為下降沿清零;23位可預置計數器模塊2的“cp”端與輸入信號FIN連接;23位可預置計數器模塊2的“CLR↓”端與24位計數器模塊1的“out2”端輸出信號FIN×2/N連接;23位可預置計數器模塊2的“out”端與D觸發器模塊3的“cp”端信號FR連接;23位可預置計數器模塊2的作用是以輸入信號FIN作為時標,以FIN×2/N下降沿作為計數零點,在計數值到達預置數M時輸出移相標志方波FR,移相標志方波FR相對于待移相低頻方波信號FIN×1/N的相移值為360度×M/N。23位可預置計數器模塊2的模塊構造VerilogHDL語言是module m2(fin,fin_2n_div,fr);//模塊定義,輸入輸出參數表//其中fin為信號FIN,fin_2n_div為信號FIN×2/N,fr為信號FRinput fin;//輸入時鐘fininput fin_2n_div;//輸入2n分頻信號fin_2n_divoutput fr;//輸出信號frreg fr,sign;//寄存器定義reg[22:0]count;//23位計數器
parameter p;//設置參數p,p為預置數Nalways@(negedge fin)//時鐘fin的下降沿觸發beginif((fin_2n_div==1)&&(sign==1))//判斷語句begincount<=0;//計數器置零fr<=0;//fr置0endelse if((fin_2n_div==0)&&(sign==1))//判斷語句begincount<=count+1;//計數器對fin下降沿計數sign<=0;//置計數標志為0endelse if((count<p)&&(sign==0))//判斷語句begincount<=count+1;//計數器對fin下降沿計數endelse ifi(count==p)//判斷語句beginfr<=1;//fr置1sign<=1;//置計數標志為1endendendmoduleD觸發器模塊3在CPLD 4中實現。設置D觸發器模塊3為上升沿觸發方式,并有正相及反相輸出;D觸發器模塊3的“D”端與24位計數器模塊1的“out1”端連接;D觸發器模塊3的“cp”端與23位可預置計數器模塊2的“out”端連接;D觸發器模塊3的“Q”端和“/Q”端分別輸出信號FOUT和/FOUT;D觸發器模塊3的作用是在移相標志方波FR上升沿時刻對待移相低頻方波信號FIN×1/N進行瑣存,輸出兩路分別與移相標志方波FR同相位和反相位的頻率為FIN/N的低頻方波信號FOUT和/FOUT,其中FOUT相對于待移相方波信號FIN×1/N的移相范圍為0~180度,/FOUT相對于待移相方波信號FIN×1/N的移相范圍為180~360度,完成移相。D觸發器模塊3的模塊構造Verilog HDL語言是module m3(fin_n_div,fr,fout,fout_n);//模塊定義,輸入輸出參數表//其中fin_n_div為信號FIN×1/N,fr為信號FR,fout為信號FOUT,fout_n為信號/FOUTinput fin_n_div;//輸入n分頻信號fin_n_divinput fr;//輸入信號froutput fout;//輸出信號foutoutput fout_n;//輸出信號fout的反相信號fout_nreg fout,fout_n;//寄存器定義always@(negedge fr)//時鐘fr的上升沿觸發beginfout<=fr&&fin_n_div;//觸發取值fout_n<=!(fr&&fin_n_div);//fout信號取反endendmodule實驗結果根據圖1、圖2和圖3得知,在本實驗中,FIN頻率為10MHz,設置24位計數器模塊1的分頻次數為126582(即設置N=126582),得到79Hz待移相方波信號,設置不同M值對79Hz信號進行移相,結果為設置M從1至勻速變化8388608(即223),時間間隔5秒并以10000為步進,用示波器同時觀察79Hz待移相方波信號與79Hz已移相方波信號(即FOUT),以79Hz待移相方波信號下降沿作為示波器同步觸發方式,觀察到FOUT相對于待移相信號的相移值由0度勻速變化至180度,以同樣方法觀察到/FOUT相對于待移相信號的相移值由180度勻速變化至360度;在銣原子鐘電路中采用此方法長期拷機,實測結果表明電路工作穩定可靠,相移確定并且溫度系數極低。
結果表明,本方法行之有效,方法易行,結構簡單,成本低廉,既能夠用可編程邏輯器件實現,又可用分立器件實現;本裝置輸出信號相移值穩定、移相精度高、移相范圍覆蓋0~360度,適用于頻率從極低頻至幾十兆赫茲的信號并且相移值修改方便;本方法及裝置可廣泛應用于各類原子鐘和精密時間設備。
權利要求
1.一種數字精密移相方法,它包括下列步驟A、輸入信號FIN接入n位計數器(M1)的時鐘輸入端,計數器(M1)輸出兩路同步方波信號,一路信號為FIN×1/N,另一路信號為FIN×2/N,FIN×1/N的頻率為FIN的N分之一,FIN×2/N的頻率為FIN×1/N的兩倍,FIN×1/N為待移相的方波信號;B、輸入信號FIN和信號FIN×2/N分別接入m位可預置計數器(M2)的時鐘輸入端和清零端,可預置計數器(M2)以信號FIN×2/N的下降沿為零點進行清零并重新開始計數,當計數值到達可預置數M時可預置計數器(M2)輸出移相標志方波FR;C、移相精度達360度/N,移相標志方波FR相對于待移相方波信號FIN×1/N的相移值為360度×M/N,移相范圍覆蓋0~180度;D、移相標志方波FR和待移相的方波信號FIN×1/N分別接入D觸發器(M3)的時鐘輸入端和D端,D觸發器(M3)的Q端和/Q端分別輸出信號FOUT和/FOUT,完成移相;E、D觸發器(M3)輸出信號FOUT與移相標志方波FR同相位,FOUT相對于待移相的方波信號FIN×1/N的移相范圍為0~180度,輸出信號/FOUT與移相標志方波FR反相位,/FOUT相對于待移相的方波信號FIN×1/N的移相范圍為180~360度,移相范圍覆蓋0~360度,移相精度為360度/N。
2.一種用于實現數字精密移相方法的裝置,其特征在于A、24位計數器模塊(1)的cp輸入端與輸入信號FIN相連,out1輸出端和out2輸出端分別與D觸發器模塊(3)的D輸入端和23位可預置計數器模塊(2)的CLR↓輸入端連接;B、23位可預置計數器模塊(2)的cp端與輸入信號FIN連接;23位可預置計數器模塊(2)的CLR↓端與24位計數器模塊(1)的out2端連接;23位可預置計數器模塊(2)的out端與D觸發器模塊(3)的cp端連接;C、D觸發器模塊(3)的D端與24位計數器模塊(1)的out1端連接;D觸發器模塊(3)的cp端與23位可預置計數器模塊(2)的out端連接。
全文摘要
本發明公開了一種數字精密移相方法及移相器,首先是將高頻輸入信號接入計數器,計數器輸出待移相的低頻方波信號;其次是計數器輸出待移相信號的二倍頻方波信號;第三是將高頻輸入信號和二倍頻方波信號接入可預置計數器,可預置計數器根據預置數輸出移相標志方波;第四是移相標志方波與待移相的低頻方波信號接入觸發器,觸發器輸出經移相的低頻方波信號,完成移相。實現該方法的裝置包括計數器、可預置計數器和觸發器。本發明方法易行,結構簡單,成本低廉,既能夠用可編程邏輯器件實現,又可用分立器件實現,移相范圍覆蓋0~360度且移相精度極高,移相值修改方便且相移穩定,輸出信號與輸入信號同步。
文檔編號H03H17/08GK1913349SQ200610020040
公開日2007年2月14日 申請日期2006年8月24日 優先權日2006年8月24日
發明者余鈁, 陳智勇, 魯道邦, 王艷, 裘曉俊, 金鑫, 李超, 陳云起, 管妮娜, 朱熙文, 盛榮武 申請人:中國科學院武漢物理與數學研究所