发明内容
(一)要解决的技术问题
本发明提供一种双机系统的数据交互方法与装置,以解决现有技术中的双机系统容易产生系统故障累积,从而影响长期可靠性的技术问题。
(二)技术方案
为解决上述技术问题,本发明提供一种双机系统的数据交互方法,包括:
将首先发出使能控制信号的双机系统中的一系升为主模式,另一系进入备模式;
在主模式和备模式状态下进行周期性的数据交互过程,并向CPU输出交互数据;
经过给定的数据交互周期后,将主模式与备模式相互交换,主模式释放使能控制信号降级为备模式,备模式检测不到使能控制信号后升级为主模式,并继续进行数据交互。
进一步地,所述将首先发出使能控制信号的双机系统中的一系升为主模式包括:
双机系统上电后,规定一个0-255的随机数,令双机系统分别以1uS的时间将此数计数完成并发出使能控制信号,将经过随机数置数后首先发出使能控制信号的一系升为主模式。
进一步地,所述在主模式和备模式状态下进行周期性的数据交互过程,并向CPU输出交互数据包括:
在前n个周期内,由主模式向备模式写入数据;在第n+1个周期,由备模式向主模式反馈上述主模式写入的数据:当反馈结果正确时,向CPU输出交互数据;当反馈结果不正确时,丢弃上述数据并重新进行数据写入操作,进入下一个n+1周期的循环。
进一步地,所述方法还包括:
当所述反馈结果出现3次不正确时,发出错误警告,并通过维护数据信号发送到CPU进行处理。
进一步地,所述方法还包括:
当备模式升级为主模式后,向降级为备模式的一系发出持续的使能控制信号,通知交换成功;当备模式无法升级为主模式时,降级为备模式的一系由于检测不到持续的使能控制信号,则再次升级为主模式并继续进行数据交互;
当主模式和备模式的交换过程出现3次不成功时,发出错误警告,并通过维护数据信号发送到CPU进行处理。
另一方面,本发明还提供一种双机系统的数据交互装置,包括:主备模式产生单元、数据交互单元和主备模式交换单元,其中:
主备模式生成单元,用于将首先发出使能控制信号的双机系统中的一系升为主模式,另一系进入备模式,并将结果输送至数据交互单元;
数据交互单元,用于在主模式和备模式状态下进行周期性的数据交互过程,并向CPU输出交互数据;
主备模式交换单元,用于等待所述数据交互单元经过给定的数据交互周期后,将主模式与备模式相互交换,主模式释放使能控制信号降级为备模式,备模式检测不到使能控制信号后升级为主模式,完成后令所述数据交互单元继续进行数据交互。
进一步地,所述主备模式生成单元包括:
随机数置数子单元,用于在双机系统上电后,规定一个0-255的随机数,令双机系统分别以1uS的时间将此数计数完成并发出使能控制信号,将经过随机数置数后首先发出使能控制信号的一系升为主模式。
进一步地,所述数据交互单元包括:
循环反馈子单元,用于在前n个周期内,由主模式向备模式写入数据;在第n+1个周期,由备模式向主模式反馈上述主模式写入的数据:当反馈结果正确时,向CPU输出交互数据;当反馈结果不正确时,丢弃上述数据并重新进行数据写入操作,进入下一个n+1周期的循环。
进一步地,所述数据交互单元还包括:
反馈警告子单元,用于当所述反馈结果出现3次不正确时,发出错误警告,并通过维护数据信号发送到CPU进行处理。
进一步地,所述主备模式交换单元包括:
判断子单元,用于当备模式升级为主模式后,向降级为备模式的一系发出持续的使能控制信号,通知交换成功;当备模式无法升级为主模式时,降级为备模式的一系由于检测不到持续的使能控制信号,则再次升级为主模式并继续进行数据交互;
交换警告子单元,用于当主模式和备模式的交换过程出现3次不成功时,发出错误警告,并通过维护数据信号发送到CPU进行处理。
(三)有益效果
可见,在本发明提出的一种双机系统的数据交互方法与装置中,针对双机系统的通信使用主备模式,并在运行中能够实时动态的调整主备模式的状态,从而防止物理层故障累积的技术问题。本发明能够实现双机系统的长期稳定和可靠的信息交互传输。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例首先提供一种双机系统的数据交互方法,参见图1,包括:
步骤101:将首先发出使能控制信号的双机系统中的一系升为主模式,另一系进入备模式。
步骤102:在主模式和备模式状态下进行周期性的数据交互过程,并向CPU输出交互数据。
步骤103:经过给定的数据交互周期后,将主模式与备模式相互交换,主模式释放使能控制信号降级为备模式,备模式检测不到使能控制信号后升级为主模式,并继续进行数据交互。
可见,在本发明实施例提出的一种双机系统的数据交互方法中,针对双机系统通信使用主备模式,并在运行中能够实时动态的调整主备模式的状态,从而防止物理层故障累积的技术问题。本发明能够实现双机系统的长期稳定和可靠的信息交互传输。
在本发明的一个实施例中,可以通过随机数置数方式触发使能控制信号。优选地,将首先发出使能控制信号的双机系统中的一系升为主模式可以包括:双机系统上电后,规定一个0-255的随机数,令双机系统分别以1uS的时间将此数计数完成并发出使能控制信号,将经过随机数置数后首先发出使能控制信号的一系升为主模式。
在本发明的另一个实施例中,优选地,可以在主模式和备模式状态下进行以n+1周期为循环的周期性数据交互过程:在前n个周期内,由主模式向备模式写入数据;在第n+1个周期,由备模式向主模式反馈上述主模式写入的数据:当反馈结果正确时,向CPU输出交互数据;当反馈结果不正确时,丢弃上述数据并重新进行数据写入操作,进入下一个n+1周期的循环。
在本发明的一个实施例中,为保证安全性,在系统需求允许的范围内,需要限制错误重发机制。优选地,可以在反馈结果出现3次不正确时,发出错误警告,并通过维护数据信号发送到CPU进行处理。
在系统的运行过程中,不能一直保持一系为主模式另一系为备模式的状态,这样有可能无法检测出累计故障。在本发明的另一个实施例中,优选地,可以采用动态交互控制权的方式,并且当备模式升级为主模式后,可以向降级为备模式的一系发出持续的使能控制信号,通知交换成功;当备模式无法升级为主模式时,降级为备模式的一系由于检测不到持续的使能控制信号,则会再次升级为主模式并继续进行数据交互。为保证安全性,在系统需求允许的范围内,需要限制交互控制权失败机制。当主模式和备模式的交换过程出现3次不成功时,可以发出错误警告,并通过维护数据信号发送到CPU进行处理。
下面以针对2oo2双机系统的信息交互方法为例,来详细说明本发明一个实施例的实现过程。
本发明实施例的FPGA信息交互电路设计框图如图2所示。假设2oo2的A/B系所在的FPGA芯片分别是FPGA_A和FPGA_B,则两个芯片应该通过专用的电平buffer和隔离电路A/B进行通信,或者2oo2双系的主控芯片也可以使用嵌入式芯片及相关处理器设计,模块的组成结构类似。在设计板级电路时,原则是在速度允许的条件下尽量使用电平缓冲和隔离电路,以使2oo2双系实现物理上的最高程度的隔离。
在本发明实施例中,定义了数据交互所用的数据位宽(Data)、地址位宽(Address)、读取信号(Read)、写入信号(Write)、使能控制信号(EN),以及维护数据信号(Maintain)、逻辑处理前输入信号(DataIN)及逻辑处理后的输出信号(Data OUT)等。
本发明实施例主要的信号及通道定义如图3所示。其中,交互所用数据定义为数据位宽(Data),数据位宽一般定义在1~8,根据物理连接电路所能设计的最大容量确定。写入信号(Write)、地址位宽(Address)、使能控制信号(EN)与数据位宽(Data)均须通过缓冲区(buffer)和隔离到达另外一系的RAM存储中。为保证可靠性及可用性,电路与信号均采用双路冗余设计。从A系到B系FPGA的通信通道为双路,从B系到A系FPGA的通信通道也为双路。
如图3所示,由A系FPGA向外输出两路Data/address/Write/EN信号,通过缓冲区隔离将数据分别写入RAM_B1和RAM_B2,B系FPGA使用Data/address/Read信号控制分别读取RAM_B1和RAM_B2数据,进行逻辑处理。由B系FPGA到A系的信号设计同理。
地址位宽可以根据数据总长度及数据位宽度定义,假设数据总长度为n,数据位宽度为m,则地址位宽k=n/m,根据数据量取适当整数。因此数据总量会受到电路设计的地址位通道限制,需在设计之初确定期望的地址宽度、数据宽度,保证总数据的传输。
逻辑(LOGIC)模块用来进行逻辑处理,从图3中体现的作用主要是将CPU需要输出的数据进行组帧及校验码后发送给对方的RAM存储器中;将从两个RAM中读取的数据进行处理后输出给CPU进行处理。同时,需要记录逻辑处理过程中可能出现的错误及主要的标志位信号等,通过维护数据信号(Maintain)传送给CPU进行监控和处理。
如果双机系统采用完全相同的模块,有可能会出现控制信号冲突问题,所以需要一种控制机制来解决同时上电或同时启动时的控制冲突。本发明实施例中采用了主备机制,而主备间亦需要周期性的交换控制权,实现动态交互设计。
交互模式共分为断电模式、上电模式、主模式、备模式四种,可以执行以下几种模式间的状态转换:
1、断电模式可以手动转换到上电模式;
2、上电模式可自动以转换到主模式、备模式、断电模式,或者手动转到断电模式;
3、主模式可自动转换成备模式、断电模式,或者手动转到断电模式;
4、备模式可自动转换为主模式、断电模式,或者手动转到断电模式。
5、当外界条件不发生改变时,主模式和备模式保持当前模式,当使能控制信号发生改变时,主模式和备模式之间相互交换。
转换流程图及转换条件如图4所示。
当本发明实施例中的双机系统只有单系上电时,则本系的逻辑处理模块自动升为主模式,且在监控另外一系信号的情况下保持主模式不变。
当双系上电时,则进行如图5所示的双机系统数据交互流程:
步骤501:双机系统上电后进行初始化。
本步骤中,双机系统上电后,进行包括外部CPU数据准备、随机数置数、数据交互所用的输入输出端口检查等初始化操作。其中,随机数置数的作用是用来触发使能控制信号。
步骤502:将首先发出使能控制信号的双机系统中的一系升为主模式,另一系进入备模式。
本步骤中,令双机系统分别将随机数置数过程中规定的0~255的随机数,以1uS时间计数完成后发出使能控制信号。这样可以避免同时上电的争主冲突事件。另外,由于两系的时钟是不完全同步的,一定会存在时间差,总会有一系先发出使能控制信号并先升为主模式,这就保证了两系模式的正确性。
步骤503:在主模式和备模式状态下进行周期性的数据交互过程,并向CPU输出交互数据。
在正常运行时,数据交互过程按照循环模式运行,其中每个循环可以划分为n+1个周期,如图6所示:前n个周期内,由主模式向备模式写入数据,进行数据的多次写入及读取校验操作;在第n+1个周期进行反馈校验,由备模式向主模式反馈上述主模式写入的数据:当反馈结果正确时,向CPU输出交互数据;当反馈结果不正确时,丢弃上述数据并重新进行数据写入操作,进入下一个n+1周期的数据交互循环,以保证数据传输的正确性。
为保证安全性,在系统需求允许的范围内,需要限制错误重发机制,例如在3次重发校验错误时发出错误警告,通过维护数据信号发送到CPU进行相关处理。
步骤504:经过给定的数据交互周期后,将主模式与备模式相互交换。
在系统运行过程中,不能一直使双机系统保持一系为主模式另外一系为备模式的状态,这样有可能无法检测出故障累积。因此本发明实施例设定了动态交互控制权的方式,即图7中所示的动态主备模式切换流程图。本发明实施例中,规定运行n个周期后交出控制权,则主模式将释放使能控制信号降级为备模式,当另外一系检测到无使能控制信号后则自动升级为主模式,并向降级一系发出持续的使能控制信号,以使其知晓交互成功。
当主模式释放使能控制信号后,另外一系无法升级为主模式时,降级一方如果在规定时间内没有检测到另外一系升级为主模式的反馈使能控制信号,则将再次升级为主模式进行数据交互。为保证安全性,在系统需求允许的范围内,需要限制交互控制权失败机制,在另外一系上电但是3次未能正常移交主模式控制权时,需要发出警告并通过维护数据信号将故障情况发送到CPU进行相关处理。
至此,则完成了本发明实施例双机系统的数据交互方法的全过程。
本发明实施例还提供了一种双机系统的数据交互装置,参见图8,包括:
主备模式生成单元801,用于将首先发出使能控制信号的双机系统中的一系升为主模式,另一系进入备模式,并将结果输送至数据交互单元802;
数据交互单元802,用于在主模式和备模式状态下进行周期性的数据交互过程,并向CPU输出交互数据;
主备模式交换单元803,用于等待所述数据交互单元802经过给定的数据交互周期后,将主模式与备模式相互交换,主模式释放使能控制信号降级为备模式,备模式检测不到使能控制信号后升级为主模式,完成后令所述数据交互单元802继续进行数据交互。
在本发明的一个实施例中,优选地,主备模式生成单元801可以包括:随机数置数子单元,用于在双机系统上电后,规定一个0-255的随机数,令双机系统分别以1uS的时间将此数计数完成并发出使能控制信号,将经过随机数置数后首先发出使能控制信号的一系升为主模式。
在本发明的另一个实施例中,优选地,数据交互单元802可以包括:循环反馈子单元,用于在前n个周期内,由主模式向备模式写入数据;在第n+1个周期,由备模式向主模式反馈上述主模式写入的数据:当反馈结果正确时,向CPU输出交互数据;当反馈结果不正确时,丢弃上述数据并重新进行数据写入操作,进入下一个n+1周期的循环。
在本发明的一个实施例中,优选地,数据交互单元802还可以包括:反馈警告子单元,用于当所述反馈结果出现3次不正确时,发出错误警告,并通过维护数据信号发送到CPU进行处理。
在本发明的另一个实施例中,优选地,主备模式交换单元803可以包括:判断子单元,用于当备模式升级为主模式后,向降级为备模式的一系发出持续的使能控制信号,通知交换成功;当备模式无法升级为主模式时,降级为备模式的一系由于检测不到持续的使能控制信号,则再次升级为主模式并继续进行数据交互。主备模式交换单元803还可以包括:交换警告子单元,用于当主模式和备模式的交换过程出现3次不成功时,发出错误警告,并通过维护数据信号发送到CPU进行处理。
可见,在本发明实施例提出的一种双机系统的数据交互方法与装置中,针对双机系统的通信使用主备模式,并在运行中能够实时动态的调整主备模式的状态,从而防止物理层故障累积的技术问题。本发明能够实现双机系统的长期稳定和可靠的信息交互传输。
本发明实施例的数据交互方法与装置的交互时间误差小,带有安全校验且可靠。本发明实施例使用了周期性的数据交互过程,使得数据传输交互操作简单易行;并且利用专用的维护数据信号进行错误警告和发送,能够及时反馈系统状态,方便维护及调试。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。