- 相關(guān)推薦
一種可編程的全數(shù)字鎖相環(huán)路的實現(xiàn)
摘要:介紹了一種基于FPGA可編程技術(shù)實現(xiàn)的用于無線通信實驗系統(tǒng)的全數(shù)字鎖相環(huán)路。詳細敘述了其工作原理、工作性能、電路實現(xiàn)和仿真結(jié)果。關(guān)鍵詞:FPGA 全數(shù)字鎖相環(huán)路 VHDL語言
鎖相環(huán)路已在模擬和數(shù)字通信及無線電電子學(xué)等各個領(lǐng)域中得到了極為廣泛的應(yīng)用,特別是在數(shù)字通信的調(diào)制解調(diào)和位同步中常常要用到各種各樣的鎖相環(huán)。鎖相就是利用輸入信號與輸出信號之間的相位誤差自動調(diào)節(jié)輸出相位使之與輸入相位一致,或保持一個很小的相位差。最初的鎖相環(huán)全部由模擬電路組成,隨著大規(guī)模、超高速數(shù)字集成電路的發(fā)展及計算機的普遍應(yīng)用,出現(xiàn)了全數(shù)字鎖相環(huán)路。所謂全數(shù)字鎖相環(huán)路,就是環(huán)路部件全部數(shù)字化,采用數(shù)字鑒相器(DPD)、數(shù)字環(huán)路濾波器(DLF)、數(shù)控振蕩器(DCO)構(gòu)成鎖相環(huán)路。在用Altera公司的EPFl0K10TCl44-3芯片設(shè)計一種無線通信實驗系統(tǒng)的FSK、DPSK、QAM調(diào)制解調(diào)器時,利用剩余的10%FPGA資源設(shè)計出了一種可編程全數(shù)字鎖相環(huán)路,它成功地為該通信實驗系統(tǒng)的調(diào)制解調(diào)器提供了64kHz、56kHz和16kHz三種精確、穩(wěn)定的時鐘信號。
1 全數(shù)字鎖相環(huán)的電路設(shè)計
1.1 DPLL工作原理分析
所設(shè)計的全數(shù)字鎖相環(huán)路的結(jié)構(gòu)如圖1所示。其中,數(shù)字鑒相器由異或門EXOR構(gòu)成,數(shù)字環(huán)路濾波器由變?赡嬗嫈(shù)器Q構(gòu)成,數(shù)控振蕩器由加/減脈沖控制器I/D和模N計數(shù)器組成?赡嬗嫈(shù)器和加/減脈沖控制器的時鐘頻率分別是Mf0和2Nf0。這里f0是環(huán)路的中心頻率,為64kHz。Mf0等于14336kHz,由晶振電路產(chǎn)生,它經(jīng)模H計數(shù)器分頻后得到2Nf0的時鐘頻率。異或門鑒相器用于比較輸入信號IN64與數(shù)控振蕩器輸出信號OUT64的相位差,其輸出信號ud作為可逆計數(shù)器的計數(shù)方向控制信號。當(dāng)ud為低電平時,可逆計數(shù)器作“加”計數(shù);反之,可逆計數(shù)器作“減”計數(shù)。當(dāng)環(huán)路鎖定時,IN64和OUT64正交,鑒相器的輸出信號ud為50%占空比的方波。在這種情況下,可逆計數(shù)器“加”與“減”的周期相同,只要可逆計數(shù)器的模值K足夠大(K>M/4),其輸出端就不會產(chǎn)生進位或借位脈沖。這時,加/減脈沖控制器只對頻率為2Nf0的時鐘進行二分頻,使IN64和OUT64的相位保持正交。在環(huán)路未鎖定的情況下,若ud為低電平時,可逆計數(shù)器進行加計數(shù),并產(chǎn)生進位脈沖作用到加/減脈沖控制器的“加”控制端INC,該控制器便在二分頻過程中加入半個時鐘周期;反之,若ud為高電平,可逆計數(shù)器進行減計數(shù),并產(chǎn)生借位脈沖作用到加/減脈沖控制器的“減”輸入端DEC,該控制器便在二分頻的過程中減去半個時鐘周期,這個過程是連續(xù)發(fā)生的。加/減脈沖控制器的輸出經(jīng)過模N計數(shù)器分頻后,得到輸出信號OUT64,它的相位不斷受到調(diào)整控制,最終達到鎖定狀態(tài)。最后只要對OUT64進行4分頻就能得到16kHz的輸出信號OUTl6,對加/減脈沖控制器的輸出進行P分頻就能得到56kHz的輸出信號OUT56。
圖1
該全數(shù)字鎖相環(huán)的三個輸出信號的頻率分別為64kHz、56kHz和16kHz,經(jīng)過計算可確定鎖相環(huán)的參數(shù)M、N和P。設(shè)H=8,因為Mf0=14336kHz=4×4×2×7×64kHz,故M=4×4×2×7=224。因為2Nf0=Mf0/H=4×4×2×7×64kHz/8=2×2×7×64kHz=2×2×8×56kHz,故N=14、P=16。
1.2 DPLL電路實現(xiàn)
1.2.1 數(shù)字鑒相器
數(shù)字鑒相器由異或門構(gòu)成,并使用VHDL語言編程來實現(xiàn)。異或鑒相器比較輸入信號IN64和輸出信號OUT64之間的相位差,輸出誤差信號ud作為可逆計數(shù)器Q的計數(shù)方向信號。環(huán)路鎖定時,ud為一個占空比為50%的方波,此時的絕對相位差為90°,因此異或鑒相器相位差極限為±90°。
圖2
1.2.2 數(shù)字環(huán)路濾波器
數(shù)字環(huán)路濾波器由變?赡嬗嫈(shù)器Q構(gòu)成。在ud的控制下,當(dāng)j=0時,Q對時鐘Mf0進行“加”計數(shù);當(dāng)j=1時,Q對時鐘Mf0進行“減”計數(shù)?赡嬗嫈(shù)器的模數(shù)K可以通過Ka、Kb、Kc、Kd四個輸入端進行預(yù)置,當(dāng)Ka、Kb、Kc、Kd在0001~1110取值時,相應(yīng)模數(shù)的變化范圍是2 3~2 16。數(shù)字環(huán)路濾波器用VHDL語言編程實現(xiàn),其程序如下:
library ieee;
use ieee.std_logic_1164.a(chǎn)ll;
use ieee.std_logic_unsigned.a(chǎn)ll;
entity count_zj is
port(clkl,j,Kd,Kc,Kb,Ka,en:in std_logic;
INC,DEC:out std_logic);
End count_zj;
architecture behave Of eonnt_zj is
signal cq,k,mo
,k2,mo2,cql:std_logic_vector(16 downto 0);
signal caol,cao2,caoll,cao22,caolll,cao222:std_logic;
signal instruction,aa,q1,q2:std_lOgic_vector(3 downto 0);
begin
instruction<=Kd & Kc & Kb & Ka;
aa<=instruction+1;
with instruction select
mo<=“00000000000000111”when“0001”,
“0000000000000t111”when“0010”,
“000(0)0(000~11111”when“0011”,
“00000000000111111”when“0100”,
“00000000001111111”when“0101”,
“00000000011111111”when“0110”,
“00000000111111111”when“0111”,
“00000001111111111”when“1000”,
“00000011111111111”when“1001”,
“00000111111111111”when“1010”,
“00001111111111111”when“1011”,
“00011111111111111”when“1100”,
“00111111111111111”when“1101”,
“01111111111111111”when“1110”,
“11111111111111111”when“1111”,
“00000000000000111”when others;
with aa select
m02<=“00000000000000111”when“0001”,
“00000000000001111”when“0010”,
“00000000000011111”when“0011”,
“00000000000111111”when“0100”,
“00000000001111111”when“0101”,
“00000000011111111”when“0110”,
“00000000111111111”when“0111”,
“00000001111111111”when“1000”,
“00000011111111111”when“1001”,
“00000111111111111”when“1010”,
“00001111111111111”when“1011”,
“00011111111111111”when“1100”,
“00111111111111111”when“1101”,
“01111111111111111”when“1110”,
“11111111111111111”when“1111”,
“00000000000000111”when othels;
process(clkl,j,mo,en)
begin
if(clkl’event and clkl=‘1’)then
k<=mo;
k2<=mo+1;
if(ell=‘0’)then
cq<=“00000000000000000”;
cql<=mo2;
elSe
if(j=‘0’)then
if(cq=k)then
cao1<=‘1’;
cao2<=‘0’;
cq<=(others=>‘0’);
elSe
cao1<=‘0’;
cao2<=‘0’;
cq<=cq+‘1’;
cql<=cql+‘1’;
end if;
elsif(j=‘1’)then
if(cql=k2)theH
cao1<=‘0’;
cao2<=‘1’;
cql<=mo2;
elSe
cao1<=‘O’;
cao2<=‘O’;
cq<=cq-‘1’;
cql<=cql-‘1’;
end if;
end if;
end if;
end if;
end process;
process(clkl,cao1)
begin
cao111<=cao11 or cao1
if(clkl’event and clkl=‘1’)then
if(cao111=‘1’)then
ca011<=‘1’;
if(q1=“1111”)then
cao11<=‘O’;
q1<=“0000”;
elSe
q1<=q1+‘1’;
end if;
end if;
end if;
end process;
process(clkl,cao2)
beSin
cao222<=cao22 or cao2;
if(clkl’event and clkl=‘1’)then
if(ca0222=‘1’)then
cao22<=‘1’;
if(q2=“1111”)then
cao22<=‘0’;
q2<=“0000”;
e1Se
q2<=q2+‘1’;
end if;
eHd if;
end if;
end process;
INC<=gao11;
DEC<=cao222;
end behave;
1.2.3 數(shù)控振蕩器
數(shù)控振蕩器采用加/減脈沖控制器I/D和模N計數(shù)器實現(xiàn),它的輸出是一脈沖序列,周期受數(shù)字環(huán)路濾波器送來的進位或借位校正信號控制。圖2是加/減脈沖控制器硬件電路圖,該電路由四片7474芯片和一片JK觸發(fā)器以及其它一些邏輯門構(gòu)成。
(范文先生網(wǎng)m.panasonaic.com收集整理)
1.3 DPLL工作性能分析
可逆計數(shù)器Q可看作一個模K分頻器,其輸出頻率為:
fQout=(KeΦeMf0)/K(Hz) (1)
式中,Φe為相位差,Ke為其系數(shù)。
加/減脈沖控制器I/D的輸出頻率為:
fI/Dout=Nf0+(KeΦeMf0)/(2K)(Hz) (2)
經(jīng)模N計數(shù)器分頻后,鎖相環(huán)路的輸出信號OUT64的頻率為:
fouT64=f0+(KeΦeMf0)/(2KN)(Hz) (3)
由于鎖定的極限范圍為KeΦe=±1,所以從公式(3)可以得到環(huán)路的捕捉帶:
△fmax=(ffouT64)max-f0=Mf0(2KN)(Hz) (4)
上式表明,M和N確定后,變化可逆計數(shù)器Q的模K可以改變環(huán)路的捕捉帶。
環(huán)路處于鎖定狀態(tài)時,環(huán)路輸出頻率fouT64必定和輸入信號的頻率fIN64相等,但同時存在一個穩(wěn)態(tài)相位誤差。由式(3)可得:
Φe(∞)=2KN(fIN64-f0)/(KeMf0) (5)
值得注意的是,即使環(huán)路在鎖定狀態(tài)下,如果K值取得太小,則可逆計數(shù)器因頻繁的循環(huán)計數(shù)會產(chǎn)生進位或借位脈沖,從而導(dǎo)致了相位抖動,增加了同步誤差。為了減少這種相位抖動,K值必須大于M/4。但K值取得太大會延長環(huán)路鎖定時間和減小捕捉帶,因此選擇一個適當(dāng)?shù)腒值相當(dāng)重要。
圖4
2 全數(shù)字鎖相環(huán)仿真驗證與分析
2.1 鎖定時間
變?赡嬗嫈(shù)器的模數(shù)K對DPLL的鎖定時間起著關(guān)鍵的作用。圖3為K=2 6時DPLL的輸出仿真波形。環(huán)路達到鎖定狀態(tài)的仿真時間為371.3μs,而K=2 8時環(huán)路達到鎖定狀態(tài)的仿真時間為1.54ms。由此可見,模K越大,環(huán)路進入鎖定狀態(tài)的時間越長。
2.2 捕捉帶
根據(jù)公式(4)可以得到這樣的結(jié)論:模數(shù)K越大,捕捉帶就越小。在本設(shè)計中,模數(shù)K的變化范圍是2 6~2 16,相應(yīng)捕捉帶的范圍是32kHz~85.3kHz。
2.3 同步帶
在本設(shè)計中,中心頻率為64kHz。將輸入信號頻率偏移該中心頻率,恰能使DPLL鎖定的頻率范圍為同步帶。經(jīng)過測試,同步帶范圍是63.82kHz~64.1kHz。圖4顯示的是DPLL在同步帶上邊界時的鎖定波形。
2.4 DPLL系統(tǒng)仿真結(jié)果
DPLL的系統(tǒng)仿真結(jié)果如圖5所示。圖中所顯示的OUTl6、OUT56、OUT64輸出信號符合設(shè)計要求。
DPLL設(shè)計的關(guān)鍵技術(shù)集中在數(shù)字環(huán)路濾波器和數(shù)控振蕩器上。數(shù)字環(huán)路濾波器可以看成模數(shù)K可預(yù)置的可逆計數(shù)器,這個可逆計數(shù)器與其它計數(shù)器最大的區(qū)別是“加”與“減”的計數(shù)值能夠相互抵消,因為只有這樣才能保證可逆計數(shù)器“加”和“減”的周期相同時,其輸出端不會產(chǎn)生進位或借位脈沖。另外,模數(shù)K的選擇非常重要,要綜合考慮捕捉時間和同步誤差相矛盾的問題。在數(shù)控振蕩器的設(shè)計中,要注意輸入的進位和借位脈沖信號周期不能太小,否則就不能對數(shù)控振蕩器起作用,必須擴大輸入的進位和借位脈沖信號的時鐘周期。本設(shè)計是將其擴大了16倍。
【一種可編程的全數(shù)字鎖相環(huán)路的實現(xiàn)】相關(guān)文章:
一種簡易數(shù)字波形存儲器的實現(xiàn)08-06
一種數(shù)字語音通信系統(tǒng)的DSP實現(xiàn)08-06
鍵控技術(shù)的數(shù)字實現(xiàn)與發(fā)展08-06
新型數(shù)字化可編程頻率合成器08-06
在Protel99SE下實現(xiàn)可編程邏輯器件設(shè)計08-06
在系統(tǒng)可編程通用數(shù)字開關(guān)ispGDS14的原理及應(yīng)用08-06