CN101588266B - 一种热备份冗余系统的通讯与同步数据交互方法 - Google Patents
一种热备份冗余系统的通讯与同步数据交互方法 Download PDFInfo
- Publication number
- CN101588266B CN101588266B CN2009100876630A CN200910087663A CN101588266B CN 101588266 B CN101588266 B CN 101588266B CN 2009100876630 A CN2009100876630 A CN 2009100876630A CN 200910087663 A CN200910087663 A CN 200910087663A CN 101588266 B CN101588266 B CN 101588266B
- Authority
- CN
- China
- Prior art keywords
- unit
- counter
- data
- synchrodata
- synchronous
- 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
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
一种热备份冗余系统的通讯与同步数据交互方法,通讯数据和同步数据采用同一物理通道进行发送和接收,交互时优先发送通讯数据,若通讯数据发送缓冲区非空则发送通讯数据,若通讯数据发送缓冲区为空则发送同步数据,通讯数据和同步数据的交互模式可以自动切换,提高了冗余系统的数据交互效率。在进行数据同步时,对回环同步数据接收时刻与对方发送同步数据的接收时刻进行比较,并只在对方发送的同步数据滞后于回环的同步数据时调整等待计数器进行数据同步,提高了整个系统的同步性。本发明方法实现简单,可节省大量的硬件资源。
Description
技术领域
本发明涉及一种数据交互方法,特别是一种在热备份多机冗余系统中所采用的通讯与同步数据交互方法。
背景技术
在热备份多机冗余系统中,系统通常需要对单机的数据内容和时序达成一致,比如单机专有的传感器数据如何,何时达成一致;比如单机的状态数据如何,状态数据何时达成一致等等。系统中的每对单机需要通过交互数据才能达到内容一致,通过同步交互才能达到时序一致,即热备份冗余系统中的单机有一致内容的数据,并且不同单机一致内容的数据是在一定时间门限内所达成的,相关内容可参见文献Abler,T.,A Network Element Based Fault TolerantProcessor,MS Thesis,Massachusetts Institute of Technology,Cambridge,MA,May 1988。
目前,在通常的多机冗余系统中,通讯数据和同步数据是分别进行处理的,对于通讯数据通常采用专门的通讯通道,不和同步通道合用。而对于同步策略则通常采用时钟同步和任务同步。
对于时钟同步,系统需要传播高速容错时钟信号,它的实现随着系统规模的增长而难度变大。另外,时钟同步方法需要冗余处理器的时钟是确定的,也就是说冗余处理器在给定数目的时钟周期内必须执行完全相同条指令。这个限制通常需要剔除可能存在于同步部件内的所有的异步和不确定性,另外,时钟同步一般需要利用专用的硬件装置实现,因此实现复杂,而且采用时钟级的微同步显然是不能满足硬件软件多样性设计要求的。
对于任务同步,系统需要利用软件来实现多机的同步,一般利用应用代码自然产生的断点作为同步事件。单机间通过软件信息的发送和接收来保证同步,单机在断点处发送消息给对方,然后等待接收对方发送给自己的消息;在接收消息时,单机全部通过软件操作来保证同步。由于各单机间无时钟级同步操作过程,需要软件参与管理与控制全部同步操作过程,因此软件任务同步实现的效率较低,并且难以做到对应用程序员完全透明。
发明内容
本发明的技术解决问题是:克服现有技术的不足之处,提供了一种数据交互效率高、同步性好、实现简单的热备份冗余系统的通讯与同步数据交互方法。
本发明的技术解决方案是:一种热备份冗余系统的通讯与同步数据交互方法,步骤如下:
(1)设冗余系统中有M个单机,4≥M≥2,M个单机中任意两个单机之间通过独立的物理通道进行数据交互,所述数据包括通讯数据和同步数据,通讯数据使用专门的发送缓冲区发送;
(2)若单机的通讯数据发送缓冲区非空,则读取通讯数据发送缓冲区的通讯数据发送给对方单机,同时还将所述通讯数据回环给自己,并等待接收对方单机发送给自己的通讯数据,直至通讯数据缓冲区内的通讯数据全部发送完毕;
(3)若单机的通讯数据发送缓冲区为空,则不进行通讯数据交互,将同步数据发送给对方单机,同时还将所述同步数据回环给自己,并等待接收对方单机发送给自己的同步数据,在发送同步数据的同时启动第一计数器和第二计数器;
(4)当单机接收到回环给自己的同步数据时停止第一计数器,当单机接收到对方单机发送给自己的同步数据时停止第二计数器;
(5)若在第一计数器溢出时未收到回环给自己的同步数据,或者在第二计数器溢出时未收到对方单机发送给自己的同步数据则根据通讯数据发送缓冲区是否为空执行步骤(2)或步骤(3);
(6)若第一计数器和第二计数器均已停止计数,则在在后一个计数器停止计数时刻产生同步脉冲,提示两单机同步,第一计数器和第二计数器的计数差值即为两单机的同步状态;
(7)重复步骤(2)~(6),若在上一次同步数据交互时步骤(6)中第二计数器的值大于第一计数器的值,则在本次同步数据交互时步骤(3)中将同步数据发送给对方单机之前等待T1时间,T1为上一次同步数据交互时步骤(6)中第二计数器与第一计数器的差值;若在上一次同步数据交互时步骤(6)中第二计数器的值小于第一计数器的值,则在本次同步数据交互时步骤(3)中立即将同步数据发送给对方单机。
所述M个单机中任意两个单机之间通过独立的物理通道进行数据交互的方式为异步串行通讯方式。
本发明与现有技术相比的有益效果是:
(1)本发明方法将M个单机划分为N对同时进行同步数据的交互,通讯数据和同步数据共用统一的物理通道,实现简单,可节省大量的硬件资源;交互时优先发送通讯数据,当通讯数据发送缓冲区为空时才发送同步数据,可自主进行通讯数据和同步数据交互模式的切换,与应用软件任务同步相比,提高了单机间的同步频率,可以使整个系统在较短的时间内达到同步,提高了整个系统的数据交互效率;
(2)对回环同步数据的接收时刻与对方发送的同步数据的接收时刻进行比较,并只在对方发送的同步数据滞后于回环的同步数据时调整等待计数器进行数据同步,使得等待计数器的设置更为直接有效,从而提高了整个系统的同步性;
(3)通过异步串行通讯方式进行同步,消除了时钟同步所需要的复杂锁相环电路,克服了在大规模冗余系统间传播高速容错时钟信号的困难,而且克服了时钟同步方法需要相同硬件的限制,系统中的各个单机可以采用硬件软件多样性设计。
附图说明
图1为本发明方法的流程框图;
图2为本发明实施例中两台单机进行通讯与同步数据交互的示意图。
具体实施方式
假设冗余系统中有M个单机,4≥M≥2,当然M还可以取大于4的值,但由于此时系统规模庞大,各单机之间无论是硬件连接还是通讯方式都更加的复杂,若要完成各单机之间的数据同步需要花费较长时间,系统吞吐率受限,在此条件下本发明方法虽然仍旧适用,但其同步效率会受到影响,因此将使用本发明方法的冗余系统的单机数量限制在2、3和4。
M个单机通过独立的物理通道实现全连接,其中的任意两个单机之间都进行数据交互,交互的数据包括通讯数据和同步数据,通讯数据的发送和接收均可采用缓冲区来实现。
如图1所示,为本发明方法的流程框图。若监测到通讯数据发送缓冲区非空,则读取发送缓冲区的最先1个字节数据,按照约定的串行通讯帧格式,写入移位寄存器,串行通讯数据发送给对方单机。同时还将所述串行通讯数据回环给自己(自己发送给自己),并等待接收对方单机发送给自己的通讯数据,将回环数据与接收数据比较后,将比较结果和接收数据写入接收缓冲区,并通知处理器读取,供处理器使用。当前1个字节数据全部移位完成并发送完毕后,继续读取发送缓冲区的最先1个字节,重复上述过程,直至读空通讯数据发送缓冲区。
若监测到通讯数据发送缓冲区为空,则不进行通讯数据交互,而是将预先设定好的同步数据(譬如0×55)发送给对方单机,同时还将所述同步数据回环给自己,发送同步数据时,采用与交互通讯数据不同的帧格式(譬如校验方式),使接收方可以以明显的方式辨认对方单机发送给自己的是同步数据还是正常通讯数据。
在发送同步数据时,启动两个计数器,分别记录回环给自己的同步数据的时间,以及对方单机发送给自己同步数据的时间。通过比较两个计数器的记录时间以及二者的时间差,单机可以明确与对方单机的同步时差关系。
在某一轮同步数据交互时,若单机先接收到自己的回环同步数据,后接收到对方发送来的同步数据,那么单机先延迟相应的时间(该时间应为后接收到对方发送来的同步数据时刻减去先接收到自己的回环同步数据时刻的差值)后,再进行下一次同步数据交互,经过如此反复多轮同步数据交互,两个计数器的时差会变得很小并稳定下来,两单机达到较佳的同步状态。若单机先接收到对方发送来的同步数据,后接收到自己回环的同步数据,那么单机不再经过任何延迟,而是直接进行下一次同步数据交互。
当然,在上述过程中有可能出现计数器溢出的情况,此时应将两个计数器同时清零后重新进行下一次的同步数据交互。
在数据交互过程中,既可以采用同步串行通讯方式,也可以采用异步串行通讯方式,但考虑到同步串行通讯方式要求各个单机间传送与数据有确定相位关系的高速容错时钟,实现复杂,因此本发明方法采用较为简单的异步串行通讯方式。
实施例
如图2所示,为M=2时两台单机之间采用本发明的通讯与同步数据交互方法进行数据交互的示意图。对于M=3,4的情况,系统可分解考虑N对单机的同步,其中
如图2所示,对于此对单机(单机A和单机B)中的每一个单机,均包含一个处理单元(包括中央处理器、存储器等)和一个通讯单元(包括异步串行通讯控制器和同步控制逻辑),其中处理单元是执行应用程序、调度和重构任务的计算机,通讯单元是实现同步、数据交互和同步表决等相关功能的硬件。
通讯单元分成三个部分:处理单元/通讯单元接口部分、同步控制部分和通讯控制器部分。其中接口部分提供在处理单元和通讯单元之间有效和有序传递不同大小的信息,同时还提供处理单元和通讯单元间的流控制以保证不覆盖有效信息,一般可以采用双端口存储器或FIFO(先入先出)实现;同步控制部分提供通讯数据与同步数据的切换控制,以及同步交互控制处理能力,并提供两个通讯单元的的同步机制;通信链路部分提供本地通讯单元和另一个通讯单元交互途径,以及其自身回环交互的串行通讯转换与串行通道。
A单机和B单机完成复位与初始化后,由于同步数据交互的起始不一致,因此它们是通过多次同步数据交互才能完成相互的渐近同步过程,达到较佳的同步状态。对于整个冗余系统而言,当系统中任意一对单机之间都有较佳的同步状态后,整个系统也将处于较佳的同步状态。
采用此结构的A单机和B单机,其总的同步策略基本操作如下:通讯单元通过多轮同步数据交互后,可以实现与对方单机通讯单元的紧密同步,A单机和B单机的处理单元通过读取同步状态以及接收同步脉冲,可以实现较为松散的同步。处理单元通过处理单元/通讯单元接口,把通讯单元看作存储器映射、带缓冲器的I/O设备;如果处理单元希望通过通讯单元与其它单机执行数据交互,它只需写数据到通讯单元的数据发送缓冲区,然后处理单元在一定时限内可以通过数据接收缓冲区读取对方单机的发送过来的相应通讯数据;通过多轮上述同步操作,A单机和B单机可以实现数据内容和时序的相互一致。
冗余系统在同步方面采用分层同步的方式,A单机和B单机的处理单元间采用功能同步方案,允许处理器(CPU)以它们自己的速度运行代码一段时间,然后在代码的指定点发送信息等待对方处理器追赶上来以获得同步。A单机的处理器运行到代码的某些指定点时发送信息给B单机的处理器,在发送信息后A单机处理器停止执行直到接收B单机处理器返回的这条信息,此时A单机的处理器知道B处理器已经达到这个相同的点,然后就可以继续执行。采用功能同步方案使得A单机处理器和B单机处理器可以在计算具备一定结果后进行同步。A单机和B单机的通讯单元间采用简单的异步串行通讯帧同步方案,保证通讯单元在相同的时刻收、发异步串行通讯同步帧,产生同步脉冲与同步状态分别供A单机和B单机处理器使用。通过定义一个异步串行通讯帧为信息传输单位,A单机和B单机可以比较接收到自身回环,以及对方同步帧的时间,并可以基于这个比较结果,调整自己发送下一条同步数据帧的等待时间从而使A单机和B单机的通讯单元同步。由于异步串行通讯帧传送简单,因此A单机和B单机通讯单元间同步频率快,A单机和B单机间同步后的偏差小(双方产生同步脉冲的时刻,以及间隔趋于一致),可以实现紧密同步。单机间的同步数据可以预先设定,设定后同步数据帧一直是相同的。
A单机和B单机的一轮同步操作流程为:
A单机:向B单机发送同步数据时刻,启动两个定时计数器(第一计数器和第二计数器),通过回环通道,等待接收自己发出的同步数据,同时等待B单机发送给自己的同步数据,当收到自己发出的同步数据后停止第一计数器,收到对方发出的同步数据后停止第二计数器,完成一次同步操作,并记录两个计数器的时差,作为下一次同步操作的时延依据。
B单机:B单机的操作和A单机的操作流程一致,发送同步数据后,启动两个定时计数器,通过回环通道,等待接收自己发出的同步数据,同时等待A单机发给自己的同步数据,当收到自己发出的同步数据后停止第一计数器,收到对方发出的同步数据后停止第二计数器,完成一次同步操作,并记录两个计数器时差,作为下一次同步操作的时延依据。
假设在本轮操作中,A单机的同步数据先发,那么在进行下一轮同步数据交互时,A单机推迟发出同步数据的时刻,B单机在完成上一轮同步数据交互后,立即进行下一轮同步数据交互。在多次上述同步数据交互过程中,A单机、B单机各自配置的两个计数器值逐渐接近,直至达到较为稳定的同步,当A单机、B单机在回环、对方同步数据都就绪时产生同步脉冲,处理器依据一定时间范围内的同步脉冲个数,可以判断系统是否达成同步。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (2)
1.一种热备份冗余系统的通讯与同步数据交互方法,其特征在于步骤如下:
(1)设冗余系统中有M个单机,4≥M≥2,M个单机中任意两个单机之间通过独立的物理通道进行数据交互,所述数据包括通讯数据和同步数据,通讯数据使用专门的发送缓冲区发送;
(2)若单机的通讯数据发送缓冲区非空,则读取通讯数据发送缓冲区的通讯数据发送给对方单机,同时还将所述通讯数据回环给自己,并等待接收对方单机发送给自己的通讯数据,直至通讯数据缓冲区内的通讯数据全部发送完毕;
(3)若单机的通讯数据发送缓冲区为空,则不进行通讯数据交互,将同步数据发送给对方单机,同时还将所述同步数据回环给自己,并等待接收对方单机发送给自己的同步数据,在发送同步数据的同时启动第一计数器和第二计数器;
(4)当单机接收到回环给自己的同步数据时停止第一计数器,当单机接收到对方单机发送给自己的同步数据时停止第二计数器;
(5)若在第一计数器溢出时未收到回环给自己的同步数据,或者在第二计数器溢出时未收到对方单机发送给自己的同步数据则根据通讯数据发送缓冲区是否为空返回步骤(2)或步骤(3);
(6)若第一计数器和第二计数器均已停止计数,则在在后一个计数器停止计数时刻产生同步脉冲,提示两单机同步,第一计数器和第二计数器的计数差值即为两单机的同步状态;
(7)重复步骤(2)~(6),若在上一次同步数据交互时步骤(6)中第二计数器的值大于第一计数器的值,则在本次同步数据交互时步骤(3)中将同步数据发送给对方单机并回环给自己之前等待T1时间,T1为上一次同步数据交互时步骤(6)中第二计数器与第一计数器的差值;若在上一次同步数据交互时步骤(6)中第二计数器的值小于第一计数器的值,则在本次同步数据交互时步骤(3)中立即将同步数据发送给对方单机。
2.根据权利要求1所述的一种热备份冗余系统的通讯与同步数据交互方法,其特征在于:所述M个单机中任意两个单机之间通过独立的物理通道进行数据交互的方式为异步串行通讯方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100876630A CN101588266B (zh) | 2009-06-30 | 2009-06-30 | 一种热备份冗余系统的通讯与同步数据交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100876630A CN101588266B (zh) | 2009-06-30 | 2009-06-30 | 一种热备份冗余系统的通讯与同步数据交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101588266A CN101588266A (zh) | 2009-11-25 |
CN101588266B true CN101588266B (zh) | 2011-04-27 |
Family
ID=41372340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100876630A Active CN101588266B (zh) | 2009-06-30 | 2009-06-30 | 一种热备份冗余系统的通讯与同步数据交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101588266B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3069077B1 (fr) * | 2017-07-12 | 2019-07-26 | Safran Electronics & Defense | Systeme et procede de communication pour la commande et le controle d'au moins un peripherique |
CN109532954B (zh) * | 2018-12-12 | 2022-01-28 | 中车长春轨道客车股份有限公司 | 一种车辆数据自动备份的实现方法 |
CN112256493B (zh) * | 2020-09-27 | 2023-07-14 | 北京控制工程研究所 | 一种基于数据池的四机热备份计算机数据快速访问方法 |
-
2009
- 2009-06-30 CN CN2009100876630A patent/CN101588266B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101588266A (zh) | 2009-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107483135B (zh) | 一种高同步的时间触发以太网装置及方法 | |
WO2021253596A1 (zh) | 一种基于双通道安全plc的同步控制及数据表决方法 | |
CN102546843A (zh) | 一种通过软件模拟实现多个uart通信接口的方法 | |
CN102819512A (zh) | 一种基于spi的全双工通信装置及其方法 | |
CN101588266B (zh) | 一种热备份冗余系统的通讯与同步数据交互方法 | |
CN102315929A (zh) | 一种地面仿真系统的校时同步控制器 | |
CN108279597A (zh) | 一种基于有限状态机的计算机联锁平台控制方法 | |
CN102830647A (zh) | 一种故障安全的二乘二取二装置 | |
CN101511042A (zh) | 一种同步数据的方法及其装置 | |
CN108259227A (zh) | 一种双机热备联锁系统的数据同步方法 | |
CN105681131B (zh) | 主备系统及其并行输出方法 | |
CN102217207B (zh) | 用于实时分布式系统的同步方法及其装置 | |
CN103034236B (zh) | 一种基于时分复用的多星敏感器时序同步处理方法 | |
Abraham et al. | Brief announcement: Byzantine agreement, broadcast and state machine replication with optimal good-case latency | |
US20130290768A1 (en) | Arithmetic processing device, method for controlling arithmetic processing device, and system | |
CN103412785B (zh) | 一种多速率遥测时间同步方法 | |
CN110830137B (zh) | 一种基于srio的多节点时间同步控制系统及其同步控制方法 | |
Puschner et al. | Asynchronous vs. synchronous interfacing to time-triggered communication systems | |
CN105610532B (zh) | 信号的传输处理方法及装置、设备 | |
WO2006056904A2 (en) | Globally asynchronous locally synchronous systems | |
CN101000561A (zh) | 多机容错系统内核的实现方法 | |
CN101576835B (zh) | 一种满足拜占庭协议的两轮通信方法 | |
CN105406984B (zh) | 一种实现主备倒换背板时钟的系统及方法 | |
CN102984088A (zh) | 应用于afdx交换机确保帧转发顺序一致性的方法 | |
Puschner et al. | Interfacing to time-triggered communication systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |