2010-01-30 20:57:17 来源:互联网
2.3 系统切换
系统切换是二乘二取二系统首要的功能要求,当工作单元出现故障,或者手动切换时,要求进行系统切换。本设计进行了两组故障检测。
首先,为每个子系统的两个coreABC分别设置两个看门狗定时器,要求两个coreABC向各自的看门狗发送周期自检信号。若看门狗在溢出前收到该信号则CPU正常工作,否则溢出,该CPU判为故障。子系统的两个CPU中,只要有一个出现故障,在备机正常的情况下,系统就进行切换。其次,将CPU输出结果和子系统输出结果进行比较,若相同则系统正常,否则系统故障。若备用单元正常,则系统切换,取备用单元输出为系统输出。
将主单元和备用单元的看门狗溢出信号分别记为WD_PLUSE_1、WD_PLUSE_2,比较器判决信号记为COM_RESULT_1、COM_RESULT_2,手动切换信号记为SWITCH_1、SWITCH_2。只要系统故障或手动切换时,系统进行切换,由此可得切换信号为:
AUTO_RST_1=WD_PLUSE_1 ‖COM_RESULT_1 ‖SWITCH_1
AUTO_RST_2=wD_PLUSE_2 ‖COM_RESULT_2 ‖SWITCH_2
系统切换通过以下语句实现:
SYS_OUT=(AUTO_RST_1&&AUTO_RST_2)?1'bz:((AUTO_RST_1)?COM_OUT_2:COM_OUT_1);
若主机正常工作,则输出取主机的比较输出;若主机故障,在备用单元正常时,则系统切换取备用单元的输出;若主机修复,则切换到主机工作;若两个子系统均故障,则系统故障。实现的流程如图4所示。

相关文章