1 引言
數(shù)字鎖相環(huán)頻率合成器已經(jīng)廣泛的運用在軍事和民用無線通信領域,而用CPU控制的可編程大規(guī)模數(shù)字鎖相環(huán)頻率合成器則是其中的關鍵技術。當前,可編程邏輯電路在數(shù)字系統(tǒng)設計中飛速發(fā)展,很多中規(guī)模,甚至大規(guī)模的數(shù)字系統(tǒng)已經(jīng)可以通過可編程邏輯電路來實現(xiàn)單片集成,即用一個芯片完成整個數(shù)字系統(tǒng)的設計。因此將CPU控制的數(shù)字鎖相環(huán)頻率合成系統(tǒng)集成在一塊可編程邏輯芯片中實現(xiàn)已經(jīng)成為可能。本系統(tǒng)由多個可編程的數(shù)字分頻器、數(shù)字鑒頻-鑒相器以及協(xié)調控制工作的CPU組成。
2 系統(tǒng)結構
數(shù)字鎖相環(huán)頻率合成系統(tǒng)的工作原理是:鎖相環(huán)對高穩(wěn)定度的基準頻率(通常由晶體振蕩器直接或經(jīng)分頻后提供)進行精確鎖定,環(huán)內(nèi)串接可編程的分頻器,通過編程改變分頻器的分頻比,使環(huán)路總的分頻比為N(可通過編程改變),從而環(huán)路穩(wěn)定的輸出 N倍的基準頻率,而整個程序和系統(tǒng)的控制是要由CPU來完成的。
圖1為CPU控制的數(shù)字鎖相環(huán)頻率合成系統(tǒng)的FPGA實現(xiàn)方案。
圖1中虛線部分為CPU模塊,CPU通過讀取 ROM和對相應的寄存器置數(shù)來完成系統(tǒng)的控制;EEPROM為外接ROM,保存系統(tǒng)設置和預置頻點的數(shù)據(jù);參考分頻模塊對輸入的參考頻率進行預分頻,形成鑒頻和鑒相的基準頻率;鑒頻-鑒相模塊完成環(huán)路的鑒頻和鑒相功能;可編程分頻模塊和雙模前置分頻模塊共同組成環(huán)路內(nèi)串接的可改變分頻比的分頻器;Pdhout和Pdlout是鑒頻和鑒相輸出的誤差信號。誤差信號再通過環(huán)路濾波器產(chǎn)生誤差電壓控制VCO,VCO的輸出反饋至系統(tǒng),經(jīng)過分頻和鎖相過程,直到環(huán)路達到鎖定狀態(tài),此時 VCO的輸出即為所要求的穩(wěn)定頻率。
3 參考分頻模塊
參考分頻模塊主要完成對參考頻率(通常由外接晶體振蕩器輸入)進行預分頻,從而輸出鑒頻和鑒相的基準頻率。
為了擴展基準頻率的范圍,在模塊內(nèi)采用4位的參考分頻寄存器(RCR),參考頻率的分頻比可在2~15之間自由選擇。實現(xiàn)過程就是采用4位的加法計數(shù)器對參考頻率進行記數(shù),記數(shù)器的預置值為RCR中設置的參考分頻值,經(jīng)過分頻后,模塊輸出的頻率送入鑒頻-鑒相模塊中作為鑒頻-鑒相的基準頻率。
圖2是參考分頻模塊的仿真波形。圖中reset為復位信號,低電平有效;ref_f為輸入模塊的參考頻率;benchm_f為經(jīng)過分頻以后模塊輸出的基準頻率;RCR中預置的值為HA,即10分頻。
4 雙模前置分頻模塊
雙模前置分頻模塊主要完成對VCO輸出反饋到系統(tǒng)的頻率進行前置分頻,前置分頻后的頻率再輸入可編程分頻器再分頻。
為了擴展頻率合成器的輸出頻率范圍,在結構較為簡單的頻率合成系統(tǒng)中,VCO輸出反饋到系統(tǒng)的頻率是通過一個單模的前置分頻器,分頻后送入可編程分頻器再分頻,這樣雖然結構較為簡單,但是卻降低了頻率合成器的性能。如果要求提高頻率合成器的輸出頻率,則要加大前置分頻比,從而降低了輸出頻率的分辨率。為了保持穩(wěn)定的輸出頻率分辨率,同時提高頻率合成器的輸出頻率,系統(tǒng)采用了雙模前置分頻。雙模前置分頻具有兩種分頻模式,分別對應兩種分頻比,模式由雙??刂七壿嫞―MC)進行控制。當DMC為1時,前置分頻工作在M分頻模式,其中M為4位的前置分頻寄存器(PSR)中預置的前置分頻值。當DMC為0 時,前置分頻工作在M+1分頻模式。M的范圍是 2~15。其分頻功能的實現(xiàn)也采用4位加法計數(shù)器的方式。
圖3是雙模前置分頻模塊的仿真波形。圖中 reset為復位信號;dmc為雙??刂七壿?;vco_f為VCO輸出反饋到系統(tǒng)的頻率;prescaler_f為雙模前置分頻后輸出的頻率;PSR中預置的值為H8,即采用8/9雙模分頻。
5 可編程分頻模塊
可編程分頻模塊主要完成對前置分頻模塊輸出的頻率進行再次分頻,并且通過DMC的控制和雙模前置分頻模塊配合完成所要求的分頻功能。
可編程分頻模塊由兩個可編程分頻器和雙??刂七壿婦MC組成。兩個可編程分頻器的分頻比分別由可編程分頻寄存器A(PAR)和可編程分頻寄存器B(PBR)中的分頻值決定。DMC的工作原理為:分頻器A和分頻器B分別由兩個4位的加法計數(shù)器A、B組成,預置的值分別為PAR和PBR中的分頻值,加法記數(shù)開始后,在兩個記數(shù)器都未記數(shù)到預置值時,DMC輸出0,此時雙模前置分頻模塊工作在M+1分頻模式;當計數(shù)器B記數(shù)到預置值時,DMC輸出1,此時雙模前置分頻模塊工作在M分頻模式,同時計數(shù)器B停止工作,計數(shù)器A繼續(xù)工作,一直記數(shù)到預置值,然后計數(shù)器 A、B又同時開始新的記數(shù)工作。假設PAR=A,PBR=B,則當計數(shù)器B記數(shù)到預置值時,包括前置分頻的記數(shù),共記數(shù)(M+1)×B,此后計數(shù)器B停止工作,計數(shù)器A繼續(xù)完成剩余的(A-B )次記數(shù),此階段包括前置分頻記數(shù)共記數(shù)M×( A-B),所以當兩個計數(shù)器都完成依次記數(shù)時,包括前置分頻記數(shù)總的記數(shù)為:
N=(M+1)×B+ M×(A-B)=MA+B ,即環(huán)路進行了N分頻。
由以上分析可以看出來,PAR中的值必須要大于PBR中的值,否則模塊將運行不正常。
圖4是可編程分頻模塊的仿真波形。圖中re set 為復位信號;prescaler_f為雙模前置分頻后輸出的頻率;prog_f為經(jīng)過兩個可編程分頻器分頻后模塊輸出的頻率;PAR預置的值為HC,即A=12分頻;PBR預置的值為H4,即 B=4分頻;dmc為雙模控制邏輯。
6 鑒頻-鑒相模塊
鑒頻-鑒相模塊主要完成對經(jīng)過分頻后輸入模塊的頻率和基準頻率進行鑒頻-鑒相,并且輸出誤差結果。
此模塊采用超前與滯后雙輸出方式:如果輸入頻率高于基準頻率或相位超前,則Pdhout輸出負脈沖,而Pdlout輸出高電平;如果輸入頻率低于基準頻率或相位滯后,則Pdhout輸出高電平,而Pdlout輸出負脈沖;當輸入頻率和基準頻率同相后,Pdlout和Pdhout都輸出高電平。
鑒頻-鑒相模塊的工作原理為:當輸入頻率和基準頻率不同頻時,模塊工作在鑒頻方式;當輸入頻率和基準頻率同頻但不同相時,模塊工作在鑒相方式,從而擴展環(huán)路的快捕帶,使環(huán)路較快的進行相位鎖定,進而達到閉環(huán)鎖定狀態(tài)。數(shù)字鑒頻—鑒相模塊采用自底向上的設計方法,其輸出方式與功能符合圖5所示的狀態(tài)轉移圖。
圖中Negedge Benchm_f為基準頻率波形的下降沿;Negedge Prog_f為輸入頻率波形的下降沿;S0狀態(tài),模塊輸出Pdhout=1,Pdlout=1,此時處于同頻同相;S1狀態(tài),模塊輸出Pdhout=0,Pdlout=1,此時輸入頻率高于基準頻率或者輸入頻率比基準頻率相位超前;S2狀態(tài),模塊輸出Pdhout=1,Pdlout=0,此時輸入頻率低于基準頻率或者輸入頻率比基準頻率相位滯后。
圖6、7、8、9是不同輸入頻率時的仿真圖。
圖中reset為復位信號;benchm_f為基準頻率;prog_f為輸入頻率;pdhout和pdlout為鑒頻-鑒相模塊的輸出。
7 CPU模塊
CPU模塊主要完成對整個系統(tǒng)的控制。CPU包括一個8位的讀數(shù)據(jù)寄存器(RDR);一個10位的外部EEPROM地址寄存器(EAR),尋址空間為1024×8bit,支持1023個頻點的頻率合成;4個4位的分頻寄存器,包括參考分頻寄存器(RCR),前置分頻寄存器(PSR),可編程分頻寄存器A(PAR)和可編程分頻寄存器B (PBR)。
CPU內(nèi)的控制包括:讀外部程序存儲器(EEPROM)控制、程序執(zhí)行控制、可編程分頻器置數(shù)控制等。其工作過程如下:CPU的程序計數(shù)器采用順序遞增記數(shù)方式,從000H地址開始順序執(zhí)行,外部ROM中的指令也從000H地址順序存放,而指令也不需要譯碼,是按照指令與存儲地址相對應的方式:地址000H,執(zhí)行RCR=(000H)h,PSR=(000H)l;地址001H到400H,存放預設的頻點值表,執(zhí)行PAR=(abcH)h,PBR=(abcH)l,其中(xxxH)h和(xxxH)l分別表示xxxH中存儲數(shù)據(jù)的高4位和低4位,abcH表示當前執(zhí)行的001H到3FFH中的某個地址。程序順序執(zhí)行到3FFH后,自動返回到001H地址循環(huán)執(zhí)行。如果沒有1023個頻點,在最后一個頻點以后的地址全存入FFH即可,當程序運行到內(nèi)容為FFH的地址時就不進行任何操作而立即返回到001H地址繼續(xù)循環(huán)執(zhí)行。
讀外部程序存儲器控制部分采用一個10位的加法計數(shù)器,形成順序遞增的10位地址。同時還應有讀使能read,并即時處理程序運行控制信號即鎖定信號stop,當stop信號有效(低電平)時,頻率合成器的輸出鎖定在當前的頻點。模塊還包括 10根地址總線,8根數(shù)據(jù)總線。程序執(zhí)行控制部分通過當前地址給相應的寄存器賦值,產(chǎn)生不同的分頻值。
仿真時采用Verilog HDL編寫了一個預存數(shù)據(jù)的外部ROM仿真模塊,用來對CPU進行仿真,程序如下:
module rom(_read,address,data);
input _read;
input [9:0] address;
output [7:0] data;
reg [7:0] data;
always @ (_read or address)
if(_read)
data《=8‘bzzzzzzzz;
else
case(address)
10’h000:data《=8‘ha8;
10’h001:data《=8‘h91;
…………………
10’h3fe:data《=8‘h87;
10’h3ff:data《=8‘h65;
endcase
endmodule
圖10、11是其仿真波形。圖中reset為復位信號;stop為鎖定信號;clk為CPU的外部時鐘;clk1是clk的2分頻信號為CPU讀取數(shù)據(jù),產(chǎn)生地址等提供時鐘;read也是clk的2分頻信號(相位和clk1相差π/2),為外部ROM提供讀使能,同時為CPU提供寄存器控制的時鐘;address為外部ROM地址總線;rom.data[7..0]為外部ROM送出的數(shù)據(jù)。
責任編輯:gt
評論
查看更多