乐趣区

关于运维:北斗授时产品NTP时钟服务器设计与研究

北斗授时产品(NTP 时钟服务器)设计与钻研
北斗授时产品(NTP 时钟服务器)设计与钻研

随着信息技术和网络技术的飞速发展,网络互连曾经渗透到国民经济的各行各业。而网络工夫同步也越来越受到重视,特地是局域网工夫同步在国家平安和国民经济的诸多畛域 (如国防军工、电信网、金融业、交通运输、电子商务和电力系统等部门) 越发不可或缺。随着嵌入式技术的倒退,嵌入式与网络工夫同步技术的联合,无疑具备良好的发展前景。
1、方案设计
目前网络授时的实现办法有很多种,本文采纳自行设计的嵌入式零碎并在下面实现 SNTP 协定。从而实现网络工夫的同步。其零碎框图如图 l 所示。

本零碎采纳 C/S 模型,分为网络授时同步服务器和客户端两大部分,本文次要对网络授时服务器局部进行钻研。
在网络授时同步服务器中,处理器 STM32f103 由外部 RTC 模块联合日历算法来给出工夫信息 (年月日时分秒),再从 GPS 获取工夫信息,并修改本人的工夫,最初联合 W5100 芯片搭建出一个工夫服务器。当客户端向服务器发出请求时,便可同步地对立客户端的工夫信息,并达到 ms 级精度。网络传输时需实现 SNTP 应用层协定,设计中通过结构 SNTP 协定包,并依据同步算法可计算出包交换的往返提早。
本零碎采纳 ST 公司基于 Cortex-M3 内核的 STM32 系列处理器.Cortex-M3 内核是专门用于设计高性能、低功耗、低成本、实时性嵌入式应用零碎的处理器核,它在晋升性能的同时,又进步了代码密度的 Thumb- 2 指令集,同时也大幅度提高了中断响应的紧耦合嵌套向量中断控制器的性能。所有新性能都同时具备业界最优的功耗程度。
TCP/IP 协定栈的实现采纳的固件芯片 W5100 是韩国 WIZnet 公司推出的固件网络芯片,它集 TCP/IP 协定栈、以太网 MAC 和 PHY 为一体,可反对 TCP,UDP、ICMP、IGMP、IPv4、ARP,PPPoE、Ethemet 等网络协议;同时反对 4 个独立的 Socket 通信,外部 16 K 字节的发送/接收缓冲区可疾速进行数据交换,最大通信速率可达到 25Mbps。此外,W5100 还内嵌 10BaseT/100BaseTX 以太网物理层,可反对自动应答 (全双工/半双工模式),并提供多种总线(两种并行总线和 SPI 总线) 接口方式,能够不便地与各种 MCU 连贯。W5100 器件的推出大大简化了硬件电路设计,可使微控制器在没有操作系统反对的状况下,真正的实现单芯片接入 Internet。
2 SNTP 协定剖析
SNTP 即简单网络工夫协定,它是一个用于局域网子网末端的工夫同步协定,其要求在操作过程中只容许存在一个牢靠的同步时钟源,是 NTP 协定的一个简化版本。
2.1 SNTP 的同步原理
SNTP 协定次要通过同步算法来替换工夫服务器和客户端的工夫戳,从而估算出数据包在网络上的往返提早,进而独立地估算零碎的时钟偏差。它的工夫同步原理的传输模型如图 2 所示。

图 2 中,T1 为客户方发送查问申请工夫(以客户方工夫零碎为参照),T2 为服务器收到查问申请工夫(以服务器工夫零碎为参照),T3 为服务器回复工夫信息包工夫(以服务器工夫零碎为参照),T4 为客户方收到工夫信息包工夫(以客户方工夫零碎为参照),D1 为申请信息在网上流传所耗费的工夫,D2 为回复信息在网上流传所耗费的工夫。假如申请和回复在网上的流传工夫雷同,即:δ1=δ2,则可得出如下公式:

式中,θ 为客户端工夫与规范工夫之差,δ 为信息在网上流传的工夫。能够看到,θ、δ 只与 T2、T1 的差值和 T4、T3 的差值相干,而与 T2、T3 的差值无关,即最终的后果与服务器解决申请所需的工夫无关。据此,客户端 (CLIENT) 即可通过 T1、T2、T3、T4 十算出的时差 0 去调整本地时钟。
2.2 SNTP 协定格局
SNTP 音讯个别封装在 UDP 报文中,UDP 的端口号是 123,UDP 头中的源端口和目标端口是一样的。SNTP 音讯紧跟在 IP 和 UDP 报头之后,其协定格局如图 3 所示。

图 3 中,U 为跳跃指示器,可正告在当月最初一天的最终时刻插入的逼近闺秒 (闺秒)。VN 示意版本号。Mode 为模式,该字段包含以下值:
O(预留);1(对称行为);3(客户机);4(服务器);5(播送);6(NTP 管制信息)。Stratum 用于对本地时钟级别的整体辨认。Poll 示意有符号整数示意间断信息间的最大距离。Precision 示意有符号整数,示意本地时钟精确度。Root Delay 为有符号固定点序号,示意次要参考源的总提早,如很短时间内的 15 到 16 间的分段点。Root Dispersion 为无符号固定点序号示意绝对于次要参考源的失常过错,如很短时间内的位 15 到 16 间的分段点。
Reference Identifier 为辨认非凡参考源。Originate Timestamp 是向服务器申请拆散客户机的工夫,采纳 64 位时标(Timestamp) 格局。Receive Timestamp 是向服务器申请达到客户机的工夫。也采纳 64 位时标 (Timestamp) 格局。Transmit Timestamp 是向客户机回答拆散服务器的工夫。采纳 64 位时标 (Timestamp) 格局。
3 硬件设计
图 4 所示为 W5100 局部的电路图,图中给出了 W5100 与 STM32 的连贯形式及其外围电路。

W5100 和 STM32 可通过 SPI 形式通信。通过对 SEN 管脚用 10 kΩ 电阻上拉到高电平可容许 SPI 模式;因为 W5100 处于 SPI 从模式,因而,其 SPI 工作时钟由处于主模式的 STM32 提供,MISO 和 MOSI 为用于 SPI 通信的两条数据线,SCLK 为 SPI 时钟引脚;*为片选引脚,低电平无效,次要用于在并行总线连贯时由 MCU 拜访 W5100 外部寄存器或存储器;INT 为中断输入引脚,低电平无效,在 W5100 在 SOCKET 端口产生连贯、断开、接收数据、数据发送实现以及通信超时等状况下,该引脚将输入信号以批示 MCU。中断将在写入中断寄存器 IR 或端口的中断寄存器时被革除,所有中断都能够被屏蔽。W5100 的第 5、6、8 和 9 脚是以太网物理层信号引脚,用于与 RJ45 接口相连接,其中第 5 和第 6 引脚是 RXIP/RXlN 信号对,用于接管从介质传来的差分数据,第 8 和第 9 引脚是 TXOP/TXON 信号对,用于将差分数据发送给介质;第 66 引脚是连贯 LED 批示引脚,低电平示意 10/100Mbps 连贯状态失常,连贯失常时输入低电平,而在 TX/RX 状态时闪动;第 72 引脚是接管状态 LED 批示引脚,低电平示意以后接收数据,第 73 引脚是发送状态 LED 批示引脚,低电平示意以后发送数据,这些 LED 批示引脚应与 RJ45 的相应 LED 指示灯引脚连贯,以用于批示连贯状态。除电源引脚、时钟引脚外,W5100 的其它引脚 DO~D7,AO~A14 及 WR~RD 可抉择悬空。
图 5 所示是 GPS 模块与 STM32 的连贯示意图。GPS 接管模块采纳 HOLUX 生产的 GPS 模块 M87GPS,模块的串行口输入和输出别离接到 STM32 的输出与输入,秒脉冲 PPS 信号连贯到处理器的 IO 口,在秒脉冲 (1PPS) 同步的状况下,零碎将实时精准地通过串口把规范的 UTC 工夫传送给处理器 STM32。

4 SNTP 服务器的软件设计
SNTP 服务器的软件设计次要可分为两个局部:W5100 的驱动设计和 SNTP 协定的软件实现。其软件流程图如图 6 所示。

首先,利用 ST 公司提供的固件库可初始化 STM32 的系统配置,把 SPI 接口配置为两线单向全双工传输、主模式,以 8 位数据帧的格局进行传输;同时配置 RTC 模块产生秒脉冲,再与日历算法联合失去本身的零碎工夫,而后通过 GPS 的秒脉冲 PPS 修改零碎工夫。再通过配置 W5100 公共寄存器和端口寄存器来实现它的根本设置、网络信息以及端口存储器信息的没置,使之为 UDP 服务器模式。尔后,W5100 处于 * 状态,一旦 W5100 的 SOCKET 端口有中断事件,W5100 将触发 STM32 的内部中断,STM32 若检测到 SoekRecvflag 产生扭转,则立刻开始 SNTP 协定的解析。
接管 SNTP 协定包后,便可记录收到报文的工夫 T2,而后从报文中解析出工夫戳 T1,再将 T1、T2 封装成新的报文进行发送,同时发送时再记录一个发送工夫 T3。
5 结束语
本文基于 STM32 和 W5100 搭建了一个网络服务器硬件平台,并在其上实现了 SNTP 同步工夫报文。经测试,本零碎运行稳固,并可实现对客户端 PC 机的时钟同步。通过该零碎可无效解决工业管制等畛域的工夫不同步问题。

退出移动版