注释:
在工作中主要负责的是RTCM-MSM7语句相关开发工作,所以主要介绍的就是MSM7语句相关内容
1. 相位校准参考信号
2. MSM1、MSM2、MSM3、MSM4、MSM5、MSM6和MSM7的消息头内容
DATA FIELD | DF NUMBER | DATA TYPE | NO. OF BITS | NOTES | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
|
单元掩码的大小不是固定的,而是在解码卫星和信号掩码后确定的。单元掩码的大小为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 FIELD | DF NUMBER | DATA TYPE | NO. OF BITS | NOTES | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
|
4. MSM7信号数据内容
DATA FIELD | DF NUMBER | DATA TYPE | NO. OF BITS | NOTES | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
| ||||||||||||
|
|
|
|
|
4.1 RTCM实际输出数据示例解析
注释:
左侧为接收机实时获取到的数据(十六进制GPS-1077语句,实时搜星情况为:GPSL1/L2 双频5星),右侧为十六进制数据解析成二进制数据后结果,并标注了MSM7语句中每个Data Field所对应位置
5. 信号ID映射
附1:Data File参考文档
DF001 DF002 DF003见之前文章中Data File参考文档
DF # | DF Name | DF Range | DF Resolution | Data Type | Data Field Notes | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
0表示它是给定物理时间和参考站ID的最后一个MSM | |||||||||||||||||||||||||
|
|
|
|
|
实际GNSS卫星(GPS的PRN、GLONASS的“时隙号”等)到卫星掩码ID的精确映射是每个GNSS特有的(见MSM描述中每个GNSS的相应表格)。 一些ID值可能指特定的卫星,而一些ID值在本标准中可能表示为“保留”。这些ID将来可能会用于其他卫星,因此解码软件应确保它不会跳过这些比特,而是解码完整的GNSS卫星掩码,解码相应的可观测值,就像它们是指已知的卫星一样,但应避免使用它们,除非有新的卫星映射表可以将相应的ID映射到特定的卫星。 如果后面有ID=n的卫星数据,则相应的比特(比特数n)设置为1。如果ID=m的卫星的数据不在后面,则相应的比特(比特数m)设置为0。 | |||||||||||||||||||||||||
|
|
|
|
|
实际信号标识符(与RINEX 3.01信号命名约定相对应)到信号掩码ID的精确映射对于每个GNSS都是特定的(见每个GNSS的MSM描述中的相应表格)。 一些ID值可能指特定的信号,而一些ID值在本标准中可能表示为“保留”。这些ID将来可能会用于其他信号,因此解码软件应确保它不会跳过这些比特,而是对完整的GNSS信号掩码进行解码,对相应的可观测值进行解码,就像它们指的是已知信号一样,但应避免使用它们,除非有新的信号映射表可以将相应的ID映射到特定的信号。 如果ID=n的信号(可观测)可用于至少一个发射的卫星,则相应的比特(数字n)设置为1,否则相应的比特设置为0。 | |||||||||||||||||||||||||
|
|
|
|
|
该字段大小可变: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。 | |||||||||||||||||||||||||
|
|
|
|
| 粗略距离可用于恢复给定卫星的完整可观测性。粗略范围需要18位,分为两个字段(DF397和DF398)。此字段包含卫星粗略范围内的整数毫秒数。如果该字段未被传输(MSM1、MSM2、MSM3),则解码设备有责任使用粗略的参考站位置和星历数据来恢复它。 等效于FFh(255毫秒)的位模式表示无效值。 | |||||||||||||||||||||||||
|
|
|
|
|
| |||||||||||||||||||||||||
|
|
|
|
|
与距离类似,特定信号可观测到的完整相位范围速率可以通过粗略相位范围速率(对给定卫星唯一)和精细相位范围速率的总和来构建(对与给定卫星对应的每个特定信号唯一)。 相当于2000h(-8192 m/s)的位模式表示无效值 | |||||||||||||||||||||||||
|
|
|
|
|
相当于4000h(-1.6384m/s)的位模式表示无效值。 | |||||||||||||||||||||||||
|
|
|
|
|
| |||||||||||||||||||||||||
|
|
|
|
|
在接下来的时间段内,这个整数保持不变,直到检测到周期滑动,之后必须确定新的整数周期。在这种情况下,相关的GNSS相位范围锁定时间指示器(DF402)必须重置为零。 请注意,此处定义的相位范围与伪范围具有相同的符号。 某些电离层条件(或不正确的初始化)可能会导致相位范围和伪范围(相位范围-伪范围)之间的差异随着时间的推移而发散,这可能会导致该值超过定义的范围限制。在这种情况下,应重新初始化上述“整数周期数”。在这种情况下,相关的GNSS相位范围锁定时间指示器(DF402)应重置为零。 等于200000小时(-2-8m)的位模式表示无效值。) | |||||||||||||||||||||||||
|
|
|
|
|
| |||||||||||||||||||||||||
|
|
|
|
|
值“0”表示CNR测量值尚未计算或不可用。 CNR的可用性或不可用性不会影响其他可观测值的有效性。(DF403:GNSS CNR测量提供了卫星信号的载噪比估计值,单位为dB Hz。 值“0”表示CNR测量值未计算或不可用。 CNR的可用性或不可用性不会影响相应可观测值的有效性。) | |||||||||||||||||||||||||
|
|
|
|
|
值“0”表示未使用此字段。 | |||||||||||||||||||||||||
|
|
|
|
|
1–已应用时钟转向 ---- 在这种情况下,接收器时钟必须保持在±1微秒(约±300米)的范围内。 2–未知的时钟转向状态 3–保留 | |||||||||||||||||||||||||
|
|
|
|
|
1–使用外部时钟,时钟状态为“锁定” 2–使用外部时钟,时钟状态为“未锁定”,这可能表明外部时钟故障,传输的数据可能不可靠。 3–使用未知时钟 | |||||||||||||||||||||||||
|
|
|
|
|
0–使用其他类型的平滑 | |||||||||||||||||||||||||
|
|
|
|
|
在卫星可见的整个期间内,无发散平滑可能是连续的。 注意:零值表示未使用平滑处理。 | |||||||||||||||||||||||||
|
|
|
|
|
1–半周期模糊 当传输带有未解析极性编码的相位范围时,软件应将该位设置为1。无法处理半周期模糊的接收软件应跳过此类相位范围可观测值。 如果极性分辨率迫使相位范围校正半个周期,则相关的GNSS相位范围锁定时间指示器(DF402、DF407)必须重置为零,这表明尽管持续跟踪,最终的相位范围仍经历了不连续性。 |
注释:
GNSS卫星信息相当复杂,除了上述公有语句之外,还有各个芯片厂商自己定义的私有语句,也是做测开必须掌握了解的,由于保密协议,无法介绍。还有一些RTCM公有语句,因为不常用(估计是我不常用,就不做介绍了),还有其他的星历信息,做伪距相位残差、载波等卫星算法可能会用到,我只是个刚入门的测试,还没有系统学习。至此结束吧,终于填完了一个坑