一种临近空间艇载计算机多CPU系统自适应重构方法与流程

文档序号:11950142阅读:419来源:国知局
一种临近空间艇载计算机多CPU系统自适应重构方法与流程
本发明适用于临近空间艇载计算机领域,尤其涉及一种临近空间艇载计算机多CPU系统自适应重构方法。
背景技术
:平流层飞艇是一种轻于空气的浮空器,依靠空气浮力驻空,可以长期悬浮于任意地理位置的平流层高空,全天候连续工作,特别适合我国国土与边境地区的对地观测应用。艇载计算机相当于飞艇的大脑,作为飞艇平台的综合管理中心,将导航控制、环境控制、数传和天线、遥测遥控以及能源和推进各个分系统组成一个有机的整体,完成任务规划要求的飞行任务、载荷任务,及时采集和下传遥测数据、载荷信息,执行地面测控站的遥控指令,是空中和地面指挥系统的联系枢纽。因此,艇载计算机的性能直接影响到飞艇平台完成任务的性能优劣,其可靠性决定了飞艇的生存能力。平流层飞艇长期驻空执行任务的特点,增加了艇载计算机执行任务期间出现故障错误的概率,为了保证飞行安全,要求艇载计算机应具有功能完善、性能优秀、高稳定性与可靠性指标。为了提高艇载计算机的可靠性,单纯依靠提高元器件及部件的质量和提高装配工艺质量很难达到要求,因而需要从艇载计算机的体系结构入手,采用冗余设计,并配以合适的容错控制策略,以保证飞行管理及控制的正确进行。艇载计算机容错方案的选择受到体积、功耗的限制,既不能过于复杂,又必须保证一定的可靠性。在机载或星载计算机的容错方案中,常用的冗余方式有:二余度、三余度及四余度。美国的F16战斗机采用了四余度数字计算机系统,著名的高空长航时侦察无人机“全球鹰”,采用了双模冗余飞行控制计算机,高空侦打一体无人机“捕食者”采用了三余度飞行控制计算机系统(参见文献[1]GregLoegering,DavidEvans.Theevolutionoftheglobalhawk&maldavionicssystems.Proceedingofthe18thDigitalAvionicsSystemsConference,1999,10(2):24~29;文献[2]RichardR.Grafton.Predatorunmannedairvehiclesystem.SPIEConfernceonairbornereconnaissanceXXIII,1999,7:53~63;文献[3]StephenACambone,KennethJKrieg,PeterPace,etal.UnmannedAircraftSystems(UAS)roadmap.OfficeoftheSecretaryofDefense,2005:1~77.)哈尔滨工业大学“试验卫星一号”星载计算机选用了双余度系统(参见文献[4]:向琳吴翔虎廖明宏崔刚杨孝宗微小卫星星务计算机系统的容错控制策略研究[J].宇航学报.2005.27(3):400-403),中科院“创新一号”卫星星载计算机采用了双机热备控制策略(参见文献[5]王平孙宁李华旺包海超尹曾山小卫星星载容错计算机系统软硬件设计[J]宇航学报.2006.27(3):412-415)。南京航空航天大学开发了无人机分布式双余度飞控计算机(参见文献[6]张志文.双通道余度飞行控制计算机关键技术研究,[硕士学位论文].南京:南京航空航天大学,2012);由于三模表决策略在短寿命的应用系统中的可靠度比较高,而在长寿命的系统中,其可靠度小于双冗余系统(参见文献[7]向琳曲峰崔刚杨孝宗小卫星星务计算机的容错体系结构设计[J].航天控制2005.23(2)92-95);所以在平流层飞艇艇载计算机余度方案中选择了双冗余方案。采用A、B机互为备份,均使用Powerpc处理器。艇载计算机采用对称结构设计,包含两个中央处理单元(CPUA0/CPUB0)、两个串行扩展单元(CPUA1/CPUB1)和两个1553B扩展单元(CPUA2/CPUB2),相同的功能单元具有相同的硬件配置,采用了相似余度,各类通信单元接口都采用握手工作方式。两个中央处理单元各包含两路CAN接口、5路RS422接口,以及DI及DO接口,负责飞行控制律解算、数据管理、遥测遥控及载荷管理等功能,为系统的主控单元。两个串行口扩展单元各包含5路RS422总线,作为串行接口扩展单元,负责与RS422接口外设的输入输出信息传输,包括信息的采集、预处理与输出,为系统的从属单元。两个1553B扩展单元各包含两路1553B接口,负责与1553B接口外部节点的输入输出信息传输,包括信息的采集、预处理与输出,也作为系统的从属单元。艇载计算机与其他艇载设备数据交互依靠构艇载计算机接口信息交互体系来完成。其通信过程具体为:两个中央处理单元通过身份识别决定哪个中央处理单元为主中央处理单元,通过共享内存、消息邮箱及数据总线相结合的方式进行余度管理,主中央处理单元通过CAN/1553B总线接收导航子系统、大气环境子系统及能源系统的上行数据,然后进行飞行控制律解算、管理控制和自主导航功能,主中央处理单元拥有下行数据的权利,通过CAN/RS422总线下行数据,完成对动力系统螺旋桨的控制。艇载计算机硬件结构如图1所示:各CPU之间的椭圆表示共享内存,双向箭头表示消息邮箱。余度设计中常常采用心跳的办法实现对对方机运行状态的监视,如图2所示,箭头指向的CPU为监控CPU。当双机之间的心跳信号出现故障时,说明系统出现了故障,需要进行故障诊断。当接收不到对方机的心跳信号时,可能出现的故障因素有以下两种:1)主机或备机自身软件或硬件出现了故障;2)心跳线出现了故障。如何去判断究竟是哪种原因引起的故障比较困难,特别是当心跳线本身出现故障时候,这时候主机和备机都认为是对方出现了故障,主机会将对方机切出双机系统,进入单机工作状态,而备机将会尝试接替主机的工作,使自己进入工作状态,此时控制系统中存在两个控制器同时处于工作状态的混乱局面,即出现所谓的双主机现象(文献[8]:曹明涛.基于VxWorks的嵌入式控制器的双机热备系统应用,[硕士学位论文].南京:南京邮电大学,2012)。余度管理是艇载计算机设计的关键,保证艇载计算机在遇到故障时能够实时检测出故障,诊断出故障类型,对故障处理并完成系统重构。合理的余度管理能够实时监控故障的发生,系统发生故障时,将系统的性能损失降低到最小,从而保证飞行安全,所以余度管理的设计尤为重要。根据艇载计算机硬件配置特性,设计合理的余度管理策略,需要设计的内容包括:故障检测与诊断、系统重构与恢复。目前关于临近空间艇载计算机的文献较少,比较常见的是星载、机载计算机,余度结构也包含双余度、三余度等。由于三模表决方案在短寿命的应用系统中的可靠度比较高,而在长寿命的系统中,其可靠度小于双冗余系统。由于平流层飞艇长期驻空的要求,几个月甚至半年,所以艇载计算机选择双余度结构更为合适。目前双余度计算机中多采取系统级冗余,其可靠性低于模块级冗余。默认情况下,主机工作,备机通过心跳检测主机的工作状态,若检测到主机发生故障,备机成为新的主机,继续工作。由于采用心跳方式进行故障检测,当心跳线损坏时,无法定位是主机故障还是心跳线故障,即使采取了冗余心跳,也存在同态故障的风险。另外,若A机故障,B机接管工作后,B机某个单元又出现了故障,整个系统将无法正常工作。目前模块级冗余的双余度计算机采用插板式结构,核心部件一般包括中央处理单元和串口通讯单元、开关量接口单元等,各功能单元都插在底板上,通过底板的内总线进行通信。中央处理单元只能够通过内总线数据对其他单元实现故障检测,检测方法单一,一旦内总线损坏,则导致无法检测,因此可靠性不高,即使内总线采用了冗余结构,但仍存在同态故障的风险。当某个单元发生故障时候,系统重构,备用单元接替故障单元,与原来相关单元组成系统继续工作,但当内总线损坏时,导致系统瘫痪。技术实现要素:本发明的目的在于克服目前艇载计算机系统在余度管理上存在的上述问题,提出了一种临近空间艇载计算机多CPU系统自适应重构方法,该方法基于中央处理单元(A0/B0)与RS422接口单元(A1/B1)、1553B扩展单元(A2/B2)之间存在共享内存及消息邮箱,通过“看门狗”加“心跳”的异构方式进行CPU互检测,使故障定位到单元级;然后将主备系统中的单元进行组合,从而实现系统的重构。为了实现上述目的,本发明提供了一种临近空间艇载计算机多CPU系统自适应重构方法,所述多CPU系统包括两个相同的分系统:主用分系统和备份分系统;所述主用分系统包括:中央处理单元A0、RS422接口单元A1和1553B扩展单元A2;所述备份分系统包括:中央处理单元B0、RS422接口单元B1和1553B扩展单元B2;所述方法包括:步骤1)空间艇载计算机多CPU系统的主用分系统和备份分系统的各个单元建立通信连接;步骤2)利用CPU间的消息邮箱和共享内存,在主用分系统内部、备份系统内部及主备份分系统之间采用看门狗和心跳相结合的方式,检测各分系统的单元故障,建立健康矩阵;步骤3)基于主用分系统的各单元的优先级高的原则,基于步骤2)的健康矩阵对多CPU系统的主用系统进行重构。上述技术方案中,所述步骤1)具体包括:步骤101)A0初始化为TCP服务器,B1、B2初始化为TCP客户端;A0通过网口以TCP/IP方式与B1、B2建立连接,同时通过消息邮箱与A1、A2完成握手;步骤102)B0初始化为TCP服务器,A1、A2初始化为TCP客户端;B0通过网口以TCP/IP方式与A1、A2建立连接,同时通过消息邮箱与B1、B2完成握手;所述步骤101)和步骤102)之间无先后顺序。上述技术方案中,所述步骤2)包括:步骤201)在检测初始化阶段,A0检测A1及A2,B0检测B1及B2;A0和B0实现互检测;步骤202)在主用分系统内部、备份分系统内部及主备分系统之间采用看门狗和心跳相结合的方式,检测各分系统的单元故障;步骤203)根据步骤202)的检测结果建立健康矩阵;检测结果形成多CPU系统的健康矩阵:X=a0a1a2b0b1b2]]>矩阵X中a0、a1、a2分别表示A0、A1、A2的健康状态,取值为0或1,0为正常,1为故障;矩阵中b0、b1、b2分别表示B0、B1、B2的健康状态取值为0或1,0为正常,1为故障。上述技术方案中,所述步骤202)具体包括:步骤202-1)当到达检测周期时,A0向B0发送心跳信号及看门狗信号,然后检测是否收到B0/A1/A2的心跳信号,若收到心跳信号,心跳异常次数清零,否则相应心跳异常次数+1;之后检测是否收到B0/A1/A2的看门狗信号,若收到看门狗信号,看门狗异常次数清零,否则相应看门狗异常次数+1;当B0/A1/A2心跳异常次数不满足>2时,认为B0/A1/A2正常;当B0/A1/A2心跳异常次数>2时,检查看门狗异常次数,若看门狗异常次数>2,则判定B0/A1/A2发生故障,置B0/A1/A2故障标志,否则判定A0与B0/A1/A2之间的心跳线损坏;步骤202-2)当到达检测周期时,B0向A0发送心跳信号及看门狗信号,然后检测是否收到A0/B1/B2的心跳信号,若收到心跳信号,心跳次数清零,否则相应心跳异常次数+1;之后检测是否收到A0/B1/B2的看门狗信号,若收到看门狗信号,看门狗异常次数清零,否则相应看门狗异常次数+1;当A0/B1/B2心跳异常次数不满足>2时,认为A0/B1/B2正常;当A0/B1/B2心跳异常次数>2时,检查看门狗异常次数,若看门狗异常次数>2,则判定A0/B1/B2发生故障,置A0/B1/B2故障标志,否则判定B0与A0/B1/B2之间的心跳线损坏;上述步骤202-1)和步骤202-2)之间无先后顺序。上述技术方案中,所述步骤3)具体包括:步骤301)基于主用分系统的各单元的优先级高的原则,结合优先级与健康矩阵X得到当前系统的当班矩阵W;W=wa0wa1wa2wb0wb1wb2=a0a1a2b0|a‾0b1|a‾1b2|a‾2]]>当班矩阵W中wa0、wa1、wa2分别为CPUA0、CPUA1、CPUA2的当班状态,取值为0或1,0为当班,1为不当班;wb0、wb1、wb2分别为CPUB0、CPUB1、CPUB2的当班状态,取值为0或1,0为当班,1为不当班;步骤302)从当班矩阵中选择处于当班状态的单元组成主用分系统,实现系统的重构。本发明的优势在于:通过本发明的方法,艇载计算机能够按照预定余度管理策略进行相应故障处理,保证艇载计算机遇到故障时能够实时检测出故障,诊断故障类型,并成功完成系统的重构与恢复,提高了整个系统可靠性和完备性。附图说明图1为艇载计算机硬件结构图;图2为艇载计算机CPU互检测关系图;图3为艇载计算机系统初始化流程图;图4为艇载计算机多CPU系统故障检测流程图;图5为艇载计算机多CPU并行处理系统重构图;图6为本发明的艇载计算机系统的工作流程图;图7为艇载计算机多CPU系统仿真示意图;图8为计算机功能模块级双冗余拓扑结构图;图9为系统级双冗余拓扑结构图;图10为艇载计算机模块级冗余与系统级冗余可靠度比较图。具体实施方式下面结合附图和具体实施例对本发明作进一步详细的说明。艇载计算机采用对称结构设计,包含两个中央处理单元(CPUA0/CPUB0)、两个串行扩展单元(CPUA1/CPUB1)、两个1553B扩展单元(CPUA2/CPUB2)以及两个电源模块,相同的功能单元具有相同的硬件配置,采用了相似余度,各类通信单元接口都采用握手工作方式。两个中央处理单元各包含两路CAN接口、5路RS422接口,以及DI及DO接口,负责飞行控制律解算、数据管理、遥测遥控及载荷管理等功能,为系统的主控单元。两个串行口扩展单元各包含5路RS422总线,作为串行接口扩展单元,负责与RS422接口外设的输入输出信息传输,包括信息的采集、预处理与输出,为系统的从属单元。两个1553B扩展单元各包含两路1553B接口,负责与1553B接口外部节点的输入输出信息传输,包括信息的采集、预处理与输出,也作为系统的从属单元。艇载计算机与其他艇载设备数据交互依靠构艇载计算机接口信息交互体系来完成。其通信过程具体为:两个中央处理单元通过身份识别决定哪个中央处理单元为主中央处理单元,通过共享内存、消息邮箱及数据总线相结合的方式进行余度管理,主中央处理单元通过CAN/1553B总线接收导航子系统、大气环境子系统及能源系统的上行数据,然后进行飞行控制律解算、管理控制和自主导航功能,主中央处理单元拥有下行数据的权利,通过CAN/RS422总线下行数据,完成对动力系统螺旋桨的控制。艇载计算机硬件结构如图1所示:各CPU之间的椭圆表示共享内存,双向箭头表示消息邮箱。一种临近空间舰载计算机多CPU系统自适应重构方法,所述方法包括:步骤1)艇载计算机多CPU系统的各个单元进行主备身份识别,建立通信连接;如图3所示,所述步骤1)具体包括:步骤101)两个中央处理单元通过指定地址读取数据,实现主/备身份识别,默认A为主机,B为备机;步骤102)A0通过网口以TCP/IP方式与B1、B2建立连接,同时通过消息邮箱与A1、A2完成握手,实现RS422与1553B的初始化;具体过程如下:A0初始化为TCP服务器,B1、B2初始化为TCP客户端,A0与B1、B2建立连接,可通过TCP/IP方式通信。同时,A0通过消息邮箱向A1、A2发送ID信息,A1、A2收到ID信息后,分别完成对RS422接口及1553B总线的初始化,A2所属1553B初始化为总线控制器BC,之后,A1、A2向A0发送反馈信息,A0收到后,完成与A1、A2间的握手。步骤103)B0通过网口以TCP/IP方式与A1、A2建立连接,同时通过消息邮箱与B1、B2完成握手,实现RS422与1553B的初始化;具体过程如下:B0初始化为TCP服务器,A1、A2初始化为TCP客户端,B0与A1、A2建立连接,可通过TCP/IP方式通信。同时,B0通过消息邮箱向B1、B2发送ID信息,B1、B2收到ID信息后,分别完成对RS422接口及1553B总线的初始化,B2所属1553B初始化为BM,之后,B1、B2向B0发送反馈信息,B0收到后,完成与B1、B2间的握手。步骤2)利用CPU间的消息邮箱和共享内存,在主用分系统内部、备份分系统内部、主备分系统之间采用看门狗和心跳相结合的检测方法,检测故障发生,建立健康矩阵;具体包括:步骤201)在检测初始化阶段,中央处理单元(A0/B0)分别检测各自的串口扩展单元(A1/B1)及1553B扩展单元(A2/B2),两个中央处理单元(A0/B0)实现互检测;步骤202)被检测CPU通过消息邮箱以固定周期向检测CPU发送心跳信号,同时被检测CPU通过共享内存定期向检测CPU写入特定数据,当检测CPU能收到被检测CPU的心跳信号,也能收到被检测CPU的看门狗信号时,说明被检测CPU工作正常,当检测CPU收不到被检测CPU心跳信号但能收到看门狗信号时,判断心跳线损坏;当检测CPU既收不到被检测CPU的心跳信号,又收不到被检测CPU看门狗信号时,说明被检测CPU损坏,执行系统切换,备机接替主机工作;通过采用了心跳和看门狗异构备份检测方法,判断主机运行状态,在任何情况下不会发生误切换或者双主机状态出现。如图4所示,所述步骤202)具体包括:步骤202-1)当到达检测周期时,A0向B0发送心跳信号及看门狗信号,然后检测是否收到B0/A1/A2的心跳信号,若收到心跳信号,心跳异常次数清零,否则相应心跳异常次数+1;之后检测是否收到B0/A1/A2的看门狗信号,若收到看门狗信号,看门狗异常次数清零,否则相应看门狗异常次数+1;当B0/A1/A2心跳异常次数不满足>2时,认为B0/A1/A2正常。当B0/A1/A2心跳异常次数>2时,检查看门狗异常次数,若看门狗异常次数>2,则判定B0/A1/A2发生故障,置B0/A1/A2故障标志,否则判定A0与B0/A1/A2之间的心跳线损坏;步骤202-2)当到达检测周期时,B0向A0发送心跳信号及看门狗信号,然后检测是否收到A0/B1/B2的心跳信号,若收到心跳异常信号,心跳次数清零,否则相应心跳异常次数+1;之后检测是否收到A0/B1/B2的看门狗信号,若收到看门狗信号,看门狗异常次数清零,否则相应看门狗异常次数+1;当A0/B1/B2心跳异常次数不满足>2时,认为A0/B1/B2正常。当A0/B1/B2心跳异常次数>2时,检查看门狗异常次数,若看门狗异常次数>2,则判定A0/B1/B2发生故障,置A0/B1/B2故障标志,否则判定B0与A0/B1/B2之间的心跳线损坏。上述步骤202-1)和步骤202-2)之间无先后顺序。步骤203)根据步骤202)的检测结果建立健康矩阵;检测结果形成多CPU系统的健康矩阵:X=a0a1a2b0b1b2]]>矩阵X中a0、a1、a2分别表示CPUA0、CPUA1、CPUA2的健康状态,取值为0或1,0为正常,1为故障;矩阵中b0、b1、b2分别表示CPUB0、CPUB1、CPUB2的健康状态取值为0或1,0为正常,1为故障。步骤3)基于步骤2)的健康矩阵对多CPU系统进行重构;如图5所示,艇载计算机采用逻辑意义上重构的方式,在硬件配置和网络拓扑结构不变的情况下,当故障发生时,检测到故障并完成诊断,并进行系统重构,实现无缝切换,让系统重新正常工作。步骤301)多CPU系统的优先级为A>B,结合优先级与健康矩阵X可以得到当前系统的当班矩阵W;W=wa0wa1wa2wb0wb1wb2=a0a1a2b0|a‾0b1|a‾1b2|a‾2]]>当班矩阵W中wa0、wa1、wa2分别为CPUA0、CPUA1、CPUA2的当班状态,取值为0或1,0为当班,1为不当班;wb0、wb1、wb2分别为CPUB0、CPUB1、CPUB2的当班状态,取值为0或1,0为当班,1为不当班。步骤302)根据当班矩阵对系统进行重构。中央处理单元(A0/B0)根据当班矩阵中对应的状态,判断自己是否当班主持工作;当班的中央处理单元(A0/B0)根据当班矩阵的状态选择相应的RS422接口单元(A1/B1)和1553B扩展单元(A2/B2)组成多CPU系统,继续工作,实现系统的重构。当中央处理单元A0需要通过RS422发送数据时,从A1/B1中选择当班的模块进行数据发送;当中央处理单元A0需要通过1553B发送数据时,从A2/B2中选择当班的模块进行数据发送。所以,当CPUA1/CPUA2出现故障时,中央处理单元马上会选择CPUB1/CPUB2进行替代,实现了无缝切换。中央处理单元B0周期性地查询查询A0的健康状态,一旦A0发生故障,B0接管系统,无缝切换,实现系统重构。如图6所示。在B0当班过程中,如果接口1553B扩展单元损坏或RS422扩展单元损坏,按照健康矩阵进行裁决,最终系统工作状态图如图7所示。艇载计算机采用不对等的双机方案,A机以主控机方式运行,B机以备份机方式运行,这两者之间的数据交互也是不对等的。A机当班时,B机不输出控制,此时A机能够完全掌握飞艇的运行状态,而备份机由于处于待机状态,不参与系统控制,A机适时向B机传送本机工作状态以及飞艇其他功能单元的工作状态,保证一旦发生主备机切换或主控机失效等情形,B机能够顺利进行现场恢复,以保证飞艇的持续稳定运行。B机传送给A机本机工作状态的数据,使得地面可以了解备份机是否正常运行。故障仿真验证为验证本发明的方法设计的余度管理策略的正确合理性,由艇载计算机、实时仿真机及故障注入设备组成半实物仿真平台,进行仿真验证。通过故障注入仿真软件给艇载计算机注入各种类型故障,包括总线节点故障,输入输出接口故障、中央处理单元故障等。试验结果表明,艇载计算机能够按照预定余度管理策略进行相应故障处理,保证艇载计算机遇到故障时能够实时检测出故障,诊断故障类型,并成功完成系统的重构与恢复,验证了余度管理策略的合理性和完备性。在余度结构,余度数目相同的情况下,余度级别不同,其系统可靠度也大不相同。余度级别可以是元器件一级,功能模块一级,系统一级,最常用的是功能模块级的冗余和系统级冗余。在服从指数分布的前提下,假定第i的单元的可靠度函数为其中,λi是第i个单元的平均故障率。串联系统可靠度公式为:Rs(t)=Πi=1nRi(t)]]>并联系统可靠度公式为:Rs(t)=1-Πi=1n[1-Ri(t)]]]>如图8所示,若采用功能模块级的双余度,先并后串;模块级双冗余拓扑结构余度可靠度公式如下:Rsg(t)=[1-(1-e-λ0t)2]×[1-(1-e-λ1t)2]×[1-(1-e-λ2t)2]]]>如图9所示,若采用系统级的双余度,先串后并,系统级双冗余余度可靠度公式如下:Rsx(t)=1-[1-e-λ0t×e-λ1t×e-λ2t]2]]>根据参考资料和相关经验,平均故障率选取λ0=10-5/小时,λ2=5×10-6/小时,λ3=5×10-6/小时。如图10所示,在余度结构,余度数目相同的条件下,采用功能模块级冗余可靠度大于系统级冗余的可靠度。因此,艇载计算机余度管理采用模块级双冗余。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1