双余度航空燃油管理计算机系统设计
2019-08-12李乐意王芸王君阳赵敏
李乐意,王芸,王君阳,赵敏
(陕西千山航空电子有限责任公司,西安710065)
0 引言
机载燃油管理计算机主要完成对飞机上燃油的测量、燃油数据的传输与加/放油控制等功能,是飞机燃油系统的核心[1]。随着航空技术的不断发展,燃油管理计算机功能日趋增强,重要性日益突出,但其设计复杂度也随之大大提高,出现问题的可能性也随之增高。为了保障飞行安全和飞行任务的完成,必须增强燃油管理计算机的可靠性和执行任务过程中的安全性。
双余度热备份技术是指采用两个相同模块执行相同的任务,提供相同的服务,当其中一个模块出现故障时,另一模块能够承担起相同的任务以保证系统持续运行[2-4]。这种技术大大提高了系统的可靠性与安全性。航空电子产品中某些关键产品采用余度备份技术如飞控计算机[3-6]、燃油控制计算机[7]、动力控制系统[8]等,通常由两台计算机互为备份实现双余度技术[3-5],其体积较大、生产成本高。
本文通过在一台计算机内部进行关键板卡的双余度备份,设计了一种双余度的机载燃油管理计算机系统,在提高可靠性和安全性的同时,有效控制了系统体积和成本。
1 双余度燃油管理计算机总体设计
1.1 硬件总体设计
双余度燃油管理计算机中,关键板卡是具有数据管理和控制功能的管理模块和具有控制功能的接口模块,因此将它们进行双余度设计。即计算机中含有管理模块A、管理模块B、接口模块A、接口模块B 和其他板卡,其他板卡未进行余度设计。双余度板卡对外采集和输出挂接到同一通道,由板卡内FPGA 控制输出开关。
为了方便表述,以下称相同功能的两个板卡的组合称之为模块组,即管理模块A 和管理模块B 作为一个管理模块组,接口模块A 和接口模块B 作为一个接口模块组,组内相同功能板卡彼此之间称对方为对等模块。双余度燃油管理计算机硬件总体设计如图1 所示。
图1 双余度燃油管理计算机硬件总体设计
从图1 可以看到,燃油管理计算机内部各板卡之间通过内部RS-422 总线通信,同时对等模块之间通过检测心跳线相互检测对方的工作状态。
通过RS-422 总线交互状态信息,当板卡切换时能够及时获取全系统的状态。同时也能够提高系统状态监控能力。例如本系统设计时,对外HB6096 总线接口接收不到数据时,板卡自身无法判断是板卡芯片故障还是前端无数据。由于两块板卡具有相同功能,如果另一块板卡也报出该条总线无数据,则认为芯片正常,反之认为芯片故障,须进行切换逻辑。
心跳线是模块组内对等模块之间的交联硬线,输出端输出1000Hz 的方波,接收端以方波反转的周期判断板卡运行是否正常。
1.2 切换逻辑总体设计
对等模块之间采用主从模式,处于主状态的板卡正常采集并输出,处于从状态的板卡正常采集和计算但不输出。软件在初始化时,通过母板上的槽位接口判断自身板卡所处的位置,将管理模块A、接口模块A置于主状态,而管理模块B、接口模块B 置于从状态。
当发生故障或接收到切换命令时,板卡状态进行切换,每个模块组内状态转移关系相同。图2 表示功能组内模块的状态转移关系,其中大写字母表示处于主状态,小写字母表示处于从状态,'表示处于故障状态。如A 表示模块A 处于主状态且无故障,b'表示模块B 处于从状态并有故障,虚线框内的状态为中间状态。
图2 功能组内模块状态转移关系
2 板卡硬件设计
双余度燃油管理计算机系统实现的功能较为复杂,包含了数据采集、数据输出等接口,本节仅以描述与双余度备份相关的硬件设计,对外围接口不再详细叙述。模块实现双余度的核心是采用CPU+FPGA+总线+心跳线的方式进行硬件设计。模块组内板卡的数据采集来自于同一个数据源端,两个板卡都进行采集。板卡对外输出时,同一时间仅有一个对外输出,FPGA 通过开关逻辑实现,硬件框图如图3 所示。
在图3 中,含有3 个槽位引脚,上电时,当3 个I/O口中两个以上为低时认为该板卡为B 板卡,该板卡初始状态为从状态;两个以上I/O 为高时认为该板卡为A板卡,初始状态为主状态。FPGA 检测这3 个I/O 将其值存入缓冲区共CPU 读取。
在板卡内部,CPU 与FPGA 间通过FPGA 虚拟寄存器交互故障信息,FPGA 检测到CPU 关键故障信息时,须关断输出。同时CPU 输出的心跳线经过FPGA,当FPGA 检测到CPU 心跳停止时,认为CPU 故障,须关断输出。
图3 板卡硬件设计框图
3 双余度软件设计
在双余度燃油管理计算机设计中主要由软件实现逻辑的切换,工作状态转移过程遵守图2 所示的状态转移图。板卡故障状态的判定主要通过RS-422 总线周期通信和心跳线完成。板卡所遵循的基本切换原则如下:
(1)心跳线是模块组内对等模块之间通过硬线相连,输出1000Hz 的方波。组内主状态板卡和从状态板卡之间通过心跳线判断对等板卡是否正常活动,如果处于主状态的模块板卡失效则切换工作状态;
(2)模块组内通过RS-422 总线周期性通信接收对等模块状态字并发送自身状态字,判断出当前板卡和对等模块的状态,如果处于主状态的模块板卡失效则切换工作状态;模块组间也是通过RS-422 总线进行周期通信发送自身状态接收对应的其他模块的状态信息,综合状态信息数据判断系统状态,在需要切换工作时通过发送切换命令。
(3)当检测到自身故障时,停止进行心跳反转,以通知对等模块。同时发送RS-422 状态信息给其他接口模块。
综上,故障检测方式主要有心跳线故障、通信链路故障、接收到切换信息、自身检测故障这4 种故障检测方式,其软件设计流程如下:
(1)一端输出1000Hz 的方波,另一端通过检测方波电平变化判断是否正常。如果没有输出,则认为输出端故障。检测对等模块心跳线时,为了避免误判,采用连续10 次不反转则认为模块故障的判断逻辑。因此如果对等模块故障,模块能够在5ms 的时间内获得信息并开始切换操作,其软件设计流程如图4 所示;
图4 心跳线检测流程
(2)内总线采用RS-422 总线,模块间也通过该总线发送测量和控制信息,通信异常时,系统接收关键数据可能出错,导致灾难性的后果。为确保相互之间数据交互和链路正常,设计了周期发送自身的状态信息的任务。该任务周期性向其他模块发送信息,信息中包含确定的包格式,当格式正确并且能够周期收到数据时认为正常。当连续多次接收不到或接收到错误的其他模块数据,认为其他模块故障,周期通信的周期设置为30ms,因此当模块通信链路异常时,被发现的时间约为300ms,其软件设计流程如图5 所示;
(3)接收到切换信息时,根据图2 的方式进行状态切换;
(4)模块本身检测到故障以后,可根据当前工作状态以及故障源进行工作状态切换,自身故障后通过关闭心跳线的方式将状态告知对等模块。
检测到故障以后,应当切换工作状态,软件设计流程图如图6 所示。管理模块切换工作状态时,须给接口模块发送切换信息,以确保所有板卡间状态相互透明。接口模块接收到命令后,应回复状态信息给管理模块。当接口模块因模块内板卡失效而切换工作状态时,须给管理模块发送切换信息。管理模块接收到命令后,应响应模块工作状态给接口模块。
图5 通信故障检测流程图
图6 系统状态切换流程
另外,在燃油管理计算机工作工程中,周期发送状态信息。如果遇到外部接口无数据的情况,应当对比对等板卡的故障字,如果发现对等模块采集数据正常则认为本模块采集芯片故障。该故障逻辑能够判断采集芯片是否故障,提高了系统的可靠性。
经过实验室测量分别模拟自身故障、主状态模块心跳故障、通信链路故障、发送故障切换信息测量到产品进行状态切换。切换时间大约为500ms 以内,响应速度快,实时性强。在外场试验也取得良好的效果。
4 结语
在一台计算机内部,采用关键板卡互为备份的方式,设计了双余度燃油管理计算机系统。当系统正常工作时,互为备份的两块板卡通过总线相互监控,提高了产品的状态检测能力;当主状态板卡故障时,备份板卡能够通过心跳线检测,迅速切换工作状态,保障系统持续正常工作;与传统的双机备份方式相比,由于只采用一台计算机,因此体积更小、生产成本更低;多型关键板卡的备份使得产品有多种重构方式,提高了产品的容错能力;由于采用硬件心跳线检测故障的方式,因此响应更快。该双余度燃油管理计算机系统试验和使用过程中取得了良好的效果。