GNSS终端授时方式
介绍了为什么GNSS接收机能够授时
为什么需要四颗星才能够定位?应该还有很多朋友不太了解 GNSS卫星定位的基本原理。
第二是我最近构思了后续文章的主题,后续文章需要用到GNSS定位的基本原理,所以今天提前介绍一下,算是给后续文章做一个铺垫。
理想情况下两点的距离
我们假设卫星和地面的GNSS接收机都处于真空的状态下,另外地面 GNSS 接收机的时钟和卫星上的时钟是完全同步的。
卫星和地面 GNSS接收机之间的距离用 R 表示。卫星发射信号,地面 GNSS接收机接收信号。卫星发射信号的时刻用T0表示,地面GNSS接收机接收时刻用T1表示。
由于电磁波在真空中的传播速度是 c。
那么我们就有下面这个公式
卫星时钟跟接收机时钟不同步
上面假设了卫星时钟跟接收机时钟完全同步,但实际上,两者是不可能同步的,假设两者之间的差异是△T,在这里△T定义为GNSS接收机时间和卫星时间之间的差值。
这时,T0就是卫星时钟系统中的时间,T1就是GNSS接收机时钟系统中的时间。业内把这个叫做“钟面时间”,这个说法非常形象,就是卫星上的钟面显示的时刻,GNSS接收机的钟面显示的时刻。
那么上面的公式就可以转换为
传播路径不可能是真空
上面假设了卫星到GNSS接收机的传播路径是真空,在真空中电磁波的传播速率是c,但是实际上信号从卫星到地面的传播要经过大气层,电磁波经过大气层之后,信号的传播速率会降低,传播的时间会增大。
大气层中影响电磁波传播延迟最主要的是位于贴近地表的对流层和贴近外太空的电离层。
我们假设:与卫星信号在真空中传播相比,卫星信号穿过电离层增加的传播延时是△I,卫星信号穿过对流层增加的传播延时是△Tr。
那么上面的公式可以转化为:
其中c*(T1-T0)就是伪距观测量ρ,是GNSS接收机自己测量出来的。
这个就是定位方程。
多个卫星联立方程
上面这个等式ρ=R+c*△I+c*△Tr+c*△T针对的是一颗卫星和地面GNSS接收机的方程,如果GNSS接收机能够同时接收N个卫星,那么就会产生N个这样的等式,构成了方程组。如下所示:
其中下标i代表的是卫星号。
细心的朋友应该已经发现了几个问题:
△T为什么用的是同一个
△T 用同一个,意思是每颗卫星的时钟跟地面GNSS接收机的时钟的差值相同,也就是
每个卫星的时钟都是完全同步的。
每个卫星上用的都是高精度的铯原子钟和铷原子钟,本身的精度就很高。而且更为重要的是,地面控制站网络会测量卫星上的原子钟的误差。
我们以GPS卫星为例,GPS地面控制站通过全球分布的监测站网络实时测量各GPS卫星上的原子钟的偏差,建立了三参数的二次多项式模型,三参数包括包含钟差常数项(C0)、一阶漂移项(C1)和二阶漂移项(C2)。
GPS卫星上原子钟的误差可以用下面的表达式计算得到:
Δt=C0+C1(t−t0)+C2(t−t0)^2。
其中 t0 为参考时间,三个参数由地面控制站计算并验证后上传至GPS卫星。
GPS卫星把上面的三个参数通过导航电文播发,地面的GNSS接收机接收到导航电文之后,从电文中提出C0,C1和C2参数,计算出GPS卫星的钟差,从而把每个GPS卫星的时钟和地面控制站维持的GPS系统时间同步起来。
经过这样的卫星钟差改正之后,各个卫星的时钟的同步误差可以减少到20ns以内,甚至是10ns以内。
这个卫星时钟的同步误差会带入到定位方程解算中,导致定位精度出现误差,但是这个误差在单机定位中,我们只能认了。
关于定位误差相关的内容,我们会在下一个章节中详细说明。
电离层延时和对流层延时怎么办
对流层延时对于单机定位来说,是采用对流层模型来估算的。常用的模型有Hopfield模型和Saastamoinen模型,一般根据气压,温度,湿度,仰角等参数来估算对流层延时。
估算出来的对流层延时跟实际的对流层延时肯定会有误差,这个误差也会带入到定位方程解算中,导致定位精度出现误差。
同样的,电离层也是用模型来估算的。常用的有Klobuchar模型(GPS卫星)、BDGIM模型(北斗-3系统)、NeQuick模型(伽利略系统)。
GPS、北斗和伽利略卫星系统都会在导航电文中播发各自的电离层模型参数,地面的GNSS接收机收到导航电文之后,从电文中获取模型参数,就可以对电离层模型进行估算了。
同样,用电离层模型估算的电离层延时也会跟实际的电离层延时有误差,这个误差也会带来定位精度出现误差。
对于GNSS双频接收机来说,可以通过接收同一个卫星的两个频点的信号,分别建立2个定位方程,消除电离层延时误差,这个后续章节再介绍。
为什么定位需要至少4个卫星
我们假设i号卫星的坐标是(x1,y1,z1),地面GNSS接收机的坐标是(x0,y0,z0),那么ρ=R+c*△I+c*△Tr+c*△T方程就变成了
定位方程
在这个方程组中
卫星位置(x1,y1,z1),可以由卫星播发电文中的轨道参数获得,每个卫星的电文中都会播发自己的轨道参数,GNSS接收机根据轨道参数可以计算出卫星的位置;
电离层延时△I和对流层延时△Tr由模型获得;
剩下有4个未知数:GNSS接收机的位置(x0,y0,z0)、卫星和GNSS接收机的时钟偏差△T。有4个未知数,至少就需要4个方程。每个卫星能够建立一个方程,所以就需要至少4个卫星建立4个方程,才能把方程组解算出来。
如果卫星多了怎么办
目前全球卫星系统各个导航星座的卫星数目都很多,拿北斗为例,在北京地区能够接收的北斗卫星数目超过20个。我们在北斗三号和北斗二号的兼容性 --- 多年前的北斗设备还能接收北斗三号信号吗?中给出了2025年4月地面GNSS接收机测试的情况,下面是接收北斗卫星信号的柱状图。可以看到北斗卫星数已经远远超过4个了。
北斗卫星接收
有了20个卫星,理论上就可以建立20个方程,然后解方程组,求出GNSS接收机位置(x0,y0,z0)和时钟偏差△T。当方程数目超过未知数个数的时候,采用的是最小二乘方法来解方程。
当然有些时候,也可以选择部分卫星参与定位,比如,12个卫星参与定位和20个卫星参与定位,定位精度几乎没什么变化,这个时候就可以从20个卫星中选择12个卫星参与定位。
为什么GNSS接收机能够授时
上面说了通过最小二乘方法解定位方程组能得到GNSS接收机机的位置和时钟偏差△T。这个时钟偏差△T是GNSS接收机的时间和卫星系统时间的差值。
我们可以认为卫星系统时间是非常精确的,现在这个偏差△T计算出来了,那么我们就可以用△T来调整GNSS接收机的时间,使得GNSS接收机输出的时间和卫星系统时间同步,从而达到了授时的目的。
当GNSS接收机刚刚上电,GNSS接收机还没有定位,GNSS接收机输出的PPS脉冲是GNSS接收机自己时钟产生的,PPS上升沿什么也代表不了。
当GNSS接收机定位之后,PPS脉冲在时间轴上会有一个巨大的跳跃,此时GNSS接收机已经完成了定位方程组的解算,获得了时钟偏差△T,接着对PPS脉冲调整了△T,这个时候PPS脉冲就和卫星时间同步了。
上面我们介绍了GNSS接收机的定位原理,后面我们会介绍定位中的各种误差来源,以及定位精度的计算,在写方案的时候如何论证定位精度满足指标要求。
介绍了最基本最常见的授时方式PPS+TOD。其中PPS的脉冲沿代表整秒时刻,而紧随其后的串口数据传输的是PPS时刻对应的时间TOD。
什么是PPS+TOD
PPS (Pulse Per Second)是一种硬件定时脉冲信号,由GNSS接收机输出。正常情况下每秒产生一个脉冲,在脉冲的上升沿(也可设置为下降沿)代表系统整秒时刻。当PPS信号到达时,标志着一秒的开始。目前常规GNSS接收机输出的PPS时间精度可达30ns~50ns级别。
但是PPS信号仅代表一个时刻,未包含具体的时间信息。其他设备接收到PPS脉冲后,仍需知道该脉冲对应的"年月日时分秒毫秒"信息,因此需要补充TOD(Time of Day)信息。TOD的作用是明确告知该PPS脉冲对应的具体时刻。
PPS和TOD信息的时序关系如下图所示:
PPS和TOD
一般GNSS接收机都配备串口,因此TOD信息通过异步串行总线接口传输。GNSS接收机在整秒时刻输出PPS脉冲信号,随后发送包含TOD的数据帧,提供PPS时刻对应的时间信息。
在卫星导航领域,传输TOD数据的协议帧较多,最常用的是NMEA0183的ZDA语句。ZDA(Time & Date)提供了UTC时间和日期信息,包含年、月、日、小时、分、秒和毫秒等要素。
(关于UTC时间、北斗时间、GPS时间、北京时间、格林威治时间等时间系统,后续将专门撰写文章进行详细介绍。
一个典型的NMEA ZDA语句格式如下:
**\$BDZDA,hhmmss.sss,day,month,year,xx,yy\*CC。**
各参数说明如下:
$BDZDA:ZDA语句标识符。通常表示数据来自北斗系统,GPZDA表示GPS系统,$GNZDA表示组合系统。
hhmmss.ss:当前UTC时间,格式为小时(hh)、分钟(mm)、秒(ss),后跟小数部分(.sss)。在NMEA-4.1协议中,秒精确到小数点后3位。
day:日期(日)。
month:月份。
year:年份。
xx:本地时区偏移量的小时部分(如适用)。无时区信息时该字段为空或省略。
yy:本地时区偏移量的分钟部分(如适用)。无时区信息时该字段为空或省略。
*CC:校验和,用于验证语句完整性。计算方法是从$开始到*之前所有字符ASCII码的异或结果。
假设接收到的$BDZDA语句如下:
\$BDZDA,160012.750,19,08,2023,,\*4C
其含义为:
- 基于北斗卫星导航系统计算的时间信息。
- 日期为2023年8月19日。
- 时间为16:00:12.750,UTC时间。
怎么使用PPS+TOD
有朋友可能会问:TOD数据是在PPS信号之后发出的,当用户设备接收到TOD时,对应的PPS脉冲已经过去。这该如何应用呢?
实际上,用户设备接收到TOD数据后,可提取其中的时间T0,加 1秒得到T1。当检测到下一个PPS脉冲到来时,该时刻即为T1。
还有朋友会提出疑问:PPS每秒仅输出一次,代表整秒时刻。若需要更高分辨率的时间信息,应如何处理?
例如以下场景:
外部触发事件打时间戳
用户设备接收GNSS接收机的PPS和TOD信号,同时接收到外部触发事件(EventMark)。需要为该外部EventMark事件打时间戳,获取其对应的"年月日时分秒毫秒"信息,应如何操作?
假设用户设备为单片机或ARM处理器(若为CPLD/FPGA,处理方式相同)。操作步骤如下:
外部事件打时间戳
1. 在单片机内启动内部定时器,选择时钟频率(如1MHz主时钟)以获得1μs分辨率的时间戳。
2. 定时器持续运行。
3. PPS脉冲到达时,将内部定时器清零。
4. 将外部EventMark脉冲作为中断信号,在中断处理程序中读取定时器计数值,该值即为EventMark时刻1s以下的时间部分。
5. 将TOD中的PPS时间与定时器计数值相加,即可获得EventMark事件的完整时间戳。
B码是一种用脉宽调制方式传输时间信息的接口类型,把PPS时间脉冲和TOD时间信息集成在一个通道中传输。其中数据帧帧头的P码元上升沿代表PPS整秒时刻,后续数据帧用BCD码表示具体的时刻。
PPS+TOD的劣势
采用PPS+TOD的方式需要硬件的PPS脉冲信号给出整秒时刻,同时还需要串口传输时间信息。时间信息通过两个硬件接口、2个独立的通道传输,在接收端需要同时接收到PPS和串口TOD数据,才能解析出正确完整的时间信息。
在存在电磁干扰、线路噪声等环境下,如果PPS通道上出现尖峰、毛刺,或者串口数据TOD信息丢失、出现误码,都将导致时间同步失败,接收端就无法获得当前的时间。
另外采用#PPS+TOD的方式,时间信息传输需要2个硬件接口。当需要传输的通道较多时需要增加更多的硬件接口电路。比如下面这个应用,某个时统源给8个设备提供时间同步信息,采用PPS+TOD的模式,需要8个PPS接口和8个异步串口。
PPS传输的时候需要PPS和地GND,需要2根电缆;
TOD传输的时候需要TXD和GND,需要2根电缆。
这样一算,时统源对外需要16+16=32个对外电缆;
如果PPS和TOD采用差分RS422电平传输的话,需要的电缆数量就更多了。
B码的特点和优势
有没有可能把PPS时间脉冲和TOD时间信息集成在一个通道中传输,只用2根电缆(Data 和GND)就可以完成时间信息的传输呢?
很自然,我们就想到了:
用数据帧来表示具体的时间,在数据帧中的开头设置一个特殊的标志位,这个特殊的标志位就代表PPS整秒时刻,这样不就完美的实现了时刻和时间信息的集成传输了吗?
这就是B码的由来。
B码的格式
IRIG-B码(直流)采用 TTL脉宽调制 的方式传输时间信息,通过不同宽度的脉冲(码元)表示二进制数据(0/1)和位置标识符(P码)。以下是其格式的详细说明:
-
1个数据帧周期是1秒,包括100个码元,每个码元占用10ms。
-
在10ms的时间片内,脉宽(高电平时间)2ms,代表的是"0",称为0码元;
0码元
- 在10ms的时间片内,脉宽(高电平时间)5ms,代表的是"1",称为1码元;
1码元
- 在10ms的时间片内,脉宽(高电平时间)8ms,位置标识符,代表数据帧开始和时间字段开始,称为P码元。、
P码元
- 数据帧的起始标识:
连续2个P码元代表帧开始。
第二个P码元的上升沿(Pr)代表整秒时刻,也就是PPS时刻,作为"准时参考点"
数据帧开始
帧头之后的数据帧采用BCD码格式,包括的内容有:
-
时间信息:年、日、时、分、秒;
-
闰秒预告,闰秒标志;
-
B码时间和UTC时间的差值;
-
工作状态标识;
具体数据帧的编排方式,可以查询相关的文献。我把IRIG-B码的数据帧格式的pdf文档放在网盘中了,有兴趣的朋友可以自行下载。
链接:https://pan.quark.cn/s/1f0bc37909ef 提取码:11NG
这样:
第二个P码元的上升沿(Pr),代表PPS时刻。
数据帧中的内容表示时间信息。
B码信号就通过一个硬件接口就完成了时间脉冲和时间信息的传输。
如果需要同时给8个设备传输时统信息,只需要8个通道,16根电缆就可以了,而且更重要的是时间脉冲和时间信息是一起传输的,降低了出错的概率。
B码的使用
B码发生器
B码是一个时间传递的接口形式,本身并不会产生绝对时间。B码的时间来自于GNSS接收机。下面是#B码发生器 的内部结构:
B码发生器
GNSS接收机输出PPS和TOD信息,#B码发生器 接收到信息之后,按照数据帧格式,在PPS时刻产生特殊的位置识别标识和参考码元(2个P码元,第二个P码元上升沿Pr代表PPS时刻),然后把解析的TOD信息中的时间按照B码的数据帧格式,产生相应的时间码,填到B码的数据帧中。
B码接收器
B码作为一种时间传递的接口和协议,接收端收到B码之后,并不能直接使用,还需要对B码数据帧进行解析,从帧头的位置识别标识和参考码元获得PPS信号,同时从数据帧中提取出时间信息。
B码接收器
B码授时仪
我们把GNSS接收机和B码发生器集成在一起,就组成了 #B码授时仪。
B码授时仪
#B码的精度
B码本身并不产生时间,所以我们评价B码发生器性能的时候,采用同步精度来表示,同步精度代表的是B码输出时间(准时参考点和时间码)和GNSS接收机输出的时间(PPS和TOD)之间的偏差。
如果是B码授时仪,由于已经把GNSS接收机集成在内部了,所以我们可以用授时精度来表示。授时精度就是B码输出时间(准时参考点和时间码)和标准时间的偏差。这个偏差包括GNSS接收机本身的授时精度,同时也包括B码的同步精度。
B码的两种类型:DC和AC
B码有两种类型,一种是直流DC类型,一种是交流AC类型。
直流B码通过TTL电平或者差分RS-422接口传输。直流B码的同步精度在100ns量级。
AC交流B码,是为了远距离传输,直流B码用1KHz的正弦波进行幅度AM调制之后产生了AC交流B码。交流B码的同步精度一般在10us左右。
B码的分配器
我们在电力、通信、军事等方面经常需要把一个时统源的时间分发到多个设备,从而保证每个设备的时间都是同步的。这里就用到了B码的分配器。
B码分配器
上图是一个8路B码时统分配器的示意图。1路B码信号经过分配器之后,分成8个通道输出,每个通道必须保证保持延时的一致性。
其中直流B码各个通道之间的延时差需控制在 ±5 ns 范围内。交流B码各个通道的延时差需要控制在±20ns的范围内。
要保证通道一致性,需要考虑信号路径的差异(比如PCB走线,接口阻抗)引起的延时波动、电磁干扰EMI引起的延时差异。必要的时候还要采取一定的数字延时补偿技术,动态调整各个通道的延时,保持一致性。
B码时统模块的使用
目前授时行业比较成熟了,我们在设计B码时钟设备的时候,如果尺寸、接口能够满足,实完全可以选择成熟的B码发生器板卡、B码接收器板卡、B码分配器板卡来做系统集成,并不需要自己去用CPLD/FPGA产生B码信号,去解调B码信号。
但是我们还是要了解B的基本原理、B码的数据帧格式、调制方式,如果系统受限、技术需求没有合适的板卡可用,就需要我们自己开发设计B码时统设备了。
授时系统的测试
授时系统最关键的是可靠性,使用B的场景大部分是电力、通信、军事、工业自动化等领域,对时间的可靠性要求非常高。
从功能和基本原理上看,B码的原理是比较简单的,但是真正把B码模块做好,做的可靠其实并不容易,真正困难的是:
在各种异常情况下,系统输出的正确性仍需得到保障。
以几个月为单位的长时间运行中,系统的可靠性必须保持稳定,确保不出错。
NTP网络授时能够通过网络协议把时间传递到地球上任何有网络的地方,实现远距离的时间传递。但是由于网络环境的不确定性、CPU处理延时的影响,NTP授时的精度较低,一般在ms的水平。
为什么要用NTP网络授时
前面我们介绍了两个授时方法,PPS+TOD和B 码授时。PPS授时传输的信号是同步脉冲,而B码授时传输的信号是脉宽调制的信号。这两种信号只适合于短距离的传输。
- •
如果我们需要:
- 在单位的两个办公区之间传递时间;
- 在楼宇之间传递时间;
- 在城市的两个地点传输时间;
- 在国家的两个城市之间传递时间;
- 在地球上的两个地点之间传递时间;
上面提到的PPS授时和B码显然是没法用的。
那我们应该用什么方式来传递时间呢?这就是我们今天要介绍的另外一种授时方式:NTP 网络授时。
NTP网络授时,顾名思义,就是用网络来进行时间的传递和同步。在现代社会中,不论是一个单位的两个办公区之间、楼宇之间、城市之间,世界上的两个地点之间,都能够通过网络连接在一起。
所以利用NTP网络授时,可以将时间传递到任意远的地方。
NTP授时的基本原理
下面这个系统是最简单的NTP授时原理的框图系统。系统有两个部件组成:时间服务器 Server 和客户端 Client ,它们之间通过网线直接连接。
NTP时间服务器和客户端
时间是怎么同步的
在这个系统中,NTP时间服务器Server 的时间是准确的,客户端Client 的时间是不准确的,客户端的时间跟服务器的时间存在一个偏差。
NTP授时的目的:客户端需要把自己的时间跟服务器的时间保持同步。
服务器端有自己的晶振,有自己的时钟系统,产生了自己的时间系统。
客户端也有自己的晶振,也有自己的时钟系统,也会产生自己的时间系统。
就像两个电子钟,同一时刻,两个电子钟显示的时间是不相同的。
我们假设同一时刻,服务器端显示的时间是Ts,客户端显示的时间是Tc, Ts跟Tc之间相差△T。
只要我们把这个△T计算出来,就达到了客户端时间跟服务器端时间同步的目的。
NTP授时的基本流程是这样的:
- 1. 客户端首先向服务器发出一个请求 IP数据包,同时把这个数据包的发送时刻Tc1写在数据包的某个字段中。这里要记住,这个发送时刻Tc1是客户端时间系统里的时间。
Tc1时间
- 2. 服务器端收到这个数据包之后,把接收到该数据包的时刻Ts1记录下来。这里也要记住,这个接收时刻Ts1是服务器端时间系统里的时间。
- 3. 服务器端再向客户端返回一条用于回复的IP数据包,并记录发送数据包的时刻Ts2,这个发送时刻Ts2是服务器端时间系统里的时间。服务器端返回的数据包中,把上面的三个时间都包含在数据包的字段里面,分别是:
- • 客户端上一次发送数据包的时刻Tc1
- • 服务器端收到数据包的时刻Ts1。
- • 服务器端本次发送数据包的时刻Ts2
三个时间
- 4. 客户端接收服务器端发送给自己的数据包,并记录下接收数据包的时刻Tc2。
这样我们就得到了四个时间,分别是Tc1,Ts1,Ts2,Tc2。
其中Tc1,Tc2是客户端系统中的时间,Ts1和Ts2是服务器系统中的时间。
没法直接计算。
下面这个是NTP数据包的字段定义,其中红色框内的部分就是上面说的3个时间Tc1,Ts1,Ts2。
NTP时间协议
前面我们假设服务器端的时间系统和客户端的时间系统相差△T。假设客户端到服务器端的的网络传输延迟是 d1,服务器端到客户端的网络传输时延是 d2。
我们就可以得到下面的方程:
这里我们再做一个假设,我们假设客户端到服务器端的网络传输时延,等于服务器端到客户端的网络传输时延,双向传输是对称的,也就是 d1=d2。
将上面的方程联合解算,我们可以得到
然后我们就可以把△T计算出来:
有了△T,客户端就可以跟服务器的时间同步了。
NTP授时的精度
网络环境的影响
通过上面对NTP授时原理的介绍,我们很容易想到一个问题。在上面的计算方法中,我们假设d1=d2,实际中 d1是否等于 d2呢?
这个跟当前的网络环境有关系。
如果是最简单的NTP授时系统,只有一个服务器跟一个客户端,中间通过网线连接,我们可以近似认为 d1是等于 d2的,这种方式下授时的精度也是最高的。
直连模式下NTP授时
还有一种情况是在局域网里面,服务器通过交换机跟客户终端连接,由于系统网络拓扑图相对简单,不存在路由的问题,因此在这种局域网的条件下,我们也可以认为 d1 和 d2之间差异很小,授时的精度也还可以。
局域网下NTP授时
那如果服务器和客户端分别在一个城市的两个地点、两个城市之间或者地球的任意两个地方的,服务器跟客户端之间的网络拓扑就非常复杂,中间会经过很多个路由器。如果是地球上的两个地点,还要通过海底光缆。服务器跟客户端的每次网络传输的路径可能都不同,时延相差很大,d1 跟 d2 也会有比较大的差异,这个时候授时的精度自然就很差。
CPU处理延时的影响
影响NTP授时精度的,还有另外一个因素:CPU的处理延迟。
前面定义的d1 网络传输延迟是数据包从客户端的网口到服务器的网口的传输时延,d2 也类似。
传输延时
但实际上在客户端在IP数据包里面写入的时刻Tc1,并不是数据包在客户端网络端口处的时间,而是CPU把IP数据包组帧之后,执行数据发送的时刻。
同样的,服务器接收到IP数据包的时刻Ts1,也不是IP数据包到达服务器网口的时刻,而是服务器的CPU把数据包解析之后的时刻。
在上面的NTP授时的计算公式中,没有考虑CPU的处理延时,主板上总线的延迟等因素。而这个延时同样会影响NTP的授时精度。
NTP授时精度
考虑到上面的两个因素,NTP授时精度肯定要比PPS授时精度、B码授时精度差得多。
一般来讲,
如果客户端在和服务器用网线直接连接,这个时候传输路径相同且稳定,NTP授时精度最高,可以到1ms。
如果客户端在和服务器在同一个局域网里面,NTP授时精度大概能在10ms以下。
如果客户端在和服务器处于广域网,授时精度一般在几十 ms ~百ms量级。
在《北斗卫星导航系统定时型终端通用规范》中定义了NTP授时的同步精度如下:
相关规范对NTP授时的要求
我们普通人怎么利用NTP授时
网络授时
首先就要找到NTP授时服务器,其实世界上有很多开放的NTP授时服务器,如下面这个网页所介绍的公共 NTP 网络时间服务器地址大全 Public NTP Server - DNS.iCoA.CN
公开的NTP授时服务器
举例:
如果我们普通的个人计算机时间不准的话,也可以做NTP授时来校准时间。
Window Internet时间校准
在Windows的Internet时间设置里面,我们可以把时间服务器的网址写上去,然后选择同步的时间就可以了。在这里我们选择了微软公司的时间服务器的地址time.windows.com,这样设置之后,相当于我们个人电脑的时间就从微软时间服务器的时间同步起来了。
NTP授时广域网的授时精度在100ms量级,对个人用户来讲,100ms的时间精度已经完全足够了。
为了解决NTP授时精度低的缺点,在网卡和PHY上打了时间戳,消除了CPU处理延时的影响。将网络上路由器,交换机等部件的内部处理延时补偿到网络通信延时上去,增加了网络通信协议,通过上面的方式,最大限度的消除了网络不确定性,从而将PTP时间传递精度提高到了100ns以下,在局域网中PTP时间传递精度可以到20ns。
为什么NTP授时精度只能到ms(局域网),百ms(广域网)呢?
在上一个文章中也提到了,导致NTP授时精度比较低的原因主要有2个:
- CPU的处理延时
NTP授时原理中的四个时间戳,T1、T2、T3、T4,都是CPU处理时间数据包的时刻,并不是数据包从网口发送/接收的时刻。
CPU处理数据包的时刻 和 数据包从网口上输入/输出的时刻 ,肯定存在差异,这个也会引起授时精度降低。
而且由于CPU都带有操作系统,是多线程运行的,带来的结果是CPU的处理延时并不是一个确定的数值,没法进行补偿。
- 网络环境的延时
在 NTP 授时原理中,假定从服务器到客户端的网络传输延时 T1 和从客户端到服务器的网络传输延时 T2 相等且对称。而实际网络环境中,存在多级交换机,多级路由器,上面的两个时间T1和T2不可能是相等、对称的。
这就带来了NTP授时的误差。随着广域网中国路由器的数量增多,从服务器到客户端的路由路径 和从客户端到服务器的路由路径 会有很大的差异,导致T1和T2的差异更大,所以授时精度也会到百ms的级别。
那么,有没有一种办法,能够让网络授时精度达到1us以下呢?
今天我们就来聊聊这个话题。
授时精度能够达到1us以下精度的网络授时方式是有的,这就是PTP授时。
PTP授时中的第一个“P”的意思就是Precise,精确的意思。
我们从NTP授时精度差的痛点开始介绍。
CPU处理延时怎么解决
既然
- CPU处理存在延时
- 应该记录的是数据包从网口发送和接收的时刻
那么
我们给T1、T2、T3和T4打时间戳的时候,直接在物理层(PHY)或者网卡(NIC)记录时间,这样就绕过了操作系统和软件协议栈的延时抖动,不存在由于操作系统的调度,中断处理等导致的随机延时了。
就像下面这个图上所表示的:
时间戳
网络环境延时怎么解决
中间节点延时补偿
网络中数据包经过的交换机、路由器这些中间节点的时候,在节点的内部都存在处理时间,这个交换机和路由器的处理时间,称为驻留时间(Residence Time)。
如果我们能够把驻留时间测量出来,然后作为补偿值放在时间数据包的专用字段中,发送到下一级。
下一级节点收到数据包之后,经过处理,在对外发送的时候,把自己的驻留时间和上一级的驻留时间相加,相加的结果放在时间数据包的专用字段中。
。。。。
这样一级一级的传递下去,等到数据包从主时钟到达从时钟的时候,从时钟不仅知道了从主时钟到从时钟的总路径延时T,还知道了中间各个节点总的驻留时间Tr。
在主从时钟之间传输的数据包中有专门的时间校正字段correctionField。
我们假定主时钟和从时钟之间有2个路由器,第一个路由器的驻留时间是3us,第二个路由器的驻留时间是2us。主时钟发送的数据包从第一个路由器发出的时候,数据包的correctionField字段写上了3us,数据包从第二个路由器发出的时候,数据包的correctionField字段写上了5us。
从时钟拿到数据包之后,从correctionField字段中拿到了5us,就知道网络路径上的路由器节点增加了5us延迟,那么
总路径延时T减去总驻留时间Tr=5us,不就是实际的网络传输延时吗?
以此类推,如果有N级路由器,每个路由器都把自己的处理驻留时间加到correctionField字段上去。
我们可以用下面这个图来说明。
驻留时间分析
通过上述的办法,可以消除交换机、路由器内部处理带来的延时影响,即使经过了多级交换机,多级路由器也没关系了。
中间节点延时补偿,在业内有一个专门的术语“透明时钟”,意思也就是说,数据包通过节点是完全“透明”的,没有增加延时,原因是延时已经被补偿掉了。
强制路由
中间节点延时补偿能够消除路由器、交换机内部处理延时的影响。但是我们从服务器到客户端的路由路径,和,从客户端到服务器的路由路径 不同的话,仍然会存在路径延时的误差,导致往返延时的不对称,最终影响授时的精度。
所以,我们可以对网络路由进行优化,通过配置路由协议,强制服务器到客户端之间双向往返流量走相同的物理路径,从而保证往返延迟的对称性。
另外如果能够为PTP时间数据包划分独立的VLAN或者物理链路,就更好了,不仅保证了双向链路走了相同的物理路径,还避免了路径上的数据堵塞可能导致的随机延迟。
具体实现方式
上面根据NTP授时精度不高的痛点,提出了提高授时精度的解决方法。而PTP授时就是利用上面的方法来提高授时精度的。
首先PTP时间协议中的时间戳,都是基于网卡NIC或者物理层PHY的时间,是数据包从网口发送/接收的时刻,消除了CPU处理延时的影响。
在网络中的节点,交换机和路由器,都是测量自己的处理时间(驻留时间)Tr,然后把自己的驻留时间加到总的驻留时间中。
-----------------------------------------------------------------------------
具体主从之间的时间信息传递是怎么流程呢?可以看下面的图。
主从时间传递
(1) Sync 和 Follow_Up 消息(主 → 从)
主时钟发送同步信息Sync。如果硬件时间的话,就把网口的发送时间T1放在Sync数据包中发送出去。
如果硬件不能支持的话,就由CPU读取网口发送时间T1,随后再发送一个Follow_UP数据包,把T1放在Follow_UP数据包中发送出去。
(2) Delay_Req 消息(从 → 主)
从时钟收到Sync数据包之间,记录自己的网口接收时刻T2,然后向主时钟发送Delay_Req数据包,同时记录自己网口的发送时刻T3。
在这个过程中,T2 和 T3 这两个时间戳都不需要向主时钟回传。
(3) Delay_Resp回传信息(主→从)
主时钟收到Delay_Req之后,记录自己网口的接收时间T4,然后通过Delay_Resp数据包把T4返回给从时钟。
那么现在从时钟手里有了T1、T2、T3和T4,应该怎么处理才能得到主从时钟时间的时间差offset呢?
跟NTP授时的时候类似,我们可以如下计算:
从时钟计算出了offset之后,将自己的时钟调整offset,就可以完成跟主时钟时间的同步了。
为什么PTP授时仍然能够假定主从之间的往返路径延时是对称的呢?就是因为:
透明时钟消除了各个节点的内部处理驻留时间,强制路由限定了主从之间相同的路径,保证了主从往返延时的对称性。
时钟传递,从时钟变成下一级的主时钟
如果网络过于复杂,即使经过上述处理,主从之间的往返延时仍然是不对称的。还有一种办法能够提高授时精度,就是把主时钟到从时钟之间的长链路分割为多个短链路。
假定主时钟A需要给从时钟B授时,但是A和B之间网络比较复杂,还可以中间增加一个PTP的节点C,C具备从主时钟A获取时间的能力,把自己的时间同步到主时钟。
同时C还可以作为新的主时钟,给下一级的时钟B提供时间。
时钟传递
由于长链路分成了多个短链路,每个短链路的往返延时就更容易保证对称了。
示例
下面是某PTP授时板卡的技术指标和说明
PTP授时板
介绍了只用一个卫星就实现授时的方法以及获得精密星历和高精度卫星钟差参数的方法。在具备精密星历和高精度钟差参数的情况下,单站授时的精度可以到几十ns级别。
我们知道GNSS定位方程组需要至少4个卫星的观测方程才能完成定位解算,才能解算出△T,完成时间同步。
那么有没有可能只用一个卫星就能够完成授时,达到时间同步的目的呢?
今天介绍一种利用卫星信号的授时方式:单站授时,只需要接收1颗卫星就能获得精确的时间。
单站授时基本原理
在GNSS接收机定位误差分析中我们给出了完整的定位方程组如下:
其中(x1,x2,x3)是卫星位置,(x0,y0,z0)是GNSS接收机位置。
电离层延时是△I,对流层延时是△Tr;
△Ts是卫星钟差,△T是GNSS接收机钟差。
只要把△T计算出来,那么GNSS接收机授时的目的就达到了。
在GNSS接收机定位误差分析我们知道:
卫星位置(x1,x2,x3)是通过卫星播发电文中的轨道参数计算出来的;
卫星钟差△Ts可以利用卫星播发的钟差修正参数对卫星的时钟进行修正;
对流层延时△Tr可以通过模型计算得到;
电离层延时△I可以通过模型计算得到,但是双频GNSS接收机可以构建双频无电离层方程,消除电离层延时对定位精度的影响。
那么,如果我们还已知了GNSS接收机的位置呢?
在已知GNSS接收机的位置(x0,y0,z0)的情况下,把(x0,y0,z0)、卫星位置(x1,x2,x3)、卫星钟差△Ts、对流层延时△Tr带入上面的方程,同时利用两个频点f1和f2构建无电离层方程式,就可以只需要1个卫星的伪距观测量就计算出GNSS接收机的钟差△T,从而达到授时的目的。
GNSS接收机的位置如何获得?这个测绘行业的朋友有办法,不利用GNSS卫星的信息,也能够实现精确的位置测量。
现在有了GNSS卫星,利用差分定位的方法,可以获得高精度的位置。
上述单站授时的方法,在地面固定站的场景下是非常合适的。
单站授时的精度
用上面的方法进行单站授时,授时的精度跟卫星位置误差、卫星钟差、对流层延时误差,GNSS接收机观测误差这些因素相关。
众所周知,卫星广播电文中包含的轨道参数和卫星钟差参数精度较低,采用电文计算的卫星位置和卫星钟差,会影响GNSS接收机钟差△T的精度。
如果还想获得更高精度的轨道参数和卫星钟差参数,我们可以采用精密星历和精密的钟差参数。
我们用GPS为例,国际GNSS服务(IGS)作为数据源,为提供GPS卫星的精密星历和钟差参数。
IGS通过全球260多个GPS卫星的观测跟踪站(其中中国占20多个,如武汉、拉萨等站点)采集GPS卫星的数据,经过计算之后,提供3种不同类型的星历:
- 事后精密星历(IGS)
- 快速精密星历(IGR)
- 预报精密星历(IGU)
上面三种星历的主要区别在于时延(数据发布时间)、精度和采样率。
事后精密星历(IGS):时延:约11天(数据滞后11天发布),数据记录间隔:15分钟,轨道误差:<5cm;卫星钟差误差:0.1~0.2ns。更新率:每周更新一次。适用于对精度要求极高且无需实时数据的场景,如科学研究、高精度测绘等
快速精密星历(IGR):时延:约17小时(数据滞后17小时发布),数据记录间隔:15分钟,轨道误差:<5cm;卫星钟差误差:0.2~0.3ns。更新率:每天更新一次。适用于需要较高精度且对时效性有一定要求的应用,如地质灾害监测、工程测量等
预报精密星历(IGU):时延:实时(数据实时发布,但需每6小时更新一次),数据记录间隔:15分钟,轨道误差:约25cm(近似对应0.8ns的等效钟差),卫星钟差误差:约1~3ns。更新率:每6小时更新一次。适用于实时性要求高但精度需求较低的领域,如车载导航、气象预报等
事后精密星历和快速精密星历的实时性较低,不能满足实时性的要求。GNSS接收机要授时,一般都需要实时性的,这样就只能采用预报精密星历IGU。
预报精密星历的采用率是15分钟,也就是卫星轨道参数、钟差参数是每隔15分钟计算一次,然后把计算的结果保存到文件中,比如:00:00,00:15,00:30等时刻的数据。
预报星历的更新频率是6个小时,比如IGU文件每天在UTC时间00:00、06:00、12:00、18:00发布,每次发布覆盖未来24小时的数据。
地面的GNSS接收机获取到预报星历之后,通过格朗日多项式或线性内插的方式获得连续时刻的轨道参数和钟差参数,计算出精确的卫星位置(x1,y1,z1)和卫星钟差△Ts,然后在卫星位置(x1,y1,z1)和卫星钟差△Ts代入上面的定位方程中。
对于固定的地面站,可以预先获得当地的气象数据,从而更加精确的利用对流层模型计算出对流层延时。改进的Saastamoinen模型对流层延迟残差约2~5 cm(等效0.07~0.17 ns时间误差),
地面固定站是静止不动的,在GNSS接收机基带信号处理环节,可以降低环路滤波器的带宽,从而降低GNSS接收机的伪距观测量误差。
同时GNSS接收机采用高稳定度的温补晶振或者恒温晶振,阿伦方差较小的时钟也能够降低GNSS接收机的伪距观测误差。
GNSS接收机热噪声导致的伪距误差约0.3~ 0.5m(等效1 ~1.6ns).
通过上面的一系列降低误差的方法,我们通过单站授时得到的GNSS接收机钟差△T也能够保持在一个比较高的精度水平。
介绍了一种两个不同位置的GNSS终端,通过共同观测同一个卫星,实现时间传递的方法。共视法做时间传递,在使用精密星历的情况下,时间传递精度在10n以下。
共视法时间传递基本原理
根据GNSS接收机定位误差分析介绍过的定位方程:
其中:ρ是伪距观测量,是GNSS接收机测量出来的。
(x1,x2,x3)是卫星位置,是由卫星播发电文中的轨道参数获得,每个卫星的电文中都会播发自己的轨道参数,GNSS接收机根据轨道参数可以计算出卫星的位置;
电离层延时△I和对流层延时△Tr由模型获得;
△Ts是卫星钟差的误差,这个是经过卫星播发的时钟修正参数修正之后,卫星时钟残余的误差。
假设地面上有2个GNSS终端,分别标记为A和B,两个终端间隔一定的距离d,两个终端能接收同一个卫星。那么我们就可以建立2个等式:
和
分别是终端A和终端B的定位方程。
其中(x1,x2,x3)是卫星位置,由于终端A和终端B接收同一个卫星,所以两个方程中(x1,x2,x3)是一样的。
△、是电离层延时,△、是对流层延时。
△Ts是卫星钟差的误差,由于是采用同一个卫星,采用了同样的卫星时钟修正参数来做修正,所以两个方程中的△Ts也是一样的。
和是终端A和终端B的位置坐标。
上面两个个方程相减,就得到了新的方程式:
其中我们假设是卫星和终端A之间的距离,是卫星和终端B之间的距离。
其中是终端A的时钟和GPS卫星时间的偏差,是终端B的时钟和GPS卫星时间的偏差,因此
就是终端A的时钟和终端B的时钟之间的偏差。
只要我们计算出,就完成了终端A和终端B之间的时间传递。
影响时间传递精度的因素
在上面的等式中有:
这些因素都会影响最终时间传递的精度。
电离层延时的影响
在单站授时中,我们提到过,电离层延时可以通过构建双频无电离层方程式,消除电离层延时对方程的影响。在GNSS接收机定位误差分析中我们给出了双频无电离层组合方程的构建方法,因此只要同一个卫星两个频点,f1和f2的(式4)组成无电离层组合等式,就可以消除电离层延时的影响。
卫星和终端之间的距离
如果终端A的位置和终端B的位置已经精确已知。那么就只要考虑卫星位置误差对最终精度的影响。
我们知道卫星位置误差对定位精度的影响主要体现在位置误差对星地连线的投影上。如下图。如果终端A和终端B相距较近,比如50km以内,我们认为卫星到终端A,卫星到终端B的连线几乎平行,同样的卫星位置误差,在两条连线上的投影几乎相同,此时我们可以认为在式4中,卫星位置误差的影响基本被消除了。
如果终端A和终端B的距离较远,两条连线不能认为是平行的,我们也可以像单站授时里面介绍的采用精密星历获得更高精度的卫星位置,从而消除卫星位置的误差。
此时我们可以认为卫星到终端的距离之差-是准确的。
对流层延迟
式4中的对流层延时,有两个处理方式:
- • 如果终端A和终端B的距离不是太远,比如在50km以内,我们可以认为卫星发射信号传播到终端A和传播到终端B,经过的路径是近似相等的,电磁波受到对流层折射的影响也是几乎相同的,因此:
- • 如果终端A和终端B的距离太远,终端A的对流层延时可以用模型,如 Saastamoinen 模型或 Hopfield模型,结合气象信息进行修正,终端B的对流层延时也可以通过模型进行修正。
伪距观测量
伪距观测量精度跟GNSS接收机采用的晶振、基带数字部分的环路滤波器参数相关,这个在GNSS接收机定位误差分析都有介绍。
如果终端A和终端B是静止的,我们就可以把环路滤波器的带宽降低到最小,从而获得更高精度的伪距观测精度。
同时,多路径效应也是伪距观测量的一个重要误差源,为了降低多路径效应,需要考虑GNSS天线的选址问题。把天线固定在远离地面、四周没有明显遮挡物的地方。
小结
通过上面的分析,我们知道,只要终端A和终端B所在的位置坐标精度足够高,通过式4,可以得到两个GNSS接收机的钟差之差:
参考文献GPS标准定位服务(SPS)性能标准(美国联邦航空管理局FAA,2020版)中指出:采用广播星历的条件下实现时间的传递,时间的精度能够达到100ns。
参考文献IGS(国际GNSS服务)技术报告(2021)指出:采用精密星历、双频条件下实现时间传递,精度可达10ns以下。
其他
共视法做时间传递,要求终端A和终端B尽可能的相同,包括:
- • 终端软件处理方法相同
不同的GNSS接收机,卫星信号跟踪方式、本地时钟的产生方式(比如分辨率等)、伪距是否有辅助等,都会有差异。
为了保证A站和B站的GNSS终端输出的观测量信息的一致性,最好采用相同型号,相同版本的GNSS接收机。
- • 终端观测量的含义相同
不同的GNSS接收机输出的伪距观测量的含义会有差异,虽然在技术说明书,通信协议上观测量的名称都是“伪距”,但是具体的含义可能存在差异。
所以,A站和B站最好用同一个厂家的GNSS终端,同一个固件版本。
当然,如果你知道A站和B站的GNSS接收机的软件处理方式,伪距观测量的具体含义,你也可以经过后端预处理,把观测量信息统一之后再解算。
- • 从终端天线到GNSS接收机的延时相同或者可以补偿
我们在往期文章:为什么自适应调零抗干扰天线不能做RTK差分定位? 中曾经提到天线相位中心的概念。在这里我们要强调一下,我们通过解定位方程得到的位置坐标,是天线相位中心所在位置的坐标。
那么定位方程里面的GNSS接收机钟差还包括从天线相位中心到GNSS接收机内部采样处理时刻之间的延时,这个延时有:
- • 天线本身的延时T1
- • 电缆的延时T2
- • GNSS接收机硬件电路的延迟T3
- • GNSS接收机软件处理延时T4
天线到接收机的延时
当A站和B站采用相同型号,相同版本的GNSS接收机,两个GNSS接收机的T3和T4都是相同的。
如果A站和B站采用相同型号的天线,T1也可以认为相同。
如果A站和B站的电缆长度相同,那么T2也相同。当然如果A站和B站的电缆没法相同,我们可以测量出两个电缆的长度之差,然后换算成延时,进行补偿。
当然,由于元器件批次差异性和器件老化特性,即使同型号设备,可能导致硬件延迟不一致。电缆延时虽然主要跟长度相关,但是温度、弯曲度也会影响延时。我们有条件的话,最好的方法是在实验室对上面的延时进行标定,然后对式4进行补偿修正。
介绍了GNSS授时功能在低轨卫星寻星过程中的应用。
介绍GNSS的测姿测向功能和授时功能在卫星通信终端中的应用。
测姿测向功能
我们在上一篇文章中提到,卫星通信天线需要依据卫星位置、地面卫通天线的位置和姿态,计算出天线的寻星角度,从而将天线波束指向卫星。天线寻星时需要知晓天线的姿态,那么该通过何种手段获取这个姿态呢?
这里需要区分静中通天线和动中通天线。
静中通天线的姿态测量
顾名思义,静中通天线是指天线所在的平台处于静止状态,常见的类型有:
- 地面固定站:天线底座固定在地面。
卫通固定站
- 车载固定站:天线底座固定在车上。
车载卫通站
- 便携站:使用时天线展开,天线底座固定在地面;不用时天线可收藏,便于搬移。
卫通便携站
备注:以上图片均来自于网络。
对于静中通天线而言,由于平台静止,一旦初始对准后,除非受到外部干扰或需要重新配置,否则天线方向不会改变,会一直对准卫星。综合考量成本、精度等因素,静中通天线采用电子罗盘和倾角仪来测量姿态。其中,电子罗盘用于测量方位角(Azimuth),倾角仪用于测量俯仰角(Elevation)。
电子罗盘和倾角仪的成本远低于GNSS双天线测向设备,更低于GNSS + MEMS组合导航设备。
动中通天线的姿态测量
与静中通天线不同,动中通天线安装在不断移动的载体上,如机载、车载和船载。由于载体姿态不断变化,必须采用专用的姿态测量设备测量载体的姿态(方位角、俯仰角和横滚角),然后在寻星时进行姿态补偿。若在载体运动时不进行载体姿态补偿,卫通天线将无法跟踪卫星。
常用的动中通天线姿态测量设备有:
- 双天线GNSS接收机
双天线GNSS接收机,大家应该比较熟悉。在载体上安装2个GNSS天线,两个天线间隔一定距离。两个GNSS天线分别与测向型GNSS接收机连接,利用载波相位差分定位原理,测向型GNSS接收机能够输出航向角(Yaw,和真北的夹角)、俯仰角(和水平面的夹角)信息。系统的组成示意图如下:
双天线GNSS测向
然而,在动中通天线上安装2个GNSS天线十分不便。
这里有两个考虑因素:
测向型GNSS接收机要达到角度测量精度,要求两个GNSS天线的间隔不能太小。双天线GNSS测向的精度与两个天线的间距(行业内专用名词是"基线长度")相关。假设基线长度是R,那么双天线GNSS测向接收机输出的航向角和俯仰角的精度如下:
航向角精度:俯仰角精度:
上面式子中R的单位是米。也就是说,当基线长度为1m时,航向角精度是0.1°;若基线长度降至0.5m,则航向角精度降为0.2°。
很多动中通天线尺寸有限,天线口径有0.3m、0.45m、0.6m、0.8m等。当基线长度小于0.6m时,测向精度不高。如果天线口径是0.3m、0.45m之类的,还需要延长底座结构来安装另一个GNSS天线,非常不便。
所以,目前市面上使用双天线GNSS测向型接收机来测量动中通天线姿态的情况不多。
- GNSS + MEMS组合导航和GNSS + 光纤组合导航
目前,动中通天线载体姿态测量常用的是GNSS + MEMS组合导航和GNSS + 光纤组合导航。MEMS和光纤的主要差异在于内置陀螺的精度不同,基本原理相同,只需要一个GNSS天线即可。
GNSS+MEMS组合导航
MEMS的选型可以参考这篇文章机载动中通天线设计中如何选型MEMS惯导器件?。
出于成本因素考虑,目前动中通天线大多采用GNSS + MEMS组合导航方式,很少使用GNSS + 光纤组合导航。即使在机载卫通这种应用中,机载动中通天线自身也是采用GNSS + MEMS组合导航提供姿态信息,同时引入飞机上光纤惯导测量的姿态信息。在飞机上光纤惯导信息有效的时候,优先使用机载光纤惯导的信息,自带的GNSS + MEMS组合导航作为辅助、备份。
具体连接关系如下图:
机载动中通天线选择惯导
授时功能
在低轨卫星的寻星过程中,需要用到GNSS的授时功能。
地球同步轨道卫星的位置固定不变,天线寻星时直接转动天线对准卫星所在方向即可。但低轨卫星以较低高度快速绕地球运行,且其位置随时间快速变化。只能依据卫星的星历数据获取轨道参数,通过SGP4/SDP4模型预测卫星的位置,然后结合几何关系计算出卫星相对于观测站天线的指向角度。
这里提到根据卫星轨道参数预测卫星的位置。预测卫星位置必须与某个时刻对应,即预测在某个年月日时分秒毫秒时刻卫星的位置。卫星通信终端必须知晓当前确切时间,而这个确切时间只能从GNSS授时获取。
由于低轨卫星轨道高度低,对于某个地面卫星通信终端来说,能和卫星通信的时间(行业内术语"过顶时间")非常短。像中国的千帆卫星,轨道高度大约800km - 1000km,过顶时间只有10几分钟。
我们假设整个卫星系统的时间是Ts,而卫星通信终端的本地时间是Tst。如果Ts和Tst不同步,卫星位置的预测肯定会产生误差,给天线寻星带来困难。
另外,某些低轨卫星通信采用的是TDD模式,卫星通信终端发射和接收不同时。为保证整个卫星通信系统的正常运行,必须严格保证卫通终端和主站之间的收发协同。如果Ts和Tst存在误差,也会导致卫通终端和主站之间收发不同步。
至于Ts和Tst需要的同步精度是多少?某些低轨卫星终端的发射时间控制精度要求<1us,包括Ts和Tst的不同步、信号处理延时、硬件响应延迟等。
因此,在卫星通信终端中,需要加入GNSS授时设备。目前常规的GNSS接收机输出的PPS授时精度大约是30ns - 50ns,能够满足卫星通信系统的需求。
============= End