吳舜曉,王 瓊,鄭 晨,姜苗苗
一種開放式衛星導航基帶信號處理方法
吳舜曉1,2,王 瓊2,3,鄭 晨2,3,姜苗苗1
(1 中國人民解放軍93216部隊,北京 100089;2 中國電子科技集團公司第二十研究所,西安 710068; 3 陜西省組合與智能導航重點實驗室,西安 710068)
傳統全球導航衛星系統(GNSS)接收機基帶處理模塊非開放式的實現架構與多源融合導航算法的工程實現需求不夠匹配,針對機載、彈載的多源融合導航需求設計提出一種開放式的衛星導航基帶信號處理方法。通過將衛星導航基帶處理模塊的軟件實現嵌入到Linux操作系統中,獨立運行信號處理進程和底層驅動調度控制,以實現基礎的衛星信號捕獲、跟蹤、時間同步控制等軟件功能。硬件實驗表明,搭載所述方法的開放式衛星導航基帶信號處理系統,可以通過開放式的衛星導航基帶信號處理的軟件實現,降低多源融合導航實現復雜度。
全球導航衛星系統接收機;衛星導航基帶信號處理;多源融合導航;開放式架構
衛星導航(Global Navigation Satellite System,GNSS)接收機通過對導航衛星播發的射頻信號依次進行信號處理和信息處理,以獲得用戶的位置、速度和時間信息,是支撐衛星導航實際應用的基礎性產品[1-2]。
基帶處理模塊作為GNSS接收機的主要部件,通常采用專用芯片或現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)+處理器的形式實現[3-4]。目前主流GNSS基帶處理模塊通常都是非開放式的,導致用戶只能直接使用基帶處理模塊對外輸出的導航信息,不能以二次開發的開發式方式將多導航源融合、通信導航融合增強等功能嵌入到基帶處理模塊中[5]。
然而,當GNSS接收機不再是載體平臺的主用導航設備(如應用于高價值的飛機、精確制導彈藥等載體平臺)時,通常通過增加基帶處理模塊與主導航設備之間的數據交互,來實現多源融合導航之間的信息處理。但是這種方式會導致載體主導航設備與基帶芯片之間數據交互頻繁、部分導航信息重復處理,即增加了軟件實現的復雜程度,還存在計算資源的浪費;同時由于衛星導航原始觀測數據的軟件接口需要標準化統一定義,使其在與其他導航算法進行多源融合處理時通用性和開放性不好,不便于算法的移植和推廣。
本文針對上述問題提出了一種開放式衛星導航基帶信號處理方法,通過將衛星導航基帶處理模塊的軟件實現嵌入到Linux操作系統中的軟硬件架構優化設計,解決了由于衛星導航基帶信號處理模塊的軟件實現不夠開放,而導致衛星慣性多源融合導航實現復雜度明顯增加的問題。最后搭建了開放式衛星導航基帶處理硬件系統,實驗驗證本文所述方法可以較大地節省處理器資源,用于后續多源融合導航功能的擴展。
GNSS接收機的原理是接收并處理來自導航衛星的信號,將衛星信號所攜帶的導航電文解調出來后,由導航解算軟件按照導航電文提供的參數對接收機當前所處的位置進行解算,并輸出地理位置、移動速度等信息[6]。GNSS接收機主要由天線、射頻、基帶信號處理模塊及外接終端設備等構成[7],如圖1所示。

圖1 接收機結構示意圖
基帶信號處理模塊是GNSS接收機用來實現衛星信號的同步和導航電文的解調功能的主要部件[8],目前通常采用專用芯片或FPGA+處理器的非開放式架構,主要涉及以下功能均在主處理器上實現[9]:
1) 維持對衛星導航信號捕獲跟蹤處理;
2) 求解用戶位置、速度和鐘差等衛導信息;
3)根據具體需求按照規定的數據幀格式輸出位置、速度和原始觀測量等導航數據。
因此,主處理器上的軟件實現會涉及高頻度的硬件中斷響應操作和大量硬件計算資源調度操作,涉及到大量的總線輸入輸出(Input/Output,I/O)操作,而這些設計通常都是非開放式的,用戶只能直接使用基帶處理模塊對外輸出的導航信息,不能對多源導航等功能進行二次開發處理。
本文所述開放式衛星導航基帶信號處理,采用主處理器與多個協處理器進行數據和控制交互的架構,通過協處理器調度和控制外圍的衛星導航基帶信號處理專用計算加速模塊。在主處理器上運行嵌入式Linux操作系統,以降低主處理器響應硬件中斷的頻度和外部總線數據訪問的吞吐量;協處理器連接在主處理器的高速總線上,通過與主處理器的數據交互完成導航衛星的信號捕獲或跟蹤的調度與控制任務。基帶信號處理原理框圖如圖2所示。

圖2 衛星導航基帶信號處理原理框圖
利用Linux系統的開放性,用戶可以通過信息處理模塊接口獲取所需衛星觀測數據和電文,進行衛星慣性深組合和緊組合等多源融合導航處理,獲得定位、測速和授時(Position,Velocity,Time,PVT)信號和載體姿態等導航信息[10]。開放式衛星導航基帶信號處理方法如圖3所示。

圖3 開放式衛星導航基帶信號處理方法
具體步驟如下:
1)在基帶處理模塊上電開機后,Linux操作系統自動依據系統設計時定義的設備樹找到外接的捕獲調度與觀測量提取協處理器和跟蹤協處理器,并相應地加載GNSS驅動模塊,將該模塊作為所運行的嵌入式Linux操作系統的一個擴展模塊。完成GNSS驅動模塊的加載后,在Linux系統的設備文件路徑/dev下生成第一設備文件GnssNavProc和第二設備文件GnssPvtInfo;
2)將信號處理模塊在Linux系統下編譯為可執行文件SigProcBase.elf,并配置操作系統在開機啟動后,自動運行可執行文件SigProcBase.elf,啟動信號處理進程;
3)將信息處理模塊在Linux系統下編譯為可執行文件GnssAppDemo.elf,并配置操作系統在開機啟動并運行了SigProcBase.elf后,自動運行可執行文件GnssAppDemo.elf,啟動信息處理進程。
信號處理模塊的進程執行過程如圖4所示。
具體步驟如下:
1)調用open系統函數,打開第一設備文件GnssNavProc,由GNSS驅動模塊執行相關的驅動層初始化處理;
2)調用mmap系統函數,從第一設備文件中映射產生三塊用戶空間的內存區域,包括:
(1)p_mDataTrkCp:與跟蹤協處理器直接實現數據和控制命令的傳送;
(2)p_mTrkCmm:獲取與GNSS驅動模塊之間共享的支持應用程序完成信號處理的參數信息;
(3)p_mObsNav:用于存儲包括電文、偽距和載波相位在內的原始觀測數據。
3)完成本進程的包括數據結構創建和全局變量初始化在內的其他軟件初始化處理;
4)啟動4個采用SCHED_FIFO實時調度策略的線程,包括:
(1)TicMark_proc:配合GNSS驅動模塊完成跟蹤通道的啟動、復位等調度任務;
(2)NavTrk_proc:在GNSS驅動模塊的配合下,根據從緩存區取出的各通道的ChReq寄存器的數值和TrackData中的命令關聯數據,執行信號跟蹤的虛警驗證、毫秒計數同步、幀內Bit計數同步、電文譯碼或校驗等處理任務;
(3)GetObs_proc:保持與捕獲調度與觀測量提取協處理器完成觀測量提取和初步計算的時刻同步,對原始觀測量再進行相關的量綱轉換后,填充到GNSS驅動模塊的p_mObsNav內存空間中;
(4)AdjCnt_proc:等待信息處理模塊進程將設置捕獲模式、調整本地時間相關的參數寫入GNSS驅動模塊的p_mObsNav內存空間中,然后執行設置捕獲工作模式,調整本地時間等操作。

圖4 信號處理進程執行過程
信息處理模塊的進程執行過程如圖5所示。
具體步驟如下:
1)調用open系統函數,打開第二設備文件GnssPvtInfo;
2)調用mmap系統函數,從第二設備文件中將GNSS驅動模塊的p_mObsNav內存空間映射到信息處理模塊進程中;
3)通過第二設備文件中名為TicCmdWait ObsNav的ioctl函數,等待信號處理進程完成一次原始觀測量提取任務,然后調用名為TicMoveNav Mess的ioctl函數將GNSS驅動模塊中已緩存的導航電文數據填充到p_mObsNav結構體的NavMsgBuf分量中,在此基礎上進行PVT解算;
4)在完成一次PVT解算以后,將周計數、周內秒和鐘差等時間信息寫入到GNSS驅動模塊的p_mObsNav內存空間中,并通過調用第二設備文件中名為TicCmdTimeSync的ioctl函數通知信號處理進程中的AdjCnt_proc線程,由其通過GNSS驅動模塊執行相關的底層操作。
5)重復步驟3),以持續進行衛星導航信息 處理。
可以看出,在對應于信息處理模塊的可執行程序中,軟件只需專注于完成衛星導航信息處理相關的功能,其他底層的處理均由同步在運行的信號處理進程完成,信息處理相關的輸入輸出數據均在GNSS驅動模塊的第三塊內存空間p_mObsNav中,由此使得衛星導航的信息處理可以在一個開發性很好的軟件開發環境中實現,用戶的二次開發可非常方便地實現。

圖5 信息處理進程執行過程
為了驗證本文所提算法的有效性,搭建了基于開放式衛星導航基帶處理架構的實驗硬件系統。該硬件系統由北京威視銳公司的FPGA開發板和一塊FPGA中間層板卡(FPGA Mezzanine Card,FMC)子卡構成。開放式衛星導航基帶處理硬件系統如圖6所示。

圖6 開放式衛星導航基帶處理硬件系統
圖6中,右側紅色小盒子為威視銳的通用FPGA開發板,筆記本電腦為上位機軟件。
FPGA開發板具有一個串口線、一個網口線和兩路射頻信號輸入。其中串口線用于Linux操作系統的標準輸入與輸出;網口線用于向上位機傳輸數據。其外部接線圖如圖7所示。

圖7 FPGA開發板外部接線圖
FPGA開放板上安裝基于RX3706芯片的射頻前端子卡FMC3706,用于實現衛星導航射頻信號的接收處理,將處理得到的數字信號及對應的采樣時鐘信號通過FMC接口傳送到底板上,利用底板上的Zynq7035芯片實現GNSS接收機的基帶信號處理。FMC射頻子卡如圖8所示。

圖8 FMC射頻子卡
本實驗搭載上述實驗硬件系統,采用雙天線的定位與定向應用,進行72個跟蹤通道的GNSS基帶處理實驗驗證。每個天線對應36個通道,其中14個通道用于接收北斗衛星導航系統(Beidou Navigation Satellite System,BDS)的B3頻點信號,14個通道用于接收BDS的B1頻點信號,8個通道用于接收GPS的L1-C/A信號。
與傳統的GNSS基帶模塊中主處理器相比,通過引入捕獲調度與觀測量提取協處理器,主處理器在tic_req中斷中的處理任務由原來較為復雜的外設狀態監測和控制調度任務降級為數據搬移等簡單的控制任務,雖然沒有降低中斷的頻度,但明顯降低了需在中斷中完成的軟件處理任務;通過引入跟蹤協處理器,在正常跟蹤狀態下,每通道每16 ms才產生一次tcp_irqtcp_irq中斷,而在傳統的實現方案中每個跟蹤通道至少需要每2 ms產生一次中斷,本文方法將對應于跟蹤處理任務的中斷頻度減低到至少八分之一。
在Linux操作系統中,使用top命令查看的軟件進程資源使用情況,CPU資源占比情況如表1所示。其中1223號進程為信號處理,1224號進程為信息處理進程。

表1 軟件進程資源使用情況
從表1可以看出,在系統正常運行的情況下,信號處理模塊所對應的進程占了3.8%的中央處理器(Central Processing Unit,CPU)資源,信息處理模塊所對應的進程只占了0.1%的CPU資源,由此可以節省大量處理器資源用于后續多源融合導航功能的擴展。
本文針對機載、彈載的多源融合導航需求提出一種開放式衛星導航基帶信號處理方法。將衛星導航基帶處理模塊的軟件實現嵌入到Linux操作系統中,通過開發GNSS驅動模塊,使其可以獨立運行信號處理進程和底層驅動調度控制,從而實現基礎的衛星信號捕獲、跟蹤和時間同步控制等軟件功能。硬件實驗表明,搭載本文方法的開放式衛星導航基帶處理實驗硬件系統可以節省大量的處理器資源,在涉及衛星導航基帶功能的二次開發時不再需要依賴涉及信號處理底層的軟件源代碼或軟件開發支持包,且可廣泛應用于在彈載、機載等平臺,達到衛星導航與慣性導航深組合、緊組合等多源融合導航多種組合方式的快速、高效率實現。
[1] 卡普蘭. GPS原理與應用[M]. 北京:電子工業出版社,2002.
[2] 陳強. GNSS接收機基帶信號處理模塊的設計和實現[D]. 北京:清華大學,2011.
[3] 張正烜,張其善,寇艷紅. GPS接收機基帶信號處理模塊的FPGA實現[J]. 遙測遙控,2006(4):6.
[4] 陳造,鄭慶敏. FPGA方法用于GPS/北斗雙模接收機基帶處理模塊設計[J]. 測繪技術裝備,2019(4):25-29.
[5] 賀洋. BD2接收機基帶系統的FPGA設計與實現[D]. 武漢:武漢理工大學,2013.
[6] 何秋生. GNSS接收機基帶信號處理算法[M]. 北京:電子工業出版社,2012.
[7] 歐松. 基于FPGA的北斗接收機基帶處理設計與仿真[D]. 北京:北京交通大學,2014.
[8] 阮帥. 北斗接收機基帶處理技術研究[D]. 哈爾濱:哈爾濱工程大學,2017.
[9] 管仁昊,李署堅,徐峰. FPGA在基帶信號處理中的應用[J]. 電子測量技術,2006,29(4):2.
[10] 何靜. 多源融合導航系統仿真平臺設計與實現[D]. 成都:電子科技大學,2021.
Open Satellite Navigation Baseband Signal Processing Method
WU Shunxiao, WANG Qiong, ZHENG Chen, JIANG Miaomiao
The non-open implementation architecture of traditional Global Navigation Satellite System receiver baseband processing module does not match well with the engineering implementation requirements of multi-source fusion navigation algorithms. An open satellite navigation baseband signal processing method for the multi-source fusion navigation requirements is proposed. By embedding the software implementation of the satellite navigation baseband processing module into the Linux operating system, the independent signal processing process and underlying driver scheduling control are completed through the embedded system to realize basic software functions such as satellite signal capture, tracking, and time synchronization control. Hardware experiments show that the open satellite navigation baseband signal processing system equipped with the method described in this paper can be implemented through open satellite navigation baseband signal processing software, reducing the complexity of multi-source fusion navigation implementation.
Global Navigation Satellite System Receiver; Satellite Navigation Baseband Signal Processing; Multi-source Fusion Navigation; Open Architecture
TN965
A
1674-7976-(2023)-05-313-05
2023-06-16,
吳舜曉(1986.12—),湖南益陽人,博士,工程師,主要研究方向為衛星導航和陣列信號處理。