CN109217966B - 2oo3冗余结构下的操作系统时钟同步方法、系统 - Google Patents
2oo3冗余结构下的操作系统时钟同步方法、系统 Download PDFInfo
- Publication number
- CN109217966B CN109217966B CN201811152178.2A CN201811152178A CN109217966B CN 109217966 B CN109217966 B CN 109217966B CN 201811152178 A CN201811152178 A CN 201811152178A CN 109217966 B CN109217966 B CN 109217966B
- Authority
- CN
- China
- Prior art keywords
- node
- clock
- synchronization
- nodes
- slave
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000001360 synchronised effect Effects 0.000 claims abstract description 101
- 238000004891 communication Methods 0.000 claims abstract description 37
- 238000001514 detection method Methods 0.000 claims description 13
- 230000003111 delayed effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0641—Change of the master or reference, e.g. take-over or failure of the master
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明提供了一种2oo3冗余结构下的操作系统时钟同步方法、系统,其特征在于,包括:延时获取步骤:分别将节点网络中每个节点与节点网络中的其余节点进行一次通讯,获取每个节点与节点网络中的其余节点的通讯延时;节点划分步骤:根据获取的每个节点与其余节点的通讯延时,计算每个节点与其余节点的平均通讯延时,选取一个平均通讯延时最小的节点作为主时钟节点,将节点网络中的其余节点作为从时钟节点;节点同步步骤:建立同步网络,将从时钟节点与主时钟节点同步。发明所建立的时钟同步网络可以覆盖2oo3冗余结构,可自主维护网络中各节点,可以进行添加、删除节点或链路等操作。可以根据不同的网络负载和物理结构进行调整。
Description
技术领域
本发明涉及网络信息传输技术领域,具体地,涉及一种2oo3冗余结构下的操作系统时钟同步方法、系统。
背景技术
在航空航天、轨道交通、军事以及能源电力等安全攸关领域对实时嵌入式处理节点具有很高的可靠性和安全性要求。在安全关键性实时嵌入式系统中,为了减少和降低风险,除了选用高可靠电子元器件外,通常采用多模冗余的方式提高实时嵌入式系统的可靠性和降低风险概率。多模冗余实时嵌入式系统中处理节点间时钟同步是确保系统正确实时性行为的关键,如在对数据表决时,要求不管是输入数据还是输出数据,都要在时刻上保持一致。
在多模冗余实时嵌入式系统中每个实时嵌入式处理节点的时钟属性差异和初始时间不同,需要使用时钟同步技术来补偿时钟误差,构建并维护一个统一时间基,从而确保系统实时行为的正确性。
目前安全关键性应用领域主要采用基于报文交换网络的时钟同步技术来补偿时间误差,同时需要考虑时钟漂移和网络消息延迟不确定性两个主要的误差源。
常用于节点网络中的同步协议有网络时间协议NTP(Network Time Protocol)和简单网络时间协议SNTP(Simple Network Time Protocol)。采用NTP协议的节点网络将网络内各个节点时钟同步到某个时钟标准,目前采用的时间标准是世界协调时UTC(Universal Time Coordinated)。NTP协议的时钟同步主要是在主从工作方式下实现的。由于NTP采用的是应用层同步方法,其时间同步精度一般在10ms至100ms之间,不能满足强实时、高精度等安全关键领域的要求。SNTP则是一个简化的NTP同步协议,其时间精度依赖于客户端和服务端网络的情况。但由于SNTP采用的是与NTP相同的时钟同步策略,因此其同步精度也不高。
同时,在这些时钟同步方法中,仅同步外部时钟,缺少对操作系统内部时钟的调整。而操作系统的系统时钟扮演着重要角色,一个失步的系统时钟会影响任务的调度、软定时器的工作状态、性能表现以及实时响应等操作系统关键指标。一个冗余结构中失步的操作系统节点可能会引发与其他节点的同步相关问题。例如,当冗余系统中部分节点发生异常重启后,其操作系统内部时钟与整个冗余系统中的时间不一致,或是由于工作环境和硬件误差导致的时钟漂移,使得在冗余网络中会出现与其他操作系统节点时钟差异较大的异常节点。
以上这些场景的出现,采用仅同步外部时钟且精度不高的同步方法导致其在安全关键领域有部分局限性。
专利文献CN105187148A(申请号:CN201510504383)公开了一种基于ARM的网络时钟同步系统及方法,该系统包括如下:GPS卫星授时模块,通过卫星在短时间内获取卫星时间信息;NTP服务器,利用带操作系统的嵌入式处理器作为服务器,将接收的时间报文转为标准格式,并校准本机时间;硬件守时模块,用于储存NTP服务器最近校准的时间;客户端模块,获取服务器时间,同步本地系统时间。该专利文献采用基于NTP协议的时钟同步方法,使用环境要求高,约束条件较多以及同步精度不及采用IEEE1588协议的时钟同步方法
专利文献CN102523066A(申请号:CN201110438104)公开了基于IEEE1588冗余从钟的时钟同步系统及同步方法,同步方法中系统开始运行后,当一个从钟模块进入同步状态,把该从钟模块进行同步的1588主钟信息保存到从钟调度模块中,从钟调度模块筛选并输出最优从钟,同步系统进入同步状态;系统运行过程中,当某个从钟失去同步状态,从钟调度模块重新选出一个最优从钟,并输出作为同步系统的时钟输出。该同步系统仅同步外部时钟,并未使用各个节点间的时钟差异对节点内操作系统内部时钟进行同步。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种2oo3冗余结构下的操作系统时钟同步方法、系统。
根据本发明提供的一种2oo3冗余结构下的操作系统时钟同步方法,包括:
延时获取步骤:分别将节点网络中每个节点与节点网络中的其余节点进行一次通讯,获取每个节点与节点网络中的其余节点的通讯延时;
节点划分步骤:根据获取的每个节点与其余节点的通讯延时,计算每个节点与其余节点的平均通讯延时,选取一个平均通讯延时最小的节点作为主时钟节点,将节点网络中的其余节点作为从时钟节点;
节点同步步骤:建立同步网络,将从时钟节点与主时钟节点同步。
优选地,所述节点同步步骤包括:
网络创建步骤:将各从时钟节点加入同步网络,将各从时钟节点的系统时钟状态设置为停止同步状态Stopped,令主时钟节点发送同步消息;
时钟差异获取步骤:接收主时钟节点发送的同步消息,依次读取各从时钟节点的时钟信息,依次计算各从时钟节点与主时钟节点的时钟差异,获得各从时钟节点与主时钟节点的时钟差异;
差异判断步骤:根据获取的各从时钟节点与主时钟节点的时钟差异,依次判断各从时钟节点与主时钟节点的时钟差异是否大于预设的最大容忍差异MaxTolerableTime:若是,则设置对应的从时钟节点的系统时钟状态为持续同步状态Running,并将该时钟差异存储至的调整队列;否则,则跳过该时钟差异,继续判断下一个时钟差异;判断完所有时钟差异后,进入差异调整步骤继续执行;
差异调整步骤:读取调整队列,根据调整队列获取需调整的时钟差异,通过修改系统时钟频率渐进调整系统时钟数据,即将需调整的时钟差异对应的从时钟节点的时钟信息,与主时钟节点的时钟信息同步,轮询监测调整是否完成,直到调整完成后,查询调整队列是否有新的需调整的时钟差异:若有,则返回差异调整步骤继续执行;否则,则判定同步完成,获得同步完成信息,进入同步完成步骤继续执行;
同步完成步骤:根据获得的同步完成信息,将各从时钟节点的系统时钟状态设置为同步完成状态Running&Synchronous。
优选地,从时钟节点的系统时钟状态为停止同步状态Stopped时,从时钟节点停止周期性地向其他节点发送同步消息,从时钟节点的本地时钟继续运行,从时钟节点不参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为持续同步状态Running时,从时钟节点按IEEE1588协议规定的方法,周期性地向其余节点发送同步消息,参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为同步完成状态Running&Synchronous时,从时钟节点达到同步状态,周期性地向其他节点发送同步消息,确认从时钟节点的同步状态,若发现从时钟节点与主时钟节点失去同步状态,则切换成持续同步状态Running重新调整。
优选地,所述调整队列中记录了从时钟节点与主时钟的差异数值,采用先进先出FIFO模式进行存储与读取;
所述同步消息按IEEE1588协议规定的方法发送。
优选地,节点网络中各节点接收到按IEEE1588协议规定的方法发送的同步消息后,进行故障检测;
所述节点网络中共有3个节点;
所述故障检测包括:
判断是否发生节点失效:若是,则判断故障节点是否是主时钟节点:若是主时钟节点,则在剩余两个节点中重新选取一个主时钟节点;若不是主时钟节点,则将失效的节点从同步网络中剔除,返回延时获取步骤继续执行;若否,则继续执行节点同步步骤;
判断是否发生链路失效:若是,则判断故障链路是否涉及主时钟节点:若涉及主时钟节点,则将有效链路中的中间节点选取为新的主时钟节点,其余两个节点作为从时钟节点;若不涉及主时钟节点,则将失效链路从同步网络中剔除,返回延时获取步骤继续执行;若否,则继续执行节点同步步骤。
根据本发明提供的一种2oo3冗余结构下的操作系统时钟同步系统,包括:
延时获取模块:分别将节点网络中每个节点与节点网络中的其余节点进行一次通讯,获取每个节点与节点网络中的其余节点的通讯延时;
节点划分模块:根据获取的每个节点与其余节点的通讯延时,计算每个节点与其余节点的平均通讯延时,选取一个平均通讯延时最小的节点作为主时钟节点,将节点网络中的其余节点作为从时钟节点;
节点同步模块:建立同步网络,将从时钟节点与主时钟节点同步。
优选地,所述节点同步模块包括:
网络创建模块:将各从时钟节点加入同步网络,将各从时钟节点的系统时钟状态设置为停止同步状态Stopped,令主时钟节点发送同步消息;
时钟差异获取模块:接收主时钟节点发送的同步消息,依次读取各从时钟节点的时钟信息,依次计算各从时钟节点与主时钟节点的时钟差异,获得各从时钟节点与主时钟节点的时钟差异;
差异判断模块:根据获取的各从时钟节点与主时钟节点的时钟差异,依次判断各从时钟节点与主时钟节点的时钟差异是否大于预设的最大容忍差异MaxTolerableTime:若是,则设置对应的从时钟节点的系统时钟状态为持续同步状态Running,并将该时钟差异存储至的调整队列;否则,则跳过该时钟差异,继续判断下一个时钟差异;判断完所有时钟差异后,触发差异调整模块;
差异调整模块:读取调整队列,根据调整队列获取需调整的时钟差异,通过修改系统时钟频率渐进调整系统时钟数据,即将需调整的时钟差异对应的从时钟节点的时钟信息,与主时钟节点的时钟信息同步,轮询监测调整是否完成,直到调整完成后,查询调整队列是否有新的需调整的时钟差异:若有,则触发差异调整模块;否则,则判定同步完成,获得同步完成信息,触发同步完成模块;
同步完成模块:根据获得的同步完成信息,将各从时钟节点的系统时钟状态设置为同步完成状态Running&Synchronous。
优选地,从时钟节点的系统时钟状态为停止同步状态Stopped时,从时钟节点停止周期性地向其他节点发送同步消息,从时钟节点的本地时钟继续运行,从时钟节点不参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为持续同步状态Running时,从时钟节点按IEEE1588协议规定的方法,周期性地向其余节点发送同步消息,参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为同步完成状态Running&Synchronous时,从时钟节点达到同步状态,周期性地向其他节点发送同步消息,确认从时钟节点的同步状态,若发现从时钟节点与主时钟节点失去同步状态,则切换成持续同步状态Running重新调整。
优选地,所述调整队列中记录了从时钟节点与主时钟的差异数值,采用先进先出FIFO模式进行存储与读取;
所述同步消息按IEEE1588协议规定的方法发送。
节点网络中各节点接收到按IEEE1588协议规定的方法发送的同步消息后,进行故障检测;
所述节点网络中共有3个节点;
所述故障检测包括:
判断是否发生节点失效:若是,则判断故障节点是否是主时钟节点:若是主时钟节点,则在剩余两个节点中重新选取一个主时钟节点;若不是主时钟节点,则将失效的节点从同步网络中剔除,触发延时获取模块;若否,则触发节点同步模块;
判断是否发生链路失效:若是,则判断故障链路是否涉及主时钟节点:若涉及主时钟节点,则将有效链路中的中间节点选取为新的主时钟节点,其余两个节点作为从时钟节点;若不涉及主时钟节点,则将失效链路从同步网络中剔除,触发延时获取模块;若否,则触发节点同步模块。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述任一项所述的2oo3冗余结构下的操作系统时钟同步方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明所建立的时钟同步网络可以覆盖2oo3冗余结构,可自主维护网络中各节点,可以进行添加、删除节点或链路等操作。可以根据不同的网络负载和物理结构进行调整。
2、本发明采用的同步方法基于IEEE1588时钟同步协议,可以将时钟同步精度提高至ns级别。可以优化冗余结构操作系统内的任务调度、软定时器的工作状态、性能表现以及实时响应等操作系统关键指标。在安全关键领域的表现超出传统同步方法。
3、本发明具有一定的健壮性,可对网络结构发生的变化作出调整,在系统遭遇故障或异常时,仍然能够正常且安全的运行,确保各节点系统时钟的一致性。
4、本发明的时钟同步方法基于IEEE1588高精度时钟同步协议,可以将各操作系统节点的系统时钟的同步精度提高到ns级别。
5、本发明所构建的时钟同步网络可以对节点进行动态的管理,并有一定健壮性。当有操作系统节点或通讯链路发生异常或故障时,其节点或链路会从同步网络中剔除,并调整剩余节点同步情况。当有新节点加入时,同步网络可以动态调整主从时钟,容纳新节点。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的实施例3提供的主从时钟模型结构示意图。
图2为本发明的实施例3提供的节点失效后的网络调整示意图。
图3为本发明的实施例3提供的未涉及主时钟的链路失效后的网络调整示意图。
图4为本发明的实施例3提供的涉及主时钟的链路失效后的网络调整示意图。
图5为本发明的实施例3提供的系统时钟状态转化示意图。
图6本发明的实施例3提供的从时钟节点同步过程流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种2oo3冗余结构下的操作系统时钟同步方法,包括:
延时获取步骤:分别将节点网络中每个节点与节点网络中的其余节点进行一次通讯,获取每个节点与节点网络中的其余节点的通讯延时;
节点划分步骤:根据获取的每个节点与其余节点的通讯延时,计算每个节点与其余节点的平均通讯延时,选取一个平均通讯延时最小的节点作为主时钟节点,将节点网络中的其余节点作为从时钟节点;
节点同步步骤:建立同步网络,将从时钟节点与主时钟节点同步。
具体地,所述节点同步步骤包括:
网络创建步骤:将各从时钟节点加入同步网络,将各从时钟节点的系统时钟状态设置为停止同步状态Stopped,令主时钟节点发送同步消息;
时钟差异获取步骤:接收主时钟节点发送的同步消息,依次读取各从时钟节点的时钟信息,依次计算各从时钟节点与主时钟节点的时钟差异,获得各从时钟节点与主时钟节点的时钟差异;
差异判断步骤:根据获取的各从时钟节点与主时钟节点的时钟差异,依次判断各从时钟节点与主时钟节点的时钟差异是否大于预设的最大容忍差异MaxTolerableTime:若是,则设置对应的从时钟节点的系统时钟状态为持续同步状态Running,并将该时钟差异存储至的调整队列;否则,则跳过该时钟差异,继续判断下一个时钟差异;判断完所有时钟差异后,进入差异调整步骤继续执行;
差异调整步骤:读取调整队列,根据调整队列获取需调整的时钟差异,通过修改系统时钟频率渐进调整系统时钟数据,即将需调整的时钟差异对应的从时钟节点的时钟信息,与主时钟节点的时钟信息同步,轮询监测调整是否完成,直到调整完成后,查询调整队列是否有新的需调整的时钟差异:若有,则返回差异调整步骤继续执行;否则,则判定同步完成,获得同步完成信息,进入同步完成步骤继续执行;
同步完成步骤:根据获得的同步完成信息,将各从时钟节点的系统时钟状态设置为同步完成状态Running&Synchronous。
具体地,从时钟节点的系统时钟状态为停止同步状态Stopped时,从时钟节点停止周期性地向其他节点发送同步消息,从时钟节点的本地时钟继续运行,从时钟节点不参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为持续同步状态Running时,从时钟节点按IEEE1588协议规定的方法,周期性地向其余节点发送同步消息,参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为同步完成状态Running&Synchronous时,从时钟节点达到同步状态,周期性地向其他节点发送同步消息,确认从时钟节点的同步状态,若发现从时钟节点与主时钟节点失去同步状态,则切换成持续同步状态Running重新调整。
具体地,所述调整队列中记录了从时钟节点与主时钟的差异数值,采用先进先出FIFO模式进行存储与读取;
所述同步消息按IEEE1588协议规定的方法发送。
具体地,节点网络中各节点接收到按IEEE1588协议规定的方法发送的同步消息后,进行故障检测;
所述节点网络中共有3个节点;
所述故障检测包括:
判断是否发生节点失效:若是,则判断故障节点是否是主时钟节点:若是主时钟节点,则在剩余两个节点中重新选取一个主时钟节点;若不是主时钟节点,则将失效的节点从同步网络中剔除,返回延时获取步骤继续执行;若否,则继续执行节点同步步骤;
判断是否发生链路失效:若是,则判断故障链路是否涉及主时钟节点:若涉及主时钟节点,则将有效链路中的中间节点选取为新的主时钟节点,其余两个节点作为从时钟节点;若不涉及主时钟节点,则将失效链路从同步网络中剔除,返回延时获取步骤继续执行;若否,则继续执行节点同步步骤。
本发明提供的2oo3冗余结构下的操作系统时钟同步系统,可以通过本发明给的2oo3冗余结构下的操作系统时钟同步方法的步骤流程实现。本领域技术人员可以将所述2oo3冗余结构下的操作系统时钟同步方法,理解为所述2oo3冗余结构下的操作系统时钟同步系统的一个优选例。
根据本发明提供的一种2oo3冗余结构下的操作系统时钟同步系统,包括:
延时获取模块:分别将节点网络中每个节点与节点网络中的其余节点进行一次通讯,获取每个节点与节点网络中的其余节点的通讯延时;
节点划分模块:根据获取的每个节点与其余节点的通讯延时,计算每个节点与其余节点的平均通讯延时,选取一个平均通讯延时最小的节点作为主时钟节点,将节点网络中的其余节点作为从时钟节点;
节点同步模块:建立同步网络,将从时钟节点与主时钟节点同步。
具体地,所述节点同步模块包括:
网络创建模块:将各从时钟节点加入同步网络,将各从时钟节点的系统时钟状态设置为停止同步状态Stopped,令主时钟节点发送同步消息;
时钟差异获取模块:接收主时钟节点发送的同步消息,依次读取各从时钟节点的时钟信息,依次计算各从时钟节点与主时钟节点的时钟差异,获得各从时钟节点与主时钟节点的时钟差异;
差异判断模块:根据获取的各从时钟节点与主时钟节点的时钟差异,依次判断各从时钟节点与主时钟节点的时钟差异是否大于预设的最大容忍差异MaxTolerableTime:若是,则设置对应的从时钟节点的系统时钟状态为持续同步状态Running,并将该时钟差异存储至的调整队列;否则,则跳过该时钟差异,继续判断下一个时钟差异;判断完所有时钟差异后,触发差异调整模块;
差异调整模块:读取调整队列,根据调整队列获取需调整的时钟差异,通过修改系统时钟频率渐进调整系统时钟数据,即将需调整的时钟差异对应的从时钟节点的时钟信息,与主时钟节点的时钟信息同步,轮询监测调整是否完成,直到调整完成后,查询调整队列是否有新的需调整的时钟差异:若有,则触发差异调整模块;否则,则判定同步完成,获得同步完成信息,触发同步完成模块;
同步完成模块:根据获得的同步完成信息,将各从时钟节点的系统时钟状态设置为同步完成状态Running&Synchronous。
具体地,从时钟节点的系统时钟状态为停止同步状态Stopped时,从时钟节点停止周期性地向其他节点发送同步消息,从时钟节点的本地时钟继续运行,从时钟节点不参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为持续同步状态Running时,从时钟节点按IEEE1588协议规定的方法,周期性地向其余节点发送同步消息,参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为同步完成状态Running&Synchronous时,从时钟节点达到同步状态,周期性地向其他节点发送同步消息,确认从时钟节点的同步状态,若发现从时钟节点与主时钟节点失去同步状态,则切换成持续同步状态Running重新调整。
具体地,所述调整队列中记录了从时钟节点与主时钟的差异数值,采用先进先出FIFO模式进行存储与读取;
所述同步消息按IEEE1588协议规定的方法发送。
节点网络中各节点接收到按IEEE1588协议规定的方法发送的同步消息后,进行故障检测;
所述节点网络中共有3个节点;
所述故障检测包括:
判断是否发生节点失效:若是,则判断故障节点是否是主时钟节点:若是主时钟节点,则在剩余两个节点中重新选取一个主时钟节点;若不是主时钟节点,则将失效的节点从同步网络中剔除,触发延时获取模块;若否,则触发节点同步模块;
判断是否发生链路失效:若是,则判断故障链路是否涉及主时钟节点:若涉及主时钟节点,则将有效链路中的中间节点选取为新的主时钟节点,其余两个节点作为从时钟节点;若不涉及主时钟节点,则将失效链路从同步网络中剔除,触发延时获取模块;若否,则触发节点同步模块。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述任一项所述的2oo3冗余结构下的操作系统时钟同步方法的步骤。
下面通过优选例,对本发明进行更为具体地说明。
实施例1:
在一个如图1所示的网络中,有两个从时钟节点和一个主时钟节点,3个节点都正常运行。在某一时刻,主时钟遵循IEEE1588标准发出了同步信号,其中一个从时钟接收到同步信号后进行了如下的同步过程:
步骤1:以太网控制器模块收到来自主时钟的同步消息,读取高精度时钟模块内的时钟信息,计算该时钟差异得到-10ms,并将时钟差异传递给同步控制器模块。
步骤2:同步控制器模块接收时钟差异,其绝对值大于最大容忍差异1ms,于是将本节点的系统时钟状态从Running&Synchronous改为Running并将-10ms时钟差异传递给同步调整模块,同步调整模块在调整队列SyncList中新入队一个调整任务,该任务须将本地系统时钟向前调整10ms。
步骤4:同步调整模块读取调整队列SyncList,获取向前调整10ms的调整任务,渐进调整系统时钟模块内的系统时钟数据,并轮询监测调整是否完成,待其完成后,查询调整队列SyncList,若有新的调整任务重复步骤4,若调整队列为空,进入步骤5。
步骤5:同步调整模块将同步完成讯息传递给同步控制器模块,同步控制器将本节点的系统时钟状态设置为Running&Synchronous。调整完成,实现时钟同步。
实施例2:
在一个如图1所示的网络中,有两个从时钟节点和一个主时钟节点,3个节点都正常运行。在某一时刻,一个从时钟节点由于故障重启,重启完成后重新加入节点并进行同步。该从时钟进行了如下的同步过程:
步骤1:新加入节点后,同步控制器将节点状态设为Stopped状态,等待与主时钟的同步。
步骤2:以太网控制器模块收到来自主时钟的同步消息,读取高精度时钟模块内的时钟信息,计算该时钟差异得到900ms,并将时钟差异传递给同步控制器模块。
步骤3:同步控制器模块接收时钟差异,大于最大容忍差异1ms,于是将本节点的系统时钟状态从Stopped改为Running并将900ms时钟差异传递给同步调整模块,同步调整模块在调整队列SyncList中新入队一个调整任务,该任务须将本地系统时钟向后调整900ms。
步骤4:同步调整模块读取调整队列SyncList,获取向后调整900ms的调整任务,渐进调整系统时钟模块内的系统时钟数据,并轮询监测调整是否完成,待其完成后,查询调整队列SyncList,若有新的调整任务重复步骤4,若调整队列为空,进入步骤5。
步骤5:同步调整模块将同步完成讯息传递给同步控制器模块,同步控制器将本节点的系统时钟状态设置为Running&Synchronous。调整完成,实现时钟同步。
实施例3:
本发明的2oo3冗余结构下的操作系统时钟同步系统分为高精度时钟模块、以太网控制器模块、同步控制器模块、同步调整模块、系统时钟模块。建立一个如图1所示的同步网络。
高精度时钟模块提供高精度的外部时钟数据,采用IEEE1588协议与网络中主时钟节点的高精度时钟模块进行同步。
以太网控制器模块用于与网络中其他节点进行通信,传递符合IEEE1588协议的同步消息,将时钟差异传递给同步控制器模块。
同步控制器模块接受来自于以太网控制器模块的时钟差异数据,对差异数据进行分析并管理本地节点的系统时钟状态,如图5所示,可以在Stopped,Running,Running&Synchronous三种状态间切换。Stopped状态下,节点停止周期性地向其他节点发送同步消息,本地时钟继续运行,但不参与网络内的同步调整;Running状态下,节点按IEEE1588协议规定的方法,周期性地向其他节点发送同步消息,参与网络内的同步调整,但未达到同步状态;Running&Synchronous状态,节点已达到同步状态,周期性地向其他节点发送同步消息,确认自己的同步状态,若发现自己与主时钟失去同步状态,则切换成Running状态重新调整。在需要对系统时钟状态做出调整时将同步要求传递给同步调整模块。
同步调整模块接收来自于同步控制器模块的同步信号,计算所需要调整的时间差异,对系统时钟模块进行渐进式地调整,轮询其调整过程是否结束,待调整过程结束将调整结果传递给同步控制器模块。
系统时钟模块读取操作系统内部时钟数据,将其作为本节点的时钟数据,接受来自于同步调整模块的同步要求并对自身数据进行同步调整。
被选为主时钟的节点只需根据协议向节点网络内各个节点适时发送同步消息即可。而一个从时钟节点的同步过程包括如下步骤:
步骤1:加入同步节点网络,同步控制器将本节点设置为Stopped状态。
步骤2:以太网控制器模块收到主时钟节点发送的同步消息,读取高精度时钟模块内的时钟信息,计算本节点与主时钟节点的时钟差异,将时钟差异传递给同步控制器模块。
步骤3:同步控制器模块接收时钟差异,判断该时钟差异是否大于预设的最大容忍差异MaxTolerableTime,若大于,设置本节点的系统时钟状态为Running并将时钟差异传递给同步调整模块内的调整队列,调整队列中记录了本从节点与主时钟的差异数值,采用先进先出FIFO模式进行存储与读取,然后进入步骤4,否则进入步骤3等待下一个时钟差异数据。
步骤4:同步调整模块读取调整队列,获取需调整的时间差异,通过修改系统时钟频率渐进调整系统时钟模块内的系统时钟数据,并轮询监测调整是否完成,待其完成后,查询调整队列,若有新的调整任务重复步骤4,若调整队列为空,进入步骤5。
步骤5:同步调整模块将同步完成讯息传递给同步控制器模块,同步控制器将本节点的系统时钟状态设置为Running&Synchronous。调整完成,实现时钟同步。
整个同步网络的建立过程包括如下步骤:
步骤1:节点网络中各个节点与其余节点进行一次通讯,获取与其他节点的通讯延时。
步骤2:选取一个与其他两节点平均延时最小的节点作为主时钟节点,其余节点作为从时钟节点。
步骤3:各个从时钟节点加入同步节点网络,与主时钟节点同步。具体过程如上述同步步骤。
步骤4:从时钟节点同步完成,整个系统处于同步状态。
在建立同步网络之后,各节点若收到符合IEEE1588同步协议的调整拓扑结构的消息,则进行故障检测,处理过程包括如下步骤。
若发生了节点失效:
步骤1:确认故障节点是否是主时钟节点,若是主时钟节点,进入步骤2,否则进入步骤3.
步骤2:在剩余两个节点中重新选取一个主时钟节点。
步骤3:将失效节点从同步网络中剔除,重新进行同步,如图2所示。
若发生了链路失效:
步骤1:确认故障链路是否涉及主时钟,若涉及主时钟节点,进入步骤2,否则进入步骤3.
步骤2:如图4所示,将中间节点选取为新的主时钟节点,其余两个节点作为从时钟节点。
步骤3:将失效链路从同步网络中剔除,重新进行同步。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (8)
1.一种2oo3冗余结构下的操作系统时钟同步方法,其特征在于,包括:
延时获取步骤:分别将节点网络中每个节点与节点网络中的其余节点进行一次通讯,获取每个节点与节点网络中的其余节点的通讯延时;
节点划分步骤:根据获取的每个节点与其余节点的通讯延时,计算每个节点与其余节点的平均通讯延时,选取一个平均通讯延时最小的节点作为主时钟节点,将节点网络中的其余节点作为从时钟节点;
节点同步步骤:建立同步网络,将从时钟节点与主时钟节点同步;
所述节点同步步骤包括:
网络创建步骤:将各从时钟节点加入同步网络,将各从时钟节点的系统时钟状态设置为停止同步状态Stopped,令主时钟节点发送同步消息;
时钟差异获取步骤:接收主时钟节点发送的同步消息,依次读取各从时钟节点的时钟信息,依次计算各从时钟节点与主时钟节点的时钟差异,获得各从时钟节点与主时钟节点的时钟差异;
差异判断步骤:根据获取的各从时钟节点与主时钟节点的时钟差异,依次判断各从时钟节点与主时钟节点的时钟差异是否大于预设的最大容忍差异MaxTolerableTime:若是,则设置对应的从时钟节点的系统时钟状态为持续同步状态Running,并将该时钟差异存储至的调整队列;否则,则跳过该时钟差异,继续判断下一个时钟差异;判断完所有时钟差异后,进入差异调整步骤继续执行;
差异调整步骤:读取调整队列,根据调整队列获取需调整的时钟差异,通过修改系统时钟频率渐进调整系统时钟数据,即将需调整的时钟差异对应的从时钟节点的时钟信息,与主时钟节点的时钟信息同步,轮询监测调整是否完成,直到调整完成后,查询调整队列是否有新的需调整的时钟差异:若有,则返回差异调整步骤继续执行;否则,则判定同步完成,获得同步完成信息,进入同步完成步骤继续执行;
同步完成步骤:根据获得的同步完成信息,将各从时钟节点的系统时钟状态设置为同步完成状态Running&Synchronous。
2.根据权利要求1所述的2oo3冗余结构下的操作系统时钟同步方法,其特征在于,从时钟节点的系统时钟状态为停止同步状态Stopped时,从时钟节点停止周期性地向其他节点发送同步消息,从时钟节点的本地时钟继续运行,从时钟节点不参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为持续同步状态Running时,从时钟节点按IEEE1588协议规定的方法,周期性地向其余节点发送同步消息,参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为同步完成状态Running&Synchronous时,从时钟节点达到同步状态,周期性地向其他节点发送同步消息,确认从时钟节点的同步状态,若发现从时钟节点与主时钟节点失去同步状态,则切换成持续同步状态Running重新调整。
3.根据权利要求2所述的2oo3冗余结构下的操作系统时钟同步方法,其特征在于,所述调整队列中记录了从时钟节点与主时钟的差异数值,采用先进先出FIFO模式进行存储与读取;
所述同步消息按IEEE1588协议规定的方法发送。
4.根据权利要求3所述的2oo3冗余结构下的操作系统时钟同步方法,其特征在于,节点网络中各节点接收到按IEEE1588协议规定的方法发送的同步消息后,进行故障检测;
所述节点网络中共有3个节点;
所述故障检测包括:
判断是否发生节点失效:若是,则判断故障节点是否是主时钟节点:若是主时钟节点,则在剩余两个节点中重新选取一个主时钟节点;若不是主时钟节点,则将失效的节点从同步网络中剔除,返回延时获取步骤继续执行;若否,则继续执行节点同步步骤;
判断是否发生链路失效:若是,则判断故障链路是否涉及主时钟节点:若涉及主时钟节点,则将有效链路中的中间节点选取为新的主时钟节点,其余两个节点作为从时钟节点;若不涉及主时钟节点,则将失效链路从同步网络中剔除,返回延时获取步骤继续执行;若否,则继续执行节点同步步骤。
5.一种2oo3冗余结构下的操作系统时钟同步系统,其特征在于,包括:
延时获取模块:分别将节点网络中每个节点与节点网络中的其余节点进行一次通讯,获取每个节点与节点网络中的其余节点的通讯延时;
节点划分模块:根据获取的每个节点与其余节点的通讯延时,计算每个节点与其余节点的平均通讯延时,选取一个平均通讯延时最小的节点作为主时钟节点,将节点网络中的其余节点作为从时钟节点;
节点同步模块:建立同步网络,将从时钟节点与主时钟节点同步;
所述节点同步模块包括:
网络创建模块:将各从时钟节点加入同步网络,将各从时钟节点的系统时钟状态设置为停止同步状态Stopped,令主时钟节点发送同步消息;
时钟差异获取模块:接收主时钟节点发送的同步消息,依次读取各从时钟节点的时钟信息,依次计算各从时钟节点与主时钟节点的时钟差异,获得各从时钟节点与主时钟节点的时钟差异;
差异判断模块:根据获取的各从时钟节点与主时钟节点的时钟差异,依次判断各从时钟节点与主时钟节点的时钟差异是否大于预设的最大容忍差异MaxTolerableTime:若是,则设置对应的从时钟节点的系统时钟状态为持续同步状态Running,并将该时钟差异存储至的调整队列;否则,则跳过该时钟差异,继续判断下一个时钟差异;判断完所有时钟差异后,触发差异调整模块;
差异调整模块:读取调整队列,根据调整队列获取需调整的时钟差异,通过修改系统时钟频率渐进调整系统时钟数据,即将需调整的时钟差异对应的从时钟节点的时钟信息,与主时钟节点的时钟信息同步,轮询监测调整是否完成,直到调整完成后,查询调整队列是否有新的需调整的时钟差异:若有,则触发差异调整模块;否则,则判定同步完成,获得同步完成信息,触发同步完成模块;
同步完成模块:根据获得的同步完成信息,将各从时钟节点的系统时钟状态设置为同步完成状态Running&Synchronous。
6.根据权利要求5所述的2oo3冗余结构下的操作系统时钟同步系统,其特征在于,从时钟节点的系统时钟状态为停止同步状态Stopped时,从时钟节点停止周期性地向其他节点发送同步消息,从时钟节点的本地时钟继续运行,从时钟节点不参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为持续同步状态Running时,从时钟节点按IEEE1588协议规定的方法,周期性地向其余节点发送同步消息,参与同步网络内的时间同步调整;
从时钟节点的系统时钟状态为同步完成状态Running&Synchronous时,从时钟节点达到同步状态,周期性地向其他节点发送同步消息,确认从时钟节点的同步状态,若发现从时钟节点与主时钟节点失去同步状态,则切换成持续同步状态Running重新调整。
7.根据权利要求6所述的2oo3冗余结构下的操作系统时钟同步系统,其特征在于,所述调整队列中记录了从时钟节点与主时钟的差异数值,采用先进先出FIFO模式进行存储与读取;
所述同步消息按IEEE1588协议规定的方法发送;
节点网络中各节点接收到按IEEE1588协议规定的方法发送的同步消息后,进行故障检测;
所述节点网络中共有3个节点;
所述故障检测包括:
判断是否发生节点失效:若是,则判断故障节点是否是主时钟节点:若是主时钟节点,则在剩余两个节点中重新选取一个主时钟节点;若不是主时钟节点,则将失效的节点从同步网络中剔除,触发延时获取模块;若否,则触发节点同步模块;
判断是否发生链路失效:若是,则判断故障链路是否涉及主时钟节点:若涉及主时钟节点,则将有效链路中的中间节点选取为新的主时钟节点,其余两个节点作为从时钟节点;若不涉及主时钟节点,则将失效链路从同步网络中剔除,触发延时获取模块;若否,则触发节点同步模块。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的2oo3冗余结构下的操作系统时钟同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811152178.2A CN109217966B (zh) | 2018-09-29 | 2018-09-29 | 2oo3冗余结构下的操作系统时钟同步方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811152178.2A CN109217966B (zh) | 2018-09-29 | 2018-09-29 | 2oo3冗余结构下的操作系统时钟同步方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109217966A CN109217966A (zh) | 2019-01-15 |
CN109217966B true CN109217966B (zh) | 2020-04-24 |
Family
ID=64982666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811152178.2A Active CN109217966B (zh) | 2018-09-29 | 2018-09-29 | 2oo3冗余结构下的操作系统时钟同步方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109217966B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835446A (zh) * | 2019-04-19 | 2020-10-27 | 杭州海康威视数字技术股份有限公司 | 主设备确定方法、装置及设备、介质 |
CN114115005B (zh) * | 2021-11-12 | 2024-05-03 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于三cpu冗余架构的飞行控制任务同步系统及方法 |
SE2350091A1 (en) * | 2023-01-31 | 2024-08-01 | Net Insight Ab | Enhanced restart of nodes after interruption |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724083A (zh) * | 2012-05-25 | 2012-10-10 | 哈尔滨工程大学 | 基于软件同步的可降级三模冗余计算机系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1157324A4 (en) * | 1998-12-18 | 2009-06-17 | Triconex Corp | PROCESS AND DEVICE FOR PROCESSING CONTROL USING A MULTIPLE REDUNDANT PROCESS CONTROL SYSTEM |
US8687481B2 (en) * | 2007-04-04 | 2014-04-01 | Mitsubishi Electric Corporation | Communication system, management apparatus, communication apparatus and computer program |
CN103684734B (zh) * | 2013-11-11 | 2017-03-15 | 北京控制工程研究所 | 一种热备份冗余计算机时间同步系统及方法 |
CN105763279A (zh) * | 2016-02-24 | 2016-07-13 | 华东交通大学 | 网络系统分布节点时钟中的最优主时钟确定方法 |
CN106533601A (zh) * | 2016-10-27 | 2017-03-22 | 中国电子科技集团公司第三十二研究所 | 模块冗余系统中时钟同步的方法 |
-
2018
- 2018-09-29 CN CN201811152178.2A patent/CN109217966B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724083A (zh) * | 2012-05-25 | 2012-10-10 | 哈尔滨工程大学 | 基于软件同步的可降级三模冗余计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109217966A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109217966B (zh) | 2oo3冗余结构下的操作系统时钟同步方法、系统 | |
RU2583847C2 (ru) | Способ и устройство для синхронизации часов | |
EP2378718B1 (en) | Method, node and system for controlling version in distributed system | |
CN102347814B (zh) | 基于主时钟频率差值的从时钟调整方法 | |
US20020065940A1 (en) | Periodic control synchronous system | |
EP2749967A1 (en) | Time control device, time control method, and program | |
EP2749968A1 (en) | Time control device, time control method, and program | |
JP2011523815A (ja) | 分散形コンピュータネットワーク内のローカルクロックに同期させるための方法 | |
US20140119391A1 (en) | Apparatus and method for synchronizing clocks among communication devices | |
CN107786293A (zh) | 时间同步方法、主时钟设备、从时钟设备及时间同步系统 | |
CN111953442A (zh) | 一种快速高精度时间同步系统 | |
CN110620630B (zh) | 时间同步方法、装置、网络设备及计算机可读存储介质 | |
CN104092528A (zh) | 一种时钟同步方法和装置 | |
US20230362854A1 (en) | Method and Apparatus for Selecting Clock Source | |
CN104243079A (zh) | 一种实时以太网的微秒级时钟同步方法 | |
EP2221684B1 (en) | Distributed control system | |
CN103138865A (zh) | 一种时间同步方法和装置 | |
CN102830612A (zh) | 一种播出控制机高精度授时与守时系统和方法 | |
Gaderer et al. | Master failures in the precision time protocol | |
CN108540207B (zh) | 一种卫星载荷分布式时间同步方法及系统 | |
CN110098885B (zh) | 一种时钟同步电路、装置及其方法 | |
CN113302595A (zh) | 多芯片定时同步电路及方法 | |
CN115551069A (zh) | 一种时钟优化方法及时钟设备 | |
CN115347965B (zh) | 带缓存机制的基于改进滑动平均滤波的时间同步优化方法 | |
CN112019288B (zh) | 时间同步方法、业务单板及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |