劉煉軍,黃繼偉
(福州大學 物理與信息工程學院,福建 福州 350002)
隨著定位和導航的廣泛應用,對精度的要求也越來越高,RTK[1]定位技術是基于載波相位[1-5]觀測值的實時動態定位技術,能夠實時得到厘米級的定位精度。NEO-M8P是ublox公司為提供物聯網解決方案的最新GNSS[6]定位的模塊,結合了高性能的u-blox M8定位引擎與u-blox的實時動態(RTK)技術,實現了高精度的定位導航。NEO-M8P對快速移動的無人機、無人駕駛車輛等應用來說是非常理想的,精度高、操作效率高并且自動返回數據到基站平臺。它集成了能夠訪問完整的端到端RTK解決方案系統,包括基站的“survey-in”功能,這個功能能夠減少設置時間和增加應用的靈活性。通過硬件的設計可以使得該系統兼容許多不同的通信技術,比如WiFi、藍牙、移動電話等。相比于現在的高精度定位,該設計實現的定位更加精確,定位所需時間更短,成本相對較低。
該設計中移動站電路部分采用NEO-M8P-0,基站電路部分采用NEO-M8P-2,基站電路部分通過通信鏈表發送rtcm3協議格式的數據給移動站,經過移動站中的算法進行數據處理,輸出精度為厘米級別的定位數據。該設計中MCU采用內核為Cortex-M3的STM32F103芯片,該單片機主要有性價比高、配置豐富靈活、低功耗等優點;MCU通過接收移動站輸出的數據來實現定位數據的解析,并且在該設計中移動站和基站能夠直接通過USB連接到計算機進行配置和測試。
該系統主要由兩部分組成:以STM32F103芯片為MCU的主控制器單元和以NEO-M8P為核心的移動站和基站單元。在硬件設計部分采用模塊形式進行設計,主控制器STM32及其外部電路屬于一個模塊,移動站和基站電路屬于一個模塊,兩個模塊通過相應的接口進行連接。系統框圖如圖1所示。

圖1 系統框圖
該電路中主控制器采用的是STM32F103ZET6增強型系列芯片,其使用高性能的Cortex-M3 32位RISC內核,擁有豐富的增強I/O端口和兩條APB總線。在功能上主要用到了單片機的3個UART,通過串口與移動站進行通信。USART1和USART2直接輸出的是TTL電平,USART3通過SP3232芯片進行電路轉換輸出232電平。圖2為主要的接口電路原理圖。
主要的接口電路如圖2所示。

圖2 接口電路原理圖
基站和移動站的電路基本一致,只是其中采用不同的NEO-M8P芯片,基站采用的是NEO-M8P-2,而移動站采用的是NEO-M8P-0。該電路中主要涉及NEO-M8P部分、天線部分、電源部分、LED顯示部分。
1.2.1NEO-M8P電路
NEO-M8P電路原理圖如圖3所示。NEO-M8P中由于SPI和UART接口公用,因此在設置D_SEL為懸空或者高電平的時候,公用接口為UART,如圖1的GPS_TX和GPS_RX。電路中的USB接口USB_P和USB_N也能夠用于串口通信。RTK_STAT、GEO_STAT、TIME_PLUSE都是輸出端口,電路都外接有LED燈。RTK_STAT提供了RTK定位狀態的指示,當接收到RTCM3格式的數據后就會以一定頻率(默認是1 Hz)切換輸出高低電平; GEO_STAT表示地理圍欄的狀態;TIME_PULSE表示NEO-M8P內部的時間脈沖信號(默認是每秒一次),該時間脈沖信號可以通過軟件進行配置。

圖3 NEO-M8P原理圖
1.2.2天線部分
天線部分原理圖如圖4所示。電路中和NEO-M8P相連的信號線有VCC_RF、RF_IN、ANT_ON和GND。NEO_M8P中VCC_RF為輸出端口,為低噪聲放大器提供電源,確保LNA有足夠的帶寬去放大衛星信號;NEO_M8P中ANT_ON為輸出信號線,在節能模式下,為了優化功耗,系統會通過該信號線關閉可選擇的外部低噪聲放大器[7](LNA)。

圖4 天線部分原理圖
1.2.3電源部分
整個電路中可以通過USB和串口進行供電,圖5為VDD_IN供電原理圖。由于NEO-M8P中需要3.3 V左右的電壓,故需要將VDD_IN轉換為3.3 V的電壓,該電路中采用的是TPS73633電壓轉換芯片(圖6為電壓轉換原理圖),該芯片也具有反向電流保護作用。在NEO-M8P還涉及V_BCKP輸入端口,當NEO-M8P供電失敗后,備用電源通過該端口供電,用來為實時時鐘(RTC)和BBR供電。

圖5 VDD_IN供電原理圖

圖6 電壓轉換原理圖
該系統設計中主要涉及NMEA、UBLOX、RTCM3這三種協議。在基站和移動站之間傳輸的數據是RTCM3協議的數據。單片機接收移動站發送的數據有NMEA和UBLOX兩種協議的數據,NMEA協議格式如圖7所示。在該系統中單片機只需要解析NMEA中GPGGA、GPGSA、GPGSV、GPRMC和GPVTG,因此這里只詳細介紹這五種數據格式。

圖7 NMEA協議格式
GPGGA數據協議格式CFG-MSG為 0xF0 0x00,包含的數據域有17個,具體GPGGA數據協議格式如圖8所示。

圖8 GPGGA數據協議格式
例如:MYMGPGGA,092725.00,4717.11399,N,00833.91590,E,1,08,1.01,499.6,M,48.0,M,,*5B
GPGSA數據格式CFG-MSG為 0xF0 0x02,包含的數據域有21個,具體GPGSA數據協議格式如圖9所示。

圖9 GPGSA數據協議格式
GPGSV數據格式CFG-MSG為 0xF0 0x03,包含的數據域有8到16個不定,具體GPGSV數據協議格式如圖10所示。

圖10 GPGSV數據協議格式注:由于數據的長度不確定,5..16代表數字5到16都有可能。
GPRMC數據格式CFG-MSG為 0xF0 0x04,包含的數據域有16個,具體GPRMC數據協議格式如圖11所示。

圖11 GPRMC數據協議格式
GPVTG數據格式CFG-MSG為 0xF0 0x05,包含的數據域有12個,具體GPVTG數據協議格式如圖12所示。

圖12 GPVTG數據協議格式
在軟件配置中需要用到ublox公司的u-center軟件, 該軟件對于分析和評估u-blox GNSS接收器具有獨特的靈活性。u-blox GNSS接收器也能夠通過u-center軟件對其進行配置和固件更新。
圖13為其主要的配置流程圖。

圖13 配置流程圖
該系統首先通過串口或者USB接入PC端,在u-center中就會自動連接,然后就可以進行設置。第一步是DGNSS模式的設置,這里是配置為RTK Fix模式;第二步是GNSS配置,即選擇全球導航衛星系統,根據多次測試,選擇GPS和 Beidou兩種衛星系統的信號最好,這里配置選擇GPS和Beidou; 第三步是MSG(Messages)輸出信息的選擇,RTCM協議的數據輸出1005、1077、1127、4072,ublox協議的數據主要輸出RAWX, NMEA協議的數據輸出GPGGA、GPGSA、GPGSV、GPRMC和GPVTG;第四步是 PRT(Ports)端口的配置,串口1和USB的輸入輸出都配置為UBX+NMEA+RTCM3,串口1的波特率設置為115 200 b/s;第五步是Time Mode 3的設置,設置為1-Survey-in模式;第六步是CFG(Configuration)配置,就是將前面的配置保存到內部存儲中,防止掉電丟失。
gpsx為解析后輸出的數據,buf為輸入的nema-0183原始信息:
NMEA_GPGGA_Analysis(gpsx,buf);
NMEA_GPGSA_Analysis(gpsx,buf);
NMEA_GPGSV_Analysis(gpsx,buf);
NMEA_GPRMC_Analysis(gpsx,buf);
NMEA_GPVTG_Analysis(gpsx,buf);
上面分為解析GPGGA、GPGSA、GPGSV、GPRMC和GPVTG五種類型的數據函數,這里詳細介紹GPGGA相關的數據,具體程序設計流程圖如圖14所示。

圖14 程序設計流程圖
結合該程序和2.1節中GPGGA協議的介紹可知,獲取數據的第6個數據段為GPS狀態,第7個數據段為定位的衛星數目,第8個數據段為定位的高度。
本設計中采用u-center軟件對系統進行測試,測試中主要分析如圖15所示的基本數據視圖,其中經度:119.211、緯度:26.046、高度:121.700 m、Fix模式:FIXED、PDOP:1.5、HDOP:0.8。在進行普通定位測試時,PDOP三維位置精度因子(數值越小精度越高)為1.9~2.2,HDOP水平分量精度因子(數值越小精度越高)為1.8~2.0。相對于該系統中的PDOP=1.5、HDOP=0.8而言,該系統的精度相對更高。Fix模式進入FIXED狀態表示定位完成(計算出定位的位置)。通過多次的軟件配置和天線的選擇,在衛星類型選擇GPS+北斗的時候,衛星信號最強。測試中將天線的增益從28 dB增加到 38 dB后,衛星信號基本都能達到40 dB以上,隨著信號強度的增加,系統中Fix模式進入FIXED狀態的時間縮短,也就是定位時間縮短,定位精度也有所提高。

圖15 基本數據視圖
本文利用高性能的NEO-M8P實現實時差分定位(RTK)并通過串口輸出相應格式的數據,對于設計的移動站和基站,可以通過u-center軟件進行測試和配置,在最后數據通過串口輸出后經過STM32單片機對其進行數據解析。電路中的uart端口也能夠很好地與PX4、APM等開源飛控進行通信。u-center軟件配置環境提供很友好的圖形交互界面,使得在實際應用中可根據需求更加方便與準確地進行配置。該系統的高精度定位也完全符合精確導航的商用無人機、機器人導航系統等應用的設計需求。
[1] 孫步陽,程新文,呂獻林. 實時動態RTK技術精度研究[J]. 工程地球物理學報, 2008(2): 232-236.
[2] 吳北平. GPS網絡RTK定位原理與數學模型研究[D].武漢: 中國地質大學,2003.
[3] 谷潤平,黃磊,趙向領. QAR數據的數據融合算法[J]. 計算機系統應用,2016,25(1):136-140.
[4] POURKHAK B, MIREEI S A, SADEGHI M. Multi-sensor data fusion in the nondestructive measurement of kiwifruit texture[J]. Measurement, 2017,101:157-165.
[5] 郝萬亮,孫付平,劉帥.基于載波相位DGNSS/INS緊組合的平滑后處理算法[J]. 大地測量與地球動力學, 2015, 35(6):1031-1035.
[6] 劉碩,張磊,李健. GNSS系統間鐘差輔助定位研究[J]. 武漢大學學報, 2017,42(7):1015-1020.
[7] 曾毅. 低噪音放大器(LNA)多層板設計[J]. 電子工藝技術, 2008(2):84-86,101.