刘 苗,张昌禄
基于NTRIP 2.0的北斗地基增强数据播发系统
刘 苗,张昌禄
(中国电子科技集团公司第二十研究所,西安 710068)
提出了基于NTRIP 2.0地基增强数据播发系统,解决了差分数据在互联网中的传输困难和支持用户数目过少问题。系统包含发送端、播发器、客户端三部分,播发器为系统中的重要组成部分,可以供200个发送端和300个客户端同时访问。本系统已应用至北斗地基增强系统中,有效提升了差分数据的传输效率,显著提高用户数目,系统性能得到了验证。
NTRIP;差分数据;TCP;数据播发
北斗地基增强系统在农业、林业、渔业和军事有着巨大的应用,它利用已知精确坐标的基准站,求得位置修正量,再将这个修正量发送给用户终端,实现对定位的修正,从而达到厘米级的定位精度。而数据播发系统通过网络接收各个基准站的原始观测和星历导航数据[1],对原始数据进行处理产生差分数据,用户终端接收差分数据流后,即可实现差分定位,而差分服务器需要支持上百个基准站和用户终端的接入,差分数据在网络中需要使用因特网航海无线电(Radio Technical Commission for Maritime Services,RTCM)传输协议(Networked Transport of RTCM via Internet Protocol,NTRIP),它依靠现有的TCP/IP协议,在其基础上进行数据传输,而数据传输也需要解决多个用户接入的难题,通过在发送端和客户端之间引入转发器,解决多用户多数据源接入的问题。
NTRIP是一种基于HTTP的扩展协议,它能够在网络中传输RTCM数据,而RTCM作为一种国际通用的格式能够实时传输载波相位差分数据,NTRIP具有1.0和2.0两个版本[2],在本文中使用具有更多特性的2.0版本。基于NTRIP通讯协议的北斗地基增强数据播发系统由三个部分组成,如图1所示,包括NTRIP客户端、NTRIP转发器和NTRIP发送端三部分。部分名词介绍如:
1)挂载点(Mount Point):指数据源加载至转发器中时的唯一标识,一般包含多个可选数值。
2)源数据列表(Source Table):指NTRIP转发器中包含所有数据源列表。
图1 NTRIP服务器的基本结构
本节为数据播发系统的详细设计,分为NTRIP发送端、NTRIP转发器和NTRIP客户端三个部分进行阐述。
NTRIP发送端需要接收来自全国200个基准站的接收机数据,对原始接收机数据根据芯片类型和卫星类型(GPS、GLONASS、北斗)进行解码,接收机数据分为原始观测和星历导航两种类型,原始观测数据发送频率为1 s,星历导航数据发送频率为3 min。NTRIP接收端由原始数据解码器、NTRIP协议处理器、RTCM数据编码器三部分组成,工作流程如图2所示。
原始数据解码器使用多线程与各个基准站进行TCP连接,对发送而来的原始二进制数据根据其编号进行解析。TCP是以流的方式来处理数据,同时网络上MTU时间往往小于在应用处理消息数据的时间,所以就会引发一次接收的数据无法满足数据解析的需要,导致粘包的存在。需要根据包头中的字段长度来读取数据,从而避免粘包问题。
图2 NTRIP服务器流程图
RTCM数据编码器中RTCM数据分为包头、有效数据和校验帧尾,在NTRIP2.0协议中使用RTCM3.2版本来发送观测值电文和星历电文[3],其中数据编码格式选择MSM4类型,对比其他类型MSM4携带了更多的数据,最后根据比特位对原始数据解码器中的解析的数据按比特位进行编码[4]。
NTRIP协议转发器则负责与协议相关的报文交互。
NTRIP转发器的设计中所使用的NTRIP 2.0版本与其1.0版本相比,修订了与HTTP1.1相悖的地方;加入了分块传输(Chunked)编码;加入密码校验,拥有了更高的安全性。NTRIP发送端将RTCM数据转发到NTRIP转发器中,其响应报文如:
其中NTRIP发送端向NTRIP转发器发送上述报文,转发器将数据挂载到对应的挂载点上,其中Authorization中发送的是用户名和密码Base 64编码后的字符串,如:
而NTRIP转发器则回复上述报文,在NTRIP发送端接收到200之后,使用分块传输的方式向NTRIP转发器传输RTCM 3.2格式的差分数据。
NTRIP转发器作为整个数据播发系统的核心部分,其接收来自NTRIP发送端的数据,并根据发送的请求,将对应挂载点的数据源转发至相应的NTRIP客户端中,其本质是一台高性能的TCP服务器。NTRIP转发器将挂载点信息维护在一张叫做Source Table的表中,其信息包含挂载点名称、密码;将用户信息维护在User Table的表中,包含用户名、IP地址等信息。NTRIP转发器的设计如图3所示,分为主线程和被创建的子线程两部分。主线程的主要功能是对请求进行监听,初始化好差分服务器的环境,并等待NTRIP用户终端、NTRIP服务器的连接完成登入验证。
主线程流程如图4所示,首先初始化套接字,绑定其到对应的端口上,一般NTRIP服务器使用2101端口,设置其为非堵塞状态来监听请求,如果获取到连接则对其进行处理,并重复这个过程。
图3 线程创建流程图
主线程处理请求的过程如图3所示,若NTRIP发送端或NTRIP客户端登入成功后,创建线程处理这些连接:
启动NTRIP转发器,即可收到来自NTRIP客户端和NTRIP发送端的数据请求。
1)若发送请求的是NTRIP客户端,则需要判断客户端所请求的挂载点,若在Source Table中包含这个挂载点,则添加这个客户端至这个挂载点的用户列表中,返回表示成功的状态码至客户端;若不包含则发送Source Table给客户端,将客户端的套接字添加到其所要获取数据的数据源的客户端套接字列表中,最后退出线程;
2)若非NTRIP客户端登入,即发送请求的是发送端,若数据源信息在Source Table表中存在,则初始化属于这个数据源的套接字列表,随后进入数据传输状态,转发器读取NTRIP发送端的数据,依次将数据,播发到这个数据源套接字列表中的每一个NTRIP客户端,并重复这个过程;若不存在,则回复错误结束流程。
NTRIP客户端其功能是向NTRIP转发器发出请求从而接收相应挂载点数据,并将解析实时数据流生成Rinex文件存储在系统中。与NTRIP转发器建立TCP连接成功后,具体发送报文如:
发送完上述报文时Ntrip转发器则回复如下报文:
NTRIP客户端将初始请求发送给NTRIP转发器。第一行请求Source Table,最后一行请求结束。NTRIP转发器将请求的数据作为回复发送。NTRIP客户端的设计中分为两个部分,NTRIP协议处理器和Rinex文件生成器。在Rinex文件生成器中对接收到的实时数据流以文件的形式进行存储;而NTRIP协议处理器则负责建立TCP接收线程与NTRIP Caster进行交互,保持数据传输的连续性。
本文主要介绍了基于NTRIP协议的北斗地基增强数据播发系统,其所支持的功能均已实现,并投入使用,经过并发测试后发现,其最大支持 200个基准站和300个用户终端同时接入使用,连续工作时间超过了3个月,通过在发送端和客户端之间引入转发器,将多个数据源转发至上百个客户端,通过TCP服务器有效地提升了差分数据的传输效率,为地基增强系统的应用打下了基础[5]。
[1] 王淼,杨伯钢,刘博文,等. 基于北斗的地理国情监测关键技术与应用研究[C]. 卫星导航定位与北斗系统应用2018——深化北斗应用促进产业发展,2018.
[2] 祁芳,林鸿. Ntrip协议在CORS系统中的应用[J]. 城市勘测,2008(1).
[3] RTCM 10410.1. Standard for Net Worked Transport of RTCM via Internet Protocol (Ntrip) -Version 2.0[S].
[4] 陈闻亚. 基于Internet的GNSS高精度位置服务平台研究与实现[D]. 成都:西南交通大学,2015.
[5] 中国卫星导航系统管理办公室. 北斗卫星导航系统发展报告(3.0版)[R]. 2018.
Beidou Ground Based Augmentation Data Broadcasting System Based on NTRIP 2.0
LIU Miao, ZHANG Changlu
Based on NTRIP 2.0 foundation-enhanced data transmission system, the problem of differential data transmission difficulty and the number of supporting users is solved in the paper. The system includes three parts: senders, broadcasters, and clients, which are important components of the system and can be accessed simultaneously by 200 senders and 300 clients. The system has been applied to the Beidou foundation reinforcement system, which effectively improves the transmission efficiency of differential dada, significantly improves the number of users, and verifies the system’s performance.
NTRIP; Differential Data; TCP; Data Broadcasting System
TN967.1
A
1674-7976-(2022)-02-123-04
2022-02-15。刘苗(1994.12—),陕西西安人,硕士研究生,主要研究方向为导航方向算法。