一种工业以太网中的同步方法及设备转让专利

申请号 : CN201410006990.X

文献号 : CN104767605B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周朝阳姚詹图胡永辉林应荃

申请人 : 维谛技术有限公司

摘要 :

本发明实施例提供了一种工业以太网中的同步方法及设备,该方法包括:生成携带上一次通讯周期得到的与从站的时间计数器的偏差值的业务数据包,并将该业务数据包发送至从站,以使从站根据该偏差值对时间计数器进行同步调整,这样主站就不需要向从站发送特定的同步帧来实现主站与从站之间的同步,而是直接将同步信息携带在平常通讯时发送的业务数据包中,从而节约了网络带宽,并避免了主站与从站之间发送同步帧时不能发送正常业务数据包的问题,进而提升了系统的通讯效率。

权利要求 :

1.一种工业以太网中的同步方法,其特征在于,包括:生成携带上一次通讯周期得到的同步信息的业务数据包;所述同步信息是根据上一次通讯周期中主站发送业务数据包的发送时刻、接收反馈数据包的接收时刻以及反馈数据包中携带的时间戳得到的时间计数器的偏差值;

将所述业务数据包发送至从站,以使所述从站根据所述同步信息对时间计数器进行同步调整;

其中,所述偏差值是通过以下方式计算得到的:

Ts=[(TZ_tran+TZ_rev)-Tm]/2;

其中,TZ_tran为上一次通讯周期中所述主站发送业务数据包的发送时刻,TZ_rev为上一次通讯周期中所述主站接收反馈数据包的接收时刻,Tm为上一次通讯周期中反馈数据包中携带的时间戳;

其中,Tm=(TC_rev+Naev)+(TC_res+Naev);

其中,TC_rev为上一次通讯周期中所述从站接收到业务数据包的接收时刻,TC_res为上一次通讯周期中所述从站向所述主站返回反馈数据包的反馈时刻,Naev为所述从站最近存储的所述主站下发的设定数量个偏差值的平均值。

2.如权利要求1所述的方法,其特征在于,在生成携带上一次通讯周期得到的同步信息的业务数据包之前,还包括:在所述业务数据包中确定出用于携带数据信息的数据段;

在所述数据段中写入在上一次通讯周期得到的同步信息。

3.如权利要求1所述的方法,其特征在于,在将所述业务数据包发送至所述从站之后,还包括:获取发送所述业务数据包的发送时刻;

在接收所述从站返回的携带时间戳的反馈数据包时,记录接收所述反馈数据包的接收时刻;

将所述发送时刻、所述接收时刻之和与所述反馈数据包中的时间戳之间的差值的一半作为本次通讯周期的同步信息。

4.一种工业以太网中的同步方法,其特征在于,包括:接收主站发送的携带上一次通讯周期得到的时间计数器的偏差值的业务数据包;所述偏差值是根据上一次通讯周期中主站发送业务数据包的发送时刻、接收反馈数据包的接收时刻以及反馈数据包中携带的时间戳得到的;

根据所述偏差值,获取与主站之间的同步信息,并生成携带同步信息的反馈数据包,所述反馈数据包为与主站之间的正常业务数据包;

将所述反馈数据包发送至所述主站;

其中,所述偏差值是通过以下方式计算得到的:

Ts=[(TZ_tran+TZ_rev)-Tm]/2;

其中,TZ_tran为上一次通讯周期中所述主站发送业务数据包的发送时刻,TZ_rev为上一次通讯周期中所述主站接收反馈数据包的接收时刻,Tm为上一次通讯周期中反馈数据包中携带的时间戳;

其中,Tm=(TC_rev+Naev)+(TC_res+Naev);

其中,TC_rev为上一次通讯周期中从站接收到业务数据包的接收时刻,TC_res为上一次通讯周期中所述从站向所述主站返回反馈数据包的反馈时刻,Naev为所述从站最近存储的所述主站下发的设定数量个偏差值的平均值。

5.如权利要求4所述的方法,其特征在于,根据所述偏差值,获取与主站之间的同步信息,并生成携带同步信息的反馈数据包,包括:将本次通讯周期得到的偏差值与保存的之前通讯周期获得N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;

确定接收所述业务数据包时记录的接收时刻,以及向所述主站发送反馈数据包的反馈时刻;

将所述接收时刻与平均偏差值之和以及反馈时刻与平均偏差值之和的和确定为所述同步信息;

将所述同步信息写入所述反馈数据包中用于携带数据信息的数据段中,生成携带同步信息的反馈数据包。

6.如权利要求4所述的方法,其特征在于,在将所述反馈数据包发送至所述主站之后,还包括:将所述偏差值与保存的之前通讯周期的N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;

根据所述平均偏差值调整时间计数器,使得与主站的时间计数器的时间同步。

7.一种工业以太网中的同步设备,其特征在于,包括:生成模块,用于生成携带上一次通讯周期得到的同步信息的业务数据包;所述同步信息是根据上一次通讯周期中主站发送业务数据包的发送时刻、接收反馈数据包的接收时刻以及反馈数据包中携带的时间戳得到的时间计数器的偏差值;

发送模块,用于将所述业务数据包发送至从站;

其中,所述偏差值是通过以下方式计算得到的:

Ts=[(TZ_tran+TZ_rev)-Tm]/2;

其中,TZ_tran为上一次通讯周期中所述主站发送业务数据包的发送时刻,TZ_rev为上一次通讯周期中所述主站接收反馈数据包的接收时刻,Tm为上一次通讯周期中反馈数据包中携带的时间戳;

其中,Tm=(TC_rev+Naev)+(TC_res+Naev);

其中,TC_rev为上一次通讯周期中所述从站接收到业务数据包的接收时刻,TC_res为上一次通讯周期中所述从站向所述主站返回反馈数据包的反馈时刻,Naev为所述从站最近存储的所述主站下发的设定数量个偏差值的平均值。

8.如权利要求7所述的设备,其特征在于,还包括:

确定模块,用于在所述业务数据包中确定出用于携带数据信息的数据段;

写入模块,用于在所述数据段中写入在上一次通讯周期得到的同步信息。

9.如权利要求7所述的设备,其特征在于,还包括:

获取模块,用于获取发送所述业务数据包的发送时刻;

记录模块,用于在接收所述从站返回的携带时间戳的反馈数据包时,记录接收所述反馈数据包的接收时刻;

处理模块,用于将所述发送时刻、所述接收时刻之和与所述反馈数据包中的时间戳之间的差值的一半作为本次通讯周期的同步信息。

10.一种工业以太网中的同步设备,其特征在于,包括:接收模块,用于接收主站发送的携带上一次通讯周期得到的时间计数器的偏差值的业务数据包;所述偏差值是根据上一次通讯周期中主站发送业务数据包的发送时刻、接收反馈数据包的接收时刻以及反馈数据包中携带的时间戳得到的;

处理模块,用于根据所述偏差值,获取与主站之间的同步信息,并生成携带同步信息的反馈数据包,所述反馈数据包为与主站之间的正常业务数据包;

发送模块,用于将所述反馈数据包发送至所述主站;

其中,所述偏差值是通过以下方式计算得到的:

Ts=[(TZ_tran+TZ_rev)-Tm]/2;

其中,TZ_tran为上一次通讯周期中所述主站发送业务数据包的发送时刻,TZ_rev为上一次通讯周期中所述主站接收反馈数据包的接收时刻,Tm为上一次通讯周期中反馈数据包中携带的时间戳;

其中,Tm=(TC_rev+Naev)+(TC_res+Naev);

其中,TC_rev为上一次通讯周期中从站接收到业务数据包的接收时刻,TC_res为上一次通讯周期中所述从站向所述主站返回反馈数据包的反馈时刻,Naev为所述从站最近存储的所述主站下发的设定数量个偏差值的平均值。

11.如权利要求10所述的设备,其特征在于,所述处理模块,包括:处理单元,用于将本次通讯周期得到的偏差值与保存的之前通讯周期获得N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;

确定单元,用于确定接收所述业务数据包时记录的接收时刻,以及向所述主站发送反馈数据包的反馈时刻;

同步确定单元,用于将所述接收时刻与平均偏差值之和以及反馈时刻与平均偏差值之和的和确定为所述同步信息;

写入单元,用于将所述同步信息写入所述反馈数据包中用于携带数据信息的数据段中,生成携带同步信息的反馈数据包。

12.如权利要求10所述的设备,其特征在于,还包括:确定模块,用于将所述偏差值与保存的之前通讯周期的N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;

调整模块,用于根据所述平均偏差值调整时间计数器,使得与主站的时间计数器的时间同步。

说明书 :

一种工业以太网中的同步方法及设备

技术领域

[0001] 本发明涉及通讯技术领域,尤其涉及一种工业以太网中的同步方法及设备。

背景技术

[0002] 当前,在工业以太网网络中至少包括了一个主站和若干从站,每个从站至少包含了两个网口,主站与从站之间以及各个从站之间通过标准网线收尾连接(如图1所示),从而形成一个链式网络,因此工业以太网的同步性能是其最重要的性能指标之一,通过良好的同步,各个节点可以在相同时刻进行相应的操作。
[0003] 在现有技术方案中,同步过程是通过同步帧来完成的,即:主站向从站通过发送单独的同步帧请求同步时钟信息,被请求的从站向主站发送相应的同步响应帧返回同步时钟信息。为了保证上传和下发链路的对等性,在进行同步帧的请求和响应的过程中,系统链路不能发送正常数据,因此同步帧的存在不仅占用了系统链路带宽,而且降低了系统的通讯效率。

发明内容

[0004] 本发明实施例提供一种工业以太网中的同步方法及设备,用以解决现有技术中工业以太网中同步帧的存在占用了系统链路带宽,而且降低系统的通讯效率的问题。
[0005] 其具体的技术方案如下:
[0006] 一种工业以太网中的同步方法,包括:
[0007] 生成携带上一次通讯周期得到的同步信息的业务数据包;
[0008] 将所述业务数据包发送至所述从站,以使所述从站根据所述同步信息对时间计数器进行同步调整。
[0009] 可选的,在生成携带上一次通讯周期得到的同步信息的业务数据包之前,还包括:
[0010] 在所述业务数据包中确定出用于携带数据信息的数据段;
[0011] 在所述数据段中写入在上一次通讯周期得到的同步信息。
[0012] 可选的,在将所述业务数据包发送至所述从站之后,还包括:
[0013] 获取发送所述业务数据包的发送时刻;
[0014] 在接收所述从站返回的携带时间戳的反馈数据包时,记录接收所述反馈数据包的接收时刻;
[0015] 将所述发送时刻、所述接收时刻之和与所述反馈数据包中的时间戳之间的差值的一半作为本次通讯周期的同步信息。
[0016] 一种工业以太网中的同步方法,包括:
[0017] 接收主站发送的携带上一次通讯周期得到的时间计数器的偏差值的业务数据包;
[0018] 根据所述偏差值,获取与主站之间的同步信息,并生成携带同步信息的反馈数据包,所述反馈数据包为与主站之间的正常业务数据包;
[0019] 将所述反馈数据包发送至所述主站。
[0020] 可选的,根据所述偏差值,获取与主站之间的同步信息,并生成携带同步信息的反馈数据包,包括:
[0021] 将本次通讯周期得到的偏差值与保存的之前通讯周期获得N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;
[0022] 确定接收所述业务数据包时记录的接收时刻,以及向所述主站发送反馈数据包的反馈时刻;
[0023] 将所述接收时刻与平均偏差值之和以及反馈时刻与平均偏差值之和的和确定为所述同步信息;
[0024] 将所述同步信息写入所述反馈数据包中用于携带数据信息的数据段中,生成携带同步信息的反馈数据包。
[0025] 可选的,在将所述反馈数据包发送至所述主站之后,还包括:
[0026] 将所述偏差值与保存的之前通讯周期的N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;
[0027] 根据所述平均偏差值调整时间计数器,使得与主站的时间计数器的时间同步。
[0028] 一种工业以太网中的同步设备,包括:
[0029] 生成模块,用于生成携带上一次通讯周期得到的同步信息的业务数据包;
[0030] 发送模块,用于将所述业务数据包发送至所述从站。
[0031] 可选的,还包括:
[0032] 确定模块,用于在所述业务数据包中确定出用于携带数据信息的数据段;
[0033] 写入模块,用于在所述数据段中写入在上一次通讯周期得到的同步信息。
[0034] 可选的,还包括:
[0035] 获取模块,用于获取发送所述业务数据包的发送时刻;
[0036] 记录模块,用于在接收所述从站返回的携带时间戳的反馈数据包时,记录接收所述反馈数据包的接收时刻;
[0037] 处理模块,用于将所述发送时刻、所述接收时刻之和与所述反馈数据包中的时间戳之间的差值的一半作为本次通讯周期的同步信息。
[0038] 一种工业以太网中的同步设备,包括:
[0039] 接收模块,用于接收主站发送的携带上一次通讯周期得到的时间计数器的偏差值的业务数据包;
[0040] 处理模块,用于根据所述偏差值,获取与主站之间的同步信息,并生成携带同步信息的反馈数据包,所述反馈数据包为与主站之间的正常业务数据包;
[0041] 发送模块,用于将所述反馈数据包发送至所述主站。
[0042] 可选的,所述处理模块,包括:
[0043] 处理单元,用于将本次通讯周期得到的偏差值与保存的之前通讯周期获得N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;
[0044] 确定单元,用于确定接收所述业务数据包时记录的接收时刻,以及向所述主站发送反馈数据包的反馈时刻;
[0045] 同步确定单元,用于将所述接收时刻与平均偏差值之和以及反馈时刻与平均偏差值之和的和确定为所述同步信息;
[0046] 写入单元,用于将所述同步信息写入所述反馈数据包中用于携带数据信息的数据段中,生成携带同步信息的反馈数据包。
[0047] 可选的,还包括:
[0048] 确定模块,用于将所述偏差值与保存的之前通讯周期的N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;
[0049] 调整模块,用于根据所述平均偏差值调整时间计数器,使得与主站的时间计数器的时间同步。
[0050] 本发明实施例提供了一种工业以太网中的同步方法及装置,该方法包括:在本本次通讯周期,生成携带上一次通讯周期得到的与从站的时间计数器的偏差值的业务数据包,并将该业务数据包发送至从站,以使从站根据该偏差值对时间计数器进行同步调整,其中,该业务数据包为与从站之间的正常业务数据包,这样主站就不需要向从站发送特定的同步帧来实现主站与从站之间的同步,而是直接将同步信息携带在平常通讯时发送的业务数据包中,从而节约了网络带宽,并避免了主站与从站之间发送同步帧时不能发送正常业务数据包的问题,进而提升了系统的通讯效率。

附图说明

[0051] 图1为现有技术中工业以太网的组网结构示意图;
[0052] 图2为本发明实施例中一种工业以太网中的同步方法的流程图;
[0053] 图3为本发明实施例中主站下发的业务数据包的结构示意图;
[0054] 图4为本发明实施例中主站与从站之间的同步实现过程示意图;
[0055] 图5为本发明实施例中另一种工业以太网中的同步方法的流程图;
[0056] 图6为本发明实施例中从站反馈的反馈数据包的结构示意图;
[0057] 图7为本发明实施例中一种工业以太网中的同步设备的结构示意图;
[0058] 图8为本发明实施例中另一种工业以太网中的同步设备的结构示意图。

具体实施方式

[0059] 当前,在工业以太网中主站可以连接多个从站,为了保证主站与从站之间的时间同步,主站会单独向从站发送同步帧请求同步时钟信息。被请求的从站将携带同步时钟信息的同步响应帧返回至主站。以IEEE1588v2协议为例,对一个从站进行一次同步至少需要交互3个同步帧,而一个同步帧除了26bytes的以太网帧头帧尾之外,还需要34bytes的消息头和最少10bytes的时钟信息以及12bytes的包间间隔。
[0060] 因此通过发送同步帧来实现主站与从站之间的时间同步,不仅占用了系统链路的带宽,而且在此过程中,系统链路上不能传输其他业务数据包,降低了系统的通讯效率。
[0061] 在本发明实施例中为了解决上述问题,提供了一种同步方法,该方法包括:在本通讯周期,,主站生成携带上一个通讯周期得到的主站与从站的时间计数器的偏差值的业务数据包,并将该业务数据包发送至从站,以使从站根据该偏差值对自身的时间计数器进行同步调整。其中,该业务数据包为主站与从站之间的业务通讯时发送的业务数据包。采用上述方案,主站就不需要向从站发送特定的同步帧来实现主站与从站之间的同步,而是直接将同步信息携带在平常通讯时发送的业务数据包中,从而节约了网络带宽,并避免了主站与从站之间发送同步帧时不能发送正常业务数据包的问题,进而提升了系统的通讯效率。
[0062] 其中,主站下发第一个业务数据包至主站接收最后一个从站返回的反馈数据包为一个通讯周期。
[0063] 下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解,本发明实施例以及实施例中的具体技术特征只是对本发明技术方案的说明而不是限定。
[0064] 实施例一:
[0065] 如图2所示为本发明实施例中一种工业以太网中的同步方法的流程图,该方法包括:
[0066] S201,生成携带上一次通讯周期得到的同步信息的业务数据包;
[0067] S202,将业务数据包发送至从站。
[0068] 首先来讲,如图1所示,主站0通过网口E1连接至从站1的网口A,然后从站1的网口B连接至从站2的,按照此连接方式依次连接至从站N,从而主站0与从站N就形成一条独立的通讯链路。
[0069] 在由主站0与从站1~N组成的系统上电时,该系统首先进行自检,主站将首先发起枚举数据包,该枚举数据包用于为每个从站分配ID,其自检的具体实现过程如下:
[0070] 首先主站0的默认ID为0,然后主站生成枚举数据包,该枚举数据包中携带了从站ID、从站的配置信息、从站反馈数据包的有效长度,主站将该枚举数据包发送至路径至第一个从站,第一个从站在接收到枚举数据包之后,获取枚举数据包中的初始ID,第一个从站将在初始ID上加1得到自身的ID,第一个从站将自身默认的ID为修改为在初始ID上加1得到的ID,并禁止ID修改标识位。这样第一个从站的ID将不再被修改,同时从站1将生成的反馈数据包返回至主站,该反馈数据包的有效长度为主站约定的有效长度,在反馈数据包中还携带了第一个从站的ID、从站类型、从站的运行参数等信息。
[0071] 第一个从站向主站返回的反馈数据包的同时,还将携带自身ID的枚举数据包转发至第二个从站,然后第二个从站在第一个从站的ID上加1得到自身的ID,同时禁止ID修改标识位,并执行与第一个从站相同的反馈过程。后续的所有从站都按此规律执行,直至最后的第N个从站连通。
[0072] 在主站与所有从站之间的链路连通时,该系统的自检过程完成,此时该系统将进入到业务通讯阶段,其同步的实现过程如下:
[0073] 系统进入到业务通讯阶段时,主站将向所有的从站发送业务数据包,在该业务数据包中携带了同步信息。为了使业务数据包中携带同步信息,本发明实施例中对通讯数据包的格式进行了相应调整,具体格式如图3所示。
[0074] 在图3中该业务数据包包括:帧头为7bytes的前导符,然后依次为1bytes的起始符、6bytes的目的地址、6bytes的源地址、2bytes的长度类型、46~1500bytes的数据段、4bytes的校验序列。在本发明实施例中为了使得该业务数据包能够携带同步信息,对业务数据包中的数据字段进行重新定义,即:46~1500bytes的数据段包括:2bytes的链路控制字节、4bytes的从站偏差值、40~1494bytes的主站下发命令数据,然后主站将同步信息写入到4bytes的从站偏差值中,从而该业务数据包就能够携带同步信息,当然图3中所示的数据包结构只是本发明实施例中的一种情况。
[0075] 通过对业务数据包中数据字段的重新定义,该业务数据包中就将携带同步信息,然后,主站将在每个通讯周期将生成携带同步信息的业务数据包,并将携带同步信息的业务数据包发送至从站,因此主站就不需要向从站发送单独的同步帧,这样节约了系统的宽带,同时也提高了系统的通讯效率。
[0076] 进一步,为了避免从站的数据包堆积以及包间间隔出现偏差,因此主站将按照预设时间间隔以及“由远及近”的方式向从站发送携带同步信息的业务数据包,即:先向离主站最远的第N个从站发送业务数据包,然后按照预设时间间隔向第N个从站相邻的第N-1个从站发送业务数据包,最后向离主站最近的第一个从站发送业务数据包。如图4所示为一个主站向3个从站下发数据的流程示意图。在图4中,主站首先向最远的从站3发送业务数据包,然后在预设时间间隔后向从站2发送业务数据包,最后向最近的从站1发送业务数据包。若是在100Mbit/s速率的以太网中该预设时间间隔可以为1us,当然,在不同速率的以太网中该预设时间间隔可以不相同。
[0077] 主站向从站发送业务数据包时,主站将记录下发业务数据包的发送时刻TZ_tran以及从站的ID。
[0078] 在主站接收到从站返回的携带时间戳的反馈数据包时,主站将记录接收到该反馈数据包的接收时刻TZ_rev。然后主站将获取从站返回的反馈数据包中携带的时间戳Tm,主站将基于发送时刻TZ_tran、接收时刻TZ_rev以及时间戳Tm,得到主站与该从站之间的同步信息,该同步信息为主站与该从站之间的时间计数器的偏差值Ts,该偏差值可以通过公式(1)得到:
[0079] Ts=[(TZ_tran+TZ_rev)-Tm]/2(1)
[0080] 该偏差值Ts为本次通讯周期的偏差值,在下一个通讯周期,主站会将该偏差值Ts写入到业务数据包的数据段中,并在下一次通讯周期将携带该偏差值Ts的业务数据包发送至对应反馈数据包中ID的从站,由于偏差值是主站基于从站反馈的时间戳Tm以及公式(1)得到,这样主站可以在接收到从站的反馈数据包之后及时的得到与发送反馈数据包的从站之间的时间偏差值,这样提升了同步过程的效率。
[0081] 比如,在图4中,主站要确定与从站3之间的偏差值时,主站将记录向从站3发送业务数据包3时的发送时刻TZ_tran_1。在接收到从站3返回反馈数据包时,记录接收到该数据包的接收时刻TZ_rev_3,然后主站将基于发送时刻TZ_tran_1、接收时刻TZ_rev_3以及反馈数据包中的时间戳Tm得到下一次通讯周期主站与从站之间的偏差值。即:
[0082] Ts_3=[(TZ_tran_1+TZ_rev_3)-T3]/2
[0083] 主站在得到偏差值Ts_3之后,会在下一个通讯周期时,将该偏差值Ts_3携带在发送至从站3的业务数据包3的数据段中,从而从站3在下一个通讯周期时,将根据Ts_3来调整自身的时间计数器,即:在时间计数器当前的时间上增加该偏差值Ts_3,从而实现从站与主站之间的时间同步。
[0084] 实施例二:
[0085] 本发明实施例还提供了一种工业以太网中的同步的方法,如图5所示为本发明实施例中一种同步方法的流程图,该方法包括:
[0086] S501,在本次通讯周期,接收主站发送的携带上一次通讯周期得到的时间计数器的偏差值的业务数据包。
[0087] 首先来讲,主站与从站之间的连接关系如图1所示,主站在每个通讯周期都将向所有从站发送业务通讯时发送的业务数据包,并且在该业务数据包中携带了上一次通讯周期得到的主站与从站之间的时间计数器的偏差值Ts,该偏差值的计算在是实施例一中已经详细描述,此处就不再赘述。
[0088] S502,根据偏差值,获取与主站之间的同步信息,并生成携带同步信息的反馈数据包。
[0089] 在从站接收到主站发送的携带偏差值Ts的业务数据包时,从站将首先记录接收到业务数据包的接收时刻TC_rev,同时从站将保存业务数据包中的偏差值Ts,然后从站确定向主站返回反馈数据包的反馈时刻TC_res,同时从站将调取最近存储的主站下发的N个偏差值,N为大于等于1的正整数,并得到这N个偏差值的算数平均值Naev,将Naev作为平均偏差值,从站将根据公式(2)得到返回给主站的时间戳Tm:
[0090] Tm=(TC_rev+Naev)+(TC_res+Naev) (2)
[0091] 从站将时间戳Tm作为同步信息,并将同步信息添加至反馈数据包中用于携带数据信息的数据段中,从而生成携带同步信息的反馈数据包,该反馈数据包的具体格式如图6所示,在图6中,该反馈数据包中40-1500bytes的数据段中定义了2bytes的链路控制字节、4bytes从站时间戳信息、40~1494bytes的从站上传反馈数据,从站会将时间戳写入到
4bytes的从站时间戳信息中。
[0092] S503,将反馈数据包发送至主站。
[0093] 从站将携带同步信息的反馈数据包发送至主站之后,从站将基于得到的平均偏差值Naev调整自身的时间计数器,即:从站在自身时间计数器当前的时间上加上平均偏差值Naev,从而使得自身的时间计数器与主站的时间计数器同步。
[0094] 在实施例二中,从站向主站返回反馈数据包时,从站会将得到的同步信息添加至反馈数据包的数据段中,这样从站就不用单独向主站发送同步帧,这样不仅节约了网络带宽,并避免了从站与主站之间的同步过程占用网络链路而使得其他业务数据包无法在链路上传输的问题,提升了系统的通讯效率。
[0095] 另外,在本发明实施例中从站通过上N个通讯周期保存的偏差值与本次通讯周期得到的偏差值得到平均偏差值,然后从站通过平均偏差值来调整自身的时间计数器,这可以减小主站与从站之间的时钟周期的随机误差,从而降低了同步过程中的同步抖动,提升了同步的精度。
[0096] 下面通过一个具体的应用场景来对主站与从站之间的同步过程来进行说明:
[0097] 如图4所示,在图4中主站下连接3个从站,其自检的过程在此就不再赘述,在第一个通讯周期时,主站首先向从站3发送业务数据包3,然后按照预设时间间隔向从站2发送业务数据包2,最后按照预设时间间隔向从站1发送业务数据包1,在这些业务数据包中携带了主站与对应从站之间的时间计数器的偏差值Ts,同时主站将分别记录发送业务数据包3、业务数据包2、业务数据包1的发送时刻TZ_tran_1、TZ_tran_2、TZ_tran_3。
[0098] 从站1接收到业务数据包3中将匹配自身的ID是否与业务数据包3中的ID相符,若是不相符,则从站1将业务数据包3转发至从站2,然后从站2也将匹配ID,若不匹配,则从站2将业务数据包3转发至从站3,从站3接收到该业务数据包3时,也将做ID匹配,在ID匹配时,从站3将记录接收到该业务数据包3的接收时刻TC_rev_3,然后从站3将确定向主站返回反馈数据包3的反馈时刻TC_res_3,同时从站3还将获取业务数据包3中携带的偏差值Ts_3,从站3调取自身最近存储的6个偏差值(若是不足6个则取所有保存的偏差值),并得到本次获取偏差值与6个偏差值的算数平均值Naev作为平均偏差值,然后从站3将基于TC_rev_3、TC_res_3、Naev得到在本次通讯周期从站3的时间戳T3,具体通过公式(3)得到:
[0099] T3=(TC_rev_3+Naev)+(TC_res_3+Naev) (3)
[0100] 在得到时间戳T3之后,该从站3将时间戳T3添加至反馈数据包中,并且在反馈时刻TC_res_3将携带时间戳T3的反馈数据包发送至主站,然后从站3将根据平均偏差值Naev来调整自身的时间计数器,即:从站3在自身时间计数器当前的时间上增加该平均偏差值Naev,从而实现从站3与主站之间的时间计数器同步。
[0101] 主站接收到从站3返回的携带时间戳T3的反馈数据包时,主站将记录接收到的时刻TZ_rev_3,然后主站将基于发送时刻TZ_tran_1以及接收时刻TZ_rev_3以及反馈数据包中的时间戳T3得到下一个通讯周期向从站3下发的偏差值Ts_3_2,该偏差值可以通过公式(4)得到:
[0102] Ts_3_2=[(TZ_tran_1+TZ_rev_3)-T3]/2 (4)
[0103] 上述实施例中说明了主站与从站3在两个通讯周期的同步过程,后续通讯周期的同步过程与上述过程完全相同。
[0104] 另外,主站与从站1以及从站2之间的同步过程与主站与从站3之间的同步过程完全相同,在此就不再赘述。
[0105] 实施例三:
[0106] 对应本发明实施例一中的一种工业以太网中的同步方法,本发明实施例还提供了一种工业以太网中的同步设备,如图7所示为发明实施例中一种工业以太网中的同步设备的结构示意图,该同步设备包括:
[0107] 生成模块701,用于生成携带上一次通讯周期得到的同步信息的业务数据包;
[0108] 发送模块702,用于将所述业务数据包发送至所述从站。
[0109] 进一步,在本发明实施例中该同步设备还可以包括:
[0110] 确定模块,用于在所述业务数据包中确定出用于携带数据信息的数据段;
[0111] 写入模块,该写入模块与生成模块701连接,用于在所述数据段中写入在上一次通讯周期得到的同步信息。
[0112] 进一步,在本发明实施例中该同步设备还可以包括:
[0113] 获取模块,用于获取发送所述业务数据包的发送时刻;
[0114] 记录模块,用于在接收所述从站返回的携带时间戳的反馈数据包时,记录接收所述反馈数据包的接收时刻;
[0115] 处理模块,用于将所述发送时刻、所述接收时刻之和与所述反馈数据包中的时间戳之间的差值的一半作为本次通讯周期的同步信息。
[0116] 实施例四:
[0117] 对应本发明实施例二中的一种工业以太网中的同步方法,如图8所示本发明实施例还提供了一种工业以太网中的同步设备,该设备包括:
[0118] 接收模块801,用于接收主站发送的携带上一次通讯周期得到的时间计数器的偏差值的业务数据包;
[0119] 处理模块802,用于根据所述偏差值,获取与主站之间的同步信息,并生成携带同步信息的反馈数据包,所述反馈数据包为与主站之间的正常业务数据包;
[0120] 发送模块803,用于将所述反馈数据包发送至所述主站。
[0121] 进一步,在本发明实施例中,该处理模块802还可以包括:
[0122] 处理单元,用于将本次通讯周期得到的偏差值与保存的之前通讯周期获得N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;
[0123] 确定单元,用于确定接收所述业务数据包时记录的接收时刻,以及向所述主站发送反馈数据包的反馈时刻;
[0124] 同步确定单元,用于将所述接收时刻与平均偏差值之和以及反馈时刻与平均偏差值之和的和确定为所述同步信息;
[0125] 写入单元,用于将所述同步信息写入所述反馈数据包中用于携带数据信息的数据段中,生成携带同步信息的反馈数据包。
[0126] 进一步,在本发明实施例中该设备还可以包括:
[0127] 确定模块,用于将所述偏差值与保存的之前通讯周期的N个偏差值之间的算数平均值作为平均偏差值,其中,N为大于等于1的整数;
[0128] 调整模块,用于根据所述平均偏差值调整时间计数器,使得与主站的时间计数器的时间同步。
[0129] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0130] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0131] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0132] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0133] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。