<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 寬頻帶數(shù)字鎖相環(huán)的設(shè)計(jì)及基于FPGA的實(shí)現(xiàn)

          寬頻帶數(shù)字鎖相環(huán)的設(shè)計(jì)及基于FPGA的實(shí)現(xiàn)

          ——
          作者:西安工程大學(xué) 李曉東 時(shí)間:2007-02-12 來(lái)源:電子產(chǎn)品世界 收藏

          摘要: 本文簡(jiǎn)要介紹了在FPGA中實(shí)現(xiàn)全()的原理與方法,以解決在同步串行數(shù)據(jù)通信時(shí)的同步時(shí)鐘不穩(wěn)定時(shí)的快速恢復(fù)問(wèn)題; 并重點(diǎn)介紹了采用可控模數(shù)分頻器實(shí)現(xiàn)的捕獲的方法與實(shí)現(xiàn)過(guò)程。

          關(guān)鍵詞;FPGA;數(shù)字環(huán)路濾波器;時(shí)鐘恢復(fù);

          引言

          ()技術(shù)在數(shù)字通信、無(wú)線電電子學(xué)等眾多領(lǐng)域得到了極為廣泛的應(yīng)用。與傳統(tǒng)的模擬電路實(shí)現(xiàn)的PLL相比,DPLL具有精度高、不受溫度和電壓影響、環(huán)路帶寬和中心頻率編程可調(diào)、易于構(gòu)建高階鎖相環(huán)等優(yōu)點(diǎn)。隨著集成電路技術(shù)的發(fā)展,不僅能夠制成頻率較高的單片集成鎖相環(huán)路,而且可以把整個(gè)系統(tǒng)集成到一個(gè)芯片上去。在基于FPGA的通信電路中,可以把全數(shù)字鎖相環(huán)路作為一個(gè)功能模塊嵌入FPGA中,構(gòu)成片內(nèi)鎖相環(huán)。一般同步串行口通信方式的同步串行口之間的數(shù)據(jù)傳輸除了數(shù)據(jù)線外還必須有專門的同步時(shí)鐘線,這種連接方式不但需要增加一條線路,同步性能受環(huán)境的影響還較大。利用數(shù)字鎖相環(huán)可以從串行位流數(shù)據(jù)中恢復(fù)出接收位同步時(shí)鐘。這樣,串行口之間只用一根數(shù)據(jù)線就可以接收同步串行數(shù)據(jù),簡(jiǎn)化了串行口的接口關(guān)系。本文介紹基于FPGA數(shù)字鎖相環(huán)恢復(fù)串行數(shù)據(jù)位同步時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)及提高數(shù)字鎖相環(huán)性能的措施。

          DPLL結(jié)構(gòu)及工作原理

          全數(shù)字鎖相環(huán)路(DPLL)的基本結(jié)構(gòu)如圖1所示。主要由鑒相器DPD、數(shù)字環(huán)路濾波器DLF、脈沖加減電路(數(shù)控振蕩器 DCO)和分頻器(可控變模N)四部分構(gòu)成。脈沖加減電路的時(shí)鐘分別為2Nfc,fc為環(huán)路中心頻率。DPLL是一種相位反饋控制系統(tǒng)。它根據(jù)輸入信號(hào)fin與本地恢復(fù)時(shí)鐘fout之間的相位誤差(超前還是滯后)信號(hào)送入數(shù)字環(huán)路濾波器DLF 中對(duì)相位誤差信號(hào)進(jìn)行平滑濾波,并生成控制DCO 動(dòng)作的控制信號(hào)DCS,DCO 根據(jù)控制信號(hào)給出的指令,調(diào)節(jié)內(nèi)部高速振蕩器的震蕩頻率,通過(guò)連續(xù)不斷的反饋調(diào)節(jié),使其輸出時(shí)鐘fout的相位跟蹤輸入數(shù)據(jù)fin的相位。

          圖1 全數(shù)字鎖相環(huán)基本結(jié)構(gòu)

          環(huán)路模塊具體功能及其電路實(shí)現(xiàn)

          數(shù)字鑒相器的設(shè)計(jì)

          常用的鑒相器有兩種,異或門(XOR)鑒相器和邊沿控制鑒相器(ECPD)。與一般DPLL的DPD設(shè)計(jì)不同,位同步DPLL的DPD需要排除位流數(shù)據(jù)輸入連續(xù)幾位碼值保持不變的不利影響。本文采用改進(jìn)型異或門鑒相器,它輸出一個(gè)表示本地恢復(fù)時(shí)鐘超前或滯后于輸入信號(hào)的相位誤差。如果本地恢復(fù)時(shí)鐘超前于輸入信號(hào),則超前/滯后脈沖UD輸出為高電平,反之UD輸出為低電平,如圖2所示。

          圖2 改進(jìn)型異或門鑒相器的原理圖及工作波形圖

          可見(jiàn),在輸出信號(hào)Fout為超前、滯后和同步于Fin時(shí),PE脈沖的前沿距離Fin的上升沿相位是不等的。

          數(shù)字環(huán)路濾波器的設(shè)計(jì)

          數(shù)字環(huán)路濾波器(DLF)作用是消除鑒相器輸出的相位差信號(hào)PE中的高頻成分,保證環(huán)路的性能穩(wěn)定,實(shí)際上可用一變??赡嬗?jì)數(shù)器(設(shè)模數(shù)為K)來(lái)實(shí)現(xiàn)。K變??赡嬗?jì)數(shù)器根據(jù)相差信號(hào)PE來(lái)進(jìn)行加減運(yùn)算。當(dāng)PE為高電平時(shí),計(jì)數(shù)器進(jìn)行加運(yùn)算,如果相加的結(jié)果達(dá)到預(yù)設(shè)的模值,則輸出一個(gè)進(jìn)位脈沖信號(hào)DP給脈沖加減電路;當(dāng)PE為低電平時(shí),計(jì)數(shù)器進(jìn)行減運(yùn)算,如果結(jié)果為零,則輸出一個(gè)借位脈沖信號(hào)DP給脈沖加減電路。當(dāng)Fout同步于Fin或只有隨機(jī)干擾脈沖時(shí),計(jì)數(shù)器加減的數(shù)目基本相等,計(jì)數(shù)結(jié)果在初始值處上下徘徊,不會(huì)產(chǎn)生進(jìn)位和借位脈沖,濾除因隨機(jī)噪聲引起的相位抖動(dòng)。計(jì)數(shù)器根據(jù)輸出結(jié)果生成控制DCO 動(dòng)作的控制指令。

          K變模可逆計(jì)數(shù)器模值K對(duì)DPLL的性能指標(biāo)有著很大的影響。計(jì)數(shù)器模值K的取值可根據(jù)輸入信號(hào)的相位抖動(dòng)而定,加大模值K,有利于提高DPLL 的抗噪能力,但是會(huì)導(dǎo)致較大的捕捉時(shí)間和較窄的捕捉帶寬。減小模值K 可以縮短捕捉時(shí)間,擴(kuò)展捕捉帶寬,但是降低了DPLL 的抗噪能力。本設(shè)計(jì)中選擇K=4。在初始時(shí)刻,計(jì)數(shù)器被置初值為K/2=2,這樣可以DPLL捕捉速度很快。

          數(shù)控振蕩器的設(shè)計(jì)

          數(shù)控振蕩器( DCO)在數(shù)字鎖相環(huán)路中所處的地位相當(dāng)于模擬鎖相環(huán)路中的電壓控制振蕩器。在本數(shù)字鎖相環(huán)設(shè)計(jì)中使用數(shù)控振蕩器是可變模式分頻器。它的輸出是調(diào)整可變分頻器的模值N。該值的大小會(huì)隨著每個(gè)Fin周期內(nèi)(Fin=1時(shí))鑒相輸出PE進(jìn)行調(diào)整。當(dāng)UD為高電平時(shí),將可變分頻模值N增大,以調(diào)整分頻輸出使之相位滯后;當(dāng)UD輸出為低電平時(shí),將可變分頻模值N減小,已調(diào)整分頻輸出使之輸出相位提前。如果數(shù)字環(huán)路濾波器既沒(méi)有控制脈沖信號(hào)DP輸出,那么,分頻模值N將保持不變,經(jīng)除N分頻后的輸出本地恢復(fù)信號(hào)相位和輸入信號(hào)相位處于同步狀態(tài)。

          本地高速時(shí)鐘信號(hào)CLK由片外高速振蕩器提供。時(shí)鐘信號(hào)周期大小決定了DPLL 在鎖定狀態(tài)下相位跟蹤的精度,同時(shí),它還影響DPLL 的捕捉時(shí)間和捕捉帶寬。為提高相位跟蹤的精度以降低數(shù)據(jù)接收的誤碼率,時(shí)鐘信號(hào)CLK的取值應(yīng)盡量高。本設(shè)計(jì)中取高速時(shí)鐘信號(hào)CLK的振蕩頻率為64MHz。數(shù)控振蕩器可由一個(gè)可逆計(jì)數(shù)器實(shí)現(xiàn)。

          N分頻器的設(shè)計(jì)

          N分頻器則是一個(gè)簡(jiǎn)單的除N計(jì)數(shù)器。N分頻器對(duì)脈沖加減電路的輸出脈沖再進(jìn)行N分頻,得到整個(gè)環(huán)路的輸出信號(hào)Fout。同時(shí),因?yàn)镕out=CLK/2N=fc,因此通過(guò)改變分頻值N可以得到不同的環(huán)路中心頻率fc。另外,模值N的大小決定了DPLL的鑒相靈敏度為π/N。

          環(huán)路實(shí)現(xiàn)

          本設(shè)計(jì)在Altera公司QUARTUSII5.0 開(kāi)發(fā)軟件平臺(tái)上,利用VHDL語(yǔ)言運(yùn)用自頂向下的系統(tǒng)設(shè)計(jì)方法, 在Altera最新CPLD芯片MAXII240上設(shè)計(jì)全數(shù)字鎖相環(huán)。將鎖相環(huán)路設(shè)計(jì)完畢后,并通過(guò)QUARTUSII5.0集成環(huán)境進(jìn)行仿真、綜合、驗(yàn)證,DPLL設(shè)計(jì)結(jié)果如圖3。

          圖3  改進(jìn)型異或門鑒相器DPLL原理圖

          其中,可逆計(jì)數(shù)器counter2為環(huán)路濾波器DLF,預(yù)設(shè)初值為12,加法進(jìn)位模值為4,減法進(jìn)位模值為12。可逆計(jì)數(shù)器lmp_counter2為數(shù)控振蕩器,其預(yù)置值為time[3..0],其輸出即為鎖相環(huán)路分頻器的模值N,輸出值大小隨著控制脈沖信號(hào)DP的數(shù)目有關(guān)。在本設(shè)計(jì)中,fclk=64MHz,fin=2Mb/s,則time[3..0]=0100b=8。加法計(jì)數(shù)器lmp_counter2為模值N受控的鎖相環(huán)路分頻器。值得注意的是鎖相環(huán)路分頻器lmp_counter2的進(jìn)位輸出Cout不可直接作為分頻輸出,因?yàn)樵诜抡孢^(guò)程中發(fā)現(xiàn)隨著fclk頻率的升高,Cout容易產(chǎn)生冒險(xiǎn)毛刺,影響鎖相環(huán)的穩(wěn)定性。因此外加一4輸入或非門作為分頻器輸出判決。

          在圖4仿真結(jié)果中,fclk=64MHz,fin=2Mb/s。 仿真輸入信號(hào)Fin為一任意的二進(jìn)制碼流信號(hào)。可見(jiàn),對(duì)于多位連1或連0的碼流信號(hào),該鎖相環(huán)的輸出Fout都能準(zhǔn)確恢復(fù)出同步所需的時(shí)鐘。在第二個(gè)輸入碼位到來(lái)時(shí)本地恢復(fù)時(shí)鐘Fout就已經(jīng)進(jìn)入同步狀態(tài),捕捉速度很快。相位鎖定誤差最大為π/2N=π/16。

          圖4 改進(jìn)型異或門鑒相器DPLL仿真結(jié)果

          捕獲帶寬的擴(kuò)展

          上述設(shè)計(jì)的數(shù)字鎖相環(huán)雖然可以快速鎖定,鎖相精度也較高,但其捕捉范圍較窄。該數(shù)字鎖相環(huán)的最大相移調(diào)整能力為

          濾波器相關(guān)文章:濾波器原理


          fpga相關(guān)文章:fpga是什么


          濾波器相關(guān)文章:濾波器原理


          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          分頻器相關(guān)文章:分頻器原理
          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
          鑒相器相關(guān)文章:鑒相器原理
          脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
          數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
          鎖相環(huán)相關(guān)文章:鎖相環(huán)原理
          鎖相放大器相關(guān)文章:鎖相放大器原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();