GPS从入门到放弃(五) --- GPS导航电文

时间:2024-03-29 22:00:02

GPS从入门到放弃(五) — GPS导航电文

GPS的导航电文以帧的形式编排为比特流,每一帧为1500比特,这1500比特又分为5个子帧,每个子帧为300比特。每一子帧又分为10个字,每个字30为比特。发送时MSB在前。每一比特发送需要20ms,所以发送一帧需要30s。

每周开始的时候(周六半夜12点/周日凌晨0点),不管之前数据发到哪个子帧,从第一子帧重新开始发;第四、五子帧从第一页开始发。

对每一个子帧来说,其第一个字是遥测字(TLW: Telemetry Word),第二个字是交接字(HOW: HandOver Word),后8个字为数据。

遥测字

其结构如下图所示。其首8个比特为前导码(preamble),前导码固定为10001011。这个固定的前导码可以用来搜索、确定子帧的起始沿。第9位到第22位提供特许用户使用的数据,我们不用管。第23位为完好性状态指示标志(ISF:Integrity Status Flag),为1表示有发射的信号有增强的完好性保证,即更加靠谱。当然这个靠谱是有标准的,在GPS的接口说明文档里有详细数值指标,需要详细了解的可以去查阅。第24位保留。最后6位为奇偶校验码。
GPS从入门到放弃(五) --- GPS导航电文

交接字

其结构如下图所示。第1到17比特为被截断的周内时(TOW: Time of Week),表示的是下一子帧起始沿的GPS时间,单位为6s,即变动1表示时间6s。第18位为警告标志,为1时非特许用户自行承担使用该卫星信息的风险。第19位为反电子欺骗措施(AS)标志,为1表示实施了该措施。第20位到22位为子帧ID,每一帧有5个子帧,ID为1~5。第23、24比特是通过求解得到的,目的是保证奇偶校验码的最后29、30比特为0。
GPS从入门到放弃(五) --- GPS导航电文

数据字

对于数据字,各个子帧就不一样了,下面分子帧来讲。

第一子帧

第一子帧包含的数据有

  • 周数(WN: Week Number):10位,最大值为1023,表示从GPS时间0时开始的第几周。因位数限制,最大表示范围只有约19.6年,于是每19.6年会翻转一次。最近一次翻转发生在今年4月6日。
  • L2载波上是否有P码和C/A码:2位,这个我们不管。
  • 用户测距精度(URA: User Range Accuracy):4位,16个级别,数值越小,精度越高。
  • 卫星健康状况:6位,其中1位为汇总是否有问题,5位具体表示是什么问题。
  • 时钟数据的期号(IODC: Issue of Data, Clock):10位,同一期(同样)的时钟校正参数有着相同的期号,因此可用于确定时钟校正参数是否发生变化。
  • L2载波的P码上是否有导航电文:1位,这个我们不管。
  • 预估群波延时(Estimated Group Delay Differential):8位,单频接收机用这个数据来校正电离层延时。
  • 时钟校正参数:包含toc,af0,af1,af2t_{oc}, a_{f0}, a_{f1}, a_{f2}。用于校正卫星时钟。卫星时钟在GPS时间为t时的卫星钟差Δts\Delta t_s可以表示为:
    Δts=af0+af1(ttoc)+af2(ttoc)2 \Delta t_s = a_{f0} + a_{f1}(t-t_{oc}) + a_{f2}(t-t_{oc})^2
第二、三子帧

第二子帧和第三子帧的数据合在一起可以提供一套卫星星历(Ephemeris)参数。

参数名 位数 含义
toet_{oe} 16 星历参考时间
A\sqrt{A} 32 卫星轨道半长轴A的平方根
ee 32 卫星轨道偏心率
i0i_0 32 toet_{oe}时的轨道倾角
Ω0\Omega_0 32 周内时为0时的轨道升交点赤经
ω\omega 32 近地点角距
M0M_0 32 toet_{oe}时的平近点角
Δn\Delta_n 16 卫星平均角速度校正值
i˙\dot{i} 14 轨道倾角的变化率
Ω˙\dot{\Omega} 24 轨道升交点赤经的变化率
CucC_{uc} 16 升交点角距余弦调和校正振幅
CusC_{us} 16 升交点角距正弦调和校正振幅
CrcC_{rc} 16 轨道半径余弦调和校正振幅
CrsC_{rs} 16 轨道半径正弦调和校正振幅
CicC_{ic} 16 轨道倾角余弦调和校正振幅
CisC_{is} 16 轨道倾角正弦调和校正振幅

除了星历参数以外,还有

  • 星历数据的期号(IODE: Issue of Data, Ephemeris):8位,可用于确定星历数据是否发生变化。它在第二和第三子帧中都有,方便尽快发现星历参数的变化。一般情况下,IODE的值与第一子帧中的IODC值的低8位应该相同,若不同,则发送的参数有变化,需要更新数据。
  • 星历数据的有效期(Curve Fit Interval)指示标志:1位,为0表示4小时,为1表示4小时以上。
  • AODO(Age of Data Offset):5位无符号整数,其值需要乘于900,单位为秒。用于判断在第四子帧中的NMCT的有效时间,计算tNMCTt_{NMCT},可以在众多卫星发送的NMCT中选取最新的值来使用。
第四、五子帧

第四子帧和第五子帧的数据量比较大,无法包含在一帧内,所以进行了分页,完整电文有25页,即需要25帧才能把完整的数据发送完。发送一帧是30s,所以完整电文发送完一遍需要750s,即12.5分钟。不过第四、五子帧的内容并不是定位所急需的,所以定位并不需要等这么久。

第四子帧和第五子帧包含的数据主要有:

  • Data ID 和 SV ID:主要用于指示该页表示的内容,若为星历数据,则SV ID是卫星PRN号。

  • 所有卫星的历书(Almanac)参数

历书参数的内容包括:M

参数名 位数 含义
toat_{oa} 8 历书参考时间
A\sqrt{A} 24 卫星轨道半长轴A的平方根
ee 16 卫星轨道偏心率
δi\delta_i 16 toat_{oa} 时的轨道倾角 δi=i00.3π\delta_i = i_0-0.3\pi
Ω0\Omega_0 24 周内时为0时的轨道升交点赤经
ω\omega 24 近地点角距
M0M_0 24 toat_{oa}时的平近点角
Ω˙\dot{\Omega} 16 轨道升交点赤经的变化率
af0a_{f0} 11 卫星时钟校正参数
af1a_{f1} 11 卫星时钟校正参数
  • 卫星健康状况指示:对32颗卫星中的每颗卫星健康状态都有两处地方指示:

    • 一是在每一个含历书的页中;8位,其中3位为问题分类,5位具体表示是什么问题。
    • 一是在第四、五子帧的第25页;6位,其中1位为汇总是否有问题,5位具体表示是什么问题。
  • 反电子欺骗措施(AS: Anti-Spoof)标志:在第4子帧的第25页,对32颗卫星中的每颗卫星都有一个4位的标志,其中1位表示是否实施了该措施,3位表示具体配置。

  • 历书参考周数WNaWN_a(Almanac Reference Week):8位,历书参考时间toat_{oa}就是相对于WNaWN_a的,这样就可以确定历书参考时间。

  • UTC数据:GPS时间与协调时(UTC)的差异参数,位于第4子帧第18页。这些参数由地面站负责更新,至少每6天更新一次,否则准确性会随时间流逝而下降。

参数名 位数 含义
A0A_0 32 计算秒内时间偏差的系数
A1A_1 24 计算秒内时间偏差的系数
ΔtLS\Delta t_{LS} 8 因润秒导致的时间差异
tott_{ot} 8 UTC的参考时间
WNtWN_t 8 基于UTC时间的周数
WNLSFWN_{LSF} 8 GPS周数 mod 256,指示润秒的日期所在的周
DNDN 8 相对WNLSFWN_{LSF}的天数,与WNLSFWN_{LSF}一起指示润秒的日期
ΔtLSF\Delta t_{LSF} 8 发生润秒后取代ΔtLS\Delta t_{LS}用于计算

从GPS时间计算UTC时间的方法为:
tUTC=(tEΔtUTC)mod  86400 t_{UTC} = (t_E - \Delta t_{UTC}) \mod 86400
其中 tEt_E 为GPS时间,而 ΔtUTC\Delta t_{UTC}
ΔtUTC=ΔtLS+A0+A1(tEtot+604800(WNWNt)) \Delta t_{UTC} = \Delta t_{LS} + A_0 + A_1(t_E-t_{ot}+604800(WN-WN_t))

  • 电离层延时校正参数:位于第4子帧第18页,有8个参数α0,α1,α2,α3,β0,β1,β2,β3\alpha_0, \alpha_1, \alpha_2, \alpha_3, \beta_0, \beta_1, \beta_2, \beta_3,每个8位,用于电离层延时的校正。

  • 特殊信息:第4子帧的第17页。可以包含22个的8位ASCII码,用于传递一些特殊信息。

  • 伪距校正值(NMCT: Navigation Message Correction Table):位于第4子帧第13页,包含一个2位的可用性指示(AI: Availability Indicator)和30个6位的ERD(Estimated Range Deviation)值。
    AI指示校正值是否加密,普通用户和特许用户是否可用。
    30个ERD存放卫星ID 1~31中除了自己的其余30个卫星的ERD值,按ID号升序排列。每个ERD为6位,一位符号位,5位数据,LSB相当于0.3m。
    使用方法为:
    PRc=PRERD PR_c = PR - ERD
    其中PRcPR_c为ERD校正后的伪距,PRPR是ERD校正前的。

星历和历书的比较

  • 两者都是用开普勒轨道参数来表示,都用于描述卫星在各个时刻的空间位置和运动速度。
  • 星历有效期短,只有4小时;历书有效期长达半年。
  • 星历参数多,历书参数少。
  • 星历参数中有摄动校正量,而历书没有,因为历书有效期长,不适用。
  • 星历参数精度高,历书参数精度低。
  • 星历参数与历书参数是由地面站独立推算的,因此它们的参数值有可能不同。
  • 一颗卫星只播发自己的星历,但是会播发所有卫星的历书。
  • 根据星历计算得到的卫星位置和速度值相当准确,可以直接用于定位与定速;根据历书计算的结果准确度不高,一般只能用于卫星信号的搜索和捕获。