基于GPS北斗卫星授时系统和NTP网络授时服务器的设计与开发

安徽京准科技提供@请勿转载@@ 更多资料请参考—— ahjzsz.com

天文观测设备对于控制系统的时间准确度有严格要求。为此,采用搭建高精度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高精度校时方法,该方案操作简单,可扩展性好,校时精度同样可以达到微秒量级,能够满足大部分天文观测设备的校时需要。

基于GPS北斗卫星授时系统和NTP网络授时服务器的设计与开发相关推荐

  1. 基于GPS/北斗卫星技术的无盲区车辆调度系统

    基于GPS/北斗卫星技术的无盲区车辆调度系统 现代车辆调度系统是一种集全球卫星定位技术(GPS).地理信息技术(GIS)和现代通信技术于一体的高科技项目.它将移动目标的动态位置(经度与纬度).时间和状 ...

  2. GPS北斗校时器(NTP网络校时服务器)医院应用方案

    GPS北斗校时器(NTP网络校时服务器)医院应用方案 GPS北斗校时器(NTP网络校时服务器)医院应用方案 用户需求分析 医院时钟系统主要为全医院提供提供统一的准确时间,其主要作用是为整个医院的计算机 ...

  3. GPS北斗卫星授时系统(NTP同步时钟设备)应用和发展

    GPS北斗卫星授时系统(NTP同步时钟设备)应用和发展 GPS北斗卫星授时系统(NTP同步时钟设备)应用和发展 一.GPS信息与信息时代 信息时代的特点:一是信息量急剧增加(如需海量存储器):二是信息 ...

  4. GPS北斗卫星授时服务器(NTP时钟)设计及方案应用

    GPS北斗卫星授时服务器(NTP时钟)设计及方案应用 GPS北斗卫星授时服务器(NTP时钟)设计及方案应用 摘要:在我们依赖文件服务器.邮件服务器.互联网网关以及其它无数网络设备的背后,存在一个基本的 ...

  5. 利用GPS北斗卫星信号开发设计NTP网络时间服务器

    利用GPS北斗卫星信号开发设计NTP网络时间服务器 利用GPS北斗卫星信号开发设计NTP网络时间服务器 引言 准确的时间是天文观测所必需的.天文望远镜在特定时间内的准确指向.CCD曝光时间的控制以及不 ...

  6. 【重器】GPS北斗卫星时钟基准与卫星授时服务技术原理

    [重器]GPS北斗卫星时钟基准与卫星授时服务技术原理 [重器]GPS北斗卫星时钟基准与卫星授时服务技术原理 1.前言 由计算机网络系统组成的分布式系统,若想协调一致进行:IT行业的"整点开拍 ...

  7. 卫星时间同步(GPS北斗卫星授时系统)电力重要组成部分

    卫星时间同步(GPS北斗卫星授时系统)电力重要组成部分 卫星时间同步(GPS北斗卫星授时系统)电力重要组成部分 1.装置的用途及特点 卫星时间同步系统是根据<华东电网统一时钟系统技术规范> ...

  8. 精准授时,GPS北斗卫星授时同步时钟系统的天花板

    精准授时,GPS北斗卫星授时同步时钟系统的天花板 精准授时,GPS北斗卫星授时同步时钟系统的天花板 对于一个进入信息社会的现代化大国,导航定位和授时系统是最重要的,而且也是最关键的国家基础设施之一.精 ...

  9. GPS北斗卫星主时钟(NTP网络时间服务器)技术参数详解

    GPS北斗卫星主时钟(NTP网络时间服务器)技术参数详解 GPS北斗卫星主时钟(NTP网络时间服务器)技术参数详解 主时钟(北斗二代卫星同步时钟,GPS北斗双模时钟服务器,GPS时间同步系统)是我司开 ...

最新文章

  1. linux 内核 时间片,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...
  2. Spring Bean配置方式之一:Java配置
  3. c++设计模式编程基础
  4. 集合框架(九)----Map
  5. JAVA 网络编程 Socket 详细说明,实现客户端和服务端相互推送消息
  6. 新来个专家吐槽我们:连qps都不懂,靠谱吗?
  7. db2 常用命令(一)
  8. 如何从SQL Server查找指定的临时表
  9. 浅谈Chrome OS
  10. mongodb 的安装使用步骤
  11. 【求最大公共子串长度】
  12. 笔记本无法打开摄像头
  13. 【20保研】复旦大学2019年大数据学院全国优秀大学生夏令营活动方案
  14. Python+Excel:批量重命名多个工作簿
  15. C# 实现飞行棋小游戏
  16. 齐岳钹形|UFO形|花生形|碗形Janus PS聚合物微球
  17. 网络协议-ARP协议与攻击模拟
  18. 外贸建站之独立站系统选择
  19. 【计算机毕业设计】基于微信小程序的驾校学车预约服务系统
  20. 内网计算机病毒如何查杀,如何追踪并查杀局域网ARP病毒 局域网如何查杀ARP病毒...

热门文章

  1. 云学python (第5章对象带你飞之爬虫)《vamei-从Python开始学编程》 笔记
  2. 拍照很好 带氙气闪光灯的手机 功能很强的手机
  3. 2023陕西省赛wp
  4. 基于android失物招领系统实训报告,基于Android系统的失物招领平台的设计与实现论文.doc...
  5. Word 【域】学习笔记 - 章节题注
  6. !important的用法及作用(转)
  7. Qt实现歌词播放流光跑马灯特效
  8. android odex版本调试_android 基础-Dalvik ,ART,JIT,AOT,Dex,Odex
  9. IP地址、子网掩码和网关的理解
  10. 关于hover失效的问题