ITPub博客

首页 > IT基础架构 > 网络通信/物联网 > 基于GPS北斗卫星的NTP时钟服务器应用天文观测

基于GPS北斗卫星的NTP时钟服务器应用天文观测

原创 网络通信/物联网 作者:ahjzdz 时间:2020-12-14 10:24:57 0 删除 编辑

基于GPS北斗卫星的NTP时钟服务器应用天文观测

天文观测设备对于控制系统的时间准确度有严格要求。为此,采用搭建高精度 NTP 服务器的方法实现系统校时。基本思路是从 NMEA018 3 数据中提取时间信息,通过 PPS 信号来保证高精度。具体实现方法是采用 GPS 接收模块 G591 来构造硬件电路,软件部分需要 NTP 服务器软件和 GPS 的正确安装和配置。对照实验表明,基于 GPS 的 NTP 服务器校时精度可以达到微秒量级,工作性能稳定而可靠。

0
引言
准确的时间是天文观测所必需的。天文望远镜在特定时间内的准确指向、 CCD 曝光时间的控制以及不同波段观测数据所进行的高精度同步比对等应用需要系统至少有亚毫秒的时间准确度。然而就目前来看,一般的计算机和嵌入式设备所使用的晶体振荡器的精度为几个或者几十个 ppm( 百万分之一秒 ) ,并且会受温度漂移的影响,使得每天的误差能够达到秒级,若再考虑元器件的老化或外界干扰等因素,误差可能会超过 10 s ,如果不及时校正,其误差积累将不可忽视。
网络时间协议 NTP(Network Time Protocol) 是美国特拉华大学的 MILLS David L .教授在 1982 年提出的,其设计目的是利用互联网资源传递统一和标准的时间。目前,使用 GPS 信号实现校时的研究工作很多,大多只是通过读取 GPS 模块解码出的串行数据,提取其中的时间信息来纠正系统时钟,该过程并不涉及 NTP 的使用,精度较低,一般为几十到几百毫秒。对此,本文充分利用了 NTP 服务器软件对 GPS 时钟源的支持,采用串行数据和秒脉冲相结合的方式来校准时间,校时精度大为提高。

1 GPS 同步时钟的校时方式
1 . 1 GPS 介绍
GPS(Global Positioning System
,全球定位系统 ) 是 20 世纪 70 年代美国研制的新一代卫星导航、授时、定位系统。 24 颗专用的 GPS 卫星上都各自带有原子钟,能够全天候向地面广播精确的 UTC 标准时间。在许多通用 GPS 解码芯片解码出的数据流中,除了有位置信息,还包含时间信息 ( 年月日时分秒 ) 和 PPS(Pulseper Second ,秒脉冲信号 ) , PPS 标识了时间信息的起点,其精确度可以到微秒量级。
1
. 2 校时方式介绍
NTP
是用来使计算机时间同步化的一种协议,其同步时钟源不仅仅局限于网络的时间服务器,还包括时钟设备,如石英钟,原子钟, GPS 接收器等。 NTP 服务器软件将这些时钟源抽象成相应的数据结构,对应于不同的内存地址,通过读取该地址中的信息,进行统计学算法的处理来同步计算机的时钟。
使用 GPS 作为同步时钟源的校时方案主要有三种:脉冲同步方式、串行同步方式和综合方式。本文采用的 GPSD 校时方案是综合方式。三种方式的对照如表 1 所示。

 


1
. 3 基于 GPSD 的综合校时
GPSD(GPS Daemon)
是一个守护进程软件,用来处理 GPS 接收单元解码出的数据。基于 GPSD 综合校时的具体过程如图 1 所示。 GPS 天线接收 GPS 信号,传递给 G591 芯片进行解码,每秒输出 NMEA0183 协议格式的数据和 PPS 信号, MAX 232 完成电平转换之后,分别经由串口的 RXD 和 DCD 端传递给计算机; GPSD 软件经过处理,将准确的时间信息写到特定内存段中; NTP 服务器软件通过共享内存的方式读取该地址段中的时间信息,进而完成校正系统时钟的工作。

 


基于 GPSD 综合校时方案是一种优势互补的校时方式。这种方式继承了 NMEA 串行校时方式可以获取时间信息的优势,同时利用了 PPS 脉冲校时延时估计误差小、精度高的特点,是一种简便有效的校时方案。

2 系统设计实现
2 . 1 硬件平台
GPSD
综合校时方案需要的硬件设备分为三个部分: GPS 天线、 GPS 接收器和与 GPS 接收器连接的计算机,其相应的功能和应用如下:
(1)GPS
天线用于接收 GPS 信号。本文采用的是磁吸式 GPS 天线,使用时要水平放置,最好置于开阔地,如天窗、窗台、阳台等;
(2)GPS
接收器由电源、 GPS 接收和电平转换三个模块构成如图 2 所示。 GPS 接收模块采用 JRC(Japan Radio Company) 设计的 G591 芯片,该芯片支持多达 210 PRN 通道,输出数据为 NMEA0183 协议的串行数据,波特率为 9 600 b / s ,适用于各种相关开发。在本设计中, G591 主要用来获取时间信息和 PPS 信号,不涉及定位导航;电源模块采用的是 AMS(Advanced Monolithie Systems) 设计的 AMS1117-3 . 3 芯片,该芯片输出电压为 3 . 3 V ,最大输出电流为 1 A ,用来给 G591 和 MAX232 供电;电平转换模块主要采用 MAXIM 公司设计的 MAX232 芯片,该芯片负责把 G591 输出的 CMOS 电平转换成 RS 232 电平,供串口读取。

 


(3)
计算机设备用于处理 GPS 数据,要求支持串口和网口等设备,以实现 GPS 数据接收和校时输出。
硬件平台搭建好了之后,本文对 PPS 信号和 NMEA0183 串行数据进行了相应的调试。对 PPS 信号的调试采用的是硬件方式,使用示波器来观察 GPS 接收器是否有秒脉冲信号输出,若天线和接收器工作正常,会检测到 PPS 端有脉宽为 100 ms 的秒脉冲输出;对 NMEA 数据的调试采用的是软件方式,使用 Windows 操作系统自带的超级终端或 Linux 操作系统的 minicom 等工具来读取串口,检测数据是否正常,正确的输出结果是 NME A0183 串行数据。
若由于天线或气象原因, G591 模块没有接收到信号,则不会产生 PPS 信号,同时 NMEA0183 语句中的 GPRMC 语句的标志位也会变成无效。
2
. 2 软件平台
2
. 2 . 1 安装过程
本文使用的是 Ubuntu 11 . 04 操作系统,内核版本是 2 . 6 . 38 ;需要的软件包有 setserial , gpsd , gpsd-cli-ents , python-gps , ntp 。在终端中使用 Ubuntu 自带的 apt-get 命令安装这些软件包,然后分别作出相应的设置:
(1)setserial
的版本是 2 . 17 ,该软件是用来对串口进行相应的设置。为了能够让串口识别 PPS 信号,要对 setserial 的配置文件修改。在 autoserial . conf 中对接收 GPS 数据的串口添加 low_latency 关键字。
(2)gpsd
的版本是 2 . 95 。安装完成后,使用 dpkgreconfigure 命令要对 gpsd 重新进行配置,使其能够开机自动运行,读取串口数据。此外 gpsd 的调试方法也十分简便。如果放在后台执行,可以通过系统日志文件查看其工作状况; gpsd 也可以在前台运行,通过进入调试模式来检查时间信息和 PPS 信号的捕获情况,详见 gpsd 的使用说明。
(3)ntp
的版本是 4 . 2 . 6 。安装完成后,要对 NTP 的配置文件 ntp . conf 进行修改。 NTP 服务器的正确配置决定了最终的时间同步结果。本设计选用的时间服务器只有 GPS 时钟源,具体配置如下:

Linux 操作系统从 2 . 6 . 34 版本开始支持 PPS 中断源,而本文采用的方案是通过共享内存的方式传递时间信息,会与 PPS 中断源发生冲突,所以要禁止掉内核响应 PPS 。 127 . 127 . 28 . 1 对应于 NTP 定义的一个内存段地址, gpsd 进程就是通过这个地址向 NTP 传递时间信息。
2
. 2 . 2 结果
NTP
服务器安装后的调试工作可以通过参照系统和 NTP 的日志文件,以及查看串口状态等操作来进行。本文总结了 NTP 服务器正常工作的必要条件:正确的配置、可用的网络、有效的 GPS 信号、没有其他进程占据 GPS 时钟源使用的串口。当 NTP 服务器正常工作时,使用其自带的 ntpq 程序可以查看 NTP 的工作状态,即校时的效果。如果 GPS 设备正常工作, NTP 服务器几秒钟后就能锁定 GPS 时钟源,输出结果如下所示:



3
测试与分析
3 . 1 对照实验
要衡量校时系统的好坏,偏移量 (offset) 和抖动 (jitter) 是重要的参考指标。本文为验证 GPS 校时的有效性和可行性设计了对照实验。实验内容是测试一台计算机分别采用网络校时、串行校时以及基于 GPSD 的综合校时三种方式的校时效果。网络校时采用的服务器为国家授时中心的 NTP 服务器,地址是: 210 . 72 . 154 . 44 ;串行校时只需要向 NTP 配置文件中添加 server 127 . 127 . 28 . 0 ;
通过编写 shell 脚本程序实时记录偏移量和抖动的情况。 shell 脚本程序主要功能是每 16 s 执行一次 “ntpq-p” 命令,将偏移量和抖动的结果输出到一个文件。
 


计算机设备通过互联网与网络时间服务器进行同步的结果,如图 3 所示,实验时间为 24 h 。从图中可以看出经过约 7 h 的锁定过程, NTP 软件通过网络时间服务器将系统时钟的偏移量从约 80 ms 稳定到 10 ms 以下,抖动通常能稳定在 20 ms 以下,但部分时段也能够达到 50 ms 以上。
NTP
支持的 NMEA 串行方式的校时结果如图 4 所示,实验时间为 24 h 。可以看出,该方案的时钟偏移量和抖动在几十毫秒的范围内变化很快, NTP 难以将时钟稳定到一个更小的范围。
 


采用基于 GPSD 综合方式的校时锁定过程如图 5 所示,实验时间为 8 h 。该过程持续了近 8 h ,时钟偏移从 -18 ms 稳定到 10μs 左右,而抖动从 4 ms 稳定到 10μs 以下。

采用基于 GPSD 综合方式的校时稳定过程如图 6 所示,实验时间为 24 h 。可以看出,该方案的时钟偏移和抖动明显优于前两种方案,偏移量通常低于 30μs ,抖动也不超过 50μs 。这期间,从大约 14 h 开始偏移量恒为 49μs ,抖动恒为 0μs ,并持续了约 3 h ;之后偏移和抖动又分别从 -230μs 和 60μs 逐渐稳定到 10μs 以下。这种现象的原因是 GPS 信号不好, GPSD 不再更新时间信息,使得 NTP 处于等待状态造成的。当 3 h 之后 GPS 信号再次有效时,校时系统自动开始重新锁定,无需人工干预。参考相关实验结果,证明了本实验结果的正确性。  


3
. 2 数据分析
表 2 对三种校时结果数据进行了统计分析。结合图表分析可以看出,使用网络时间服务器,虽然校时工作较为稳定,但精度较低,维持在几个到几十个毫秒,主要的原因是网络传输延时的不确定性;采用单一的 NMEA0183 串行数据进行校时,效果并不理想,抖动太大,稳定性差,主要的原因是硬件资源分配过程中存在的随机性,使得 NMEA 串行数据的处理速度有随机偏差;本文采用的 NMEA 和 PPS 综合校时方案取得了较为理想的效果。授时精度可达微秒级,比上述两种方式提高了至少两个数量级。这种方式充分发挥了脉冲校时精确度高的特点,又保留了串行校时的时间信息,实现了优势互补。

4 结语

经过多次实验反复验证,本文采用的基于GPSD综合校时方案是一种行之有效的高精度校时方案,不仅实现了单机的精确校时,也可以通过网络提供NTP服务;相比于Linux PPS高精度校时方法,该方案操作简单,可扩展性好,校时精度同样可以达到微秒量级,能够满足大部分天文观测设备的校时需要。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69969420/viewspace-2741910/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
安徽京准电子科技公司 微信电话同步13295517758

注册时间:2020-04-15

  • 博文量
    53
  • 访问量
    50729