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

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

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

圖2 位同步的仿真波形圖Fig.2 Bit synchronization simulationwaveform
其中,clk:系統時鐘;bitsync_flag:位同步的標識;data_out:輸出的比特數據;bitsync_valid:比特數據有效脈沖。
從仿真波形圖可以看出,在完成位同步判斷后,標志位變為高電平。并且,輸出的比特數據是重新開始下一個20周期累加值的判斷后再輸出,所以與標志位電平會有20 ms的延遲。測試文件設置為0、1交替輸出,即仿真結果滿足設計要求,實現了位同步過程。
考慮到實際接收到的GPS衛星信號可能會存在信噪比很低的情況,會影響相關器累加值發生跳變。如果仍然采用2秒時間累積逐次判斷方法,會導致位同步時間加長嚴重影響接收機的性能。因此在低信噪比條件下,應加上閾值判斷。在2 s內,累加峰值正確判斷的概率大于90%(可以根據不同信噪比條件適當調整),即認為完成位同步。
圖3表示下載到硬件平臺上,采用信號發生器產生的實際GPS數據驗證位同步,通過ChipScope軟件抓取硬件內部信號進行分析。經過分析得出以下結論:每20相關器的累加值進行累加判斷,累加和為正數代表比特1,累加和為負數代表比特0。每20個累加和之后才輸出比特值,完成位同步的判斷,結果滿足設計要求。說明該設計正確有效,可以在實際的工程中進行運用。

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

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

圖5 幀同步仿真波形圖Fig.5 Frame synchronization simulationwaveform
Data:輸入的比特數據;frameync_flag:幀同步標志;data_out:輸出幀同步后的導航數據;framesync_valid1:導航數據有效高脈沖。在完成幀同步的判斷,同步標志位置高同時從幀頭開始輸出導航數據。
GPS接收機在完成環路跟蹤后,把累加值送入位同步模塊,完成位同步后進入幀同步模塊。因此,幀同步必須以位同步為前提,把兩個模塊進行拼接后進行聯合調試,如圖6所示。

圖6 比特/幀同步聯合調試Fig.6 Bit and frame synchronization joint debug
其中,bit_flag:位同步標志;Bit:位同步后輸出比特;frame_flag:幀同步標志;data_out:完成幀同步后的導航數據。
可以看出,首先完成位同步,然后完成幀同步,同步后數據輸出的低8位為10001011,正好是GPS導航數據的前導碼,子幀標號為001即第一子幀,說明完成了對位同步和幀同步模塊的聯合測試驗證。
詳細介紹了位同步、幀同步的基本概念、實現方法、仿真波形圖及硬件調試結果。經過分析FPGA仿真和硬件調試結果,證明設計滿足設計要求。測試數據采用信號發生器模擬的GPS衛星信號更加真實客觀,說明設計方法適合運用在實際的GPS接收機中。
[1]謝鋼.GPS原理與接收機設計[M].北京:電子工業出版社,2009.
[2]杜勇.數字通信同步技術的MATLAB與FPGA實現[M].北京:電子工業出版社,2015.
[3]田耘,徐文波,張延偉.無線通信FPGA設計[M].北京:電子工業出版社,2007.
[4]段吉海,黃志偉.基于CPLD/FPGA數字通信系統建模與設計[M].北京:電子工業出版社,2004.
[5]范寒柏,谷力偉,趙冉.幀同步系統的FPGA設計與實現[J].電子設計工程,2009(8):17-8
[6]管立新,沈保鎖,柏勁松.幀同步系統的FPGA設計[J].微計算機信息,2006(9):177-178.
[7]吳玉成,許太火,王黎明.幀同步電路設計[J].現代電子技術,2003(4):69-71.
[8]陳惠珍,包天珍.一種基于FPGA的幀同步提取方法的研究[J].電子技術應用,2003(10):70-72.
[9]王夢源,閆崢,東昕.一種精確幀同步算法及FPGA實現[J].電子設計工程,2015(2):151-154,159.
[10]朱娟娟,姚遠程,秦明偉.高速數傳中定時同步設計與FPGA實現[J].電子科技,2014(3):117-119,132.
[11]石峰,吳笛,祁建華.基于FPGA的有源電力濾波器高速數據采集系統設計[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稿件編號:201506035
國家自然科學基金(61401278);國防科技創新基金(CXJJ-15S086)
劉 成(1989—),男,四川瀘州人,碩士研究生。研究方向:無源定位算法。