摘 要:在數字匹配濾波器和超前滯后鑒相環路的理論基礎上,采用VHDL編程,在FPGA芯片上實現PN碼捕獲和跟蹤的電路。詳細討論了各電路模塊的設計實現方法。完成電路的仿真驗證,給出了仿真波形。結果表明電路工作正常可靠,系統擴展方便靈活,滿足設計要求。
關鍵詞:FPGA; PN碼捕獲; PN碼跟蹤; 數字匹配濾波器; 超前滯后環路
中圖分類號:TN914.42-34 文獻標識碼:A
文章編號:1004-373X(2011)17-0119-03
Realization of Capture and Tracking of PN-code with FPGA in DSSS
MENG Ming, XU Jia-dong, WEI Gao
(School of Electronics and Information, Northwestern Polytechnical University, Xi’an 710129, China)
Abstract: Based on the theory of digital matched filter and advance-lag loop, a circuit of capture and tracking of PN-code with FPGA is realized using VHDL programming. The design of all module of the circuit is discussed in detail, the circuit simulation and validation is completed, and the simulative waveform is showed. Result shows that the circuit works normal and reliable, and the system extension is convenient and flexible, which can meet the design requirements well.
Keywords: FPGA; capture of PN-code; tracking of PN-code; digital matched filter; advance-lag loop
在接收機端,為了接收到正確的信號,必須使得本地PN碼與接收信號PN碼嚴格同步[1]。PN碼同步的過程分為兩個階段:捕獲和跟蹤。典型的捕獲方法是匹配濾波器法,而跟蹤則常用超前滯后鑒相跟蹤環路。隨著可編程邏輯器件FPGA的大規模使用,數字電路系統的設計變得更加靈活和方便,并且易于系統維護和更新。本設計采用VHDL編程,用FPGA實現了PN碼捕獲和跟蹤的電路。
1 捕獲和跟蹤的原理
如圖1所示,捕獲和跟蹤環路主要由數字匹配濾波器模塊、PN碼發生器模塊、碼時鐘發生器模塊和鑒相模塊組成。捕獲和跟蹤主要利用PN碼的自相關特性和鑒相特性,如圖2所示。其中圖2(a)是序列的自相關函數R(τ),利用此特性,讓接收信號依次劃過本地PN碼,并進行相關運算,當兩者同步時,相關值達到相關峰值,大于預先設定的門限,表明此時完成捕獲。圖2(b)中虛線①是自相關函數向右移Tc/2之后的自相關函數R(τ-Tc/2),虛線②是自相關函數向左移Tc/2之后的自相關函數R(τ+Tc/2),而實線是R(τ-Tc/2)減去R(τ+Tc/2)之后的S型鑒相曲線D(τ)。當τ=0時,鑒相結果為0,表明本地PN碼與接收信號同步。當τ≠0時,鑒相器輸出正或負的極性結果,調整PN碼時鐘提前或者滯后PN碼。其中:Tc是PN碼片周期。
1.1 捕 獲
捕獲利用PN碼的序列自相關特性,如圖2(a)所示。捕獲常用數字匹配濾波器法[2-4]。數字匹配濾波器法雖然電路結構較復雜,消耗資源較多,但捕獲過程很快,通常可以在一個PN碼周期內完成。用數字匹配濾波器法捕獲擴頻碼時,以靜止的本地PN碼作為濾波器的抽頭,接收到的信號序列依次劃過本地PN碼,每一個時刻都可以產生一個相關結果。當兩個序列相位對齊時,相關結果將有一個相關峰值(擴頻序列在零相位時的自相關函數值)輸出,相關值大于預先設定的門限時表示捕獲成功,此時接收信號與本地PN碼粗同步,同步在一個PN碼元時長,下一步進入跟蹤階段進行精確同步。
1.2 跟 蹤
跟蹤常用超前滯后跟蹤環法[5-7],利用PN碼的鑒相特性,如圖2(b)所示。輸入擴頻信號分別和超前、滯后1/2個碼元周期的PN碼進行相關運算,兩者相關值之差作為鑒相結果輸入至碼時鐘生成器來調整PN碼相位,保持本地PN碼與接收信號之間的嚴格同步。同時擴頻信號與本地PN碼相關之后解擴輸出。若連續幾次失步,則重新轉入捕獲階段,進行粗同步。
2 捕獲和跟蹤環的各子模塊設計
2.1 數字匹配濾波器模塊
本文采用的PN碼為63位m序列,取數字匹配濾波器的抽頭個數和PN碼的位數相同,即為63位,在FPGA中就是要用一個63位的存儲器。接收數據用一個63位的移位寄存器存儲,每一時刻讓移位寄存器和存儲器的每一位進行相關運算,并將相關值輸出。直到輸出的相關值大于門限時表示已經產生相關峰值,說明接收信號與本地PN碼已經同步在一個碼元時長的相位差范圍內,并置跟蹤信號為高電平,轉入捕獲進行精確同步。該模塊的結構圖如圖3所示。
2.2 PN碼發生器模塊
根據PN碼時鐘利用2位相鄰移位寄存器延遲1/2個碼片周期,產生三路PN碼,本地PN碼一路、提前半個周期和延遲半個周期的各一路,共三路PN碼。來自數字匹配濾波器模塊的輸出跟蹤信號作為該模塊的使能啟動信號。
2.3 鑒相器模塊
三路PN碼與接收信號進行相關運算,中間一路PN碼與接收信號相關運算后產生解擴信號并輸出;早遲兩路PN碼與接收信號相關后產生相關值并進行比較,用于控制PN碼時鐘信號。若早路PN碼與接收信號相關值大,則表示本地PN碼較接收信號相位提前,需控制PN碼時鐘信號滯后;若遲路PN碼與接收信號相關值較大,則表示本地PN碼較接收信號相位落后,需控制PN碼時鐘信號提前。若連續幾個PN碼周期相關值都小于設定的門限時,表示PN碼失步,需要重新轉入捕獲階段。來自數字匹配濾波器模塊的輸出跟蹤信號作為該模塊的使能啟動信號。
2.4 碼時鐘發生模塊
根據鑒相器的結果滯后或者提前PN碼時鐘周期,并輸出至PN碼發生器,用于調整PN碼的相位,每次改變1/8個PN碼時鐘周期。圖4示出了該模塊的結構圖,reset是系統復位信號,高電平有效;cyclk是時鐘輸入端,時鐘頻率是PN碼頻率的8倍;內部設置加法器,記滿8則清零;如果沒有調整信息,則計數器正常加1;e_clk為超前指示,高電平有效,當e_clk有效時,計數器停止加法,則pnclk滯后1/8個PN碼元;l_clk為滯后指示,高電平有效,l_clk為高電平時,計數器在cyclk上升沿加2,,則控制pnclk提前1/8個PN碼元。
3 捕獲和跟蹤環在FPGA上的實現
本系統采用Altera公司的系列芯片,用VHDL語言編程[8-10],在Quartus 8.0中建模仿真。按照如下步驟完成擴頻碼的捕獲和跟蹤,并給出了仿真波形圖,進行了結果分析。
接收信號經過A/D變換之后進入FPGA,首先進入捕獲模塊,每一個PN碼片時刻都有一個相關值輸出,當相關值大于門限表示捕獲成功,轉入跟蹤階段。在跟蹤階段,PN碼發生模塊根據碼時鐘產生模塊的時鐘信號產生三路PN碼(超前、中間、滯后),接收信號與三路PN碼在鑒相模塊分別進行相關,中間一路產生解擴碼輸出,超前、滯后兩路的相關值作差并將結果輸出至碼時鐘產生模塊,來調整PN碼時鐘,從而控制PN碼的相位,每次調整1/8個碼片周期。當連續三次中間一路的相關值小于門限時表示已經失步,需要重新捕獲,接下來將轉入捕獲階段。沿此環路即可實現本地PN碼與接收擴頻碼的捕獲和跟蹤,進而完成信號的解擴輸出。
3.1 碼時鐘發生模塊仿真結果分析
圖5給出了碼時鐘發生模塊的仿真結果。其中cyclk是系統輸入時鐘;e_clk為超前指示,l_clk為滯后指示,pnclk為輸出PN碼時鐘。當e_clk為高電平時,在左側黑實線處可看到該模塊輸出的pnclk滯后了1/8個PN碼元;當l_clk為高電平時,在右側黑實線處可看到輸出的pnclk會提前1/8個PN碼元。
3.2 捕獲仿真結果分析
圖6(a)是捕獲階段的仿真結果圖。其中 cyclk是系統輸入時鐘;pnclk是捕獲階段產生本地PN碼的PN時鐘;reset是復位信號;sigin是輸入擴頻信號,jiekuo是輸出解擴信號;shibuj是捕獲模塊的啟動使能信號,高電平有效;genzong是跟蹤環路的啟動使能信號,高電平有效;xiangguangzhi是接收信號與本地PN碼的相關值累加和。圖6(b)中將xiangguanzhi信號放大,門限設置為1 760。在圖中右側黑實線處,此時相關值已經大于門限,表示捕獲成功,置genzong信號為高電平,shibuj信號為低電平,啟動跟蹤環路,終止捕獲環路。同時產生三路PN碼。
3.3 跟蹤環路仿真結果分析
圖7是跟蹤仿真結果圖。其各信號代表的意思同上。人為調整sigin的相位,跟蹤環路總是可以跟蹤輸入擴頻信號的變化,并準確解擴輸出,上述解擴輸出結果為01000010。其中黑色實線處是解擴毛刺,不影響結果的輸出。
3.4 連續三次失步之后轉入重新捕獲仿真結果及分析
圖8中cyclk是系統時鐘信號,pnclk是捕獲模塊產生PN碼的PN時鐘;reset是系統復位信號;sigin是輸入擴頻信號,genzong是跟蹤環路的使能信號,高電平有效;shibuj是捕獲的啟動使能信號,高電平有效;圖中每個黑色實線處是一個PN碼周期的結束處,即兩道黑色實線之間是一個PN碼周期。在第三道黑色實線后genzong信號變為低電平,shibuj信號變為高電平,即跟蹤環路終止,捕獲環路重新啟動。
4 結 語
本文介紹了直擴系統中PN碼同步捕獲和跟蹤的方法,用VHDL語言完成了電路各個模塊的編程實現,在Quartus 8.0中進行了仿真,并給出了仿真波形,證明電路工作正確可靠,滿足設計要求。
參 考 文 獻
[1]曾一凡,李暉.擴頻通信原理[M].北京:機械工業出版社,2005.
[2]代敏,禹思敏,羅玉玲.匹配濾波器同步捕獲技術FPGA設計[J].通信技術,2010,43(2):13-16.
[3]沈業兵,安建平,王愛華.數字匹配濾波器的遞歸折疊實現[J].北京理工大學學報,2006,26(8):733-736.
[4]王俊龍,崔永.一種數字匹配濾波器的設計[J].通信與信息處理,2009,4(28):51-53.
[5]胡修林,曾臻,張俊,等.直擴系統偽碼精確同步及FPGA實現[J].華中科技大學學報,2005,33(6):44-46.
[6]畢成軍,陳利學,孫茂一.基于FPGA的位同步信號提取[J].現代電子技術,2006,29(20):121-123.
[7]張京娟,陳實如.擴頻接收機同步跟蹤系統[J].彈箭與制導學報,2008,28(1):269-272.
[8]田耘,徐文波,張延偉,等.無線通信FPGA設計[M].北京:電子工業出版社,2008.
[9]馮壽延.FPGA/SoPC開發快速入門教程[M].廣州:華南理工大學出版社,2005.
[10]廖日坤.CPLD/FPGA嵌入式應用開發技術手冊[M].北京:中國電力出版社,2005.
作者簡介:
孟 明 男,1986年出生,安徽亳州人,碩士研究生。主要研究方向為微波天線與微波電路。
許家棟 男,1948年出生,安徽蕪湖人,教授,博士生導師。主要研究方向為計算電磁理論與微波天線。
韋 高 男,1963年出生,山東單縣人,教授,博士生導師。主要研究方向為微波通信與應用微波技術。