UBX 协议报文整理
UBX 协议的报文格式如下:
| 帧头(2-byte) | CLASS ID MESSAGE ID(2-byte) | 消息长度(2-byte) | PAYLOAD | 校验和(2-byte) |
|---|
- 帧头: 由两个字节组成,即0xB5 0x62
- 帧头之后是一个字节的 CLASS ID 和 MESSAGE ID 信息组成
- 消息长度: 由两个字节组成,表示后面发送的 PAYLOAD 消息长度,字节序为低字节序
- PAYLOAD: 输出的 GPS 信息
- 校验位: 两个字节的校验,CK_A, CK_B
在 GVINS 项目中接收 gps 信息所用的主要是一下四种 UBX 协议,即 UBX-RXM-SFRBX(0x02 0x13)、UBX-RXM-RAWX (0x02 0x15)、UBX-NAV-PVT (0x01 0x07)、UBX-TIM-TP (0x0D 0x01)。四种报文信息如下:
| 报文名称 | 帧头(2-byte) | CLASS ID MESSAGE ID(2-byte) | 消息长度(2-byte) | PAYLOAD | 校验和(2-byte) |
|---|---|---|---|---|---|
| UBX-RXM-SFRBX | 0xB5 0x62 | 0x02 0x13 | 8 + 4*numWords | CK_A CK_B | |
| UBX-RXM-RAWX | 0xB5 0x62 | 0x02 0x15 | 16 + 32*numMeas | CK_A CK_B | |
| UBX-NAV-PVT | 0xB5 0x62 | 0x01 0x07 | 92 | CK_A CK_B | |
| UBX-TIM-TP | 0xB5 0x62 | 0x0D 0x01 | 16 | CK_A CK_B |
UBX-RXM-SFRBX(0x02 0x13)
该消息报告的是从单个信号中解码出广播导航数据的完整子帧。 每条消息中报告的数据字数取决于信号的性质。
具体的 Payload 信息如下表格:
| Byte Offset | Number Format | Scaling | Name | Unit | Description |
|---|---|---|---|---|---|
| 0 | U1 | - | gnssId | - | GNSS identifier |
| 1 | U1 | - | svId | - | Satellite identifier |
| 2 | U1 | - | reserved1 | - | |
| 3 | U1 | - | freqID | - | Only used for GLONASS: This is the frequency slot + 7 (range from 0 to 13) |
| 4 | U1 | - | numWords | - | The number of data words contained in this message (0…16) |
| 5 | U1 | - | reserved2 | - | |
| 6 | U1 | - | version | - | Message version (0x01 for this version) |
| 7 | U1 | - | reserved3 | - | |
| 8 + 4 * N | U4 | - | dwrd | - | The data words |
UBX-RXM-RAWX(0x02 0x15)
此消息包含能够生成 RINEX 3 所需的信息多 GNSS 观测文件,当信号被同步后,该消息包含伪距、多普勒、载波相位、锁相和 GNSS 卫星的信号质量信息。
具体的 Payload 信息如下表格:
| Byte Offset | Number Format | Scaling | Name | Unit | Description |
|---|---|---|---|---|---|
| 0 | R8 | - | rcvTow | s | 接收器本地时间中的每周测量时间与 GPS 时间系统大致对齐。 接收器的本地周时间、周数和闰秒信息可用于将时间转换为其他时间系统。 有关时间系统差异的更多信息,请参见 RINEX 3 格式文档。 对于在 GLONASS only 模式下运行的接收器,无论 GPS 闰秒是否有效,都可以通过从 GPS 时间中减去闰秒字段来确定 UTC 时间。 |
| 8 | U2 | - | week | weeks | 接收器当地时间中的 GPS 周数 |
| 10 | I1 | - | leapS | s | GPS 闰秒 (GPS-UTC)。 该字段表示接收器对闰秒偏移量的最佳了解。 recStat 位域中给出了一个标志,以指示闰秒是否已知。 |
| 11 | U1 | - | numMeas | - | 要遵循的测量次数 |
| 12 | X1 | - | recStat | - | 接收器跟踪状态位域 |
| 13 | U1[3] | - | reserved1 | - | |
| 16 + 32 * N | R8 | - | prMes | m | 伪距离测量 [m]。 GLONASS 频率间信道延迟通过内部校准表进行补偿。 |
| 24 + 32 * N | R8 | - | cpMes | cycles | 载波相位测量[周期]。 使用近似值初始化载波相位初始模糊度,使相位幅度接近伪距测量值。 根据 RINEX 规范,时钟复位适用于相位和代码测量。 |
| 32 + 32 * N | R4 | - | doMes | Hz | 多普勒测量值 |
| 36 + 32 * N | U1 | - | gnssId | - | GNSS 标识符 |
| 37 + 32 * N | U1 | - | svId | - | 卫星标识符 |
| 38 + 32 * N | U1 | - | reserved2 | - | |
| 39 + 32 * N | U1 | - | freqId | - | Only used for GLONASS: This is the frequency slot + 7 (range from 0 to 13) |
| 40 + 32 * N | U2 | - | locktime | ms | Carrier phase locktime counter (maximum 64500ms) |
| 42 + 32 * N | U1 | - | cno | dBHz | Carrier-to-noise density ratio (signal strength) [dB-Hz] |
| 43 + 32 * N | X1 | 0.01∗2n0.01 * 2^n0.01∗2n | prStdev | Hz | Estimated pseudorange measurement standard deviation |
| 44 + 32 * N | X1 | 0.004 | cpStdev | cycles | Estimated carrier phase measurement standard deviation (note a raw value of 0x0F indicates the value is invalid) |
| 45 + 32 * N | X1 | 0.002∗2n0.002 * 2^n0.002∗2n | doStdev | Hz | Estimated Doppler measurement standard deviation. |
| 46 + 32 * N | X1 | - | trkStat | - | Tracking status bitfield |
| 47 + 32 * N | U1 | - | reserved3 | - | Reserved(保留字段) |
UBX-NAV-PVT (0x01 0x07)
该消息结合了位置、速度和时间解决方案,包括精度数字。
具体的 Payload 信息如下表格:
| Byte Offset | Number Format | Scaling | Name | Unit | Description |
|---|---|---|---|---|---|
| 0 | U4 | - | iTow | ms | GPS 时间信息 |
| 4 | U2 | - | year | y | 年份信息(UTC) |
| 6 | U1 | - | month | month | 月份信息,1-12,(UTC) |
| 7 | U1 | - | day | d | 每一月的天数,1-31(UTC) |
| 8 | U1 | - | hour | h | 时,0-23(UTC) |
| 9 | U1 | - | min | min | 分钟,0-59(UTC) |
| 10 | U1 | - | sec | s | 秒,0-60(UTC) |
| 11 | X1 | - | valid | - | 有效性标志 |
| 12 | U4 | - | tAcc | ns | 时间精度估计 |
| 16 | I4 | - | nano | ns | Fraction of second, range -1e9 … 1e9 (UTC) |
| 20 | U1 | - | fixType | - | GNSSfix Type: |
| 21 | X1 | - | flags | - | Fix status flags |
| 22 | X1 | - | flags2 | - | Additional flags |
| 23 | U1 | - | numSV | - | 导航解决方案中使用的卫星数量 |
| 24 | I4 | 1e-7 | log | deg | Longitude(经度) |
| 28 | I4 | 1e-7 | lat | deg | Latitude(纬度) |
| 32 | I4 | - | height | mm | 椭球以上的高度 |
| 36 | I4 | - | hMSL | mm | 高于平均海平面的高度 |
| 40 | U4 | - | hAcc | mm | 水平精度估计 |
| 44 | U4 | - | cAcc | mm | 垂直精度估计 |
| 48 | I4 | - | velN | mm/s | NED 向北速度 |
| 52 | I4 | - | velE | mm/s | NED 向东速度 |
| 56 | I4 | - | velD | mm/s | NED 下降速度 |
| 60 | I4 | - | gSpeed | mm/s | 地速(2-D) |
| 64 | I4 | 1e-5 | headMot | deg | Heading of motion (2-D) |
| 68 | U4 | - | headAcc | mm/s | 速度精度估计 |
| 72 | U4 | 1e-5 | headAcc | deg | Heading accuracy estimate |
| 76 | U2 | 0.01 | pDOP | - | Position DOP |
| 78 | X2 | - | flags3 | - | Additional flags(附加标志) |
| 80 | U1[4] | - | reserved1 | - | |
| 84 | I4 | 1e-5 | headVeh | deg | 车辆航向(二维),仅当设置 headVehValid 时才有效,否则输出置为运动航向 |
| 88 | I2 | 1e-2 | magDec | deg | 磁偏角。仅支持 ADR 4.10 及更高版本。 |
| 90 | U2 | 1e-2 | magAcc | deg | 磁偏角精度。仅支持 ADR 4.10 及更高版本支持。 |
UBX-TIM-TP (0x0D 0x01)
该消息包含关于在 TIMEPULSE0 输出处的下一个脉冲的时序信息。 使用此消息时的推荐配置是将测量速率 (UBX-CFG-RATE) 和时间脉冲频率 (UBX-CFG-TP5) 都设置为 1 Hz。
具体的 Payload 信息如下表格:
| Byte Offset | Number Format | Scaling | Name | Unit | Description |
|---|---|---|---|---|---|
| 0 | U4 | - | towMS | ms | 依据时基的时间脉冲时间 |
| 4 | U4 | 2−322^{-32}2−32 | towSubMS | ms | towMS 的亚毫秒 |
| 8 | I4 | - | qErr | ps | 时间脉冲量化误差 |
| 12 | U2 | - | week | weeks | 根据时基的时间脉冲周数 |
| 14 | X1 | - | flags | - | 标志 |
| 15 | X1 | - | refInfo | - | 时间参考信息 |
2569





