一种基于时间触发网络的跨平台分布式系统分区同步方法转让专利

申请号 : CN201910485748.8

文献号 : CN110113126B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王红春杨恒张树兵程德玉

申请人 : 西安云维智联科技有限公司

摘要 :

本发明公开了一种基于时间触发网络的跨平台分布式系统分区同步方法,该方法在系统中定义不同的同步状态和分别对应于每个同步状态的调度配置表,其中在稳定同步状态对应的调度配置表中每个主时间框架前端建立时间长度可动态变化的可调分区,用以监听TTE网络同步信号;在可调分区时间窗口内检测到同步信号时,立即结束可调分区而进行应用分区任务,从而实现操作系统时钟和TTE网络时钟的同步。本发明在操作系统内核实现,是建立在上层操作系统和底层网络之间的跨平台中间件软件,方法简单高效,通过引入时间窗口动态变化的可调分区实现操作系统时钟和TTE网络时钟的同步,降低节点之间端到端通信的延迟抖动,有效提高系统通信效率。

权利要求 :

1.一种基于时间触发网络的跨平台分布式系统分区同步方法,其特征在于,包括以下步骤:

定义未同步状态、临时同步状态以及稳定同步状态,分别对应操作系统的第一调度配置表、第二调度配置表以及第三调度配置表,其中:第一调度配置表及第二调度配置表均只包含应用分区,第三调度配置表中除了应用分区之外还设置有时间长度可动态变化的、用于监测TTE网络同步信号的可调分区;另外,第一调度配置表的主时间框架长度和TTE网络整合周期长度tinte_cyc相等,第二调度配置表的主时间框架长度比TTE网络整合周期少一个网络同步精度Δtsyn,第三调度配置表的主时间框架长度在动态范围[tinte_cyc-Δtsyn,tinte_cyc+Δtsyn]内变化;

系统初始化后,默认处于未同步状态,运行第一调度配置表,通过监听TTE网络同步信号,判断是否进入临时同步状态;当进入临时同步状态后,切换至第二调度配置表并按照第二调度配置表运行至结束后,进入稳定同步状态,切换至第三调度配置表并运行,同时监听TTE网络同步信号;如果在可调分区时间窗口内检测到TTE网络同步信号,则立刻结束可调分区,开始执行应用分区任务,从而实现操作系统时钟和TTE网络时钟的同步。

2.如权利要求1所述的基于时间触发网络的跨平台分布式系统分区同步方法,其特征在于,所述的可调分区在第三调度配置表的每个主时间框架最前端建立,其时间窗口长度为2Δtsyn。

3.如权利要求1所述的基于时间触发网络的跨平台分布式系统分区同步方法,其特征在于,所述的第一调度配置表、第二调度配置表以及第三调度配置表的内容相同,所述的第一调度配置表、第二调度配置表以及第三调度配置表是根据系统预先定义好的任务采用静态配置的方式进行制定的。

4.如权利要求1所述的基于时间触发网络的跨平台分布式系统分区同步方法,其特征在于,所述的未同步状态、临时同步状态以及稳定同步状态分别对应不同的状态标志以及网络同步信号标志。

5.如权利要求1所述的基于时间触发网络的跨平台分布式系统分区同步方法,其特征在于,所述的系统在初始化时,设定TTE网络整合周期长度tinte_cyc以及网络同步精度Δtsyn的值。

6.如权利要求1所述的基于时间触发网络的跨平台分布式系统分区同步方法,其特征在于,所述的网络同步精度Δtsyn,其计算公式为:Δtsyn=2×|τclock|×tinte_cyc         (1)

其中,τclock为时钟源的晶振精度。

说明书 :

一种基于时间触发网络的跨平台分布式系统分区同步方法

技术领域

[0001] 本发明涉及计算机、通信技术领域,具体涉及一种基于时间触发网络的跨平台分布式系统分区同步方法,实现操作系统的主时间框架与TTE网络的整合周期的时钟同步,在分区层建立统一的全系统时钟基准,降低系统分区间通信的延迟抖动。

背景技术

[0002] 目前,航空、航天、船舶、军用战车、高铁等高端装备的电子系统都在由以前的分立式、联合式体系架构朝着网络化、综合化、分布式的开放体系架构方向发展。时间触发以太网(Time-Triggered Ethernet,TTE)是一种在交换式网络环境下的时间触发通信技术,并严格按照整合周期和预先规划好的发送时间点进行业务调度,具备高可靠、确定性传输,同时具有良好的兼容性和高带宽,能够满足未来高端装备分布式综合电子系统的组网通信需求。在操作系统层,为了满足高端装备电子系统对高可靠性、高安全性、高可用性以及高服务性的要求,ARINC组织发布了ARINC 653标准,该标准定义了一种多分区操作系统接口规范,提出了“功能分区”的概念,有效隔离上层应用与操作系统核心,并基于时空分区,实现应用隔离,确保应用在时间与空间上独立性。ARINC 653采用主时间框架(Main Time Frame,MTF)进行周期性任务调度,每个分区运行时刻是相对于主时间框架起始点的相对偏移量,分区运行时间槽是在系统运行前提前规划的,操作系统严格按照MTF和分区时间槽严格进行调度。
[0003] 由于操作系统调度和网络调度各自采用独立的时钟,两个时钟是异步运行状态,会不可避免地产生一个随机偏差Δt∈[0,tMTF),tMTF是主时间框架的周期值。由于随机偏差Δt的存在,会使得从端系统ES1的分区发送消息到ES2的分区时,产生不可预知的通信延迟,造成系统通信的不确定性,不利于在实时性要求和安全性要求高的系统中应用。图1描述了一种高延迟情况,通信延迟占用了近2个MTF。

发明内容

[0004] 本发明的目的是提供一种基于时间触发网络的跨平台分布式系统分区同步方法,该方法聚焦于解决分区操作系统时钟与TTE网络时钟的同步问题,目标是消除操作系统时钟和网络时钟之间的随机偏差Δt,使整个分布式系统具有统一的全局时钟基准,减少应用分区之间消息通信的延迟和抖动,从而提升分布式系统的通信性能。
[0005] 为了实现上述任务,本发明采用以下技术方案:
[0006] 一种基于时间触发网络的跨平台分布式系统分区同步方法,包括以下步骤:
[0007] 定义未同步状态、临时同步状态以及稳定同步状态,分别对应操作系统的第一调度配置表、第二调度配置表以及第三调度配置表,其中:
[0008] 第一调度配置表及第二调度配置表均只包含应用分区,第三调度配置表中除了应用分区之外还设置有时间长度可动态变化的、用于监测TTE网络同步信号的可调分区;另外,第一调度配置表的主时间框架长度和TTE网络整合周期长度tinte_cyc相等,第二调度配置表的主时间框架长度比TTE网络整合周期少一个网络同步精度Δtsyn,第三调度配置表的主时间框架长度在动态范围[tinte_cyc-Δtsyn,tinte_cyc+Δtsyn]内变化;
[0009] 系统初始化后,默认处于未同步状态,运行第一调度配置表,通过监听TTE网络同步信号,判断是否进入临时同步状态;当进入临时同步状态后,切换至第二调度配置表并按照该配置表运行至结束后,进入稳定同步状态,切换至第三调度配置表并运行,同时监听TTE网络同步信号;如果在可调分区时间窗口内检测到TTE网络同步信号,则立刻结束可调分区,开始执行应用分区任务,从而实现操作系统时钟和TTE网络时钟的同步。
[0010] 进一步地,所述的可调分区在第三调度配置表的每个主时间框架最前端建立,其时间窗口长度为2Δtsyn。
[0011] 进一步地,所述的第一调度配置表、第二调度配置表以及第三调度配置表的内容相同,根据系统预先定义好的任务采用静态配置的方式进行制定的。
[0012] 进一步地,所述的未同步状态、临时同步状态以及稳定同步状态分别对应不同的状态标志以及网络同步信号标志。
[0013] 进一步地,所述的系统在初始化时,设定TTE网络整合周期长度tinte_cyc以及网络同步精度Δtsyn的值。
[0014] 进一步地,所述的网络同步精度Δtsyn,其计算公式为:
[0015] Δtsyn=2×|τclock|×tinte_cyc  (1)
[0016] 其中,τclock为时钟源的晶振精度。
[0017] 本发明与现有技术相比具有以下技术特点:
[0018] 1.本发明在操作系统内核实现,是建立在上层操作系统和底层网络之间的跨平台中间件软件,方法简单高效,能够应用于Windows、Linux、VxWorks等操作系统平台组成的分布式系统中。
[0019] 2.本发明通过引入时间窗口动态变化的可调分区实现操作系统时钟和TTE网络时钟的同步,从而实现分布式系统应用分区层面的时钟同步,使整个分布式系统不同应用分区能够按照时间触发的方式进行编排调度,降低节点之间端到端通信的延迟抖动,有效提高系统通信效率。

附图说明

[0020] 图1为未同步情况下,端到端通信高延迟场景示意图;
[0021] 图2为基于时间触发网络的分布式系统集成架构图;
[0022] 图3为应用分区同步机制示意图;
[0023] 图4为分布式系统分区同步方法状态机示意图。

具体实施方式

[0024] 在ARINC 653标准中,实时分区操作系统采用主时间框架MTF进行分区调度,TTE网络严格按照整合周期进行调度,在TTE网络提供高精度时钟同步的基础上,只需要采用一种机制将应用分区MTF和TTE网络整合周期的时隙对齐,就可以达到全系统不用应用分区间时钟同步的目的。图2为现有技术中基于时间触发网络的分布式系统集成架构,其中,分布式系统中的每个端节点(End System,ES)都由通用核心处理模块和网络接口卡组成,其中通用核心处理模块,即通用处理器运行实时分区操作系统,实现分区调度和运行;网络接口卡,即TTE网卡通过通信接口提供数据通信和高精度的时钟同步功能。通用处理器与TTE网卡采用PCIE总线通信,通过PCIE网卡驱动连接访问TTE网卡。
[0025] 本发明的分布式系统分区同步方法就在同步中间件层中实现,运行在操作系统和驱动层之间(图2中虚线框标识),负责协调对齐操作系统的时钟和TTE网络时钟。
[0026] 同步中间件在操作系统内核实现,利用操作系统分区的调度接口,在同步状态下操作系统主时间框架中包含1个专门用于调整时钟同步的可调分区和n个应用分区。分区同步原理如图3所示,在主时间框架中增加一个可调分区P0,其时间窗口长度tadj=2Δtsyn,也就是说可调分区P0的时间长度在不超过2倍的TTE网络同步精度Δtsyn的范围内动态变化。
[0027] TTE是确定性的时间触发网络,TTE网络同步精度Δtsyn非常高,一般可达到微秒甚至百纳秒级。Δtsyn与时钟源的晶振精度τclock和整合周期大小tinte_cyc有关,如公式(1)。
[0028] Δtsyn=2×|τclock|×tinte_cyc  (1)
[0029] 例如,常用的晶振频率误差τclock=±50ppm,整合周期tinte_cyc=20ms,则TTE网络同步精度可达到Δtsyn=2×50×10-6×20ms=2μs。可见,可调分区时间窗口大小tadj的动态变化范围其实非常小,在上面这个例子中,可调分区窗口大小tadj只占到TTE整合周期的万分之二。
[0030] 可调分区P0的作用是捕捉TTE网络发送来的同步信号,并在检测到同步信号后立刻结束P0,从t0时刻开始执行后面的应用分区,从而完成了将分区主时间框架与TTE网络整合周期的时隙对齐,后续P1到Pn可基于TTE网络的时间基准进行调度。将应用分区的时间长度设置为tapp=tinte_cyc-Δtsyn,这样做的目的是确保在下一个主时间框架开始的可调分区P0的时间窗口内一定能够检测到TTE网络的时钟同步信号。由于分区主时间框架的长度tMTF中包含1个范围可调的tadj,因此tMTF也是范围动态变化的,即tMTF∈[tinte_cyc-Δtsyn,tinte_cyc+Δtsyn]。
[0031] 如果各个节点端系统的应用分区时钟都和TTE网络的时钟进行同步,那么就实现了分布式架构下不同端系统分区之间的全系统同步。在稳定同步状态下,由于TTE网络同步信号总是能够在可调分区P0内检测到,因此分布式系统各个端节点分区之间同步误差不会超过可调P0的窗口大小tadj=2Δtsyn,也就是说,本发明的分区同步精度不超过TTE网络同步精度的2倍。
[0032] 基于上述原理,本发明提出一种基于时间触发网络的跨平台分布式系统分区同步方法。
[0033] 本发明的分布式系统分区同步方法遵循现有操作系统的调度框架,同时考虑系统的安全性和同步的效率,同步过程定义了未同步、临时同步、稳定同步三种状态,每个状态分别对应操作系统不同的调度配置表id0,id1,id2,调度配置表是根据系统预先定义好的任务制定的,典型的调度配置表规定了在主时间框架内的每个应用分区开始的时刻,每个应用分区内需要调度的所有消息帧的起始时刻和帧长度。这三张调度配置表的内容都是一致的,所不同的是id0和id1只有应用分区调度,而id2在每个主时间框架的前端建立时间长度可动态变化的可调分区P0,其作用是监测TTE网络的同步信号,从而对齐操作系统主时间框架和TTE网络的整合周期。此外,id0的主时间框架与TTE整合周期相等,而id1的主时间框架比id0少一个网络同步精度Δtsyn,id2由于增加了动态可调分区,其主时间框架在动态范围[tinte_cyc-Δtsyn,tinte_cyc+Δtsyn]内变化。下面通过具体的实施例对本发明方法的具体步骤作进一步详细说明。
[0034] 一种基于时间触发网络的跨平台分布式系统分区同步方法,同步机制示意图如图3所示,具体包括以下步骤:
[0035] 步骤1,分布式系统上电后进行初始化,设置初始化参数变量,包括:
[0036] TTE网络整合周期tinte_cyc=20ms,TTE网络同步精度Δtsyn=2μs,默认进入未同步状态,跳转步骤2。
[0037] 步骤2,在未同步状态下,设置状态标志state=ASYNCHRONOUS、TTE网络同步信号标志sig_tte_syn=0,使用预先配置的只包含应用分区的第一调度表id0,id0定义的主时间框架长度tMTF0与TTE网络的整合周期长度tinte_cyc相等,即tMTF0=tinte_cyc=20ms,跳转步骤3。
[0038] 步骤3,监听TTE网络同步信号,网络同步信号一般以中断形式通知操作系统;如果收到TTE同步中断信号,则进入临时同步状态,跳转步骤4;如果没有收到同步中断信号,则重复执行步骤3。
[0039] 步骤4,在临时同步状态下,设置状态标志state=PRE_SYNCHRONOUS,TTE网络同步信号标志sig_tte_syn=1,系统调度表从第一调度配置表id0切换到第二调度配置表id1;id1也只包含有应用分区,其调度内容与id0一致,但临时同步状态的主时间框架长度tMTF1比TTE整合周期tinte_cyc少Δtsyn,即tMTF1=tinte_cyc-Δtsyn=20ms-2μs,其目的是为了过渡到稳定同步状态的时候,确保能够接收到来自TTE网络的同步信号。按照调度表id1运行直至结束,运行时间长度为tMTF1,然后跳转步骤5。
[0040] 步骤5,系统进入稳定同步状态,设置状态标志state=STABLE_SYNCHRONOUS,TTE网络同步信号标志sig_tte_syn=1;系统调度表从第二调度配置表id1切换到第三调度配置表id2,id2既包含应用分区还包含1个时间长度可动态变化的可调分区P0,可调分区在调度表每个主时间框架最前端建立,其时间窗口长度tadj=2Δtsyn=40μs,这样可理论上确保在每个可调分区时间窗口内能够接收到来自TTE网络的同步信号;可调分区的作用是监测TTE网络的同步信号,一旦检测到同步信号,则立刻结束可调分区,开始执行后面的应用分区,应用分区的时间长度设置为tapp=tinte_cyc-Δtsyn=20ms-20μs,这样做的目的是确保在下一个主时间框架可调分区P0的时间窗口内一定能够检测到TTE网络的时钟同步信号;由于稳定同步状态下分区主时间框架的长度tMTF2中包含1个范围可调的tadj,因此tMTF2也是范围动态变化的,即tMTF2∈[tinte_cyc-Δtsyn,tinte_cyc+Δtsyn]=[20ms-20μs,20ms+20μs]。跳转步骤6。
[0041] 步骤6,在稳定同步状态下,系统按照第三调度配置表id2运行,监听TTE网络同步信号,如果在可调分区时间窗口内检测到网络同步信号,则立刻结束可调分区,开始执行应用分区任务,从而实现应用分区的时钟和TTE网络时钟对齐。
[0042] 通过上面的分区同步方法,分布式系统中的每个端节点都会自动对齐TTE网络时钟,当分布式系统端节点时钟都和TTE网络时钟对齐后,就实现了整个分布式系统不同分区之间的同步,则系统保持在稳定同步状态,跳转步骤6;如果在可调分区时间窗口内没有检测到TTE网络同步信号,系统重新进入未同步状态,跳转步骤2。