时间同步方法和装置与流程

文档序号:12037522阅读:269来源:国知局
时间同步方法和装置与流程

本发明涉及通信技术领域,尤其涉及一种时间同步方法和装置。



背景技术:

在移动网路中,基站之间不仅要求频率同步,而且要求实现严格的时间同步,时间同步主要根据事件报文的时间进行。

然而,在标签网络中,不能通过判断标签报文是否包括事件报文类型的字段,来分辨出标签报文中事件报文;此外,标签网络中报文长度也不固定,因为各个节点之间产生的报文中内容较多、较杂,标签报文中可能存在与事件报文类型的字段相同的内容,从而时间打戳器无法从报文中识别出事件报文,无法完成在事件报文添加时间信息,从而在标签网络中无法实现时间同步。



技术实现要素:

本发明的主要目的在于提出一种时间同步方法和装置,旨在解决标签网络中无法识别事件报文,无法完成在事件报文添加时间信息,从而无法实现时间同步的技术问题。

为实现上述目的,本发明提供的一种时间同步方法,所述方法包括:

在配置有时间打戳器件的启用了1588的标签网络中,通过所述时间打戳器件从标签报文中识别出1588事件报文,其中,所述1588事件报文用于待同步节点间的时间同步;

通过所述时间打戳器件对所述事件报文加上时间戳;

根据所述时间戳在待同步节点间对时间进行同步。

优选地,通过所述时间打戳器件从标签报文中识别出1588事件报文的步骤包括:

通过所述时间打戳器件对报文进行解析,根据报文类型识别出标签报文;

对所述标签报文进行解封装识别出1588事件报文。

优选地,对所述标签报文进行解封装识别出1588事件报文的步骤包括:

对所述标签报文进行解析,匹配到目的mac+源mac+端口号88f7+事件消息类型,识别为二层组播1588事件报文;或者,

匹配到ipv4包+端口号320,识别为三层组播事件报文或者三层单播1588事件报文。

优选地,通过所述时间打戳器件对所述事件报文加上时间戳的步骤包括:

对于p设备,在所述p设备入口处打上第一时间戳,转发到出口处加上第二时间戳,通过所述第一时间戳和所述第二时间戳的偏差修正cf域,将修正后的1588事件报文发送出去;

对于pe设备,在接收到1588事件报文之后,在入口加上第三时间戳。

优选地,对于pe设备,根据所述时间戳在待同步节点间对时间进行同步的步骤包括:

根据所述第三时间戳和cf域计算偏差和时延,并通过对所述pe设备的时间校正对时间进行同步。

优选地,所述时间打戳器件的配置包括:报文类型、报文标签数量、标签长度、控制字数量和控制字长度。

此外,为实现上述目的,本发明还提供一种时间同步装置,所述装置包括:

识别模块,用于在配置有时间打戳器件的启用了1588的标签网络中,通过所述时间打戳器件从标签报文中识别出1588事件报文,其中,所述1588事件报文用于待同步节点间的时间同步;

时间戳添加模块,用于通过所述时间打戳器件对所述事件报文加上时间戳;

同步模块,用于根据所述时间戳在待同步节点间对时间进行同步。

优选地,所述识别模块包括:

解析单元,用于通过所述时间打戳器件对报文进行解析,根据报文类型识别出标签报文;

识别单元,用于对所述标签报文进行解封装识别出1588事件报文。

优选地,所述识别模块还用于对所述标签报文进行解析,匹配到目的mac+源mac+端口号88f7+事件消息类型,识别为二层组播1588事件报文;或者,

匹配到ipv4包+端口号320,识别为三层组播事件报文或者三层单播1588事件报文。

优选地,所述时间戳添加模块还用于:对于p设备,在所述p设备入口处打上第一时间戳,转发到出口处加上第二时间戳,通过所述第一时间戳和所述第二时间戳的偏差修正cf域,将修正后的1588事件报文发送出去;

对于pe设备,在接收到1588事件报文之后,在入口加上第三时间戳。

优选地,所述同步模块还用于:根据所述第三时间戳和cf域计算偏差和时延,并通过对所述pe设备的时间校正对时间进行同步。

优选地,所述时间打戳器件的配置包括:报文类型、报文标签数量、标签长度、控制字数量和控制字长度。

本发明通过在标签网络中配置时间打戳器件,使得时间打戳器件能够识别标签网络中各个待同步节点能够识别标签报文中的1588事件报文,从而在事件报文中添加时间戳,从而可以使得各个节点能够在各待同步节点之间传递的事件报文中时间戳进行时间同步。

附图说明

图1为本发明时间同步方法第一实施例的流程示意图;

图2为本发明实施例中通过所述时间打戳器件从标签报文中识别出1588事件报文的一种流程示意图;

图3为本发明实施例中对所述标签报文进行解封装识别出1588事件报文的一种细化流程示意图;

图4为本发明实施例中通过所述时间打戳器件对所述事件报文加上时间戳的一种流程示意图;

图5为本发明时间同步装置第一实施例的功能模块示意图;

图6为本发明实施例中识别模块的细化功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种时间同步方法。

参照图1,图1为本发明时间同步方法第一实施例的流程示意图。

在本实施例中,该时间同步方法包括:

步骤s10,在配置有时间打戳器件的启用了1588的标签网络中,通过所述时间打戳器件从标签报文中识别出1588事件报文;

在创建标签网络时,先在标签网络中各待同步节点中配置时间打戳器件,使得各个节点可以通过时间打戳器件识别出事件报文。

在一优选实施例中,在创建标签网络时,在所述标签网络中启用网络测控系统精确时钟同步协议,简称ieee1588,使得标签网络中各个节点支持ieee1588时间。当然还可以采用其他的协议,比如网络时间协议ntp(networktimeprotocol)。

ieee1588定义了一种精确时间协议ptp(precisiontimeprotocol)。ptp协议的目的是用来同步时间,其功能包括两个方面:一是通过最佳时钟算法(bmc:bestmasterclockalgorithm),对端口状态进行选择,确定全网的组网拓扑结构。首先,根据设备上ptp的优先级设置,确定组网中的引入时钟源的设备gm(grandmaster);然后通过端口的状态选择算法,确定组网中设备的端口角色,ptp的端口状态共包括三种:master、slave和passive,根据设备状态,则知道标签报文的流转关系;二是通过ptp报文的收发处理,进行时间偏差校验等的计算,完成全网的时间同步,并保证校验误差,用于时间偏差校验计算的ptp报文消息类型,主要包括两大类:事件消息报文和通用消息报文。

事件消息类型的报文,包括:sync,delay_req,pdelay_req,pdelay_resp;通用消息包括:announce,follow_up,delay_resp,pdelay_resp_follow_up,management,signaling。

其中,事件消息主要用来发生和交互需要同步的普通和边缘时钟信息,使用“延迟请求响应机制”。而通用消息则主要用于测量2个时钟端口之间的链路延迟,使用“对等体延迟机制”。announce消息用来使能同步分层。management用在管理结点和时钟之间,用来询问和升级时钟维护的ptp数据 设置,也可用来定制ptp系统和初始化,以及错误管理。signaling用来在时钟之间完成其它目的的交互,如协商单播消息速率。

ptp报文的封装格式,则支持ieee802、ipv4和ipv6的类型。其中:ieee802.13协议的封装格式,即为二层报文封装,主要以二层组播的方式。此种封装时,对设备的vlan配置没有要求,当设备发出去的报文为ethernet格式时,是不加标签tag信息的。ipv4报文封装格式,即为三层报文封装,这里包括了三层单播和三层组播两种格式。此种封装时,要求设备的端口首先要添加到三层的ptpvlan中,如果是三层单播格式时,要求设备间通过三层路由来打通;如果是三层组播格式时,则要求组网内的设备间在同一个vlan内组播。

在功能实现上,要实现1588的时间同步功能,则需要借助于时钟芯片来实现对1588时钟源的频率恢复,然后再通过cpu发送协议报文,及时间打戳器件加载的报文时间戳来完成对从时钟的时间修正。目前对三层单播报文封装的实现方式,是通过将启用了ptp协议的端口的配置,包括ip的源地址信息、目的地址信息写到时钟芯片,根据时钟芯片上获取到的ip地址信息进行报文的封装。

并可以支持边缘时钟节点模式bc、普通时钟模式oc、透传时钟模式tc、oc+tc和tc+bc等模式,在实际应用中用户可以根据选择的路由设备选择对应的模式。

采用ieee1588可以使分布式网络内的最精确时钟与其他时钟保持同步,不仅可以用于标签网络,还可以用于对标准以太网或其他采用多播技术的分布式总线系统中的传感器、执行器以及其他终端设备中的时钟进行同步,其可以进行亚微秒级同步。

具体地,本实施例中将标签网络中配置时间打戳器件还包括:在时间打戳器件中配置报文类型、报文标签数量、标签长度、控制字数量和控制字长度。当然在其他实施例中可以视具体情况配置,比如有些网络中的标签长度相同时,则不需要配置标签长度。具体实施中也可以选择其中几种信息的组合用于判断是否为事件报文,本领域人员可知在配置的信息种类越多,判断结果准确性越高。

在配置好时间打戳器件后,启动标签网络中各个节点的计时模块和时间 算法等,比如启用各个节点中时钟。在启动标签网络时,标签网络中各个节点根据需要产生标签报文,所述标签报文包括但不限于事件报文和普通报文,所述标签报文可以自动产生也可以是根据用户操作产生。时间打戳器件从标签报文中识别出1588事件报文。

具体地,参阅图2,时间打戳器件识别出1588事件报文的过程可以包括:

步骤s11,通过所述时间打戳器件对报文进行解析,根据报文类型识别出标签报文;

步骤s12,对所述标签报文进行解封装识别出1588事件报文。

为减少发送数据的大小,以及在减少带宽的占用,在待同步节点之间流转的报文一般会进行打包或者加密等处理。在识别时通常需要解析报文,具体地,解析本节点产生的报文或者接收到其他节点发送的报文,根据报文的类型识别出标签报文。然后对标签报文进行解封,从而识别出1588事件报文。

具体地,参阅图3,对所述标签报文进行解封装识别出1588事件报文的过程包括:

步骤s121,对所述标签报文进行解析,匹配到目的mac+源mac+端口号88f7+事件消息类型,识别为二层组播1588事件报文;或者,

步骤s122,匹配到ipv4包+端口号320,识别为三层组播事件报文或者三层单播1588事件报文。

在识别出所述事件报文后,还可以判断所述事件报文的类型,因为所述事件报文的类型不同时间信息添加位置可能不同,则可以根据所述事件报文的类型在相应的位置添加时间信息或者打上时间戳。比如根据预配置的标签数量、标签长度、控制字数量、控制字长度等信息解析所述标签报文,根据解析获得的内容可以判断出所述标签报文中事件报文是二层组播1588事件报文,还是三层组播1588事件报文或者三层单播事件报文。如果能匹配到目的mac+源mac+88f7+事件消息类型,则识别为二层组播事件报文。如果能匹配到ipv4包+端口号320,则识别为三层组播事件报文或者三层单播事件报文。如果报文类型识别出不是标签报文,则直接匹配目的mac+源mac+88f7+事件消息类型和ipv4包+端口号320这两个条件。

步骤s20,通过所述时间打戳器件对所述事件报文加上时间戳;

根据在步骤s10产生的标签报文或者接收到的标签报文,各个待同步节 点识别出各自产生或接收到的所述标签报文中的事件报文,然后在识别出的事件报文中添加时间戳,即通过时间打戳器件添加的时间戳,具体地,添加时间戳的时间在各个待同步节点的入口和出口处。当然对于不同的事件报文,可以根据识别出的所述事件报文类型在相应位置添加时间信息。

具体地,参阅图4,通过时间打戳器件添加时间戳的过程包括:

步骤s21,对于p设备,在所述p设备入口处打上第一时间戳,转发到出口处加上第二时间戳,通过所述第一时间戳和所述第二时间戳的偏差修正cf域,将修正后的1588事件报文发送出去;

步骤s22,对于pe设备,在接收到1588事件报文之后,在入口加上第三时间戳。

如果用户选择的设备为p设备和pe设备,则p设备和pe设备接收到1588标签报文之后,时间打戳器件对报文进行解析,根据报文类型识别出是一个标签报文,然后,根据预配置的标签数量、标签长度、控制字数量、控制字长度等信息来解析所述标签报文,如果在解析获得的内容中能匹配到目的mac+源mac+88f7+事件消息类型,则识别为二层组播事件报文。如果能匹配到ipv4包+端口号320,则识别为三层组播事件报文或者三层单播事件报文。其中88f7是ieee1588协议中一种协议类型;端口号320是ieee1588协议规定的一个端口,这个端口会产生事件报文。

对于p设备,报文在p设备入口处打上进入ingress时间戳,转发到出口处打上出去egress时间戳,用两个时间戳的偏差修正cf域,再将报文发送给pe设备,然后pe设备在接收到1588事件报文之后,在入口加上第三时间戳。当然如果在标签网络中只采用pe设备,则pe设备在入口出给接收到的报文打上时间戳后,直接转发到ptp模块进行处理。

步骤s30,根据所述时间戳在待同步节点间对时间进行同步。

根据在步骤s20在所述事件报文中添加时间戳后,将包括时间戳的标签报文发送给其他待同步节点进行处理,其他待同步节点可以是一个也可以是多个。其他待同步节点接收到包括有时间戳的标签报文后,通过配置的时间打戳器件识别出接收到的标签报文中的事件报文,从而获得接收的标签报文中的时间戳,进而根据获得接收的标签报文中的时间戳以及自身当前的时间,对自身的时间进行时间校正。在发送给下一个待同步节点时,在出口处添加 时间戳后发生给下一个待同步节点,其他的节点进行类似的处理,从而使得标签网络中各个待同步节点的达到时间同步的效果。

具体地,对于存在p设备和pe设备的标签网络,同步模块30还用于:根据所述第三时间戳和cf域计算偏差和时延,并通过对所述pe设备的时间校正对时间进行同步。

对于存在p设备和pe设备的标签网络,pe设备根据接收到p设备发送的标签报文,识别出接收到的标签报文中事件报文的cf域,然后根据cf域以及在接收到标签报文的时间,即在接收到标签报文时添加的第三时间戳,对pe设备的时间校正,从而对时间进行同步。当然在应用不同的协议或者时间算法时,其计算过程和结果可能不同。根据计算获得的第三时间、偏差和时延进行时间校正。

本发明通过在标签网络中配置时间打戳器件,使得时间打戳器件能够识别标签网络中各个待同步节点能够识别标签报文中的1588事件报文,从而在事件报文中添加时间戳,从而可以使得各个节点能够在各待同步节点之间传递的事件报文中时间戳进行时间同步。

本发明进一步提供一种时间同步装置。

参照图5,图5为本发明时间同步装置第一实施例的功能模块示意图。

在本实施例中,该时间同步装置包括:

识别模块10,用于在配置有时间打戳器件的启用了1588的标签网络中,通过所述时间打戳器件从标签报文中识别出1588事件报文,其中,所述1588事件报文用于待同步节点间的时间同步;

在创建标签网络时,先在标签网络中各待同步节点中配置时间打戳器件,使得各个节点可以通过时间打戳器件识别出事件报文。

在一优选实施例中,在创建标签网络时,在所述标签网络中启用网络测控系统精确时钟同步协议,简称ieee1588,使得标签网络中各个节点支持ieee1588时间。当然还可以采用其他的协议,比如网络时间协议ntp(networktimeprotocol)。

ieee1588定义了一种精确时间协议ptp(precisiontimeprotocol)。ptp协议的目的是用来同步时间,其功能包括两个方面:一是通过最佳时钟算法 (bmc:bestmasterclockalgorithm),对端口状态进行选择,确定全网的组网拓扑结构。首先,根据设备上ptp的优先级设置,确定组网中的引入时钟源的设备gm(grandmaster);然后通过端口的状态选择算法,确定组网中设备的端口角色,ptp的端口状态共包括三种:master、slave和passive,根据设备状态,则知道标签报文的流转关系;二是通过ptp报文的收发处理,进行时间偏差校验等的计算,完成全网的时间同步,并保证校验误差,用于时间偏差校验计算的ptp报文消息类型,主要包括两大类:事件消息报文和通用消息报文。

事件消息类型的报文,包括:sync,delay_req,pdelay_req,pdelay_resp;通用消息包括:announce,follow_up,delay_resp,pdelay_resp_follow_up,management,signaling。

其中,事件消息主要用来发生和交互需要同步的普通和边缘时钟信息,使用“延迟请求响应机制”。而通用消息则主要用于测量2个时钟端口之间的链路延迟,使用“对等体延迟机制”。announce消息用来使能同步分层。management用在管理结点和时钟之间,用来询问和升级时钟维护的ptp数据设置,也可用来定制ptp系统和初始化,以及错误管理。signaling用来在时钟之间完成其它目的的交互,如协商单播消息速率。

ptp报文的封装格式,则支持ieee802、ipv4和ipv6的类型。其中:ieee802.13协议的封装格式,即为二层报文封装,主要以二层组播的方式。此种封装时,对设备的vlan配置没有要求,当设备发出去的报文为ethernet格式时,是不加标签tag信息的。ipv4报文封装格式,即为三层报文封装,这里包括了三层单播和三层组播两种格式。此种封装时,要求设备的端口首先要添加到三层的ptpvlan中,如果是三层单播格式时,要求设备间通过三层路由来打通;如果是三层组播格式时,则要求组网内的设备间在同一个vlan内组播。

在功能实现上,要实现1588的时间同步功能,则需要借助于时钟芯片来实现对1588时钟源的频率恢复,然后再通过cpu发送协议报文,及时间打戳器件加载的报文时间戳来完成对从时钟的时间修正。目前对三层单播报文封装的实现方式,是通过将启用了ptp协议的端口的配置,包括ip的源地址信息、目的地址信息写到时钟芯片,根据时钟芯片上获取到的ip地址信息进 行报文的封装。

并可以支持边缘时钟节点模式bc、普通时钟模式oc、透传时钟模式tc、oc+tc和tc+bc等模式,在实际应用中用户可以根据选择的路由设备选择对应的模式。

采用ieee1588可以使分布式网络内的最精确时钟与其他时钟保持同步,不仅可以用于标签网络,还可以用于对标准以太网或其他采用多播技术的分布式总线系统中的传感器、执行器以及其他终端设备中的时钟进行同步,其可以进行亚微秒级同步。

具体地,本实施例中将标签网络中配置时间打戳器件还包括:在时间打戳器件中配置报文类型、报文标签数量、标签长度、控制字数量和控制字长度。当然在其他实施例中可以视具体情况配置,比如有些网络中的标签长度相同时,则不需要配置标签长度。具体实施中也可以选择其中几种信息的组合用于判断是否为事件报文,本领域人员可知在配置的信息种类越多,判断结果准确性越高。

在配置好时间打戳器件后,启动标签网络中各个节点的计时模块和时间算法等,比如启用各个节点中时钟。在启动标签网络时,标签网络中各个节点根据需要产生标签报文,所述标签报文包括但不限于事件报文和普通报文,所述标签报文可以自动产生也可以是根据用户操作产生。时间打戳器件从标签报文中识别出1588事件报文。

具体地,参阅图6,识别模块10可以包括:

解析单元11,用于通过所述时间打戳器件对报文进行解析,根据报文类型识别出标签报文;

识别单元12,用于对所述标签报文进行解封装识别出1588事件报文。

为减少发送数据的大小,以及在减少带宽的占用,在待同步节点之间流转的报文一般会进行打包或者加密等处理。在识别时通常需要解析报文,具体地,解析本节点产生的报文或者接收到其他节点发送的报文,根据报文的类型识别出标签报文。然后对标签报文进行解封,从而识别出1588事件报文。

具体地,所述识别模块10还用于对所述标签报文进行解析,匹配到目的mac+源mac+端口号88f7+事件消息类型,识别为二层组播1588事件报文;或者,

匹配到ipv4包+端口号320,识别为三层组播事件报文或者三层单播1588事件报文。

在识别出所述事件报文后,还可以判断所述事件报文的类型,因为所述事件报文的类型不同时间信息添加位置可能不同,则可以根据所述事件报文的类型在相应的位置添加时间信息或者打上时间戳。比如根据预配置的标签数量、标签长度、控制字数量、控制字长度等信息解析所述标签报文,根据解析获得的内容可以判断出所述标签报文中事件报文是二层组播1588事件报文,还是三层组播1588事件报文或者三层单播事件报文。如果能匹配到目的mac+源mac+88f7+事件消息类型,则识别为二层组播事件报文。如果能匹配到ipv4包+端口号320,则识别为三层组播事件报文或者三层单播事件报文。如果报文类型识别出不是标签报文,则直接匹配目的mac+源mac+88f7+事件消息类型和ipv4包+端口号320这两个条件。

时间戳添加模块20,用于通过所述时间打戳器件对所述事件报文加上时间戳;

根据本节点产生或者接收到上一节点的标签报文,各个待同步节点识别出各自产生或接收到的所述标签报文中的事件报文,然后在识别出的事件报文中添加时间戳,即通过时间打戳器件添加的时间戳,具体地,添加时间戳的时间在各个待同步节点的入口和出口处。当然对于不同的事件报文,可以根据识别出的所述事件报文类型在相应位置添加时间信息。

具体地,时间戳添加模块20还用于:对于p设备,在所述p设备入口处打上第一时间戳,转发到出口处加上第二时间戳,通过所述第一时间戳和所述第二时间戳的偏差修正cf域,将修正后的1588事件报文发送出去;对于pe设备,在接收到1588事件报文之后,在入口加上第三时间戳。

如果用户选择的设备为p设备和pe设备,则p设备和pe设备接收到1588标签报文之后,时间打戳器件对报文进行解析,根据报文类型识别出是一个标签报文,然后,根据预配置的标签数量、标签长度、控制字数量、控制字长度等信息来解析所述标签报文,如果在解析获得的内容中能匹配到目的mac+源mac+88f7+事件消息类型,则识别为二层组播事件报文。如果能匹配到ipv4包+端口号320,则识别为三层组播事件报文或者三层单播事件报文。其中88f7是ieee1588协议中一种协议类型;端口号320是ieee1588协 议规定的一个端口,这个端口会产生事件报文。

对于p设备,报文在p设备入口处打上进入ingress时间戳,转发到出口处打上出去egress时间戳,用两个时间戳的偏差修正cf域,再将报文发送给pe设备,然后pe设备在接收到1588事件报文之后,在入口加上第三时间戳。当然如果在标签网络中只采用pe设备,则pe设备在入口出给接收到的报文打上时间戳后,直接转发到ptp模块进行处理。

同步模块30,用于根据所述时间戳在待同步节点间对时间进行同步。

根据在步骤s20在所述事件报文中添加时间戳后,将包括时间戳的标签报文发送给其他待同步节点进行处理,其他待同步节点可以是一个也可以是多个。其他待同步节点接收到包括有时间戳的标签报文后,通过配置的时间打戳器件识别出接收到的标签报文中的事件报文,从而获得接收的标签报文中的时间戳,进而根据获得接收的标签报文中的时间戳以及自身当前的时间,对自身的时间进行时间校正。在发送给下一个待同步节点时,在出口处添加时间戳后发生给下一个待同步节点,其他的节点进行类似的处理,从而使得标签网络中各个待同步节点的达到时间同步的效果。

具体地,对于存在p设备和pe设备的标签网络,根据所述时间戳在待同步节点间对时间进行同步包括:根据所述第三时间戳和cf域计算偏差和时延,并通过对所述pe设备的时间校正对时间进行同步。

对于存在p设备和pe设备的标签网络,pe设备根据接收到p设备发送的标签报文,识别出接收到的标签报文中事件报文的cf域,然后根据cf域以及在接收到标签报文的时间,即在接收到标签报文时添加的第三时间戳,对pe设备的时间校正,从而对时间进行同步。当然在应用不同的协议或者时间算法时,其计算过程和结果可能不同。根据计算获得的第三时间、偏差和时延进行时间校正。

本发明通过在标签网络中配置时间打戳器件,使得时间打戳器件能够识别标签网络中各个待同步节点能够识别标签报文中的1588事件报文,从而在事件报文中添加时间戳,从而可以使得各个节点能够在各待同步节点之间传递的事件报文中时间戳进行时间同步。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是 利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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