时间:2024-05-04
曹界宇 王伟 葛男男
【摘要】 为解决传统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.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!