空间机器人中央计算机的双机热备份
扫描二维码
随时随地手机看文章
考虑到空间机器人中央控制计算机的双机热备份系统的特殊性,所构建的硬件平台如图1所示。
互为备份的中央控制计算机采用完全相同的设计,通过内部和外部的CAN总线与控制模块和指令系统分别相连。热备份时,主、备机从CAN总线上同时接收数据,但只有主机可以通过CAN总线向外部输出指令及控制数据。
主备机之间通过RS485总线相连,实现双机之间数据监测和同步等功能。在主机和备机的PIO口分别引出一条心跳线,定时发出脉冲信号,用来检查判断对方机是否具备基本运行能力。双机进行切换时,通过仲裁逻辑电路改变双机系统的当班权,完成系统的切换操作。
2 双机热备份策略
为保证空间机器人系统正常、稳定地运行,根据空间机器人中央控制计算机双机热备份系统的特点,主备双机需要根据系统的同步数据和心跳信号对对方机的运行情况进行监测,保持主备双机同步运行。当系统发生故障时利用系统同步数据和心跳信号,定位系统发生的故障,并对故障源进行判断,完成切换。在切换后,系统将尝试恢复故障,整个策略示意如图2所示。
2.1 心跳信号
心跳信号是该中央控制计算机运行时发送的周期性脉冲信号,是中央控制计算机正常运行的判断依据。
主备双机可以通过对对方机心跳信号的监测,来判断对方机是否正常运行,同时心跳信号也是裁决故障时的一种辅助判据。当发现备机无心跳信号时,主机切换到单机模式,备机由外部指令系统进行处理;当发现主机无心跳信号时,备机获得当班权变为主机并进行输出,主机交由外部指令系统处理。
2.2 同步监测
双机同步是双机热备份系统能够正常进行系统监测,对故障进行正确判断的基础。正确的同步策略是双机系统能够及时检测出软件故障并执行正确切换动作的前提,也是保证系统在故障发生之后成功恢复的关键要素。
为了保证双机能够长期、稳定地处于同步之中,维持系统正常运行,制定4项关键同步方法。
①双机时钟周期同步。当主备双机上电后,在主机启动周期定时器的同时,应同时向备机发出消息,通知备机启动周期定时器。由于空间机器人系统以生命周期为单位执行任务,所以生命周期的同步是整个系统保持同步的基础。若该操作失败,必须重新进行周期定时器的同步。
②双机任务初始化同步。为保证主备双机任务在同一时间启动,应在任务启动指令传递到主机时,由主机向备机发出指令,启动备机任务,使备机进人工作模式,其具体步骤如图3所示。
③双机同步数据的实时监测。机器人执行任务期间,主备双机将在每个系统生命周期的开始向对方机发送同步数据,并将收到的数据与自身数据进行比对,完成对系统同步数据的实时监测。
为保证对系统监测的全面性和判断故障的准确性,提取任务号、任务阶段号、系统周期、实际关节角度以及一个随机码作为系统的同步数据,如表1所列。
④双机再同步。当发现双机系统的数据出现两个周期以内的超前或滞后现象时,不认为发生系统故障而进行切换,而是直接更新备机同步数据,使备机重新与主机同步。
2.3 裁决逻辑
裁决是双机热备份系统中至关重要的一个环节。诱发空间机器人系统出现故障的原因很多,在其工作的空间环境中存在着大量高能粒子,极易使中央控制计算机电位发生反转造成系统失常。通信线路的故障和随机产生的误码率也很容易造成系统失常。通过分析总结,空间机器人系统最易出现3种故障类型,即双机通信线路故障、系统任务流程故障和系统控制数据故障。为保证双机热备份系统及时、准确地检测故障,判断故障源,做出正确的切换动作,分别为3种故障制定相应的故障裁决逻辑。
(1)双机通信线路故障
裁决逻辑:当RS485接收模块连续3周期没有接收到对方的同步数据时,给出故障信号。为避免计算机重复进行裁决判断,停止同步数据发送,同时检测备机心跳信号。若备机心跳信号停止,则由主机主动停止备机电源;若对方心跳信号正常,则由外部指令决定备机状态。其实现流程如图4所示。
(2)双机任务流程故障
为有效、准确地判断双机任务流程故障,借助随机码表来对其进行辅助判断。随机码表是一个32×16的二维short型数组,数组中的各个元素互不相同,查询生成同步数据随机码的公式如下:
式中X为随机码表行号,Y为随机码表列号,TaskID为任务号,PhaseNum为任务阶段号,ClcNum为任务周期号。
主备双机存储同一份随机码表,利用上述公式确定每周期的随机码作为同步数据,发送给对方机。这样做大大简化了裁决逻辑,也可检测出CPU逻辑运算单元的错误。
裁决逻辑:主备机首先比较同步数据中随机码,若随机码不同,则进一步比较任务号、阶段号、周期号。若比较结果相同,则给出计算机逻辑运算故障信号;若不同,将对方同步数据与己方前后两周期数据比较。若发现匹配数据,进行备机与主机再同步;若失败,给出任务流程故障信号。其实现程序流程如图5所示。
故障源判断:
情况1,若系统出现计算机逻辑运算故障,则查询上一周期同步数据随机码,且与上一周期保存的历史数据随机码相比较,并根据比较结果进行切换。
情况2,若系统出现流程故障,则将当前系统同步数据中的任务号、阶段号和周期号与自身历史数据进行比较。根据任务号、阶段号、周期号是递增并且不会发生突变这一原则进行判断,确定故障源,如图6所示。
(3)双机控制数据故障
裁决逻辑:空间机器人的运动一般分为两种模式,一种是预先规划固定轨迹的运动,另一种是相对于目标的自主运动。主备双机根据机器人不同的运动状态,比较同步数据中的控制关节角度,配合误差容忍度给出系统控制数据故障信号。
故障源判断:在固定规划轨迹的模式下,控制数据预先给定,可以将双机数据与正确数据对比,确定故障源;在自主运动模式下,关节的速度和位移是平滑变化的,不可能发生突变,可以利用关节的最大角速度、最大角加速度、末端的最大速度和最大加速度等边界值对当前数据进行边界检测,从而判断出故障源,如图7所示。
另外,当双机系统对故障源的判断发生矛盾时,将交由外部指令系统对其进行处理。
2.4 系统恢复
为保证空间机器人中央控制计算机能够长期、稳定地运行,就需要使其具有从故障状态恢复的能力。根据其故障原因,分3种情况进行制定:
①系统裁定备机故障,主机正常,此时主机切换为单机模式继续正常执行任务,备机复位重启并通知主机,主机切换到双机同步模式,备机重新与主机同步,恢复系统正常运行。
②系统裁定主机故障,备机正常,此时主机让权,进行切换,备机得权后变为主机,并切换到单机模式继续执行系统任务;而主机让权后变为备机,复位重启后与主机重新进行同步,恢复系统的正常运行。
③系统失步,即备机周期超前或滞后于主机,这种情况并不是造成系统故障,不进行切换动作。此时主机依然正常执行系统任务,备机利用主机的同步数据更新自身状态,与主机进行再同步。
3 双机热备份系统软件设计
基于中央控制计算机双机热备份系统的硬件环境和策略的制定,将其软件设计为6个模块,并基于强实时性操作系统VxWorks进行实现。该操作系统提供的分布消息队列机制支持系统软件的容错设计,其强实时性也满足空间机器人任务的要求。首先,根据策略的制定,设计心跳任务、同步任务、故障裁决任务和系统恢复任务,另外根据双机通信的需要设计RS485总线发送任务和RS485总线接收任务。它们的功能如下:
①心跳任务,任务名HeartBeat。周期性地检测对方机发送的心跳信号,若发现无心跳信号,则通知故障裁决任务进行故障裁决。
②同步任务,任务名Synchronize。根据同步策略中的初始化同步过程进行系统时钟和任务的初始化同步,并周期性地监视系统同步数据。若发现系统同步数据异常,则通知故障裁决任务进行系统故障的裁决。
③故障裁决任务,任务名ExecSwitch。根据不同的故障情况,依据前面叙述的裁决过程对系统故障源进行判断,并根据结果进行切换操作,保障系统正常运行。另外,通知系统恢复任务并尝试对系统进行恢复。
④系统恢复任务,任务名Reconfigure。根据系统恢复策略尝试对故障机进行恢复,出现“失步”现象时,依据再同步过程对备机进行再同步。
它们之间的协作关系如图8所示。
⑤RS485总线接收及发送任务,任务名Receive485、Send485。负责双机的通信,主要包括控制消息的解析,同步数据的接收与发送。
在RS485总线通信任务中,通信数据格式定义如下:
其中,为RS485通信数据加入起始Start和结尾End位,保证RS485通信任务传递数据的正确性;Command为双机热备份系统的控制命令,如同步系统时钟指令、任务同步指令等;Syn_data为双机同步数据,它的数据结构定义如下:
其中,关节数据以double类型计算,但在双机通信中转化为16位整数进行传递,节省数据流量;Result为裁决结果,双机将比较裁决结果。如果一致则进行相应处理,如果矛盾将由指令系统进行处理。
双机热备份系统的软件由以上6个模块组成,对系统进行监测、裁决、恢复,保证中央控制计算机长期、稳定地运行。
4 双机热备份系统验证
当中央控制计算机启动后,主机将向备机发出同步系统周期指令,同步系统周期时间;在外部指令系统启动主机任务的同时,主机将发出指令启动备机任务。主机从接收指令到备机同步启动任务所需时间为1 420 ms,备机从接收指令到启动任务所需时间为1180 ms。该双机系统可以快速启动并进行同步。
在运行过程中,利用错误注入的测试方法,预先在程序中注入错误,系统检测到错误后,能够快速的切换,并且备机可以及时更新系统数据,与主机进行再同步,从切换完成到重新同步的平均时间为592 ms内,满足空间机器人任务的强实时性要求。
结 语
本研究在综合考虑空间环境及机器人任务特殊性的基础上,实现了一种独特的双机热备份系统。依据可能出现的故障类型,设计了心跳策略、同步策略、裁决切换策略和恢复策略,并基于VxWorks操作系统实现了双机热备份系统的软件。经验证,该系统具有较好容错能力,可增强空间机器人系统在复杂空间环境下执行任务的可靠性,适合在空间机器人系统中应用。