文獻(xiàn)標(biāo)識(shí)碼: 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信號(hào)是發(fā)展方向。因此,,本文研究產(chǎn)生多路GPS信號(hào)同時(shí)輸出和利用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)生基帶碼和控制信號(hào)及C程序控制DDS產(chǎn)生載波,。硬件電路由FPGA,、C8051控制電路和輔助電路組成。由外部向FPGA提供時(shí)鐘信號(hào)和復(fù)位信號(hào),,F(xiàn)PGA用于產(chǎn)生基帶碼,、增益控制信號(hào)及可控放大信號(hào),其他預(yù)留的輸入輸出口留作其他用途,。C8051用于向DDS提供控制信號(hào),,DDS參考時(shí)鐘由外部晶振提供。系統(tǒng)總體設(shè)計(jì)如圖1所示,。
系統(tǒng)分為基帶模塊與射頻調(diào)制模塊兩部分,。基帶模塊生成基帶信號(hào),,經(jīng)調(diào)制模塊調(diào)制得到L1和L2,,其中載波L1的頻率f1為1 575.42 MHz,,載波L2的頻率f2為1 227.60 MHz。每顆GPS衛(wèi)星用兩個(gè)L波段頻率L1和L2發(fā)射載波無線電信號(hào),。
本文主要介紹基帶模塊,。外部提供215 MHz的時(shí)鐘信號(hào)供給基帶碼發(fā)生器,同時(shí)外部復(fù)位信號(hào)控制基帶碼發(fā)生器,,用于向L1和L2頻點(diǎn)的射頻調(diào)制部分提供C/A碼和P碼以及增益控制信號(hào),。圖1中,1-2表示可以提供一路用于二進(jìn)制相移鍵控調(diào)制(Binary Phase Shift Keying,,BPSK),,也可提供串并轉(zhuǎn)換之后的兩路用于正交相移鍵控調(diào)制(Quadrature Phase Shift Keying,QPSK),。C8051提供控制DDS生成正弦波信號(hào),,經(jīng)倍頻得到L1和L2頻點(diǎn)的載波用于載波調(diào)制。FPGA還提供可控放大信號(hào),。
2 基帶模塊的實(shí)現(xiàn)
2.1 基帶產(chǎn)生模塊的總體設(shè)計(jì)
基帶產(chǎn)生模塊的原理圖如圖2所示,。由外部時(shí)鐘提供的時(shí)鐘信號(hào)經(jīng)整數(shù)分頻,得到的1.023 MHz時(shí)鐘給C/A碼發(fā)生器,,再經(jīng)L1串并轉(zhuǎn)換得到L1路C/A碼及其IQ兩路輸出,;得到的10.23 MHz時(shí)鐘送到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 分頻模塊
分頻模塊有兩個(gè):用于提供C/A碼時(shí)鐘的210分頻和P碼時(shí)鐘的21分頻,,分別得到約1.023 MHz和10.23 MHz的時(shí)鐘信號(hào),。
2.3 C/A碼產(chǎn)生模塊
C/A碼由一個(gè)10級(jí)最長線性反饋移位寄存器(maximum,m)序列對產(chǎn)生,,即一個(gè)C/A碼的長度是210-1=1 023碼片,。C/A碼的時(shí)鐘為1.023 MHz,周期為1 ms[1],。在一個(gè)C/A碼碼片時(shí)間內(nèi),,載波L1重復(fù)1 540周。如圖3所示,,C/A碼發(fā)生器由G1和G2兩個(gè)移位寄存器構(gòu)成,,兩個(gè)移位寄存器的輸出相異或得到C/A碼輸出。X1歷元到來時(shí)兩個(gè)寄存器全部置1,。
本設(shè)計(jì)中使用組合邏輯電路,,輸入信號(hào)有C/A碼時(shí)鐘clk、偽碼sat_PRN_ID,、復(fù)位信號(hào)reset,、C/A碼輸出out,。偽碼號(hào)取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個(gè)時(shí)鐘周期之后,, C/A碼輸出恢復(fù)到開始的1111100110,符合C/A碼長度為1 023這個(gè)特征,。因此,,C/A碼發(fā)生器設(shè)計(jì)正確。
2.4 P碼產(chǎn)生模塊
除C/A碼之外,,P碼是GPS信號(hào)中的另一種偽碼,,它同時(shí)調(diào)制在L1和L2載波信號(hào)上。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è)十二級(jí)反饋移位寄存器構(gòu)成的,,每個(gè)十二級(jí)反饋移位寄存器各能產(chǎn)生一個(gè)周期為4 095碼片的最長線性反饋移位寄存器(maximum,m)序列,,而這兩個(gè)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個(gè)十二級(jí)反饋移位寄存器最后產(chǎn)生長為15 345 037碼片的序列X1,,而序列X2i是X2的平移等價(jià)碼,。對于PRN i,平移等價(jià)序列X2i是由X2即延時(shí)i個(gè)碼片后得到的,,其中i是1~37的整數(shù),。
序列X1與X2i異或相加后所得序列的周期長約為38星期的P碼,經(jīng)過截短,,得到周期為一星期長的P碼Pi,。GPS采用了37種不同的平移等價(jià)碼X2i,進(jìn)而獲得37種結(jié)構(gòu)不同,、周期均為一星期的P碼Pi,。GPS星座中的各顆衛(wèi)星產(chǎn)生一個(gè)互不相同的P碼,從而實(shí)現(xiàn)碼分多址[2],。
P碼發(fā)生模塊包含4個(gè)十二級(jí)反饋移位寄存器X1A,、X1B、X2A,、X2B,,計(jì)數(shù)器暫停恢復(fù)信號(hào)resume1a,、resume1b,、resume2a、resume2b,,計(jì)數(shù)器count1a,、count1b,、count2a、count2b決定其值,。flag1a,、flag1b、flag2a,、flag2b計(jì)數(shù)分別決定4個(gè)寄存器是否復(fù)位,。svndaysrst為一周復(fù)位信號(hào),當(dāng)zcount計(jì)數(shù)達(dá)到403 200時(shí),,svndaysrst置1,,所有計(jì)數(shù)器復(fù)位,svndaysrst復(fù)位與rst復(fù)位的初值一樣,。P碼輸出由X1輸出與X2移位輸出異或得到,,add為延時(shí)使能信號(hào),由flag2a和count2a決定,。
P碼的仿真主要用于驗(yàn)證P碼的初始狀態(tài)以及寄存器復(fù)位,、計(jì)數(shù)復(fù)位、相移等功能是否實(shí)現(xiàn),,偽碼號(hào)取5,,用Modelsim仿真P碼發(fā)生器的結(jié)果如圖7所示。
根據(jù)仿真圖7,,在復(fù)位信號(hào)rst為1時(shí)載入初值,復(fù)位信號(hào)變?yōu)?后第一個(gè)時(shí)鐘上升沿到來,,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個(gè)基碼之后復(fù)位,寄存器X1B和X2B在4 093個(gè)基碼后復(fù)位,,復(fù)位后X1A,、X1B、X2A,、X2B輸出初始值,,與此同時(shí)代表其循環(huán)次數(shù)的計(jì)數(shù)器加1。仿真圖完全符合這一特征,,因此P碼的計(jì)數(shù)復(fù)位正確,。
X1B寄存器在循環(huán)了4 093個(gè)X1B后暫停,直到X1A循環(huán)了3 750個(gè)X1A后才恢復(fù)移位,。X2B寄存器與之類似,,但是在X1A寄存器完成3 750個(gè)循環(huán)之后,仍維持37個(gè)基碼時(shí)間不動(dòng),,X2A寄存器在3 750個(gè)循環(huán)之后也保持37個(gè)基碼時(shí)間不動(dòng),,之后由一周復(fù)位信號(hào)使其恢復(fù),如圖9所示,。
由圖9可以看出,,在X1B暫停時(shí),其輸出保持不變,,暫停時(shí)刻flag1aout為3 749,恢復(fù)時(shí)flag1aout為4 092,,相隔343個(gè)基碼時(shí)間,。X2B暫停時(shí),其輸出亦保持不變,,flag1bout恢復(fù)計(jì)數(shù)后,,從1計(jì)數(shù)到37,X2A和X2B正好開始移位輸出,,符合P碼的原理,。當(dāng)X1A循環(huán)3 750個(gè)循環(huán)后zcountout加1,當(dāng)zcountout為403 200后復(fù)位。綜上所述,,P碼發(fā)生器的設(shè)計(jì)正確,。
對于上述P碼產(chǎn)生程序,PRN號(hào)確定時(shí),,輸出的P碼由4個(gè)寄存器的值以及計(jì)數(shù)器決定,,如果知道這些值并作為初值輸入到程序中,就可以輸出任意時(shí)刻的P碼,。
3 控制模塊的實(shí)現(xiàn)
3.1 載波發(fā)生模塊
載波發(fā)生器采用ADI公司的集成DDS芯片AD9956,,通過對頻率控制字(Frequency Tuning Word,F(xiàn)TW)和分頻字R的控制,,能夠輸出特定的頻率值[3],。
輸出信號(hào)頻率與頻率控制字關(guān)系如下:
式中,fo表示輸出信號(hào)的頻率,;FTW表示48位的控制字,,取值范圍是0~247,R表示分頻系數(shù),,可取1,、2、4,、8,;fREFCLK表示輸入時(shí)鐘390 MHz。
3.2 載波發(fā)生控制模塊
載波發(fā)生控制模塊采用C8051F,,向DDS提供14個(gè)控制接口,,用于對DDS提供控制信號(hào)的調(diào)諧數(shù)據(jù)。根據(jù)后續(xù)調(diào)制電路的要求,,需要獲得70 MHz的信號(hào)用于得到L1頻段的載波,,60 MHz的信號(hào)用于得到L2頻段的載波,因此需分別對產(chǎn)生L1頻段和L2頻段的DDS進(jìn)行控制,。
3.3 增益控制模塊
對載波及已調(diào)信號(hào)增益的控制,,主要由FPGA提供增益控制信號(hào)實(shí)現(xiàn),用芯片HMC468LP3和HMC273MS10G配合實(shí)現(xiàn),。只需對電平控制就可實(shí)現(xiàn)增益的改變,。
4 系統(tǒng)測試與分析
4.1 測試儀器與設(shè)備
信號(hào)源采用Rohde & Schware SMB100A Signal Generator,頻率范圍為9 kHz~6 GHz,。頻譜儀采用Rohde & Schware FSC6.Spectrum,,頻率范圍為9 kHz~6 GHz。
4.2 C/A碼頻譜分析
在頻域,,一個(gè)碼速率為1.023 MHz的隨機(jī)序列的功率譜函數(shù)在1.023 MHz的整數(shù)倍處為0,。C/A碼雖然不是完全隨機(jī)的,但是其功率譜與隨機(jī)序列相似[4]。
圖10為調(diào)制之后的頻譜,,載波頻段L1為1 575.42 MHz,,第一個(gè)零點(diǎn)M2的頻率為1 576.43 MHz,與中心頻率L2相差約1.023 MHz,??梢钥闯觯谝桓卑晗鄬τ谥靼贻敵龉β仕p約15 dBm,,與實(shí)際的GPS信號(hào)基本符合,。
4.3 P碼頻譜分析
如圖11所示,調(diào)制之后的頻譜中心頻率為1 575.42 MHz(M2點(diǎn)處),,之后的第一個(gè)零點(diǎn)M1為1 585.65 MHz,,相隔10.23 MHz。如圖12所示,,調(diào)制之后的頻譜中心頻率為1 227.6 MHz,,之后的第一個(gè)零點(diǎn)M1為1 237.83 MHz,相隔10.23 MHz,,達(dá)到要求,。
5 結(jié)論
GPS基帶信號(hào)可以通過調(diào)制而依附在正弦形式的載波上,然后衛(wèi)星將調(diào)制后的載波信號(hào)播發(fā)出去,。因此,,GPS基帶信號(hào)的研究對于導(dǎo)航定位設(shè)備的研發(fā)、檢測及生成式干擾信號(hào)的研究具有重要的應(yīng)用價(jià)值,。本文提出的基于FPGA產(chǎn)生的GPS基帶信號(hào)具有輸出增益可調(diào),、輸出頻點(diǎn)可控,可以為射頻模塊提供多路基帶信號(hào)及控制信號(hào)等特點(diǎn),。
參考文獻(xiàn)
[1] 王偉權(quán),,劉昌孝.用FPGA實(shí)現(xiàn)GPS的C/A碼發(fā)生器[J].桂林電子科技大學(xué)學(xué)報(bào),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)