短波台站局域网计算机授时及时间监测系统的设计与实现

  • 优秀论文奖
  • 文章作者:中国新闻技术工作者联合会 2021/12/30-04:43 阅读: loading...

    王晓峰

    (国家广电总局七二二台)

    摘要:本文从短波台站计算机设备授时及时间监测的实际需要出发,提出了一种以两台GPS接收机提供标准时间源,使用NTP协议通过局域网对网内计算机设备授时并监测授时是否准确的方法。

    关键词:GPS接收机 NTP协议 局域网授时

    1引言

    进入21世纪以来,计算机技术不断发展与完善,在各行各业广泛使用,其对各行业工作模式的改善、生产效率的提高起到很大的促进作用,同样对传统的广播传输发送行业也产生了深远的影响。目前作者工作的短波电台已实现:节目智能调度系统、发射机自动化系统、发射台播出质量保证系统和日常办公综合自动化系统。上述计算机系统的实现,极大的加速了短波台站工作网络化、管理现代化的进程,有力的保障了短波台站的安全传输发射工作。可见随着台站数字化进程的发展与推进,安全传输发射工作已经与计算机系统密不可分,它们已经成为保证台站正常高效运转的核心工具之一。而计算机系统是由多台在不同地点的设备共同组成,必须协同工作,只有这些设备的时间保持准确并一致,才能正常运转。

    实践工作表明,台站的安全传输发射工作需要台内不同部门之间按照既定的目标,按照统一的计划进行协调配合。台内安全传输发射工作的完成需要多个部门的协同工作,各部门的工作以时间为主线以台站制度为纲领,在规定的时间内完成自己的工作,并在指定的时间点把工作传达到工作流程的下一个部门。所以说时间的准确与统一对台站工作的顺利开展至关重要。例如负责监听节目发射效果的部门与发射机房时间必须一致且精确,这样才保证节目发射按时按点,才能在分析故障时有统一正确的时间标准。

    从数字化台站建设以来,台站内计算机系统不断增多,每台计算机在安播工作中都起到重要作用。目前接入台内网的计算机系统按照校时方式可以分为两部分,一部分是使用GPS直连校时,另一部分是人工校时。虽然能达到计算机系统校时的目的,也能满足日常工作的需要,但是校时的可靠性、一致性和稳定性受到人工校时的制约。在使用GPS校时的计算机系统中,往往是每套计算机系统配备一台GPS时钟,存在一定的资源浪费。另外,无论是以何种方式授时的计算机系统均需要人工定期检查系统时间的准确性,存在一定的隐患。因此,无论是从台站计算机与网络设备正常运行保证安全传输发射的角度来看,还是从台站综合管理的角度来看,台站对建立统一时间系统的需求已经越来越迫切。

    针对上述问题,为满足台站内网计算机系统统一授时及监测的需求,我们设计并开发了台站局域网同步授时及时间监测系统。下面对该系统的设计与实现做介绍。

    2系统总体方案设计

    台站局域网计算机授时及时间监测系统即涉及硬件系统又与软件系统有关,为了能讲述的清楚明白,先从系统所要实现的目标、系统的总体结构两个方面介绍一下系统的总体方案。

    2.1系统所要实现的目标

    根据引言描述,在目前工作中需要解决如下两个问题:所有内网计算机时间的准确与统一;对内网计算机系统时间自动监测,保证时间的正确。

    基于上述需求我们从实际工作需要出发,提出了一种基于局域网的同步授时及时间监测系统。此系统具有以下功能:

    (1)通过GPS接收机获取标准时间。GPS接收机可以提供可靠准确的时间源。

    (2)使用通用计算机服务器或ARM嵌入式计算机与GPS接收机结合实现可使用TCP/IP协议通信的授时服务器。

    (3)授时服务器利用台站已建立好的局域网即台站内网使用NTP协议对内网中的授时对象校时。

    (4)值班员可在监测机上监测内网计算机系统的时间。

    (5)内网中某台计算机的系统时间与GPS提供的标准时间之间差值超过设定值后报警。

    2.2系统的总体结构

    本系统使用GPS接收机获取准确时间,使用NTP协议通过台站内网对内网计算机设备发布该时间,使用监测客户端对被授时设备监测确保授时正确。系统从总体上可以分为三大部分:授时部分、通信部分和监测部分。

    授时部分由授时服务器与授时软件组成。授时服务器分为计算机部分和GPS接收机部分,计算机部分由通用计算机服务器或嵌入式计算机组成,其计算机部分通过串口连接GPS接收机。授时软件分为客户端和服务端,服务端运行在授时服务器的计算机部分,客户端运行在被授时的计算机系统上。因为嵌入式计算机安装的是类Linux系统,程序的调试和安装过程比较复杂,但是它上面运行的授时服务端软件与通用计算机服务器上运行的软件在算法上是相同的,所以为了突出重点本文仅仅对系统使用通用计算机服务器构成授时服务器的情况作介绍。

    因为无论是授时服务器,还是被授时设备均运行在台站内网中,因此使用内网即局域网完成他们之间的通信是最便捷经济的方案,同时因为内网不与外部网络连接的封闭性,使得通过内网完成授时与监测也是最安全的方法。所以本系统的通信部分为台站内网网络系统。

    监测部分由监测端GPS接收机、监测计算机和监测软件组成。监测端GPS接收机负责给监测计算机提供准确时间。监测软件分为被监测端和监测客户端。监测客户端运行在监测计算机上,使用串口读取监测端GPS接收机提供的准确时间,刷新监测计算机的系统时间,同时值班员操作它可以随时监测内网计算机系统时间,也可设置固定时间间隔让监测计算机自动轮询监测;被监测端运行在需要监测时间的计算机设备上,与监测客户端通信,向监测客户端发送本地时间。

    系统的结构图见图1,工作流程如下所述。系统工作时,授时服务器的GPS接收机通过GPS卫星得到当前准确的时间值,授时服务器的计算机部分使用串口读取该时间值并刷新该计算机系统上的时间。台站内网中被授时的设备使用授时客户端软件通过NTP协议与授时服务器上运行的授时服务端软件通信,计算得出授时客户端与授时服务器的时间差值,刷新被授时设备的系统时间,完成授时工作。监测客户端读取监测端GPS接收机时间刷新本机系统时间,同时与被监测端通信,读取被监测端的系统时间并与监测计算机上的系统时间比较,两者的时间差值超过指定值后,监测客户端软件报警,通知值班员。

    3系统方案实现与部署

    要实现上文所述的网络授时必须在网络上传递时间信息,直接把授时服务器的时间发送给被授时计算机完成授时的方法是不可行的。因为包含时间信息的数据包在两台计算机之间传递所需要的时间受到多方因素的影响,例如干扰引起的网络丢包等,所以该时间信息到达被授时计算机后并不一定就是准确时间,有时甚至相差很大。使用网络时间同步协议可以有效避免这些干扰,常见的同步协议有:Time协议、Day Time协议、NTP协议。本文使用NTP协议。

    3.1NTP协议授时原理简介

    NTP协议在RFC-1305文档中有详细的说明,这里仅对其网络时间同步原理作简要介绍。NTP网络时间同步原理的核心是利用算法最大可能的消除授时设备和被授时设备之间的网络延时对时间信息传递的干扰。

     

    图2 NTP授时原理讲解示意图

    具体说明如下,见图2。图2显示的是一个NTP协议数据包在授时客户端与授时服务端之间传递的过程。其中T1和T4是授时客户端在发出和收到数据包时本地计算机系统的时间值,T2和T3是授时服务端在收到和发出数据包时本地计算机系统的时间值。从授时客户端到授时服务端的网络数据传输时延为δ1,从授时服务端到授时客户端之间的时延为δ2。因为授时服务端的系统时间来自GPS是准确无误的,所以可以假设授时客户端系统时间值与其相差θ。授时客户端得到θ值后才能知道自身系统和正确时间的差值,通过对自身系统校正θ个时间单位完成授时。由图2可得:

     

    因为从T1到T4时间非常短,可以近似认为当时网络的时延情况不会变化,所以δ1=δ2。可以解得:

     

    当NTP协议数据包在传输过程中会记录T1、T2、T3和T4时刻的时间值, T4时刻到达授时客户端后T1、T2、T3和T4的值均出现在授时客户端,经过运算即可得到θ,用θ来调整授时客户端系统时间,完成一次网络授时。授时行为的发起与执行均由授时客户端软件控制。

    3.2GPS接收机时间数据读取方法

    无论是授时服务器还是监测客户端都需要读取GPS接收机提供的标准时间。GPS接收机时间数据读取程序是系统的一个重要模块。目前的GPS接收机大都遵循NMEA-0183协议或与该协议兼容。NMEA-0183协议格式如下:

    $XXXXX,cn1,cn2,....[CR][LF]

    NMEA-0183协议中语句均以$开始,以换行符结束,$后的XXXXX为五个字符是语句的名称。cn1、cn2为本条语句提供的内容,一条语句可以提供多条内容,内容之间用逗号隔开。

    本系统使用NMEA-0183协议的GPRMC语句取得标准时间。GPRMC语句格式如下:

    $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh<CR><LF>

    其中字段<1>为UTC时间,格式为hhmmss.sss(时分秒.毫秒)。字段<9>为UTC日期,格式为ddmmyy(日月年)。

    我们使用C#编写GPS接收机时间数据读取模块。过程简述如下,通过SerialPort串口类实时的读取GPS接收机上串口发送的信息,每当读到以GPRMC开头的字符串后,使用String类的Split()方法把按逗号划分的内容信息变为字符串数组,该数组的第1个和第9个成员就是UTC时间信息。在UTC时间信息的基础上加8小时就得到准确的北京时间。

    3.3授时程序的实现

    Windows、Linux和Unix操作系统中均带有基于NTP协议的授时服务器端和授时客户端组件,我们只需经过配置就能使用它们。因为台站内网中Windows系统比较常用,下面以Windows系统为例讲解,其他系统只是设置方法不同,实现思路是一致的。

    授时程序分为服务端软件和客户端软件。服务端软件包括读取GPS接收机时间信息刷新本地时间程序和对外提供授时服务的程序。

    读取GPS接收机时间信息程序已经在3.2节介绍过了,这里主要介绍对外授时程序的实现。本系统中授时服务器的计算机部分运行的是Windows2003系统,通过设置W32Time服务可实现通过NTP协议对外授时的功能。

    第一步,设置注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type的值为NTP,让该服务使用NTP协议;

    第二步,在注册表中设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\AnnounceFlags的值为A,设置本机为可靠时间源;

    第三步,设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled的值为1,启用NTP授时服务端功能, W32Time服务启动后按照NTP协议的要求打开网络通信的123端口对外授时;第四步,重启W32Time服务使本次配置生效。

    授时程序客户端软件也是通过对W32Time服务的设置来实现的。

    第一步,设置注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type的值为NTP,让授时客户端使用NTP协议;

    第二步,设置注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\ NtpServer的值为授时服务器的计算机IP地址,让授时客户端能在网络上找到授时服务端;

    第三步,设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval的值,该值以秒为单位,用来确定授时客户端的校时频率即多长时间与授时服务端通信校时一次;

    第四步,设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\ Enabled的值为1,启用授时客户端程序;

    第五步,重启W32Time服务使本次配置生效。

    3.4监测程序的实现

    监测程序由被监测端软件和监测客户端软件组成。被检测端软件实际上就是授时服务端软件。被监测端软件通过NTP协议对外提供授时服务,成为授时服务端;而监测客户端,使用NTP协议读取被监测端,计算出上文所说的θ值,此值越小说明被监测端计算机与监测客户端计算机的时间越接近。因为监测客户端的计算机直接读取GPS接收机时间信息来更新它的系统时间,所以该计算机系统时间是准确的时间。当θ值超过设定范围后,监测客户端软件就会告警。

     

     

    监测客户端软件使用多线程技术实现,其中读取GPS接收机时间信息刷新本机的线程简称为本地时间校准线程;使用NTP协议与被监测端通信,计算θ值并判断是否告警的线程称为轮询报警线程。本地时间校准线程以监测客户端软件设置的时间频率刷新本机系统时间,流程图见图3左。轮询报警线程以监测客户端软件设置的轮询时间使用NTP协议轮询指定的被监测计算机,θ值超出指定范围后报警,流程图见图3右。

    4结束语

    我单位在使用了短波台站局域网计算机授时及时间监测系统后不但能确保内网中每台计算设备系统时间的准确,而且降低了值班员在设备时间监测方面的劳动强度,有利于安全播音工作的开展。

     

     

    编辑:中国新闻技术工作者联合会

    评论 点击评论