劉憲陽(yáng),崔鶴,郝云霞
(1.航天恒星科技有限公司,北京 102209;2.航天恒星科技有限公司,天津 300450)
一種基于GPS C/A碼引導(dǎo)的P碼捕獲方法
劉憲陽(yáng)1,崔鶴2,郝云霞2
(1.航天恒星科技有限公司,北京102209;2.航天恒星科技有限公司,天津300450)
針對(duì)GPS系統(tǒng)P碼(Precision Code)信號(hào)多普勒頻移大、碼周期長(zhǎng)和速率高的特點(diǎn)帶來(lái)的捕獲慢且資源消耗較多的問(wèn)題,提出了一種新的基于GPS C/A(Coarse/Acquisition Code)碼引導(dǎo)P碼捕獲的方法。系統(tǒng)首先完成C/A碼捕獲,然后向新型P碼發(fā)生器置入引導(dǎo)信號(hào)zv-set,在接下來(lái)的第1個(gè)1.5s碼周跳變沿對(duì)V1和V2置入計(jì)數(shù)初值;在碼同步信號(hào)的驅(qū)動(dòng)下,V1和V2進(jìn)行循環(huán)計(jì)數(shù),等到V2=0時(shí),P碼碼值正確,返回引導(dǎo)完成標(biāo)志。通過(guò)仿真分析,該方法資源占用率減少了50%。結(jié)果表明該方法可有效避免繁瑣的運(yùn)算,適用于星載GPS雙頻導(dǎo)航接收機(jī)設(shè)計(jì)。
導(dǎo)航;精密測(cè)距碼;粗測(cè)距碼;捕獲;引導(dǎo)
隨著人類活動(dòng)探索范圍的擴(kuò)大和科技水平的提高,衛(wèi)星導(dǎo)航系統(tǒng)已成為信息體系的重要基礎(chǔ)設(shè)施,成為直接關(guān)系到國(guó)計(jì)民生的關(guān)鍵性技術(shù)支撐系統(tǒng)。目前世界上應(yīng)用最廣泛的是GPS接收機(jī),GPS衛(wèi)星同時(shí)發(fā)射L1、L2兩路擴(kuò)頻信號(hào),載波的中心頻率分別為1575.42MHz、1227.60MHz。L1載波上調(diào)制導(dǎo)航電文、C/A碼和P碼,L2載波上調(diào)制導(dǎo)航電文、P碼和C碼。其中民用GPS接收機(jī)通常只能利用L1載波上的C/A碼,軍用GPS接收機(jī)C/A碼和P碼的應(yīng)用都比較廣泛。
GPS P碼實(shí)際周期為38星期,衛(wèi)星信號(hào)中調(diào)制的是截短碼,碼周期為7天,碼速率為10.23Mcps。與C/A碼相比,P碼具有相對(duì)較短的碼寬和較長(zhǎng)的周期,因而GPS接收機(jī)通常能更精確地測(cè)量P碼相位,P碼的定位精度更高。但由于P碼周期很長(zhǎng),如果GPS接收機(jī)通過(guò)相關(guān)運(yùn)算來(lái)逐個(gè)依次地搜索接收信號(hào)中P碼的碼相位,則搜索、捕獲P碼信號(hào)將會(huì)需要很長(zhǎng)時(shí)間。傳統(tǒng)復(fù)現(xiàn)P碼的方式為L(zhǎng)1C/A碼捕獲完成時(shí),利用已知C/A碼的碼相位,通過(guò)一系列復(fù)雜運(yùn)算計(jì)算出P碼的碼相位。大量的運(yùn)算操作造成了大量邏輯資源的消耗,同時(shí)使得器件的運(yùn)行頻率受到限制,具有一定的局限性[2]。
C/A碼是碼長(zhǎng)為1023的偽隨機(jī)碼。與P碼相比,C/A碼的碼長(zhǎng)短、速率低、易于捕獲。同時(shí),在衛(wèi)星的偽碼生成電路控制下,每個(gè)GPS星歷的開(kāi)始時(shí)刻,它的第一個(gè)P碼碼片的產(chǎn)生與它的第一個(gè)C/A碼碼片的產(chǎn)生在時(shí)間上正好重合。利用C/A碼和P碼固有的相位關(guān)系,本文提出一種新的基于碼周末尾時(shí)刻C/A碼引導(dǎo)的P碼捕獲方法。經(jīng)仿真驗(yàn)證和工程實(shí)現(xiàn),此方法能較快地捕獲P碼,占用資源較少,對(duì)于星載導(dǎo)航接收機(jī)的設(shè)計(jì)以及研究我國(guó)的衛(wèi)星定位系統(tǒng)具有重要的指導(dǎo)意義。
1.1碼
基于碼分多址的GPS信號(hào)上存在著C/A碼和P碼兩種測(cè)距碼,且兩種碼都具有良好的自相關(guān)和互相關(guān)性能。接收機(jī)捕獲偽碼的方式是通過(guò)對(duì)所接收到的衛(wèi)星信號(hào)與接收機(jī)內(nèi)部所復(fù)制的偽碼進(jìn)行相關(guān)運(yùn)算,檢測(cè)自相關(guān)函數(shù)的峰值,從而判斷對(duì)偽碼的正確捕獲。
C/A碼周期為1ms,碼長(zhǎng)為1023個(gè)碼片,碼速率為1.023Mcps。P碼周期為7天,碼率為10.23Mcps,同C/A相比P碼具有更長(zhǎng)的碼周期,且碼的長(zhǎng)度也更長(zhǎng)。采用捕獲C/A碼的策略對(duì)P碼進(jìn)行捕獲顯然會(huì)花費(fèi)很長(zhǎng)的時(shí)間,不利于接收機(jī)對(duì)導(dǎo)航信號(hào)的接收[1]。
1.2P碼產(chǎn)生原理
如圖1所示,PRN編號(hào)為i的衛(wèi)星上所產(chǎn)生的P 碼P1是碼率同為10.23Mcps的序列X1與序列X2i的模2和(二進(jìn)制異或加法)。其中序列X1的周期為1.5s,長(zhǎng)15345000(即1.5s x 10.23Mcps)碼片,而序列X2i是長(zhǎng)為15345037的序列X2的平移等價(jià)碼。序列X1包括碼元地址計(jì)數(shù)器X1A、X1B,序列X2包括碼元地址計(jì)數(shù)器X2A、X2B。其中X1A和X2A的計(jì)數(shù)范圍為0~4091,X1B和X2B的計(jì)數(shù)范圍為0~4092。
圖1 GPS P碼設(shè)定器和碼發(fā)生器方框圖
在每個(gè)GPS星期的開(kāi)始時(shí)刻,P碼發(fā)生器中的各個(gè)寄存器值均被重新初始化,并產(chǎn)生序列X1和P碼第一個(gè)碼片的起始沿。我們將序列X1的每一個(gè)周期的起始沿稱為一個(gè)X1歷元,可見(jiàn)兩個(gè)相鄰X1歷元之間相隔1.5s。之所以強(qiáng)調(diào)P碼發(fā)生器中的X1歷元,是由于X1歷元對(duì)于GPS衛(wèi)星上各個(gè)偽碼發(fā)生器的同步運(yùn)行起著極為重要的作用。實(shí)際上,C/ A碼發(fā)生器的運(yùn)行以X1歷元作為同步信號(hào),稍具體地說(shuō),C/A碼發(fā)生器中的各個(gè)寄存器在X1歷元被初始化。這使得在同一顆衛(wèi)星上P碼第一個(gè)碼片的起始沿與C/A碼第一個(gè)碼片的起始沿在時(shí)間上正好重合。
圖2 P碼碼址計(jì)算機(jī)制
2.1引導(dǎo)原理
工程實(shí)現(xiàn)時(shí),傳統(tǒng)的基于C/A碼引導(dǎo)的P碼捕獲方法中耗用資源量最大的是“查找表地址產(chǎn)生器”,即從zv計(jì)數(shù)計(jì)算4個(gè)查找表地址的工作,如圖2所示。圖中用L1C/A碼的cycle和chip計(jì)算V1(X1序列碼片計(jì)數(shù)),V1=(cycle×1023+chip)×10。用V1分別去除4092、4093,得到商和余數(shù),求得X1A、X1B地址;用V2(X2序列碼片計(jì)數(shù))分別去除4092、4093,得到商和余數(shù),求得X2A、X2B地址。大量的運(yùn)算操作造成了大量邏輯資源的消耗,且除法器采用多個(gè)clk實(shí)現(xiàn),使得芯片的運(yùn)行頻率受到限制[4]。
本文中改進(jìn)后的P碼生成原理及內(nèi)部結(jié)構(gòu)如圖3所示,實(shí)現(xiàn)步驟如下:
(1)當(dāng)L1C/A碼完成捕獲時(shí),對(duì)P碼發(fā)生器模塊置入此時(shí)L1C/A碼中得到的1.5s碼周Z-in計(jì)數(shù)(計(jì)數(shù)范圍0~403199)。等待最近的1.5s碼周跳變沿,對(duì)V1和V2進(jìn)行置數(shù)。由于此時(shí)在1.5s邊沿上,所以V1=0,而V2則用計(jì)算產(chǎn)生:V2=15345037-Z-in ×37;
(2)在“碼同步信號(hào)”的驅(qū)動(dòng)下V1進(jìn)行0~15344999計(jì)數(shù),V2進(jìn)行0~15345036計(jì)數(shù)。計(jì)數(shù)器計(jì)滿后分別輸出復(fù)位信號(hào)給X1A、X1B、X2A、X2B碼表地址計(jì)數(shù)器進(jìn)行復(fù)位;
(3)碼表地址計(jì)數(shù)器X1A、X2A進(jìn)行0~4091計(jì)數(shù),X1B、X2B進(jìn)行0~4092計(jì)數(shù),計(jì)數(shù)狀態(tài)值即為碼表地址。查表得X1A、X1B、X2A、X2B的值,并對(duì)X1A、X1B和X2A、X2B分別進(jìn)行模2和操作,得到X1序列值和X2序列值;
(4)根據(jù)置入的不同衛(wèi)星號(hào),對(duì)X2序列值進(jìn)行延遲并在“半碼片同步信號(hào)”驅(qū)動(dòng)下與X1序列值異或相加,得到超前支路P碼碼值,對(duì)超前支路P碼序列進(jìn)行延遲,分別得到“即時(shí)、滯后”兩路P碼碼片,相關(guān)間距為1/2P碼碼片長(zhǎng)度。
圖3 P碼生成原理示意圖
2.2引導(dǎo)時(shí)序
本文闡述的基于碼周末尾時(shí)刻GPS C/A碼引導(dǎo)的P碼捕獲方法的引導(dǎo)時(shí)序如圖4所示。當(dāng)L1C/ A碼捕獲完成后向P碼發(fā)生器置入引導(dǎo)信號(hào)zv-set,等待接下來(lái)的第1個(gè)1.5s碼周跳變沿,對(duì)V1和V2進(jìn)行初始化。在碼同步信號(hào)的驅(qū)動(dòng)下,V1和V2進(jìn)行循環(huán)計(jì)數(shù),等到V2=0時(shí),P碼碼值正確,返回引導(dǎo)完成標(biāo)志,開(kāi)展碼搜索操作。
圖4 GPS C/A碼引導(dǎo)的P碼捕獲方法時(shí)序圖
2.3捕獲算法仿真驗(yàn)證
圖5所示為C/A碼引導(dǎo)P碼產(chǎn)生的modelsim仿真圖。完成對(duì)C/A的捕獲跟蹤后,給FPGA的zv-set-i置高電平同時(shí)引導(dǎo)信號(hào)有效標(biāo)志zv-set-flag變?yōu)楦唠娖?。?dāng)遇到第一個(gè)Z計(jì)數(shù)跳變沿時(shí),zv-set-flag變?yōu)榈碗娖?,開(kāi)始對(duì)P碼進(jìn)行引導(dǎo),直至v2-cnt為0時(shí),P碼輸出正確。
圖5 C/A碼引導(dǎo)P碼產(chǎn)生標(biāo)志
通過(guò)圖6和圖7仿真可知,基于GPS C/A碼引導(dǎo)產(chǎn)生的P碼具有良好的自相關(guān)特性。圖7中副峰幅度僅為主峰的1/5,不會(huì)影響對(duì)P碼捕獲的判決。
圖6 碼片數(shù)50的P碼自相關(guān)運(yùn)算仿真圖
圖7 整周P碼自相關(guān)運(yùn)算仿真圖
2.4與傳統(tǒng)P碼捕獲方法結(jié)果對(duì)比
工程應(yīng)用中使用FPGA對(duì)改進(jìn)后的P碼捕獲方法及傳統(tǒng)的引導(dǎo)方案分別進(jìn)行實(shí)現(xiàn)。FPGA芯片面積資源占用對(duì)比結(jié)果如下表所示。
表1 單個(gè)P碼發(fā)生器資源比對(duì)
本文驗(yàn)證過(guò)程中使用的綜合器為XST-v12.3,目標(biāo)器件為XC4VSX55。
(1)從綜合出的結(jié)果可見(jiàn),新P碼發(fā)生器的LUT、FF使用量均降低了一半。
(2)由于完全去掉了多個(gè)時(shí)鐘才能完成一次數(shù)據(jù)處理的÷4092、÷4093除法器,本方案的FPGA時(shí)鐘運(yùn)行頻率不再受約束,也無(wú)需采用多時(shí)鐘域信號(hào)處理方式DCM提高內(nèi)部時(shí)鐘頻率,有利于后續(xù)低頻、低功耗星載型號(hào)應(yīng)用。
(3)本方案的偽碼引導(dǎo)與地址生成方式,天然的支持采用4組線性反饋移位寄存器來(lái)產(chǎn)生L1P、L2P偽碼。在星載FPGA轉(zhuǎn)ASIC時(shí),面對(duì)ASIC面積資源尤其是RAM資源嚴(yán)重受限的情況,將每個(gè)P碼發(fā)生器的4個(gè)4096×1的RAM方便的替換成反饋移位寄存器,將極大節(jié)約ASIC芯片面積。
本文從GPS C/A碼和P碼在碼周結(jié)束時(shí)刻的相位關(guān)系的角度出發(fā),提出了一種基于GPS C/A碼引導(dǎo)P碼的捕獲方法。該方法提出一種在特殊位置的引導(dǎo)時(shí)序,避免對(duì)P碼各個(gè)相位的遍歷搜索,可以有效地提高P碼的捕獲效率。本文改進(jìn)后的基于碼周末尾時(shí)刻的GPS C/A碼引導(dǎo)的P碼捕獲方法已在星載導(dǎo)航接收機(jī)型號(hào)中得到應(yīng)用,對(duì)發(fā)展我國(guó)自己的衛(wèi)星定位系統(tǒng)提供了技術(shù)支持。
[1] 代燕,李洪祚,王孟芝.GPS接收信號(hào)捕獲方法的研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào),2003,3.
[2] Kaplan D E,Hegarty C J.Understanding GPS:principles and applications[M].2nd Ed.[S.1.]:Artech House,2006.
[3]Gordon J.R.Povey.Spread Spectrum PN Code AcquisitionUsingHybridCorrelatorArchitectures. WirelessPersonalCommunications.August,1998:151-164.
[4] 張健,楊士中.短碼引導(dǎo)長(zhǎng)碼同步的快速捕獲方法[J].無(wú)線電工程,1997,27(6).
[5]Riccardo De Gaudenzi.Signal Synchronization for Direct-SequenceCode-DivisionMultipleAccess Radio Modems[J].Telecommunication Systems,1998,9(1):73-89.
[6]Jing P,F(xiàn)rank V G,Janusz S,et al.Fast direct GPS P-Codeacquisition[J].GPSSolutions,2003(7):168-175.
[7] 孫禮,王銀峰,何川,等.GPS信號(hào)捕獲與跟蹤策略確定及實(shí)現(xiàn)[J].北京航空航天大學(xué)學(xué)報(bào),1999,25(2):134-137.
A method of P code acquisition base on GPS C/A code
LIU Xianyang1,CUI He2,HAO Yunxia2
(1.Space Star Technology Co.,Ltd,Beijing,102209;2.Space Star Technology Co.,Ltd,Tianjin,300450)
Because of the GPS P code’s own features:longer Doppler shift,longer duration and higher speed,there is more resource and time consumption in the traditional GPS P code acquisition.A new P code acquisition method base on C/A code guide is proposed to resolve the problem.The system first finish the acquisition of C/A code,then enable the zv-set guide signal in the new type P code generator,set the initial value of V1 and V2 counter until the first 1.5s code cycle’s edge arrived.The V1 and V2 start cycle count under the code synchronization signal drive,the P code is generated and the guide end flag is enabled when the V2 reached to zero.Simulation result shows that the method reduced 50%resource consumption,suitable for satellite dual-frequency GPS navigation receivers.
navigation;P code;C/A code;acquisition
TN911.7
A
1672-9870(2015)05-0097-04
2015-07-10
劉憲陽(yáng)(1984-),男,碩士,工程師,E-mail:40013335@qq.com