文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.06.016
中文引用格式: 左小普,楊祖芳,,潘偉,,等. 基于FPGA的GPS基帶產(chǎn)生與控制模塊設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,,43(6):64-67.
英文引用格式: Zuo Xiaopu,,Yang Zufang,Pan Wei,,et al. The design and realization of GPS baseband generation and control module based on FPGA[J].Application of Electronic Technique,,2017,43(6):64-67.
0 引言
隨著GPS使用范圍日趨廣泛,,其安全問題也備受關(guān)注,。信息化作戰(zhàn)情況下,對敵對目標(biāo)衛(wèi)星導(dǎo)航定位系統(tǒng)進(jìn)行干擾,,阻止其有效定位,,成為了重要的作戰(zhàn)手段。隨著干擾與抗干擾領(lǐng)域的研究,,GPS定位系統(tǒng)對抗干擾的要求越來越高,,如何對抗種種人為的和非人為的干擾成為研究熱點(diǎn),。目前研究產(chǎn)生的基帶碼多為C/A碼,且多為單路輸出,,產(chǎn)生多種偽碼并輸出多路GPS信號是發(fā)展方向,。因此,本文研究產(chǎn)生多路GPS信號同時輸出和利用FPGA生成C/A碼,、P碼,。FPGA在硬件系統(tǒng)設(shè)計(jì)中具有很高的靈活性和可靠性?;鶐Тa的結(jié)構(gòu)是可以預(yù)測的,,方便利用FPGA重復(fù)產(chǎn)生并處理。利用FPGA產(chǎn)生基帶碼,,可以研究基帶碼又可以探究新碼型,,降低了系統(tǒng)的復(fù)雜度,提高了系統(tǒng)的集成度,。
1 系統(tǒng)總體方案
本文主要包括硬件和軟件兩部分,,軟件部分指用Verilog產(chǎn)生基帶碼和控制信號及C程序控制DDS產(chǎn)生載波。硬件電路由FPGA,、C8051控制電路和輔助電路組成,。由外部向FPGA提供時鐘信號和復(fù)位信號,F(xiàn)PGA用于產(chǎn)生基帶碼,、增益控制信號及可控放大信號,其他預(yù)留的輸入輸出口留作其他用途,。C8051用于向DDS提供控制信號,,DDS參考時鐘由外部晶振提供。系統(tǒng)總體設(shè)計(jì)如圖1所示,。
系統(tǒng)分為基帶模塊與射頻調(diào)制模塊兩部分,。基帶模塊生成基帶信號,,經(jīng)調(diào)制模塊調(diào)制得到L1和L2,,其中載波L1的頻率f1為1 575.42 MHz,載波L2的頻率f2為1 227.60 MHz,。每顆GPS衛(wèi)星用兩個L波段頻率L1和L2發(fā)射載波無線電信號,。
本文主要介紹基帶模塊。外部提供215 MHz的時鐘信號供給基帶碼發(fā)生器,,同時外部復(fù)位信號控制基帶碼發(fā)生器,,用于向L1和L2頻點(diǎn)的射頻調(diào)制部分提供C/A碼和P碼以及增益控制信號。圖1中,,1-2表示可以提供一路用于二進(jìn)制相移鍵控調(diào)制(Binary Phase Shift Keying,,BPSK),,也可提供串并轉(zhuǎn)換之后的兩路用于正交相移鍵控調(diào)制(Quadrature Phase Shift Keying,QPSK),。C8051提供控制DDS生成正弦波信號,,經(jīng)倍頻得到L1和L2頻點(diǎn)的載波用于載波調(diào)制。FPGA還提供可控放大信號,。
2 基帶模塊的實(shí)現(xiàn)
2.1 基帶產(chǎn)生模塊的總體設(shè)計(jì)
基帶產(chǎn)生模塊的原理圖如圖2所示,。由外部時鐘提供的時鐘信號經(jīng)整數(shù)分頻,得到的1.023 MHz時鐘給C/A碼發(fā)生器,,再經(jīng)L1串并轉(zhuǎn)換得到L1路C/A碼及其IQ兩路輸出,;得到的10.23 MHz時鐘送到P碼發(fā)生器,一路P碼經(jīng)L1串并轉(zhuǎn)換得到L1路P碼的IQ兩路輸出,;另一路P碼經(jīng)L2串并轉(zhuǎn)換得到L2路P碼的IQ兩路輸出,,C/A碼和P碼也可直接輸出。
2.2 分頻模塊
分頻模塊有兩個:用于提供C/A碼時鐘的210分頻和P碼時鐘的21分頻,,分別得到約1.023 MHz和10.23 MHz的時鐘信號,。
2.3 C/A碼產(chǎn)生模塊
C/A碼由一個10級最長線性反饋移位寄存器(maximum,m)序列對產(chǎn)生,,即一個C/A碼的長度是210-1=1 023碼片,。C/A碼的時鐘為1.023 MHz,周期為1 ms[1],。在一個C/A碼碼片時間內(nèi),,載波L1重復(fù)1 540周。如圖3所示,,C/A碼發(fā)生器由G1和G2兩個移位寄存器構(gòu)成,,兩個移位寄存器的輸出相異或得到C/A碼輸出。X1歷元到來時兩個寄存器全部置1,。
本設(shè)計(jì)中使用組合邏輯電路,,輸入信號有C/A碼時鐘clk、偽碼sat_PRN_ID,、復(fù)位信號reset,、C/A碼輸出out。偽碼號取21,,用Modelsim仿真的結(jié)果如圖4,、圖5所示。
如圖4所示,,C/A碼輸出1,,1,1,,1,,1,,0,0,,1,,1,0,,0,,0,0,,0,,1,1,,0,,1,1…,,偽碼為21的C/A碼前十位的8進(jìn)制,,表示為1 746,即二進(jìn)制的1111100110,,C/A碼輸出正確,。如圖5所示,在第1 023個時鐘周期之后,, C/A碼輸出恢復(fù)到開始的1111100110,,符合C/A碼長度為1 023這個特征。因此,,C/A碼發(fā)生器設(shè)計(jì)正確,。
2.4 P碼產(chǎn)生模塊
除C/A碼之外,P碼是GPS信號中的另一種偽碼,,它同時調(diào)制在L1和L2載波信號上。P碼的周期為7天,,碼率為10.23 MS/s,,碼寬Tp約等于0.1 μs。加密后的P碼成為Y碼,,它只有特定的用戶才可破譯,。
如圖6所示,偽隨機(jī)噪聲碼(Pseudo Random Noise,,PRN)為i的衛(wèi)星上產(chǎn)生的P碼Pi是序列X1與序列X2i的模2和,。序列X1的生成電路是由2個十二級反饋移位寄存器構(gòu)成的,每個十二級反饋移位寄存器各能產(chǎn)生一個周期為4 095碼片的最長線性反饋移位寄存器(maximum,,m)序列,,而這兩個m序列通過截短,,各自形成周期為4 092碼片的序列X1A和周期長為4 093碼片的序列X1B。截短碼X1A和X1B異或相加,,生成周期為4 092×4 093的長碼,。長碼再經(jīng)過截短,變成周期為1.5 s,、長為15 345 000碼片的序列X1,。
與產(chǎn)生X1序列的過程相類似,另外2個十二級反饋移位寄存器最后產(chǎn)生長為15 345 037碼片的序列X1,,而序列X2i是X2的平移等價碼,。對于PRN i,平移等價序列X2i是由X2即延時i個碼片后得到的,,其中i是1~37的整數(shù),。
序列X1與X2i異或相加后所得序列的周期長約為38星期的P碼,經(jīng)過截短,,得到周期為一星期長的P碼Pi,。GPS采用了37種不同的平移等價碼X2i,進(jìn)而獲得37種結(jié)構(gòu)不同,、周期均為一星期的P碼Pi,。GPS星座中的各顆衛(wèi)星產(chǎn)生一個互不相同的P碼,從而實(shí)現(xiàn)碼分多址[2],。
P碼發(fā)生模塊包含4個十二級反饋移位寄存器X1A,、X1B、X2A,、X2B,,計(jì)數(shù)器暫停恢復(fù)信號resume1a,、resume1b,、resume2a、resume2b,,計(jì)數(shù)器count1a,、count1b、count2a,、count2b決定其值,。flag1a、flag1b,、flag2a,、flag2b計(jì)數(shù)分別決定4個寄存器是否復(fù)位。svndaysrst為一周復(fù)位信號,,當(dāng)zcount計(jì)數(shù)達(dá)到403 200時,,svndaysrst置1,,所有計(jì)數(shù)器復(fù)位,svndaysrst復(fù)位與rst復(fù)位的初值一樣,。P碼輸出由X1輸出與X2移位輸出異或得到,,add為延時使能信號,由flag2a和count2a決定,。
P碼的仿真主要用于驗(yàn)證P碼的初始狀態(tài)以及寄存器復(fù)位,、計(jì)數(shù)復(fù)位、相移等功能是否實(shí)現(xiàn),,偽碼號取5,,用Modelsim仿真P碼發(fā)生器的結(jié)果如圖7所示。
根據(jù)仿真圖7,,在復(fù)位信號rst為1時載入初值,,復(fù)位信號變?yōu)?后第一個時鐘上升沿到來,X1A輸出0,,0,,1,0,,0,,1,0,,0,,1,0,,0,,0,X1B輸出0,,1,,0,1,,0,,1,0,,1,0,,1,,0,0,,X2A輸出1,,0,,0,1,,0,,0,1,,0,,0,1,,0,,1,X2B輸出0,,1,,0,1,,0,,1,0,,1,,0,1,,0,,0;P碼輸出1,,0,,0,0,,1,,1,1,,1,,1,1,,1,,1……,前12位轉(zhuǎn)換為8進(jìn)制是4 377,,因此P碼的初始輸出正確,。
圖8是P碼的計(jì)數(shù)復(fù)位仿真,寄存器X1A和X2A在4 092個基碼之后復(fù)位,寄存器X1B和X2B在4 093個基碼后復(fù)位,,復(fù)位后X1A,、X1B、X2A,、X2B輸出初始值,,與此同時代表其循環(huán)次數(shù)的計(jì)數(shù)器加1。仿真圖完全符合這一特征,,因此P碼的計(jì)數(shù)復(fù)位正確,。
X1B寄存器在循環(huán)了4 093個X1B后暫停,直到X1A循環(huán)了3 750個X1A后才恢復(fù)移位,。X2B寄存器與之類似,,但是在X1A寄存器完成3 750個循環(huán)之后,仍維持37個基碼時間不動,,X2A寄存器在3 750個循環(huán)之后也保持37個基碼時間不動,,之后由一周復(fù)位信號使其恢復(fù),如圖9所示,。
由圖9可以看出,,在X1B暫停時,其輸出保持不變,,暫停時刻flag1aout為3 749,,恢復(fù)時flag1aout為4 092,相隔343個基碼時間,。X2B暫停時,,其輸出亦保持不變,flag1bout恢復(fù)計(jì)數(shù)后,,從1計(jì)數(shù)到37,,X2A和X2B正好開始移位輸出,符合P碼的原理,。當(dāng)X1A循環(huán)3 750個循環(huán)后zcountout加1,,當(dāng)zcountout為403 200后復(fù)位。綜上所述,,P碼發(fā)生器的設(shè)計(jì)正確,。
對于上述P碼產(chǎn)生程序,PRN號確定時,,輸出的P碼由4個寄存器的值以及計(jì)數(shù)器決定,,如果知道這些值并作為初值輸入到程序中,就可以輸出任意時刻的P碼,。
3 控制模塊的實(shí)現(xiàn)
3.1 載波發(fā)生模塊
載波發(fā)生器采用ADI公司的集成DDS芯片AD9956,,通過對頻率控制字(Frequency Tuning Word,,F(xiàn)TW)和分頻字R的控制,能夠輸出特定的頻率值[3],。
輸出信號頻率與頻率控制字關(guān)系如下:
式中,fo表示輸出信號的頻率,;FTW表示48位的控制字,,取值范圍是0~247,R表示分頻系數(shù),,可取1,、2、4,、8,;fREFCLK表示輸入時鐘390 MHz。
3.2 載波發(fā)生控制模塊
載波發(fā)生控制模塊采用C8051F,,向DDS提供14個控制接口,,用于對DDS提供控制信號的調(diào)諧數(shù)據(jù)。根據(jù)后續(xù)調(diào)制電路的要求,,需要獲得70 MHz的信號用于得到L1頻段的載波,,60 MHz的信號用于得到L2頻段的載波,因此需分別對產(chǎn)生L1頻段和L2頻段的DDS進(jìn)行控制,。
3.3 增益控制模塊
對載波及已調(diào)信號增益的控制,,主要由FPGA提供增益控制信號實(shí)現(xiàn),用芯片HMC468LP3和HMC273MS10G配合實(shí)現(xiàn),。只需對電平控制就可實(shí)現(xiàn)增益的改變,。
4 系統(tǒng)測試與分析
4.1 測試儀器與設(shè)備
信號源采用Rohde & Schware SMB100A Signal Generator,頻率范圍為9 kHz~6 GHz,。頻譜儀采用Rohde & Schware FSC6.Spectrum,,頻率范圍為9 kHz~6 GHz。
4.2 C/A碼頻譜分析
在頻域,,一個碼速率為1.023 MHz的隨機(jī)序列的功率譜函數(shù)在1.023 MHz的整數(shù)倍處為0,。C/A碼雖然不是完全隨機(jī)的,但是其功率譜與隨機(jī)序列相似[4],。
圖10為調(diào)制之后的頻譜,,載波頻段L1為1 575.42 MHz,第一個零點(diǎn)M2的頻率為1 576.43 MHz,,與中心頻率L2相差約1.023 MHz,。可以看出,,第一副瓣相對于主瓣輸出功率衰減約15 dBm,,與實(shí)際的GPS信號基本符合。
4.3 P碼頻譜分析
如圖11所示,調(diào)制之后的頻譜中心頻率為1 575.42 MHz(M2點(diǎn)處),,之后的第一個零點(diǎn)M1為1 585.65 MHz,,相隔10.23 MHz。如圖12所示,,調(diào)制之后的頻譜中心頻率為1 227.6 MHz,,之后的第一個零點(diǎn)M1為1 237.83 MHz,相隔10.23 MHz,,達(dá)到要求,。
5 結(jié)論
GPS基帶信號可以通過調(diào)制而依附在正弦形式的載波上,然后衛(wèi)星將調(diào)制后的載波信號播發(fā)出去,。因此,,GPS基帶信號的研究對于導(dǎo)航定位設(shè)備的研發(fā)、檢測及生成式干擾信號的研究具有重要的應(yīng)用價值,。本文提出的基于FPGA產(chǎn)生的GPS基帶信號具有輸出增益可調(diào),、輸出頻點(diǎn)可控,可以為射頻模塊提供多路基帶信號及控制信號等特點(diǎn),。
參考文獻(xiàn)
[1] 王偉權(quán),,劉昌孝.用FPGA實(shí)現(xiàn)GPS的C/A碼發(fā)生器[J].桂林電子科技大學(xué)學(xué)報,2006,,26(5):347-350.
[2] 謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,,2009.
[3] Rochester Electronics.AD9956 data sheet[Z].2013.
[4] 瞿鐵錨.基于FPGA的GPS星座模擬器的研究與開發(fā)[D].南京:南京航空航天大學(xué),2007.
[5] 王立賓,,賀宏.GPS M碼,、C/A碼和P碼性能比較研究[J].測控遙感與導(dǎo)航定位,2008,,38(4):34-36.
作者信息:
左小普1,,楊祖芳2,潘 偉3,,鄭建生1,,3
(1.武漢大學(xué) 電子信息學(xué)院,湖北 武漢430072,;2.武漢工商學(xué)院 信息工程學(xué)院,,湖北 武漢430065;
3.武漢大學(xué)衛(wèi)星導(dǎo)航定位技術(shù)研究中心,,湖北 武漢430079)