劉 成,魏可友,余金培,梁 廣
(1.中國(guó)科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所,上海 200050;2.上海微小衛(wèi)星工程中心,上海 201203)
基于FPGA的GPS接收機(jī)位同步幀同步設(shè)計(jì)與實(shí)現(xiàn)
劉 成1,2,魏可友1,2,余金培1,2,梁 廣1,2
(1.中國(guó)科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所,上海200050;2.上海微小衛(wèi)星工程中心,上海 201203)
為了能在GPS接收端獲取正確導(dǎo)航電文,研究了GPS接收機(jī)位同步、幀同步的基本原理和實(shí)現(xiàn)方式。提出一種采用FPGA來(lái)實(shí)現(xiàn)位同步、幀同步系統(tǒng)的設(shè)計(jì)方案。使用Xilinx開(kāi)發(fā)軟件,通過(guò)Verilog代碼完成對(duì)位同步、幀同步的設(shè)計(jì)并在硬件平臺(tái)上進(jìn)行調(diào)試。通過(guò)Chip Scope和邏輯分析儀進(jìn)行驗(yàn)證,結(jié)果表明該設(shè)計(jì)方案正確可靠,滿足設(shè)計(jì)要求。
GPS接收機(jī);位同步;幀同步;FPGA
隨著空間技術(shù)的不斷發(fā)展,星載GPS接收機(jī)已經(jīng)逐漸發(fā)展成為航天器的一個(gè)重要平臺(tái)載荷。它可以為航天器提供全球、全天候、實(shí)時(shí)、高精度的導(dǎo)航信息,并且提高航天器運(yùn)行的自主性。
GPS接收[1]主要包括射頻前端、捕獲、跟蹤、位同步、幀同步、數(shù)據(jù)解調(diào)模塊。由射頻前端接收GPS衛(wèi)星信號(hào),經(jīng)過(guò)處理后,由捕獲來(lái)獲取完成偽碼粗同步,跟蹤模塊完成載波環(huán)路、碼環(huán)的跟蹤鎖定后進(jìn)入位同步、幀同步模塊獲得導(dǎo)航電文數(shù)據(jù),最終解調(diào)輸出PVT(位置、速度和時(shí)間)信息。
文中主要研究位同步、幀同步模塊的設(shè)計(jì)方法和實(shí)現(xiàn)過(guò)程。采用 Xilinx公司 Virtex4系列的 XC4VSX55芯片,用Verilog編程實(shí)現(xiàn),通過(guò)仿真驗(yàn)證后下載到硬件平臺(tái)上調(diào)試。測(cè)試數(shù)據(jù)采用SMJ100A信號(hào)發(fā)生器模擬GPS衛(wèi)星信號(hào),經(jīng)過(guò)捕獲、跟蹤模塊所得,通過(guò)ChipScope和邏輯分析儀最終驗(yàn)證了算法的正確性。
位同步也稱為定時(shí)同步、符號(hào)同步、碼元同步,它是數(shù)字通信系統(tǒng)特有的一種同步,并且不論是基帶傳輸還是頻帶傳輸都需要位同步。在數(shù)字通信系統(tǒng)中[2],為了限制被傳輸?shù)臄?shù)字信號(hào)頻譜,需要對(duì)數(shù)字進(jìn)行濾波成型后再對(duì)載波進(jìn)行調(diào)制,以實(shí)現(xiàn)信號(hào)的帶限傳輸,接收端進(jìn)過(guò)相干解調(diào)、采樣判決后恢復(fù)出發(fā)送端的數(shù)字信號(hào)。由于信道傳輸延時(shí)及收發(fā)兩端時(shí)鐘的偏移,接收端采樣無(wú)法在最佳時(shí)刻進(jìn)行,使恢復(fù)出的數(shù)據(jù)與發(fā)送數(shù)據(jù)之間有誤差。接收端為了得到最佳采樣值恢復(fù)發(fā)送端所發(fā)出的數(shù)據(jù),要求接收時(shí)鐘與發(fā)送時(shí)鐘同步,需要有同步措施來(lái)調(diào)整接收端的采樣時(shí)鐘,這個(gè)同步過(guò)程稱為位同步。
導(dǎo)航信息比特的同步,是以載波和偽碼的鎖定狀態(tài)為前提的。信息比特的同步處理就是要確定信息比特的起始位置,并獲得信息比特的值。在這里需要使用相關(guān)器輸出連續(xù)1 ms相關(guān)信號(hào)和1 ms碼元計(jì)數(shù)值。
完成信息位同步的方法主要基于下面兩個(gè)條件:
1)衛(wèi)星的導(dǎo)航信息比特周期固定,且為碼周期的整數(shù)倍。
2)相關(guān)器每1 ms輸出一次累加數(shù)據(jù)信息。
導(dǎo)航信息位同步可以共用公式(1),使SUM_IPk值最大的k就是信息比特的位置。

其中:E{x}表示x的均值;k=0...19最佳比特位置的20個(gè)可能值;r=N20現(xiàn)在碼周期數(shù)的模20值;d=19。
圖1表示一個(gè)數(shù)據(jù)比特,從圖中可以看出,當(dāng)k=2時(shí),SUM_IPk得到最大值,從而可以得到數(shù)據(jù)比特的起始位置,完成數(shù)據(jù)比特的同步。

圖1 數(shù)據(jù)位同步示意圖Fig.1 Bit synchronization sketch map
在接收機(jī)中的導(dǎo)航信息位同步方式,主要有下面幾個(gè)步驟:
1)在接收機(jī)中維持20個(gè)起始位置依次相差1 ms的滑動(dòng)窗口,滑動(dòng)窗口的長(zhǎng)度為20 ms;
2)接收機(jī)對(duì)每個(gè)滑動(dòng)窗口內(nèi)的20個(gè)相關(guān)值進(jìn)行累加,找出累加值最大的滑動(dòng)窗口;
3)如果在一段時(shí)間內(nèi)(通常為2秒),都是同一滑動(dòng)窗口的累加值最大,則可以認(rèn)為該滑動(dòng)窗口起始位置為信息比特起始位置,完成信息位同步。
FPGA實(shí)現(xiàn):本設(shè)計(jì)采用2個(gè)計(jì)數(shù)器、2個(gè)緩存器和一個(gè)滑動(dòng)累加器。通過(guò)滑動(dòng)累加器計(jì)數(shù)累加20次,緩存判斷累加峰值,達(dá)到峰值即可認(rèn)為起點(diǎn)處為比特?cái)?shù)據(jù)的起始位置。然后,以該起點(diǎn)位基準(zhǔn)連續(xù)20組數(shù)據(jù)進(jìn)行累加多次判斷確認(rèn)是否都能出現(xiàn)累加峰值。如果均為峰值說(shuō)明完成位同步,否則重新進(jìn)行判斷。位同步的仿真波形如圖 2所示[3-4]。

圖2 位同步的仿真波形圖Fig.2 Bit synchronization simulationwaveform
其中,clk:系統(tǒng)時(shí)鐘;bitsync_flag:位同步的標(biāo)識(shí);data_out:輸出的比特?cái)?shù)據(jù);bitsync_valid:比特?cái)?shù)據(jù)有效脈沖。
從仿真波形圖可以看出,在完成位同步判斷后,標(biāo)志位變?yōu)楦唠娖健2⑶遥敵龅谋忍財(cái)?shù)據(jù)是重新開(kāi)始下一個(gè)20周期累加值的判斷后再輸出,所以與標(biāo)志位電平會(huì)有20 ms的延遲。測(cè)試文件設(shè)置為0、1交替輸出,即仿真結(jié)果滿足設(shè)計(jì)要求,實(shí)現(xiàn)了位同步過(guò)程。
考慮到實(shí)際接收到的GPS衛(wèi)星信號(hào)可能會(huì)存在信噪比很低的情況,會(huì)影響相關(guān)器累加值發(fā)生跳變。如果仍然采用2秒時(shí)間累積逐次判斷方法,會(huì)導(dǎo)致位同步時(shí)間加長(zhǎng)嚴(yán)重影響接收機(jī)的性能。因此在低信噪比條件下,應(yīng)加上閾值判斷。在2 s內(nèi),累加峰值正確判斷的概率大于90%(可以根據(jù)不同信噪比條件適當(dāng)調(diào)整),即認(rèn)為完成位同步。
圖3表示下載到硬件平臺(tái)上,采用信號(hào)發(fā)生器產(chǎn)生的實(shí)際GPS數(shù)據(jù)驗(yàn)證位同步,通過(guò)ChipScope軟件抓取硬件內(nèi)部信號(hào)進(jìn)行分析。經(jīng)過(guò)分析得出以下結(jié)論:每20相關(guān)器的累加值進(jìn)行累加判斷,累加和為正數(shù)代表比特1,累加和為負(fù)數(shù)代表比特0。每20個(gè)累加和之后才輸出比特值,完成位同步的判斷,結(jié)果滿足設(shè)計(jì)要求。說(shuō)明該設(shè)計(jì)正確有效,可以在實(shí)際的工程中進(jìn)行運(yùn)用。

圖3 ChipScope軟件調(diào)試波形圖Fig.3 Chip Scope debugs waveform
在數(shù)字通信過(guò)程中,發(fā)送端以一定數(shù)目的碼元組成一個(gè)個(gè)“字”或“句”,即組成一個(gè)個(gè)數(shù)據(jù)幀進(jìn)行傳輸,因此幀同步信號(hào)的頻率很容易由位同步信號(hào)經(jīng)分頻得出,但每個(gè)幀的開(kāi)頭和末尾卻無(wú)法直接由位同步信號(hào)獲取,為此,幀同步的主要任務(wù)就是要獲取每個(gè)數(shù)據(jù)幀的起始及結(jié)束位置。顯然,幀同步是以位同步為前提的,也就是說(shuō)需要在位同步基礎(chǔ)上獲得幀同步。
本小節(jié)主要討論GPS導(dǎo)航電文格式的幀同步技術(shù)。衛(wèi)星導(dǎo)航電文以幀與子幀的結(jié)構(gòu)形式編排成數(shù)據(jù)流D(t)。如圖3所示,每顆衛(wèi)星一幀接著一幀地發(fā)送導(dǎo)航電文,而在發(fā)送每幀電文時(shí),衛(wèi)星又以一子幀接著一子幀的形式進(jìn)行[5-8]。

圖4 Frame synchronization simulationwaveformFig.4 GPS navigation message
每幀導(dǎo)航電文長(zhǎng)1 500比特,計(jì)30 s,依次由5個(gè)子幀組成。每個(gè)子幀長(zhǎng)為300比特,計(jì)6 s,依次由10個(gè)字組成。每個(gè)字長(zhǎng)30比特,其最高位先被發(fā)送,而每一子幀中的每一字又均以6比特的奇偶校驗(yàn)碼結(jié)束。其中,每一比特長(zhǎng)20 ms,其間C/A碼重復(fù)20個(gè)周期。
系統(tǒng)獲得幀同步的依據(jù)有以下幾點(diǎn):
1)檢測(cè)到preamble
2)TLM的校驗(yàn)成功
3)HOW的最后兩個(gè)校驗(yàn)位為0
4)HOW的校驗(yàn)成功
5)子幀標(biāo)號(hào)合理(1~5)。
6)子幀校驗(yàn)和解碼成功。
當(dāng)以上6個(gè)條件全部滿足時(shí),才認(rèn)為獲得幀同步。
FPGA實(shí)現(xiàn):根據(jù)系統(tǒng)獲得幀同步的6個(gè)判斷依據(jù)可以設(shè)計(jì)一個(gè)狀態(tài)機(jī),由每一個(gè)狀態(tài)逐個(gè)進(jìn)行判斷,從而最終找出幀頭。根據(jù)所設(shè)計(jì)的狀態(tài)機(jī),編寫代碼后進(jìn)行仿真,波形圖如圖5所示[9-11]。

圖5 幀同步仿真波形圖Fig.5 Frame synchronization simulationwaveform
Data:輸入的比特?cái)?shù)據(jù);frameync_flag:幀同步標(biāo)志;data_out:輸出幀同步后的導(dǎo)航數(shù)據(jù);framesync_valid1:導(dǎo)航數(shù)據(jù)有效高脈沖。在完成幀同步的判斷,同步標(biāo)志位置高同時(shí)從幀頭開(kāi)始輸出導(dǎo)航數(shù)據(jù)。
GPS接收機(jī)在完成環(huán)路跟蹤后,把累加值送入位同步模塊,完成位同步后進(jìn)入幀同步模塊。因此,幀同步必須以位同步為前提,把兩個(gè)模塊進(jìn)行拼接后進(jìn)行聯(lián)合調(diào)試,如圖6所示。

圖6 比特/幀同步聯(lián)合調(diào)試Fig.6 Bit and frame synchronization joint debug
其中,bit_flag:位同步標(biāo)志;Bit:位同步后輸出比特;frame_flag:幀同步標(biāo)志;data_out:完成幀同步后的導(dǎo)航數(shù)據(jù)。
可以看出,首先完成位同步,然后完成幀同步,同步后數(shù)據(jù)輸出的低8位為10001011,正好是GPS導(dǎo)航數(shù)據(jù)的前導(dǎo)碼,子幀標(biāo)號(hào)為001即第一子幀,說(shuō)明完成了對(duì)位同步和幀同步模塊的聯(lián)合測(cè)試驗(yàn)證。
詳細(xì)介紹了位同步、幀同步的基本概念、實(shí)現(xiàn)方法、仿真波形圖及硬件調(diào)試結(jié)果。經(jīng)過(guò)分析FPGA仿真和硬件調(diào)試結(jié)果,證明設(shè)計(jì)滿足設(shè)計(jì)要求。測(cè)試數(shù)據(jù)采用信號(hào)發(fā)生器模擬的GPS衛(wèi)星信號(hào)更加真實(shí)客觀,說(shuō)明設(shè)計(jì)方法適合運(yùn)用在實(shí)際的GPS接收機(jī)中。
[1]謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.
[2]杜勇.數(shù)字通信同步技術(shù)的MATLAB與FPGA實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2015.
[3]田耘,徐文波,張延偉.無(wú)線通信FPGA設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007.
[4]段吉海,黃志偉.基于CPLD/FPGA數(shù)字通信系統(tǒng)建模與設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004.
[5]范寒柏,谷力偉,趙冉.幀同步系統(tǒng)的FPGA設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2009(8):17-8
[6]管立新,沈保鎖,柏勁松.幀同步系統(tǒng)的FPGA設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006(9):177-178.
[7]吳玉成,許太火,王黎明.幀同步電路設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2003(4):69-71.
[8]陳惠珍,包天珍.一種基于FPGA的幀同步提取方法的研究[J].電子技術(shù)應(yīng)用,2003(10):70-72.
[9]王夢(mèng)源,閆崢,東昕.一種精確幀同步算法及FPGA實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2015(2):151-154,159.
[10]朱娟娟,姚遠(yuǎn)程,秦明偉.高速數(shù)傳中定時(shí)同步設(shè)計(jì)與FPGA實(shí)現(xiàn)[J].電子科技,2014(3):117-119,132.
[11]石峰,吳笛,祁建華.基于FPGA的有源電力濾波器高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].陜西電力,2008(10):36-39.
Design and implement of GPS receiver synchronization module based on FPGA
LIU Cheng1,2,WEI Ke-you1,2,YU Jin-pei1,2,LIANG Guang1,2
(1.Shanghai Institute of Micro-system and Information Technology Chinese Academy of Science,Shanghai 200050,China;2.Shanghai Engineering Center for Micro-satellite,Shanghai 201203,China)
For obtain correct navigation message of the GPS receiver,the basic theory and implementation of GPS receiver was studied.Abit synchronization and frame synchronization is realized by using FPGA.Usingdevelopment software of Xilinx,by Verilog code to complete the bit synchronization and frame synchronization design and debug on the hardware platform. Validated by Chip Scope and logic analyzer,the results show that the design scheme is correct and reliable,meet the design requirement.
GPS receiver;bit synchronization;frame synchronization;FPGA
TN915
A
1674-6236(2016)01-0156-03
2015-06-02稿件編號(hào):201506035
國(guó)家自然科學(xué)基金(61401278);國(guó)防科技創(chuàng)新基金(CXJJ-15S086)
劉 成(1989—),男,四川瀘州人,碩士研究生。研究方向:無(wú)源定位算法。