CN114401067B - 环网通讯的时间同步方法、可编程门阵列及环网通讯*** - Google Patents
环网通讯的时间同步方法、可编程门阵列及环网通讯*** Download PDFInfo
- Publication number
- CN114401067B CN114401067B CN202111600620.5A CN202111600620A CN114401067B CN 114401067 B CN114401067 B CN 114401067B CN 202111600620 A CN202111600620 A CN 202111600620A CN 114401067 B CN114401067 B CN 114401067B
- Authority
- CN
- China
- Prior art keywords
- node device
- delay
- module
- time
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000001360 synchronised effect Effects 0.000 claims abstract description 144
- 230000004044 response Effects 0.000 claims abstract description 86
- 230000005540 biological transmission Effects 0.000 claims description 69
- 238000004458 analytical method Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 10
- 230000003111 delayed effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 108700009949 PTP protocol Proteins 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请的实施例提供了一种环网通讯的时间同步方法、可编程门阵列及环网通讯***,涉及通信技术领域。通过向所述从节点设备的前一相邻节点设备发送延时请求报文,并记录所述延时请求报文发出的时刻对应的第一时间戳;接收所述前一相邻节点设备发送的延时应答报文,并记录接收到延时应答报文的时刻对应的第二时间戳;确定所述从节点设备与所述前一相邻节点设备的链路时延;接收所述主节点设备广播的同步广播报文,确定所述从节点设备与主节点设备之间的时钟偏移值;根据所述时钟偏移值,对从节点设备进行时间同步。本申请能够在现场可编程门阵列,中完成了对PTP的处理,还能够使得各报文仅在各相邻节点设备之间交换就实现与主机的时间同步。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种环网通讯的时间同步方法、可编程门阵列及环网通讯***。
背景技术
随着工业化与信息化之间的融合不断加深,工业环网成为了工业通讯中的重要组成部分。在工业控制***的应用场景中,对于数据通讯***的实时性精度要求较高,因此,如何提升的工业环网多节点时间同步***的同步精度,是工业环网的重要发展方向之一。
目前的工业应用中,为了满足工业环网的微秒级甚至纳秒级的时间同步精度,精确时间同步协议(Precision Time Protocol,简称PTP)是目前网络内时间同步的最佳协议和方案。现有技术中,可以通过软件方式,或者软件与硬件相结合的方式实现基于PTP协议的数据传输。软件方式通过在协议栈的网络驱动层获取时间戳,并将该时间戳附带进报文中做主机与环网中各从机的报文交换。软件与硬件相结合的方式实现基于PTP的数据传输时,时间戳由主机的硬件提供,主机将该时间戳附带进向环网中各从机的时间同步指令中,实现主机与从机的时间同步。
但是,使用现有技术中的软件方式,会导致环网中主机收发报文的负荷增大,且距离主机越远的从机因为经过链路状态复杂,延迟无法控制和准确预计导致精度降低。使用现有技术中的软件与硬件相结合的方式,由于使用软件方式处理PTP报文,增加了报文处理延时,降低了同步精度,增加了中央处理器(Central Processing Unit,CPU)的负荷。
发明内容
本申请的目的包括,例如,提供了一种环网通讯的时间同步方法、可编程门阵列及环网通讯***,通过在现场可编程门阵列(Field Programmable Gate Array,FPGA)中完成了对PTP报文的处理,还能够使得各报文仅在各相邻节点设备之间交换就实现与主机的时间同步,使得从节点与主节点间的时间同步能够高精度、低延迟、低负荷。
本申请的实施例可以这样实现:
第一方面,本申请实施例提供了一种环网通讯的时间同步方法,应用于环网通讯***中各从节点设备中的现场可编程门阵列,所述环网通讯***包括N个节点设备,所述N个节点设备通过传输介质连接成环形网状,所述N个节点设备包括1个主节点设备以及N-1个从节点设备,并且,所述N个节点设备中的各节点设备分别包括现场可编程门阵列;
所述方法包括:
向所述从节点设备的前一相邻节点设备发送延时请求报文,并记录所述延时请求报文发出的时刻对应的第一时间戳;
接收所述前一相邻节点设备发送的延时应答报文,并记录接收到所述延时应答报文的时刻对应的第二时间戳;
根据所述延时应答报文中包含的延时时差、所述第一时间戳以及所述第二时间戳,确定所述从节点设备与所述前一相邻节点设备的链路时延;
接收所述主节点设备广播的同步广播报文,并根据所述同步广播报文中包含的第三时间戳、所述链路时延以及所述从节点设备接收到所述同步广播报文的时刻对应的第四时间戳,确定所述从节点设备与主节点设备之间的时钟偏移值,所述第三时间戳用于标识所述主节点设备发出所述同步广播报文的时刻;
根据所述时钟偏移值,对所述从节点设备进行时间同步。
在一种可选的实施方式中,所述根据所述时钟偏移值,对所述从节点设备进行时间同步之后,还包括:
将所述同步广播报文中的所述第三时间戳修改为第五时间戳;
在所述第五时间戳对应的时刻,将所述同步广播报文转发至所述从节点设备的后一相邻节点设备。
在一种可选的实施方式中,所述根据所述时钟偏移值,对所述从节点设备进行时间同步,包括:
获取时钟当前的时间值;
将所述当前时间值与所述时钟偏移值相加,得到修正时间值;
将时钟的时间值调整为所述修正时间值。
在一种可选的实施方式中,所述根据所述延时应答报文中包含的延时时差、所述第一时间戳以及所述第二时间戳,确定所述从节点设备与所述前一相邻节点设备的链路时延,包括:
将所述第二时间戳与所述第一时间戳相减,得到端时延;
将所述端时延与所述延时时差相减,得到中间时延;
将所述中间时延减半,得到所述从节点设备与所述前一相邻节点设备的链路时延。
在一种可选的实施方式中,所述根据所述同步广播报文中包含的第三时间戳、所述链路时延以及所述从节点设备接收到所述同步广播报文的时刻对应的第四时间戳,确定所述从节点设备与主节点设备之间的时钟偏移值,包括:
将所述第三时间戳与所述链路时延相加,得到时间同步差值;
将所述时间同步差值与所述第四时间戳相减,得到所述从节点设备与主节点设备之间的时钟偏移值。
在一种可选的实施方式中,所述方法还包括:
接收所述从节点设备的后一相邻节点设备发送的延时请求报文,并记录接收到所述延时请求报文的时刻对应的第六时间戳;
向所述后一相邻节点设备发送延时应答报文,并记录所述延时应答报文发出的时刻对应的第七时间戳;
所述延时应答报文包括:延时时差,所述延时时差由所述第七时间戳与所述第六时间戳的差值确定。
第二方面,本申请实施例提供了一种环网通讯的时间同步装置,所述装置包括:
发送模块,用于向所述从节点设备的前一相邻节点设备发送延时请求报文,并记录所述延时请求报文发出的时刻对应的第一时间戳。
接收模块,用于接收所述前一相邻节点设备发送的延时应答报文,并记录接收到所述延时应答报文的时刻对应的第二时间戳。
处理模块,用于根据所述延时应答报文中包含的延时时差、所述第一时间戳以及所述第二时间戳,确定所述从节点设备与所述前一相邻节点设备的链路时延。
所述处理模块还用于,接收所述主节点设备广播的同步广播报文,并根据所述同步广播报文中包含的第三时间戳、所述链路时延以及所述从节点设备接收到所述同步广播报文的时刻对应的第四时间戳,确定所述从节点设备与主节点设备之间的时钟偏移值,所述第三时间戳用于标识所述主节点设备发出所述同步广播报文的时刻。
所述处理模块还用于,根据所述时钟偏移值,对所述从节点设备进行时间同步。
所述处理模块还用于,将所述同步广播报文中的所述第三时间戳修改为第五时间戳;在所述第五时间戳对应的时刻,将所述同步广播报文转发至所述从节点设备的后一相邻节点设备。
所述处理模块具体还用于,获取时钟当前的时间值;将所述当前时间值与所述时钟偏移值相加,得到修正时间值;将时钟的时间值调整为所述修正时间值。
所述处理模块具体还用于,将所述第二时间戳与所述第一时间戳相减,得到端时延;将所述端时延与所述延时时差相减,得到中间时延;将所述中间时延减半,得到所述从节点设备与所述前一相邻节点设备的链路时延。
所述处理模块具体还用于,将所述第三时间戳与所述链路时延相加,得到时间同步差值;将所述时间同步差值与所述第四时间戳相减,得到所述从节点设备与主节点设备之间的时钟偏移值。
所述处理模块具体还用于,接收所述从节点设备的后一相邻节点设备发送的延时请求报文,并记录接收到所述延时请求报文的时刻对应的第六时间戳;向所述后一相邻节点设备发送延时应答报文,并记录所述延时应答报文发出的时刻对应的第七时间戳;所述延时应答报文包括:延时时差,所述延时时差由所述第七时间戳与所述第六时间戳的差值确定。
第三方面,本申请实施例提供了一种现场可编程门阵列,所述现场可编程门阵列包括:媒体访问控制端口模块、解析模块、延时获取模块、同步模块、发送转发模块、发送选择模块、中央处理器接口模块以及环网发送模块;
所述媒体访问控制端口模块分别与所述解析模块以及所述发送选择模块通信连接,所述解析模块分别与所述延时获取模块、所述同步模块、所述发送选择模块以及所述中央处理器接口模块通信连接,所述延时获取模块分别与所述发送选择模块、所述解析模块以及所述同步模块通信连接,所述同步模块分别与所述发送转发模块、所述延时获取模块、所述解析模块以及所述中央处理器接口模块通信连接,所述发送转发模块与所述发送选择模块通信连接,所述发送选择模块分别与所述解析模块、所述发送转发模块、所述媒体访问控制端口模块以及所述延时获取模块通信连接,所述中央处理器接口模块分别与所述解析模块、所述同步模块以及所述环网发送模块通信连接,所述环网发送模块分别与所述中央处理器接口模块以及所述发送选择模块通信连接;
所述媒体访问控制端口模块,用于将物理层接收的吉比特独立介质接口报文与所述现场可编程门阵列报文相互转换、将待发送报文的发送时刻对应的时间戳写入待发送报文中,以及将接收报文的接收时刻对应的时间戳发送至解析模块;
所述解析模块,用于对所述现场可编程门阵列报文进行过滤以及分类,并删除环网数据报文中的环网标签;
所述延时获取模块,用于向对应的媒体访问控制端口模块生成、发送或接收延时请求报文以及延时应答报文,以及根据所述延时请求报文、所述延时应答报文确定与前一相邻节点设备的链路时延,并将所述链路时延发送至所述同步模块;
所述同步模块,用于根据所述延时获取模块发送的链路时延以及接收的同步广播报文,进行时间同步;
所述发送转发模块,用于将所述同步广播报文、所述延时请求报文以及所述延时应答报文发送至所述发送选择模块;
所述发送选择模块,用于向所述媒体访问控制端口模块发送所述同步广播报文、所述环网数据报文、所述延时请求报文以及所述延时应答报文,并将各报文发送的时刻对应的时间戳发送至所述发送转发模块以及延时获取模块;
所述中央处理器接口模块,用于接收并向中央处理器发送配置数据,接收中央处理器发送的环网数据报文,向中央处理器发送环网数据报文,以及去除同步广播报文中的环网标签;
所述环网发送模块,用于向所述环网数据报文以及所述同步广播报文中添加新的环网标签。
第四方面,本申请实施例提供一种节点设备,所述节点设备包括:中央处理器以及前述实施例中所述的现场可编程门阵列,所述现场可编程门阵列与所述中央处理器通信连接。
第五方面,本申请实施例提供一种环网通讯***,所述***包括:N个节点设备,所述N个节点设备通过传输介质连接成环形网状,所述N个节点设备包括1个主节点设备以及N-1个从节点设备,并且,所述N个节点设备中的各节点设备分别包括现场可编程门阵列;
各所述从节点设备分别用于通过前述实施例中任一项所述的环网通讯的时间同步方法步骤进行时间同步。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现前述实施例中任一项所述的环网通讯的时间同步方法的步骤。
本申请实施例的有益效果包括,例如:
采用本申请提供的环网通讯的时间同步方法、可编程门阵列及环网通讯***,首先,各从节点通过与前一相邻节点之间交换延时请求报文、延时应答报文,确定了与前一相邻节点的链路时延,又通过该链路时延,以及从前一相邻节点接收的主节点发出的同步广播报文,确定了与主节点设备之间的时钟偏移值。这样,从节点仅需与相邻节点进行报文交换,就实现了与主节点设备的时间同步,减小了因链路状态复杂导致的链路时延的误差,降低了与主机进行时间同步时的报文通讯量,降低了主机的负荷。其次,本申请通过在FPGA中实现基于PTP的数据传输,以及各报文的解析与发送,由于FPGA具有高并行性,能够提升报文处理速度与精度,降低CPU的负荷。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的环网通讯***的结构示意图;
图2为本申请实施例提供的环网通讯的时间同步方法的时间同步过程示意图;
图3为本申请实施例提供的现场可编程门阵列的结构示意图;
图4为本申请实施例提供的环网通讯的时间同步方法的步骤流程示意图;
图5为本申请实施例提供的环网通讯的时间同步方法的又一步骤流程示意图;
图6为本申请实施例提供的环网通讯的时间同步方法的又一步骤流程示意图;
图7为本申请实施例提供的环网通讯的时间同步方法的又一步骤流程示意图;
图8为本申请实施例提供的环网通讯的时间同步方法的又一步骤流程示意图;
图9为本申请实施例提供的环网通讯的时间同步方法的又一步骤流程示意图;
图10为本申请实施例提供的节点设备的结构示意图;
图11为本申请实施例提供的环网通讯的时间同步装置的结构示意图。
图标:101-主节点设备;102-第一从节点设备;103-第二从节点设备;104-第三从节点设备;105-第四从节点设备;106-第五从节点设备;20-现场可编程门阵列;201a-第一媒体访问控制端口模块;201b-第二媒体访问控制端口模块;202a-第一解析模块;202b-第二解析模块;203a-第一延时获取模块;203b-第二延时获取模块;204-同步模块;205-发送转发模块;206a-第一发送选择模块;206b-第二发送选择模块;207-中央处理器接口模块;208-环网发送模块;30-中央处理器;40a-第一吉比特独立介质接口;40b-第二吉比特独立介质接口;50-环网通讯的时间同步装置;5001-发送模块;5002-处理模块;5003-接收模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
目前,在工业生产过程中,需要使用大量通过网络连接在一起的分布式终端设备,这些终端设备完成工作。在这种场景下,对于终端设备上的数据通讯***的实时性精度要求较高,因此,高实时性数据通讯***在工业领域的重要性日益提升。现有技术中虽存在多种时间同步算法,为了满足工业环网的微秒级甚至纳秒级的时间同步精度,PTP是目前网络内时间同步的最佳协议和方案。现有技术中,可以通过软件方式,或者软件与硬件相结合的方式实现基于PTP协议的数据传输。上述两种方式的主要区别在于报文中时间戳的获取方式,软件方式由协议栈的网络驱动层获取时间戳,软件与硬件相结合的方式由终端设备上的硬件设备提供时间戳。
但是,使用现有技术中的软件方式,会导致环网中主机收发报文的负荷增大,且距离主机越远的从机因为经过链路状态复杂,延迟无法控制和准确预计导致精度降低。使用现有技术中的软件与硬件相结合的方式,由于使用软件方式处理PTP,增加了报文处理延时,降低了同步精度,增加了CPU的负荷。
基于上述问题,申请人经研究,提出了一种环网通讯的时间同步方法、可编程门阵列及环网通讯***,从节点能够仅需通过与相邻节点进行报文交换,就实现了与主节点设备的时间同步,降低了主机的负荷。还通过在FPGA中实现基于PTP的数据传输,完全由硬件对各报文进行解析与发送,提升了报文处理速度与精度。
如下结合多个具体的应用示例,对本申请实施例提供的一种环网通讯的时间同步方法、可编程门阵列及环网通讯***进行解释说明。
图1所示为本申请实施例提供的环网通讯***的结构示意图,如图1所示,该***包括:N个节点设备,这N个节点设备通过传输介质连接成环形网状。其中,N个节点设备包括1个主节点设备101以及N-1个从节点设备,并且,N个节点设备中的各节点设备分别包括现场可编程门阵列,各从节点设备分别用于通过执行本申请实施例提供的环网通讯的时间同步方法步骤进行时间同步。下面,以***包括1个主节点设备101、5个从节点设备为例,对本***的工作原理进行详细说明。
请参阅图1,其中,黑色箭头标识的是主节点设备101发出的同步广播报文的顺时针传播路径,白色箭头标识的是主节点设备101发出的同步广播报文的逆时针传播路径,横纹箭头标识的是延时请求报文的传播路径,点状箭头标识的是延时应答报文的传播路径。
需要说明的是,本申请实施例中,主节点设备101在同步广播报文时,将该同步广播报文向相邻的两个从节点设备同时发送,示例性地,将向第五从节点设备106发送的同步广播报文成为顺时针同步广播报文,将向第一从节点设备102发送的报文称为逆时针同步广播报文,各从节点设备收到前一相邻从节点设备发送的顺时针同步广播报文或者逆时针同步广播报文后,将该报文向后一相邻从节点设备转发。某一从节点设备的前一相邻节点设备是指,在同步广播报文在***中传输时,向某一从节点设备发送同步广播报文的节点设备。例如,第三从节点设备104向第二从节点设备103转发顺时针同步广播报文时,第三从节点设备104就是第二从节点设备103的前一相邻从节点设备。而当第二从节点设备103向第三从节点设备104转发逆时针同步广播报文时,第二从节点设备103就是第三从节点设备104的前一相邻从节点设备。同样,某一从节点设备的后一相邻节点设备是指,在同步广播报文在***中传输时,接收某一从节点设备发送同步广播报文的节点设备。例如,第二从节点设备103向第一从节点设备102转发顺时针同步广播报文时,第一从节点设备102就是第二从节点设备103的后一相邻从节点设备。而当第二从节点设备103向第三从节点设备104转发逆时针同步广播报文时,第三从节点设备104就是第二从节点设备103的后一相邻从节点设备。
首先,确定环网通讯***中各节点设备中的主节点设备101,将其时钟的时间作为整个***中各从节点设备的参考时间,在本实施例中,各从节点设备通过与相邻节点设备的报文交换,获得该参考时间,并将自身时钟的时间修改为该参考时间,完成与主时钟的时间同步。需要说明的是,主节点设备101可以通过手工配置静态指定,也可以通过最佳主时钟(Best Master Clock,BMC)协议动态选举产生,本申请在此不做限定。
然后,第一从节点设备102可以向主节点设备101发送延时请求报文,主节点设备101收到该报文后,会向第一从节点设备102回送延时应答报文,第一从节点设备102根据延时请求报文以及延时应答报文中包含的各时间戳,计算得出自身与主节点设备101的链路时延。可以理解的是,主节点设备101也可以通过主动向第一从节点设备102发送延时请求报文,并接收第一从节点设备102发送的延时应答报文的过程,以同样的方式获得自身与第一从节点设备102的链路时延。另外,第二从节点设备103可以通过分别与第一从节点设备102、第三从节点设备104进行报文交换,获得与第一从节点设备102的链路时延以及与第三从节点设备104的链路时延。第三从节点设备104、第四从节点设备105、第五从节点设备106获得链路时延的过程与上述过程相同,本申请在此不再赘述。
最后,主节点设备101根据预设周期,向环网中相邻从节点设备发送同步广播报文,各从节点设备分别从前一相邻从节点设备接收同步广播报文。以第二从节点设备103为例,第二从节点设备103接收由第三从节点设备104发送是顺时针同步广播报文,或者由第一从节点设备102发送的逆时针同步广播报文,根据该同步广播报文中包含的时间戳,以及上述与第三从节点设备104的链路时延,或者与第一从节点设备102的链路时延,确定与主节点设备101的时钟偏移值,并根据该时钟偏移值修改自身时钟的时间,达到了与主节点设备101的时间同步。
下面,对各节点设备确定链路时延以及时钟偏移值的步骤做详细说明。
如图2所示,以第一从节点设备102为例,该节点设备每相隔固定的预设时间段,向前一相邻节点设备发送延时请求报文,并将该报文发出的时刻对应的时间戳标记为T1,即第一时间戳。可以理解的是,前一相邻节点设备可以是前一从节点设备,也可以是主节点设备101。在图2中,以前一相邻节点设备为主节点设备101为例进行说明。另外固定的预设时间段可以根据网络的时间同步需求设置,本申请在此不做限定。
主节点设备101收到第一从节点设备102发送的延时请求报文后,将收到该报文的时刻对应的时间戳标记为T2,即第六时间戳。然后,向第一从节点设备102发送延时应答报文,并将该报文发出的时刻对应的时间戳标记为T3,即第七时间戳,该延时应答报文中包含了T3与T2的差值,称为延时时差。
第一从节点设备102收到主节点设备101发送的延时应答报文后,将收到该报文的时刻对应的时间戳标记为T4,即第二时间戳。从而,第一从节点设备102可以根据公式:Tdelay=[(T4-T1)-(T3-T2)]/2算得链路时延Tdelay。可以理解的是,这里,主节点设备101也可以向第一从节点设备102主动发送延时请求报文,并将发送该报文的时刻对应的时间戳记为T1,并将从第一从节点设备102接收延时应答报文的时刻对应的时间戳即为T4,并根据延时应答报文中记录的T3-T2的值,计算自身与第一从节点设备102的链路时延。
之后,主节点设备101按照预设的实际间隔,广播同步广播报文,该同步广播报文中包含了该报文从主节点设备101发出的时刻对应的时间戳记为T5,即第三时间戳。第一从节点设备102接收到同步广播报文后,将收到该报文的时刻对应的时间戳记为T6,即第四时间戳。此时的时间轴上,在第一从节点设备102与主节点设备101时间同步,不存在时钟偏差值的情况下,T6是由T5+ΔT1的值,也就是主节点设备101发出同步广播报文的时刻,以及主节点设备101与第一从节点设备102的链路时延相加得到,即图2中的虚线报文路径。但当主节点设备101与第一从节点设备102不同步时,T6的值为T5+ΔT1+ΔT2,也就是虚线报文路径与时钟偏差值的和。其中,ΔT1是主节点设备101与第一从节点设备102的链路时延Tdelay,ΔT2是第一从节点设备102与主节点设备101的时钟偏差值。因此,通过公式:ΔT2=(Tdelay+T5)-T6计算得到第一从节点设备102与主节点设备101的时钟偏差值ΔT2。可以理解的是,当第一从节点设备102的时钟相对于主节点设备101延迟时,T6大于Tdelay+T5的值,计算得到的时钟偏差值ΔT2小于零。反之,当第一从节点设备102的时钟相对于主节点设备101提前时,T6小于Tdelay+T5的值,计算得到的时钟偏差值ΔT2大于零。
进一步地,第一从节点设备102根据计算得到的时钟偏差值ΔT2,对自身的时钟的时间进行调整。由于计算得到的ΔT2标识的是第一从节点设备102相对于主节点设备101的相对时钟偏差值,可以直接通过公式:Ts=Ts′+ΔT2修正第一从节点设备102进行时间同步,其中,Ts′是同步前第一从节点设备102时钟的时间,Ts是同步后第一从节点设备102时钟的时间。这样,从节点设备就完成了与主节点设备101的时间同步。
最后,第一从节点设备102将该同步广播报文转发至其后一从节点设备,也就是第二从节点设备103,并在该同步广播报文发出时,将同步广播报文的时间戳T5替换为该同步广播报文从第一从节点设备102发出的时刻对应的时间戳,即第五时间戳。这样,第二从节点设备103在与第一从节点设备102通过延时请求报文、延时应答报文的交换获得与第一从节点设备102的链路时延后,此时由于第一从节点设备102已经与主节点设备101完成了时间同步,第二从节点设备103可以将第一从节点设备102视为主节点设备101,通过接收其转发的同步广播报文进行时间同步,就达到了与主节点设备101的时间同步。如此依次传递,各从节点设备能够依次完成了与主节点设备101的时间同步。
可选地,上述主节点设备广播同步广播报文的过程,还可以是由主节点设备101向两侧的相邻从节点设备,例如第一从节点设备102、第五从节点设备106分别单播同步广播报文,第一从节点设备102、第五从节点设备106根据收到的同步广播报文,进行时间同步。然后,生成新的同步广播报文,发送至相邻从节点设备,例如,第二从节点设备103、第四从节点设备105。这样依次传递,最终两侧的同步广播报文都传递至第三从节点设备104,此时,第三从节点设备104可以根据报文额外的序列号判断并丢弃后收到的同步广播报文,这样,就完成了一次环网中所有节点设备的时间同步。
另外,可选地,某一从节点设备可以在收到前一节点设备发送的同步广播报文后,再对该节点发送延时请求报文,并根据该节点回送的延时应答报文,计算得到时钟偏移值。也就是说,收到同步广播报文与发送延时请求报文的顺序,本申请在此不做限定。
如图3所示,本申请实施例还提供一种现场可编程门阵列20,该现场可编程门阵列20包括:媒体访问控制(Media Access Control,简称MAC)端口模块、解析模块、延时获取模块、同步模块204、发送转发模块205、发送选择模块、中央处理器接口模块207以及环网发送模块208。其中,图中虚线路径是环网数据报文的路径,实线路径是PTP报文的路径。
该FPGA安装在本申请实施例提供的环网通讯***中各节点设备上。上述模块可以在FPGA烧写时确定的结构,不需要软件程序即可直接执行。
需要说明的是,媒体访问控制端口模块分别与解析模块以及发送选择模块通信连接,解析模块分别与延时获取模块、同步模块204、发送选择模块以及中央处理器接口模块207通信连接,延时获取模块分别与发送选择模块、解析模块以及同步模块204通信连接,同步模块204分别与发送转发模块205、延时获取模块、解析模块以及中央处理器接口模块207通信连接,发送转发模块205与发送选择模块通信连接,发送选择模块分别与解析模块、发送转发模块205、媒体访问控制端口模块以及延时获取模块通信连接,中央处理器接口模块207分别与解析模块、同步模块204以及环网发送模块208通信连接,环网发送模块208分别与中央处理器接口模块207以及发送选择模块通信连接。
其中,媒体访问控制端口模块,用于将物理层接收的吉比特独立介质接口报文转换为现场可编程门阵列报文、将待发送报文的发送时刻对应的时间戳写入待发送报文中,以及将接收报文的接收时刻对应的时间戳发送至解析模块。例如,在上述实施例中,主节点设备发送同步广播报文时,媒体访问控制端口模块在同步广播报文中加入第三时间戳,并在该时间戳对应的时刻,将同步广播报文发出。可选地,每个FPGA中包含第一媒体访问控制端口模块201a以及第二媒体访问控制端口模块201b,分别与相邻节点通信连接。示例性的,第二从节点设备的第一媒体访问控制端口模块201a与第一从节点设备的第二媒体访问控制端口模块201b通信连接,第二从节点设备的第二媒体访问控制端口模块201b与第三从节点设备的第一媒体访问控制端口模块201a通信连接,依次通信连接构成环网。另外,第一媒体访问控制端口模块201a用于接收第一吉比特独立介质接口40a发送的报文,第二媒体访问控制端口模块201b用于接收第二吉比特独立介质接口40b发送的报文。
解析模块,用于对现场可编程门阵列报文进行过滤以及分类,并删除环网数据报文中的环网标签。解析模块包含第一解析模块202a以及第二解析模块202b,当FPGA所在的节点设备收到报文后,媒体访问控制端口模块将报文发送至对应的解析模块,解析模块根据收到报文的源MAC地址、目的MAC地址、环网标签以及报文类型等字段,过滤掉无效的报文,并将报文进行分类。其中,源MAC地址是报文中发送该报文的节点设备的物理地址,目的MAC地址是报文中接收该报文的节点设备的物理地址,若该报文是环网数据报文,环网标签用于标识该报文的编号,报文类型用于标识该报文的类型,包括PTP报文、环网数据报文两种。示例性地,若解析模块解析后,得到该报文是PTP报文中的同步广播报文,则将该报文与收到该报文的时间戳一起发送至同步模块204。若该报文是延时请求报文或者延时应答报文,则将该报文与收到该报文的时间戳共同发送至对应的延时获取模块。若收到的报文是环网数据报文,则根据环网数据报文的具体类型和目的地址,确定是否需要修改环网标签,将其发送至中央处理器接口模块207,或者发送至发送转发模块205。
延时获取模块,用于向对应的媒体访问控制端口模块生成、发送或接收延时请求报文以及延时应答报文,以及根据延时请求报文、延时应答报文确定与前一相邻节点设备的链路时延,并将链路时延发送至同步模块204。也就是说,延时获取模块用于实现上述实施例中的计算链路时延的过程。需要说明的是,每个FPGA包括第一延时获取模块203a、第二延时获取模块203b,分别对应于不同的解析模块以及发送选择模块。另外,延时获取模块生成的延时请求报文以及延时应答报文是基于PTP生成的。
同步模块204,对于不同类型的节点设备,同步模块204的配置是不同的。当该节点设备是从节点设备时,同步模块204用于根据延时获取模块发送的链路时延以及接收的同步广播报文,进行时间同步。同步模块204收到延时获取模块发送的链路时延、解析模块发送的报文以及时间戳后,根据上述实施例中的公式,计算得到自身与主节点设备的时钟偏移值。当该节点设备是主节点设备时,同步模块204用于每隔固定的预设时间间隔,通过环网协议、PTP,生成并向环网中的从节点设备广播同步广播报文。
发送转发模块205,用于将同步广播报文、延时请求报文以及延时应答报文发送至发送选择模块。
发送选择模块,用于向媒体访问控制端口模块发送同步广播报文、环网数据报文、延时请求报文以及延时应答报文,并将各报文发送的时刻对应的时间戳发送至发送转发模块205以及延时获取模块。需要说明的是,每个FPGA中包括第一发送选择模块206a以及第二发送选择模块206b,上述时间戳由发送选择模块由对应的媒体访问控制端口模块获取。
中央处理器接口模块207,用于接收并向中央处理器30发送配置数据,接收中央处理器30发送的环网数据报文,向中央处理器30发送环网数据报文,以及去除同步广播报文中的环网标签。其中,中央处理器30发送的数据为源MAC地址以及目的MAC地址。当FPGA接收的报文是环网数据报文时,中央处理器接口模块207将其发送至中央处理器30。当中央处理器30发送环网数据报文时,中央处理器接口模块207将其发送至环网发送模块208。
环网发送模块208,用于向环网数据报文以及同步广播报文中添加新的环网标签。环网发送模块208收到来自CPU的环网数据报文或主节点设备发送的同步广播报文后,将本地环网标签增加1,得到新的环网标签,将其写入报文后,将该报文发送至第一发送选择模块206a以及第二发送选择模块206b。
示例性地,当第一从节点设备的媒体访问控制端口模块收到报文后,记录下收到报文的时刻对应的时间戳,并将其发送至解析模块。若解析报文解析出收到的报文是环网数据报文,则根据环网数据报文的具体类型和目的地址,确定是否需要接收或转发,若需要接收,去除环网标签后,将其发送至中央处理器接口模块207,由该模块将环网数据报文发送至中央处理器30。若需要转发,直接发送至另一媒体访问控制端口模块对应的发送选择模块。
若解析模块解析出该报文是延时请求报文或者延时应答报文,则将该报文与收到该报文的时间戳共同发送至对应的延时获取模块。延时获取模块根据延时请求报文与对应的延时应答报文计算得出链路时延后,将计算结果发送至同步模块。另外,若该报文是延时请求报文,则延时获取模块对应生成延时应答报文,并经由对应的发送选择模块,最终由对应的媒体访问控制端口模块发出至相邻节点设备。
若解析模块解析出该报文是同步广播报文,则该报文与收到该报文的时间戳一起发送至同步模块204。同步模块204根据与某一相邻节点设备的链路时延,以及由同一相邻节点设备转发的同步广播报文,计算时钟偏差值,并根据该时钟偏差值调整自身时钟的时间。
图4为本申请实施例提供的环网通讯的时间同步方法的步骤流程图,该方法应用于环网通讯***中各从节点设备中的现场可编程门阵列,环网通讯***包括N个节点设备,N个节点设备通过传输介质连接成环形网状,N个节点设备包括1个主节点设备以及N-1个从节点设备,并且,N个节点设备中的各节点设备分别包括现场可编程门阵列。如图4所示,该方法包括:
S301,向从节点设备的前一相邻节点设备发送延时请求报文,并记录延时请求报文发出的时刻对应的第一时间戳。
可选地,各从节点设备可以每间隔预设的时间段,由第一延时获取模块生成延时请求报文,经由第一发送选择模块转发,最终由第一媒体访问控制端口模块发送至与该从节点设备通信连接的前一相邻节点设备。该前一相邻节点设备可以是同步广播报文顺时针发送时,向该从节点设备转发同步广播报文侧的节点设备,也可以是同步广播报文逆时针发送时,向该从节点设备转发同步广播报文侧的节点设备。对于这两个节点设备,该从节点设备可以同时向两侧发送延时请求报文。另外,该前一节点设备可以还是主节点设备。另外,在上述第一媒体访问控制端口模块将延时请求报文发出时,对应的第一发送选择模块将记录该报文发出的时刻对应的第一时间戳。
可以理解的是,前一相邻节点设备也可以是同步广播报文逆时针发送时,向该节点设备转发同步广播报文的节点设备。此时,由第二延时获取模块生成延时请求报文,经由第二发送选择模块转发,最终由第二媒体访问控制端口模块发送至与该从节点设备通信连接的前一相邻节点设备,并记录该报文发出的时刻对应的第一时间戳。该第一时间戳可以有两个,对应于延时请求报文由该从节点设备向两侧的节点设备发出的时刻。由于该请求报文在FPGA中经由的路径相同,两个第一时间戳可能相同。
可选地,第一延时获取模块、第二延时获取模块可以同时生成延时请求报文,分别发送至两侧与其通信连接的前一相邻节点设备,发送的时刻对应的时间戳可以都记为第一时间戳。由于两侧的方法相同,在下述步骤中,将以第一延时获取模块侧为例进行说明。
S302,接收前一相邻节点设备发送的延时应答报文,并记录接收到延时应答报文的时刻对应的第二时间戳。
与前述实施例相同,该前一相邻节点设备可以是同步广播报文不同方向侧的节点设备,可以理解的是,由于与两侧的节点设备的网络链路长度可能不同,收到两侧前一相邻节点设备发送的延时应答报文的时刻对应的第二时间戳可能不同,下面,将以其中一侧的前一相邻节点设备的工作过程进行说明。
从节点设备的第一媒体访问控制端口模块收到前一相邻节点设备对发出的延时请求报文,回送延时应答报文时,该模块记录延时应答报文的进入时刻对应的第二时间戳。
之后,由第一解析模块根据该报文的源MAC地址、目的MAC地址、环网标签、报文类型等字段,解析出该报文的类型。依据收到报文的报文类型字段,若该报文是延时应答报文,则将该报文、第二时间戳发送至第一延时获取模块。
S303,根据延时应答报文中包含的延时时差、第一时间戳以及第二时间戳,确定从节点设备与前一相邻节点设备的链路时延。
第一延时获取模块收到第一解析模块发送的延时应答报文、第二时间戳后,根据前一相邻节点设备写入延时应答报文中的延时时差、发送延时请求报文时刻对应的第一时间戳,以及收到该延时应答报文时刻对应的第二时间戳,计算得出自身与前一节点设备的链路时延,并将计算得到的链路时延发送至同步模块。
其中,延时时差用于标识前一相邻节点设备收到该从节点设备发送的延时请求报文,至回送对应的延时应答报文之间间隔的延时。链路时延可解释为,该从节点设备与前一相邻节点设备单向进行报文通信的时延。
可以理解的是,该从节点设备与另一侧的前一相邻节点设备计算延时时差的过程与上述过程相同。
S304,接收主节点设备广播的同步广播报文,并根据同步广播报文中包含的第三时间戳、链路时延以及从节点设备接收到同步广播报文的时刻对应的第四时间戳,确定从节点设备与主节点设备之间的时钟偏移值,第三时间戳用于标识主节点设备发出同步广播报文的时刻。
每隔预设的时间间隔,主节点设备可以由发送转发模块生成同步广播报文并沿顺时针方向、逆时针方向分别发送至两侧的从节点设备。在同步广播报文发出主节点设备时,媒体访问控制端口模块将该同步广播报文发出的时刻对应的第三时间戳写入该同步广播报文。需要说明的是,该同步广播报文可以是基于PTP生成的。
该从节点设备收到顺时针方向的前一节点设备转发的同步广播报文后,由第一解析模块进行解析,根据报文类型字段得到该报文是同步广播报文后,根据环网标签字段判断是否是首次收到该同步广播报文,若不是,则说明已从逆时针方向的前一节点设备收到该报文,将该报文丢弃。否则,将该同步广播报文,以及收到该同步广播报文的时刻对应的第四时间戳,发送至同步模块,根据该同步广播报文中包含的第三时间戳,以及由第一延时获取模块发送的链路时延,计算得到了自身与主节点设备的时钟偏移值。
可以理解的是,该节点设备还可以接受逆时针方向的同步广播报文,其计算时钟偏移值的过程与上述过程相同。
S305,根据时钟偏移值,对从节点设备进行时间同步。
从节点设备计算得到的时钟偏移值,可解释为从节点设备与主节点设备时钟显示的时间之间的偏差。因此,从节点设备可以根据该时钟偏移值,对自身时钟的时间进行调整,与主节点设备进行时间同步。
在本实施例中,各从节点通过与前一相邻节点之间交换延时请求报文、延时应答报文,确定了与前一相邻节点的链路时延,又通过该链路时延,以及从两侧的前一相邻节点接收的主节点发出的同步广播报文,确定了与主节点设备之间的时钟偏移值。这样,从节点仅需与相邻节点进行报文交换,就实现了与主节点设备的时间同步,减小了因链路状态复杂导致的链路时延的误差,降低了与主机进行时间同步时的报文通讯量,降低了主机的负荷。另外,由于FPGA具有高并行性,通过在FPGA中实现基于PTP的数据传输,以及各报文的解析与发送,能够提升报文处理速度与精度,降低了CPU的负荷。
可选地,如图5所示,上述步骤S305中,根据时钟偏移值,对从节点设备进行时间同步之后,还包括如下步骤:
S401,将同步广播报文中的第三时间戳修改为第五时间戳。
从节点设备的同步模块,根据同步广播报文以及链路时延计算得出时钟偏移值后,将该同步广播报文通过发送转发模块,经由第二发送选择模块,最终由第二媒体访问控制端口模块发送至后一相邻节点设备。第二媒体访问控制端口模块发送该同步广播报文时,将该报文的第三时间戳修改为第五时间戳。
S402,在第五时间戳对应的时刻,将同步广播报文转发至从节点设备的后一相邻节点设备。
可以理解的是,与前述实施例中相同,后一相邻节点设备可以是同步广播报文逆时针发送时,接受该节点设备转发同步广播报文侧的节点设备,也可以是同步广播报文顺时针发送时,接受该节点设备转发同步广播报文侧的节点设备。也就是说,对于这两侧的节点设备,该节点设备都可以向其转发同步广播报文。
第五时间戳可解释为,同步广播报文由该从节点发出的时间。由于此时该从节点设备已经与主节点设备完成了时间同步,与主时钟之间不存在时钟偏差值。此时,该从节点设备对于后一相邻节点设备来说,可视为主节点设备。
在本实施例中,将第三时间戳修改为第五时间戳,使得后一相邻节点设备通过直接与该从节点设备进行报文交换,就实现了与主节点设备之间的时间同步,避免了现有技术中,各从节点设备都与主节点设备直接报文交换,导致主节点设备报文收发量过大的问题。
可选地,如图6所示,上述步骤S305中,根据时钟偏移值,对从节点设备进行时间同步,可由下述步骤S501至步骤S503实现。
S501,获取时钟当前的时间值。
可以理解的是,时钟是节点设备的FPGA中独立的时钟模块,FPGA中各模块都能够获取该时钟的时间。这里,由从节点设备的同步模块获得自身FPGA时钟的时间值。
S502,将当前时间值与时钟偏移值相加,得到修正时间值。
由于时钟偏移值标识的是从节点设备时钟的时间与主节点设备时钟的时间的相对偏差,因此,将时钟偏移值与从节点设备时钟的当前时间值相加,就可以得到与主节点设备进行时间同步的修正时间值。该过程可用公式:Ts=Ts′+ΔT2表示,其中,Ts′是同步前该从节点设备时钟的时间,Ts是同步后该从节点设备时钟的时间,ΔT2是时钟偏移值。
S503,将时钟的时间值调整为修正时间值。
从节点设备将自身时钟的时间调整为该修正时间值,就达到了与主节点设备的时间同步。
在本实施例中,通过根据时钟偏移值,得到修正时间值,并据此调整从节点时钟的时间值,完成了从节点设备与主节点设备的时间同步。使得同步广播报文每经过一个从节点,就完成了一个从节点设备的时间同步,那么该从节点设备的后一节点设备就可以以该从节点设备时钟的时间为基准,从而仅通过相邻节点之间的交换,就可以实现与主节点设备的时间同步。
可选地,如图7所示,上述步骤S303中,根据延时应答报文中包含的延时时差、第一时间戳以及第二时间戳,确定从节点设备与前一相邻节点设备的链路时延,可由下述步骤S601至步骤S602实现:
S601,将第二时间戳与第一时间戳相减,得到端时延。
第二时间戳可以对应于,从节点设备收到前一相邻节点设备发送的延时应答报文的时刻,第一时间戳可以对应于从节点设备向前一相邻节点设备发送的发送延时请求报文的时刻。第二时间戳与第一时间戳的差值,为端时延,可以解释为从节点设备由发出延时请求报文的时刻至收到延时应答报文的时间,也就是报文在从节点设备与前一相邻节点设备之间的网络上往返的总时延。
S602,将端时延与延时时差相减,得到中间时延。
由于延时应答报文是由前一相邻节点设备生成的,用于应答从节点设备发出的延时请求报文。因此,接收到延时请求报文后,前一相邻节点设备对其进行分析,并生成延时应答报文后,才能将其发出,中间的时延,称为延时时差。
将报文在从节点设备与前一相邻节点设备之间的网络上往返的总时延,也就是端时延,减去前一相邻节点设备的延时时差,得到报文在从节点设备与前一相邻节点设备之间的链路上往返的时延,也就是中间时延。
S603,将中间时延减半,得到从节点设备与前一相邻节点设备的链路时延。
将报文在从节点设备与前一相邻节点设备之间的链路上往返的时延,也就是中间时延减半,就得到了报文在从节点设备与前一相邻节点设备之间的单向链路上的时延,也就是链路时延。
需要说明的是,上述步骤S601至步骤S602由从节点设备的延时获取模块完成。
在本实施例中,通过从节点设备收到前一相邻节点设备发送的延时应答报文的时刻对应的第二时间戳、从节点设备向前一相邻节点设备发送的发送延时请求报文的时刻对应的第一时间戳,以及延时时差,计算得到了链路时延。通过这种方式,使从节点设备仅通过一次报文交换,就明确了与前一相邻节点设备之间在没有延时的情况下,报文单向传播所需时长。
可选地,如图8所示,上述步骤S304中,根据同步广播报文中包含的第三时间戳、链路时延以及从节点设备接收到同步广播报文的时刻对应的第四时间戳,确定从节点设备与主节点设备之间的时钟偏移值,可由下述步骤S701至步骤S702实现。
S701,将第三时间戳与链路时延相加,得到时间同步差值。
其中,第三时间戳对应于同步广播报文由主节点设备发出的时刻,由主节点设备的媒体访问控制端口模块在报文发出时,将其发出时刻写入同步广播报文。
时间同步差值可解释为,主节点设备,或者与主节点设备时间同步后的从节点设备,与收到同步广播报文的该从节点设备,在时间同步时,该从节点设备应该收到同步广播报文的时间。
S702,将时间同步差值与第四时间戳相减,得到从节点设备与主节点设备之间的时钟偏移值。
若收到同步广播报文的该从节点设备,与相邻的转发同步广播报文的前一从节点设备或者广播该同步广播报文的主节点设备存在时钟偏差,那么该从节点设备收到该同步广播报文对应的第四时间戳就不是上述时间同步差值,将上述时间同步差值与第四时间戳相减,就得到了该从节点设备与主节点设备之间的时钟偏移值。
示例性地,若该从节点设备时钟的时间相比于主节点设备时钟的时间提前,该时钟偏移值为正值。若该从节点设备时钟的时间相比于主节点设备时钟的时间延后,该时钟偏移值为负值。
在本实施例中,从节点设备通过接收主节点设备时间同步后的相邻节点设备转发的同步广播报文,或者直接从相邻的主节点设备接收的同步广播报文,能够结合前述实施例中的链路时延,计算得到主节点设备的时钟偏移值。从节点设备仅通过接收相邻节点设备发送的同步广播报文,就能根据计算出的时钟偏移值进行时间同步,降低了网络负荷。
可选地,如图9所示,本申请实施例提供的环网通讯的时间同步方法,还包括:
步骤S801,接收从节点设备的后一相邻节点设备发送的延时请求报文,并记录接收到延时请求报文的时刻对应的第六时间戳。
可选地,若某一从节点设备作为环网中另一从节点设备的前一相邻节点,收到后一相邻节点设备发送的延时请求报文时,该从节点设备将由媒体访问控制端口模块记录收到该延时请求报文的时刻对应的时间戳,可以标记为第六时间戳。
步骤S802,向后一相邻节点设备发送延时应答报文,并记录延时应答报文发出的时刻对应的第七时间戳,延时应答报文包括:延时时差,延时时差由第七时间戳与第六时间戳的差值确定。
该从节点设备的解析模块对该报文进行解析,解析得到该报文为延时请求报文后,将其发送至延时获取模块。之后,发送转发模块生成延时应答报文,经由发送选择模块,最终由媒体访问控制端口模块将该延时应答模块发出,并记录该报文发出的时刻对应的第七时间戳。
另外,媒体访问控制端口模块在将该报文发出,记录下第七时间戳的同时,将第七时间戳与第六时间戳的时间差值写入延时应答报文,作为延时时差发送至后一相邻节点设备。
在本实施例中,通过说明从节点设备作为前一相邻节点设备时,将延时时差写入延时应答报文的过程,明确了延时时差的计算,使得后一节点设备能通过延时应答报文获得前一节点设备的发送时延以及链路时延,降低了网络负荷。
请参阅图10,本申请实施例还提供一种节点设备,该节点设备包括:中央处理器30以及前述实施例所述的现场可编程门阵列20,其中,现场可编程门阵列20与中央处理器30通信连接,进行数据交换。
中央处理器30用于根据现场可编程门阵列20的需求,向现场可编程门阵列20提供报文中需要写入的源MAC地址以及目的MAC地址。
现场可编程门阵列20用于根据中央处理器30提供的数据,生成PTP报文。
请参阅图11,本申请实施例还提供一种环网通讯的时间同步装置50,该装置包括:
发送模块5001,用于向从节点设备的前一相邻节点设备发送延时请求报文,并记录延时请求报文发出的时刻对应的第一时间戳。
接收模块5003,用于接收前一相邻节点设备发送的延时应答报文,并记录接收到延时应答报文的时刻对应的第二时间戳。
处理模块5002,用于根据延时应答报文中包含的延时时差、第一时间戳以及第二时间戳,确定从节点设备与前一相邻节点设备的链路时延。
处理模块5002还用于,接收主节点设备广播的同步广播报文,并根据同步广播报文中包含的第三时间戳、链路时延以及从节点设备接收到同步广播报文的时刻对应的第四时间戳,确定从节点设备与主节点设备之间的时钟偏移值,第三时间戳用于标识主节点设备发出同步广播报文的时刻。
处理模块5002还用于,根据时钟偏移值,对从节点设备进行时间同步。
处理模块5002还用于,将同步广播报文中的第三时间戳修改为第五时间戳;在第五时间戳对应的时刻,将同步广播报文转发至从节点设备的后一相邻节点设备。
处理模块5002具体还用于,获取时钟当前的时间值;将当前时间值与时钟偏移值相加,得到修正时间值;将时钟的时间值调整为修正时间值。
处理模块5002具体还用于,将第二时间戳与第一时间戳相减,得到端时延;将端时延与延时时差相减,得到中间时延;将中间时延减半,得到从节点设备与前一相邻节点设备的链路时延。
处理模块5002具体还用于,将第三时间戳与链路时延相加,得到时间同步差值;将时间同步差值与第四时间戳相减,得到从节点设备与主节点设备之间的时钟偏移值。
处理模块5002具体还用于,接收从节点设备的后一相邻节点设备发送的延时请求报文,并记录接收到延时请求报文的时刻对应的第六时间戳;向后一相邻节点设备发送延时应答报文,并记录延时应答报文发出的时刻对应的第七时间戳;延时应答报文包括:延时时差,延时时差由第七时间戳与第六时间戳的差值确定。
可选地,本申请还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种环网通讯的时间同步方法,其特征在于,应用于环网通讯***中各从节点设备中的现场可编程门阵列,所述环网通讯***包括N个节点设备,所述N个节点设备通过传输介质连接成环形网状,所述N个节点设备包括1个主节点设备以及N-1个从节点设备,并且,所述N个节点设备中的各节点设备分别包括现场可编程门阵列;
所述方法包括:
向所述从节点设备的前一相邻节点设备发送延时请求报文,并记录所述延时请求报文发出的时刻对应的第一时间戳;
接收所述前一相邻节点设备发送的延时应答报文,并记录接收到所述延时应答报文的时刻对应的第二时间戳;
根据所述延时应答报文中包含的延时时差、所述第一时间戳以及所述第二时间戳,确定所述从节点设备与所述前一相邻节点设备的链路时延;
接收所述主节点设备广播的同步广播报文,并根据所述同步广播报文中包含的第三时间戳、所述链路时延以及所述从节点设备接收到所述同步广播报文的时刻对应的第四时间戳,确定所述从节点设备与主节点设备之间的时钟偏移值,所述第三时间戳用于标识所述主节点设备发出所述同步广播报文的时刻;
根据所述时钟偏移值,对所述从节点设备进行时间同步;
所述根据所述时钟偏移值,对所述从节点设备进行时间同步之后,还包括:
将所述同步广播报文中的所述第三时间戳修改为第五时间戳;
在所述第五时间戳对应的时刻,将所述同步广播报文转发至所述从节点设备的后一相邻节点设备。
2.根据权利要求1所述的环网通讯的时间同步方法,其特征在于,所述根据所述时钟偏移值,对所述从节点设备进行时间同步,包括:
获取时钟当前的时间值;
将所述当前时间值与所述时钟偏移值相加,得到修正时间值;
将时钟的时间值调整为所述修正时间值。
3.根据权利要求1所述的环网通讯的时间同步方法,其特征在于,所述根据所述延时应答报文中包含的延时时差、所述第一时间戳以及所述第二时间戳,确定所述从节点设备与所述前一相邻节点设备的链路时延,包括:
将所述第二时间戳与所述第一时间戳相减,得到端时延;
将所述端时延与所述延时时差相减,得到中间时延;
将所述中间时延减半,得到所述从节点设备与所述前一相邻节点设备的链路时延。
4.根据权利要求1所述的环网通讯的时间同步方法,其特征在于,所述根据所述同步广播报文中包含的第三时间戳、所述链路时延以及所述从节点设备接收到所述同步广播报文的时刻对应的第四时间戳,确定所述从节点设备与主节点设备之间的时钟偏移值,包括:
将所述第三时间戳与所述链路时延相加,得到时间同步差值;
将所述时间同步差值与所述第四时间戳相减,得到所述从节点设备与主节点设备之间的时钟偏移值。
5.根据权利要求1所述的环网通讯的时间同步方法,其特征在于,所述方法还包括:
接收所述从节点设备的后一相邻节点设备发送的延时请求报文,并记录接收到所述延时请求报文的时刻对应的第六时间戳;
向所述后一相邻节点设备发送延时应答报文,并记录所述延时应答报文发出的时刻对应的第七时间戳;
所述延时应答报文包括:延时时差,所述延时时差由所述第七时间戳与所述第六时间戳的差值确定。
6.一种现场可编程门阵列,其特征在于,所述现场可编程门阵列包括:媒体访问控制端口模块、解析模块、延时获取模块、同步模块、发送转发模块、发送选择模块、中央处理器接口模块以及环网发送模块;其中,所述现场可编程门阵列为环网通讯***中各从节点设备中的现场可编程门阵列,所述环网通讯***包括N个节点设备,所述N个节点设备包括1个主节点设备以及N-1个从节点设备;
所述媒体访问控制端口模块分别与所述解析模块以及所述发送选择模块通信连接,所述解析模块分别与所述延时获取模块、所述同步模块、所述发送选择模块以及所述中央处理器接口模块通信连接,所述延时获取模块分别与所述发送选择模块、所述解析模块以及所述同步模块通信连接,所述同步模块分别与所述发送转发模块、所述延时获取模块、所述解析模块以及所述中央处理器接口模块通信连接,所述发送转发模块与所述发送选择模块通信连接,所述发送选择模块分别与所述解析模块、所述发送转发模块、所述媒体访问控制端口模块以及所述延时获取模块通信连接,所述中央处理器接口模块分别与所述解析模块、所述同步模块以及所述环网发送模块通信连接,所述环网发送模块分别与所述中央处理器接口模块以及所述发送选择模块通信连接;
所述媒体访问控制端口模块,用于将物理层接收的吉比特独立介质接口报文与所述现场可编程门阵列报文相互转换、将待发送报文的发送时刻对应的时间戳写入待发送报文中,以及将接收报文的接收时刻对应的时间戳发送至解析模块;
所述解析模块,用于对所述现场可编程门阵列报文进行过滤以及分类,并删除环网数据报文中的环网标签;
所述延时获取模块,用于向对应的媒体访问控制端口模块生成、发送或接收延时请求报文以及延时应答报文,以及根据所述延时请求报文、所述延时应答报文确定与前一相邻节点设备的链路时延,并将所述链路时延发送至所述同步模块;
所述同步模块,用于根据所述延时获取模块发送的链路时延以及接收的同步广播报文,进行时间同步;
所述发送转发模块,用于将所述同步广播报文、所述延时请求报文以及所述延时应答报文发送至所述发送选择模块;
所述发送选择模块,用于向所述媒体访问控制端口模块发送所述同步广播报文、所述环网数据报文、所述延时请求报文以及所述延时应答报文,并将各报文发送的时刻对应的时间戳发送至所述发送转发模块以及延时获取模块;
所述中央处理器接口模块,用于接收并向中央处理器发送配置数据,接收中央处理器发送的环网数据报文,向中央处理器发送环网数据报文,以及去除同步广播报文中的环网标签;
所述环网发送模块,用于向所述环网数据报文以及所述同步广播报文中添加新的环网标签;
所述媒体访问控制端口模块,还用于将所述同步广播报文中的第三时间戳修改为第五时间戳;在所述第五时间戳对应的时刻,将所述同步广播报文转发至所述从节点设备的后一相邻节点设备;其中,所述第三时间戳用于标识所述主节点设备发出所述同步广播报文的时刻。
7.一种节点设备,其特征在于,所述节点设备包括:中央处理器以及权利要求6所述的现场可编程门阵列,所述现场可编程门阵列与所述中央处理器通信连接。
8.一种环网通讯***,其特征在于,所述***包括:N个节点设备,所述N个节点设备通过传输介质连接成环形网状,所述N个节点设备包括1个主节点设备以及N-1个从节点设备,并且,所述N个节点设备中的各节点设备分别包括现场可编程门阵列;
各所述从节点设备分别用于通过权利要求1-5中任一项所述的环网通讯的时间同步方法步骤进行时间同步。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1-5中任一项所述的环网通讯的时间同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111600620.5A CN114401067B (zh) | 2021-12-24 | 2021-12-24 | 环网通讯的时间同步方法、可编程门阵列及环网通讯*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111600620.5A CN114401067B (zh) | 2021-12-24 | 2021-12-24 | 环网通讯的时间同步方法、可编程门阵列及环网通讯*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114401067A CN114401067A (zh) | 2022-04-26 |
CN114401067B true CN114401067B (zh) | 2024-06-11 |
Family
ID=81226465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111600620.5A Active CN114401067B (zh) | 2021-12-24 | 2021-12-24 | 环网通讯的时间同步方法、可编程门阵列及环网通讯*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114401067B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024069643A1 (en) * | 2022-09-28 | 2024-04-04 | Coreel Technologies India Private Limited | Method and a system for creating multi-port network synchronization bridge |
CN115348660B (zh) * | 2022-10-20 | 2022-12-20 | 石家庄科林电气股份有限公司 | 电能表对时方法、电能表及存储介质 |
CN115580542B (zh) * | 2022-12-06 | 2023-03-03 | 苏州浪潮智能科技有限公司 | 一种多以太网交换机的信息交换方法及相关装置 |
CN116208289B (zh) * | 2023-04-28 | 2023-07-21 | 北京邮电大学 | 基于白盒交换机的时间同步方法、装置及电子设备 |
CN116938379B (zh) * | 2023-09-18 | 2023-12-15 | 湖北芯擎科技有限公司 | 时间同步的方法、装置、电子设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238056A (zh) * | 2010-04-30 | 2011-11-09 | 中兴通讯股份有限公司 | 环网保护拓扑结构自动发现方法及装置 |
CN102833061A (zh) * | 2012-08-31 | 2012-12-19 | 北京东土科技股份有限公司 | 基于无缝冗余环网的提高时钟精度的方法及节点 |
CN102833062A (zh) * | 2012-09-25 | 2012-12-19 | 广东电网公司珠海供电局 | 智能变电站ieee1588主从时钟同步报文对时方法及*** |
CN105471691A (zh) * | 2014-06-17 | 2016-04-06 | 上海联影医疗科技有限公司 | 拓扑网络的同步控制方法、装置及*** |
CN105978652A (zh) * | 2016-04-27 | 2016-09-28 | 刘巍 | 冗余以太网的同步对时设备、***及方法 |
CN110113242A (zh) * | 2019-05-07 | 2019-08-09 | 南京磐能电力科技股份有限公司 | 环形通信网络中多节点同步采样和数据传输方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8879586B2 (en) * | 2012-12-20 | 2014-11-04 | Broadcom Corporation | Inband timestamping |
-
2021
- 2021-12-24 CN CN202111600620.5A patent/CN114401067B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238056A (zh) * | 2010-04-30 | 2011-11-09 | 中兴通讯股份有限公司 | 环网保护拓扑结构自动发现方法及装置 |
CN102833061A (zh) * | 2012-08-31 | 2012-12-19 | 北京东土科技股份有限公司 | 基于无缝冗余环网的提高时钟精度的方法及节点 |
CN102833062A (zh) * | 2012-09-25 | 2012-12-19 | 广东电网公司珠海供电局 | 智能变电站ieee1588主从时钟同步报文对时方法及*** |
CN105471691A (zh) * | 2014-06-17 | 2016-04-06 | 上海联影医疗科技有限公司 | 拓扑网络的同步控制方法、装置及*** |
CN105978652A (zh) * | 2016-04-27 | 2016-09-28 | 刘巍 | 冗余以太网的同步对时设备、***及方法 |
CN110113242A (zh) * | 2019-05-07 | 2019-08-09 | 南京磐能电力科技股份有限公司 | 环形通信网络中多节点同步采样和数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114401067A (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114401067B (zh) | 环网通讯的时间同步方法、可编程门阵列及环网通讯*** | |
US9628209B2 (en) | Time synchronization in distributed network testing equipment | |
US9742514B2 (en) | Method, apparatus, and system for generating timestamp | |
US8879586B2 (en) | Inband timestamping | |
CN102104476B (zh) | 时钟同步装置及方法 | |
US9698926B2 (en) | Distributed two-step clock | |
US8018972B2 (en) | Timing over packet performance | |
CN111800213A (zh) | 面向高速tte级联网络1588同步方法、***、装置 | |
US9485045B2 (en) | Communication control equipment | |
US20160149658A1 (en) | Method and device for detecting fault in synchronization link | |
CN111385048A (zh) | 一种时间同步方法及*** | |
WO2005096794A2 (en) | Method and apparatus for precisely measuring a packet transmission time | |
JP5127482B2 (ja) | タイミング同期方法、同期装置、同期システム及び同期プログラム | |
WO2010057398A1 (zh) | 透传时钟的实现装置和方法 | |
CN113259038A (zh) | 时间同步方法、节点、装置及存储介质 | |
EP3260949B1 (en) | An integrated circuit and method for processing synchronized network frames using a hardware synchronization circuit | |
EP2709298A1 (en) | Synchronization method and electronic apparatus using redundant links | |
FI119310B (fi) | Menetelmä ja laitteisto aikaleimainformaation siirtämiseksi | |
JP6227888B2 (ja) | 通信システム、同期システム、通信方法 | |
WO2015125439A1 (ja) | 通信システム、無線通信装置及び無線通信方法 | |
CN113014515B (zh) | 一种支持异构网络时间同步时延补偿的方法和交换机 | |
CN110266422B (zh) | 中间时钟设备报文驻留时间处理方法、装置、设备及介质 | |
EP3806391A1 (en) | Synchronization information transmission method, sending end device, receiving end device and storage medium | |
EP2750339A1 (en) | Synchronization method and system for traversing the synchronous network of third-party | |
CN106161121B (zh) | 一种报文转发时延的测量方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |