发明内容
有鉴于此,本发明提供了一种实现时钟同步的装置、设备及方法,用以解决现有技术中当链路通道被控制报文或数据报文占用时,扩展链路报文不能及时发送出去,会导致时钟同步不精确的问题,其技术方案如下:
一种实现时钟同步的装置,所述装置至少包括:发送器、发送报文缓存、时钟同步服务器、发送报文检测单元、发送报文控制单元和发送控制单元,其中:
所述发送器,用于发送报文;
所述发送报文缓存,用于缓存待发送的非时钟同步报文;
所述时钟同步服务器,用于产生时钟同步报文;
所述发送报文检测单元,用于当配置的时钟同步服务周期到达时,检测所述发送报文缓存中是否存在待发送报文;
所述发送报文控制单元,用于当所述发送报文检测单元检测到所述发送报文缓存中存在待发送报文时,等待所述发送报文缓存中的待发送报文发送完毕后,控制所述时钟同步服务器产生时钟同步报文;
所述发送控制单元,用于控制所述发送器将所述时钟同步报文发送至需要进行时钟同步的设备。
其中,所述发送报文控制单元,还用于当所述发送报文检测单元检测到所述发送报文缓存中不存在待发送报文时,控制所述时钟同步服务器产生时钟同步报文。
其中,所述时钟同步服务器包括:参考晶振、计时器和时钟报文产生单元,其中:
所述参考晶振,用于为所述计时器提供时钟信号;
所述计时器,用于基于所述参考晶振提供的时钟信号产生时钟同步信息;
所述时钟同步报文产生单元,用于当配置的时钟同步服务周期到达时,如果所述发送报文缓存中存在待发送报文,则不产生时钟同步报文,等待所述发送报文缓存中的待发送报文发送完毕后,再提取所述计时器的时钟同步信息产生时钟同步报文。
一种实现时钟同步的装置,所述装置至少包括:接收器、数据识别单元、接收报文缓存、时钟同步客户端和报文检测解析单元,其中:
所述接收器,用于接收其它设备发送的数据;
所述数据识别单元,用于从所述接收器接收的数据中识别出有用的报文;
所述报文检测解析单元,用于解析所述数据识别单元识别出的报文的类型,当所述数据识别单元识别出的报文为时钟同步报文时,从所述时钟同步报文中提取出时钟同步信息,并将提取出的时钟同步信息加载到所述时钟同步客户端,当所述数据识别单元识别出的报文为非时钟同步报文时,将所述非时钟同步报文存储在所述接收报文缓存中;
所述接收报文缓存,用于缓存所述非时钟同步报文;
所述时钟同步客户端,用于从所述时钟同步报文中提取时钟同步信息进行时钟同步。
其中,所述时钟同步客户端包括:参考晶振、计时器、时钟同步报文接收单元和时钟同步信息提取单元,其中:
所述参考晶振,用于为所述计时器提供时钟信号;
所述计时器,用于基于所述参考晶振提供的所述时钟信号产生时钟同步信息;
所述时钟同步报文接收单元,用于接收所述报文检测解析单元解析出的时钟同步报文;
所述时钟同步信息提取单元,用于从所述时钟同步报文接收单元接收的所述时钟同步报文中提取时钟同步信息,并将所述时钟同步信息加载到所述计时器。
一种实现时钟同步的设备,包括:上述的两个实现时钟同步的装置,或者,两个实现时钟同步的装置中的任意一个。
一种实现时钟同步的方法,应用于实现时钟同步的设备,所述设备设置有时钟同步服务器和发送报文缓存,所述方法包括:
当配置的时钟同步服务周期到达时,检测所述发送报文缓存中是否存在待发送报文,所述发送报文缓存用于缓存待发送的非时钟同步报文;
当所述发送报文缓存中存在待发送报文时,等待所述发送报文缓存中的待发送报文发送完毕后,使所述时钟同步服务器产生时钟同步报文;
将所述时钟同步服务器产生的所述时钟同步报文发送至需要进行时钟同步的设备。
上述方法还包括:
当所述发送报文缓存中不存在所述待发送报文时,使所述时钟同步服务器产生时钟同步报文;
将所述时钟同步服务器产生的所述时钟同步报文发送至需要进行时钟同步的设备。
其中,所述实现时钟同步的设备还设置有接收报文缓存;
上述方法还包括:
当接收到其他设备发送的报文时,将接收的报文存储至所述接收报文缓存中,并从所述时钟同步服务器获取当前时间信息作为所述接收的报文的接收时间,以便后续依据所述接收时间对所述接收报文缓存中的缓存的报文进行处理。
一种实现时钟同步方法,应用于实现时钟同步的设备,所述设备设置有时钟同步客户端和接收报文缓存,所述方法包括:
当接收到报文时,确定所述报文为时钟同步报文还是为非时钟同步报文;
当所述报文为时钟同步报文时,从所述时钟同步报文中提取出时钟同步信息,并将提取出的所述时钟同步信息加载到所述时钟同步客户端;
当所述报文为非时钟同步报文时,将所述非时钟同步报文存储在所述接收报文缓存中。
上述技术方案具有如下有益效果:
现有技术中,由于时钟同步报文与非时钟同步报文其占用同样的链路通道,因此,当时钟周期到达需要发送时钟同步报文时,如果非时钟同步报文占用链路通道时,将导致时钟同步报文无法及时发送出去,进而导致时钟同步不精确,基于该问题,本发明提供实现时钟同步的装置、设备及方法,将非时钟同步报文缓存在发送报文缓存中,在配置的时钟同步服务周期到达时,先检测发送报文缓存中是否存在待发送报文,如果发送报文缓存中存在待发送报文时,则等待发送报文缓存中的待发送报文发送完毕后,再使时钟同步服务器产生时钟同步报文,然后将时钟同步报文发送至需要进行时钟同步的设备。本发明提供的实现时钟同步的装置、设备及方法,在链路通道空闲时才会提取时钟同步信息产生时钟同步报文,产生的时钟同步报文能及时发送出去,这使得时间同步比较精确。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,由于时钟同步报文与非时钟同步报文其占用同样的链路通道,因此,当时钟周期到达需要发送时钟同步报文时,如果非时钟同步报文占用链路通道时,那么只能等待,当非时钟同步报文发送完毕后,才能发送时钟同步报文。时钟同步报文不能及时发送出去将导致时钟同步不精确。示例性的,时钟同步服务器欲向时钟同步客户端发送时钟同步信息为10s15us的时钟同步报文,此时,非时钟同步报文占用链路通道,只能等待,30us以后时钟同步客户端才收到时钟同步报文,时钟同步报文中的时钟同步信息为10s15us,而实际上此时的时间已为10s45us。
基于上述问题,本发明实施例提供了一种实现时钟同步的装置,应用于实现时钟同步的设备,请参阅图1,为实现时钟同步的装置10的结构示意图,可以包括:发送器101、发送报文缓存102、时钟同步服务器103、发送报文检测单元104、发送报文控制单元105和发送控制单元106。其中:
发送器101,用于发送报文。
具体的,发送器101用于发送时钟同步报文和非时钟同步报文。
发送报文缓存102,用于缓存待发送的非时钟同步报文。
时钟同步服务器103,用于产生时钟同步报文。
发送报文检测单元104,用于当配置的时钟同步服务周期到达时,检测发送报文缓存102中是否存在待发送报文。
发送报文控制单元105,用于当发送报文检测单元104检测到发送报文缓存102中存在待发送报文时,等待发送报文缓存102中的待发送报文发送完毕后,控制时钟同步服务器103产生时钟同步报文。
发送控制单元106,用于控制发送器101将时钟同步服务器103产生的时钟同步报文发送至需要进行时钟同步的设备。
需要说明的是,当配置的时钟同步服务周期到达时,可能存在两种情况:
在第一种可能的情况中,发送报文检测单元104检测到发送报文缓存102中存在待发送报文,表明发送报文的链路通道被占用,此时,发送报文控制单元105控制时钟同步服务器103不产生时钟同步报文,而是进行等待,等到发送报文缓存102中的待发送报文发送完毕后(即发送报文的链路通道由占用变为空闲),发送报文控制单元105再控制时钟同步服务器103产生时钟同步报文,并由发送控制单元106控制发送器101将时钟同步服务器103产生的时钟同步报文发送至需要进行时钟同步的设备。
示例性的,时钟同步服务周期是10s,当10s到达时,如果发送报文的链路通道被占用,则不产生时钟同步报文,而是等待,等到链路空闲时,假设此时时钟已经走到了10s20us,则将此时的时钟同步信息10s20us提取出来生成时钟同步报文,将该时钟同步报文发送出去,此时,实际的时钟同步周期就是10s20us,因此,保证了时钟同步的精确性。
在第二种可能的情况中,发送报文检测单元104检测到发送报文缓存102中不存在待发送报文,表明发送报文的链路通道空闲,此时,发送报文控制单元105控制时钟同步服务器103产生时钟同步报文,并由发送控制单元106控制发送器101将时钟同步服务器103产生的时钟同步报文发送至需要进行时钟同步的设备。
示例性的,时钟同步服务周期是10s,当10s到达时,如果发送报文的链路通道空闲,则提取时钟同步信息10s生成时钟同步报文,并将该时钟同步报文发送出去。
需要说明的是,在本实施例中,时钟同步报文具体为扩展链路报文。
请参阅图2,为本发明实施例提供的装置中,时钟同步服务器103的结构示意图,可以包括:参考晶振201、计时器202和时钟同步报文产生单元203。其中:
参考晶振201,用于为计时器202提供时钟信号。
计时器202,用于基于参考晶振201提供的时钟信号提供时钟同步信息。
具体的,计时器202由参考晶振201驱动,参考晶振201的信息可以通过扩展链路报文传输。
时钟同步报文产生单元203,用于当配置的时钟同步服务周期到达时,如果发送报文缓存102中存在待发送报文时,则不产生时钟同步报文,等待发送报文缓存102中的待发送报文发送完毕后,再提取计时器202的时钟同步信息产生时钟同步报文。
当配置的时钟同步服务周期到达时,如果发送报文缓存102中不存在待发送报文时,则产生时钟同步报文。
本发明实施例提供的实现时钟同步的装置,在配置的时钟同步服务周期到达时,先检测发送报文缓存中是否存在待发送报文,如果发送报文缓存中存在待发送报文时,则等待发送报文缓存中的待发送报文发送完毕后,再使时钟同步服务器提取时钟同步信息产生时钟同步报文,然后将时钟同步报文发送至需要进行时钟同步的设备。本发明实施例提供的实现时钟同步的装置,在链路通道空闲时才会提取时钟同步信息产生时钟同步报文并发送,这使得时间同步比较精确。
请参阅图3,为本发明实施例提供的另一种实现时钟同步的装置30的结构示意图,与上述实施例不同的是,本发明实施例提供的装置30除了包括发送器101、发送报文缓存102、时钟同步服务器103、发送报文检测单元104、发送报文控制单元105和发送控制单元106外,还包括:原语序列选择单元300、接收器301、数据识别和链路维护单元302、报文检测解析单元303、接收报文缓存304、数据存储单元305和主机控制器306。其中:
接收器301,用于接收其它设备发送的数据。
原语序列选择单元300,用于在与其它设备建立链路时,根据从其它设备接收的原语序列和实现时钟同步的设备的状态选择原语序列并发送,以实现链路的建立。
数据识别和链路维护单元302,用于建立与其它设备之间的链路,并对建立的链路进行维护,还用于从接收器301接收的数据中识别出有用的报文。
数据识别和链路维护单元302识别出的报文可能为时钟同步请求报文(时钟同步服务器根据该报文确定需要进行时钟同步的设备),也可能为数据报文、控制报文。
报文检测解析单元303,用于对数据识别和链路维护单元302识别出的有用报文进行解析,确定报文的类型。
接收报文缓存304,用于缓存报文检测解析单元303解析的报文。
数据存储单元305,用于存储接收的报文。
主机控制器306,用于对数据存储单元305存储的报文进行后续处理。
主机控制器306,还用于将数据存储单元305中存储的待发送报文存储至发送报文缓存102中。
本发明实施例提供的实现时钟同步的装置,在链路通道空闲时才会提取时钟同步信息产生时钟同步报文并发送,这使得时间同步比较精确。
请参阅图4,为本发明实施例提供的一种实现时钟同步的装置40的结构示意图,该装置40可以包括:接收器401、数据识别和链路维护单元402、报文检测解析单元403、接收报文缓存404和时钟同步客户端405。其中:
接收器401,用于接收其它设备发送的数据。
数据识别和链路维护单元402,用于从接收器401接收的数据中识别出有用的报文,还用于建立与其它设备之间的链路,并对建立的链路进行维护。
可以理解的是,数据识别和链路维护单元402可以为一个独立的单元,也可由数据识别单元和链路维护单元两个独立的单元组成。
报文检测解析单元403,用于解析数据识别和链路维护单元402识别出的报文的类型,当数据识别和链路维护单元402识别出的报文为时钟同步报文时,从时钟同步报文中提取出时钟同步信息,并将提取出的时钟同步信息加载到时钟同步客户端405,当数据识别和链路维护单元402识别出的报文为非时钟同步报文时,将非时钟同步报文存储在接收报文缓存404中。
接收报文缓存404,用于缓存报文检测解析单元403解析出的非时钟同步报文。
时钟同步客户端405,用于从时钟同步报文中提取时钟同步信息进行时钟同步。
请参阅图5,为本发明实施例提供的实现时钟同步的装置40中,时钟同步客户端405的结构示意图,可以包括:参考晶振501、计时器502、时钟同步报文接收单元503和时钟同步信息提取单元504。其中:
参考晶振501,用于为计时器502提供时钟信号。
计时器502,用于基于参考晶振提供的时钟信号提供时钟同步信息。
时钟同步报文接收单元503,用于接收报文检测解析单元403解析出的时钟同步报文。
时钟同步信息提取单元504,用于从时钟同步报文接收单元503接收的时钟同步报文中提取时钟同步信息,并将提取时钟同步信息加载到计时器502。
本发明实施例提供的实现时钟同步的设备,当接收到时钟同步报文时,可从时钟同步报文中提取出时钟同步信息,并将提取出的时钟同步信息加载到时钟同步客户端,当接收到非时钟同步报文时,可将非时钟同步报文存储在接收报文缓存。
请参阅图6,为本发明实施例提供的另一种实现时钟同步的装置60的结构示意图,应用于实现时钟同步的设备,与上述实施例提供的装置40不同的是,该装置60除了可以包括接收器401、数据识别单元402、报文检测解析单元403、接收报文缓存404和时钟同步客户端405外,还可以包括:原语序列选择单元600、发送器601、发送报文缓存602、发送报文检测单元603、发送控制单元604、数据存储单元605和主机控制器606。其中,数据存储单元605存储有待发送报文。
原语序列选择单元600,用于在与其它设备建立链路时,根据从其它设备接收的原语序列和实现时钟同步的设备的状态选择原语序列并发送,以实现链路的建立。
发送器601,用于发送报文。
主机控制器606,用于将数据存储单元605存储的待发送报文存储至发送报文缓存602中。
发送报文缓存602,用于缓存待发送报文。
发送报文检测单元603,用于检测发送报文缓存602是否缓存有待发送报文。
发送控制单元604,用于当发送报文检测单元603检测到发送报文缓存602中缓存有待发送报文时,控制发送器601将发送报文缓存601中缓存的待发送报文发送出去。
需要说明的是,本实施例中的发送器601和接收器401可以为两个独立的单元,也可由一个单元(收发器)实现。
本发明实施例还提供了一种实现时钟同步的设备,该设备可以包括上述实施例提供的实现时钟同步的装置10或实现时钟同步的装置30,和/或,实现时钟同步的装置40或实现时钟同步的装置60。该设备中各个单元的功能请参见上述实施例,在此不作赘述。
请参阅图7,为本发明实施例提供的一种实现时钟同步的方法的流程示意图,该方法应用于实现时钟同步的设备,该设备设置有时钟同步服务器和发送报文缓存,该方法可以包括:
步骤S701:当配置的时钟同步服务周期到达时,检测发送报文缓存中是否存在待发送报文。
其中,发送报文缓存用于缓存待发送的非时钟同步报文。
步骤S702a:当发送报文缓存中存在待发送报文时,等待发送报文缓存中的待发送报文发送完毕后,使时钟同步服务器产生时钟同步报文。
需要说明的是,当配置的时钟同步服务周期到达时,如果发送报文缓存中存在待发送报文,表明发送报文的链路通道被占用,此时,使时钟同步服务器不产生时钟同步报文,而是进行等待,等到发送报文缓存中的待发送报文发送完毕后,即发送报文的链路通道由占用变为空闲,才使时钟同步服务器产生时钟同步报文。
步骤S703:将时钟同步服务器产生的时钟同步报文发送至需要进行时钟同步的设备。
上述流程给出了当发送报文缓存中存在待发送报文时的时钟同步流程,下面给出当发送报文缓存中不存在待发送报文时的时钟同步时的时钟同步流程:
步骤S702b:当发送报文缓存中不存在待发送报文时,使时钟同步服务器产生时钟同步报文,然后执行步骤S703。
需要说明的是,当配置的时钟同步服务周期到达时,如果发送报文缓存中不存在待发送报文,表明发送报文的链路通道空闲,此时,使时钟同步服务器产生时钟同步报文。
本发明实施例提供的实现时钟同步的方法中,在配置的时钟同步服务周期到达时,先检测发送报文缓存中是否存在待发送报文,如果发送报文缓存中存在待发送报文时,则等待发送报文缓存中的待发送报文发送完毕后,再使时钟同步服务器提取时钟同步信息产生时钟同步报文,然后将时钟同步报文发送至需要进行时钟同步的设备。本发明实施例提供的实现时钟同步的方法,在链路通道空闲时才会提取时钟同步信息产生时钟同步报文并发送,这使得时间同步比较精确。
上述实施例中,实现时钟同步的设备还设置有接收报文缓存。上述实施提供的方法还可以包括:
当接收到其他设备发送的报文时,将接收的报文存储至接收报文缓存中,并从时钟同步服务器获取当前时间信息作为接收的报文的接收时间,以便后续依据接收时间对接收报文缓存中的缓存的报文进行处理。
请参阅图8,为本发明实施例提供的一种实现时钟同步的方法的流程示意图,该方法应用于实现时钟同步的设备,该设备设置有时钟同步客户端和接收报文缓存,该方法包括:
步骤S801:当接收到报文时,确定报文为时钟同步报文还是为非时钟同步报文。
步骤S802a:当接收的报文为时钟同步报文时,从时钟同步报文中提取出时钟同步信息,并将提取出的时钟同步信息加载到时钟同步客户端。
步骤S802b:当报文为非时钟同步报文时,将非时钟同步报文存储在接收报文缓存中。
本发明实施例提供的实现时钟同步的方法,当接收到时钟同步报文时,可从时钟同步报文中提取出时钟同步信息,并将提取出的时钟同步信息加载到时钟同步客户端,当接收到非时钟同步报文时,可将非时钟同步报文存储在接收报文缓存。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。