文獻(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使用范圍日趨廣泛,其安全問(wèn)題也備受關(guān)注。信息化作戰(zhàn)情況下,對(duì)敵對(duì)目標(biāo)衛(wèi)星導(dǎo)航定位系統(tǒng)進(jìn)行干擾,阻止其有效定位,成為了重要的作戰(zhàn)手段。隨著干擾與抗干擾領(lǐng)域的研究,GPS定位系統(tǒng)對(duì)抗干擾的要求越來(lái)越高,如何對(duì)抗種種人為的和非人為的干擾成為研究熱點(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ì)中具有很高的靈活性和可靠性。基帶碼的結(jié)構(gòu)是可以預(yù)測(cè)的,方便利用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)制模塊兩部分?;鶐K生成基帶信號(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ā)射載波無(wú)線電信號(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í)最長(zhǎng)線性反饋移位寄存器(maximum,m)序列對(duì)產(chǎn)生,即一個(gè)C/A碼的長(zhǎng)度是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歷元到來(lái)時(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ù)到開(kāi)始的1111100110,符合C/A碼長(zhǎng)度為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碼,它只有特定的用戶(hù)才可破譯。
如圖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碼片的最長(zhǎng)線性反饋移位寄存器(maximum,m)序列,而這兩個(gè)m序列通過(guò)截短,各自形成周期為4 092碼片的序列X1A和周期長(zhǎng)為4 093碼片的序列X1B。截短碼X1A和X1B異或相加,生成周期為4 092×4 093的長(zhǎng)碼。長(zhǎng)碼再經(jīng)過(guò)截短,變成周期為1.5 s、長(zhǎng)為15 345 000碼片的序列X1。
與產(chǎn)生X1序列的過(guò)程相類(lèi)似,另外2個(gè)十二級(jí)反饋移位寄存器最后產(chǎn)生長(zhǎng)為15 345 037碼片的序列X1,而序列X2i是X2的平移等價(jià)碼。對(duì)于PRN i,平移等價(jià)序列X2i是由X2即延時(shí)i個(gè)碼片后得到的,其中i是1~37的整數(shù)。
序列X1與X2i異或相加后所得序列的周期長(zhǎng)約為38星期的P碼,經(jīng)過(guò)截短,得到周期為一星期長(zhǎ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í)鐘上升沿到來(lái),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寄存器與之類(lèi)似,但是在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正好開(kāi)始移位輸出,符合P碼的原理。當(dāng)X1A循環(huán)3 750個(gè)循環(huán)后zcountout加1,當(dāng)zcountout為403 200后復(fù)位。綜上所述,P碼發(fā)生器的設(shè)計(jì)正確。
對(duì)于上述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,通過(guò)對(duì)頻率控制字(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è)控制接口,用于對(duì)DDS提供控制信號(hào)的調(diào)諧數(shù)據(jù)。根據(jù)后續(xù)調(diào)制電路的要求,需要獲得70 MHz的信號(hào)用于得到L1頻段的載波,60 MHz的信號(hào)用于得到L2頻段的載波,因此需分別對(duì)產(chǎn)生L1頻段和L2頻段的DDS進(jìn)行控制。
3.3 增益控制模塊
對(duì)載波及已調(diào)信號(hào)增益的控制,主要由FPGA提供增益控制信號(hào)實(shí)現(xiàn),用芯片HMC468LP3和HMC273MS10G配合實(shí)現(xiàn)。只需對(duì)電平控制就可實(shí)現(xiàn)增益的改變。
4 系統(tǒng)測(cè)試與分析
4.1 測(cè)試儀器與設(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??梢钥闯?,第一副瓣相對(duì)于主瓣輸出功率衰減約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)可以通過(guò)調(diào)制而依附在正弦形式的載波上,然后衛(wèi)星將調(diào)制后的載波信號(hào)播發(fā)出去。因此,GPS基帶信號(hào)的研究對(duì)于導(dǎo)航定位設(shè)備的研發(fā)、檢測(cè)及生成式干擾信號(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星座模擬器的研究與開(kāi)發(fā)[D].南京:南京航空航天大學(xué),2007.
[5] 王立賓,賀宏.GPS M碼、C/A碼和P碼性能比較研究[J].測(cè)控遙感與導(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)