首页> 中国专利> 基于多计算核的冗余控制方法、计算核及冗余控制系统

基于多计算核的冗余控制方法、计算核及冗余控制系统

摘要

本发明涉及冗余控制技术领域,具体涉及基于多计算核的冗余控制方法、计算核以及冗余控制系统,其中方法包括获取第一输入数据;对所述第一输入数据进行封装,以得到第一输入数据帧;将所述第一输入数据帧发送给其他计算核,并接收其他计算核发送的多个第二输入数据帧;根据所述第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对所述输入数据进行处理。每个计算核将各自获取到的输入数据进行封装后发送给其他计算核,然后每个计算核对获取到的所有数据进行仲裁确定一个输入数据,且所有计算核的仲裁结果相同,那么通过多个计算核对输入数据进行仲裁解决了通过一个硬件系统进行仲裁所导致的冗余效果不佳的问题。

著录项

  • 公开/公告号CN110989333A

    专利类型发明专利

  • 公开/公告日2020-04-10

    原文格式PDF

  • 申请/专利权人 北京星际荣耀空间科技有限公司;

    申请/专利号CN201911038728.2

  • 发明设计人 赵也倪;彭小波;

    申请日2019-10-29

  • 分类号

  • 代理机构北京三聚阳光知识产权代理有限公司;

  • 代理人张琳琳

  • 地址 100176 北京市大兴区经济技术开发区地盛南街9号1幢3层329

  • 入库时间 2023-12-17 08:42:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-04

    授权

    授权

  • 2020-05-05

    实质审查的生效 IPC(主分类):G05B9/03 申请日:20191029

    实质审查的生效

  • 2020-04-10

    公开

    公开

说明书

技术领域

本发明涉及冗余控制技术领域,具体涉及基于多计算核的冗余控制方法、计算核及冗余控制系统。

背景技术

在运载火箭控制系统的多计算核计算核的冗余控制硬件系统场景中,需要对部署在各个多计算核计算核的数据进行同步,共同完成冗余控制决策,保证软硬件系统在恶劣工作环境下能够正常计算和控制输出。

一般多计算核计算核控制硬件运载火箭系统的冗余控制过程如下:在输入情况下,由硬件系统进行输入数据的分配,即将输入数据分发给多个计算核,各个计算核分别对输入数据进行处理,所有计算核将各自的处理结果输出至该硬件系统,所述的硬件系统通过多个计算核计算核的计算结果进行有效性和结果进行选择,然后硬件系统选择某一结果进行输出。

然而,上述冗余控制过程的输出决策是由硬件系统实现,且该硬件系统唯一,形成冗余方案单点;即由于输出判决是由唯一的硬件系统决定,那么就与冗余控制的设计初衷相违背,导致冗余控制的效果不佳。

发明内容

有鉴于此,本发明实施例提供了一种基于多计算核的冗余同步方法、计算核及冗余控制系统,以解决现有冗余控制方法的效果不佳的问题。

根据第一方面,本发明实施例提供了一种基于多计算核的冗余控制方法,包括:

获取第一输入数据;

对所述第一输入数据进行封装,以得到第一输入数据帧;

将所述第一输入数据帧发送给其他计算核,并接收其他计算核发送的多个第二输入数据帧;其中,所述第二输入数据帧为其他计算核对各自获取到的第二输入数据封装后得到的;

根据所述第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对所述输入数据进行处理。

本发明实施例提供的基于多计算核的冗余控制方法,每个计算核将各自获取到的输入数据进行封装后发送给其他计算核,即每个计算核均能够获取到除自身获取到的输入数据以外,还能够获取到其他计算核所获取到的输入数据;然后每个计算核对获取到的所有数据进行仲裁确定一个输入数据,且所有计算核的仲裁结果相同,那么通过多个计算核对输入数据进行仲裁解决了通过一个硬件系统进行仲裁所导致的冗余效果不佳的问题;且由于本发明提出的冗余控制方法是全部基于软件实现的,具有自恢复功能,能够避免由于硬件系统的异常所导致的无法恢复的问题。

结合第一方面,在第一方面第一实施方式中,所述根据所述第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对所述输入数据进行处理,包括:

统计所述第一输入数据以及多个第二输入数据中相同的输入数据;

确定相同的输入数据为所述输入数据;

对所述输入数据进行处理。

本发明实施例提供的基于多计算核的冗余控制方法,每个计算核通过对获取到的所有输入数据进行仲裁,统计出相同的输入数据并将该输入数据作为确定出的一个输入数据,用于后续的处理,以保证后续计算核的输入同步。

结合第一方面第一实施方式,在第一方面第二实施方式中,所述对所述第一输入数据进行封装,以得到第一输入数据帧,包括:

对所述第一输入数据加上第一时间戳,以得到所述第一输入数据帧;所述第一时间戳为本地计算核获取到所述第一输入数据的时间;

其中,所述第二输入数据帧为其他计算核对各自获取到的第二输入数据加上第二时间戳得到的;所述第二时间戳为其他计算核获取到各自对应的第二输入数据的时间。

本发明实施例提供的基于多计算核的冗余控制方法,通过时间戳表示计算核获取到输入数据的时间,后续可以通过该时间戳确定所获取到的输入数据是否更新,以提高冗余控制的可靠性。

结合第一方面第二实施方式,在第一方面第三实施方式中,所述第一输入数据帧以及所述第二输入数据帧还包括有各自对应的计算核的标识符;其中,所述根据所述第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,包括:

分别提取所述第一输入数据帧以及所述第二输入数据帧中的时间戳以及计算核的标识符;

判断对应于同一所述标识符的时间戳与上一次提取出的时间戳是否相同;

当对应于同一所述标识符的时间戳与上一次提取出的时间戳相同,确定所述标识符对应的输入数据帧无效;

根据有效的输入数据帧进行输入数据的仲裁,确定一个输入数据。

本发明实施例提供的基于多计算核的冗余控制方法,利用时间戳判断获取到的数据是否发生更新,以确定该数据是否有效;在数据有效的情况下再进行输入数据的仲裁,一方面能够提高冗余控制的效率,另一方面能够提高冗余控制的可靠性。

结合第一方面第三实施方式,在第一方面第四实施方式中,所述根据所述第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对所述输入数据进行处理的步骤之前还包括:

在预设输入时间段内,利用所述标识符判断是否接收到所有其他计算核发送的所述第二输入数据帧,以确定所述其他计算核是否异常。

本发明实施例提供的基于多计算核的冗余控制方法,利用标识符区分各个计算核,并在输入数据共享时,利用该标识符即可确定哪个计算核出现异常。

结合第一方面,在第一方面第五实施方式中,所述对所述输入数据进行处理的步骤之后,还包括:

获取本地计算核基于所述输入数据的第一输出数据;

对所述第一输出数据进行封装,以得到第一输出数据帧;

将所述第一输出数据帧发送给其他计算核,并接收其他计算核发送的多个第二输出数据帧;其中,所述第二输出数据帧为其他计算核基于所述输入数据各自进行处理后得到第二输出数据,并对第二输出数据封装后得到的;

根据所述第一输出数据帧以及多个第二输出数据帧进行输出数据的仲裁,确定有效输出数据。

本发明实施例提供的基于多计算核的冗余控制方法,每个计算核将各自基于输入数据处理后得到的输出数据发送给其他计算核,即每个计算核均能够获取到除自身处理得到的输出数据以外,还能够获取到其他计算核的输出数据;然后每个计算核对获取到的所有输出数据进行仲裁确定有效输出数据,那么通过多个计算核对输出数据进行仲裁解决了通过一个硬件系统进行仲裁所导致的冗余效果不佳的问题;且由于本发明提出的冗余控制方法是全部基于软件实现的,具有自恢复功能,能够避免由于硬件系统的异常所导致的无法恢复的问题。

结合第一方面第五实施方式,在第一方面第六实施方式中,所述根据所述第一输出数据帧以及多个第二输出数据帧进行输出数据的仲裁,确定有效输出数据,包括:

统计所述第一输出数据以及多个第二输出数据中相同的输出数据及其对应的数量;

确定数量较多的相同的输出数据为所述有效输出数据。

结合第一方面第五实施方式,在第一方面第七实施方式中,所述根据所述第一输出数据帧以及多个第二输出数据帧进行输出数据的仲裁,确定有效输出数据的步骤之后,还包括:

与所述其他计算核进行握手同步,以确定输出所述有效输出数据的计算核。

本发明实施例提供的基于多计算核的冗余控制方法,通过握手同步的方式,从有效输出数据对应的计算核中确定一个计算核进行有效输出数据的输出,该输出控制仲裁也是在多个计算核之间进行的,提高了冗余控制的可靠性。

结合第一方面第七实施方式,在第一方面第八实施方式中,所述第一输出数据帧包括本地计算核的优先级,所述第二输出帧包括各自对应的计算核的优先级;其中,所述与所述其他计算核进行握手同步,以确定输出所述有效输出数据的计算核,包括:

提取所述有效输出数据对应的计算核的优先级;

确定所述优先级最高的计算核为输出所述有效输出数据的计算核。

根据第二方面,本发明实施例还提供了一种计算核,包括:

存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明第一方面,或第一方面任一项实施方式中所述的基于多计算核的冗余控制方法。

根据第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机本发明第一方面,或第一方面任一项实施方式中所述的基于多计算核的冗余控制方法。

根据第四方面,本发明实施例还提供了一种冗余控制系统,包括:

多个本发明第二方面中所述的计算核;其中,每个所述计算核用于执行本发明第一方面,或第一方面任一项实施方式中所述的基于多计算核的冗余控制方法。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的基于多计算核的冗余控制方法的流程图;

图2是根据本发明实施例的基于多计算核的冗余控制方法的流程图;

图3是根据本发明实施例的第一输入数据帧的示意图;

图4是根据本发明实施例的第一输入数据帧中的数据帧的示意图;

图5是根据本发明实施例的仲裁方法的流程图;

图6是根据本发明实施例的基于多计算核的冗余控制方法的流程图;

图7是根据本发明实施例的基于多计算核的冗余控制方法的流程图;

图8是根据本发明实施例的基于多计算核的冗余控制的最小同步模型和控制流程;

图9是根据本发明实施例的最小同步模型的同步示意图;

图10是根据本发明实施例的基于多计算核的冗余控制装置的结构示意图;

图11是本发明实施例提供的计算核的硬件结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例中所述的基于多计算核的冗余控制方法,应用于冗余控制系统中。该冗余控制系统包括多个计算核,每个计算核中均运行有所述的基于多计算核的冗余控制方法。例如,该冗余控制系统包括3个计算核,计算核A、计算核B以及计算核C。其中,每个计算核上的冗余控制方法相同,在下文中以计算核A为例进行详细描述。所述的计算核可以为FPGA,或其他可编程器件,在此对计算核的类型并不做任何限制。

需要说明的是,本发明实施例中所述的基于多计算核的冗余控制方法可以用于运载火箭控制系统中,通过对运在火箭的多计算核软件架构以及数据交互模式进行了改进,采用以软件作为判决基础,即在每个计算核上运行有软件程序,该软件程序用于执行基于多计算核的冗余控制方法,每个计算核在计算过程中可以对运在火箭的装订数据、过程数据、输入数据以及输出出具进行同步,并实现软件的自恢复,从而可以解决原有冗余软硬件系统的设计缺陷。

其中,运载火箭软件控制系统软件一般分为几种控制阶段,第1阶段为设备上电后到周期性控制计算前,该阶段需要进行火箭飞行前的各项数据准备和一些状态解算工作,同时还会收集部分火箭状态数据;第2阶段为火箭点火后,进入周期性强实时计算流程,该阶段主要为软件依据各类输入数据进行解算并进行数据输出。其中,在每个计算根据实际需求采用本发明实施例中所述的基于多计算核的冗余控制方法进行冗余控制,以提高冗余控制的性能。例如,(1)火箭点火后进入周期解算后,若解算周期为t,则每t*100的时间进行一次点火前数据同步;(2)火箭在首次上电后,需要进行一次计算开始数据的同步;软件运行的各个阶段数据以固定周期和其他计算核进行同步。

进一步地,针对运载火箭控制特点,将软件数据按照数据类型进行分类:

数据实时性类型分为:实时性数据和非实时性数据,实时性数据为固定周期的数据,非实时数据为突发性数据或非固定周期数据。

数据属性类别分为:传输类数据和硬信号数据,传输类数据为各类型总线或串行通讯的数据帧,硬信号数据为电平信号、IO信号、中断信号等。

数据流向分为:输入数据和输出数据,输入数据为算法或流程控制输入的条件,输出数据为算法或流程控制输出的结果。

具体地,在下文的实施例中将对基于多计算核的冗余控制方法进行详细描述。

根据本发明实施例,提供了一种基于多计算核的冗余控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本实施例中提供了一种基于多计算核的冗余控制方法,可用于上述的计算核中,图1是根据本发明实施例的基于多计算核的冗余控制方法的流程图,如图1所示,该流程包括如下步骤:

S11,获取第一输入数据。

正如上文所述,本实施例中将计算核A作为本地计算核,计算核B以及计算核C为其他计算核。那么,第一计算核A获取到第一输入数据,其中第一输入数据可以是计算核A从外界获取到的,也可以是从当前计算核的其他数据处理流程中得到的等等,在此对第一输入数据的来源并不做任何限制。

S12,对第一输入数据进行封装,以得到第一输入数据帧。

计算核A对获得的第一输入数据进行封装,由于封装后的第一输入数据帧是需要发送给其他计算核的,因此,可以按照计算核之间的通信协议对第一输入数据进行封装,以便于数据帧的传输。

S13,将第一输入数据帧发送给其他计算核,并接收其他计算核发送的多个第二输入数据帧。

其中,所述第二输入数据帧为其他计算核对各自获取到的第二输入数据封装后得到的。

计算核A将封装后得到的第一输入数据发送给计算核B以及计算核C。同样地,计算核B以及计算核C也可能获取到输入数据,在此将除计算核A外,其他计算核所获取到的输入数据统称为第二输入数据。此处的第二输入数据进用于区分是本地计算核所获取到的输入数据,还是其他计算核所获取到的输入数据,并不表示其他计算核所获取到的输入数据相同。

例如,计算核B获取到第二输入数据,对其进行封装后得到第二输入数据帧;计算核C获取到第二输入数据对其进行封装后得到第二输入数据帧。如上文所述,计算核B以及计算核C对应的第二输入数据可能相同,也可能不同;计算核B以及计算核C对应的第二输入数据帧可能相同,也可能不同。

在经过S13之后,计算核A所获得的数据帧包括:第一输入数据帧,计算核B发送的第二输入数据帧,计算核C发送的第二输入数据帧。当然,计算核B,或计算核C也有可能没有获取到对应的第二输入数据,那么这种情况下描述的含义为,计算核B或计算核C中将获取到的第二输入数据进行封装得到第二输入数据帧之后,发送给计算核A,并不限于计算核B以及计算核C全部需要获取到对应的第二输入数据。

S14,根据第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对输入数据进行处理。

其中,计算核A根据所获取到的输入数据帧,包括第一输入数据帧以及第二输入数据帧,对其进行输入数据的仲裁。具体的仲裁可以是对所获取到的数据帧进行解析,以提取出其中的输入数据,通过对比输入数据进行仲裁;同时也可以结合数据帧中的其他参数进行输入数据的仲裁。具体的仲裁方法将在下文中进行描述,在此只需保证计算核A能够从获取到的数据帧中仲裁出一个输入数据即可。

除计算核A以外,计算核B以及计算核C同样也在进行输入数据的仲裁,由于计算核A、计算核B以及计算核C所获得的数据帧相同,在采用相同的仲裁方法的情况下,得到的仲裁结果也应该是相同。因此,各个计算核通过对获取到的数据帧进行仲裁,可以得到一个相同的输入数据,该输入数据可以用于后续的处理,以保证输入数据的一致性。

本实施例提供的基于多计算核的冗余控制方法,每个计算核将各自获取到的输入数据进行封装后发送给其他计算核,即每个计算核均能够获取到除自身获取到的输入数据以外,还能够获取到其他计算核所获取到的输入数据;然后每个计算核对获取到的所有数据进行仲裁确定一个输入数据,且所有计算核的仲裁结果相同,那么通过多个计算核对输入数据进行仲裁解决了通过一个硬件系统进行仲裁所导致的冗余效果不佳的问题;且由于本发明提出的冗余控制方法是全部基于软件实现的,具有自恢复功能,能够避免由于硬件系统的异常所导致的无法恢复的问题。

在本实施例中提供了一种基于多计算核的冗余控制方法,可用于上述的计算核中,图2是根据本发明实施例的基于多计算核的冗余控制方法的流程图,如图2所示,该流程包括如下步骤:

S21,获取第一输入数据。

详细请参见图1所示实施例的S11,在此不再赘述。

S22,对第一输入数据进行封装,以得到第一输入数据帧。

计算核A在对第一输入数据进行封装时,对第一输入数据加上第一时间戳,以得到所述的第一输入数据帧。其中,所述第一时间戳为计算核A获取到第一输入数据的时间。

同样地,计算核A所获取到的第二数据帧为其他计算核对各自获取到的第二输入数据加上第二时间戳得到的。其中,所述第二时间戳为其他计算核获取到各自对应的第二输入数据的时间。即,计算核B在获取到第二输入数据之后,记录当前时间,并将记录的时间作为第二时间戳加在第二输入数据上,以形成第二输入数据帧。

作为本实施例的一种可选实施方式,第一输入数据帧可以采用如图3所示的方式表示,计算核A为获取到的每个输入数据加上时间戳形成第一输入数据帧,以发送给其他计算核。例如,当输入数据类别为数据时,那么数据帧为时间+数据帧;当输入数据类别为中断号时,那么数据帧为时间+中断号;当输入数据类别为IO/电平信号状态时,那么数据帧为时间+IO/电平信号状态。

需要说明的是,图3所示的方式并不限于第一输入数据帧,也可以为第二输入数据帧。

可选地,所述第一输入数据帧以及所述第二输入数据帧还包括有各自对应的计算核的标识符。例如,计算核A对应的标识符为A,计算核B对应的标识符为B,计算核C对应的标识符为C,那么该标识符在各自对应的输入数据帧上体现出来,以告知相应的计算核,该数据帧是哪个计算核发送的。

例如,第一输入数据帧中的数据帧可以采用如图4所示的方法表示,数据帧包括以下几个部分:

(1)发送计算核ID:8位,以系统计算核ID相关,唯一,若有3个计算核,则该值可能为1、2、3,用于区分该数据帧是从何计算核发送的。

(2)发送计算核优先级:8位,以预先设定的计算核输出优先级相关,唯一,若有3个计算核,则该值可能为1、2、3,数值低的优先级高。

(3)输入/输出/输出控制数据标志:8位,当该数据帧为输入数据时,该帧为0xAA,当数据帧为输出数据时,该帧为0xBB,当数据帧为输出控制数据时,该帧位0xCC。

(4)数据ID:32位,唯一,用于区分该数据内容是何数据内容。

(5)数据长度:32位,有效范围为1~4294967296,表示数据内容的有效长度。

(6)CRC:16位,表示数据内容的CRC校验和,用于对数据有效性进行判断。

S23,将第一输入数据帧发送给其他计算核,并接收其他计算核发送的多个第二输入数据帧。

其中,所述第二输入数据帧为其他计算核对各自获取到的第二输入数据封装后得到的。

关于第二输入数据帧的组成可以参见上文中关于第一输入数据帧的描述,其余详细请参见图1所示实施例的S13,在此不再赘述。

S24,根据第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对输入数据进行处理。

所述仲裁即基于第一输入数据帧以及多个第二输入数据帧,确定出一个输入数据。由于该输入数据是用于所有计算核的输入以便于计算核基于该输入数据进行处理的,因此此处只能是仲裁出一个输入数据,以保证所有计算核输入的一致性。只有在计算核输入的一致性的前提下,利用多个计算核才能体现出数据的冗余处理,若计算核的输入数据不同,则不能称之为冗余处理。具体地,上述S24包括以下步骤:

S241,统计第一输入数据以及多个第二输入数据中相同的输入数据。

处理核A对第一数据帧以及第二数据帧进行解析,得到对应的第一数据以及多个第二数据。例如,可以如下表所示:

表1处理核与输入数据对照表

处理核输入数据A001B002C001

上表用于表示每个处理核所获取到的输入数据,也可以理解为计算核A所能够获取到的输入数据。其中,处理核A与处理核C所获取到的输入数据相同,而处理核B所获取到的输入数据与其他处理核不同,那么通过对比得出所有输入数据中相同的数据为001。

S242,确定相同的输入数据为输入数据。

处理核A将上述S241中得出的相同的输入数据作为后续处理时的输入数据;同样地,处理核B以及处理核C所获得的输入数据也如表1所示,其所确定出的输入数据也同样为001,从而保证输入数据的一致性。

S243,对输入数据进行处理。

计算核A基于S242中确定出的输入数据进行处理,同样第,计算核B和计算核C也是基于该输入数据进行处理。

本实施例提供的基于多计算核的冗余控制方法,每个计算核通过对获取到的所有输入数据进行仲裁,统计出相同的输入数据并将该输入数据作为确定出的一个输入数据,用于后续的处理,以保证后续计算核的输入同步。

作为本实施例的一种可选实施方式,第一输入数据帧以及第二数据数据帧中还包括有各自对应的时间戳,各个计算核在进行输入数据仲裁之前,利用时间戳进行输入数据是否更新的判断。具体地,如图5所示,上述S24包括:

(1)分别提取第一输入数据帧以及第二数据帧中的时间戳以及计算核的标识符。

由于时间戳是用于表示计算核获取到输入数据的时间,在不同时间所获取到的时间戳是不同的,因此利用时间戳即可反映出所获得的输入数据是否更新。

具体地,由于各个计算核在进行输入数据的封装时,不仅加上时间戳还加上了各自对应的标识符。即,标识符与计算核一一对应,利用标识符即可唯一确定出计算核。

计算核A从所获得的所有输入数据帧中提取出标识符以及时间戳,其中,标识符与时间戳对应。

(2)判断对应于同一标识符的时间戳与上一次提取出的时间戳是否相同。

当对应于同一标识符的时间戳与上一次提取出的时间戳相同,执行(3);否则,执行(4)。

由于各个计算核的数据处理是不断进行的,那么在各个计算核中可以存储有上一个处理周期所获得的所有输入数据帧,利用标识符可以确定与该标识符对应的当前输入数据帧的时间戳,以及上一个处理周期的输入数据帧的时间戳,再比较这两个时间戳是否相同,即可确定输入数据是否更新。若时间戳相同,表示输入数据并未更新,则该输入数据无效,执行(3);否则,表示输入数据有效,执行(4)。

(3)确定标识符对应的输入数据帧无效。

计算核A在确定某一标识符对应的输入数据帧无效时,可以将该输入数据帧丢弃,或忽略等等。

(4)判断所有标识符对应的时间戳是否全部比对完成。

当所有标识符对应的时间戳是否全部比对完成时,执行(5);否则,对于下一个标识符执行(2)。

(5)根据有效的输入数据帧进行输入数据的仲裁,确定一个输入数据。

该步骤与上述S241-S243相同,在此不再赘述。

利用时间戳判断获取到的数据是否发生更新,以确定该数据是否有效;在数据有效的情况下再进行输入数据的仲裁,一方面能够提高冗余控制的效率,另一方面能够提高冗余控制的可靠性。

作为本实施例的一种可选实施方式,上述S24之前,还包括:在预设输入时间段内,利用所述标识符判断是否接收到所有其他计算核发送的所述第二输入数据帧,以确定所述计算核是否异常。具体地,若所有计算核正常时,所有计算核均可以获取到输入数据,并将输入数据对应的输入数据帧发送给计算核A,即,计算核A可以获得所有计算核对应的输入数据帧。若计算核A利用标识符判断出某一计算核并未向计算核A发送输入数据帧,则表示该计算核异常。或者,也可以设置等待时间,当等待时间到时,仍未获得该计算核发送的输入数据帧,则确定该计算核异常。

在本实施例中提供了一种基于多计算核的冗余控制方法,可用于上述的计算核中,图6是根据本发明实施例的基于多计算核的冗余控制方法的流程图,如图6所示,该流程包括如下步骤:

S31,获取第一输入数据。

详细请参见图2所示实施例的S21,在此不再赘述。

S32,对第一输入数据进行封装,以得到第一输入数据帧。

详细请参见图2所示实施例的S22,在此不再赘述。

S33,将第一输入数据帧发送给其他计算核,并接收其他计算核发送的多个第二输入数据帧。

其中,所述第二输入数据帧为其他计算核对各自获取到的第二输入数据封装后得到的。

详细请参见图2所示实施例的S23,在此不再赘述。

S34,根据第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对输入数据进行处理。

详细请参见图2所示实施例的S23,在此不再赘述。

S35,获取本地计算核基于输入数据的第一输出数据。

本地计算核,即计算核A基于输入数据进行处理,得到第一输出数据;同样地,其他计算核也基于输入数据进行处理,得到相应的第二输出数据。

S36,对第一输出数据进行封装,以得到第一输出数据帧。

计算核A对第一输出数据进行封装,得到第一输出数据帧;同样地,其他计算核也对各自得到的第二输出数据进行封装,得到第二输出数据帧。具体地的封装可以参见图2所示实施例的S22中关于输入数据的封装,在此不再赘述。

S37,将第一输出数据帧发送给其他计算核,并接收其他计算核发送的多个第二输出数据帧。

其中,所述第二输出数据帧为其他计算核基于所述输入数据各自进行处理后得到第二输出数据,并对第二输出数据封装后得到的。

输出数据帧的发送、接收与输入数据帧的发送、接收相同,详细请参见图2所示实施例的S23中关于输入数据帧的发送、接收的详细描述,在此不再赘述。

S38,根据第一输出数据帧以及多个第二输出数据帧进行输出数据的仲裁,确定有效输出数据。

其中,计算核A对输出数据的仲裁原理与对输入数据的仲裁原理相同。具体地,上述S38包括:

S381,统计第一输出数据以及多个第二输出数据中相同的输出数据及其对应的数量。

计算核A统计所获得输出数据帧中第一输出数据以及多个第二输出数据中相同的输出数据及其对应的数量。即,计算核A确定每种输出数据的数量。

S382,确定数量较多的相同的输出数据为有效输出数据。

本实施例提供的基于多计算核的冗余控制方法,每个计算核将各自基于输入数据处理后得到的输出数据发送给其他计算核,即每个计算核均能够获取到除自身处理得到的输出数据以外,还能够获取到其他计算核的输出数据;然后每个计算核对获取到的所有输出数据进行仲裁确定有效输出数据,那么通过多个计算核对输出数据进行仲裁解决了通过一个硬件系统进行仲裁所导致的冗余效果不佳的问题;且由于本发明提出的冗余控制方法是全部基于软件实现的,具有自恢复功能,能够避免由于硬件系统的异常所导致的无法恢复的问题。

在本实施例中提供了一种基于多计算核的冗余控制方法,可用于上述的计算核中,图7是根据本发明实施例的基于多计算核的冗余控制方法的流程图,如图7所示,该流程包括如下步骤:

S41,获取第一输入数据。

详细请参见图6所示实施例的S31,在此不再赘述。

S42,对第一输入数据进行封装,以得到第一输入数据帧。

详细请参见图6所示实施例的S32,在此不再赘述。

S43,将第一输入数据帧发送给其他计算核,并接收其他计算核发送的多个第二输入数据帧。

其中,所述第二输入数据帧为其他计算核对各自获取到的第二输入数据封装后得到的。

详细请参见图6所示实施例的S33,在此不再赘述。

S44,根据第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对输入数据进行处理。

详细请参见图6所示实施例的S34,在此不再赘述。

S45,获取本地计算核基于所述输入数据的第一输出数据。

详细请参见图6所示实施例的S35,在此不再赘述。

S46,对第一输出数据进行封装,以得到第一输出数据帧。

详细请参见图6所示实施例的S36,在此不再赘述。

S47,将第一输出数据帧发送给其他计算核,并接收其他计算核发送的多个第二输出数据帧。

其中,所述第二输出数据帧为其他计算核基于所述输入数据各自进行处理后得到第二输出数据,并对第二输出数据封装后得到的。

详细请参见图6所示实施例的S37,在此不再赘述。

S48,根据第一输出数据帧以及多个第二输出数据帧进行输出数据的仲裁,确定有效输出数据。

详细请参见图6所示实施例的S38,在此不再赘述。

S49,与其他计算核进行握手同步,以确定输出所述有效输出数据的计算核。

计算核A与其他计算核进行握手同步的目的在于,从处理得出有效输出数据的计算核中确定一个计算核,以输出有效输出数据。例如,可以利用各个计算核的优先级等等。

具体地,所述第一输出数据帧包括本地计算核的优先级,所述第二输出帧包括各自对应的计算核的优先级。即,各个计算核在对输出数据进行封装时,还加上各自对应的优先级,该优先级可以根据实际情况进行具体设置。

上述S49包括:

(1)提取有效输出数据对应的计算核的优先级。

(2)确定优先级最高的计算核为输出有效输出数据的计算核。

具体可以参见图8,图8示出了基于多计算核的冗余控制的最小同步模型和控制流程。该最小同步模型包含7个部分,见附图8,分别为:

(1)输入数据:软件动作所必须的输入数据内容;

(2)输入数据同步点:在该同步点,所有的计算核中部署的软件将各自的“输入数据”进行交换并确定,最终决定仲裁,决定采用何“输入数据”作为算法动作的最终输入数据;

(3)仲裁后的输入数据:在“输入数据同步点”中仲裁出的输入数据;

(4)软件动作:软件具体代码实现;即各个计算核基于仲裁出的输入数据进行处理;

(5)输出数据:上一步软件动作执行后的待输出结果数据;

(6)输出数据/控制同步点:将软件动作执行后的待输出结果数据与其他计算核中部署的软件进行仲裁,并决定采用何“输出数据”进行输出;并进行最后使用哪一个计算核进行输出进行握手同步;

(7)仲裁后的输出数据:最终需要输出的数据。

作为本实施的一个具体实施方式,请结合图9,软件冗余同步的前提设计条件:所有计算核的时统必须统一(即,多个计算核必须有一个统一的时间基准,比方说0.01秒这个时刻,所有的计算核读取时间信息的时候,必须都是0.01秒,而不能是一个读到的是0.01,另外一个读到的是0.02),软件能够在计算的任何时刻都能获取到与其他计算核运行软件同样的时间;对计算核进行输出控制优先级排序,即在同样的输出下,选择高优先级的计算核软件计算结果进行输出。

软件输入数据预处理方法:所有的通讯数据和硬信号数据都必须转化为“时间”+“数据内容”的形式,“时间”部分精度越高越好,对于硬信号数据的转换形式如附图3所示。

每一个软件最小同步模型的同步示意图如附图9所示,软件在输入同步阶段、软件动作阶段和输出同步阶段都必须设定固定的最长运行时间,最长运行时间必须从理论上大于各个阶段的可能实际时间:

(1)在输入同步阶段,无论是哪一个计算核运行的软件接收到输入数据,都必须将它发送给其他运行计算核的软件,各个软件依据仲裁方法判断数据有效性。其中,数据交互时间为Δt_1,如果运行到最长数据交互时间Δt_2时仍未接收到一个或其他计算核同步输入数据时,则自动进入下一阶段,并对出现超时或数据异常的计算核软件ID进行错误计数。

(2)在算法动作阶段,各个计算核软件进行独立计算;当完成软件动作后,到理论解算时间后,则进入输出同步阶段。其中,算法动作阶段的时间为Δt_3。

(3)在输出同步阶段,各个计算核在数据交互时间Δt_4内进行数据交互,将待输出数据和结果发送给其他计算核,并在最长数据输出时间Δt_5后,对待输出数据进行仲裁,并开始进行输出控制阶段,在Δt_5内选择某一计算核进行数据输出;当达到最长数据输出控制时间Δt_7时,输出控制仲裁的结果。输出数据仲裁的方法与输入数据仲裁方法一致,输出控制的仲裁以计算核软件的优先级进行判断,并最终完成数据的输出控制。

其中,如上文所述,本发明实施例中提供的基于多计算核的冗余控制方法,可以应用于运载火箭的飞控系统中

在本实施例中还提供了一种基于多计算核的冗余控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本实施例提供一种基于多计算核的冗余控制装置,如图10所示,包括:

获取模块51,用于获取第一输入数据;

封装模块52,用于对所述第一输入数据进行封装,以得到第一输入数据帧;

发送接收模块53,用于将所述第一输入数据帧发送给其他计算核,并接收其他计算核发送的多个第二输入数据帧;其中,所述第二输入数据帧为其他计算核对各自获取到的第二输入数据封装后得到的;

仲裁模块54,用于根据所述第一输入数据帧以及多个第二输入数据帧进行输入数据的仲裁,确定一个输入数据,以对所述输入数据进行处理。

本实施例中的基于多计算核的冗余控制装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。

上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本发明实施例还提供一种计算核,具有上述图10所示的基于多计算核的冗余控制装置。

请参阅图11,图11是本发明可选实施例提供的一种计算核的结构示意图,如图11所示,该计算核可以包括:至少一个处理器61,例如计算核(Central Processing Unit,中央处理器),至少一个通信接口63,存储器64,至少一个通信总线62。其中,通信总线62用于实现这些组件之间的连接通信。其中,通信接口63可以包括显示屏(Display)、键盘(Keyboard),可选通信接口63还可以包括标准的有线接口、无线接口。存储器64可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器64可选的还可以是至少一个位于远离前述处理器61的存储装置。其中处理器61可以结合图10所描述的装置,存储器64中存储应用程序,且处理器61调用存储器64中存储的程序代码,以用于执行上述任一方法步骤。

其中,通信总线62可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线62可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器64可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器64还可以包括上述种类的存储器的组合。

其中,处理器61可以是中央处理器(英文:central processing unit,缩写:计算核),网络处理器(英文:network processor,缩写:NP)或者计算核和NP的组合。

其中,处理器61还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。

可选地,存储器64还用于存储程序指令。处理器61可以调用程序指令,实现如本申请图1至9实施例中所示的基于多计算核的冗余控制方法。

本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于多计算核的冗余控制方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号