一种分布式实时测试系统时钟同步方法技术方案

技术编号:10497485 阅读:167 留言:0更新日期:2014-10-04 14:49
本发明专利技术涉及一种分布式实时测试系统时钟同步方法,将时钟同步过程分为测试开始前时钟同步和测试进行中两个过程,其中,在测试开始前,利用类似IEEE 1588的时钟同步方法,保证主从节点之间的时钟同步精确性,同时利用分层同步的方法,使得每轮同步的节点数指数上升,保证了系统时钟同步的效率;同时,在测试开始前的同步中,从节点可以得到与主节点之间的传输时延,故测试过程中的时钟同步在测试开始前的同步过程的基础之上,进一步提高了同步的效率;最后,测试过程中节点获得时钟漂移之后与系统时钟最小颗粒度进行比较,如果时钟漂移小于最小颗粒度则记录漂移并在测试完成后对测试结果的时间标签进行修正,这就避免了频繁地修正时钟导致节点的定时任务执行紊乱。

【技术实现步骤摘要】
一种分布式实时测试系统时钟同步方法
本专利技术涉及一种分布式实时测试系统时钟同步方法,属于嵌入式软件测试

技术介绍
嵌入式软件在航空航天等领域的应用面正在日益扩大,针对嵌入式软件的测试需求也越加迫切。一方面,为成功的完成测试任务,嵌入式软件测试系统必须能够在规定的时间点上准确无误的完成预定的任务;另一方面,随着嵌入式系统本身的复杂性越来越强,对测试系统容纳负载的能力也相应提出越来越高的要求,采用分布式架构的测试系统可以将负载平均分配到各个节点互不干扰的运行。分布式实时测试系统需要将各节点的测试数据收集并且归并起来以供分析,所以要求系统记录所有测试数据产生的时间标签,并且要求各节点的时钟必须一致,也就是说,在测试开始之前,必须对系统内的各节点进行时钟同步。然而,由于各节点由各自的定时器独立定时,整个测试的过程中不可能保证各节点的时钟完全一致,这就要求在测试过程中也需要对系统进行时钟同步。目前在分布式系统中常用的时钟同步方法主要有以下几种:Gossip算法:采用gossip算法,分布式系统中的所有节点之间随机两两互相发送时钟信息,分别计算平均值并将两个节点的时钟都设置为平均值;通过一段时间的同步操作,最后系统中的所有节点的时钟均将收敛于所有节点时钟的平均值。然而测试系统往往需要一个节点作为标准时钟节点,系统中各节点的时钟应该收敛于标准时钟节点的时钟;另外,gossip算法需要执行一段时间才能完成足够多的随机时钟同步操作,故对于要求能够快速完成时钟同步操作的用于嵌入式软件测试的分布式实时测试系统来说,基于gossip算法的时钟同步方法不能满足要求。时钟广播法:目前存在多种基于广播时钟信息的时钟同步方法,这些方法选取一个节点作为标准时钟节点,向其他所有节点周期性的广播本节点的时钟信息,其他节点收到信息后进行时钟修正,但由于这种方法往往不考虑信息在网络中传播的传输时延造成的误差,故无法应用于对实时性要求高的分布式系统。IEEE1588协议的全称是“网络测量和控制系统的精确时钟同步协议”,简称PTP(PrecisionTimeProtocal)。它具有配置容易、收敛快速以及对网络带宽和资源消耗少等优点。PTP协议采用以下方法完成时钟同步操作:主时钟向从时钟发送同步指令并记录发送时间,从时钟记录收到指令的时间,主时钟向从时钟发送记录的时间,从时钟向主时钟发送延时请求并记录时间,主时钟向从时钟发送收到延时请求的时间,从时钟根据所得的四个时间标签通过公式可以得到从时钟相对主时钟的时间漂移。PTP协议可以快速完成两个节点之间的时钟同步操作,但多个节点之间同步速度不能满足分布式实时测试系统的时钟同步要求。而且主时钟与多个从时钟分别进行时钟同步不仅需要占用主时钟节点大量的资源,也需要长时间占用网络资源影响系统的通信,对于测试系统来说,在测试过程中带来的花销更是无法接受。在嵌入式软件测试领域,测试往往要求在实时性很高的情况下进行,执行的测试任务往往要求以准确的周期多次执行,如果频繁地进行时钟同步将会扰乱测试系统的定时器,造成执行周期紊乱。因此,需要一种方法,一方面能够在消耗少量资源的情况下快速完成高精度的时钟同步操作;另一方面能够避免测试过程中频繁调整时钟导致的定时任务执行紊乱。
技术实现思路
本专利技术技术解决问题:克服现有技术的不足,提供一种分布式实时测试系统时钟同步方法,一方面能够在消耗少量资源的情况下快速完成高精度的时钟同步操作;另一方面能够避免测试过程中频繁调整时钟导致的定时任务执行紊乱。本专利技术技术方案如下:一种分布式实时测试系统时钟同步方法,所述方法分为测试开始前的时钟同步和测试进行中的时钟同步,其中:所述测试开始前的时钟同步步骤如下:(11)从系统的所有节点中选出一个节点作为标准时钟节点;(12)根据系统内部的节点总数计算需要将节点分为多少层来进行时钟同步,计算方法如下:如果系统内节点总数为N,则计算同步层数n的公式为2*2(n-2)<N-1<=2*2(n-1);(13)为所有节点编号,标准时钟节点为“0”,其余节点从“1”至“N-1”编号;(14)将节点1至节点N-1分层,其中,第n层节点数为2(n-1)个;(15)逐层进行多轮时钟同步,需要进行的同步轮数与节点分成的层数n相同,每次同步在多组主节点和从节点之间进行,第m轮同步时,由节点k作为时钟同步的主节点,节点2(m-1)+k作为从节点,其中k为从0至2*2(m-2)-1的自然数;(16)在主从节点进行时钟同步的过程中,从节点获取时钟漂移Tdiff和与主节点之间、的传输时延Tdelay,从节点按照Tdiff修正时钟,并且记录与主节点之间的传输时延;(17)节点修正时钟后向标准时钟节点发送同步完成消息,标准时钟节点收到所有节点的同步完成消息后,测试开始前的时钟同步完成;所述测试进行中的时钟同步步骤如下:(21)由标准时钟节点周期性地向各时钟同步层发出同步指令,每个同步周期内整个系统进行一次时钟同步,每次同步各节点逐层进行多轮时钟同步,需要进行的同步轮数与节点分成的层数n相同,每次同步在多组主节点和从节点之间进行,第m轮同步时,由节点k作为时钟同步的主节点,节点2(m-1)+k作为从节点,其中k为从0至2*2(m-2)-1的自然数;(22)测试过程中主从节点同步,同步按照以下过程进行:(221)从主节点向从节点发送同步指令消息Sync,并且主节点记录发送指令的时间点T1;(222)从节点记录接收到Sync消息的时间点T2;(223)主节点向从节点发送跟随消息Follow_up,其中包含记录的T1;(224)从节点根据公式计算时钟漂移Tdiff,Tdiff=[(T2-T1)-Tdelay],其中,Tdelay为从节点记录的主从节点之间的传输时延;(225)如果计算得出的Tdiff小于等于系统时钟的最小颗粒度Tatom,记录第m个同步周期的时钟漂移Tdiff,否则进行时钟修正;(226)测试结束后按照各从节点记录的各同步周期内的时钟漂移Tdiff修正测试数据的时间标签。所述步骤(11)中从系统的所有节点中选出一个节点作为标准时钟节点的步骤如下;根据应用的测试系统的不同,标准时钟节点的选取按照以下几种原则进行:(111)如果测试系统包含主节点,将主节点作为标准时钟节点;(112)如果测试系统只关注相对时间,则可任意选取节点作为标准时钟节点;(113)如果测试系统关注绝对时间,则该测试系统须经过网络或者GPS手段进行校时,将对外校时的节点作为系统内部的标准时钟节点。所述步骤(21)中测试过程中的同步周期为:设置为10~200倍系统时钟最小颗粒度,实时性要求较高的系统,同步周期越小;所谓系统时钟最小颗粒度是指系统中需要周期执行的测试任务中最小的周期。本专利技术与现有技术相比的优点在于:本专利技术将时钟同步过程分为测试开始前时钟同步和测试进行中两个过程,其中,在测试开始前,利用类似IEEE1588的时钟同步方法,保证主从节点之间的时钟同步精确性,同时利用分层同步的方法,使得每轮同步的节点数指数上升,保证了系统时钟同步的效率;同时,在测试开始前的同步中,从节点可以得到与主节点之间的传输时延,故测试过程中的时钟同步在测试开始前的同步过程的基础之上,进一步提高了同本文档来自技高网
...
一种分布式实时测试系统时钟同步方法

【技术保护点】
一种分布式实时测试系统时钟同步方法,其特征在于所述方法分为测试开始前的时钟同步和测试进行中的时钟同步,其中:所述测试开始前的时钟同步步骤如下:(11)从系统的所有节点中选出一个节点作为标准时钟节点;(12)根据系统内部的节点总数计算需要将节点分为多少层来进行时钟同步,计算方法如下:如果系统内节点总数为N,则计算同步层数n的公式为2*2(n‐2)<N‐1<=2*2(n‐1);(13)为所有节点编号,标准时钟节点为“0”,其余节点从“1”至“N‐1”编号;(14)将节点1至节点N‐1分层,其中,第n层节点数为2(n‐1)个;(15)逐层进行多轮时钟同步,需要进行的同步轮数与节点分成的层数n相同,每次同步在多组主节点和从节点之间进行,第m轮同步时,由节点k作为时钟同步的主节点,节点2(m‐1)+k作为从节点,其中k为从0至2*2(m‐2)‐1的自然数;(16)在主从节点进行时钟同步的过程中,从节点获取时钟漂移Tdiff和与主节点之间、的传输时延Tdelay,从节点按照Tdiff修正时钟,并且记录与主节点之间的传输时延;(17)节点修正时钟后向标准时钟节点发送同步完成消息,标准时钟节点收到所有节点的同步完成消息后,测试开始前的时钟同步完成;所述测试进行中的时钟同步步骤如下:(21)由标准时钟节点周期性地向各时钟同步层发出同步指令,每个同步周期内整个系统进行一次时钟同步,每次同步各节点逐层进行多轮时钟同步,需要进行的同步轮数与节点分成的层数n相同,每次同步在多组主节点和从节点之间进行,第m轮同步时,由节点k作为时钟同步的主节点,节点2(m‐1)+k作为从节点,其中k为从0至2*2(m‐2)‐1的自然数;(22)测试过程中主从节点同步,同步按照以下过程进行:(221)从主节点向从节点发送同步指令消息Sync,并且主节点记录发送指令的时间点T1;(222)从节点记录接收到Sync消息的时间点T2;(223)主节点向从节点发送跟随消息Follow_up,其中包含记录的T1;(224)从节点根据公式计算时钟漂移Tdiff,Tdiff=[(T2‐T1)‐Tdelay],其中,Tdelay为从节点记录的主从节点之间的传输时延;(225)如果计算得出的Tdelay小于等于系统时钟的最小颗粒度Tatom,记录第m个同步周期的时钟漂移Tdelay_m,否则进行时钟修正;(226)测试结束后按照各从节点记录的各同步周期内的时钟漂移Tdelay修正测试数据的时间标签。...

【技术特征摘要】
1.一种分布式实时测试系统时钟同步方法,其特征在于所述方法分为测试开始前的时钟同步和测试进行中的时钟同步,其中:所述测试开始前的时钟同步步骤如下:(11)从系统的所有节点中选出一个节点作为标准时钟节点;(12)根据系统内部的节点总数计算需要将节点分为多少层来进行时钟同步,计算方法如下:如果系统内节点总数为N,则计算同步层数n的公式为2*2(n-2)<N-1<=2*2(n-1);(13)为所有节点编号,标准时钟节点为“0”,其余节点从“1”至“N-1”编号;(14)将节点1至节点N-1分层,其中,第n层节点数为2(n-1)个;(15)逐层进行多轮时钟同步,需要进行的同步轮数与节点分成的层数n相同,每次同步在多组主节点和从节点之间进行,第m轮同步时,由节点k作为时钟同步的主节点,节点2(m-1)+k作为从节点,其中k为从0至2*2(m-2)-1的自然数;(16)在主从节点进行时钟同步的过程中,从节点获取时钟漂移Tdiff和与主节点之间的传输时延Tdelay,从节点按照Tdiff修正时钟,并且记录与主节点之间的传输时延;(17)节点修正时钟后向标准时钟节点发送同步完成消息,标准时钟节点收到所有节点的同步完成消息后,测试开始前的时钟同步完成;所述测试进行中的时钟同步步骤如下:(21)由标准时钟节点周期性地向各时钟同步层发出同步指令,每个同步周期内整个系统进行一次时钟同步,每次同步各节点逐层进行多轮时钟同步,需要进行的同步轮数与节点分成的层数n相同,每次同步在多组主节点和从节点之间进行,第m轮同步时,由节点k作为时钟同步的主节点,节点2(m-1)+k作为从节点,其中k为从0至2*...

【专利技术属性】
技术研发人员:杨顺昆刘斌司维
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1