APP下载

基于船钟信号的网络时间同步系统设计与实现

2013-10-17黄国雄庄乾波殷文涛

机电设备 2013年3期
关键词:电平串口服务器

黄国雄,庄乾波,殷文涛

●(中国卫星海上测控部,江苏江阴 214431)

基于船钟信号的网络时间同步系统设计与实现

黄国雄,庄乾波,殷文涛

●(中国卫星海上测控部,江苏江阴 214431)

通过对大型船舶子母钟系统进行研究分析,获得船钟信号特征;基于船钟时间信号的高精度特点,提出一种采用船钟信号作为基准来同步计算机网络时间的方法;设计开发出隔离型串口转换电路、网络时间同步服务器和客户端软件,实现计算机网络时间与船钟时间的同步调整;解决了在无互联网时间同步服务器的情况下,船舶穿越不同时区时的时间自动校准和同步调整问题。

子母钟;接口转换;时间校准;时间协议

0 引言

大型远洋船舶在各大洋航行时经常穿越不同时区,在到达新时区时,常常要调整船上的时钟时间来适应时区变化带来的时间变化。为了实现船舶上大量时钟时间的同步调整,船用时钟一般采用子母钟系统,配置一台母钟和若干台子钟,其中,母钟作为统一的时间基准,各子钟时间同步在母钟上。子钟具备自走时功能,当母钟信号中断时子钟会继续走时以保证时间的连续性,当需要改变时间时,只要调整好母钟的时间,子钟就会自动同步到母钟的时间上。采用子母钟系统可实现全船时间的同步调整,省去逐台时钟人工调整的麻烦,且时钟同步精度远远高于人工调整。

计算机时间由软件计算的方法产生,时钟走时精度受操作系统软件的影响较大,往往走时精度不高,月误差高达数分钟。在计算机网络中,各计算机之间的时钟各自独立运行,会产生较大误差,在一些对时间较敏感的应用(比如数据同步记录)中是不可接受的。然而,远洋船舶接入互联网困难,不能使用互联网的时间同步服务器来同步网络中的计算机时间。船用子母钟系统采用高精度晶体振荡器作为时钟源,走时精度远远高于计算机内部时钟,可作为参考时间基准。鉴于此,本文提出了一种通过船钟信号来同步网络中计算机时间的方法,对提高全网时间精度具有重大意义。

1 船钟信号分析

1.1 子母钟系统简介

子母钟系统原理框图见图1。母钟采用89C51单片机为核心,采用高稳定晶体振荡器为单片机提供工作时钟,同时作为计时基准。母钟通过标准信号接收单元接口接收GPS接收机、定时接收机等信号,对时间进行修正,单片机完成计时运算、数据存储、译码显示等,产生时间编码信号,通过信号变换电路转换成标准RS-422电平,从输出接口向各子钟发送,对子钟进行校准。子钟接收母钟信号后,经信号变换电路转换成TTL电平信号,由内部单片机进行解码得到时间,内部走时系统同步到接收到的时间上,通过驱动电路驱动走时机构。

图1 子母钟系统原理框图

母钟与子钟通过四芯电缆连接,子钟与子钟之间为并联连接,所有子钟统一由母钟提供工作电源。子钟端四芯电缆接口定义分别为R+、R-、+24V、VSS,其中,R+、R-分别为RS-422接口差分输入正负端,分别连接到母钟输出接口的T+、T-,+24V为24V直流供电,VSS为电源低电平端,即电源地线。信号采用广播方式发送,母钟只发送信号不接收信号,子钟只接收信号不发送信号。

1.2 船钟信号分析

查阅子母钟说明书得知船钟信号采用串行传输,除此之外无任何其他信息可供参考,如果需要从船钟信号中解调出时间,必须知道船钟信号的传输速率、帧格式等关键信息。通过示波器测量船钟信号波形可知,每帧数据宽度约12.5 ms,最小脉冲宽度约208 μs,则:

数据传输率率=1/208μs≈4800bit/s

每帧bit数=12.5ms/208μs≈60bit

串行通信中,每次传输1个字节,一般采用1位起始位、8位数据位、1位停止位的子帧结构,每子帧占用10bit,由此得出船钟信号每帧数据包含 6个字节。按照以上设置,采用串口调试软件接收船钟信号,接收到的数据见图2。由接收数据可知,船钟信号数据传输率为 4800bit/s,数据格式为8位数据位,1位停止位,无奇偶校验,每秒钟传输1帧数据,每帧数据包含6个字节,采用二进制传输,帧格式为:ABHMSV,其中:AB为帧同步码,占用2个字节,有两种同步码,分别为二进制FAFB、FCFD,交替出现;H为小时,占用1个字节;M为分钟,占用1个字节;S为秒钟,占用1个字节;V为校验码,占用1个字节,且V=H+M+S。

图2 串口调试数据

2 网络时间同步系统设计

2.1 船钟信号接口转换电路设计

船钟信号从计算机的串口输入,由于船钟信号为RS-422接口电平,计算机串口为RS-232接口电平,两者不能相互兼容,必须进行接口转换。鉴于船钟信号传输速率不高,且为单向传输,为提高系统抗干扰性和简化设计,本文中的接口转换没有采用专用RS-422/RS-232接口转换器,而是设计了一款隔离型接口转换器,电路原理见图3。

图3 RS-422/RS-232接口转换电路原理图

RS-422接口数据为正逻辑判决[1],船钟信号通过串行差分端口R+、R-输入,R+为正电平输入,R-为负电平输入,差分电压为±2~±6V,当 R+电平大于 R-电平时代表逻辑“1”,反之代表逻辑“0”。RS-232接口数据为负逻辑判决,数据从RXD端口输入计算机,电压范围为±3~±15V,当信号电压小于-3V时代表逻辑“1”,信号电压大于3V时代表逻辑“0”。计算机串口兼容非标准RS-232电平,对正逻辑的判决范围进行了扩展,即信号电压大于3V代表逻辑“0”,信号电压小于3V代表逻辑“1”[2]。

本文设计的隔离型接口转换器采用串口自供电设计,电路工作电压由串口的DTR、RTS信号产生,DTR、RTS信号通过隔离二极管D1、D2组成的加法器后,经电容C1滤波,产生约8V的直流电压为其他电路提供工作电压。差分电压从R+、R-端接入光电隔离器U1的输入端,当R+电平大于 R-时,光电耦合器输出端3、4脚导通,串口接收端RXD接地为低电平,当R+电平小于R-时,光电耦合器输出端3、4脚截止,在上拉电阻R2的作用下,串口接收端RXD为约8V电压的高电平。光电耦合器不仅起到了信号隔离的作用,而且实现了输入信号的极性变换,即将输入的RS-422接口的正逻辑判决转换成RS-232接口的负逻辑判决,使得输入信号逻辑正确。图3中各元件参数通过实验确定,确保在输入电压±2~±6V范围内输出电压满足RS-232接口电平规范要求。

2.2 服务器端软件设计

网络时间同步服务器端软件主要实现两个功能:一是船钟时间的接收解调与显示、本地计算机时间的显示、实时计算本机时间与船钟时间的误差,根据设置可控制本机时间是否同步到船钟时间;二是提供网络时间同步服务,将本地计算机作为网络时间服务器,响应客户端的请求,并按照规定的协议向客户端传送时间信息。网络时间同步服务采用RFC868时间协议,这个协议可工作在TCP和UDP协议下,本文设计的网络时间同步服务工作在 UDP协议下,通过UDP协议工作的时间协议的工作过程为:S: 检测端口37;C: 发送一个空数据报到端口37; S:接收这个空数据报;S:发送包含32位二进制数(用于表示时间)的数据报;C: 接收时间数据报。这里S代表服务器,C代表客户。

服务器在端口37上监听数据包。当一个数据包来到后,服务器返回一个包含32位的时间的数据包。如果服务器不能决定现在是什么时间,服务器会抛弃接收到的数据报而不作出任何应答。

服务器端软件采用Delphi 2007开发,软件界面见图4。船钟信号接收由串口通信控件ComPort实现,串口初始化参数:波特率4800bps,8位数据位,1位停止位,无奇偶校验,流控制参数中DTR、RTS设置为Enable,用于为接口转换电路提供电源。时间协议服务器由 Indy控件中的TdTimeUDPServer组件实现,软件启动时读取本机IP地址作为时间协议服务器地址。船钟时间由接收到的串口数据包中提取,本机时间由GetLocalTime(LocalTime)函数取得,同步时间由SetLocalTime(ShipTime)函数实现,时间误差单位为秒,计算公式如下:

图4 网络时间同步服务器端软件界面

2.3 客户端软件设计

图5 网络时间同步客户端软件界面

网络时间同步客户端软件采用Delphi 2007开发,界面见图5。客户端软件实现两个功能:一是本地计算机时间显示、计算本机时间与服务器时间的误差;二是利用服务器时间校准本机时间。时间协议客户端由Indy控件中的Td Time UDP组件实现[3],获取服务器时间时,客户端向设置的服务器地址发送请求,从返回的数据报中提取服务器时间,本机时间由 GetLocalTime(LocalTime)函数取得,校对时间由IdTimeUDP组件的SyncTime方法实现,时间误差的计算与服务器端软件相同。

3 时间校准精度分析

船子母钟系统的母钟采用高稳定晶体振荡器作为频率源,其频率准确度约 1×10-7~1×10-8以上,取平均值5×10-8计算,估算年误差为:

ΔTShip=5×10-8×365×24×60×60=1.6s

年误差不到2s,走时精度比较高。如果定期采用外部标准时间信号(一般采用GPS时间)进行校准,走时精度将更高。

计算机一般采用普通晶体振荡器作为频率源,其频率准确度约5×10-5~1×10-5,取平均值2.5×10-5计算,估算年误差为:

ΔTPC=2.5×10-5×365×24×60×60 =788.4 s

平均每天误差2 s左右,由于计算机时间受操作系统和所运行的软件影响较大,实际误差比理论估算值更大。时间协议的同步误差小于1 s。结合以上估算结果知,采用船钟信号作为基准的网络时间同步系统可将计算机时间精度提高近500倍,可满足大多数对时间敏感的分布式应用系统对计算机时间精度的要求。

4 结论

本文设计的基于船钟信号的网络时间同步系统在某大型船舶办公计算机网络时间同步、工作计划自动广播系统中得到了推广应用。该系统较好的解决了无互联网时间同步服务器和船舶跨时区时计算机时间同步的问题,大大提高了计算机时间精度。

[1]郭诠水. 通信设备接口协议手册[M]. 北京: 人民邮电出版社, 2005.

[2]李江全, 曹卫彬, 郑瑶, 等. 计算机典型测控与串口通信开发软件应用实践[M]. 北京: 人民邮电出版社, 2008.

[3]吕伟臣, 霍言, 高小山. Delphi2005入门与提高[M].北京: 清华大学出版社, 2006.

Design and Realization of Network Time Synchronization System Based on Ship-borne Clock

HUANG Guo-xiong, ZHUANG Qian-bo, YIN Wen-tao
(China Satellite Maritime Tracking and Control Department, Jiangsu Jiangyin 214431, China)

The feature of ship-borne clock is obtained by the analysis of network time synchronization system. Based on precise ship-borne clock, the system including low-cost serial peripheral, network time synchronization server and client are put forward. The computers can check time by system, which are on offshore ship without world-wide network time synchronization server. Not only the precision of computer time is improved greatly, but also the time automatic check can be realized across the time zone.

primary-secondary clock; low-cost peripheral; time check; time protocol

TP393.0

A

黄国雄(1977-),男,工程师。主要从事通信总体工作。

猜你喜欢

电平串口服务器
浅谈AB PLC串口跟RFID传感器的通讯应用
通信控制服务器(CCS)维护终端的设计与实现
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
NPC五电平Z源逆变器的设计研究
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
基于三电平光伏并网逆变器控制系统的研究与实践
基于NPC三电平变换器的STATCOM研究