互为备份的中央控制计算机采用完全相同的设计,通过内部和外部的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所示。