文獻(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ì)中具有很高的靈活性和可靠性?;鶐Тa的結(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ù)到開始的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碼,,它只有特定的用戶才可破譯。
如圖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ò)程相類似,,另外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寄存器與之類似,,但是在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ì)正確,。
對(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星座模擬器的研究與開發(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)