一种基于硬件时间戳的NTP服务器授时实现方法与流程

文档序号:12131361阅读:798来源:国知局

本发明涉及时间与频率同步系统中的NTP授时技术领域,具体涉及一种基于硬件时间戳的NTP服务器授时实现方法。



背景技术:

随着信息技术的快速发展,在通信系统与电力系统等要求实时性强的应用场合,必须保证系统内的各终端具有统一的时间。互联网的大规模普及,给统一授时提供了极大的方便。NTP(Network Time Protocol,网络时间协议)就是在此种应用环境下诞生的。

NTP协议最早是由美国Delaware大学Mills教授设计实现的,它是用来使计算机时间同步化的一种协议,可以使计算机通过网络与高精度时间服务器进行时间同步。NTP协议目前已发展到第四版。它使用UTC(Coordinated Universal Time,协调世界时)时间作为标准,是基于无连接的IP (Internet Protocol,网际协议)协议和UDP(User Datagram Protocol,用户数据报协议)协议的应用层协议,端口为123,使用层次式时间分布模型。通常情况下,其同步精度在广域网中能达到几十毫秒,在局域网中则优于10毫秒。

在传统的NTP授时中,应用层在解析出NTP报文后才标记时间戳,其精度受限于软件执行的时延和不确定性。而采用在介质访问控制层对NTP报文进行硬件时间戳的标记,可以克服上述缺点,从而显著提高NTP报文的时间戳精度。



技术实现要素:

本发明的目的在于解决现有技术中存在的上述问题,提供一种基于硬件时间戳的NTP服务器授时实现方法。使NTP服务器的报文时间戳精度显著提高,从而提高NTP的授时精度,可以满足局域网内各客户端对时间同步的精度要求。

本发明目的通过下述技术方案来实现:

一种基于硬件时间戳的NTP服务器授时实现方法,包括以下步骤:

步骤1、MAC模块接收来自以太网接口的以太网数据帧,

步骤2、MAC模块通过第二中断信号通知时间标签模块生成时间戳信息,时间标签模块生成时间戳信息后通过第一中断信号通知MAC模块,MAC模块接收时间标签模块生成的时间戳信息作为接收时间戳信息,MAC模块对以太网数据帧进行解析生成解析后的以太网数据帧,

步骤3、MAC模块通过第三中断信号通知CPU模块接收解析后的以太网数据帧和相应的接收时间戳信息,

步骤4、CPU模块将解析后的以太网数据帧和相应的接收时间戳信息封装成NTP报文,

步骤5、CPU模块封装NTP报文完成后通过第四中断信号通知MAC模块发送NTP报文,

步骤6、MAC模块响应来自CPU模块的第四中断信号,获取来自CPU模块已封装好的NTP报文并对外发送,MAC模块在发送NTP报文时通过第二中断信号通知时间标签模块产生时间戳信息,时间标签模块产生时间戳信息后产生第一中断信号4通知MAC模块读取时间戳信息作为发送时间戳信息,

步骤7、MAC模块通过产生第三中断信号通知CPU模块将发送时间戳信息封装为UDP报文,

步骤8、CPU模块通过第四中断信号通知MAC模块将UDP报文对外发送,

步骤9、NTP客户端接收NTP报文以及对应的UDP报文,将UDP报文中的发送时间戳信息填充到对应的NTP报文中。

本发明相对于现有技术具有以下优点:

传统NTP授时是在应用层解析出NTP报文后才标记时间戳,该软件时间戳由于软件执行的不确定性而导致精度存在较大的误差;而本发明是在介质访问控制层给接收或发送的NTP报文标记硬件时间戳,显著提高了NTP报文的时间戳精度。

附图说明

图1为本发明的系统框图;

图中:1-第一时钟信号;2-第二时钟信号;3-第三时钟信号;4-第一中断信号;5-第二中断信号;6-第三中断信号;7-第四中断信号;10-CPU模块;11-PLL模块;12-时间标签模块;13- MAC模块。

具体实施方式

利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制。

图1为实施例的系统框图,其中包括CPU模块10、PLL模块11、时间标签模块12(Timestamp)和MAC模块13。

CPU模块10,运行TCP/IP协议栈,管理整个系统的运行,并对MAC模块13产生第四中断信号7,通知MAC模块13将CPU模块10处理完的NTP报文或UDP报文对外发送出去;同时响应来自MAC模块13的第二中断信号6,及时处理MAC模块13传输过来的接收时间戳信息、发送时间戳信息、解析后的以太网数据帧。

PLL模块11,对来自时间服务器的第一时钟信号1进行倍频,将倍频后的第二时钟信号2送至时间标签模块12,作为时间标签模块12的主时钟;将倍频后的第三时钟信号3送至CPU模块10,作为CPU模块10的主时钟。

时间标签模块12,是系统标记NTP报文硬件时间戳的核心模块。时间标签模块12维持一个可追溯至时间服务器的精确的本地时间,通过响应来自MAC模块13的第二中断信号5来对MAC模块13接收到的以太网数据帧或即将发送的NTP报文数据帧进行时间戳的标记,时间标签模块12响应来自MAC模块13的第二中断信号5后读取本地时间作为时间戳信息,并产生第一中断信号4通知MAC模块13读取时间戳信息。

MAC模块13,是接收和发送以太网数据帧的核心模块。MAC模块13接收来自以太网接口的所有以太网数据帧;MAC模块13通过第二中断信号5通知时间标签模块12生成时间戳信息,时间标签模块12生成时间戳信息后通过第一中断信号4通知MAC模块13,MAC模块13接收时间标签模块12生成的时间戳信息做为接收时间戳信息,MAC模块13对以太网数据帧进行解析生成解析后的以太网数据帧;MAC模块13通过第三中断信号6来通知CPU模块10接收解析后的以太网数据帧和相应的接收时间戳信息;CPU模块10将解析后的以太网数据帧和相应的接收时间戳信息封装成NTP报文;CPU模块10封装NTP报文完成后通过第四中断信号7通知MAC模块13发送NTP报文;MAC模块13响应来自CPU模块10的第四中断信号7,获取来自CPU模块10已封装好的NTP报文并对外发送出去,MAC模块13在发送NTP报文时通过第二中断信号5通知时间标签模块12产生时间戳信息,时间标签模块12产生时间戳信息后产生第一中断信号4通知MAC模块13读取时间戳信息作为发送时间戳信息;MAC模块13通过产生第三中断信号6通知CPU模块10将发送时间戳信息封装为UDP报文;CPU模块10通过第四中断信号7通知MAC模块13将UDP报文对外发送。

一种基于硬件时间戳的NTP服务器授时实现方法,包括以下步骤:

步骤1、MAC模块13接收来自以太网接口的以太网数据帧。

步骤2、MAC模块13通过第二中断信号5通知时间标签模块12生成时间戳信息,时间标签模块12生成时间戳信息后通过第一中断信号4通知MAC模块13,MAC模块13接收时间标签模块12生成的时间戳信息作为接收时间戳信息,MAC模块13对以太网数据帧进行解析生成解析后的以太网数据帧。

步骤3、MAC模块13通过第三中断信号6来通知CPU模块10接收解析后的以太网数据帧和相应的接收时间戳信息。

步骤4、CPU模块10将解析后的以太网数据帧和相应的接收时间戳信息封装成NTP报文。

步骤5、CPU模块10封装NTP报文完成后通过第四中断信号7通知MAC模块13发送NTP报文。

步骤6、MAC模块13响应来自CPU模块10的第四中断信号7,获取来自CPU模块10已封装好的NTP报文并对外发送出去,MAC模块13在发送NTP报文时通过第二中断信号5通知时间标签模块12产生时间戳信息,时间标签模块12产生时间戳信息后产生第一中断信号4通知MAC模块13读取时间戳信息作为发送时间戳信息。

步骤7、MAC模块13通过产生第三中断信号6通知CPU模块10将发送时间戳信息封装为UDP报文。

步骤8、CPU模块10通过第四中断信号7通知MAC模块13将UDP报文对外发送。

步骤9、NTP客户端接收NTP报文以及对应的UDP报文,将UDP报文中的发送时间戳信息填充到对应的NTP报文中。

最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1