【通信协议-RTCM】MSM语句(2) - RINEXMSM7语句总结(重要!自动化开发计算卫星状态常用)

news2024/9/24 0:07:24

注释:
在工作中主要负责的是RTCM-MSM7语句相关开发工作,所以主要介绍的就是MSM7语句相关内容

1. 相位校准参考信号

在这里插入图片描述

2. MSM1、MSM2、MSM3、MSM4、MSM5、MSM6和MSM7的消息头内容

DATA FIELDDF NUMBERDATA TYPENO. OF BITSNOTES
Message Number - 消息编号
DF002
uint12
12
MSM7语句对应:1077、1087、1097、1117、1127(去除IRNSS卫星之外)
Reference station ID - GPS参考站ID
DF003
uint12
12
GNSS Epoch Time - GNSS历元时间
Specific for each GNSS
uint30
30
针对每一个GNSS
Multiple Message Bit - 多消息位
DF393
bit(1)
1
IODS – Issue of Data Station - 数据站问题
DF409
unit3
3
Reserved - 保留位
DF001
bit(7)
7
保留(可能是GNSS特定的)
Clock Steering Indicator - 时钟转向指示灯
DF411
uint2
2
External Clock Indicator - 外部时钟指示器
DF412
uint2
2
GNSS Divergence-free Smoothing Indicator - GNSS无发散平滑指示器
DF417
bit(1)
1
GNSS Smoothing Interval - GNSS平滑间隔
DF418
bit(3)
3
GNSS Satellite Mask - GNSS卫星掩码(后续缩写为Nsat)
DF394
bit(64)
64
GNSS Signal Mask - GNSS信号屏蔽(后续缩写为Nsig)
DF395
bit(32)
32
GNSS Cell Mask - GNSS单元掩码(后续缩写为Ncell)
DF396
bit(X)
X<=64
Total
169+X
注释(重要):
         单元掩码的大小不是固定的,而是在解码卫星和信号掩码后确定的。单元掩码的大小为X=Nsat*Nsig,其中Nsat是卫星数量(比特数量,在卫星掩码中设置为1),Nsig是信号数量(比特数,在信号掩码中设为1)。
         选择限制X≤64是为了保证MSM7(最大的MSM)的完整大小适合单个RTCM-3传输帧。在X≤64的条件下,MSM7完整大小的初步估计不超过5865位,这大约是任何RTCM-3消息最大允许大小的一半。
         在大多数实时应用中,要传输的数据将符合X≤64的限制(例如Nsat≤16,Nsig≤4),因此大多数时候,给定GNSS的所有数据都应该能够在单个RTCM-3传输中生成。
         如果给定GNSS有许多卫星和信号,编码软件有责任通过将完整的观测集划分为几个消息来确保“X≤64”规则。例如,如果Nsat=14和Nsig=6(即多达14*6=84个可观测值),则编码软件必须使用2个单独的传输,例如:第一个传输用于7颗卫星和6个信号,第二个传输用于其余7颗卫星,6个信号。

3. MSM7卫星数据内容(此处仅介绍MSM7)

DATA FIELDDF NUMBERDATA TYPENO. OF BITSNOTES
The number of integer milliseconds in GNSS Satellite rough ranges - GNSS卫星粗略范围内的整数毫秒数
DF397
uint8(Nsat times)
8*Nsat
Extended Satellite Information - 扩展卫星信息
Specific for each GNSS
uint4(Nsat times)
4*Nsat
针对每个GNSS
GNSS Satellite rough ranges modulo 1 millisecond - GNSS卫星粗略范围模1毫秒
DF398
uint10(Nsat times)
10*Nsat
GNSS Satellite rough PhaseRangeRates - GNSS卫星粗略相位范围速率
DF399
int14(Nsat times)
14*Nsat
Total
36*Nsat

4. MSM7信号数据内容

DATA FIELDDF NUMBERDATA TYPENO. OF BITSNOTES
GNSS signal fine Pseudoranges with extended resolution - 具有扩展分辨率的GNSS信号精细伪距
DF405
int20(Ncell times)
20*Ncell
GNSS signal fine Phaserangedata with extended resolution - 具有扩展分辨率的GNSS信号精细相位数据
DF406
int24(Ncell times)
24*Ncell
GNSS Phaserange Lock Time Indicator with extended range and resolution - 具有扩展范围和分辨率的GNSS相位锁定时间指示器
DF407
uint10(Ncell times)
10*Ncell
Half-cycle ambiguity indicator - 半周期模糊度指示器
DF420
bit1(Ncell times)
1*Ncell
GNSS signal CNRs with extended resolution - 具有扩展分辨率的GNSS信号CNR
DF408
uint10(Ncell times)
10*Ncell
GNSS signal fine PhaseRangeRates - GNSS信号精细相位范围速率
DF404
int15(Ncell times)
15*Ncell
Total
80*Ncell

4.1 RTCM实际输出数据示例解析

注释:
左侧为接收机实时获取到的数据(十六进制GPS-1077语句,实时搜星情况为:GPSL1/L2 双频5星),右侧为十六进制数据解析成二进制数据后结果,并标注了MSM7语句中每个Data Field所对应位置

在这里插入图片描述

5. 信号ID映射

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

附1:Data File参考文档

DF001 DF002 DF003见之前文章中Data File参考文档

DF #DF NameDF RangeDF ResolutionData TypeData Field Notes
DF393
MSM Multiple message bit
bit(1)
1表示在给定的物理时间和参考站ID下,有更多的MSM跟随
0表示它是给定物理时间和参考站ID的最后一个MSM
DF394
GNSS Satellite mask
bit(64)
比特序列,指定此消息中有可用数据的GNSS卫星。最高有效位(MSb)或第一个编码位对应于ID=1的GNSS卫星,第二个位对应于ID=2的GNSS卫星等。最低有效位(LSb)或最后一个编码位相应于ID=64的GNSS卫星。
实际GNSS卫星(GPS的PRN、GLONASS的“时隙号”等)到卫星掩码ID的精确映射是每个GNSS特有的(见MSM描述中每个GNSS的相应表格)。
一些ID值可能指特定的卫星,而一些ID值在本标准中可能表示为“保留”。这些ID将来可能会用于其他卫星,因此解码软件应确保它不会跳过这些比特,而是解码完整的GNSS卫星掩码,解码相应的可观测值,就像它们是指已知的卫星一样,但应避免使用它们,除非有新的卫星映射表可以将相应的ID映射到特定的卫星。
如果后面有ID=n的卫星数据,则相应的比特(比特数n)设置为1。如果ID=m的卫星的数据不在后面,则相应的比特(比特数m)设置为0。
DF395
GNSS Signal mask
bit(32)
比特序列,指定了此消息中有可用数据的GNSS信号。每个比特对应于给定GNSS的特定信号(可观测)类型。最高有效位(MSb)或第一编码位对应于ID=1的信号,第二位对应于ID=2的信号,以此类推。最低有效位(LSb)或最后一个编码位对应于ID=32的信号。
实际信号标识符(与RINEX 3.01信号命名约定相对应)到信号掩码ID的精确映射对于每个GNSS都是特定的(见每个GNSS的MSM描述中的相应表格)。
一些ID值可能指特定的信号,而一些ID值在本标准中可能表示为“保留”。这些ID将来可能会用于其他信号,因此解码软件应确保它不会跳过这些比特,而是对完整的GNSS信号掩码进行解码,对相应的可观测值进行解码,就像它们指的是已知信号一样,但应避免使用它们,除非有新的信号映射表可以将相应的ID映射到特定的信号。
如果ID=n的信号(可观测)可用于至少一个发射的卫星,则相应的比特(数字n)设置为1,否则相应的比特设置为0。
DF396
GNSS Cell mask
bit(X)
一个二维表,用于确定每个发射卫星的信号可用性。
该字段大小可变:X=Nsig*Nsat,其中Nsat是卫星数量(在卫星掩码DF394中设置为1的那些比特的数量),Nsig是可用信号的数量(在信号掩码DF395中将这些比特的数量设置为1)。
该矩形表的第一行对应于具有最小ID的信号,信号掩码中的对应位被设置为1。第二行对应于具有第二小ID的信号,信号掩码中的对应位设置为1。最后一行对应于具有最高ID的信号,信号掩码中的相应位设置为1。
该矩形表的第一列对应于ID最小的卫星,卫星掩码中的对应位设置为1。第二列对应于具有第二小ID的卫星,其卫星掩码中的对应位设置为1。最后一列对应于ID最高的卫星,卫星掩码中的相应位设置为1。
如果给定卫星和给定信号的可观测数据随之而来,则此表中的相应单元格设置为1,否则设置为0。 该比特表按列打包,从与最小卫星ID对应的列开始。
每列的大小为Nsig比特,并且从与最小信号ID对应的单元开始打包。
表的每个单元格由一个位表示,根据单元格中的值,该位设置为1或0。
DF397
The number of integer milliseconds in GNSS Satellite rough range
0-254ms
1ms
uint8
粗略距离可用于恢复给定卫星的完整可观测性。粗略范围需要18位,分为两个字段(DF397和DF398)。此字段包含卫星粗略范围内的整数毫秒数。如果该字段未被传输(MSM1、MSM2、MSM3),则解码设备有责任使用粗略的参考站位置和星历数据来恢复它。
等效于FFh(255毫秒)的位模式表示无效值。
DF398
GNSS Satellite rough range modulo 1 millisecond
0 to (1-2 -10) ms
2 -10ms
uint10
允许以1/1024毫秒(约300米)的精度恢复整个粗略范围。
DF399
GNSS Satellite rough Phaserange Rate
±8191 m/s
1 m/s
int14
相位范围速率与相位范围的数学导数具有相同的符号。
与距离类似,特定信号可观测到的完整相位范围速率可以通过粗略相位范围速率(对给定卫星唯一)和精细相位范围速率的总和来构建(对与给定卫星对应的每个特定信号唯一)。
相当于2000h(-8192 m/s)的位模式表示无效值
DF404
GNSS signal fine Phaserange Rate
±1.6383 m/s
0.0001 m/s
int15
给定信号的精细相位范围速率。全相位范围速率是该字段与卫星粗略相位范围速率(DF399)之和。
相当于4000h(-1.6384m/s)的位模式表示无效值。
DF405
GNSS signal fine Pseudorange with extended resolution
±(2 –10–2 –29) ms (Approx: ±292 m)
2 -29 ms(Approx: 0.0006 m)
int20
与DF400相同,但具有扩展的分辨率,除了等效于80000h(-2-10ms)的位模式表示无效值,而不是为DF400定义的无效模式。(DF400: 特定于给定卫星的每个信号。添加到字段DF397和DF398允许获得与给定信号对应的完整伪距可观测值。相当于4000h(-2 -10ms)的位模式表示无效值)
DF406
GNSS signal fine Phaserange data with extended resolution
±(2 -8–2 -31) ms (Approx: ±1171 m)
2 -31 ms(Approx: 0.00014 m)
int24
与DF401相同,但具有扩展的分辨率,除了相当于8000000h(-2 -8ms)的位模式表示无效值,而不是为DF401定义的无效模式。(DF401:类似于DF400,但指的是相位范围。在相位范围生成开始时,从原始全载波中删除了适当的整数周期数,以将其与相应的伪范围相匹配。
在接下来的时间段内,这个整数保持不变,直到检测到周期滑动,之后必须确定新的整数周期。在这种情况下,相关的GNSS相位范围锁定时间指示器(DF402)必须重置为零。
请注意,此处定义的相位范围与伪范围具有相同的符号。
某些电离层条件(或不正确的初始化)可能会导致相位范围和伪范围(相位范围-伪范围)之间的差异随着时间的推移而发散,这可能会导致该值超过定义的范围限制。在这种情况下,应重新初始化上述“整数周期数”。在这种情况下,相关的GNSS相位范围锁定时间指示器(DF402)应重置为零。
等于200000小时(-2-8m)的位模式表示无效值。)
DF407
GNSS Phaserange Lock Time Indicator with extended range and resolution.
uint10
与DF402相同,但范围更广,分辨率更高(DF402:锁定时间指示器提供接收器对该卫星信号保持连续锁定的时间量的度量。如果在前一个测量周期内发生循环滑动,锁止指示器将重置为零。)
DF408
GNSS signal CNR with extended resolution
0.0625–63.9375 dB-Hz
2 -4dB-Hz
uint10
与DF403相同,但分辨率更高。
值“0”表示CNR测量值尚未计算或不可用。
CNR的可用性或不可用性不会影响其他可观测值的有效性。(DF403:GNSS CNR测量提供了卫星信号的载噪比估计值,单位为dB Hz。
值“0”表示CNR测量值未计算或不可用。
CNR的可用性或不可用性不会影响相应可观测值的有效性。)
DF409
IODS – Issue Of Data Station
0-7
1
uint3
此字段保留用于将MSM与未来的站点描述(接收器、天线描述等)消息链接起来。
值“0”表示未使用此字段。
DF411
Clock Steering Indicator
uint2
0–未应用时钟转向 ---- 在这种情况下,接收器时钟必须保持在±1 ms(约±300 km)的范围内
1–已应用时钟转向 ---- 在这种情况下,接收器时钟必须保持在±1微秒(约±300米)的范围内。
2–未知的时钟转向状态
3–保留
DF412
External Clock Indicator
uint2
0–使用内部时钟
1–使用外部时钟,时钟状态为“锁定”
2–使用外部时钟,时钟状态为“未锁定”,这可能表明外部时钟故障,传输的数据可能不可靠。
3–使用未知时钟
DF417
GNSS Smoothing Type Indicator
bit1
1–使用无发散平滑
0–使用其他类型的平滑
DF418
GNSS Smoothing Interval
bit3
GNSS平滑间隔是使用载波相位对伪距码相位测量值进行平均的积分周期 信息。
在卫星可见的整个期间内,无发散平滑可能是连续的。
注意:零值表示未使用平滑处理。
DF420
Half-cycle ambiguity indicator
bit(1)
0–无半周期歧义。
1–半周期模糊
当传输带有未解析极性编码的相位范围时,软件应将该位设置为1。无法处理半周期模糊的接收软件应跳过此类相位范围可观测值。
如果极性分辨率迫使相位范围校正半个周期,则相关的GNSS相位范围锁定时间指示器(DF402、DF407)必须重置为零,这表明尽管持续跟踪,最终的相位范围仍经历了不连续性。

注释:
GNSS卫星信息相当复杂,除了上述公有语句之外,还有各个芯片厂商自己定义的私有语句,也是做测开必须掌握了解的,由于保密协议,无法介绍。还有一些RTCM公有语句,因为不常用(估计是我不常用,就不做介绍了),还有其他的星历信息,做伪距相位残差、载波等卫星算法可能会用到,我只是个刚入门的测试,还没有系统学习。至此结束吧,终于填完了一个坑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1946023.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1. Docker的介绍和安装 (二)

5 Docker的原理 5.1 Namespace Namespace&#xff08;命名空间&#xff09;提供了一个独立的工作环境&#xff0c;Docker使用Namespace来隔离容器&#xff0c;使得每个容器都有自己独立的系统资源&#xff08;如进程ID、主机名、网络等&#xff09;。 PID Namespace&#xf…

SBTI科学碳目标认证是什么?SBTI科学碳目标的重要性

SBTI科学碳目标认证&#xff0c;作为企业在应对气候变化和追求可持续发展道路上的重要里程碑&#xff0c;其认证过程严谨而系统。以下是获得SBTI科学碳目标认证的详细步骤&#xff1a; 首先&#xff0c;企业需要在线注册并提交承诺书&#xff0c;郑重承诺在未来24个月内提交科学…

Linux网络-配置IP

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 本来IP配置应该放在Linux安装完成的就要配置的&#xff0c;但是由于那个时候对Linux不怎么熟悉&#xff0c;所以单独列了一个…

每日一题 LeetCode03 无重复字符的最长字串

1.题目描述 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的最长字串的长度。 2 思路 可以用两个指针, 滑动窗口的思想来做这道题,即定义两个指针.一个left和一个right 并且用一个set容器,一个length , 一个maxlength来记录, 让right往右走,并且用一个set容器来…

扫雷-C语言

一、前言&#xff1a; 众所周知&#xff0c;扫雷是一款大众类的益智小游戏&#xff0c;它的游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子&#xff0c;同时避免踩雷&#xff0c;踩到一个雷即全盘皆输。 今天&#xff0c;我们的目的就是通过C语言来实现一个简…

Open函数使用 Json与pickle Os模块

一. 文件操作与 open() 函数 Open函数是Python中用于打开文件的内置函数&#xff0c;其基本语法如下&#xff1a; open(file, moder, buffering-1, encodingNone, errorsNone, newlineNone, closefdTrue, openerNone) 各参数说明&#xff1a; file&#xff1a; 要打开的文件…

34_YOLOv5网络详解

1.1 简介 YOLOV5是YOLO&#xff08;You Only Look Once&#xff09;系列目标检测模型的一个重要版本&#xff0c;由 Ultralytics 公司的Glenn Jocher开发并维护。YOLO系列以其快速、准确的目标检测能力而闻名&#xff0c;尤其适合实时应用。YOLOV5在保持高效的同时&#xff0c…

El-Table 表格的表头字段切换

最近写了一个小功能&#xff0c;比较有意思&#xff0c;特此博客记录。 提出需求&#xff1a;需要表头字段变化&#xff0c;但是我在官网上的表格相关上查找&#xff0c;没有发现便捷方法。 于是我有两个想法&#xff1a;1.做三个不同的表格。2.做一个表格使用不同的表头字段。…

2024.7.24 远程连接到另一设备(win)上的vrep时无响应(防火墙!)

Windows防火墙禁止了软件的端口的通信&#xff0c;打开即可 如何设置Windows 7 防火墙端口规则

字典集合案例

1.统计字符 统计字符串中每个字符出现的次数 s l like summer very much #去掉空格 s s.replace(" ","") d dict() for i in s:if i in d:d[i] 1else:d[i] 1 for i in d:print(i,d[i]) 2.求不重复的随机数 #导入随机数 import random a int(input(&q…

VMware 上安装 CentOS 7 教程 (包含网络设置)

**建议先看一些我安装VMware的教程&#xff0c;有些网络配置需要做一下 1.打开VMware&#xff0c;创建虚拟机 2.勾选自定义&#xff0c;点击下一步 3.点击下一步 4.勾选“稍后安装操作系统”&#xff0c;点击下一步 5.勾选linux&#xff0c;勾选centos7&#xff0c;点击下一步…

每日Attention学习12——Exterior Contextual-Relation Module

模块出处 [ISBI 22] [link] [code] Duplex Contextual Relation Network for Polyp Segmentation 模块名称 Exterior Contextual-Relation Module (ECRM) 模块作用 内存型特征增强模块 模块结构 模块思想 原文表述&#xff1a;在临床环境中&#xff0c;不同样本之间存在息肉…

Python算法基础:解锁冒泡排序与选择排序的奥秘

在数据处理和算法设计中&#xff0c;排序是一项基础且重要的操作。本文将介绍两种经典的排序算法&#xff1a;冒泡排序&#xff08;Bubble Sort&#xff09;和选择排序&#xff08;Selection Sort&#xff09;。我们将通过示例代码来演示这两种算法如何对列表进行升序排列。 一…

BGP选路之Local Preference

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较&#xff0c;以确定去往该目标网络的最优BGP路由。BGP首先比较的是路由信息的首选值&#xff08;PrefVal)&#xff0c;如果 PrefVal相同&#xff0c;就会比较本…

python-NLP:2词性标注与命名实体识别

文章目录 词性标注命名实体识别时间命名实体&#xff08;规则方法&#xff09;CRF 命名实体识别方法 词性标注 词性是词汇基本的语法属性&#xff0c;通常也称为词类。词性标注是在给定句子中判定每个词的语法范畴&#xff0c;确定其词性并加以标注的过程。例如&#xff0c;表示…

爱回收严选买的二手iPad Air 4已经使用一周啦!

有多少人是跟我一样&#xff0c;手里一旦有点小钱就留不住&#xff0c;只想花出去的&#xff1f; 本24届应届生目前刚开始实习工作&#xff0c;虽然工资低的可怜&#xff0c;但是比起大学时期还是宽裕了不少。 于是发完工资的我就非常想消费&#xff01;而我最近最想要的就是…

Fedora40安装telnet-server启用telnet服务

Fedora40安装telnet-server启用telnet服务 安装 telnet-server sudo yum install telnet-server或 sudo dnf install telnet-server启用服务 fedora40 或 CentosStream9 不能用 yum或dnf安装xinetd, telnet-server 的服务名为: telnet.socket 启用 telnet.socket.service …

Kithara和Halcon (二)

Kithara使用Halcon QT 进行二维码实时识别 目录 Kithara使用Halcon QT 进行二维码实时识别Halcon 简介以及二维码检测的简要说明Halcon 简介Halcon的二维码检测功能 Qt应用框架简介项目说明关键代码抖动测试测试平台&#xff1a;测试结果&#xff1a; 开源源码 Halcon 简介以…

C++与C中,由函数形参test(int *a)引出的问题

文章参考来源&#xff1a; 1.c函数中形参为引用的情况&#xff1b;C中a和&a的区别 描述&#xff1a; 最近在看循环单链表时&#xff0c;看到有篇文章中&#xff0c;链表初始化函数为图下&#xff0c;我在想&#xff0c;这个函数形参(类似 "int * & a"一样)到…

数据结构(二叉树-1)

文章目录 一、树 1.1 树的概念与结构 1.2 树的相关术语 1.3 树的表示 二、二叉树 2.1 二叉树的概念与结构 2.2特殊的二叉树 满二叉树 完全二叉树 2.3 二叉树的存储结构 三、实现顺序结构二叉树 3.1 堆的概念与结构 3.2 堆的实现 Heap.h Heap.c 默认初始化堆 堆的销毁 堆的插入 …