劉善武 李偉偉 計 旭 楊啟源 張 偉
上海航天控制技術研究所,上海 201109
近年來,隨著全球導航衛星系統(GNSS)及物聯網技術的不斷發展,導航定位技術已廣泛應用在智慧城市、智慧物流、智慧農業等領域,是交通、通信、電力以及基礎科研等領域必不可少的元素[1-2]。GNSS系統由空間星座、地面監控和用戶設備3部分組成。空間星座即環繞在地球周圍的人造衛星,這些衛星不間斷地向地面發射信號,地面監控通過接收這些信號,計算出衛星的位置信息,并將此信息發射回衛星,衛星再轉發包含位置信息的信號給用戶設備,用戶設備以接收機作為載體,通過捕獲、跟蹤和解算衛星信號,以此來確定用戶所在的位置和速度[3-5]。
GNSS系統中的空間星座和地面監控大多是由政府控制的,因此用戶設備也就是接收機是其中最具有活力的一部分。目前主流的接收機架構由以下幾個部分組成:1)用于接收衛星信號的射頻前端;2)用于對衛星信號進行捕獲和跟蹤的基帶處理;3)用于定位的數據解算單元[6-7]。傳統的接收機定位解算任務多由專用集成電路完成,其優點在于強大、高速的運算能力,但是它沒有可編程性,缺乏靈活性。一旦設計、生產完成后,其功能也就基本上被固化下來,如果電路中有地方需要改進,那么就必須重新進行設計,也就會導致研發成本的升高和研發周期的增長。
隨著現代全球導航衛星定位系統的迅速發展,設計并實現能靈活充分利用所有導航衛星信號的下一代 GNSS 接收機成為一項極具挑戰性的工程[8]。特別是北斗導航技術的日新月異,對GNSS接收機提出了能夠靈活兼容不同的中頻數字信號處理算法的要求,因此目前的接收機難以滿足日益增長的GNSS 接收機擴展性需求。而基于軟件無線電思想的GNSS 軟件接收機與傳統的 GNSS 接收機相比,系統設計簡潔,開發速度快,成本更低,且有高度可配置性,更具方便性和靈活性,對新一代導航接收機的開發有著重要意義[8-9]。
基于此考慮,文章提出了一種以可編程門陣列(FPGA)和數字信號處理器(DSP)為基礎的GNSS接收機架構,使得加載不同的數字信號算法程序成為可能,在保證低成本的同時極大地提高了接收機的靈活性。同時為了解決衛星定位原理造成的高程定位精度較差的問題,將高精度大氣壓強傳感器引入接收機,對高度信息進行補償與校正,可以有效抑制高度誤差和野值的出現,提高垂直方向的定位精度[10]。
接收機整體結構如圖1所示,包括射頻前端、基帶處理、定位解算和高度換算幾個單元。

圖1 結構框圖
射頻電路位于接收天線和基帶數字信號處理模塊之間,主要實現把電磁波信號轉變為基帶數字信號處理模塊易于處理的中頻信號;基帶數字信號處理功能主要在FPGA芯片中完成,FPGA在本地時鐘的控制下對射頻電路送來的信號進行采樣和量化,同時產生本地載波實現載波剝離,產生本地偽碼實現偽碼剝離,最終解調出導航電文;定位解算單元選用的DSP芯片有著強大的運算能力,在接收到FPGA送來的導航數據后對其進行解算,解調出導航電文中的星歷信息,并計算出可視衛星的位置和速度,最終解算出用戶的三維位置和三維速度,提供定位導航服務;高級指令集微處理器(Advanced RISC Machine,ARM)芯片承擔了大氣原始數據的補償和大氣高度的轉換工作,該芯片在負責接收傳感器量測數據的同時,也要接收GNSS接收機最終解算出的定位信息,以判斷當前的定位質量,從而完成對海拔高度的初始校準,提高測量精度。
射頻前端的最終目的是把模擬的高頻電磁波信號轉換為低頻的數字信號,因為對于電子器件來說,低頻的信號處理起來更為容易,并且數字信號比模擬信號處理起來更加有優勢,傳統的射頻電路由分立的半導體器件構成,而現在用于處理射頻信號的電子器件一般都集成在一個專用的集成電路中,即射頻集成電路(Radio Frequency Integrated Circuit,RFIC),用來完成如圖2所示的功能。

圖2 射頻電路工作流程
射頻芯片選用MAX2769B,除了支持GPS、GLONASS和Galileo系統外,也支持北斗衛星導航系統。芯片采用Maxim先進的低功耗SiGe BiCMOS工藝,能夠以較低的成本提供業界最高的性能和集成度。MAX2769B提供了2種的配置方式,3線制SPI和8種典型配置選擇,設計中采用SPI的方式進行通信,通過FPGA設計的SPI接口向MAX2769寫入控制字來實現MAX2769B的配置,與后者相比,該方式具有較強的靈活性。
相關器作為接收機的心臟,接收信號與復制C/A碼的相關運算均在這里完成,該功能主要在FPGA芯片EP4CE115F23I7N及相關外圍電路中完成。
設計中采用兩個同樣設計的射頻單元分別處理不同的衛星信號。FPGA與射頻的通信主要分為2部分,一是通過SPI接口對射頻芯片進行配置;二是通過其他接口將I、Q兩路的中頻信號送至基帶進行處理。設計中射頻1用來處理GPS信號,時鐘信號為GPSCLK1;射頻2用來處理北斗信號,時鐘信號為BDCLK2。配置芯片選用同為Altera公司研制的EPCS64SI16N,與同類芯片相比,該芯片售價較低,同時擁有FLASH存儲器訪問接口、系統可編程、小外形集成電路封裝等特點。該芯片為16引腳SOIC封裝,設計中只需用到片選信號nCS、串行時鐘DCLK、串行數據輸出DATA、AS數據輸入ASDI、電源VCC和地GND幾個引腳,配置相對簡單。
FPGA的DSP的物理連接方式主要通過EMIF接口。其中DSP的地址和數據接口分別與對應的FPGA的接口相連接,數據總線長度16位,地址總線長度12位。
通道的選擇由地址寄存器中高5位負責,而低6位則儲存著每個通道內寄存器的偏移地址。DSP與FPGA之間的控制總線包括片選、使能、寫、時鐘以及中斷信號線[12]。來自DSP的指令通過EMIF總線進行傳輸,以實現對基帶信號處理單元的控制,同時FPGA又將鎖存的信號發送給DSP,以供后續的導航解算使用,通信原理如圖3所示。

圖3 FPGA通信示意圖
氣壓高度與溫度的轉換是在ARM處理器中完成的,該芯片選用意法半導體公司開發的STM32F103ZET6,為增強型32位基于ARM核心的帶512K字節閃存的微控制器。最高工作頻率72MHz。傳感器選用博世(Bosch)公司推出的一種絕對氣壓傳感器BMP280。該傳感器測量范圍300~1100hPa,絕對精度±1hPa,相對精度±0.12hPa,產品不僅有著較高準確度和線性度,同時也具有較強的魯棒性和電磁兼容性。
氣壓高度作為一種輔助信息源,所以ARM與DSP之間不需要通過總線連接,兩者只通過串口進行必要的數據收發,ARM接收DSP解算的位置信息用于初始校正,DSP接收ARM校正后的信息用于輸出校正。
GNSS接收機軟件負責控制系統的工作時序比如射頻、FPGA、DSP的時鐘控制、不同模塊之間數據交換,從而最終實現定位、定速結果在上位機的輸出。軟件功能主要分為以下幾個部分:系統初始化、衛星信號的捕獲與跟蹤、導航電文的解算,高度信息融合和導航結果的輸出。
1)系統初始化的主要功能是完成MAX2769B芯片的配置、DSP芯片的配置,變量、參數初始化等工作,同時還要完成FPGA與DSP之間通信接口的測試工作;
2)捕獲與跟蹤衛星模塊負責控制接收機各個通道對衛星信號的捕獲并對環路實現緊密跟蹤;
3)導航電文的解算主要依靠從FPGA環路中提取的測量參數,從播發的衛星導航電文中提取衛星參數等導航信息,聯立方程組計算載體位置、速度、收星數和DOP值等信息;
4)高度信息校正部分主要是將傳感器送來的高度信息進行換算并送至DSP與原始高度進行組合;
5)導航結果的輸出主要是將組合后的導航信息輸出至上位機監控系統。

圖4 軟件工作流程
實驗測試主要通過跑車試驗完成。地面跑車試驗可以驗證接收機在真實環境下系統運行的可靠性和穩定性,便于及時發現和解決系統存在的問題。在試驗中,采用國外高精度Ublox衛星接收機作為基準數據,測試本系統定位、測速性能,試驗過程中通過上位機監測軟件實時觀測保存數據。
試驗時選擇路面較為寬廣的路段,四周遮擋較少可以達到良好的收星效果,試驗過程中車速為0~60km/h,試驗結果如圖5~8所示。

圖5 接收機位置變化

圖6 接收機位置誤差

圖7 接收機速度變化

圖8 接收機速度誤差
計算得到1σ的均方根誤差結果與基準軌跡相比,緯度誤差2.029m,經度誤差1.928m,高度誤差7.913m,東北天速誤差分別為0.088、0.085和0.089m/s。
在此基礎上,將氣壓傳感器的輸出接入DSP的RS232通信串口,得到使用氣壓數據融合前和融合后的高度輸出對比結果如圖9所示。

圖9 高度變化
從圖9可以看出,采用氣壓高度信息校正后的系統輸出的高度數據更為精確,與之前相比也更為穩定,野值出現的概率較小,其誤差基本在5m左右,1σ誤差僅為1.967m,整體滿足設計要求。
針對傳統GNSS接收機靈活性較差的問題,本文提出了一種基于FPGA的硬件架構,通過核心器件的選型和通信接口的設計,完成了GNSS接收機模塊的硬件設計和軟件設計,并在此基礎上完成了實驗測試,結果表明該接收機具有良好的性能,具有一定的工程應用價值。但是在硬件設計方面,為了方便對高度數據進行處理,在增加了一塊微處理器即ARM芯片的同時,也增加了系統的體積和干擾風險,因此仍需重新對軟硬件進行優化,進一步提升接收機的性能。