掌桥专利:专业的专利平台
掌桥专利
首页

一种基于现场可编程门阵列的IEEE1588时钟同步方法及系统

文献发布时间:2024-04-18 19:58:30


一种基于现场可编程门阵列的IEEE1588时钟同步方法及系统

技术领域

本发明涉及网络时钟同步技术领域,尤其涉及一种基于现场可编程门阵列的IEEE1588时钟同步方法及系统。

背景技术

智能网卡时间戳技术起源于计算机和网络技术的发展,随着数据处理的需求越来越高,对数据准确性和完整性的要求也越来越高,智能网卡时间戳技术应运而生。

时钟同步是实现时钟系统内各个节点时间统一的关键技术。在网络时钟同步领域的研究中,相关学者确立了时钟同步技术主要研究思路,一方面通过信息交互的方式对传输延时进行测量,利用测量得到的偏差进行主从时钟调节。另一方面,消除传输过程路径不对称和频率抖动带来的误差,提高时钟同步精度。目前工程中常用的时钟同步技术主要有卫星导航系统授时、NTP协议对时和PTP协议对时。

卫星导航系统授时是一种超高精度时钟同步技术,但只能在使用全球卫星定位系统的基础上才能实现,成本较高。

NTP协议是一种通过软件实现的对时方式,它的实现基于UDP/IP协议,不需要硬件辅助,属于互联网协议的一种。NTP通过节点间多次收发携带时间信息的报文,根据报文收发时间戳计算出节点间的链路延时,进而对节点时钟进行同步。这种方式简单易操作,灵活性较高。但仅能达到毫秒级的同步精度,已无法满足当前时钟同步领域的工程应用要求,同时NTP协议网络传输过程中的延时抖动问题对同步精度也造成了一定的影响。

IEEE1588协议网络测量和控制系统的精确时钟同步协议简称PTP协议。PTP协议是在NTP协议的理论基础上,通过报文收发的方式获取时间戳信息,同时采用硬件辅助的方式,以此提高同步精度。相较于NTP协议,PTP协议通过硬件辅助选择了更下层的时间戳获取位置。在TCP/IP协议栈中,NTP协议采用了在应用层标记时间戳获得时间信息,而PTP协议是通过硬件辅助在物理层与MAC层之间的媒体独立接口处标记时间戳获得时间信息。NTP协议选择了距离实际网络最远的应用层标记时间戳,而数据包通过网络进入TCP/IP协议栈时,每一层在对数据包的处理过程中都会产生一定的延时,这种延时具有不确定性,严重影响实际同步精度。PTP协议选用硬件辅助的方式在更靠近实际网络的物理层附近获取时间戳信息,有效避免了数据包收发过程中通过协议栈各层所造成的不确定性误差,大幅度提高了同步精度。

现有技术方案设计了一种基于FPGA的IEEE1588协议时钟同步系统,包括寄存器管理模块(RGM)、实时时间模块(RTC)、发送帧解析与处理模块(GMII_TX)、接收帧解析和处理模块(GMII_RX)和秒脉冲输出模块(PPS)。该系统能够有效实现网络时钟同步,但无法实现并行数据传输,时间戳的获取、插入时间长,整个同步流程繁琐,延时时间长。

发明内容

鉴于此,本发明实施例提供了一种基于现场可编程门阵列的IEEE1588时钟同步方法及系统,以消除或改善现有技术中存在的一个或更多个缺陷,解决现有时钟同步方案存在的无法实现并行数据传输、时间戳的获取/插入时间长、整个同步流程繁琐、延时时间长的问题。

一方面,本发明提供了一种基于现场可编程门阵列的IEEE1588时钟同步方法,其特征在于,所述方法在现场可编程门阵列中执行,所述现场可编程门阵列包括收发包数据处理模块、以太网控制模块、物理芯片模块和寄存器模块,所述现场可编程门阵列与上位机通过总线模块进行连接,所述方法包括以下步骤:

所述收发包数据处理模块接收由所述上位机发送的以太网封装包;所述以太网封装包通过所述总线模块发送至所述收发包数据处理模块;

所述收发包数据处理模块对所述以太网封装包进行解析,得到封装中的类型信息以及以太网数据帧,根据所述类型信息判断进行单步同步或双步同步,将同步类型和所述以太网数据帧一同发送给所述以太网控制模块;

若为单步同步,所述以太网控制模块从预设的以太网接口处获取时间戳,并将所述时间戳插入所述以太网数据帧;若为双步同步,所述以太网控制模块将从预设以太网接口处获取时间戳存入所述寄存器模块;

经由所述总线模块接收所述上位机的时间戳调取命令,发送所述时间戳,在所述上位机中计算时间偏差和延时偏移量;

接收所述上位机的计算得到的所述时间偏差和所述延时偏移量,以调整IEEE1588时钟,实现同步。

在本发明的一些实施例中,在所述上位机中对以太网数据帧进行封装,得到所述以太网封装包,通过AXI接口将所述以太网封装包写入PIO接口中传输至所述现场可编程门阵列。

在本发明的一些实施例中,所述以太网封装包包括封装头和以太网数据帧,所述封装头包括反馈标识字段、槽索引字段、长度字段、类型字段、标志字段、填充字段。

在本发明的一些实施例中,若为单步同步,所述以太网控制模块从预设的以太网接口处获取时间戳,并将所述时间戳插入所述以太网数据帧,还包括:

所述以太网控制模块将获取的时间戳与通道补偿延时时间之和作为插入时间戳,根据所述以太网封装包的类型将所述插入时间戳插入至指定位置;所述以太网封装包的类型包括用户数据报协议包、带虚拟局域网标签的用户数据报协议包、裸包和带虚拟局域网标签的裸包。

在本发明的一些实施例中,当所述以太网封装包为所述用户数据报协议包类型,还需指定用户数据报协议的校验和的位置,以用于更新所述用户数据报协议的校验和。

另一方面,本发明提供一种基于现场可编程门阵列的IEEE1588时钟同步系统,其特征在于,所述系统包括以下部分:

上位机,用于发送以太网数据帧,计算并发送时间偏差和延时偏移量;

封装模块,用于对所述上位机发送的以太网数据帧进行封装,生成以太网数据包;

总线模块,用于传输所述上位机和收发包数据处理模块、寄存器模块之间的数据;

收发包数据处理模块,用于接收并解析所述以太网数据包,将同步类型和所述以太网数据帧发送至以太网控制模块;

以太网控制模块,用于收发所述以太网数据帧,并根据所述同步类型获取、插入时间戳或将所述时间戳存储至寄存器模块;

物理芯片模块,模拟物理层,用于收发所述以太网数据帧,实现数字信号和模拟信号之间的转换;

寄存器模块,用于存储所述以太网数据帧和所述时间戳,供所述上位机进行数据调取,并接收所述上位机计算得到的时间偏差和延时偏移量,以实现时钟同步。

在本发明的一些实施例中,所述物理芯片模块还设有光模块,所述光模块用于收发光信号,实现光信号和电信号之间的转换。

在本发明的一些实施例中,所述总线模块采用PCIE高速串行计算机扩展总线标准,所述总线模块和现场可编程门阵列均采用Verilog汇编语言进行程序编写。

在本发明的一些实施例中,所述以太网控制模块采用84位的时间戳,高48位为秒域,中间32位为纳秒域,低4位为分数纳秒域。

另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中提及的任意一项所述方法的步骤。

本发明的有益效果至少是:

本发明提供一种基于现场可编程门阵列的IEEE1588时钟同步方法及系统,将上位机发送的以太网数据帧封装,经由总线模块将以太网的封装包写入FPGA;收发包数据处理模块对以太网封装包进行解析,得到类型信息和真实以太网数据帧,根据类型信息判断进行单步同步或双步同步,将同步类型和以太网数据帧发送给以太网控制模块;若为单步同步,以太网控制模块获取时间戳,并将时间戳插入以太网数据帧;若为双步同步,以太网控制模块获取时间戳存入寄存器模块;上位机调取存储在寄存器模块中的时间戳,计算时间偏差和延时偏移量并下传至FPGA,FPGA根据时间偏差和延时偏移量调整IEEE1588时钟,实现同步。本发明提供的方法采用PCIE+FPGA架构,仅用一种编程语言,能够实现高效地并行数据处理;使用类型字段指定以太网封装包类型、单双步同步类型和插入位置,无需过滤1588协议报文及解析,整体流程简单且快速;时钟戳表示形式为84位,加入分数纳秒,提升时间精度,时钟同步精度更高。

本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。

本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1为本发明一实施例中基于现场可编程门阵列的IEEE1588时钟同步方法的步骤示意图。

图2为本发明一实施例中IEEE1588时钟协议中三种时间戳获取方法的结构示意图。

图3为本发明一实施例中现有同步系统的结构示意图。

图4为本发明一实施例中基于现场可编程门阵列的IEEE1588时钟同步系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。

在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。

在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。

这里需要强调的是,在下文中提及的各步骤标记并不是对各步骤先后顺序的限定,而应当理解为可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

为了解决现有时钟同步方案存在的无法实现并行数据传输、时间戳的获取/插入时间长、整个同步流程繁琐、延时时间长的问题,本发明提供一种基于现场可编程门阵列的IEEE1588时钟同步方法,该方法在现场可编程门阵列(Field Programmable GateArray,FPGA)中执行,其中,现场可编程门阵列又包括收发包数据处理模块、以太网控制模块、物理芯片模块和寄存器模块,现场可编程门阵列与上位机通过总线模块进行连接,如图1所示,该方法包括以下步骤S101~S105:

步骤S101:收发包数据处理模块接收由上位机发送的以太网封装包。其中,以太网封装包通过总线模块发送至收发包数据处理模块。

步骤S102:收发包数据处理模块对以太网封装包进行解析,得到封装格式中的类型信息以及以太网数据帧,根据类型信息判断进行单步同步或双步同步,将同步类型和以太网数据帧一同发送给以太网控制模块。

步骤S103:若为单步同步,以太网控制模块从预设的以太网接口处获取时间戳,并将时间戳插入以太网数据帧;若为双步同步,以太网控制模块将从预设以太网接口处获取时间戳存入寄存器模块。

步骤S104:经由总线模块接收上位机的时间戳调取命令,发送时间戳,在上位机中计算时间偏差和延时偏移量。

步骤S105:接收上位机的计算得到的时间偏差和延时偏移量,以调整IEEE1588时钟,实现同步。

在步骤S101中,首先将上位机发送的以太网数据帧进行封装,得到以太网封装包。

在一些实施例中,将以太网数据帧封装成带header的格式,即以太网封装包包括封装头和以太网数据帧。

在一些实施例中,封装头为10个字节,包括反馈标识字段、槽索引字段、长度字段、类型字段、标志字段和填充字段。其中,反馈标识字段位宽为2字节,槽索引字段位宽为2字节,长度字段位宽为2字节,类型字段位宽为1字节,标志字段位宽为1字节,填充字段位宽为2字节,共10个字节,具体的参数和功能如表1所示:

表1

在一些实施例中,通过AXI接口将封装好的以太网封装包写入PIO接口中传输至现场可编程门阵列。

在一些实施例中,总线模块采用PCIE高速串行计算机扩展总线标准,总线模块和现场可编程门阵列可以采用相同的Verilog汇编语言进行程序编写。

在步骤S102中,FPGA中的收发包数据处理模块对接收到的以太网封装包进行解析,得到封装中包含的类型信息以及真实的以太网数据帧。

在一些实施例中,根据类型信息判断单步同步或双步同步,如表2所示,为以太网封装格式中类型字段的进一步参数定义。

表2

根据表2以及IEEE1588时钟的协议规定可知,type[1]表示单步同步,type[0]表示双步同步。

将判断得到的同步类型和解析得到的以太网数据帧一同发送给以太网控制模块(MAC模块)。

在步骤S103中,以太网控制模块根据同步类型获取、插入时间戳或将时间戳存储至寄存器模块。具体的,若type[1],单步同步时,收发包数据处理模块生成插入时间戳的信号,并将插入时间戳的信号和当前时间戳发送至以太网控制模块,以太网控制模块将捕捉以太网数据帧在SDF后的时间戳,并将其与通道补偿延时时间相加,得到最终的插入时间戳,根据以太网封装包的类型将插入时间戳插入至指定位置。

其中,如表2所示,以太网封装包的类型包括用户数据报协议(User DatagramProtocol,UDP)包、带虚拟局域网(VLAN)标签的用户数据报协议包、裸包和带虚拟局域网标签的裸包。根据以太网封装包的类型指定不同的时间戳插入位置,如表2从左至右第4~6列,对应于各类型以太网封装包的时间戳插入位置。

在一些实施例中,当以太网封装包为用户数据报协议包(UPD包)类型时,还需指定UDP的校验和的位置,以用于更新UDP的校验和。

若type[0],双步同步时,收发包数据处理模块生成获取时间戳的信号,并将获取时间戳的信号和当前时间戳发送至以太网控制模块,以太网控制模块将捕捉以太网数据帧在SerDes接口出包时的时间戳,并将该时间戳存储至寄存器模块,便于后续上位机调取。

在一些实施例中,当前时间戳从预设的以太网接口处获取,预设的以太网接口采用MII接口或RMII接口。

IEEE1588协议主要通过报文交互的方式获取节点时钟发送和接收时间,以此测量主从时钟偏差与链路延时,其中关于时间戳的标记方式共有三种:(1)基于PTP协议的网络层软件标记方式;(2)支持PTP协议的物理芯片硬件标记方式;(3)基于支持PTP协议的微控制器/基于FPGA芯片在MII/RMII接口处标记方式。其中方式(1)和方式(2)分别采用纯软件和纯硬件的方式实现时间戳的标记,而方式(3)采用的是软件与硬件相辅助的方式标记时间戳。如图2所示,为三种方式在网络协议栈标记时间戳的位置。

根据图2可以看出报文从网络协议栈的顶层应用层传输到底层物理层(PHY),受操作系统和网络协议栈的影响,报文自上而下存在一定的传输延时和抖动,因此,越靠近底层标记时间戳,得到的时间信息越准确,精度越高。

对三种时间戳标记方式进行比较,优劣体现如下:

(1)网络层时间戳标记:在网络驱动层标记时间戳,仅采用软件方式即可实现,成本低,操作方便。采用该方法能够直接在网络驱动层获取报文收发时间戳,但报文在向底层传输的过程中会产生一定的延时与抖动,因此获取的时间戳精度不高。通常采用网络层时间戳标记方式的同步精度仅有微秒级,最高可达10微秒。

(2)PHY层时间戳标记:在PHY层标记时间戳需要外接物理芯片,同时该类芯片必须支持PTP协议的运行。这类PHY芯片能够自动识别PTP报文并标记时间戳,由于时间戳标记位置在最底层,因此同步精度为纳秒级,最低可达10纳秒。但是支持PTP协议的PHY芯片更换不便,且成本较高。

(3)MII/RMII接口时间戳标记:基于支持PTP协议的微控制器/基于FPGA芯片在MAC层与PHY层之间的MII/RMII接口处标记时间戳,是一种软硬件结合的实现方式。由于标记位置靠近底层,因此该方式受传输延时和抖动的影响较小,同步精度较高,一般可达100纳秒,符合绝大多数工程需求。

基于上述比较,本发明采用MII/RMII接口时间戳标记。

在步骤S104中,上位机通过总线模块调取存储在寄存器模块中的时间戳,计算时间偏差和延时偏移量,再通过总线模块将计算得到的时间偏差和延时偏移量下传至现场可编程门阵列。

在步骤S105中,现场可编程门阵列根据上位机的计算得到的时间偏差和延时偏移量,调整IEEE1588时钟,最终实现同步。

与基于现场可编程门阵列的IEEE1588时钟同步方法相应的,本发明还提供一种基于现场可编程门阵列的IEEE1588时钟同步系统。

为了更好地体现出本发明设计的基于现场可编程门阵列的IEEE1588时钟同步系统的技术效果,在下文引入现有IEEE1588协议时钟同步系统的技术方案,作进一步对比。

如图3所示,现有同步系统通过软硬件结合的方式,在GMII或者MII接口处设计逻辑单元,监测接口处的以太网数据帧。硬件逻辑系统由寄存器管理模块(RGM)、实时时间模块(RTC)、发送帧解析与处理模块(GMII_TX)、接收帧解析和处理模块(GMII_RX)和秒脉冲输出模块(PPS)组成,具体的:

寄存器管理模块(RGM):在实现IEEE1588协议的硬件逻辑中,需要配置或读取多个寄存器的值。设计寄存器管理模块RGM,给ARM提供统一的读写接口。寄存器读取RTC模块发送到RGM模块中的实时硬件时间戳;寄存器写入RTC模块接收包的时间戳;寄存器配置单双步标志信号,GMII_TX模块检测到双步配置信号上升沿时,获取RGM模块中的单双步配置信息。实时时钟模块(RTC模块):RTC模块的输入时钟频率为125MHz,在每个时钟的上升沿,RTC内部的纳秒域寄存器增加8ns,当该寄存器的数值满10

发送帧解析与处理模块(GMII_TX模块):识别MAC IP核发过来的以太网帧,从中过滤出IEEE1588事件报文,根据软件协议栈的配置,硬件逻辑单元决定是否将获取到的硬件时间戳插入到事件报文的指定位置。在单步模式下,需增加CRC校验功能。由于硬件时间戳的插入导致以太网数据帧发生了改变,需要对其重新进行CRC校验来保证以太网数据帧FCS字段的准确性。在双步模式下,GMII_TX不需要将硬件时间戳插入到报文中,仅需缓存事件报文的sequenceId(2Bytes)和硬件时间戳(8Bytes)并送入ARM。

接收帧解析与处理模块(GMII_RX模块):记录所有报文到达时钟端口的硬件时间戳。从PHY端数据输入开始,将MAC端数据输出信号延长8个时钟周期,并在8个时钟周期下增加8个字节的硬件时间戳信息。识别PTP模式下的Pdelay_Req报文,并将该报文到达的硬件时间戳通过模块间的交互信号送入GMII_TX模块。

秒脉冲输出模块(PPS模块):负责检测64位硬件时间戳秒域最低位的变化:当秒域最低位由高变低或者由低变高时,输出一个秒脉冲信号。时间间隔测量仪通过比对主从时钟秒脉冲信号的相位差来测量主从时钟之间同步的精度。

基于上述对现有同步系统各模块的说明,对现有同步系统的缺陷进行总结,即得到本发明所要解决的技术问题:

寄存器管理模块:使用ARM与FPGA接口进行交互,数据位宽为8位,RGM模块中定义的寄存器位宽是32位,加上一个字节的地址数据,写入一个寄存器数据需要5个时钟周期;数据传输速率慢;ARM+FPGA架构在程序的编写集成和烧录上与只使用FPGA架构更加复杂,需要两种编程语言。

实时时钟模块:输入时钟频率为125MHz,在每个时钟的上升沿,RTC内部的纳秒域寄存器增加8ns,时钟同步的精度受限于实时时间的精度。对外输出32位秒域硬件时间戳和32位纳秒域硬件时间戳。时钟同步的偏移量的调整精度受限于RTC模块对外输出的时间戳表现形式。

发送帧解析与处理模块模块:软件协议栈需要单独配置获取/插入时间戳标志信号,发送的PTP报文类型只能是UDP报文,报文格式单一,仅应用于时钟同步报文的发送与判断,对其他类型的PTP报文/普通以太网帧发送兼容性不高,会出现误判的情况。且需要对每一个接收到的数据报文进行过滤,判断是否为事件报文,同时对每一个报文字节计数,当解析为单步模式下的PTP报文,需要FPGA逻辑单元将硬件时间戳插入到报文的指定字段,同时逻辑计算CRC值并更新。但是对非单步模式下的PTP报文则重复计算。因此在PTP报文的发送和解析上,步骤过于繁琐,导致数据处理延时时间过长。

MAC IP模块:接口数据位宽为8位,数据传输慢。

接收帧解析与处理模块模块:对接收到的PTP报文需要FPGA逻辑单元的解析过滤,当报文到达GMII接口处,需要延时8个时钟周期获取硬件时间戳,并写入寄存器中供ARM接口交互,计算延时偏差等同步时钟。不能并行传输,数据处理时间较长。

基于此,本发明提供一种基于现场可编程门阵列的IEEE1588时钟同步系统,如图4所示,该系统包括上位机、封装模块、总线模块、收发包数据处理模块、以太网控制模块、物理芯片模块和寄存器模块,具体的:

上位机:用于发送以太网数据帧,并在后续调取时间戳计算时间偏差和延时偏移量,以调整时钟进行同步。

封装模块:用于对上位机发送的以太网数据帧进行封装,生成以太网数据包。封装格式与上文基于现场可编程门阵列的IEEE1588时钟同步方法中说明的一致,此处不再赘述。

总线模块:用于传输上位机和收发包数据处理模块、寄存器模块之间的数据。如图4所示,总线模块采用PCIE高速串行计算机扩展总线标准,包括PCIE PHY模块和PCIE模块。封装后的以太网数据包通过AXI接口经由总线模块输入FPGA。与现有技术相比,本发明采用PCIE+FPGA架构,与ARM+FPGA架构需要两种编程语言的情况相比,本发明仅需使用一种Verilog汇编语言即可实现,FPGA并行处理更加高效。同时,本发明的PCIE+FPGA架构,接口相互交互,数据位宽为32bit,不需要地址数据,读写寄存器仅一个时钟周期。

收发包数据处理模块:用于接收并解析以太网数据包,将同步类型和以太网数据帧发送至以太网控制模块。在10个字节的封装头中使用1个字节类型(type)字段指定以太网帧的类型、是否获得时间戳、是否插入时间戳、指定插入时间戳的位置。type字段一个比特表示获取/插入硬件时间戳,对每一个PTP报文帧都能获取/插入硬件时间戳,可以减少对PTP报文的解析判断流程,相比于现有同步系统,数据处理流程简单,时间延时短,对普通的以太网帧发送不影响,兼容性高。

以太网控制模块(MAC),用于收发以太网数据帧,并根据同步类型获取、插入时间戳或将时间戳存储至寄存器模块,本发明以太网控制模块数据接口为128bit,比现有同步系统中发送数据位宽8位传输的更快,且以太网控制模块本身支持PTP的单双步获取/插入时间戳的功能。

具体的,若type[1],单步同步时,收发包数据处理模块生成插入时间戳的信号,并将插入时间戳的信号和当前时间戳发送至以太网控制模块,以太网控制模块将捕捉以太网数据帧在SDF后的时间戳,并将其与通道补偿延时时间相加,得到最终的插入时间戳,根据以太网封装包的类型将插入时间戳插入至指定位置。对UDP类型的以太网帧,还需要指定UDP校验和的位置,用以后续更新UDP校验和。插入完成后,以太网控制模块会自动计算更新CRC,重新计算FCS;不需要对每一个报文计算CRC,也不需要通过FPGA逻辑计算,减少了FPGA内部资源使用,减少了计算时间,获取的时间戳更加精确。

若type[0],双步同步时,收发包数据处理模块生成获取时间戳的信号,并将获取时间戳的信号和当前时间戳发送至以太网控制模块,以太网控制模块将捕捉以太网数据帧在SerDes接口出包时的时间戳,并将该时间戳存储至寄存器模块,便于后续上位机调取。双步同步仅占一个时钟周期,节省数据处理时间。

与现有同步系统相比,本发明提供的同步系统无需对每一个以太网帧包进行字节计数,过滤PTP报文。在硬件逻辑计算校验和方面,本发明对每一个PTP报文帧都能获得/插入时间戳,扩展了PTP报文可发送类型的多样性,减少对PTP报文的解析判断流程,时间延时短,数据包输出更快;对普通以太网帧发送不会产生影响,兼容性高。时间戳的获取、插入和CRC的校验和计算全部在以太网控制模块中处理,不需要对单步时间戳添加CRC校验计算,获取的时间戳更加精确,FCS计算的更快,减少了代码量,架构后更加简单。

进一步的,在本发明中,输入时钟频率采用800MHz;以太网控制模块采用84位的时间戳,高48位为秒域,中间32位为纳秒域,低4位为分数纳秒域。对比现有同步系统中时间戳使用的32位的秒域,32位的纳秒域,本发明的时间戳的调整精度更加精确。

物理芯片模块(PHY),模拟物理层,用于收发以太网数据帧,实现数字信号和模拟信号之间的转换。其中,物理芯片模块还设有光模块,用于收发光信号,实现光信号和电信号之间的转换。

寄存器模块,用于存储以太网数据帧和时间戳,供上位机进行数据调取,并接收上位机计算得到的时间偏差和延时偏移量,以实现时钟同步。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现基于现场可编程门阵列的IEEE1588时钟同步方法的步骤。

与上述方法相应地,本发明还提供了一种设备,该设备包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该设备实现如前所述方法的步骤。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述边缘计算服务器部署方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。

综上所述,本发明提供一种基于现场可编程门阵列的IEEE1588时钟同步方法及系统,将上位机发送的以太网数据帧封装,经由总线模块将以太网的封装包写入FPGA;收发包数据处理模块对以太网封装包进行解析,得到类型信息和真实以太网数据帧,根据类型信息判断进行单步同步或双步同步,将同步类型和以太网数据帧发送给以太网控制模块;若为单步同步,以太网控制模块获取时间戳,并将时间戳插入以太网数据帧;若为双步同步,以太网控制模块获取时间戳存入寄存器模块;上位机调取存储在寄存器模块中的时间戳,计算时间偏差和延时偏移量并下传至FPGA,FPGA根据时间偏差和延时偏移量调整IEEE1588时钟,实现同步。本发明提供的方法采用PCIE+FPGA架构,仅用一种编程语言,能够实现高效地并行数据处理;使用类型字段指定以太网封装包类型、单双步同步类型和插入位置,无需过滤1588协议报文及解析,整体流程简单且快速;时钟戳表示形式为84位,加入分数纳秒,提升时间精度,时钟同步精度更高。

本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 基于DW8051核的现场可编程门阵列片上可编程系统
  • 基于DW8051核的现场可编程门阵列片上可编程系统
技术分类

06120116505775