一种基于FPGA的系统内时钟同步和时间同步的方法及装置与流程

文档序号:19729438发布日期:2020-01-18 03:46阅读:502来源:国知局
一种基于FPGA的系统内时钟同步和时间同步的方法及装置与流程

本申请涉及通信技术领域,尤其涉及一种基于fpga的系统内时钟同步和时间同步的方法及装置。



背景技术:

随着通信技术的不断发展,在通信系统内部的多个子系统之间都需要实现时钟同步和时间同步的功能。目前,有些系统内的时钟同步和时间同步是通过不同的路径实现的;还有些系统内只能实现时钟同步和时间同步中的其中一种。但是,现有的系统内时间同步的实现过程较为复杂,且其内部的子系统之间的管脚和连线较多,增加了系统设计的硬件成本。

目前,fpga(fieldprogrammablegatearray)技术在通信技术领域已经得到了广泛的应用,很多通信系统内均包含有fpga电路模块,因此,本申请采用fpga来实现时钟同步和时间同步。



技术实现要素:

本申请实施例提供一种基于fpga的系统内时钟同步和时间同步的方法及装置,以解决现有技术中各个子系统之间的管脚和连线较多,且不能同时实现系统时钟同步和时间同步的问题。

为解决上述技术问题,本申请实施例是这样实现的:

第一方面,本申请实施例提供了一种基于fpga的系统内时钟同步和时间同步的方法,所述方法包括:

通过fpga接收主子系统发送的参考时钟,并输出与所述参考时钟同频的第一时钟,以更新从子系统的系统时钟;

基于与所述参考时钟同频的第一时钟进行比特信息的采样,并解析所述采样的比特信息对应的数据帧;

根据所述解析后的数据帧提取出所述主子系统的系统时间;

在所述主子系统的系统时间的基础上加上线路延迟时间后,输出与所述主子系统的系统时间实时同步的第一时间,以更新所述从子系统的系统时间。

优选地,所述参考时钟是以预设码型由所述主子系统通过fpga以预设码型串行发送的系统时钟。

优选地,所述通过fpga接收主子系统发送的参考时钟,并输出与所述参考时钟同频的第一时钟,具体包括:

通过d触发器接收所述主子系统发送的参考时钟,并通过锁相环pll倍频后输出与所述参考时钟同频的第一时钟。

优选地,所述基于与所述参考时钟同频的第一时钟进行比特信息的采样,具体包括:

基于与所述参考时钟同频的第一时钟确定所述第一时钟的上升沿以及所述上升沿的相位;

采集所述上升沿的相位后四位的中间位置所对应的比特信息。

优选地,所述解析所述采样的比特信息对应的数据帧,具体包括:

在所述比特信息对应的数据帧中进行帧头的搜索,并基于所述帧头,解析所述帧头对应的帧。

优选地,所述根据所述解析后的数据帧提取出所述主子系统的系统时间之前,所述方法还包括:

在所述帧的帧尾添加crc校验码,以判断是否从所述帧中提取出所述主子系统的系统时间。

第二方面,本申请实施例还提供了一种基于fpga的系统内时钟同步和时间同步的装置,所述装置包括:

时钟同步模块,用于通过fpga接收主子系统发送的参考时钟,并输出与所述参考时钟同频的第一时钟,以更新从子系统的系统时钟;

时间采样模块,用于基于与所述参考时钟同频的第一时钟进行帧信息的采样,并解析所述采样的帧信息;

时间提取模块,用于根据所述解析后的帧信息提取出所述主子系统的系统时间;

时间同步模块,用于在所述主子系统的系统时间的基础上加上线路延迟时间后,输出与所述主子系统的系统时间实时同步的第一时间,以更新所述从子系统的系统时间。

优选地,所述时钟同步模块,具体用于:

通过d触发器接收所述主子系统发送的参考时钟,并通过锁相环pll倍频后输出与所述参考时钟同频的第一时钟。

优选地,所述时间采样模块,具体用于:

基于与所述参考时钟同频的第一时钟确定所述第一时钟的上升沿以及所述上升沿的相位;

采集所述上升沿的相位后四位的中间位置所对应的比特信息。

优选地,所述时间采样模块,具体用于:

在所述比特信息对应的数据帧中进行帧头的搜索,并基于所述帧头,解析所述帧头对应的帧。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

在本申请实施例中,首先,从子系统通过fpga接收到主子系统发送的参考时钟,输出与该参考时钟同频的第一时钟,以更新从子系统的系统时钟;然后,基于与该参考时钟同频的第一时钟进行帧信息的采样,并解析采样的帧信息;紧接着,从解析后的帧信息中提取出主子系统的系统时间;最后,在主子系统的系统时间的基础上加上线路延迟时间后,输出与主子系统的系统时间实时同步的第一时间,以更新从子系统的系统时间。本申请通过fpga发送和接收系统时钟和系统时间即可同时实现主子系统和从子系统之间的时钟同步和时间同步,而且时钟同步和时间同步的实现方法也很简单可靠。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种基于fpga的系统内时钟同步和时间同步的方法的流程示意图;

图2为本申请实施例提供的通信系统内部主子系统和多个从子系统之间的连接示意图;

图3为本申请实施例提供的从子系统的系统时钟生成示意图;

图4为本申请实施例提供的从子系统的搜帧示意图;

图5为本申请实施例提供的一种基于fpga的系统内时钟同步和时间同步的装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

实施例1

为解决现有技术中各个子系统之间的管脚和连线较多,且不能同时实现系统时钟同步和时间同步的问题,本申请实施例1提供了一种基于fpga的系统内时钟同步和时间同步的方法。

为便于描述本申请实施例1,以下详细说明均以本申请的一种基于fpga的系统内时钟同步和时间同步的方法的执行主体为通信系统内部的多个从子系统为例,对本申请的一种基于fpga的系统内时钟同步和时间同步的方法进行介绍。

请参见说明书附图1,图1为本申请实施例1提供的一种基于fpga的系统内时钟同步和时间同步的方法的流程示意图,该方法具体包括如下步骤:

步骤11:通过fpga接收主子系统发送的参考时钟,并输出与所述参考时钟同频的第一时钟,以更新从子系统的系统时钟;

需要说明的是,通信系统内部可以有一个主子系统和一个/多个从子系统。主子系统和每个从子系统内均包含有fpga电路模块,该fpga电路模块可应用于处理系统时钟和系统时间。

如图2所示为本申请实施例提供的通信系统内部主子系统和多个从子系统之间的连接示意图。

本申请实施例中,主子系统与每个从子系统之间仅仅通过一根通信连线连接,且主子系统仅通过一个管脚便可以将输出信号分成多路信号后分别发送给每个子系统,从而能够最大化地减少各个子系统之间的管脚和连线的数量,进而能够节省系统设计的硬件成本。

需要说明的是,在网络的数据通信中,网络设备先将“位”组成一个个的字节,然后将这些字节封装成帧,最后在网络上以帧为传送单位进行数据传输,可以保证数据传输的可靠性。

其中,“位”也称为“比特(bit)”或“信息量”,是指在网络中传输的数据流。在二进制数系统中,每个0或1就是一个位,位是数据存储的最小单位。

字节(byte)是用于计量存储容量和传输容量的一种计量单位,一个字节等于八位二进制,即1byte=8bit。八位二进制数最小为00000000,最大为11111111。

帧(frame)是当计算机进行数据传输时产生的,即数据在网络上是以帧为单位进行传输的。一帧可以为任意字节数,技术人员可以根据实际应用场景进行适应性定义。

本申请实施例中,在一种实施方式中,所述参考时钟是以预设码型由所述主子系统通过fpga以预设码型串行发送的系统时钟。

本申请实施例中,若主子系统想要发送一bit信息给从子系统,首先需要通过一个预设码型发出。在一个例子中,假设一bit信息的预设码型为0011xxxx,则主子系统通过fpga按照从左往右的顺序将以隐含系统时钟的码型为0011xxxx的一bit信息串行发送给从子系统。

需要说明的是,fpga内部包含有d触发器、i/o驱动引脚、锁相环pll(phaselockedloop)等。其中,锁相环pll可以完成时钟高精度、低抖动的倍频和分频等功能。

本申请实施例中,在一种实施方式中,通过fpga接收主子系统发送的参考时钟,并输出与所述参考时钟同频的第一时钟,具体包括:

通过d触发器接收所述主子系统发送的参考时钟,并通过锁相环pll倍频后输出与所述参考时钟同频的第一时钟。

在一个例子中,基于上述例子中一bit信息的预设码型为0011xxxx,为8拍,由于该bit信息的前4拍固定为0011,其中间位置含有一个上升沿(0→1),而后4拍为重复的一个bitx,因此,每8拍的一bit信息中必包含一个上升沿,且该上升沿的频率为系统时钟频率的1/8倍。即当系统时钟频率为125m时,上升沿的频率为15.625m。

如图3所示为本申请实施例提供的从子系统的系统时钟生成示意图。

在一个例子中,基于上述例子中一bit信息的预设码型为0011xxxx,从子系统通过fpga的d触发器上的时钟管脚clk接收主子系统以预设码型0011xxxx发送来的一bit信息,d触发器的反向输出端与输入端d相连,那么在该8拍bit信息的上升沿之后,反向输出端q都会进行一次翻转,这样使得反向输出端输出的时钟频率为15.625m/2=7.8125m,即通过d触发器输出了频率为系统时钟频率的1/16倍的时钟。紧接着,将该时钟从fpga的锁相环pll的时钟输入管脚clkin,由于该锁相环pll可以实现输出高频且稳定的时钟信号,因此,将该时钟的频率倍频16倍后输出的时钟频率为125m,与主子系统的系统时钟完全同频,也就是从子系统的系统时钟更新为主子系统发送的参考时钟,即主子系统和从子系统之间完成了时钟同步。

步骤12:基于与所述参考时钟同频的第一时钟进行比特信息的采样,并解析所述比特信息对应的数据帧。

本申请实施例中,在一种实施方式中,基于与所述参考时钟同频的第一时钟进行比特信息的采样,具体包括:

基于与所述参考时钟同频的第一时钟确定所述第一时钟的上升沿以及所述上升沿的相位;

采集所述上升沿的相位后四位的中间位置所对应的比特信息。

在一个例子中,基于上述例子中一bit信息的预设码型为0011xxxx,当从子系统采集到该预设码型中0011中间位置的上升沿时,便可以知晓该上升沿后面必定包含某个bit重复4拍的xxxx信息,而且根据该上升沿可以确定出该上升沿在该比特信息中的相位。基于该上升沿的相位向后延四位,就是xxxx的中间位置,也就是第5拍,这样就可以可靠的采集到该比特信息。其中,该比特信息以帧的形式进行传输。

需要说明的是,所述数据帧(dataframe)是物理网络传输过程中的一种固定模式,所有的待传输的信息都会被封装到有固定格式的帧内,并进行发送。数据帧包括三个部分,分别为帧头、数据部分、帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如用户自定义的任意格式的帧等。

本申请实施例中,在一种实施方式中,解析所述比特信息对应的数据帧,具体包括:

在所述比特信息对应的数据帧中进行帧头的搜索,并基于所述帧头,解析所述帧头对应的帧。

需要说明的是,主子系统发送的信息都是按照固定的帧格式发送的,帧格式中有一个特定的帧头,帧头与帧中其它字节有固定的区别标志。

如图4所示为本申请实施例提供的从子系统的搜帧示意图。

在一个例子中,帧头为10个bit的固定二进制1(8个bit扩增为10个bit),也即二进制11_1111_1111(其中涉及到的下划线是起分隔作用的,没有其它含义,下述同)。那么,除该帧头以外的其它字节,如原先是8个bit的一字节(b7b6b7b4_b3b2b1b0),在其最高位之上,固定加上两个二进制0,成为00_b7b6b7b4_b3b2b1b0(其中,每一位bn代表1个二进制bit),即加上两个0后,该8个bit的字节就变为了10个bit;其它字节同理。

需要说明的是,这里的每一个bit都是按照前述的8拍预设码型发送的。也即先发送b0,再发送b1,也就是主子系统向从子系统从左往右发送0011b0b0b0b0,0011b1b1b1b1。这样一来,任何非帧头的地方都不可能出现连续10个bit的二进制1。因此,当从子系统在数据帧中搜索到连续10个bit的二进制1时,说明从子系统搜索到了该数据帧的帧头,进而能够解析出该帧头对应的帧。

需要说明的是,主子系统可以按照低位先发送,高位后发送的串行发送方式将比特信息对应的数据帧发送给从子系统。也可以按照相反的顺序发送,只要主、从子系统之间传输的信息一致即可,对此本申请实施例中不作具体限定。

步骤13:根据所述解析后的数据帧提取出所述主子系统的系统时间。

本申请实施例中,根据所述解析后的数据帧提取出所述主子系统的系统时间,具体包括:从上述解析出的与帧头对应的帧中提取出主子系统的系统时间。

本申请实施例中,主子系统发送数据帧时,在发出帧头的时刻便所存下当时的系统时间,并将实时的系统时间放入数据帧中一并发送给从子系统。因此,当从子系统接收完一帧时,可以从该帧中提取出其中的系统时间。

本申请实施例中,在一种实施方式中,根据所述解析后的数据帧提取出所述主子系统的系统时间之前,所述方法还包括:

在所述帧的帧尾添加crc校验码,以判断是否从所述帧中提取出所述主子系统的系统时间。

本申请实施例中,为了保证传输数据的可靠性,可以在帧尾加上crc校验码。若该帧通过了crc校验,则从子系统从该帧中提取出系统时间;若该帧没有通过crc校验,则从子系统将该帧丢弃掉。

步骤14:在所述主子系统的系统时间的基础上加上线路延迟时间后,输出与所述主子系统的系统时间实时同步的第一时间,以更新所述从子系统的系统时间。

本申请实施例中,所述线路延迟时间,实际上就是主子系统到从子系统的连线延迟时间加上一帧数据的发送时间,两者是可以精确计算的,即是固定的。

本申请实施例中,在从子系统提取出的系统时间的基础上加上线路延迟时间后,即得到了当前主子系统真正的系统时间,然后用该系统时间更新从子系统的系统时间。也就是从子系统的系统时间更新为主子系统实时的系统时间,即主子系统和从子系统之间完成了时间同步。

本申请实施例中,在系统时间更新的时刻,从子系统就得到了主子系统的系统时间。对于系统时间更新时刻之外的其余时间,从子系统和主子系统一样,都可以用系统时钟来驱动系统时间的自加,由于125m的周期为8ns,故每1拍加8ns。而由于主子系统和从子系统有同步的系统时钟,故系统时间的自加也是完全一样的速度,因而主子系统和从子系统也达到了同步的系统时间。

需要说明的是,如果主子系统的系统时间不是由自身的系统时钟自加产生的,而是由上游传送给它的,依然可以按前面描述的方法,通过重复不断的数据帧将系统时间发送给从子系统,此处不再赘述。在上游没更新系统时间时,主子系统和从子系统也都依靠系统时钟自加来维持系统时间,从而达到系统时间的同步。

由上述实施例可见,本申请实施例中,从子系统通过fpga接收到主子系统发送的参考时钟,输出与该参考时钟同频的第一时钟,以更新从子系统的系统时钟,完成了系统时钟的同步。基于与该参考时钟同频的第一时钟进行比特信息的采样,并解析所述比特信息对应的数据帧;再从解析后的数据帧中提取出主子系统的系统时间;最后,在主子系统的系统时间的基础上加上线路延迟时间后,输出与主子系统的系统时间实时同步的第一时间,以更新从子系统的系统时间,完成了系统时间的同步。本申请通过fpga发送和接收系统时钟和系统时间即可同时实现主子系统和从子系统之间的时钟同步和时间同步,而且时钟同步和时间同步的实现方法也很简单可靠。

实施例2

为解决现有技术中各个子系统之间的管脚和连线较多,且不能同时实现系统时钟同步和时间同步的问题,本申请实施例2提供了一种基于fpga的系统内时钟同步和时间同步的装置50。

请参见说明书附图5,图5为本发明实施例2所提供的一种基于fpga的系统内时钟同步和时间同步的装置的结构示意图。

该装置具体包括如下模块:时钟同步模块51、时间采样模块52、时间提取模块53、时间同步模块54。

以下具体介绍下各模块的功能:

时钟同步模块51,用于通过fpga接收主子系统发送的参考时钟,并输出与所述参考时钟同频的第一时钟,以更新从子系统的系统时钟;

时间采样模块52,用于基于与所述参考时钟同频的第一时钟进行比特信息的采样,并解析所述采样的比特信息对应的数据帧;

时间提取模块53,用于根据所述解析后的数据帧提取出所述主子系统的系统时间;

时间同步模块54,用于在所述主子系统的系统时间的基础上加上线路延迟时间后,输出与所述主子系统的系统时间实时同步的第一时间,以更新所述从子系统的系统时间。

本申请实施例中,在一种实施方式中,所述参考时钟是以预设码型由所述主子系统通过fpga以预设码型串行发送的系统时钟。

本申请实施例中,在一种实施方式中,所述时钟同步模块51,具体用于:

通过d触发器接收所述主子系统发送的参考时钟,并通过锁相环pll倍频后输出与所述参考时钟同频的第一时钟。

本申请实施例中,在一种实施方式中,所述时间采样模块52,具体用于:

基于与所述参考时钟同频的第一时钟确定所述第一时钟的上升沿以及所述上升沿的相位;

采集所述上升沿的相位后四位的中间位置所对应的比特信息。

本申请实施例中,在一种实施方式中,所述时间采样模块52,具体用于:

在所述比特信息对应的数据帧中进行帧头的搜索,并基于所述帧头,解析所述帧头对应的帧。

本申请实施例中,在一种实施方式中,在所述时间提取模块53用于根据所述解析后的数据帧提取出所述主子系统的系统时间之前,所述装置还包括:

数据帧校验模块,用于在所述帧的帧尾添加crc校验码,以判断是否从所述帧中提取出所述主子系统的系统时间。

由上述实施例可见,本申请实施例中,从子系统通过fpga接收到主子系统发送的参考时钟,输出与该参考时钟同频的第一时钟,以更新从子系统的系统时钟,完成了系统时钟的同步。基于与该参考时钟同频的第一时钟进行比特信息的采样,并解析所述比特信息对应的数据帧;再从解析后的数据帧中提取出主子系统的系统时间;最后,在主子系统的系统时间的基础上加上线路延迟时间后,输出与主子系统的系统时间实时同步的第一时间,以更新从子系统的系统时间,完成了系统时间的同步。本申请通过fpga发送和接收系统时钟和系统时间即可同时实现主子系统和从子系统之间的时钟同步和时间同步,而且时钟同步和时间同步的实现方法也很简单可靠。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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