曹界宇 王偉 葛男男
【摘要】? ? 為解決傳統RTK作業距離受限,定位精度、可靠性不高的問題,本文設計了一種基于嵌入式的網絡RTK定位系統。該系統以STM32F405作為系統核心處理單元,系統主要通過獲取CORS系統差分修正數據信息,并將數據信息發送給流動站,RTK板卡定位解算后,系統便可獲得高精度定位信息。經過實驗測試表明,本系統具備厘米級高精度定位功能,并且作業覆蓋范圍廣闊。
【關鍵詞】? ? 嵌入式? ? 網絡RTK? ? ?RTK板卡? ? CORS系統
引言
隨著衛星導航定位技術的快速發展和廣泛應用,RTK技術很好地解決了人們對高精度定位的需求[1]。傳統RTK主要以固定基準站、數據鏈路通信系統、流動站構成,其中流動站連續觀測衛星定位數據,并通過無線通信系統將基準站上差分修正數據信息發送給流動站。而流動站通過通信系統同時接收衛星信號和基準站發送過來的數據,通過差分數據解算以實現高精度定位。
隨著RTK技術不斷的成熟,傳統的RTK 定位技術的弊端也顯現地較明顯。傳統的RTK每次作業前都需要人力架設基準站,并且必須選取空曠的地方架設基準站,同時傳統RTK技術會受到通信鏈路距離的影響,其作業范圍有一定限制,并且隨著流動站和基站距離的增加,GNSS數據信息在空間傳播時受到電離層和對流層的折射因素,其誤差會越來越大。這會極大影響RTK定位精度[2]。而網絡RTK 定位技術指的是連續運行參考站系統(CORS系統),CORS系統以網絡分布系統為基礎,基于適當密度的參考站網絡,建立精準的差分數據計算模型,利用數據通信鏈路播發差分修正數據,來消除定位過程中受到的各種誤差影響,從而實時地獲得觀測站點高精度、可靠的定位數據信息,較常規 RTK定位技術優勢明顯,網絡RTK技術已被廣泛運用于無人機電力巡檢、智能交通等行業領域[3]。因此研究并設計基于嵌入式的網絡RTK定位系統具有重要意義。
一、系統總體方案設計
該系統的系統框圖如下圖1所示,該系統主要由核心處理單元(MCU)、RTK板卡、CORS系統、文件日志、手機APP部分組成。其中系統處理單元采用的是STM32F405芯片,CORS系統部分主要功能是為系統提供CORS系統差分修正數據信息;RTK板卡部分主要功能是觀測單點絕對定位GGA數據信息和差分定位解算;文件日志部分主要功能是保存SD卡RTK數據信息;手機APP部分主要功能是監控系統上傳的RTK數據信息。
二、系統硬件設計
2.1 核心處理器
核心處理器采用ST公司的STM32F405系列芯片,該處理器是ARM的Cortex-M4 系列內核,該處理器最高工作頻率可達168 MHz,其工作電壓在 2.0-3.6V。該芯片具有 192KB SRAM、512KB FLASH,該系列處理器擁有高性價比、低功耗等特點。
2.2 電源管理模塊
本系統采用TPS65321系列穩壓芯片,如下圖2所示,該芯片最高支持36V的輸入電壓,可提供3.3V和3.8V的直流電壓,輸出電流可高達3.2A,該系列芯片在安全上也具備過流保護、過熱保護單元。
2.3 RTK板卡
如下圖3所示,本系統RTK板卡采用諾瓦泰OEM718D多頻單側板卡,支持全系統多頻測向和定位解算,同時支持雙天線輸入。該板卡板載串口,系統可通過串口和RTK板卡數據通信。
2.3 CORS系統
CORS系統主要采用的是千尋在全國范圍內布設的基站網絡。CORS 系統主要由數據處理中心、固定參考站、數據通訊和用戶中心四個部分組成[4]。
該系統工作流程主要是RTK板卡將觀測數據實時傳送給數據處理中心,處理中心利用基準站觀測數據計算基線誤差,通過網絡插值算法計算出虛擬觀測值,最終生成差分數據并播發給流動站[5]。本系統主要是通過4G網絡實現和CORS系統數據鏈路通信。
2.4 4G模塊
本系統4G模塊采用的是SIMCom公司SIM7600CE-L系列模組,該系列模組采用SMT封裝,該模組支持LTE-LDD/LTE-FDD/GSM/GPRS/EDGE等頻段。公網版支持TDD-LTB38/B39/B40/B41,LETCAT4下理論可支持50Mbps最大上行速率,150Mbps最大下行速率。SIM7600CE-L模組支持串口AT指令配置4G信息。
三、系統軟件設計
3.1 FreeRTOS實時操作系統簡介和移植
FreeRTOS是一款可移植的、完全免費的、開放源代碼的迷你操作系統內核。用戶可在其內核的基礎上進行裁剪、移植,同時可以非常方便地移植到自己的硬件平臺。作為一款輕量級系統FreeRTOS提供包括任務管理、信號量、消息隊列、內存管理、時間管理等功能。
FreeRTOS中內核核心實現主要由 list.c、queue.c、croutine.c、 tasks.c這4 個文件組成。list.c文件實現數據鏈表結構體,為系統提供任務管理;queue.c文件實現隊列管理主要包括實現消息隊列管理和信號量控制等功能;croutine.c和task.c文件主要提供任務的創建、刪除和任務調度等功能。croutine.c實現了進程管理功能,各任務共享同一個堆棧,減少對RAM的需求。task.c實現不同任務使用各自的堆棧,支持CPU完全搶占式調度。
FreeRTOS移植主要是包括FreeRTOS_PORTABLE分組下的port.c、heap4.c文件,FreeRTOSConfig.h頭文件,stm32f4xx_it.c文件等。由于本系統采用的是STM32F405芯片,該芯片帶有FPU單元,因此選擇載入ARM_CM4F中的port.c文件;heap4.c是MemMang文件夾中的和內存管理有關,這里本系統采用heap4.c的內存管理方法;FreeRTOSConfig.h頭文件中主要修改MCU頻率、關閉鉤子函數;stm32f4xx_it.c文件中屏蔽PendSV、SVC、Systick中斷服務函數。
3.2 系統軟件功能實現
系統軟件部分主要流程包括以下步驟:
(1)系統初始化,該過程主要包括USB初始化,4G網絡初始化,FATFS文件系統初始化等。USB初始化主要是USB_OTG接口配置;4G網絡初始化主要是通過AT指令配置4G網絡信息;FATFS文件系統初始化主要是初始化SDIO驅動、FATFS文件系統、SD卡掛載等。
(2)系統通過串口和流動站RTK板卡通信,獲取流動站單點絕對定位GGA數據信息。此過程中MCU接收RTK的GGA數據主要通過環形緩存數據結構實現的,該實現流程包括:系統獲取RTK板卡發送的GGA數據,當MCU串口中斷觸發,接收到RTK板卡數據的時候,Push數據至環形緩存;系統主線程持續更新環形緩存中是否有數據,如果有便開始解碼環形緩存數據,進而獲取到GGA數據。
(3)系統通過4G網絡和CORS系統通信,該過程主要包括:通過Ntrip協議完成CORS系統的賬號和密碼認證并登錄到CORS系統數據處理中心,當MCU接收到CORS系統返回的“200 OK”回傳數據的時候,然后系統便可通過NtripClient上傳GNSS單點GGA數據信息給CORS系統。
(4)系統通過NtripClient獲取CORS系統差分修正數據信息,并且此時系統按照MSM格式即消息頭、衛星數據、信號數據這三個部分解碼報文包。此過程系統獲取CORS系統差分修正數據是在步驟3中NtripCaster成功收到GGA數據的時候返回的。
(5)系統通過串口發送CORS系統差分修正數據信息給RTK板卡進行差分定位解算,最終獲取RTK板卡解算的高精度定位數據。
(6)系統在獲得高精度定位數據后通過SDIO接口將數據寫入SD卡中,作為RTK日志文件記錄。
(7)系統通過4G模塊實時發送高精度定位數據信息給手機APP,操作人員可實時觀測RTK定位數據。
四、結束語
針對市場對網絡RTK定位技術的需求,本系統采用了嵌入式的設計方案,設計網絡RTK定位系統。相比于傳統的RTK,本系統能夠提供厘米級高精度定位,并且具備作業覆蓋范圍廣闊、成本低廉、攜帶方便等優點。該系統在無人機電力巡檢領域有較大的市場和應用價值。
參? 考? 文? 獻
[1] 柴大帥. 高頻單歷元GNSS動態差分定位技術研究[D].山東科技大學,2017.
[2] 陳健,岳東杰,朱少林. BDS/GPS組合單歷元相對定位性能分析[J]. 現代測繪, 2017, 40(4).
[3] 程良濤.嵌入式GPS精密單點定位技術研究[D].東南大學, 2015.
[4] 鄭嘉慧.GNSS網絡RTK高精度定位方法研究與應用[D].哈爾濱工程大學,2018.
[5] 李成鋼.網絡GPS/VRS系統高精度差分改正信息生成與發布研究[D].西南交通大學,2007.