APP下载

东北大学: 基于GPS的时间服务器设计

2015-12-21温占考吴建王卫东王宇王兴伟

中国教育网络 2015年1期
关键词:原子钟时钟脉冲

文/温占考 吴建王卫东 王宇王兴伟

东北大学: 基于GPS的时间服务器设计

文/温占考 吴建1王卫东 王宇1王兴伟2

在计算机技术迅速发展的今天,众多应用对时间同步的依赖性很大。而众所周知,计算机、路由器等设备的时钟振荡器工作在不受校对的自由振荡的状况下,时钟的振荡频率和标准频率之间存在一些误差,长期积累后会产生相当大的影响。在数据共享、云计算及网络安全等网络应用中,网络管理员需要通过精确的时间信息来保障系统的正常运转。

原子钟

目前世界上最准确的计时工具就是原子钟。原子钟是利用原子吸收或释放能量时发出的电磁波来计时的。充分利用这种电磁波的稳定性,再通过一系列精密的仪器对其进行控制,从而使得原子钟的计时非常准确。目前在原子钟里常用的元素有氢、铯、铷等。原子钟的精度可以达到100万年误差只有1秒。由于原子钟价格昂贵,一般用户无法使用原子钟作为时钟源用于授时服务。

GPS技术

全球定位系统(Global Positioning System,GPS),是一个中距离圆型轨道卫星导航系统。它可以为地球表面98%以上地区提供准确的定位、测速和高精度的时间标准。该系统由美国国防部于上世纪70年代开始进行研制并于1994年全面建成,可满足位于全球98%以上地方或近地空间的精确三维位置定位、三维运动确定和时间同步的需求。该系统在太空中部署了24颗GPS卫星,其中21颗GPS卫星处于工作状态,其余3颗作为备用卫星。这24颗卫星均匀分布在6个轨道平面上,所以每个轨道面上有4颗卫星;在地面上配备有1个主控站、3个数据注入站和5个监测站及作为用户端的GPS接收机。最少只需3颗卫星,就能迅速确定用户端在地球上所处的位置及海拔高度;所能收联接到的卫星数越多,定位精度就越高,其终端所得到的时间精度也就越高。

图1 NEMA解码后时间信息

图2 根据PPS信号调整后的时间信息

为使GPS系统能够正常工作,每颗卫星都安装了高精度原子钟,也叫着星载时钟。星载时钟的精确度越高,其定位精度也越高。早期试验型卫星采用的是石英振荡器,相对频率稳定度为10~11/秒。1974年以后,GPS卫星开始采用铷原子钟,相对频率稳定度达到10~12/秒。1977年,BOKCK ⅠⅠ型PGS卫星采用了铯原子钟后相对稳定频率达到10~13/秒。1981年,BLOCK ⅠⅠR型GPS卫星采用相对稳定频率为10~14/秒的氢原子钟。

PPS脉冲信号

在使用GPS过程中,我们可以通过串口获得GPS NEMA输出的时间信息,但是收到这个时间会有一定的延迟,一般在0.035~0.42秒左右,为了提供更精确的授时服务,GPS授时模块提供1PPS脉冲信号(部分GPS模块有5PPS、10PPS等多种脉冲输出,即每秒输出5、10个脉冲信号),GPS每秒输出一个脉冲信号,在脉冲的上升沿标识整秒的开始,引入PPS上升沿来标识UTC时间整秒的开始,因此授时精度可以达到纳秒级,并且不会产生累积误差。

图3 Garmin GPS 18x LVC

GPS NEMA信号输出的时间信息如图1所示,由于GPS计算、输出、操作系统解码时间等因素干扰,从NEMA得到的时间信息与实际时间有一定的偏差,并且这个数值不固定。因此,单纯依靠NEMA所携带的时间信息用来授时,精度是不够的。

根据PPS脉冲信号调整后输出的时间信息如图 2所示,系统可以根据PPS信号上升沿来判断整秒开始,并根据随后的NEMA时间信息计算前一个整秒的具体时间信息。

图4 GPS与COM接口接线顺序

图5 NTP服务器时钟偏移统计

系统实现

经过试验可以得知,相对于Linux系统,FreeBSD更合适充当时间源服务器,操作系统选用FreeBSD 9.1 amd64版本,GPS模块选用Garmin GPS 18x LVC模块(支持1PPS脉冲信号),从网上购买的Garmin GPS 18x LVC如图3所示,该模块不带COM接口,需要焊接GPS与计算机COM接口的连接线,连线顺序如图4所示。

FreeBSD默认的内核不支持PPS时钟同步,需要重新编译FreeBSD内核,使之支持PPS时钟同步功能,具体方法如下:

# cd /usr/src/sys/amd64/conf/

# cp GENERIC PPSGENERIC

编辑PPSGENERⅠC文件,增加一行,内

容如下:

options PPS_SYNC

重新编译内核

# cd /usr/src/

# make buildkernel KERNCONF=PPSGENERIC

安装新内核

# make installkernel

KERNCONF=PPSGENERIC

在FreeBSD系统中,ntpd程序不会去检测串口所连接的设备是否为GPS,为让ntpd程序检测到GPS信息,需要增加相应的软连接,编辑/etc/devfs.conf文件增加:

link cuau0 gps1

link cuau0 refclock-0

link cuau0 pps0

配置ntpd程序,使用GPS作为时钟源,并修改相应的访问控制列表,允许互联网其他主机同步时间,编辑ntpd配置文件/etc/ ntp.conf

# Garmin GPS 18 LVC

server 127.127.20.1 mode 0 minpoll 4 maxpoll 4 prefer

fudge 127.127.20.1 flag1 1 flag3 1 refid PPS

restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery

restrict 127.0.0.1

restrict -6 ::1

重新启动系统,运行如下命令检查GPS及ntpd的工作状态

# ntpdc -c kern

pll offset: 1.773e-06 s

……

status: 2107 pll ppsfreq ppstime ppssignal nano

……

calibration errors: 6

如果可以看到“ppsfreq ppstime ppssignal”字样,说明GPS/PPS及ntpd工作正常,可以对外提供授时服务。如图 5所显示的是实际运行中的一台时间服务器的系统时钟偏移量统计,系统时间偏移稳定在+10us/-10us之间。

总结

互联网不少时间服务器使用Garmin GPS 18x LVC模块作为系统时钟源,该模块性价比高,适合7×24小时不间断工作。在实际使用中,可以将时间服务器配置成同时使用互联网公开的顶级时间服务器作为同步时钟源,在GPS故障后依旧可以提供准确的时钟信息,服务器与互联网其他时间服务器误差保持在+1ms/-1ms内。

(作者单位:1为东北大学网络中心,2为CERNET东北地区网络中心)

猜你喜欢

原子钟时钟脉冲
具瞬时脉冲接种与非瞬时脉冲接种效应的一类新的SIR传染病模型研究
深空原子钟或是未来太空导航新方向!更精准的计时将时间精确到极致
别样的“时钟”
古代的时钟
超高精度计时器——原子钟
黄芩苷脉冲片的制备
有趣的时钟
时钟会开“花”
基于Hopkinson杆的窄脉冲校准系统
一种具创意的脉冲能量火花塞