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

注释:
在工作中主要负责的是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.rhkb.cn/news/383161.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于STM32的农业大棚温湿度采集控制系统的设计

目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 &#x1f91e;大家好&#xff0c;这里是5132单片机毕设设计项目分享&#xff0c;今天给大家分享的是智能教室。 设备的详细功能见网盘中的文章《8、基…

pycharm git 新建备忘

git 提交时出现如下错误&#xff1a; Committer identity unknown *** Please tell me who you are. Run git config --global user.email "youexample.com" git config --global user.name "Your Name" to set your accounts default identity. Omit…

在STM32嵌入式中C/C++语言对栈空间的使用

像STM32这样的微控制器在进入main函数之前需要对栈进行初始化。可以说栈是C语言运行时的必要条件。我们知道栈实际上是一块内存空间&#xff0c;那么这块空间都用来存储什么呢&#xff1f;有什么办法能够优化栈空间的使用&#xff1f; 栈空间保存的内容 栈是一个先入后出的数据…

华杉研发九学习日记17 正则表达式 异常

华杉研发九学习日记17 一&#xff0c;正则表达式 ^ $ 作用&#xff1a; 测试字符串内的模式(匹配) 例如&#xff0c;可以测试输入字符串&#xff0c;以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证. 替换文本&#xff08;替换》 可以使用正则表达式来…

ubuntu安装mysql8.0

文章目录 ubuntu版本安装修改密码取消root跳过密码验证 ubuntu版本 22.04 安装 更新软件包列表 sudo apt update安装 MySQL 8.0 服务器 sudo apt install mysql-server在安装过程中&#xff0c;系统可能会提示您设置 root 用户的密码&#xff0c;请务必牢记您设置的密码。…

微信小程序实现聊天界面,发送功能

.wxml <scroll-view scroll-y"true" style"height: {{windowHeight}}px;"><view wx:for"{{chatList}}" wx:for-index"index" wx:for-item"item" style"padding-top:{{index0?30:0}}rpx"><!-- 左…

MySQL数据库安装使用

我们都知道数据库又分为关系型数据库和非关系型数据库&#xff1b; 关系型数据库指采用了关系模型来组织数据的数据库&#xff0c;指的就是二维表格模型。可以先初步理解为Excel表格。非关系型数据库又被称为NoSQL&#xff0c;对NoSQL 最普遍的定义是“非关联型的”&#xff0…

C#测试控制台程序调用Quartz.NET的基本用法

Quartz.Net是常用的任务调用框架之一&#xff0c;既能在客户端程序中使用&#xff0c;也支持在网页程序后台调用。本文结合参考文献4中的示例代码学习其在控制台程序中的基本用法。   VS2022新建控制台项目&#xff0c;在Nuget包管理器中搜索并安装Quartz包&#xff0c;如下所…

SvelteKit - 1. 初始化项目

官方 doc - create a project 1、基本环境 &#xff08;下面是我这里的环境&#xff0c;亲测用 node 14 和 16 install 会报错&#xff09; node&#xff1a;20.9.0 npm&#xff1a;10.1.0 2、初始化项目 npm create sveltelatest my-app cd my-app npm install npm run de…

【C语言报错已解决】Use of Uninitialized Variable

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言&#xff1a; 在编程中&#xff0c;未初始化的变量是一个常见的问题&#xff0c;它可能导致程序的行为变得不可预测。未初…

Java基本数据类型与String类型的转换

目录 基本数据类型和Strng类型的转换 第一种方法 第二种方法 将字符串转成字符 注意事项 本章练习题 题1 题2 基本数据类型和Strng类型的转换 第一种方法 使用号和" "即可完成转换 第二种方法 第二种方法是通过基本类型的包装类调用parsexx方法 将字符…

理解进程status的二进制位表示及进程等待(是什么,为什么,怎么办)

信号编号&#xff1a;低7位 状态编号&#xff1a;次低8位 1.子进程退出后会变为僵尸进程&#xff0c;将退出结果写入自身的task_struct结构体中 2.wait/waitpid是一个系统调用->OS可以读取子进程的task_struct 1.为什么要进行进程等待&#xff1f; 1.将子进程&#xff…

达梦数据库系列—30. DTS迁移Mysql到DM

目录 1.MySQL 源端信息 2.DM 目的端信息 3.迁移评估 4.数据库迁移 4.1源端 MySQL 准备 4.2目的端达梦准备 初始化参数设置 兼容性参数设置 创建迁移用户和表空间 4.3迁移步骤 创建迁移 配置迁移对象及策略 开始迁移 对象补迁 5.数据校验 统计 MySQL 端对象及数…

Eclipse 搭建 C/C++ 开发环境以及eclipse的使用

一、下载、安装 MinGW 1、下载: 下载地址&#xff1a;MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net 点击“Download Latest Version”即可 下载完成后&#xff0c;得到一个名为 mingw-get-setup.exe 的安装文件。双击运行&#xff0c;安装即可。 …

Docker容器限制内存与CPU使用

文章目录 Docker 容器限制内存与 CPU 使用内存限额内存限制命令举例使用 `nginx` 镜像学习内存分配只指定 `-m` 参数的情况CPU 限制命令举例验证资源使用Docker 容器限制内存与 CPU 使用 在生产环境中,为了保证服务器不因某一个软件导致服务器资源耗尽,我们会限制软件的资源…

WPF启动失败报System.Windows.Automation.Peers.AutomationPeer.Initialize()错误解决

问题描述 win10系统上WPF程序启动后就崩溃&#xff0c;通过查看崩溃日志如下&#xff1a; 应用程序: xxx.exe Framework 版本: v4.0.30319 说明: 由于未经处理的异常&#xff0c;进程终止。 异常信息: System.TypeLoadException 在 System.Windows.Automation.Peers.Automatio…

META 备受期待的 Llama 3 405B 即将发布

本心、输入输出、结果 文章目录 META 备受期待的 Llama 3 405B 即将发布前言Llama 3 405B或许会彻底改变专用模型的数据质量Llama 3 405B将形成新的模型生态系统:从基础模型到专家组合Llama 3 405B有最高效 API 的竞争Llama 3 405B 基准测试META 备受期待的 Llama 3 405B 即将…

VMware三种网络模式---巨细

文章目录 目录 ‘一.网络模式概述 二.桥接模式 二.NAT模式 三.仅主机模式 四.案例演示 防火墙配置&#xff1a; 虚拟电脑配置 前言 本文主要介绍VMware的三种网络模式 ‘一.网络模式概述 VMware中分为三种网络模式&#xff1a; 桥接模式&#xff1a;默认与宿主机VMnet0绑…

pytest常用命令行参数解析

简介&#xff1a;pytest作为一个成熟的测试框架&#xff0c;它提供了许多命令行参数来控制测试的运行方式&#xff0c;以配合适用于不同的测试场景。例如 -x 可以用于希望出现错误就停止&#xff0c;以便定位和分析问题。–rerunsnum适用于希望进行失败重跑等个性化测试策略。 …

.NET 8+Vue2 部署到Window Server

.NET 8Vue2 部署到Window Server 1 配置环境 1.1 下载安装.NET 8 SDK&#xff0c;下载时需注意目标服务器的系统类型&#xff08;64位 or 32位&#xff09; https://dotnet.microsoft.com/zh-cn/download 1.2 下载安装SQL Server数据库&#xff08;服务和管理工具&#xff…