注释:
在工作中主要负责的是RTCM-MSM7语句相关开发工作,所以主要介绍的就是MSM7语句相关内容
1. 相位校准参考信号
2. MSM1、MSM2、MSM3、MSM4、MSM5、MSM6和MSM7的消息头内容
DATA FIELD | DF NUMBER | DATA TYPE | NO. OF BITS | NOTES | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 FIELD | DF NUMBER | DATA TYPE | NO. OF BITS | NOTES | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 FIELD | DF NUMBER | DATA TYPE | NO. OF BITS | NOTES | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 Name | DF Range | DF Resolution | Data Type | Data 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 ^-10^ms | 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 ^-10^ms)的位模式表示无效值) | |||||||||||||||||||||||||
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 ^-8^ms)的位模式表示无效值,而不是为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 ^-4^dB-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公有语句,因为不常用(估计是我不常用,就不做介绍了),还有其他的星历信息,做伪距相位残差、载波等卫星算法可能会用到,我只是个刚入门的测试,还没有系统学习。至此结束吧,终于填完了一个坑