掌桥专利:专业的专利平台
掌桥专利
首页

一种跨时间域的数据同步系统及方法

文献发布时间:2023-06-19 12:11:54


一种跨时间域的数据同步系统及方法

技术领域

本发明涉及通信技术领域,特别是涉及一种跨时间域的数据同步系统及方法。

背景技术

时间敏感网络(TSN)是以以太网为基础的新一代网络标准,具有时间同步、延时保证等确保实时性的功能,这一技术允许周期性与非周期性数据在同一网络中传输,使得标准以太网具有确定性传输的优势。

时间敏感网络技术在工业控制、5G接入和高端装备制造等领域具有广泛的应用前景。这些领域的网络中对数据处理性能的要求尤其是时间确定性的需求极为严格,在部署时间敏感网络时将形成包含复杂的结构和各种应用的网络系统,涉及到网卡、交换机、控制器等诸多组件。因此,时间敏感网络芯片的验证场景与通用以太网的验证场景的验证需求大不相同,且实际的物理环境中,难以验证时间敏感网络中设备对报文数据发送时刻的精确控制,一些故障如网络中的设备因温度、工作时间等环境因素造成的晶振频率漂移现象也极难捕捉和定位,因此通过软件运行时间敏感网络设备的硬件代码,验证时间敏感网络的功能正确性成为切实可行的方案。

仿真验证环境中,不同类型的网络拓扑结构由交换节点通过不同的连接方式形成,各个端节点通过与交换节点相连接入网络,各类应用程序产生的数据通过网卡注入到网络环境中。在仿真软件中观察数据在时间敏感网络芯片中的处理是基于仿真软件中的验证时间,而注入仿真的网络环境中的数据由应用程序产生,这些数据流注入仿真网络环境中的时刻是基于现实可观测的墙钟时间。

时间敏感网络仿真环境中端节点与交换节点由时间敏感网络芯片配置构成,芯片会配置应用周期(app_cycle),一个应用周期被划分为多个时间槽(sch_slot),硬件对数据的发送时间的控制是基于时间槽尺度。如果应用程序与时间敏感网络仿真环境的数据没有同步操作,软件中产生数据的应用程序无法感知发送报文时,时间敏感网络仿真环境的时间就无法确定处于当前周期的第几个时间槽上。

目前,在实际网络中上行延迟与下行延迟往往是不等的,这样就会造成数据同步时产生一定误差,尤其是在TSN中,因为TSN旨在实现多类型网络的时间敏感机制结合,这样异构网络带来的时延不对称更加严重。同时这种误差会在多级网络中不断累积,最终导致整体误差较大。要实现时间敏感网络芯片验证方法,就必须解决跨时间域软硬件数据同步的问题。而针对这类跨时间域软硬件数据同步问题还没有很好的跨域数据同步方法可供使用。

因此,提供一种跨时间域的数据同步系统及方法是本领域技术人员亟待解决的问题。

发明内容

本发明的目的在于提供一种跨时间域的数据同步系统及方法,该系统结构简单,安全、有效、可靠,可以有效的使不同时间域的数据达成同步,基于该系统的方法也同样能达成上述效果。

基于以上目的,本发明提供的技术方案如下:

一种跨时间域的数据同步系统,包括网络端、中转端和应用端;

所述中转端一端与所述网络端连接,所述中转端另一端与所述应用端连接;

所述网络端用于生成同步标记,并根据已配置的工作周期向所述中转端发送同步标记及所述同步标记的发送时间;

所述中转端用于接收所述同步标记及所述发送时间,并转发所述同步标记及所述发送时间至所述应用端;

所述应用端用于接收所述同步标记及所述发送时间,并获取同步标记的接收时间;

所述应用端用于根据所述接收时间与所述发送时间确定当前时间位于所述工作周期中的对应位置;

在当前时间位于所述工作周期中的对应位置时,所述应用端用于向所述网络端发送数据报文;

其中,所述网络端与所述应用端分别处于不同时间域内。

优选地,

所述网络端包括:网络仿真环境和同步计时模块;

所述网络仿真环境用于配置工作周期;

所述同步计时模块与所述网络仿真环境使用相同的时钟信号与复位信号;

所述同步计时模块用于根据已配置的所述工作周期、所述时钟信号与所述复位信号生成所述同步标记。

优选地,

所述同步计时模块内设有循环计数器;

所述循环计数器用于根据已配置的所述工作周期循环触发所述同步计时模块发送所述同步标记及所述发送时间。

优选地,

所述中转端与所述应用端之间还设有时间校正模块;

所述时间校正模块用于从所述中转端中读取所述同步标记及所述发送时间,并转发给所述应用端。

优选地,

所述同步标记采用所述同步计时模块、所述中转端、所述时间校正模块及所述应用端共同约定的格式。

优选地,

所述应用端包括:计算模块和发送模块;

所述计算模块用于根据所述接收时间与所述发送时间计算所述同步标记的传输延迟;

所述计算模块用于根据所述传输延迟与预设时隙值计算时隙序数;

在当前时间位于所述时隙序数对应的时隙内,所述发送模块用于向所述网络端发送数据报文。

一种跨时间域的数据同步方法,包括如下步骤:

网络端根据已配置的工作周期向中转端发送同步标记及同步标记的发送时间;

中转端接收所述同步标记及所述发送时间,并转发所述同步标记及所述发送时间至应用端;

所述应用端接收所述同步标记及所述发送时间,并获取同步标记的接收时间;

所述应用端根据所述接收时间与所述发送时间确定当前时间位于所述工作周期中的对应位置;

在当前时间位于所述工作周期中的对应位置时,所述应用端向所述网络端发送数据报文;

其中,所述网络端与所述应用端分别处于不同时间域内。

优选地,

获取所述发送时间与所述接收时间具体通过调用时间函数来实现。

优选地,

在网络端根据已配置的工作周期向中转端发送同步标记及同步标记的发送时间之前,还包括:

所述工作周期内平均设有多个时隙;

所述工作周期中的对应位置具体为在工作周期内时隙序数所对应的时隙。

优选地,

所述应用端根据所述发送时间与所述接收时间确定当前时间位于所述工作周期中的对应位置;

在当前时间位于所述工作周期中的对应位置时,所述应用端向所述网络端发送数据报文,具体为:

根据所述接收时间与所述发送时间,获取同步标记的传输延迟;

根据所述同步标记的传输延迟与预设时隙值,获取时隙序数;

在当前时间位于所述在工作周期内时隙序数所对应的时隙内,向所述网络端发送数据报文。

本发明提供的是一种跨时间域的数据同步系统,包括网络端、中转端和应用端,主要工作原理是通过时间同步实现分别与中转端两端连接的网络端与应用端之间的数据同步。同样的,本发明提供的一种跨时间域的数据同步方法也能取得相类似的技术效果,达到相似的目的。

工作过程中,网络端根据已配置的工作周期向中转端发送同步标记及同步标记的发送时间信息;中转端接收同步标记及同步标记的发送时间信息后转发给应用端;应用端收到同步标记及同步标记的发送时间信息后,获取同步标记接收时间信息。应用端根据同步标记的接收时间与同步标记的发送时间确定当前时间位于工作周期中的对应位置。在当前时间位于所述工作周期中对应位置时,应用端向网络端发送数据报文。其中,网络端与应用端分别处于不同时间域。

本技术方案通过同步标记的发送时间与接收时间的差值,确定传输延迟。通过计算得知的传输延迟确定当前时间位于工作周期的对应位置。在当前时间位于工作周期中的对应位置时,应用端向网络端发送数据报文即可实现位于不同时间域的应用端与网络端之间的数据同步。本技术方案避免了不同时间域内多级网络之间的传输时延导致的误差过大的不良后果,提高了不同时间域内数据传输的准确度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种跨时间域的数据同步系统的结构示意图;

图2为本发明实施例提供的一种跨时间域的数据同步系统的具体结构示意图;

图3为本发明实施例提供的一种跨时间域的数据同步方法流程图;

图4为本发明实施例提供的步骤S4和步骤S5的方法流程图;

图5为本发明实施例提供的一种跨时间域的数据同步方法原理图。

具体实施方式

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

本发明实施例采用递进的方式撰写。

本发明实施例提供了一种跨时间域的数据同步系统及方法。主要解决现有技术中,不同时间域内多级网络之间的传输时延导致的误差过大、数据传输不准确的技术问题。

在实际运用过程中,根据不同的使用需求或所需的效果,各方法步骤有具体的使用细节,各步骤所采用的具体设备可以根据实际需要进行选择。在本实施例中,网络端中包括软件与硬件结合,应用端包括软件应用程序。

请参照图1,一种跨时间域的数据同步系统,包括网络端1、中转端2和应用端3;

中转端2一端与网络端1连接,中转端2另一端与应用端3连接;

网络端1用于生成同步标记4,并根据已配置的工作周期向中转端2发送同步标记4及同步标记4的发送时间5;

中转端2用于接收同步标记4及发送时间5,并转发同步标记4及发送时间5至应用端3;

应用端3用于接收同步标记4及发送时间5,并获取同步标记4的接收时间6;

应用端3用于根据接收时间6与发送时间5确定当前时间位于工作周期中的对应位置;

在当前时间位于工作周期中的对应位置时,应用端3用于向网络端1发送数据报文;

其中,网络端1与应用端3分别处于不同时间域内。

实际运用过程中,本数据同步系统的实施原理是:位于第一时间域内的网络端1根据已配置的工作周期向中转端2发送同步标记4(tag)及同步标记4的发送时间5(s_time)信息;中转端2接收同步标记4及同步标记4的发送时间5信息后转发给应用端3;位于第二时间域的应用端3收到同步标记4及同步标记4的发送时间5信息后,获取同步标记4接收时间6(r_time)信息。应用端3根据同步标记4的接收时间6与同步标记4的发送时间5确定当前时间位于工作周期中的对应位置。在当前时间位于工作周期中对应位置时,应用端3向网络端1发送数据报文。

在本实施例中,第一时间域为验证时间域,第二时间域为墙钟时间域。网络端1处于验证时间域内,应用端3处于墙钟时间域内,中转端2处于验证时间域与墙钟时间域之间。

优选地,

网络端1包括:网络仿真环境11和同步计时模块12;

网络仿真环境用于配置工作周期;

同步计时模块12与网络仿真环境11使用相同的时钟信号与复位信号;

同步计时模块12用于根据已配置的工作周期、时钟信号与复位信号生成同步标记4。

实际运用过程中,网络端1中包括网络仿真环境11和同步计时模块12,网络仿真环境11可以由涉及到网卡、交换机、控制器等诸多组件构成;同步计时模块12可以由软件程序实现计时功能。在本实施例中,网络仿真环境11可以由端节点和交换节点组成,这些节点由时间敏感网络芯片构成。

工作过程中,所构建的网络仿真环境11用于配置工作周期。网络仿真环境11将配置好的工作周期发送给同步计时模块12;同步计时模块12与网络仿真模块11中的时钟信号与复位信号均相同。在这些输入信号的控制下,同步计时模块12与时间敏感网络仿真环境11同步计数。同步计时模块12根据已配置的工作周期、时钟信号、复位信号生成同步标记4。

优选地,

同步计时模块12内设有循环计数器;

循环计数器用于根据已配置的工作周期循环触发同步计时模块12发送同步标记4及发送时间5。

在软件工程中,循环计数器或是循环变数是指for循环中控制执行次数的变数。命名为计数器的原因是这个变数的值一般会是整数,而且在循环进行中,变数的值也以递增或递减的方式变化。

所采用的函数可以是for(i = 0; i < T; i++),其中T为已配置的工作周期,i为循环计数器开始计数时间。需要说明的是i可以不等于0,即实际开始计数时间可以根据实际需要进行调整。

在本实施例中,同步计时模块12的工作流程包括步骤一:同步计时模块12开始工作;步骤二:同步计时模块12判断是否开始计时,若不开始计时则转入循环判断阶段,循环判断是否开始计时;步骤三:同步计时模块12计时的同时,内部循环计数器开始工作,若循环计数器中的值未累加到工作周期值时,不触发同步计时模块12发送同步标记4及同步标记4的发送时间5;步骤四:同步计时模块12发送同步标记4及同步标记4的发送时间5至中转端2,同时循环计数器值清零后,跳转到步骤二。其中,步骤二中的是否开始计时可以根据实际需要进行设置;步骤三的工作周期值为预先配置的工作周期。

优选地,

中转端2与应用端3之间还设有时间校正模块21;

时间校正模块用于从中转端2中读取同步标记4及发送时间5,并转发给应用端3。

时间校正模块一般起中转功能,位于墙钟时间域内,用于向中转端2发送请求以读取同步标记4及同步标记4的发送时间5,获取同步标记4及同步标记4的发送时间5后将其发送给应用端3。

在本实施例中,时间校正模块的工作流程包括步骤一:时间校正模块21开始工作;步骤二:时间校正模块21从中转端2中读取本应用周期内的同步标记4及同步标记4的发送时间5,若未读取到同步标记4及同步标记4的发送时间5,转入循环读取阶段,循环向中转端2发送请求直至读取到同步标记4及同步标记4的发送时间5;步骤三:将已读取的同步标记4及同步标记4的发送时间5发送至应用端3。

优选地,

同步标记4采用同步计时模块12、中转端2、时间校正模块21及应用端3共同约定的格式。

实际运用过程中,同步标记4所采用的格式可以是不固定的,但需要由同步计时模块12、中转端2、时间校正模块21及应用端3共同约定。即同步标记4可以为可识别的数字或字符组合,上述组合所表达的能在同步计时模块12、中转端2、时间校正模块21和应用端3中均能清楚无误的表示为同一个含义。

优选地,

应用端3包括:计算模块31和发送模块32;

计算模块31用于根据接收时间6与发送时间5计算同步标记4的传输延迟;

计算模块31用于根据传输延迟与预设时隙值计算时隙序数;

在当前时间位于时隙序数对应的时隙内,发送模块32用于向网络端1发送数据报文。

实际运用过程中,应用端3中的软件应用程序包括含有计算功能和发送功能的模块。计算模块31的工作原理是:应用端3接收到同步标记4及同步标记4的发送时间5的同时,获取同步标记4的接收时间6;将同步标记4的发送时间5与接收时间6发送至计算模块31;计算模块31根据同步标记4的接收时间6减去同步标记4的发送时间5,确定差值,其差值即为同步标记4在传输过程中的传输延迟。同步标记4的传输延迟确定后,计算模块31根据同步标记4的传输延迟和预设的时隙值计算时隙序数。

需要说明的是,时间敏感网络中的设备会配置应用周期(app_cycle),每个应用周期被划分为多个时间槽(sch_slot),设备对数据的发送时间5控制基于时间槽尺度。

在本实施例中,即本方案中的工作周期被划分为N个时隙,每个时隙值相等,工作周期长度值被平分为N个时隙值的和。计算模块31通过本工作周期的同步标记4的传输延迟与预设时隙值相除后向上取整,得到时隙序数。实际上,该时隙序数所表达的含义是本工作周期的同步标记4的传输延迟落在第几个时隙内。

当确定时隙序数后,即可确定传输延迟落在本工作周期的第几个时隙内。在当前时间处于传输延迟落在的时隙内时,发送模块32向网络端1发送数据报文。在本方案的一个实施例中,本方案的工作周期为10s,被划分为10个时隙,每个时隙值为1s。同步标记4传输延迟与一个时隙值相除后向上取整,得到的时隙序数为5。那么,就确定传输延迟落在第5个时隙内。在当前时间位于第5个时隙时,即当前时间经过4s后,在第5s时,应用端3中的发送模块32向网络端1发送数据报文,即可达到应用端3与网络端1时间同步。

需要说明的是,只要确定该时隙序数,并按此规则发送数据报文,可以使应用端3与网络端1因传输延迟导致的误差逐渐降低,从而使网络端1接收的数据报文与应用端3发送的数据报文达到数据同步的效果。

一种跨时间域的数据同步方法,包括如下步骤:

S1.网络端1根据已配置的工作周期向中转端2发送同步标记4及同步标记4的发送时间5;

S2.中转端2接收同步标记4及发送时间5,并转发同步标记4及发送时间5至应用端3;

S3.应用端3接收同步标记4及发送时间5,并获取同步标记4的接收时间6;

S4.应用端3根据接收时间6与发送时间5确定当前时间位于工作周期中的对应位置;

S5.在当前时间位于工作周期中的对应位置时,应用端3向网络端1发送数据报文;

其中,网络端1与应用端3分别处于不同时间域内。

步骤S1中,在TSN网络环境中的网络端1一般会配置工作周期,并且按照工作周期定时向中转端2发送可识别的同步标记4及同步标记4的发送时间5。

步骤S2中,中转端2接收同步标记4及发送时间5并转发给应用端3,中转端2一般设置在不同时间域之间,用于跨时间域转发信息。

步骤S3中,应用端3接收同步标记4及发送时间5,获取并记录同步标记4的接收时间6。

步骤S4中,忽略不计中转端2的转发时间,同步标记4的发送与接收时间6的差值即是网络端1传输至应用端3的传输延迟,根据传输延迟可以确定当前时间在工作周期的对应位置。

步骤S5中,在当前时间位于工作周期中的对应位置时,应用端3向网络端1发送数据报文,应用端3与网络端1达成时间同步,由于消除了传输延迟导致的误差,因此数据达成同步。

本技术方案所提供的跨时间域的数据同步方法,通过网络端1向应用端3发送同步标记4及同步标记4的发送时间5,在应用端3获取同步标记4的接收时间6;再通过同步标记4的发送时间5与接收时间6计算当前时间位于工作周期中的对应位置。在当前时间位于工作周期中的对应位置时,应用端3向网络端1发送数据报文。

本技术方案通过同步标记4的发送时间5与接收时间6的差值,确定传输延迟,再确定传输延迟位于工作周期中的对应位置。当当前时间处于工作周期中的对应位置时,应用端3向网络端1发送数据报文。本技术方案考虑到多级网络之间传输时延,确定已计算得出的传输延迟在已配置的工作周期中的对应位置。在当前时间处于该对应位置时,应用端3向网络端1发送数据报文,实现应用端3与网络端1的时间同步。通过多次反复的调整,使应用端3与网络端1的传输延迟所引起的误差逐渐降低,从而使应用端3与网络端1数据传输同步。

优选地,

获取发送时间5与接收时间6具体通过调用时间函数来实现。

实际运用过程中,系统时间函数有多种,其本质上都是为了反馈系统时间。也就是说,只要能获取同步标记4的发送时间5与接收时间6,采用何种系统时间函数并不关键。

在本实施例中,采用C+/C++语言获取系统时间函数。可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970 年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NULL),函数将只通过返回值返回现在的日历时间。如:可以利用如下代码获取当前日历时间:

#include "time.h"

include "stdio.h"

int main(void)

{

struct tm *ptr;

time_t lt;

lt =time(NULL);

printf("The Calendar Time now is %d/n",lt);

return 0;

}

优选地,

在网络端1根据已配置的工作周期向中转端2发送同步标记4及同步标记4的发送时间5之前,还包括:

工作周期内平均设有多个时隙;

工作周期中的对应位置具体为在工作周期内时隙序数所对应的时隙。

实际运用过程中,在网络端1配置的工作周期中,可以划分为N个时隙,由于工作周期具有长度值,每个时隙对应具有时隙值,时隙值长度为工作周期长度值/N;工作周期中的对应位置具体是已计算得出的在工作周期内时隙序数所对应的时隙。如时隙序数为5,则表示为第5个时隙。

优选地,

应用端3根据发送时间5与接收时间6确定当前时间位于工作周期中的对应位置;

在当前时间位于工作周期中的对应位置时,应用端3向网络端1发送数据报文,具体为:

A1.根据接收时间6与发送时间5,获取同步标记4的传输延迟;

A2.根据同步标记4的传输延迟与预设时隙值,获取时隙序数;

A3.在当前时间位于在工作周期内时隙序数所对应的时隙内,向网络端1发送数据报文。

步骤A1中,同步标记4的接收时间6减去同步标记4的发送时间5,即为从网络端1发送,在应用端3接收的同步标记4的传输延迟,在本实施例中中转端2的传输延迟忽略不计。

步骤A2中,工作周期在之前已经平均分为若干个时隙,同步周期的传输延迟除以预设时隙值即可获取时隙序数,本步骤是判断传输延迟会落入到工作周期哪一个时隙内。

步骤A3中,在当前时间位于时隙序数对应的时隙内时,应用端3向网络端1发送数据报文即可保证不同时间域的两端时间同步,由于没有传输延迟导致的误差影响,数据也会同步。

实际运用过程中,将同步标记4的接收时间6减去同步标记4的发送时间5可计算得出同步标记4的传输延迟;将同步标记4的传输延迟除以预设的时隙值,向上取整,可获得时隙序数。

在当前工作时间位于第X个时隙内时(X为时隙序数值),应用端3向网络端1发送数据报文,达成时间同步。

在本申请所提供的实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

另外,在本发明各实施例中的各功能模块可以全部集成在一个处理器中,也可以是各模块分别单独作为一个器件,也可以两个或两个以上模块集成在一个器件中;本发明各实施例中的各功能模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令及相关的硬件来完成,前述的程序指令可以存储于计算机可读取存储介质中,该程序指令在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本发明所提供的一种跨时间域的数据同步系统及方法进行了详细介绍。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种跨时间域的数据同步系统及方法
  • 一种多同步域的时间同步系统、方法及跨域设备
技术分类

06120113208049