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