《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 一種可編程的全數(shù)字鎖相環(huán)路的實現(xiàn)

一種可編程的全數(shù)字鎖相環(huán)路的實現(xiàn)

2008-08-04
作者:徐 躍 王 奇 何秋陽

??? 摘 要: 介紹了一種基于FPGA可編程技術實現(xiàn)的用于無線通信實驗系統(tǒng)的全數(shù)字" title="全數(shù)字">全數(shù)字鎖相環(huán)路" title="鎖相環(huán)路">鎖相環(huán)路。詳細敘述了其工作原理、工作性能、電路實現(xiàn)和仿真結果。
??? 關鍵詞:? FPGA? 全數(shù)字鎖相環(huán)路? VHDL語言

?

??? 鎖相環(huán)路已在模擬和數(shù)字通信及無線電電子學等各個領域中得到了極為廣泛的應用,特別是在數(shù)字通信的調制解調和位同步中常常要用到各種各樣的鎖相環(huán)。鎖相就是利用輸入信號與輸出信號之間的相位誤差自動調節(jié)輸出相位使之與輸入相位一致,或保持一個很小的相位差。最初的鎖相環(huán)全部由模擬電路組成,隨著大規(guī)模、超高速數(shù)字集成電路的發(fā)展及計算機的普遍應用,出現(xiàn)了全數(shù)字鎖相環(huán)路。所謂全數(shù)字鎖相環(huán)路,就是環(huán)路部件全部數(shù)字化,采用數(shù)字鑒相器" title="鑒相器">鑒相器(DPD)、數(shù)字環(huán)路濾波器(DLF)、數(shù)控振蕩器" title="數(shù)控振蕩器">數(shù)控振蕩器(DCO)構成鎖相環(huán)路。在用Altera公司的EPF10K10TC144-3芯片設計一種無線通信實驗系統(tǒng)的FSK、DPSK、QAM調制解調器時,利用剩余的10%FPGA資源設計出了一種可編程全數(shù)字鎖相環(huán)路,它成功地為該通信實驗系統(tǒng)的調制解調器提供了64kHz、56kHz和16kHz三種精確、穩(wěn)定的時鐘信號。
1 全數(shù)字鎖相環(huán)的電路設計
1.1 DPLL工作原理分析[1]

??? 所設計的全數(shù)字鎖相環(huán)路的結構如圖1所示。其中,數(shù)字鑒相器由異或門EXOR構成,數(shù)字環(huán)路濾波器由變模可逆計數(shù)器Q構成,數(shù)控振蕩器由加/減脈沖控制器" title="脈沖控制器">脈沖控制器I/D和模N計數(shù)器組成。可逆計數(shù)器和加/減脈沖控制器的時鐘頻率分別是Mf0和2Nf0。這里f0是環(huán)路的中心頻率,為64kHz。Mf0等于14336kHz,由晶振電路產生,它經模H計數(shù)器分頻后得到2Nf0的時鐘頻率。異或門鑒相器用于比較輸入信號IN64與數(shù)控振蕩器輸出信號OUT64的相位差,其輸出信號ud作為可逆計數(shù)器的計數(shù)方向控制信號。當ud為低電平時,可逆計數(shù)器作“加”計數(shù);反之,可逆計數(shù)器作“減”計數(shù)。當環(huán)路鎖定時,IN64和OUT64正交,鑒相器的輸出信號ud為50%占空比的方波。在這種情況下,可逆計數(shù)器“加”與“減”的周期相同,只要可逆計數(shù)器的模值K足夠大(K>M/4),其輸出端就不會產生進位或借位脈沖。這時,加/減脈沖控制器只對頻率為2Nf0的時鐘進行二分頻,使IN64和OUT64的相位保持正交。在環(huán)路未鎖定的情況下,若ud為低電平時,可逆計數(shù)器進行加計數(shù),并產生進位脈沖作用到加/減脈沖控制器的“加”控制端INC,該控制器便在二分頻過程中加入半個時鐘周期;反之,若ud為高電平,可逆計數(shù)器進行減計數(shù),并產生借位脈沖作用到加/減脈沖控制器的“減”輸入端DEC,該控制器便在二分頻的過程中減去半個時鐘周期,這個過程是連續(xù)發(fā)生的。加/減脈沖控制器的輸出經過模N計數(shù)器分頻后,得到輸出信號OUT64,它的相位不斷受到調整控制,最終達到鎖定狀態(tài)。最后只要對OUT64進行4分頻就能得到16kHz的輸出信號OUT16,對加/減脈沖控制器的輸出進行P分頻就能得到56kHz的輸出信號OUT56。

?


??? 該全數(shù)字鎖相環(huán)的三個輸出信號的頻率分別為64kHz、56kHz和16kHz,經過計算可確定鎖相環(huán)的參數(shù)M、N和P。設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ù)字鑒相器由異或門構成,并使用VHDL語言編程來實現(xiàn)。異或鑒相器比較輸入信號IN64和輸出信號OUT64之間的相位差,輸出誤差信號ud作為可逆計數(shù)器Q的計數(shù)方向信號。環(huán)路鎖定時,ud為一個占空比為50%的方波,此時的絕對相位差為90°,因此異或鑒相器相位差極限為±90°。
1.2.2 數(shù)字環(huán)路濾波器[2]
??? 數(shù)字環(huán)路濾波器由變模可逆計數(shù)器Q構成。在ud的控制下,當j=0時,Q對時鐘Mf0進行“加”計數(shù);當j=1時,Q對時鐘Mf0進行“減”計數(shù)。可逆計數(shù)器的模數(shù)K可以通過Ka、Kb、Kc、Kd四個輸入端進行預置,當Ka、Kb、Kc、Kd在0001~1110取值時,相應模數(shù)的變化范圍是23~216。數(shù)字環(huán)路濾波器用VHDL語言編程實現(xiàn),其程序如下:
??? library ieee;
??? use ieee.std_logic_1164.all;
??? use ieee.std_logic_unsigned.all;
??? entity count_zj is
??? port(clk1,j,Kd,Kc,Kb,Ka,en:in std_logic;INC,DEC:out std_logic);
??? End count_zj;
??? architecture behave of count_zj is
??? signal cq,k,mo,k2,mo2,cq1:std_logic_vector(16 downto 0);
??? signal cao1,cao2,cao11,cao22,cao111,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',
???????? ???'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 others;
??? with aa select
??? mo2 < =?'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 others;
??? process(clk1,j,mo,en)
??? ? ?begin
??????? ???if (clk1'event and clk1='1') then
???????????? k<=mo;
???????????? k2<=mo+1;
???? ?if (en='0') then
??????????????? cq<='00000000000000000';
???????????? ? ?cq1<=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';
??????????? ????cq1<=cq1+'1';
??? ???end if;
??? elsif (j='1') then
?????? if (cq1=k2) then
????????????????cao1<='0';
??????????? ????cao2<='1';
???????????? ???cq1<=mo2;
????? ?else
??????????? ????cao1<='0';
??????????? ????cao2<='0';
??????????? ????cq<=cq-'1';
??????????? ????cq1<=cq1-'1';
???????? end if;
?????? end if;
???? end if;
???? end if;
??? end process;
??? process(clk1,cao1)
??? begin
??????? cao111<=cao11 or cao1;
??????? if(clk1'event and clk1='1') then
????????????? if (cao111='1')then
??????????????cao11<='1';
??????????? ??if (q1='1111') then
??????????? ??cao11<='0';
??????????? ??q1<='0000';
??????????? ??else
??????????????q1<=q1+'1';
??????????? ??end if;
??????????? ??end if;
??????????? ??end if;
??? end process;
??? process(clk1,cao2)
??? begin
?????? cao222<=cao22 or cao2;
?????? if(clk1'event and clk1='1') then
?????? if (cao222='1')then
??????????? ??cao22<='1';
??????????? ??if (q2='1111') then
??????????? ??cao22<='0';
??????????? ??q2<='0000';
??????????? ??else
??????????? ??q2<=q2+'1';
?????????????? ???end if;
?????????????? ???end if;
??????????? ??end if;
????? ?end process;
?????? INC<=cao111;
??? DEC<=cao222;
??? end behave;
1.2.3 數(shù)控振蕩器[3]
??? 數(shù)控振蕩器采用加/減脈沖控制器I/D和模N計數(shù)器實現(xiàn),它的輸出是一脈沖序列,周期受數(shù)字環(huán)路濾波器送來的進位或借位校正信號控制。圖2是加/減脈沖控制器硬件電路圖,該電路由四片7474芯片和一片JK觸發(fā)器以及其它一些邏輯門構成。

?

1.3 DPLL工作性能分析[4]
??? 可逆計數(shù)器Q可看作一個模K分頻器,其輸出頻率為:
?? ?fQout=(KeΦeMf0)/K (Hz)?????????????????? (1)
式中,Φe為相位差,Ke為其系數(shù)。
??? 加/減脈沖控制器I/D的輸出頻率為:
??? fI/Dout=Nf0+(KeΦeMf0)/(2K) (Hz)?????????? (2)
??? 經模N計數(shù)器分頻后,鎖相環(huán)路的輸出信號OUT64的頻率為:
??? fOUT64=f0+(KeΦeMf0)/(2KN) (Hz)??????????? (3)
??? 由于鎖定的極限范圍為KeΦe=±1,所以從公式(3)可以得到環(huán)路的捕捉帶:
??? Δfmax=(fOUT64)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ù)會產生進位或借位脈沖,從而導致了相位抖動,增加了同步誤差。為了減少這種相位抖動,K值必須大于M/4。但K值取得太大會延長環(huán)路鎖定時間和減小捕捉帶,因此選擇一個適當?shù)腒值相當重要。
2 全數(shù)字鎖相環(huán)仿真驗證與分析
2.1 鎖定時間

??? 變模可逆計數(shù)器的模數(shù)K對DPLL的鎖定時間起著關鍵的作用。圖3為K=26時DPLL的輸出仿真波形。環(huán)路達到鎖定狀態(tài)的仿真時間為371.3μs,而K=28時環(huán)路達到鎖定狀態(tài)的仿真時間為1.54ms。由此可見,模K越大,環(huán)路進入鎖定狀態(tài)的時間越長。

?


2.2 捕捉帶
??? 根據(jù)公式(4)可以得到這樣的結論:模數(shù)K越大,捕捉帶就越小。在本設計中,模數(shù)K的變化范圍是26~216,相應捕捉帶的范圍是32kHz~85.3kHz。
2.3 同步帶
??? 在本設計中,中心頻率為64kHz。將輸入信號頻率偏移該中心頻率,恰能使DPLL鎖定的頻率范圍為同步帶。經過測試,同步帶范圍是63.82kHz~64.1kHz。圖4顯示的是DPLL在同步帶上邊界時的鎖定波形。

?


2.4 DPLL系統(tǒng)仿真結果
??? DPLL的系統(tǒng)仿真結果如圖5所示。圖中所顯示的OUT16、OUT56、OUT64輸出信號符合設計要求。

?


??? DPLL設計的關鍵技術集中在數(shù)字環(huán)路濾波器和數(shù)控振蕩器上。數(shù)字環(huán)路濾波器可以看成模數(shù)K可預置的可逆計數(shù)器,這個可逆計數(shù)器與其它計數(shù)器最大的區(qū)別是“加”與“減”的計數(shù)值能夠相互抵消,因為只有這樣才能保證可逆計數(shù)器“加”和“減”的周期相同時,其輸出端不會產生進位或借位脈沖。另外,模數(shù)K的選擇非常重要,要綜合考慮捕捉時間和同步誤差相矛盾的問題。在數(shù)控振蕩器的設計中,要注意輸入的進位和借位脈沖信號周期不能太小,否則就不能對數(shù)控振蕩器起作用,必須擴大輸入的進位和借位脈沖信號的時鐘周期。本設計是將其擴大了16倍。
參考文獻
1 胡華春, 石 玉.數(shù)字鎖相環(huán)路原理與應用.上海:上海科學技術出版社,1990
2 龐 浩.一種新型的全數(shù)字鎖相環(huán).中國電機工程學報,2003;23(2)
3 龔建榮,李曉飛.利用FPGA實現(xiàn)數(shù)字鎖相及頻率轉換.南京郵電學院學報,1998;18(4)
4 張振華, 張興周.一種用可編程邏輯器件實現(xiàn)的全數(shù)字鎖相環(huán)路.四川通信技術,2000;30(6)

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美1区2区3区| 欧美日韩在线高清| 一区二区国产日产| 亚洲第一中文字幕在线观看| 亚洲欧美激情诱惑| 一区二区三区四区国产| 亚洲韩日在线| 在线免费观看一区二区三区| 黑人中文字幕一区二区三区 | 欧美日韩国产另类不卡| 久久综合久久综合久久综合| 久久精品九九| 欧美一区二区三区视频在线观看| 亚洲欧美成人| 亚洲一区精品在线| 亚洲一区免费在线观看| 亚洲宅男天堂在线观看无病毒| 欧美日韩专区在线| 在线视频亚洲欧美| 一本色道久久综合亚洲精品按摩| 野花国产精品入口| 99在线精品视频| 亚洲图片欧洲图片日韩av| 亚洲性xxxx| 亚洲欧美中日韩| 欧美影片第一页| 欧美制服丝袜| 久久精品国内一区二区三区| 久久一区二区精品| 蜜臀av一级做a爰片久久 | 欧美在线精品一区| 久久国产欧美日韩精品| 久久精品观看| 久热精品视频| 欧美成人精品激情在线观看| 欧美裸体一区二区三区| 欧美亚洲不卡| 国产麻豆精品久久一二三| 国产最新精品精品你懂的| 一区精品久久| 亚洲人成在线观看一区二区| 亚洲视频在线视频| 欧美诱惑福利视频| 最新高清无码专区| 91久久精品日日躁夜夜躁欧美 | 亚洲一区免费视频| 一区二区三区高清在线| 亚洲一区久久| 久久精品视频在线观看| 老司机67194精品线观看| 欧美精品一区二| 国产精品色婷婷| 伊人久久久大香线蕉综合直播| 亚洲精品女人| 亚洲欧美经典视频| 亚洲人人精品| 午夜国产精品视频| 久久一区二区精品| 欧美日韩一本到| 国产午夜精品视频| 91久久综合| 亚洲一区二区四区| 亚洲国产高清视频| 亚洲视频一起| 久久中文字幕一区| 欧美日韩一区二区精品| 国产一区二区欧美日韩| 亚洲风情亚aⅴ在线发布| 中文日韩欧美| 亚洲第一页在线| 亚洲一二区在线| 久久综合亚洲社区| 欧美性做爰猛烈叫床潮| 黄色工厂这里只有精品| 日韩一区二区免费高清| 久久黄色级2电影| 亚洲午夜一区| 免费在线观看一区二区| 国产精品美女久久久久久免费 | 好看的日韩视频| 99精品热6080yy久久 | 亚洲黄色成人久久久| 亚洲女爱视频在线| 免费在线一区二区| 国产伦精品一区二区三区高清版 | 亚洲高清不卡一区| 亚洲欧美日本视频在线观看| 欧美xart系列在线观看| 国产婷婷色综合av蜜臀av| 日韩视频在线一区| 亚洲国产高清一区| 久久精品99国产精品| 欧美日韩午夜剧场| 影音先锋中文字幕一区| 亚洲欧美日韩精品久久久久| 一区二区三区鲁丝不卡| 欧美va日韩va| 激情视频一区二区| 性久久久久久久久久久久| 亚洲午夜av| 欧美精品激情| 亚洲第一中文字幕| 久久精品导航| 久久精品噜噜噜成人av农村| 国产精品免费一区二区三区观看| 亚洲人成欧美中文字幕| 亚洲区第一页| 久热精品视频在线免费观看| 国产一区深夜福利| 午夜日韩电影| 欧美一级午夜免费电影| 国产精品r级在线| 一本色道久久88综合日韩精品| 亚洲免费成人| 欧美精品在线视频观看| 亚洲第一黄网| 亚洲国产精品一区二区尤物区| 久久久噜噜噜久噜久久| 国产欧美日韩在线视频| 亚洲摸下面视频| 欧美亚洲在线观看| 国产精品永久免费视频| 亚洲欧美视频在线观看视频| 午夜日韩福利| 国产精品婷婷| 亚洲欧美日韩成人高清在线一区| 亚洲在线中文字幕| 国产精品免费观看在线| 亚洲视频在线看| 羞羞答答国产精品www一本| 国产精品视频久久一区| 亚洲欧美日韩第一区| 欧美在线亚洲在线| 国产日韩欧美不卡| 欧美中文字幕在线播放| 久久综合久久久| 亚洲国产成人在线| 99国产精品久久| 欧美日韩中文字幕精品| 一区二区欧美国产| 亚洲一区国产视频| 国产欧美日韩另类一区 | 午夜精品久久久久久| 国产精品人人做人人爽| 午夜精品久久久久久久蜜桃app| 久久国内精品视频| 韩国精品主播一区二区在线观看| 亚洲二区免费| 欧美激情综合色| 中文精品视频| 久久精品动漫| 亚洲国产精品一区二区www在线| 日韩一级裸体免费视频| 欧美日韩一区免费| 亚洲欧美日韩国产中文| 噜噜爱69成人精品| 亚洲精品久久久蜜桃| 亚洲制服欧美中文字幕中文字幕| 国产九九视频一区二区三区| 久久精品亚洲一区二区三区浴池| 欧美顶级艳妇交换群宴| 夜夜爽av福利精品导航| 欧美一激情一区二区三区| 伊人久久久大香线蕉综合直播| 一本大道久久精品懂色aⅴ| 国产精品乱码一区二区三区| 久久精品动漫| 欧美日韩福利在线观看| 亚洲影视综合| 免费在线欧美视频| 在线视频精品一区| 久久久精品久久久久| 亚洲美女福利视频网站| 欧美在线视频在线播放完整版免费观看 | 激情欧美一区| 在线视频一区观看| 国产一区二区三区久久精品| 日韩亚洲欧美综合| 国产欧美大片| 日韩视频在线一区二区| 国产日韩欧美电影在线观看| 99精品欧美一区二区三区综合在线| 国产精品蜜臀在线观看| 亚洲精品乱码| 国产乱人伦精品一区二区| 亚洲美女av黄| 国产人成精品一区二区三| 日韩视频精品在线| 国产九区一区在线| 一区二区三区日韩欧美精品| 国产永久精品大片wwwapp| 亚洲小视频在线观看| 伊人色综合久久天天| 性欧美1819sex性高清| 91久久精品美女高潮| 久久精品成人| 亚洲午夜免费视频| 欧美久久成人| 亚洲第一搞黄网站| 国产精品日韩二区|