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