什么是Ntrip?Ntrip协议简介

2023-11-18


在这里插入图片描述

Ntrip通讯协议1.0

Ntrip是什么?

NTRIP是在互联网上进行RTK数据传输的协议。所有的 RTK数据格式(NCT,RTCM,CMR,CMR+等等)都能被传输。
https://baike.baidu.com/item/NTRIP/9687306?fr=aladdin

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

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

问题:Ntrip协议由谁?在哪一年制定的?

问题:Ntrip和RTCM的关系?
Ntrip 协议是 RTCM 数据的网络传输协议。

注意:Ntrip是应用层协议
https://www.bbsmax.com/A/obzb8N4Q5E/

Ntrip系统组成

使用NTRIP通讯协议的CORS系统,其组成请参考下图
在这里插入图片描述

  • 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流动站即可实现高精度的差分定位。

设备问题:F9P设备怎么产生差分数据?是模组产生RTCM电文、还是产生NEMA数据然后转化成RTCM?然后应用NtripServer服务通过Ntrip协议上报给Caster。

NtripServer

NTRAP通信通常通过HTTP/TCP/IP或RTSP/TCP/IP和RTP/UDP/IP连接进行。
问题:这里的示例是哪种方式?

NtripServer访问NtripCaster的步骤

1. 与NtripCaster建立TCP连接;

2. 给NtripCaster发送如下数据(↙表示\r\n即0DH和0AH)
在这里插入图片描述
上面的Mountpoint是挂载点名称,注意它前面的/不能省略。NtripServer可能有多个,挂载点用来区分它们。

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

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

3. NtripCaster给NtripServer的回复

挂载点、密码均有效,返回:
在这里插入图片描述
挂载点或密码无效,返回:
在这里插入图片描述
抓包实例:
在这里插入图片描述
4. NtripServer给NtripCaster发送差分数据

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

NtripClient

NtripClient访问NtripCaster,一般有两个目的:获取源列表、获取差分数据。下面分别进行介绍。

4.1 获取源列表

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

1. 与NtripCaster建立TCP连接;

2. 给NtripCaster发送如下数据:
在这里插入图片描述
"User-Agent: NTRIP GNSSInternetRadio/1.4.10"说明了NtripClient的软件名称和版本号。这里的软件名称为GNSSInternetRadio,版本号为1.4.10。

3. NtripCaster将返回如下数据,然后自动断开TCP连接
在这里插入图片描述
源列表数据以SOURCETABLE开头,以ENDSOURCETABLE结尾。

200 OK 表示一切正常。

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

"Date: 02/Jun/2010:14:13:32 UTC"表示当前时刻。其格式并不固定,如:
在这里插入图片描述以下内容就是源列表数据。"Content-Length: 441"表示源列表数据的字节数为441,含每行结尾的\r\n。
在这里插入图片描述
源列表数据中,一行表示一个挂载点。每行以分号分隔,其含义请见下表

序号

示例

说 明

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根据这个坐标才能产生虚拟基准站。

问题:设备配置千寻挂载点为AUTO就是使用虚拟基准站喽?

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

4.2 获取差分数据

NtripClient获取差分数据的过程如下:
1.与NtripCaster建立TCP连接;
2.给NtripCaster发送如下命令

在这里插入图片描述
上面的RTCM23是挂载点名称。

VXNlcjpQd2Q=是用户名、密码的Base64编码,解码后就是User:Pwd。也就是说用户名为User、密码为Pwd,它们之间以冒号分隔。(basic认证)

3.NtripCaster的回复

如果用户名、密码、挂载点均有效,将返回如下数据:
在这里插入图片描述
200 OK 表示一切正常。注意:有的服务器只返回200 OK,其余数据行不返回;有的服务器返回的200 OK后面没有回车、换行。

如果用户名、密码、挂载点无效,将返回如下数据:
在这里插入图片描述
4.给NtripCaster发送GGA数据

GGA数据的示例如下
在这里插入图片描述
注意:

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

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

3)校验码必须正确。

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

其他资料

原文:Ntrip协议简介
http://blog.csdn.net/hanford/article/details/53025771

简单的NTRIP caster/client/server示例程序,支持NTRIP 1.0/2.0协议
https://github.com/sevensx/ntrip

NTRIP 客户端
http://lefebure.com/software/ntripclient/

ntripbrowser 2.2.3
https://pypi.org/project/ntripbrowser/

linux ntripserver
https://gitee.com/duowei/ntripserverlinux/blob/master/NtripServerLinux.c

linux ntripcaster
https://blog.csdn.net/improve100/article/details/119909554

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是Ntrip?Ntrip协议简介 的相关文章

  • linux怎样重启网卡,linux系统重启网卡的方法步骤详解

    在实际工作中 经常会遇到Linux系统进行重启网卡的操作 接下来是小编为大家收集的linux系统重启网卡方法 希望能帮到大家 linux系统重启网卡方法 一 service network restart 1 首先用CRT工具连接到Linu
  • GPT-4更新了哪些功能-GPT-4 Plus申请流程

    GPT 4相比GPT3有哪些更新 以下是对GPT 4的优势的详解 1 更强大的语言生成能力 GPT 4将有望比其前身 GPT 3模型生成更精准 更准确 更自然的文本 同时在更短的时间内完成 2 更高的文本理解能力 随着深度学习的技术进步 G
  • Ubuntu操作系统学习笔记之文件系统挂载管理

    概念 在磁盘或分区上创建好的文件系统 需要挂载到一个目录才能使用 windows和Mac会进行自动挂载 即文件系统一创建好就自动挂载到系统上 挂载到windows上的文件系统称之为 C盘 D盘 E盘 等 Linux需要手动进行挂载操作 或者

随机推荐

  • Typora图片路径问题之相对路径前没有点斜杠

    一 背景 在使用typora时 复制一张图片显示的路径前面没有点斜杠 二 遇到的问题 如图所示 原因 typora偏低版本还没有自动在前面加点斜杠的功能 三 解决方法 升级最新版本 效果如图 1 4 3 新增功能 添加选项以在为图像生成相对
  • lua 源码阅读 1.1 -> 2.1

    lua 1 1 阅读1 hash c 中 a 对建立的 Hash array 用 listhead 链式结构来管理 新增lua hashcollector 用来做 Hash 的回收处理 ps 1 0 用的是个 512 的数组 用一个少一个
  • 关于Qt::BlockingQueuedConnection非死锁的程序卡住

    Qt BlockingQueuedConnection如果sender和receiver运行于同一线程 会报错 Qt Dead lock detected while activating a BlockingQueuedConnectio
  • 网络化,元宇宙的门槛

    如果森林中的一棵树倒下 但周围没有人听到 那它是否会发出声音 这一思想实验可以追溯到数百年前 这个实验之所以经久不衰 部分原因是它很有趣 而它之所以很有趣 是因为它耐人寻味并且融人了哲思 人们通常认为 上面这个问题最初是由主观唯心主义哲学家
  • 【自动化测试】如何在jenkins中搭建allure

    相信大家在做自动化测试过程中 都会用到自动化测试环境 目前最常见的就是通过容器化方式部署自动化测试环境 但对于一些测试小白 不是很会搭建持续集成环境 特别是从0 1的过程 需要自行搭建很多依赖环境 今天就给大家介绍一下如何在jenkins搭
  • 小程序开发-Now you can provide attr "wx:key" for a "wx:for" to improve performance

    当我们开发微信小程序用到 wx for 时可能会在控制台报 Now you can provide attr wx key for a wx for to improve performance 警告 不要慌张这只是警告不妨碍运行 消除警告
  • html 常用知识点

    段落 h3 登黄鹤楼 h3 p 白日依山尽 p p 黄河入海流 p 跳转页面 a href http www daidu com target blank title 欢迎登陆 a href 链接的地址 target 打开页面的方式 tit
  • do while(0)的妙用

    do while 0 的妙用 do while 0 就如同一个花括号 具有独立的作用域 花括号所表示的符合语句是一个整体 do while 语句同样是一个整体 同样可以在if 等条件语句后直接使用 但是后所不同的是 do while 作为循
  • Mac 解决 command not found: mysql

    首先检查下面的目录中是否有mysql命令 cd usr local mysql bin 如果有的话 使用 echo export PATH PATH usr local mysql bin gt gt zshrc 即可解决 参考链接 htt
  • Ubuntu关闭无用服务

    linux的各大发行版 都有些不必要的服务被默认开启了 针对ubuntu 我们可以采用选择性关闭的方法加速起动 提高系统性能 这里我们安装一个软件 sudo apt get install sysv rc conf 然后这样起动 sudo
  • 力扣动态规划专题(一)背包理论基础 基础动规题 动规注意点 步骤及C++实现

    文章目录 动态规划 509 斐波那契数 五步骤 代码 70 爬楼梯 五步骤 代码 746 使用最小花费爬楼梯 五步骤 代码 扩展 62 不同路径 动态规划 数论 63 不同路径 II 五步骤 代码 343 整数拆分 五步骤 代码 96 不同
  • 什么是servlet?servlet有什么用?

    servlet概述 什么是servlet servlet有什么用 servlet是java编写的服务器端的程序 运行在web服务器中 作用 接收用户端发来的请求 调用其他java程序来处理请求 将处理结果 返回到服务器中 servlet的生
  • Weblogic - Socket Muxers in Thread Dumps

    What are these weblogic socket Muxer threads seen in thread dumps Note for a basic primer on taking thread dumps and ana
  • UE4 C++学习笔记之初识时间轴,定时器

    任务 在场景中做一个开关门 角色踩上开关后 门打开 离开开关2s后门自动关闭 第一步 新建一个C Actor类命名为DoorSwitch 并编写相应代码 DoorSwitch h代码如下 Fill out your copyright no
  • Loadrunner自带的网站WebTours打不开

    不少人在打开LR示例页面的时候会显示如下错误 Internal error your request was unsuccessful Cannot create CGI process program not found 解决方法 打开W
  • 汇编——单字符输入输出+字符串输入输出(换行实现)

    单字符输入输出 默认采用ML6 11汇编程序 DATAS SEGMENT CHAR DB CHAR存储输入的字符 CHANGELINE DB 13 10 用来表示换行符 DATAS ENDS STACKS SEGMENT DB 128 DU
  • HK32F030MF4P6 实现PAout(xx)/PAin(xx)

    需要将此代码加进程序中即可 ifdef cplusplus extern C endif typedef struct u16 bit0 1 u16 bit1 1 u16 bit2 1 u16 bit3 1 u16 bit4 1 u16 b
  • 保姆级python入门教程(非常详细),从零基础入门到精通,从看这篇开始!

    一 初聊Python 文末有惊喜福利 1 为什么要学习Python 在学习Python之前 你不要担心自己没基础或 脑子笨 我始终认为 只要你想学并为之努力 就能学好 就能用Python去做很多事情 在这个喧嚣的时代 很多技术或概念会不断兴
  • 华为OD机试 - 找出两个整数数组中同时出现的整数(Java )

    题目描述 现有两个整数数组 需要你找出两个数组中同时出现的整数 并按照如下要求输出 有同时出现的整数时 先按照同时出现次数 整数在两个数组中都出现并目出现次数较少的那个 进行归类 然后按照出现次数从小到大依次按行输出 没有同时出现的整数时
  • 什么是Ntrip?Ntrip协议简介

    文章目录 Ntrip通讯协议1 0 Ntrip是什么 Ntrip系统组成 NtripServer NtripClient 4 1 获取源列表 4 2 获取差分数据 其他资料 Ntrip通讯协议1 0 Ntrip是什么 NTRIP是在互联网上