文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.173766
中文引用格式: 韋照川,潘軍道,吳國增. 基于SoC FPGA的北斗接收機載波跟蹤環路設計[J].電子技術應用,2018,44(6):124-128.
英文引用格式: Wei Zhaochuan,Pan Jundao,Wu Guozeng. Design of carrier tracking loop for Beidou receiver based on SoC FPGA[J]. Application of Electronic Technique,2018,44(6):124-128.
0 引言
全球導航衛星系統(Global Navigation Satellite System,GNSS)是維護國家安全、發展經濟的重要基礎設施,是體現國家綜合國力以及現代化大國國際影響力的重要標志[1]。發展支持北斗導航系統的接收機終端是北斗導航系統不可或缺的組成部分。目前中國正在大力發展北斗衛星導航系統(BDS),因此大力研究與設計基于BDS的北斗衛星導航接收機成為北斗衛星導航系統重要的環節。
半導體集成快速發展,目前已經向著融合硅片方向發展。FPGA也毫不例外地朝這個方向走去,通用處理器、具有ASSP和DSP功能的IP不斷集成到FPGA中;FPGA技術的不斷創新與突破,以及硅融合架構產品的推出,必然使FPGA應用于許多先前不曾涉足的領域[2]。隨著技術的進步,SoC高集成度的單芯片化的接收機開發將成為未來衛星導航接收機發展的主要方向。
1 SoC硬件系統設計
系統采用Intel 28 nm工藝的低功耗Cyclone V 5CSEM5F31C6N SoC FPGA作為主控芯片。基于SoC FPGA的載波跟蹤環路的硬件系統設計如圖1所示。
SoC System主要由2部分組成,包括Qsys System(嵌入式系統)部分的硬件設計和基于Verilog HDL的FPGA System(FPGA邏輯單元系統)硬件設計。
1.1 Qsys System設計
根據圖1設計,利用Qsys工具搭建完成Qsys系統,其互聯情況如圖2所示。
系統各部分功能設計如下:
(1)clk_0為外部時鐘、復位輸入,為PLL提供TCXO-50M時鐘輸入以及系統的復位信號。
(2)pll_0為圖1中的PLL,它提供6個時鐘,outclk0與outclk5提供給Qsys中各組件使用;outclk1為片外SDRAM提供時鐘;其余3個時鐘向外輸出,為FPGA System中各模塊的驅動時鐘。
(3)sdram是圖1中SDRAM Controller,用于控制片外的SDRAM芯片,它作為Nios II Gen2 Core的內存。
(4)epcs是圖1中EPCS Flash Controller,控制外部Flash,作為Nios II Gen2 Core的程序存儲器。
(5)jtag_uart_0是圖1中JTAG Controller,與PC主機上的Eclipse SBT的調試端口相連接,用于程序的運行監控與調試。
(6)sysid是圖1中System ID,保證軟件程序版本與Qsys系統版本保持一致。
(7)timer_0是圖1中Interval Timer,可用于Nios II Gen2 Core內核時鐘,也可用于測試程序運行時長,根據測算的時長進行相應的測試與調試。
(8)LED是圖1中LED Controller,該處PIO核設計為輸出功能,輸出數據的位寬設置為6 bit,控制FPGA System的6個LED,用于測試和提示系統的運行狀態。
(9)Clock是圖1中Avalon-MM Clock Crossing Bridge,用于連接在Avalon總線上且分屬不同時鐘域內IP核間的數據傳輸與通信。
(10)INIT5與INIT6是圖1中Interrupt Controller,該處PIO核設置為中斷信號輸入功能,INIT5與INIT6位寬設計為1 bit,中斷方式設置為邊沿(上升沿)觸發。INIT5與INIT6分別用來接收由FPGASystem產生的2個中斷信號。
(11)aFloa是圖1中Floating Point Hardware,用于Nios II Gen2 Core的浮點運算硬件加速。
(12)SoC_TO_FPGA_V2_1_0是圖1中地址數據通信IP,該接口用于FPGA System與Qsys System間數據的雙向傳輸[3]。
(13)hps_0是圖1中的HPS System,hps_0作為后期定位解算與圖形界面的主CPU。由于要求支持Linux系統,需要設置其部分外設,包括EMAC、QSPI、SD/MMC、USBOTG、SPI、UART、I2C以及部分GPIO等外設。
(14)nios2_gen2_0是圖1中的Nios II Gen2 Core,設計為基帶信號處理系統的主CPU。
(15)Dual_ram圖1所示的Dual-port RAM,提供HPS與Nios II Gen2 Core之間數據的通信;HPS、Nios II Gen2 Core和Dual-port RAM關系框圖如圖3所示。
圖4給出了Qsys系統各組件位于System Interconnet Fabric的地址分配情況。
1.2 FPGA System設計
FPGA System主要由SPI控制模塊、高速數據接口、時間基準模塊、捕獲模塊、跟蹤模塊、串口模塊和地址譯碼與數據通道選擇模塊組成。各部分功能如下:
(1)SPI控制模塊用于控制射頻板產生1 550 MHz本振載波信號,與天線接收信號進行混頻,產生3.098 MHz的中頻數據。
(2)高速數據接口用于獲取射頻前端高速ADC量化產生I/Q兩路8 bit數據,每路截取高4 bit數據用于基帶處理。
(3)時間基準模塊用于產生2個中斷信號,包括0.5 ms和20 ms中斷。
(4)捕獲模塊用于衛星捕獲,捕獲通道為單通道設計。
(5)跟蹤模塊用于衛星的跟蹤,目前跟蹤通道數設計為24通道。
(6)串口模塊用于調試信息與導航電文的輸出。
(7)地址譯碼與數據通道選擇模塊用于對地址進行譯碼,并根據地址信息選擇不同的數據通道。
2 載波環路設計
2.1 載波環鑒別器
由于衛星信號中調制有導航電文,這使得接收到的中頻信號會在數據比特電平發生跳變時產生180°的相位跳變,因此為了保持環路的穩定,必須要消除180°的相位跳變。由于COSTAS J P發明的鑒相器能夠不受數據比特的影響,因此他發明的該鑒相器被稱為科斯塔斯鑒相器(或Costas鑒相器),而使用這些鑒相器的鎖相環稱為科斯塔斯環(或Costas環)[4-5]。
本設計鎖相環鑒別器采用經典的Costas環鑒相器Qp×Ip,其具有在信噪比較低的情況下有近似優化的鑒相性質、輸出結果與幅值的平方成正比、計算量較小以及鑒相斜率受信號幅度的影響較大等特點[6-7]。
本文設計鎖頻環鑒別器采用叉積鑒頻器Pcross/(t2-t1),其具有在低信噪比情況下有接近優化的鑒頻特性、斜率正比于信號幅度的平方、計算量最小以及受信號幅度影響較大等特點[6-7]。
2.2 環路濾波器
3 載波環軟件設計
軟件程序設計思想是將跟蹤環路的處理程序放置于0.5 ms中斷中,0.5 ms中斷依次對各個通道進行查詢,根據當前跟蹤通道狀態選擇執行牽引還是跟蹤:若為牽引狀態,將調用牽引子程序;若為跟蹤狀態,將調用跟蹤子程序。其運行流程如圖6所示。
牽引子程序包含從FPGA讀取I/Q相關幅值,計算功率后分別調用碼環、鎖頻環以及鎖相環處理子程序,對碼環、鎖頻環以及鎖相環經鑒頻與鑒相、環路濾波處理后,更新FPGA內部的碼NCO和載波NCO,并根據位同步情況設置當前通道狀態:若同步成功,將當前通道設置為跟蹤狀態;若同步不成功,將對牽引次數進行統計,如果超過統計門限,將通道設為關閉,通道重捕初始化,然后跳出牽引子程序,否則直接跳出牽引子程序。牽引處理子程序如圖7所示。
跟蹤子程序包含從FPGA讀取I/Q相關幅值,計算功率后分別調用碼環、鎖相環處理子程序,對碼環、鎖相環經鑒相、環路濾波處理后,更新FPGA內部的碼NCO和載波NCO,并根據幀同步情況設置任務狀態:若同步成功,將獲取導航電文處理任務壓入到任務隊列中;判斷相位鎖定狀態,若相位鎖定失敗,則將通道狀態設置為牽引狀態,然后跳出跟蹤子程序。跟蹤處理子程序如圖8所示。
4 測試結果
信號進入牽引后,利用Nios II SBT for Eclipse采集鎖頻環環路濾波器輸出值,并利用MATLAB仿真出鎖頻環環路濾波器輸出值隨時間的變化,如圖9所示。從圖中可以看出,0時刻時,頻率誤差絕對值約為100 Hz;0~300 ms區間段,環路輸出的瞬時頻率誤差絕對值隨時間逐漸變小;在300 ms時刻開始,環路輸出的瞬時頻率誤差絕對值接近于0,然后由鎖相環路接管,進一步對相位誤差進行處理。
利用Nios II SBT for Eclipse采集鎖相環環路濾波器輸出值,并利用MATLAB仿真出鎖頻相環環路濾波器輸出值隨時間的變化,如圖10所示。根據第3節跟蹤子程序設計,精密跟蹤階段經過牽引階段消除頻率誤差的影響后再用鎖相環進行精密跟蹤。從圖中可以看出,鎖相環相位誤差范圍基本在±15°以內波動。
5 結論
本文根據基帶信號處理的要求,采用SoC FPGA作為設計平臺,在單個芯片上完成了北斗衛星信號跟蹤算法的設計,并對相應的載波環路算法進行了測試和驗證。結果表明,該跟蹤算法完全滿足北斗衛星導航接收機的實時性要求。
參考文獻
[1] 寧津生,姚宜斌,張小紅.全球導航衛星系統發展綜述[J].導航定位學報,2013(1):3-8.
[2] 胥京宇.FPGA走向硅片融合時代[J].世界電子元器件,2012(7):71-72.
[3] 吳國增,韋照川,唐振輝,等.基于Qsys的HPS與FPGA數據通信接口IP核的實現[J].桂林電子科技大學學報,2018,38(1):16-22.
[4] 張晶泊.GNSS軟件接收機高動態載波跟蹤環路關鍵技術研究[D].大連:大連海事大學,2012.
[5] COSTAS J P.Synchronous Communications[J].Proceeding of the IEEE,2002,90(8):1461-1466.
[6] 謝鋼.GPS原理與接收機設計[M].北京:電子工業出版社,2009.
[7] 魯郁.北斗/GPS雙模軟件接收機原理與實現技術[M].北京:電子工業出版社,2016.
[8] 查環,李超.北斗衛星導航接收機跟蹤環技術設計與實現[J].光學與光電技術,2016,8(4):59-61.
[9] 沈鋒,徐定杰,薛冰.基于FLL/PLL相結合的載波跟蹤在導航接收機中的實現[J].航海,2004(2):51-54.
作者信息:
韋照川,潘軍道,吳國增
(桂林電子科技大學 信息與通信學院,廣西 桂林541004)