一种1588事件报文的处理方法及系统的制作方法

文档序号:8001019阅读:704来源:国知局
专利名称:一种1588事件报文的处理方法及系统的制作方法
技术领域
本发明涉及网络通讯技术领域,尤其涉及一种网络时钟同步协议1588事件报文的处理方法及系统。
背景技术
IEEE (The Institute of Electrical and Electronics Engineers,电气电子工程协会)制定了 1588标准,即网络测量和控制系统的精密时钟同步协议标准。该标准定义了一种通过网络数据包获取精确时间协议(Precision Time Protocol, PTP),该协议通过硬件和软件配合,网络上各个节点获取精确的时间同步,同步精度可以达到微秒级。这种通过网络协议获取同步的方法,使系统组网连接简化,并降低了成本,同时保证了精度要求,因此它广泛的应用在测试仪器、工业、网络通讯等领域。PTP系统是由PTP设备或非PTP设备组成的分布式网络系统。该协议详细描述了系统中的实时时钟是如何相互同步。该系统是一个主从同步的分级结构,整个系统的参考母时钟(grandmaster)处于分级结构的顶层,通过交换PTP定时消息获取设备之间的同步,从设备根据获取的定时报文调整他们的时钟,达到跟分级结构的主设备的时间一致。PTP协议定义了事件(event)报文和普通(general)报文。事件报文是包含发送和接收的准确时间戳报文,而普通报文不需要准确的时间戳。事件报文包括同步报文(Sync),延时请求报文(Delay_Req),对等延时请求报文(Pdelay_Req),对等延时响应报文(Pdelay_Resp)。PTP协议同步机制是:网络的主时钟端口发出Sync报文,同时记下该报文发送时间tl,当为一步模式时,把该时间戳tl加入到报文中随路发送,当为二步模式时,把该时间戳tl在下个普通报文Follow_Up中发送;网络的从时钟端口接收到Sync报文后记下该时间t2,存储该时间戳t2和对应的报文标识,传输给软件处理,软件查找时间戳对应标识来获取该报文的时间戳tl和t2。接着从时钟端口发出Delay_Req报文,同时记下该报文发送时间t3。而主时钟端口接收到Delay_Req报文后,记下该时间t4,并把该时间戳t4通过普通报文Delay_Resp发送给从时钟端口。软件获取tl、t2、t3、t4后,根据协议处理计算时间偏差和延时,其中时间偏差Toffset = [(t2-tl)-(t4-t3)]/2,时间延时Tdelay =[(t2_tl) + (t4_t3)]/2 οPTP协议对等延时测量方法是:网络的一端A端口发出Pdelay_Req报文,同时记下该发送报文时间tl ;网络的另一端B端口接收到Pdelay_Req报文后记下该时间t2,该时间戳t2给硬件处理或软件处理。接着B端口发送Pdelay_Resp报文,同时记下该报文发送时间t3,当为一步模式时,把时间戳t3-t2加入到该报文中随路发送,当为二步模式时,把时间戳t2加入到Pdelay_Resp报文中发送,而在普通报文Pdelay_Resp_Follow_Up (对等延时请求响应的跟随报文)中发送时间戳t3。而A端口接收到Pdelay_Resp报文后,记下该时间t4,并该时间戳t4给硬件处理或软件处理。B端接收到Pdelay_Req报文后,软件有几种不同的做法,在一步模式下,直接计算t3_t2时间加到Pdelay_Resp报文校准字段correctionField中;在二步模式下,把t3_t2时间差加到Pdelay_Resp_Follow_Up报文中,或者t2加到Pdelay_Resp报文中,而t3加到Pdelay_Resp_Follow_Up报文中。A端口在得到时间值tl、t2、t3、t4后,根据对等延时测量方法测量的延时为Tdelay =[(t2_tl) + (t4_t3)]/2 οPTP协议在处理接收事件报文时,需要对接收事件报文的时间戳做处理,暂存时间戳数据和对应的报文标识,通过专用接口读出给硬件或软件处理。该处理需要耗费额外的软硬件资源,处理过程较复杂。

发明内容
本发明解决的技术问题在于提供了一种网络时钟同步协议1588事件报文的处理方法及系统,以解决目前的时间戳处理,节省了软件和硬件的开销。为解决上述问题,本发明提供了一种1588事件报文的处理方法,包括,在数据发送时,发送处理模块识别1588事件报文后,获取当前时间的时间戳作为发送时间戳,将发送时间戳数据和接收时间戳预留字段添加到1588事件报文中进行发送;在数据接收时,接收处理模块识别1588事件报文后,并获取当前时间的时间戳,把该时间戳数据添加到接收时间戳预留字段中。进一步地,所述发送处理模块识别1588事件报文具体为,在发送缓存区中写入1588事件报文后,发送处理模块从发送缓存区读出1588事件报文,解析并识别出该报文为1588事件报文。进一步地,所述获取当前时间的时间戳作为发送时间戳具体为,在发送1588事件报文帧起始标志SFD时,请求时间管理模块获取当前的时间戳。进一步地,接收处理模块识别1588事件报文后,并获取当前时间的时间戳,把该时间戳数据添加到接收时间戳预留字段中具体为,接收处理模块接收到数据时,检测到帧起始标志SFD时,请求获取当前时间的时间戳,解析并识别该接收报文为1588事件报文,若为1588事件报文,把获取的时间戳替换1588事件报文的接收时间戳预留字段;向接收缓存区写入该1588事件报文。进一步地,1588事件报文中的同步报文Sync,延时请求报文Delay_Req,对等延时请求报文Pdelay_Req在发送时间戳字段后面添加10个字节接收报文时间戳RxTimestamp ;1588事件报文中的对等延时响应报文Pdelay_Resp格式没有预留接收Pdelay_Resp报文的时间戳字段,在报文最后添加10个字节接收报文时间戳字段requestingPortReceiptTimestamp。本发明还提供了一种1588事件报文的处理系统,包括,发送处理模块,用于在数据发送时,识别1588事件报文后,获取当前时间的时间戳作为发送时间戳,将发送时间戳数据和接收时间戳预留字段添加到1588事件报文中进行发送;接收处理模块,用于在数据接收时,识别1588事件报文后,并获取当前时间的时间戳,把该接收报文时间戳数据添加到接收时间戳预留字段中;时间管理模块,用于生成发送时间戳和接收报文时间戳。
进一步地,上述系统还包括,PTP协议栈,用于产生1588事件报文,通过发送通讯接口把所述1588事件报文写入发送缓存中;并且用于通过接收通讯接口从接收缓存中读取接收报文数据,获取1588事件报文和对应的时间戳数据;发送通讯接口,用于把PTP协议栈产生的1588事件报文数据写入发送缓存中;发送缓存,用于存储所述PTP协议栈产生的1588事件报文,并且在发送处理模块需要数据时读出缓存中的报文数据,完成对缓存的管理和控制;接收缓存,用于接收接收处理模块接收到的1588事件报文;接收通讯接口,用于从接收缓存中读出1588事件报文,把所述1588事件报文传输给PTP协议栈处理;时间管理模块,用于根据PTP协议栈校准时间。 进一步地,所述发送处理模块具体用于,当检测到网络空闲时,若发送缓存中有报文需要发送,进入发送状态,产生帧前导preamble和帧起始界定符SFD ;同时读取发送缓存的数据,解析发送的报文,如果该发送报文为1588事件报文,在发送帧起始界定符SFD后,从时间管理模块获取当前发送的精确时间戳作为发送时间戳数据,并将该发送时间戳数据和接收时间戳预留字段添加到1588事件报文中。进一步地,若所述1588事件报文为对等延时响应事件报文,则所述发送处理模块还用于,计算发送时间t3和对等延时响应事件报文接收的时间t2的差值,把该差值替换校准字段;接收时间戳预留字段写入全0,产生循环冗余校验码CRC,并把CRC数据添加到发送数据的末尾并发送出去。进一步地,所述接收处理模块具体用于,当检测到数据有效时,接收数据并判断数据的合法性,当接收数据为帧起始界定符SFD时,通过时间管理模块获取接收数据的接收时间戳数据,并且把接收数据写入接收缓存中,当接收处理模块解析该数据包为1588事件报文时,把接收报文时间戳数据替换1588事件报文的接收时间戳预留字段,以及在接收数据时计算循环冗余校验码CRC校验,并把校验结果信息写入接收缓存。采用本发明提供的技术方案,与现有技术相比,更加节省了软件和硬件资源,降低了处理的复杂度,同时可以做到兼容目前的技术方案,保证设备之间的互操作性。


此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是本发明第一实施例流程图;图2是本发明实施例1588事件报文Sync, Delay_Req, Pdelay_Req报文的格式;图3是本发明实施例的1588事件报文Pdelay_Resp报文的格式;图4是本发明第二实施例结构图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明在每个1588事件报文字段的最后添加10个字节接收时间戳字段。发送事件报文时,可以预留10个字节的接收时间戳字段发送,而接收事件报文时,把时间戳添加到接收时间戳字段中,或者在接收到标准1588事件报文字段的最后添加接收时间戳字段,跟本发明定义的报文格式相同。如图1所示,是本发明第一实施例流程图,提供了一种1588事件报文的处理方法,具体包括,步骤S101,在数据发送时,发送处理模块识别1588事件报文后,获取当前时间的时间戳,把该当前时间的时间戳作为发送时间戳(TxTimestamp)数据和接收时间戳(RxTimestamp)预留字段添加到1588事件报文中并发送出去,当兼容目前标准1588事件报文格式时不添加接收预留时间戳字段。作为一个示例,上层模块向发送缓存区中写入1588事件报文,发送处理模块从发送缓存区读出1588事件报文,解析和识别出该报文为1588事件报文,在发送该报文帧起始标志(Start of Frame delimiter, SFD)时,请求时间管理模块获取当前的时间戳;发送处理模块在发送1588事件报文时,把获取的时间戳加入到1588事件报文的发送时间戳(TxTimestamp)字段中并发送出去;发送处理模块发送完发送时间戳(TxTimestamp)字段后,发送10个字节的接收时间戳(RxTimestamp)保留字段,当考虑兼容标准1588事件报文格式时可以不添加RxTimestamp字段。步骤S102,在数据接收时,接收处理模块识别1588事件报文后,并获取当前时间的时间戳,把该时间戳数据添加到接收预留时间戳预留字段。作为一个示例,接收处理模块接收到数据时,检测到帧起始标志SFD时,请求获取当前时间的时间戳;接收处理模块解析并识别该接收报文为1588事件报文,如果为1588事件报文,把获取的时间戳替换1588事件报文的接收时间戳(RxTimestamp)字段;接收处理模块向接收缓存区写入该1588事件报文;上层模块从接收缓存区读出报文,提取1588事件报文的时间戳信息处理。在上述方法中,如图2所示,是本发明实施例1588事件报文Sync, Delay_Req,Pdelay_Req报文的格式。在1588标准报文中,事件报文Sync和Delay_Req格式只有发送报文时间戳字段TxTimestamp,本发明在硬件和软件处理时扩展报文字段,在TxTimestamp字段后面添加10个字节接收报文时间戳RxTimestamp。在1588标准报文中,事件报文Pdelay_Req最后10个字节为保留字段,在硬件和软件处理时重新定义该字段为接收报文时间戮 RxTimestamp。上述方法中,如图3所示,是本发明实施例的1588事件报文Pdelay_Resp报文的格式。在1588标准报文中,事件报文Pdelay_Resp格式没有预留接收Pdelay_Resp报文的时间戳字段,本发明在硬件和软件处理时扩展字段,在报文最后添加10个字节接收报文时间戮字段 requestingPortReceiptTimestamp。
如图4所示,是本发明第二实施例结构图,提供了一种1588事件报文的处理系统,具体包括PTP协议栈400,发送通讯接口 401,发送缓存402,发送处理模块403,时间管理模块404,接收处理模块405,接收缓存406,接收通讯接口 407,其中,PTP协议栈100实现1588协议,完成网络之间的时间同步协议处理,线路延时测量和1588维护管理功能等。具体地,PTP协议栈400,用于产生1588事件报文,通过发送通讯接口 401把报文数据写入发送缓存402中;并且用于通过接收通讯接口 407从接收缓存406中读取接收报文数据,获取1588事件报文和对应的时间戳数据。发送通讯接口 401,用于把PTP协议栈的报文数据写入发送缓存402中,完成发送接口的转换功能。发送缓存402,用于向缓存中写入需要发送的报文,并且在发送处理模块103需要数据时读出缓存中的报文数据,完成对缓存的管理和控制。发送处理模块403主要完成网口 MAC发送功能,用于当检测到网络空闲时,如果发送缓存402中有报文需要发送,进入发送状态,产生帧前导preamble和巾贞起始界定符SFD ;同时读取发送缓存402的数据,解析发送的报文,如果该发送报文为1588事件报文,在发送帧起始界定符SFD后,从时间管理模块404获取当前发送的精确时间戳作为发送时间戳数据,并将该发送时间戳数据和接收时间戳预留字段(RxTimestamp 或 requestingPortReceiptTimestamp 字段)添加到 1588 事件报文中;若该发送报文为用户数据包UDP报文(1588报文可以封装在层2和层4以太网报文中,当封装在层4的报文中时就是UDP的报文)时,重新计算加入发送时间戳数据的校验和checksum,发送时间戳数据替换在1588事件报文的发送时间戳字段TxTimestamp并发送出去;作为一个示例,对Pdelay_Resp事件报文,需要计算发送时间t3和事件报文Pdelay_Req接收的时间t2的差值,把该差值替换校准字段correctionField。RxTimestamp或requestingPortReceiptTimestamp字段写入全O发送,当兼容标准1588报文格式时该字段不要添加。所有发送的数据都经过计算,产生循环冗余校验码(Cyclic RedundancyCheck, CRC),并把CRC数据添加到发送数据的最后并发送出去。时间管理模块404负责本地时间的管理,用于生成发送和接收报文时间,同时根据PTP协议栈校准时间。接收处理模块405主要完成网口 MAC接收功能,当检测到数据有效时,接收数据并判断数据的合法性,当接收数据为帧起始界定符SFD时,通过时间管理模块获取接收数据的接收时间戳数据;接收处理模块405把接收数据写入接收缓存406中;当接收处理模块405解析该数据包为1588事件报文时,把接收时间戳数据替换1588事件报文的RxTimestamp 或 requestingPortReceiptTimestamp 字段,或者在标准 1588 事件报文字段最后添加接收时间戳(RxTimestamp)数据,并把该时间戳写入接收缓存406中;同时,接收处理模块405在接收数据时对数据计算循环冗余校验码CRC校验,并把校验结果信息写入接收缓存406 ;接收缓存406管理接收数据的缓存,用于接收接收处理模块405向缓存中写入得到数据;接收通讯接口 407从接收缓存406中读出数据,把数据传输给PTP协议栈处理,完成接收接口的转换。
上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
权利要求
1.一种1588事件报文的处理方法,其特征在于,包括, 在数据发送时,发送处理模块识别1588事件报文后,获取当前时间的时间戳作为发送时间戳,将发送时间戳数据和接收时间戳预留字段添加到1588事件报文中进行发送; 在数据接收时,接收处理模块识别1588事件报文后,并获取当前时间的时间戳,把该时间戳数据添加到接收时间戳预留字段中。
2.根据权利要求1所述的方法,其特征在于,所述发送处理模块识别1588事件报文具体为, 在发送缓存区中写入1588事件报文后,发送处理模块从发送缓存区读出1588事件报文,解析并识别出该报文为1588事件报文。
3.根据权利要求2所述的方法,其特征在于,所述获取当前时间的时间戳作为发送时间戳具体为, 在发送1588事件报文帧起始标志SFD时,请求时间管理模块获取当前的时间戳。
4.根据权利要求3所 述的方法,其特征在于,接收处理模块识别1588事件报文后,并获取当前时间的时间戳,把该时间戳数据添加到接收时间戳预留字段中具体为, 接收处理模块接收到数据时,检测到帧起始标志SFD时,请求获取当前时间的时间戳,解析并识别该接收报文为1588事件报文,若为1588事件报文,把获取的时间戳替换1588事件报文的接收时间戳预留字段;向接收缓存区写入该1588事件报文。
5.根据权利要求1至4任一所述的方法,其特征在于,1588事件报文中的同步报文Sync,延时请求报文Delay_Req,对等延时请求报文Pdelay_Req在发送时间戳字段后面添加10个字节接收报文时间戳RxTimestamp ; 1588事件报文中的对等延时响应报文Pdelay_Resp格式没有预留接收Pdelay_Resp报文的时间戳字段,在报文最后添加接收报文时间戳字段。
6.一种1588事件报文的处理系统,其特征在于,包括, 发送处理模块,用于在数据发送时,识别1588事件报文后,获取当前时间的时间戳作为发送时间戳,将发送时间戳数据和接收时间戳预留字段添加到1588事件报文中进行发送; 接收处理模块,用于在数据接收时,识别1588事件报文后,并获取当前时间的时间戳,把该接收报文时间戳数据添加到接收时间戳预留字段中; 时间管理模块,用于生成发送时间戳和接收报文时间戳。
7.根据权利要求6所述的系统,其特征在于,还包括, 精确时间协议栈PTP,用于产生1588事件报文,通过发送通讯接口把所述1588事件报文写入发送缓存中;并且用于通过接收通讯接口从接收缓存中读取接收报文数据,获取1588事件报文和对应的时间戳数据; 发送通讯接口,用于把PTP协议栈产生的1588事件报文数据写入发送缓存中; 发送缓存,用于存储所述PTP协议栈产生的1588事件报文,并且在发送处理模块需要数据时读出缓存中的报文数据,完成对缓存的管理和控制; 接收缓存,用于接收接收处理模块接收到的1588事件报文; 接收通讯接口,用于从接收缓存中读出1588事件报文,把所述1588事件报文传输给PTP协议栈处理换;时间管理模块,用于根据PTP协议栈校准时间。
8.根据权利要求7所述的系统,其特征在于,所述发送处理模块具体用于, 当检测到网络空闲时,若发送缓存中有报文需要发送,进入发送状态,产生帧前导和帧起始界定符;同时读取发送缓存的数据,解析发送的报文,如果该发送报文为1588事件报文,在发送帧起始界定符SFD后,从时间管理模块获取当前发送的精确时间戳作为发送时间戳数据,并将该发送时间戳数据和接收时间戳预留字段添加到1588事件报文中。
9.根据权利要求8所述的系统,其特征在于,若所述1588事件报文为对等延时响应事件报文,则所述发送处理模块还用于, 计算发送时间t3和对等延时响应事件报文接收的时间t2的差值,把该差值替换校准字段;接收时间戳预留字段写入全O,产生循环冗余校验码CRC,并把CRC数据添加到发送数据的末尾并发送出去。
10.根据权利要求7所述的系统,其特征在于,所述接收处理模块具体用于, 当检测到数据有效时,接收数据并判断数据的合法性,当接收数据为帧起始界定符SFD时,通过时间管理模块获取接收数据的接收时间戳数据,并且把接收数据写入接收缓存中,当接收处理模块解析该数据包为1588事件报文时,把接收报文时间戳数据替换1588事件报文的接收时间戳预留字段,以及在接收数据时计算循环冗余校验码CRC校验,并把校验结果信息写入接收 缓存。
全文摘要
本发明涉及网络通讯技术领域,提供了一种1588事件报文的处理方法,包括,在数据发送时,发送处理模块识别1588事件报文后,获取当前时间的时间戳作为发送时间戳,将发送时间戳数据和接收时间戳预留字段添加到1588事件报文中进行发送;在数据接收时,接收处理模块识别1588事件报文后,并获取当前时间的时间戳,把该时间戳数据添加到接收时间戳预留字段中。本发明还提供了一种1588事件报文的处理系统。采用本发明提供的技术方案,更加节省了软件和硬件资源,降低了处理的复杂度,同时可以做到兼容目前的技术方案,保证设备之间的互操作性。
文档编号H04J3/06GK103138887SQ201110398599
公开日2013年6月5日 申请日期2011年12月5日 优先权日2011年12月5日
发明者张波, 王雪松, 梁敏超, 张宣平, 徐毓斌 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1