基于GPSD的高精度校时系统
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高精度校时方法,该方案操作简单,可扩展性好,校时精度同样可以达到微秒量级,能够满足大部分天文观测设备的校时需要。