專利名稱:一種基于fpga的加噪信號(hào)同步時(shí)鐘提取裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信控制技術(shù)領(lǐng)域,涉及一種時(shí)鐘信號(hào)提取技術(shù),特別涉及一種基于 FPGA的加噪信號(hào)同步時(shí)鐘提取裝置。
背景技術(shù):
同步是通信系統(tǒng)中一個(gè)非常重要的實(shí)際問題。在通信系統(tǒng)中,同步具有相當(dāng)重要的地位。通信系統(tǒng)能否有效地、可靠地工作,很大程度上依賴于有無良好的同步性。其中位同步,或稱碼元同步,是要在接收端確定每一個(gè)碼元的起止時(shí)刻,實(shí)現(xiàn)對(duì)接收到的信息碼元的正確判決。它是數(shù)字通信的諸多同步之中的首要問題,沒有位同步信號(hào),就在通信接收端無法正?;謴?fù)傳輸?shù)臄?shù)字編碼信息。近年來,利用可編程邏輯器件相對(duì)于使用獨(dú)立器件進(jìn)行同步時(shí)鐘信號(hào)的處理操作,在提高系統(tǒng)性能與集成度方面均有極大優(yōu)勢(shì),同時(shí),利用可編程邏輯器件能夠針對(duì)應(yīng)用需求進(jìn)行系統(tǒng)設(shè)計(jì),突破傳統(tǒng)設(shè)計(jì)方式受器件限制較大的弊端。目前,提取位同步信號(hào)的方法有插入導(dǎo)頻法和自同步法兩種,而自同步法可分為濾波法和鎖相法。(I)插入導(dǎo)頻法為了得到碼元同步的定時(shí)信號(hào),首先要確定接收到的信息數(shù)據(jù)流中是否包含有位定時(shí)的頻率分量。如果存在此分量,就可以利用濾波器從信息數(shù)據(jù)流中把位定時(shí)信息提取出來。若基帶信號(hào)為隨機(jī)的二進(jìn)制不歸零碼序列,這種信號(hào)本身不包含位同步信號(hào),為了獲得位同步信號(hào)需在基帶信號(hào)中插入位同步的導(dǎo)頻信號(hào),或者對(duì)該基帶信號(hào)進(jìn)行某種碼型變換以得到位同步信息。插入導(dǎo)頻法是在基帶信號(hào)頻譜的零點(diǎn)插入所需的導(dǎo)頻信號(hào),主要用于接收信號(hào)頻譜中沒有離散載頻分量,或即使含有一定的載頻分量,也很難從接收信號(hào)中分離出來的情況。插入導(dǎo)頻法有單獨(dú)的導(dǎo)頻信號(hào),一方面可以提取同步載波,另一方面可以利用它作為自動(dòng)增益控制。但是,插入導(dǎo)頻法中導(dǎo)頻和信號(hào)間由于濾波不好而產(chǎn)生互相干擾,而且插入導(dǎo)頻法要多消耗一部分不帶信息的功率,降低信噪功率比。(2)自同步法當(dāng)系統(tǒng)的位同步采用自同步方法時(shí),發(fā)送端不專門發(fā)送導(dǎo)頻信號(hào),而直接從數(shù)字信號(hào)中提取位同步信號(hào),這種方法在數(shù)字通信中經(jīng)常采用,而自同步法具體又可分為濾波法和鎖相法。a.濾波法根據(jù)基帶信號(hào)的譜分析可以知道,對(duì)于不歸零的隨機(jī)二進(jìn)制序列,不能直接從其中濾出位同步信號(hào)。但是,若對(duì)該信號(hào)進(jìn)行某種變換,例如,變成單極性歸零脈沖后,則該序列中就有f = 1/Tb的位同步信號(hào)分量,經(jīng)一個(gè)窄帶濾波器,可濾出此信號(hào)分量,再將它通過一個(gè)移相器調(diào)整相位后,就可以形成位同步脈沖。它的特點(diǎn)是先形成含有位同步信息的信號(hào),再用濾波器將其濾出。而單極性歸零邊沿脈沖信號(hào),由于其包含f = 1/Tb的位同步信號(hào)分量,一般作為提取位同步信號(hào)的中間變換過程。
b.鎖相法把采用鎖相環(huán)來提取位同步信號(hào)的方法稱為鎖相法。在數(shù)字通信中,這種鎖相電路常采用數(shù)字鎖相環(huán)來實(shí)現(xiàn)。鎖相環(huán)是一個(gè)相位誤差控制系統(tǒng)。它比較輸入信號(hào)和振蕩器輸出信號(hào)之間的相位差,從而產(chǎn)生誤差控制信號(hào)來調(diào)整振蕩器的頻率,以達(dá)到與輸入信號(hào)同頻率同相位。采用鎖相法提取位同步,它由高穩(wěn)定度振蕩器(晶振)、分頻器、相位比較器和控制電路組成。高穩(wěn)定度振蕩器產(chǎn)生的信號(hào)經(jīng)整形電路變成周期性脈沖,然后經(jīng)控制器再送入分頻器,輸出位同步邊沿脈沖信號(hào)。輸入相位基準(zhǔn)與由高穩(wěn)定振蕩器產(chǎn)生的經(jīng)過整形的η 次分頻后的相位脈沖進(jìn)行比較,由兩者相位的超前或滯后,來確定扣除或附加一個(gè)脈沖,以調(diào)整位同步脈沖的相位。自同步法不需導(dǎo)頻信號(hào),因此信號(hào)功率可以大一些,以提高噪功率比。可以防止插入導(dǎo)頻法中導(dǎo)頻和信號(hào)間由于濾波不好而引起的互相干擾,也可以防止信道不理想引起導(dǎo)頻相位的誤差(在信號(hào)和導(dǎo)頻范圍引起不同的畸變)。但是,有些調(diào)制系統(tǒng)并不能使用自同步法,如SSB(單邊帶)系統(tǒng)。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)存在的不足,本發(fā)明提出一種基于FPGA的加噪信號(hào)同步時(shí)鐘提取裝置,以達(dá)到系統(tǒng)具有良好抗噪性、高速、高精確度的目的。一種基于FPGA的加噪信號(hào)同步時(shí)鐘提取裝置,包括AD采樣電路,此外,還包括 FPGA,所述的FPGA中包括數(shù)據(jù)采集模塊、FIR低通濾波模塊、電平判決模塊、邊沿檢測模塊、 同頻時(shí)鐘生成模塊和相位調(diào)整模塊,所述的邊沿檢測模塊包括第一邊沿檢測模塊、第二邊沿檢測模塊,其中AD采樣電路用于將輸入的模擬諧波信號(hào)轉(zhuǎn)換為12位的數(shù)字信號(hào),提供給FPGA 做下一步的處理。數(shù)據(jù)采集模塊用于驅(qū)動(dòng)AD采樣電路進(jìn)行采樣,并將AD采集電路采集的數(shù)據(jù)讀取到FPGA內(nèi),提供給FIR低通濾波模塊;FIR低通濾波模塊用于對(duì)數(shù)字信號(hào)進(jìn)行濾波,去除其中的高頻噪聲,將信號(hào)提供給電平判決模塊;電平判決模塊用于將濾波之后的信號(hào)判決為O或I的二值數(shù)據(jù),產(chǎn)生方波信號(hào), 提供給邊沿檢測模塊;第一邊沿檢測模塊用于檢測方波信號(hào)的上升沿和下降沿,產(chǎn)生邊沿脈沖信號(hào)并提供給同頻時(shí)鐘生成模塊、相位調(diào)整模塊;同頻時(shí)鐘生成模塊用于將FPGA的系統(tǒng)時(shí)鐘信號(hào)分頻,產(chǎn)生與方波信號(hào)的邊沿脈沖信號(hào)同頻率的時(shí)鐘信號(hào),提供給第二邊沿檢測模塊;第二邊沿檢測模塊用于檢測同頻時(shí)鐘信號(hào)的上升沿,產(chǎn)生邊沿脈沖信號(hào)并提供給相位調(diào)整模塊;相位調(diào)整模塊用于比較方波信號(hào)的邊沿脈沖信號(hào)與同頻時(shí)鐘信號(hào)的邊沿脈沖信號(hào)之間的相位差,根據(jù)相位差調(diào)整同頻時(shí)鐘信號(hào)相位,產(chǎn)生輸出與方波信號(hào)的邊沿脈沖信號(hào)同步的時(shí)鐘信號(hào)。
所述的電平判決模塊通過求取多個(gè)周期的濾波之后的信號(hào)幅度平均值得到判決電平,并采用滯回比較的方法比較濾波之后的信號(hào)和判決電平,從而產(chǎn)生跳變沿明顯的方波信號(hào)。所述的邊沿檢測模塊通過延時(shí)當(dāng)前信號(hào)一個(gè)系統(tǒng)時(shí)鐘周期得到延時(shí)信號(hào),比較當(dāng)前信號(hào)和延時(shí)信號(hào)是否相等,提取出信號(hào)邊沿信息。所述的同頻時(shí)鐘生成模塊在模塊初始化時(shí)估算方波信號(hào)的邊沿脈沖信號(hào)的頻率, 生成與方波信號(hào)的邊沿脈沖信號(hào)頻率接近的時(shí)鐘;在工作時(shí),根據(jù)方波信號(hào)的邊沿脈沖信號(hào)和生成時(shí)鐘的頻率關(guān)系,動(dòng)態(tài)調(diào)整生成時(shí)鐘的頻率,使生成時(shí)鐘的頻率逐漸逼近方波信號(hào)的邊沿脈沖信號(hào)的頻率。所述的相位調(diào)整模塊通過比較方波信號(hào)的邊沿脈沖信號(hào)與同頻時(shí)鐘信號(hào)的邊沿脈沖信號(hào),判斷其相位關(guān)系是超前、同相還是落后,并逐步調(diào)整同頻時(shí)鐘信號(hào)的相位使二者趨于同相位。本發(fā)明優(yōu)點(diǎn)本發(fā)明的數(shù)據(jù)采集和處理均使用硬件實(shí)現(xiàn),充分發(fā)揮了硬件加速的優(yōu)勢(shì)。在FPGA平臺(tái)上,使用硬件編程語言進(jìn)行編程,實(shí)現(xiàn)系統(tǒng)模塊化。FIR低通濾波器模塊和電平判決模塊能有效的從有噪聲的信道中恢復(fù)碼元,相位調(diào)整模塊采用逐步逼近的方法調(diào)節(jié)相位,當(dāng)個(gè)別碼元由于噪聲產(chǎn)生較大畸變時(shí),系統(tǒng)不會(huì)因此失去穩(wěn)定,在實(shí)際應(yīng)用中, 信道中的信噪比達(dá)到3 I。本發(fā)明能從其中正確提取同步時(shí)鐘,并且系統(tǒng)具有良好抗噪性、高速、高精度的優(yōu)點(diǎn)。
圖I本發(fā)明一種實(shí)施例的系統(tǒng)總體構(gòu)成示意圖;圖2本發(fā)明一種實(shí)施例使用的AD采樣模塊電路圖;圖3本發(fā)明一種實(shí)施例的系統(tǒng)程序框圖;圖4本發(fā)明一種實(shí)施例使用的數(shù)據(jù)采集模塊圖;圖5本發(fā)明一種實(shí)施例使用的低通濾波模塊圖;圖6本發(fā)明一種實(shí)施例使用的轉(zhuǎn)置形式FIR結(jié)構(gòu)圖;圖7本發(fā)明一種實(shí)施例使用的低通濾波器的幅頻響應(yīng)圖;圖8本發(fā)明一種實(shí)施例使用的電平判決模塊頂層文件示意圖;圖9本發(fā)明一種實(shí)施例使用的實(shí)現(xiàn)電平判決模塊的程序流程圖;圖10本發(fā)明一種實(shí)施例使用的邊沿檢測模塊頂層文件示意圖;圖11本發(fā)明一種實(shí)施例使用的實(shí)現(xiàn)邊沿檢測模塊的程序流程圖;圖12本發(fā)明一種實(shí)施例使用的邊沿檢測模塊的邏輯原理圖;圖13本發(fā)明一種實(shí)施例使用的同頻時(shí)鐘生成模塊頂層文件示意圖;圖14本發(fā)明一種實(shí)施例使用的實(shí)現(xiàn)同頻時(shí)鐘生成模塊的程序流程圖;圖15本發(fā)明一種實(shí)施例使用的實(shí)現(xiàn)同頻時(shí)鐘生成模塊功能的狀態(tài)轉(zhuǎn)換圖;圖16本發(fā)明一種實(shí)施例使用的相位調(diào)整模塊頂層文件示意圖;圖17本發(fā)明一種實(shí)施例使用的相位調(diào)整模塊的原理框圖;圖18本發(fā)明一種實(shí)施例使用的實(shí)現(xiàn)相位調(diào)整模塊的程序流程圖;圖19本發(fā)明一種實(shí)施例使用的實(shí)現(xiàn)相位調(diào)整模塊的狀態(tài)轉(zhuǎn)換圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的內(nèi)容作進(jìn)一步描述。本系統(tǒng)的總體構(gòu)成示意圖如圖I所示,其中包括AD采樣電路和FPGA。本發(fā)明實(shí)施例采用的FPGA芯片是Altera公司的Cyclone系列的EP1C12Q240C6,所述的FPGA中包括實(shí)現(xiàn)的數(shù)據(jù)采集模塊、FIR低通濾波模塊、電平判決模塊、邊沿檢測模塊、同頻時(shí)鐘生成模塊和相位調(diào)整模塊。其中AD采樣電路的數(shù)據(jù)輸出引腳與FPGA的I/O 口相連,F(xiàn)PGA內(nèi)部的模塊在Quartus II環(huán)境下通過Verilog HDL硬件描述語言生成,并實(shí)現(xiàn)模塊間的數(shù)據(jù)連接,其信號(hào)傳遞過程為AD采樣電路的采集數(shù)據(jù)輸出給FPGA,F(xiàn)PGA中的數(shù)據(jù)采集模塊將AD采樣電路傳遞的信號(hào)輸出給FIR低通濾波模塊,F(xiàn)IR低通濾波模塊將濾波后的信號(hào)傳遞給電平判決模塊,電平判決模塊將產(chǎn)生的方波信號(hào)傳遞給第一邊沿檢測模塊,第一邊沿檢測模塊將輸出的方波信號(hào)邊沿脈沖信號(hào)分別傳遞給同頻時(shí)鐘生成模塊和相位調(diào)整模塊,同頻時(shí)鐘生成模塊將同頻時(shí)鐘信號(hào)傳遞給第二邊沿檢測模塊,第二邊沿檢測模塊將同頻時(shí)鐘信號(hào)的邊沿脈沖信號(hào)傳遞給相位調(diào)整模塊。本發(fā)明實(shí)施例采用的AD采樣芯片選用了 ADI公司的AD9224ARS,電路原理如圖2 所示。AD9224ARS帶有片上高性能采樣保持器和參考電壓,采用多級(jí)差動(dòng)流水線式結(jié)構(gòu),對(duì)輸出錯(cuò)誤進(jìn)行邏輯糾正,以保證在40Msps采樣速率下獲得精確的12位數(shù)據(jù),滿足系統(tǒng)對(duì)精度和采樣速率的要求。AD9224ARS芯片采用+5V單電源供電,可以處理±5V范圍內(nèi)的雙極性輸入信號(hào)輸入。AD9224ARS采用單一的時(shí)鐘信號(hào)來控制芯片內(nèi)部所有的轉(zhuǎn)換,A/D轉(zhuǎn)換是在時(shí)鐘上升沿完成的,采樣時(shí)鐘為高電平時(shí),為保持時(shí)間,采樣時(shí)鐘為低電平時(shí),輸入端 VINA和VINB處于采樣模式。在本發(fā)明實(shí)施例中,AD9224ARS的時(shí)鐘輸入AD1_CLK為40MHz。 AD9224ARS具有高度靈活的輸入結(jié)構(gòu),可以方便地連接單端或者差分輸入信號(hào)。采用單端輸入時(shí),輸入端VINA可以通過直流或交流的方式與輸入信號(hào)耦合,輸入端VINB要偏置到合適的電壓;米用差分輸入時(shí),輸入端VINA和輸入端VINB要由輸入信號(hào)同時(shí)驅(qū)動(dòng)。在本發(fā)明的實(shí)施例中,采用差分輸入,輸入端VINA和輸入端VINB都由模擬輸入信號(hào)來驅(qū)動(dòng)。系統(tǒng)的程序總體程序框圖如圖3所示,結(jié)合圖3進(jìn)一步描述實(shí)施例中的邏輯電路模塊的工作原理本實(shí)施例中的數(shù)據(jù)采集模塊主要完成對(duì)芯片AD9224ARS的驅(qū)動(dòng),并將采樣數(shù)據(jù)讀到片內(nèi),提供給下一級(jí)的FIR低通濾波模塊。數(shù)據(jù)采集模塊的頂層設(shè)計(jì)文件如圖4所示, AD9224ARS芯片的輸入時(shí)鐘引腳AD1_CLK與數(shù)據(jù)采集模塊的輸出時(shí)鐘引腳ad_clk相連, 數(shù)據(jù)采集模塊的數(shù)據(jù)輸出端data[ll. . O]與FIR低通濾波模塊的數(shù)據(jù)輸入端ast_sink_ data[ll. . O]相連接。本實(shí)施例中的數(shù)據(jù)采集模塊的時(shí)鐘輸入端elk輸入為100MHz,該模塊通過使用 Quartus II軟件開發(fā)工具M(jìn)egaWizard Plug直接配置PLL (鎖相環(huán)),使之產(chǎn)生40MHz的時(shí)鐘信號(hào)ad_clk,作為采樣時(shí)鐘輸出給AD9224ARS的輸入時(shí)鐘引腳AD1_CLK。由系統(tǒng)時(shí)鐘觸發(fā),讀取與AD9224ARS數(shù)據(jù)輸出引腳相連的I/O 口,將讀到的數(shù)據(jù)與下一級(jí)的FIR(有限沖激響應(yīng))低通濾波模塊的數(shù)據(jù)輸入接口相連。本實(shí)施例中的FIR低通濾波模塊用于生成一個(gè)150階的FIR低通濾波器,用于濾除信號(hào)中的高頻噪聲,F(xiàn)IR低通濾波模塊的頂層文件如圖5所示。數(shù)據(jù)采集模塊的數(shù)據(jù)輸出端data[ll. . O]與FIR低通濾波模塊的數(shù)據(jù)輸入端ast_sink_data[ll. . O]相連接。FIR低通濾波器,即有限沖激響應(yīng)濾波器。一個(gè)N階FIR可以用持續(xù)時(shí)間有限的沖激響應(yīng)來定義h[k] = {h0, Ii1,…,hN_J (I)式中,h[k]為單位沖激響應(yīng),系數(shù)IhJ被稱為濾波器的抽頭權(quán)重,其中,i = 0,. . .,N-1,對(duì)輸入時(shí)間序列|x[k]},N階FIR濾波器的響應(yīng)可以用離散線性卷積來表示
N-Iy[k] = h0x[k] + l\x[k-I] + ... + hN_xx[k-TV-I] = ^hmx[k -m](2)
w=0式中y[k]為時(shí)間序列和沖激響應(yīng)的卷積??蓪⑸鲜奖磉_(dá)為如下的傳遞函數(shù)H {z) = YuHlZ^1(3)
i=0式中H(z)為系統(tǒng)函數(shù),z為變量。本實(shí)施例中的FIR低通濾波器采用硬件解決方案,使用FPGA來實(shí)現(xiàn),采用轉(zhuǎn)置形式的FIR。轉(zhuǎn)置形式FIR是一種基本FIR形式,其結(jié)構(gòu)如圖6所示。在本實(shí)施例中,F(xiàn)IR低通濾波模塊是使用Quartus II軟件開發(fā)工具M(jìn)egaWizard Plug來實(shí)現(xiàn)的,窗函數(shù)選取Blackman窗。FIR低通濾波器的截止頻率選擇在IMHz,頻率高于IMHz的信號(hào)將視為高頻噪聲。由于AD9224ARS芯片輸入的采樣時(shí)鐘為40MHz,數(shù)據(jù)采集模塊的數(shù)據(jù)輸出端data[ll. . O]與FIR低通濾波模塊的數(shù)據(jù)輸入端ast_sink_data[ll. . O] 相連接,所以,配置FIR低通濾波器的采樣時(shí)鐘為40MHz。由于AD9224ARS芯片采用流水線結(jié)構(gòu),流水線的級(jí)數(shù)就是所選取的階數(shù),所以選取的階數(shù)越大,所占用的FPGA的資源就越多。為了保證FIR低通濾波器濾波性能和占用FPGA資源的平衡,在本發(fā)明實(shí)施例中,F(xiàn)IR低通濾波器的階數(shù)選取為150,轉(zhuǎn)換過程有150個(gè)時(shí)鐘的延時(shí)。所生成的150階,IMHz截止頻率的FIR數(shù)字低通濾波器的頻率響應(yīng)如圖7所示。將濾波之后的數(shù)據(jù)提供給下一級(jí)的電平判決模塊,做進(jìn)一步的處理,F(xiàn)IR低通濾波模塊的數(shù)據(jù)輸出ast_source_data[31. .20]與電平判決模塊的數(shù)據(jù)輸入data[ll. . O]相連接。本實(shí)施例中的電平判決模塊用于將輸入信號(hào)轉(zhuǎn)換為規(guī)整的方波信號(hào),即將輸入信號(hào)判決為O或I的二值數(shù)據(jù)。其頂層文件如圖8所示。實(shí)現(xiàn)電平判決模塊的程序流程圖如圖9所示。將FIR低通濾波模塊的數(shù)據(jù)輸出端ast_source_data[31. . 20]與電平判決模塊的數(shù)據(jù)輸入端data[ll. . O]相連接。電平判決模塊分為兩個(gè)部分判決門限的生成和信號(hào)的判決。判決門限的生成部分用于產(chǎn)生判決輸入信號(hào)的門限,此部分采用求取信號(hào)幅度平均值的方法。定義一個(gè)17位的計(jì)數(shù)器count和一個(gè)30位的累加器accum,由系統(tǒng)時(shí)鐘,計(jì)數(shù)器count從O開始,對(duì)系統(tǒng)時(shí)鐘的上升沿計(jì)數(shù)。同時(shí),累加器accum不斷地對(duì)FIR濾波器模塊出來的數(shù)據(jù)進(jìn)行累加。本實(shí)施例中計(jì)數(shù)器的取值為65536,當(dāng)計(jì)數(shù)器到達(dá)65536時(shí),將累加器accum中的值除以計(jì)數(shù)器count的值,所得的結(jié)果即為輸出的信號(hào)幅度平均值。在下個(gè)時(shí)鐘周期,將計(jì)數(shù)器count和累加器accum中的值清零,重新計(jì)算輸入信號(hào)幅度的平均值。所輸出的信號(hào)幅度平均值即為輸入信號(hào)的判決門限。信號(hào)的判決部分用于比較輸入信號(hào)與判決門限,將輸入信號(hào)判決為O或I的二值
7數(shù)據(jù)。本實(shí)施例此部分主要采用滯回比較的方法,這種方法可以有效的避免信號(hào)在判決門限處上下小幅度振蕩導(dǎo)致的判決錯(cuò)誤。具體實(shí)現(xiàn)的方法是將輸入信號(hào)和判決門限作為比較器的兩個(gè)輸入端。首先,需要選取比較器的滯回寬度,在本實(shí)施例中,將比較器的滯回寬度定為20。當(dāng)比較器輸出低電平,且輸入信號(hào)幅值大于判決門限加上滯回寬度的二分之一時(shí),比較器輸出高電平;當(dāng)比較器輸出高電平,且輸入信號(hào)幅值小于判決門限減去滯回寬度的二分之一時(shí),比較器輸出低電平。所輸出的O或I的二值數(shù)據(jù),就是所需要的規(guī)整的方波信號(hào)。最后,將比較器輸出的結(jié)果輸出給下一級(jí)第一邊沿檢測模塊。本實(shí)施例中包括兩個(gè)邊沿檢測模塊,第一邊沿檢測模塊主要是負(fù)責(zé)檢測出輸入方波信號(hào)的上升沿和下降沿,輸出方波信號(hào)的邊沿脈沖信號(hào),其頂層文件如圖10所示,將電平判決模塊的數(shù)據(jù)輸出端square_wave與第一邊沿檢測模塊的數(shù)據(jù)輸入端square_wave相連接。實(shí)現(xiàn)第一邊沿檢測模塊的程序流程圖如圖11所示,第一邊沿檢測模塊的邏輯原理圖如圖12所示。具體的實(shí)現(xiàn)方法是首先,第一邊沿檢測模塊由系統(tǒng)時(shí)鐘觸發(fā),信號(hào)通過第一邊沿檢測模塊內(nèi)部第一 D觸發(fā)器的D端輸入,將輸入信號(hào)延時(shí)一個(gè)時(shí)鐘周期,然后,再比較輸入信號(hào)與延時(shí)之后的信號(hào)是否相等,若兩信號(hào)不相等,則代表此時(shí)輸入信號(hào)發(fā)生跳變,表明是輸入信號(hào)的邊沿,輸出高電平給第二 D觸發(fā)器的D端;若兩信號(hào)相等,則代表此時(shí)輸入信號(hào)沒有發(fā)生跳變,不是輸入信號(hào)的邊沿,輸出低電平給第二 D觸發(fā)器的D端。第二 D觸發(fā)器的輸出即邊沿檢測模塊的輸出就是輸入方波信號(hào)的邊沿脈沖信號(hào)。將輸出的邊沿脈沖信號(hào),提供給下一級(jí)的同頻時(shí)鐘生成模塊。同頻時(shí)鐘生成模塊用于根據(jù)所檢測出的邊沿脈沖信號(hào),生成與方波信號(hào)的邊沿脈沖信號(hào)頻率相同的時(shí)鐘信號(hào),其頂層文件如圖13所示。第一邊沿檢測模塊的數(shù)據(jù)輸出端 edge_signal與同頻時(shí)鐘生成模塊的數(shù)據(jù)輸入端edge_signal相連接,同頻時(shí)鐘生成模塊的數(shù)據(jù)輸出端same_freq_clock與第二邊沿檢測模塊的數(shù)據(jù)輸入端square_wave相連接。 在輸入的邊沿脈沖信號(hào)中,找出最小的相鄰脈沖間隔,即可獲得所求的同頻時(shí)鐘信號(hào)。但是,由于邊沿脈沖信號(hào)相鄰脈沖時(shí)間間隔的長短不同,并且為了防止由于噪聲而產(chǎn)生的畸變信號(hào)的影響,所以本實(shí)施例中找出1024個(gè)較小的時(shí)間間隔,用求取平均值的方法來求得所要生成時(shí)鐘的周期,進(jìn)而獲得所要生成時(shí)鐘信號(hào)的頻率。具體實(shí)現(xiàn)同頻時(shí)鐘生成模塊的程序流程圖如圖14所示。具體方法為首先,本實(shí)施例中獲取9個(gè)最小相鄰脈沖時(shí)間間隔, 并將其以從小到大的順序排列,其中最大的時(shí)間間隔取值作為所需的較小時(shí)間間隔,定義為clk_count_min9,將該較小時(shí)間間隔乘以I. 5(以避免因?yàn)樵肼暥a(chǎn)生毛刺影響),所得出的值將作為較小時(shí)間間隔判決的門限。之后,找出1024個(gè)小于判決門限的相鄰脈沖時(shí)間間隔,并求出其平均值,即可得出所要生成的時(shí)鐘信號(hào)頻率。本實(shí)施例使用系統(tǒng)時(shí)鐘的個(gè)數(shù)來表征相鄰脈沖的時(shí)間間隔。在本實(shí)施例中,使用有限狀態(tài)機(jī)來實(shí)現(xiàn)同頻時(shí)鐘生成模塊的功能。共有三個(gè)狀態(tài),第一個(gè)狀態(tài)INIT是所有信號(hào)的初始化,第二個(gè)狀態(tài)GEN_THRESH0LD是找出判決門限, 第三個(gè)狀態(tài)GEN_INTERVAL是累加較小時(shí)間間隔,并求其平均值。具體的狀態(tài)轉(zhuǎn)換圖如圖 15所示。具體的實(shí)現(xiàn)方法是首先,定義脈沖計(jì)數(shù)器為Sig_count,系統(tǒng)時(shí)鐘計(jì)數(shù)器為clk_ count,時(shí)間間隔累加器為accum。復(fù)位時(shí),將所有的信號(hào)賦值為O。在第一個(gè)狀態(tài)INIT中, 初始化所有信號(hào)為0,當(dāng)輸入的邊沿脈沖信號(hào)edge_Signal為高電平時(shí),狀態(tài)機(jī)進(jìn)入第二個(gè)狀態(tài)GEN_THRESH0LD。在第二個(gè)狀態(tài)GEN_THRESH0LD中,當(dāng)邊沿脈沖信號(hào)為高電平時(shí),脈沖計(jì)數(shù)器sig_count加I,如果脈沖計(jì)數(shù)器sig_count等于1024,則將脈沖計(jì)數(shù)器sig_count 清零,并進(jìn)入第三個(gè)狀態(tài);如果脈沖計(jì)數(shù)器Sig_count小于1024,則將系統(tǒng)時(shí)鐘計(jì)數(shù)器clk_ count加I,并比較出9個(gè)最小相鄰脈沖時(shí)間間隔中最大的時(shí)間間隔,即為最大的系統(tǒng)時(shí)鐘計(jì)數(shù)器clk_count值,并將此值賦值給clk_count_min9。將clk_count_min9乘以I. 5,所得的值作為較小相鄰脈沖時(shí)間間隔的判決門限。在第三個(gè)狀態(tài)GEN_INTERVAL中,比較系統(tǒng)時(shí)鐘計(jì)數(shù)器clk_count中的值與判決門限的大小。當(dāng)輸入的邊沿脈沖信號(hào)為高電平時(shí),如果系統(tǒng)時(shí)鐘計(jì)數(shù)器clk_count小于等于判決門限,且clk_count大于等于clk_count_min9, 則脈沖計(jì)數(shù)器sig_count加I,且時(shí)間間隔累加器accum加上系統(tǒng)時(shí)鐘計(jì)數(shù)器clk_count中的值,否則進(jìn)入狀態(tài)INIT。當(dāng)輸入的脈沖信號(hào)為低電平時(shí),系統(tǒng)時(shí)鐘計(jì)數(shù)器clk_c0unt加 1,如果脈沖計(jì)數(shù)器sig_count等于1024時(shí),進(jìn)入狀態(tài)INIT,且將時(shí)間間隔累加器accum除以1024,所得出的時(shí)間間隔平均值賦值給count。根據(jù)所得到平均值count,即可獲得與輸入信號(hào)相同頻率的時(shí)鐘信號(hào)。將輸出的同頻時(shí)鐘信號(hào)輸出給下一級(jí)的第二邊沿檢測模塊, 生成同頻時(shí)鐘信號(hào)的邊沿脈沖信號(hào)。本實(shí)施例中相位調(diào)整模塊用于生成與輸入信號(hào)相同相位的時(shí)鐘信號(hào),采用逐步逼近的方法調(diào)節(jié)相位。其頂層文件如圖16所示。第一邊沿檢測模塊的數(shù)據(jù)輸出端edge_ signal與相位調(diào)整模塊的數(shù)據(jù)輸入端edge_signal相連接,第二邊沿檢測模塊的數(shù)據(jù)輸出端edge_signal與相位調(diào)整模塊的數(shù)據(jù)輸入端same_freq_clock相連接。此模塊通過比較從第二邊沿檢測模塊輸出的同頻時(shí)鐘信號(hào)的邊沿脈沖信號(hào)與從第一邊沿檢測模塊輸出的邊沿脈沖信號(hào),根據(jù)相位差選擇添加脈沖控制或扣除脈沖控制,使二者趨于同相位。相位調(diào)整模塊的原理框圖如圖17所示。實(shí)現(xiàn)相位調(diào)整模塊的具體程序流程圖如圖18所示。相位調(diào)整模塊具體的實(shí)現(xiàn)方法是首先,使用第二邊沿檢測模塊檢測出輸入的同頻時(shí)鐘信號(hào)的上升沿,比較方波信號(hào)邊沿產(chǎn)生的邊沿脈沖信號(hào)與同頻時(shí)鐘信號(hào)上升沿產(chǎn)成的邊沿脈沖信號(hào)的脈沖位置,比較的結(jié)果有三種超前、同相和落后。當(dāng)方波信號(hào)的邊沿脈沖信號(hào)為高電平時(shí),判斷同頻時(shí)鐘信號(hào)的上升沿邊沿脈沖信號(hào)是否為高電平,若為高電平, 則說明二者的關(guān)系為同相;若為低電平,則說明二者的關(guān)系為超前或落后。本實(shí)施例例通過判斷方波信號(hào)的邊沿脈沖信號(hào)與同頻時(shí)鐘信號(hào)的邊沿脈沖信號(hào)之間的距離來確定是超前還是落后,若距離大于同頻時(shí)鐘脈沖間隔的二分之一,則說明是超前,若小于,則說明是落后。最后,根據(jù)其相位差,扣除或添加系統(tǒng)時(shí)鐘的脈沖控制,使同頻時(shí)鐘和方波信號(hào)同相位。 在這里,依然使用系統(tǒng)時(shí)鐘的個(gè)數(shù)來表征相鄰脈沖的時(shí)間間隔。定義方波信號(hào)邊沿產(chǎn)生的邊沿脈沖信號(hào)為edge_Signal,同頻時(shí)鐘信號(hào)上升沿產(chǎn)成的邊沿脈沖信號(hào)為edge_clk。相位調(diào)整模塊使用有限狀態(tài)機(jī)來實(shí)現(xiàn)比較edge_signal與 edge_clk的相位關(guān)系,共有三種狀態(tài),第一個(gè)狀態(tài)SO是將所有信號(hào)初始化,第二個(gè)狀態(tài)SI 是比較edge_signal和edge_clk相位關(guān)系是否相等,第三個(gè)狀態(tài)S2是確定兩者的相位關(guān)系是超前還是落后。其狀態(tài)轉(zhuǎn)換圖如圖19所示。復(fù)位時(shí),將edge_signal與edge_clk的相位關(guān)系復(fù)位為同相位,即將equal (同相)賦值為I, early (超前)和Iate (落后)賦值為
O。同時(shí),進(jìn)入第一個(gè)狀態(tài)S0。在第一個(gè)狀態(tài)SO中,將所有信號(hào)初始化為0,將edge_Signal 與edge_clk的相位關(guān)系初始化為同相位,當(dāng)edge_signal為高電平時(shí),進(jìn)入第二個(gè)狀態(tài)SI。 在第二個(gè)狀態(tài)SI中,判斷edge_signal與edge_clk的相位關(guān)系是否為同相。首先,將方波信號(hào)邊沿脈沖信號(hào)與相鄰的同頻時(shí)鐘信號(hào)上升沿脈沖信號(hào)之間的時(shí)間間隔edge_Count賦值為O。當(dāng)edge_signal為高電平時(shí),如果edge_clk為高電平,則說明兩者同相,即將equal 賦值為I,early和Iate賦值為0,否則進(jìn)入第三個(gè)狀態(tài)S2。在第三個(gè)狀態(tài)S2中,判斷edge_ signal與edge_clk的相位關(guān)系是超前還是落后。首先,將edge_count加I,當(dāng)edge_clk為高電平時(shí),如果edge_count大于同頻時(shí)鐘信號(hào)相鄰脈沖間隔的二分之一,則說明兩者的相位關(guān)系為超前,即將early賦值為I, equal和Iate賦值為O ;若edge_count小于同頻時(shí)鐘信號(hào)相鄰脈沖間隔的二分之一,則說明兩者的相位關(guān)系為落后,即將late賦值為1,equal 和early賦值為O,同時(shí),進(jìn)入第一個(gè)狀態(tài)S0。確定edge_signal與edge_clk的相位關(guān)系之后,根據(jù)其相位差,扣除或添加系統(tǒng)時(shí)鐘的單位脈沖控制,使同頻時(shí)鐘和方波信號(hào)趨于同相位。由系統(tǒng)時(shí)鐘觸發(fā),當(dāng)early等于 I時(shí),將同頻時(shí)鐘信號(hào)相鄰脈沖間隔ref_count乘以2,再加上I,所得到的結(jié)果賦值給max_ count, max_count就是所要生成的同頻同相位時(shí)鐘的周期。在這里,因?yàn)閞ef_count是同頻時(shí)鐘信號(hào)邊沿產(chǎn)生的邊沿脈沖信號(hào)的相鄰脈沖時(shí)間間隔,是同頻時(shí)鐘信號(hào)的半個(gè)周期, 所以需要乘以2,得到一個(gè)周期。同理,當(dāng)equal等于I時(shí),將同頻時(shí)鐘信號(hào)相鄰脈沖間隔 ref_count乘以2,所得的結(jié)果賦值給max_count。當(dāng)Iate等于I時(shí),將同頻時(shí)鐘信號(hào)相鄰脈沖間隔ref_count乘以2,再減去1,所得的結(jié)果賦值給max_count。所得出的max_count 就是需要求得的同頻同相位的時(shí)鐘信號(hào)周期。根據(jù)周期maX_COunt,生成所要求得的同頻同相位的時(shí)鐘信號(hào)。定義一個(gè)系統(tǒng)時(shí)鐘計(jì)數(shù)器ref_clk_count,由系統(tǒng)時(shí)鐘觸發(fā),復(fù)位時(shí),將所有信號(hào)賦值為O。如果系統(tǒng)時(shí)鐘計(jì)數(shù)器ref_clk_count等于同頻時(shí)鐘信號(hào)相鄰脈沖間隔ref_count,則將ref_clk_count加I, 并輸出I,將輸出的值賦值給clk_out。如果系統(tǒng)時(shí)鐘計(jì)數(shù)器ref_clk_count的值大于等于 max_count減I的值,則將ref_clk_count計(jì)數(shù)器清零,并輸出O,將輸出的值賦值給clk_ out,否則,系統(tǒng)時(shí)鐘計(jì)數(shù)器ref_clk_c0unt將不斷加I。所得出的clk_out就是所要求得的同頻同相位的時(shí)鐘信號(hào)。最后,將輸出的時(shí)鐘信號(hào)clk_out鎖在FPGA的I/O引腳上,使用示波器來驗(yàn)證所產(chǎn)生時(shí)鐘信號(hào)的相位與頻率,以及噪聲對(duì)信號(hào)的影響。系統(tǒng)測試本發(fā)明實(shí)施例中選用曼徹斯特發(fā)生器作為信號(hào)源,加入高頻偽隨機(jī)噪聲。實(shí)驗(yàn)的目的是測試系統(tǒng)的準(zhǔn)確性。這里主要測試了 2組信號(hào),信噪比為3 1,每組信號(hào)測試了 5 次,然后求取平均值作為最后的測試結(jié)果,測試結(jié)果如表I所示。表I同步時(shí)鐘頻率測試結(jié)果
權(quán)利要求
1.一種基于FPGA的加噪信號(hào)同步時(shí)鐘提取裝置,包括AD采樣電路,其特征在于還包括FPGA,所述的FPGA中包括數(shù)據(jù)采集模塊、FIR低通濾波模塊、電平判決模塊、邊沿檢測模塊、同頻時(shí)鐘生成模塊和相位調(diào)整模塊,所述的邊沿檢測模塊包括第一邊沿檢測模塊、第二邊沿檢測模塊,其中數(shù)據(jù)采集模塊用于驅(qū)動(dòng)AD采樣電路進(jìn)行采樣,并將AD采集電路采集的數(shù)據(jù)讀取到 FPGA內(nèi),提供給FIR低通濾波模塊;FIR低通濾波模塊用于對(duì)數(shù)字信號(hào)進(jìn)行濾波,去除其中的高頻噪聲,將信號(hào)提供給電平判決模塊;電平判決模塊用于將濾波之后的信號(hào)判決為O或I的二值數(shù)據(jù),產(chǎn)生方波信號(hào),提供給邊沿檢測模塊;第一邊沿檢測模塊用于檢測方波信號(hào)的上升沿和下降沿,產(chǎn)生邊沿脈沖信號(hào)并提供給同頻時(shí)鐘生成模塊、相位調(diào)整模塊;同頻時(shí)鐘生成模塊用于將FPGA的系統(tǒng)時(shí)鐘信號(hào)分頻,產(chǎn)生與方波信號(hào)的邊沿脈沖信號(hào)同頻率的時(shí)鐘信號(hào),提供給第二邊沿檢測模塊;第二邊沿檢測模塊用于檢測同頻時(shí)鐘信號(hào)的上升沿,產(chǎn)生邊沿脈沖信號(hào)并提供給相位調(diào)整模塊;相位調(diào)整模塊用于比較方波信號(hào)的邊沿脈沖信號(hào)與同頻時(shí)鐘信號(hào)的邊沿脈沖信號(hào)之間的相位差,根據(jù)相位差調(diào)整同頻時(shí)鐘信號(hào)相位,產(chǎn)生輸出與方波信號(hào)的邊沿脈沖信號(hào)同步的時(shí)鐘信號(hào)。
2.根據(jù)權(quán)利要求I所述的基于FPGA的加噪信號(hào)同步時(shí)鐘提取裝置,其特征在于所述的電平判決模塊通過求取多個(gè)周期的濾波之后的信號(hào)幅度平均值得到判決電平,并采用滯回比較的方法比較濾波之后的信號(hào)和判決電平,從而產(chǎn)生跳變沿明顯的方波信號(hào)。
3.根據(jù)權(quán)利要求I所述的基于FPGA的加噪信號(hào)同步時(shí)鐘提取裝置,其特征在于所述的邊沿檢測模塊通過延時(shí)當(dāng)前信號(hào)一個(gè)系統(tǒng)時(shí)鐘周期得到延時(shí)信號(hào),比較當(dāng)前信號(hào)和延時(shí)信號(hào)是否相等,提取出信號(hào)邊沿信息。
4.根據(jù)權(quán)利要求I所述的基于FPGA的加噪信號(hào)同步時(shí)鐘提取裝置,其特征在于所述的同頻時(shí)鐘生成模塊在模塊初始化時(shí)估算方波信號(hào)的邊沿脈沖信號(hào)的頻率,生成與方波信號(hào)的邊沿脈沖信號(hào)頻率接近的時(shí)鐘;在工作時(shí),根據(jù)方波信號(hào)的邊沿脈沖信號(hào)和生成時(shí)鐘的頻率關(guān)系,動(dòng)態(tài)調(diào)整生成時(shí)鐘的頻率,使生成時(shí)鐘的頻率逐漸逼近方波信號(hào)的邊沿脈沖信號(hào)的頻率。
5.根據(jù)權(quán)利要求I所述的基于FPGA的加噪信號(hào)同步時(shí)鐘提取裝置,其特征在于所述相位調(diào)整模塊通過比較方波信號(hào)邊沿脈沖信號(hào)與同頻時(shí)鐘信號(hào)的邊沿脈沖信號(hào),判斷其相位關(guān)系是超前、同相還是落后,并逐步調(diào)整同頻時(shí)鐘信號(hào)的相位使二者趨于同相位。
全文摘要
一種基于FPGA的加噪信號(hào)同步時(shí)鐘提取裝置,屬于通信控制領(lǐng)域。加噪信號(hào)同步時(shí)鐘提取裝置包括AD采樣電路,包括在FPGA中實(shí)現(xiàn)的數(shù)據(jù)采集模塊、FIR低通濾波模塊、電平判決模塊、邊緣檢測模塊、同頻時(shí)鐘生成模塊和相位調(diào)整模塊,本發(fā)明的數(shù)據(jù)采集和處理均使用硬件實(shí)現(xiàn),充分發(fā)揮了硬件加速的優(yōu)勢(shì);在FPGA平臺(tái)上,使用verilog語言進(jìn)行編程,實(shí)現(xiàn)系統(tǒng)的模塊化,設(shè)計(jì)150階FIR低通濾波器,對(duì)濾波后的信號(hào)檢測上升下降沿,得到同步信號(hào)的周期,再通過同步相位,完成同步信號(hào)的提取,實(shí)現(xiàn)系統(tǒng)具有良好抗噪性、高速、高精確度的優(yōu)點(diǎn)。
文檔編號(hào)H03L7/18GK102611447SQ201210081140
公開日2012年7月25日 申請(qǐng)日期2012年3月26日 優(yōu)先權(quán)日2012年3月26日
發(fā)明者李晶皎, 李欣, 王澤坤 申請(qǐng)人:東北大學(xué)