当前位置:首页 期刊杂志

一种低成本授时服务器的设计

时间:2024-05-04

孟献仪 ,王智群

(1.徐州和纬信电科技有限公司,江苏徐州, 221008;2.无锡益多环保热电有限责任公司,江苏无锡,214135)

1 系统构成

本文设计一款以STC单片机系统板STC8A8K64S4A12 为处理器的授时服务器,采用中科微公司生产的GPS/BD双模卫星接收模块,用作外部高精度时间源,负责提供标准UTC时间信息,定时精度10毫秒;拥有以太网接口可以与客户端进行时间同步;拥有串行接口,可以进行设备调试、系统开发,可以获取外部时钟源信号; 拥有EEPROM 电路,可以存放需要掉电保护的一些数据,比如IP地址以及参数配置等。授时服务器的应用组成如图1所示。

图1 授时服务器的组成

采用CH9126网络接口芯片作为服务器是本设计一大亮点,可以用来进行网络数据处理,既可以做服务器又可以做客户端。它具有授时精度高、集成度高、稳定性佳和低功耗等特点。具体特性指标如下:

(1)内置SNTP协议;(2)授时精度为10ms;(3)自带以太网介质传输层(MAC)和物理层(PHY),在CH9126内部,可以自动完成对网络数据的解析。(4)支持10/100M,全双工/半双工自适应,兼容802.3协议,可以在不同的网络环境下实现数据处理; (5)兼容 802.3x全双工流控和半双工背压流控;(6)支持MDI/MDIX线路自动转换;(7)支持通过网络和串口配置模块参数,串口支持5、6、7或者8个数据位以及 1 或者2个停止位,支持奇、偶、无校验、空白0、标志1等校验方式,波特率支持 300-921600bps,支持一个独立的数据通道,提供网络转串口的数据透传功能。

基于以上特性,使用CH9126网络接口芯片作为网络数据传输处理芯片可以简化电路设计和软件编程。

2 硬件组成

将卫星时钟源部分与数据处理和控制部分进行硬件连接,即GPS/BD双模卫星时钟源模块通过串行接口与STC单片机进行通信,GPS/BD双模卫星时钟源模块向STC单片机提供1PPS 秒脉冲信号以及时码信号,用I/O口进行硬件连接;时码信号所带的UTC时间信息通过串口传送给单片机,并保持和秒脉冲信号上升沿的同步。

网络接口部分通过串行接口与数据处理和控制部分进行通信,即STC单片机和 CH9126之间通过串口和I/O口进行数据交换,将时间信息同步。网络接口与用户接口的连接即为SNTP时间服务器与SNTP客户端的连接,网络授时芯片CH9126通过RJ45接口以及网线,完成与客户端的数据交换。

(1)GPS/BD双模卫星接收模块通过串口通信为STC单片机提供标准时码和1PPS 秒脉冲的串口信号。服务器可以获取不同外部时钟源,包括中科微的3通道 GPS卫星接收模块、3通道北斗卫星定位导航模块和国家授时中心的原子频标时间基准等作为时钟源,用来获取标准时钟信号且不依赖于计算机网络;(2)网络接口芯片CH9126连接电以太网RJ45接口,可以用于连接客户端进行时间同步;(3)Micro USB接口电路为系统提供相应的软件调试接口;(4)RS485接口通过串口通信,可以帮助系统进行开发、调试、配置等功能;(5)拥有EEPROM 电路,可以存放需要掉电保护的一些数据,比如IP地址以及参数配置等。

客户端主要采用STC作为数据处理及控制核心,使用CH9126芯片的客户端模式以及外围相对应的系统各部分。CH9126芯片通过以太网向SNTP服务器获取标准时间,通过串口通信输出给单片机,同时还可以通过LCD12864显示屏实时显示。从而完成时间同步。主要框图设计如图2所示。

图2 SNTP客户端的设计

授时服务器的数据处理核心使用STC8A8K64S4A12单片机来完成系统的数据处理和控制部分,在SNTP网络时间服务器系统中,通过接收并解析GPS/BD双模卫星接收模块获取的标准UTC时间信息,主要接收串口信号以及1PPS秒脉冲信号,再由 STC8A8K64S4A12内部的TIMx计数器功能来提取精确时间信息(年月日时分秒),并修正自己的时钟信息,使其与GPS时钟源保持同步。

系统采用了C/S 模式(主从模式),主控芯片的工作过程为:当客户端需要时间同步的时候,回向服务器发送基于SNTP标准的数据包,通过网络授时芯片CH9126将数据包解析之后,发送给STC8A8K64S4A12,此时CH9126 芯片向STC8A8K64S4A12发送中断请求;当 STC8A8K64S4A12 接收到信号时并将数据包解析,把此刻服务器端获取的转换过后的时间信息再次打包、封装后,生成一个基于SNTP时间协议的通信数据包,由CH9126芯片通过RJ45接口和网线发送给客户端,此时授时精度可以达到毫秒级;通过客户端与服务器的两次通信,即可完成两者之间的时间同步。STC8A8K64S4A12的电路原理图如图3所示。

图3 STC8A8K64S4A12的电路原理图

网络接口采用RJ45接口,完成网络服务器与客户端之间进行SNTP数据包通信。网络授时芯片CH9126和RJ45接口进行电气连接,从而实现数据包的发送和接收。其电路图如图4所示:其中,RJ45接口RXN/RXP信号对与CH9126的第1引脚和第2引脚相连;TXN/TXD信号对与CH9126的第3引脚和第6引脚相连;ELINK引脚与CH9126的第10引脚和第11引脚相连,在低电平时工作,在10/100Mbps时连接正常。

图4 网络数据接口

串行接口设计采用RS485标准,其四线制仅仅可以实现点对点的通信方式,应用较窄。所以本设计采用两线制。但是STC8A8K64S4A12核心板微处理器的TTL电路中的高、低电平信号不同于RS485标准定义的高、低电平信号。RS485传输差分信号标准逻辑“1”对应的两线间的电压差为+(2—6)V;标准逻辑“0”对应的两线间的电压差为-(2—6)V。TTL的标准逻辑“1”是在2V~3.3V电平,标准逻辑“0”是在0V~0.4V电平。两者电压不匹配,因此,采用的是RS485转TTL模块实现电平转换。

电源电路可以向授时服务器各部分提供能使其稳定运行的电源电压,从外部通过USB转micro b接口获取电源。电源分为3.3V和5V,其电路原理图如图5所示:5V稳压采用的是AMS1117-5V芯片,3.3V稳压采用的是RT9193-33稳压芯片。其中5V主要给BD/GPS双模接收模块供电,3.3V给STC单片机、网络接口芯片CH9126以及其他外围电路供电。

图5 电源电路

3 软件流程

基于SNTP的时间同步服务器软件设计由两部分组成,是SNTP授时服务器的软件设计和SNTP客户端的软件设计。本设计的重点在于对SNTP授时服务器进行分析、研究、设计。

(1)本设计采用CH9126网络授时芯片,具有Server/Client两种工作模式,所以设计两种构架。

(2)软件设计的程序通过Keil μVision5软件开发平台进行编程。使用C51编译器进行程序编写编译、调试排错。

(3)由串口获取GPS提供的标准时间信息UTC,通过子程序精确取出所需要的时间信息并进行时区转换,再通过Server/Client模式进行SNTP数据包的收发,从而达到时间同步作用。

SNTP授时服务器的软件设计主要分为四个部分:系统初始化、参数配置、时间同步与授时程序设计和SNTP授时服务。当STC8A8K64S4A12单片机获取标准时间信息后,经过转换提取处理,将信息通过串口在LCD12864上显示出来。同时授时芯片CH9126通过串口获取标准时间,再通过LWIP协议栈给客户端进行时间同步。

图7 授时测试

本设计分为SNTP时间同步服务器和SNTP时间同步客户端两部分,所以拥有主时钟和从时钟两种模式,可以用SNTP协议配置软件在上位机进行配置。软件设计的主程序主要作用在于完成串口数据和网络数据的处理,串口1负责与上位机通信,串口2负责接收GPS/BD卫星接收模块的标准时间信息,串口3负责连接LCD12864显示屏,串口4用以连接CH9126网络授时模块。其中时钟源来自GPS/BD双模卫星接收模块接收的标准时间信息UTC,标准时间信息UTC通过串行接口2完成与数据处理核心的通信。

图6 主程序流程图

4 测试

例举一个简单测试方法,使用网线把PC机网口和服务器的网口连接起来,若有多个PC机,使用网络交换机进行联机。

在Windows系统中,打开控制面板中的管理工具,选中服务打开,然后找到windows time服务。依次单击本地组策略编辑器、计算机配置、管理模板、系统、windows time服务,在时间提供程序里设置启用Windows NTP服务器。将目标地址与授时服务器IP地址(如192.168.1.133)设为一致,即可自动对时。

5总结

随着社会经济不断发展,自动化设备应用越来越广泛,在广电网络、铁路信息系统、油气管道生产监控、智能电网、移动通信等行业信息化建设中,人们对信息控制系统精度要求越来越高,本文设计了一款低成本的授时服务器,授时精度在局域网内可以达到毫秒级别,在广域网内可以达到几十个毫秒,具有较高的应用价值。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!