首页 > 其他分享 >Ntrip协议

Ntrip协议

时间:2023-12-05 14:34:30浏览次数:22  
标签:协议 NtripCaster Ntrip NtripServer NtripClient 差分 数据 GPS

Ntrip通讯协议1.0

1. Ntrip协议

CORS(Continuously Operating Reference Stations)就是网络基准站,通过网络收发GPS差分数据。用户访问CORS后,不用单独架设GPS基准站,即可实现GPS流动站的差分定位。

访问CORS系统,就需要网络通讯协议。NTRIP( Networked Transport of RTCM via Internet Protocol)是CORS系统的通讯协议之一。

2 系统组成

使用NTRIP通讯协议的CORS系统,其组成请参考下图

图1 Ntrip系统组成

NtripSource        用来产生GPS差分数据,并把差分数据提交给NtripServer

NtripServer        负责把GPS差分数据提交给NtripCaster

NtripCaster        差分数据中心,负责接收、发送GPS差分数据

NtripClient        登录NtripCaster后,NtripCaster把GPS差分数据发送给它

NtripSource 和 NtripServer 一般已经集成到一台GPS基准站内,GPS基准站产生差分数据(扮演着NtripSource的角色),然后再通过网络发送给NtripCaster(扮演着NtripServer的角色)

NtripSource 和 NtripServer也可以分开:GPS基准站产生差分数据,然后通过串口发送给一个程序,这个程序再把差分数据发送给NtripCaster。这里GPS基准站扮演着NtripSource的角色,程序扮演着NtripServer的角色。

NtripCaster一般就是一台固定IP地址的服务器,它负责接收、发送差分数据。给NtripClient发送差分数据时有两种方案:一是直接转发NtripSource产生的差分数据;二是通过解算多个NtripSource的差分数据,为NtripClient产生一个虚拟的基准站(即VRS)。

NtripClient一般就是GPS流动站。登录NtripCaster后,发送自身的坐标给NtripCaster。NtripCaster选择或产生差分数据,然后发送给NtripClient。这样GPS流动站即可实现高精度的差分定位。

3 NtripServer

NtripServer访问NtripCaster的步骤

1、与NtripCaster建立TCP连接;

2、给NtripCaster发送如下数据(↙表示\r\n即0DH和0AH):

SOURCE letmein /Mountpoint↙

Source-Agent: NTRIP NtripServerCMD/1.0↙

上面的Mountpoint是挂载点名称,注意它前面的/不能省略。NtripServer可能有多个,挂载点用来区分它们。

上面的letmein是此挂载点对应的密码。没有密码,随便一个程序都能连上挂载点,整个系统就很容易受到恶意攻击。

"Source-Agent: NTRIP NtripServerCMD/1.0"这一行不是必需的。它说明了NtripServer的软件名称和版本号。这里的软件名称为NtripServerCMD,版本号为1.0。

3、NtripCaster给NtripServer的回复

挂载点、密码均有效,返回:

ICY 200 OK↙

挂载点或密码无效,返回:

ERROR - Bad Password↙

4、NtripServer给NtripCaster发送差分数据

NtripCaster回复ICY 200 OK后,NtripServer就可以给NtripCaster发送差分数据了。

4 NtripClient

NtripClient访问NtripCaster,一般有两个目的:获取源列表、获取差分数据。

下面分别进行介绍。

4.1 获取源列表

多个NtripServer给NtripCaster发送差分数据,这样NtripCaster获得的差分数据就有多个。NtripClient在获取差分数据之前,需要知道差分数据有几个?分别是什么格式的?……这就需要获取源列表,获取步骤如下:

1、与NtripCaster建立TCP连接;

2、给NtripCaster发送如下数据:

GET / HTTP/1.0↙

User-Agent: NTRIP NtripClient/1.0.0↙

Accept: */*↙

Connection: close↙

"User-Agent: NTRIP NtripClient/1.0.0"说明了NtripClient的软件名称和版本号。这里的软件名称为NtripClient,版本号为1.0.0。

3、NtripCaster将返回如下数据,然后自动断开TCP连接

SOURCETABLE 200 OK↙

Server: NTRIP Trimble NTRIP Caster↙

Content-Type: text/plain↙

Content-Length: 441↙

Date: 02/Jun/2023:14:13:32 UTC↙

STR;RTCM23;RTCM23;RTCM 2.3;1(1),3(10),18(1),19(1);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;CMR;CMR;CMR;CMR;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;CMRP;CMRP;CMR+;CMR;2;GPS;SGNET;CHN;31;121;1;1;Trimble GPSNet;None;B;N;0;;↙

STR;DGPS;DGPS;RTCM 2.1;RTCM 2.1;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;RTCM3X;RTCM3X;RTCM 3.X;1004(1),1005/1007(5),PBS(10);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

ENDSOURCETABLE↙

源列表数据以SOURCETABLE开头,以ENDSOURCETABLE结尾。

200 OK 表示一切正常。

"Server: NTRIP Trimble NTRIP Caster"是对NtripCaster软件的说明。

"Date: 02/Jun/2023:14:13:32 UTC"表示当前时刻。其格式并不固定,如:

Date: Sun, 01 May 2023 08:40:39 中国标准时间↙

以下内容就是源列表数据。"Content-Length: 441"表示源列表数据的字节数为441,含每行结尾的\r\n。

STR;RTCM23;RTCM23;RTCM 2.3;1(1),3(10),18(1),19(1);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;CMR;CMR;CMR;CMR;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;CMRP;CMRP;CMR+;CMR;2;GPS;SGNET;CHN;31;121;1;1;Trimble GPSNet;None;B;N;0;;↙

STR;DGPS;DGPS;RTCM 2.1;RTCM 2.1;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

STR;RTCM3X;RTCM3X;RTCM 3.X;1004(1),1005/1007(5),PBS(10);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;↙

源列表数据中,一行表示一个挂载点。每行以分号分隔,其含义请见下表

序号

示例

说明

STR 

类型STR/CAS/NET,这里只对STR进行说明

RTCM23

挂载点(Mountpoint)

RTCM23 

identifier 

RTCM 2.3

差分数据格式

1(1),3(10) 

数据1(1秒输出一次);数据3(10秒输出一次)

2

载波相位数据 0—无 1—单频 2—双频

GPS

导航系统,如:GPS、GPS+GLO、EGNOS

SGNET

网络

CHN

国家

10 

31

纬度

11

121

经度

12 

1

是否需要发送NMEA。0—不需要 1—需要

13 

1

基站类型:0—单基站 1—网络

14 

SGCAN

产生此数据流的软件名称

15 

None

压缩算法

16 

B

访问保护 N—None B—Basic D—Digest

17 

N

Y/N

18 

0

比特率

19 

   

上文提到,NtripCaster给NtripClient发送差分数据时分两种情况:

1、直接转发NtripSource产生的差分数据。在这种情况下,NtripClient只要指定挂载点即可;

2、通过解算多个NtripSource的差分数据,为NtripClient产生一个虚拟的基准站。在这种情况下,NtripClient不仅要指定挂载点,还要发送自身的坐标给NtripCaster,NtripCaster根据这个坐标才能产生虚拟基准站。

NtripClient给NtripCaster发送自身坐标,用到的就是NMEA里的GGA数据。上表的第12个数据说明了是否需要给NtripCaster发送GGA数据,0表示不需要,1表示需要。

4.2 获取差分数据

NtripClient获取差分数据的过程如下:

1、与NtripCaster建立TCP连接;

2、给NtripCaster发送如下命令

GET /RTCM32_GGB HTTP/1.1\r\n
Host:39.107.207.235\r\n
User-Agent: NTRIP NtripClient/1.0.0\r\n
Accept: */*\r\n
Authorization: Basic ***\r\n
Connection: close\r\n\r\n 

上面的RTCM32_GGB是挂载点名称。***是用户名、密码的Base64编码,解码后就是User:Pwd。也就是说用户名为User、密码为Pwd,它们之间以冒号分隔。

3、NtripCaster的回复

如果用户名、密码、挂载点均有效,将返回如下数据:

ICY 200 OK↙

200 OK 表示一切正常。注意:有的服务器只返回200 OK,其余数据行不返回;有的服务器返回的200 OK后面没有回车、换行。

如果用户名、密码、挂载点无效,将返回如下数据:

HTTP/1.0 401 Unauthorized↙

4、给NtripCaster发送GGA数据

GGA数据的示例如下

$GPGGA,065816.000,3034.2767,N,10403.8629,E,2,47,0.47,479.6,M,-31.9,M,,*4A↙

注意:

1)如上文所述,有的挂载点需要发送GGA数据,有的挂载点不需要发送GGA数据;

2)UTC时刻格式必须为hhmmss,如:80331是不行的,必须改为080331;

3)校验码必须正确。

5、NtripCaster收到GGA数据后,将给NtripClient发送差分数据。

标签:协议,NtripCaster,Ntrip,NtripServer,NtripClient,差分,数据,GPS
From: https://www.cnblogs.com/boring-luobo/p/17877043.html

相关文章

  • Modbus RTU协议的风险,协议设计的漏洞
    modbusRTU协议读寄存器功能03H的回包桢格式为什么设计为只有数据长度校验省略起始地址校验?这样如果出现异常通信延迟,是否可能有将上一个读请求的回包当做当前读请求的回包的风险? 下面的chartGPT的解答,并没有给出什么好办法,个人以为还不如在回包中加上地址位校验。  GPT......
  • 神州医疗与海南乐城管理局签署战略合作协议,共同推进医疗科技创新
    近日,神州医疗科技股份有限公司(以下简称“神州医疗”)与海南博鳌乐城国际医疗旅游先行区管理局(以下简称“乐城管理局”)签署战略合作协议。双方本着互惠互利、优势互补的原则,将在临床急需医药健康协同创新、联合共建乐城临床成果转化综合创新服务平台、科技成果转化、人才培养交流、打......
  • 基于泰凌微的TLSR8355芯片的2.4G无线私有协议PCBA设计调试总结
    一前记经常做物联网的类的产品,TLSR8355凭借着它的射频距离远,功能强大等优点成为很多客户的首选。TLSR8355系列专用于2.4GHz射频系统芯片解决方案,如零售/物流、专用网络、Beacon应用程序、无线鼠标、无线USB加密狗等。它集成了2.4GHz射频系统片上应用开发所需的全系列片上外围......
  • TCP协议的流量控制与拥塞控制
    TCP协议的秘密武器:流量控制与拥塞控制合集-计算机网络(19) 1.网络协议的重要性与应用:理解进程间通信和网络分层结构(上)09-172.网络协议的重要性与应用:理解进程间通信和网络分层结构(下)09-183.深入理解HTTP的基础知识:请求-响应过程解析09-194.深入解析HTTP请求:了解请求特征......
  • 【小沐学前端】Node.js实现基于Protobuf协议的数据处理
    1、简介1.1nodeNode.js是一个开源的、跨平台的JavaScript运行时环境。Node.js是一个开源和跨平台的JavaScript运行时环境。它是几乎任何类型项目的流行工具!Node.js在浏览器之外运行V8JavaScript引擎(GoogleChrome的内核)。这使得Node.js非常高效。2、Protobu......
  • NFS服务及RPC协议
    NFS服务及RPC协议FTP和NFS的区别文件系统类型FTP是一种基于客户端-服务器的协议,用于文件传输。NFS则是一种分布式文件系统协议,作为本地操作系统和远程文件系统之间的桥梁,可以实现跨平台文件共享。传输速度和效率由于FTP是基于客户端-服务器的协议,所以需要进行连接的建立和关......
  • RTSP协议安防平台LiteNVR配置视频流播放时长的操作步骤
    今天我们来分享一下另一个关于鉴权的功能:LiteNVR的视频流地址鉴权。有很多用户在使用LiteNVR时都遇到一个同样的需求,那就是将分发的流地址分享给用户播放时,如何控制用户的播放时长呢?LiteNVR平台是基于RTSP/Onvif协议的视频接入、处理及分发平台,能够实现设备接入、实时视频直播、录......
  • RTMP协议学习——Message与Chunk解读
    前言之前通过对抓包数据的学习和分析,对RTMP协议有了一个整体的认知,大致了解了RTMP从建立连接到播放视频的流程,文章请看《RTMP协议学习——从握手到播放》。但是对于RTMP消息传输的载体还没有过多的分析。本文将会就RTMP的传输数据方面,对RTMP协议进行进一步的研究和学习。Messag......
  • 【直播协议详解】RTMP、HLS、HTTP-FLV、WebRTC、RTSP的区别
    本期我们详细讨论直播的相关协议,包括:HTTP-FLV、HLS、RTMP、Web-RTC、RTSP等等。我们将会详细介绍这些协议的工作原理、应用场景、及延迟的原因。我们按这样的顺序讨论​:RTMP、HTTP-FLVHLSWeb-RTCRTSP一、RTMP、HTTP-FLV协议RTMP和HTTP-FLV都是建立在FLV封装之上的。RTM......
  • 开发充电协议联盟 厂商:ABB,Accenture(埃森哲)etc.
    Java-OCA-OCPP:JavaOCPP充电协议,GitHub开源OpenChargeAlliance-开放协议的全球平台Downloads-OpenChargeAlliance......