CN101634959B - 一种基于嵌入式cpu的双机冗余容错系统 - Google Patents
一种基于嵌入式cpu的双机冗余容错系统 Download PDFInfo
- Publication number
- CN101634959B CN101634959B CN2009100910699A CN200910091069A CN101634959B CN 101634959 B CN101634959 B CN 101634959B CN 2009100910699 A CN2009100910699 A CN 2009100910699A CN 200910091069 A CN200910091069 A CN 200910091069A CN 101634959 B CN101634959 B CN 101634959B
- Authority
- CN
- China
- Prior art keywords
- module
- cpu
- output
- switching
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000009977 dual effect Effects 0.000 title claims abstract description 13
- 238000004891 communication Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims description 12
- 239000000758 substrate Substances 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开一种基于嵌入式CPU的双机冗余容错系统,包括基板、第一CPU模块和第二CPU模块、第一输出切换模块、第二输出切换模块和通讯模块。第一CPU模块、第二CPU模块、第一输出切换模块、第二输出切换模块和通讯模块安装在基板上并且通过通讯模块与上位机通讯,第一CPU模块和第二CPU模块完成传感器的数据采集,然后进行数据处理及运算,最后将结果经由第一输出切换模块或第二输出切换模块输出,驱动执行模块工作。本发明解决了传统双机冗余容错系统存在的单点故障问题,在系统发生一度故障模式下仍能通过切换到冗余备份设备,使系统保持正常工作状态。本发明提供的双机冗余容错系统切换方法简单,总体可靠性高,选用部件结构简化,性价比高。
Description
技术领域
本发明涉及一种应用于自动控制领域的双机冗余容错系统,尤其涉及一种基于嵌入式CPU的双机冗余容错系统。
背景技术
基于嵌入式CPU的双机冗余系统在工业现场有很多应用,在航空航天、供配电及电信等行业的大量实例表明,在高可靠性要求的环境中的双机冗余系统一般都经过单一的仲裁切换模块进行选择输出。
目前基于嵌入式CPU的双机冗余系统只是对CPU进行冗余设计,仲裁切换电路和输出模块都未进行冗余设计,若这些部分出现故障,系统将没有冗余备份,当这些故障无法进行修复时,系统将输出错误而产生故障,导致系统不能正常运行。传统的双机冗余容错系统存在的主要缺点是系统存在单点故障从而引起系统故障,系统总体可靠性不高。由于仲裁切换电路和输出模块并未采用冗余结构,这些部分出现故障则整个系统出现不可恢复故障。
发明内容
本发明是提供一种基于嵌入式CPU的双机冗余容错系统,解决传统双机冗余容错系统存在的单点故障问题,实现在系统发生一度故障模式下仍能通过切换到冗余备份设备,使系统保持正常工作状态。
为实现上述目的,本发明采用技术方案如下:
一种基于嵌入式CPU的双机冗余容错系统主要包括:双冗余CPU模块和双冗余输出切换模块。
其中双冗余CPU模块,包括两个功能相同的CPU模块,分别为第一CPU模块和第二CPU模块,系统工作时第一CPU模块和第二CPU模块中的一个作为主CPU,另外一个作为从CPU。它们各自带有看门狗电路,在本机程序跑飞时重新启动,并且通过双机通讯互相监视,若主CPU出现故障且无法屏蔽自身的输出时,从CPU借助双冗余切换模块屏蔽原主CPU输出,并将从机切换到主CPU工作状态,双冗余CPU模块间通过URAT通讯接口和SPI通讯接口连接,实现双冗余CPU之间的通信,避免单一通信接口出现故障而导致主从机之间通信失效。主从CPU模块完成传感器的数据采集,然后进行数据处理及运算,最后将结果经由双冗余输出切换模块输出,驱动执行模块工作。
其中双冗余输出切换模块,包括两个功能相同的输出切换模块,输出切换模块由仲裁切换模块和输出驱动模块组成,仲裁切换模块采用时序逻辑电路设计,并与第一CPU模块和第二CPU模块的I/O口连接,CPU模块通过发送方波信号给仲裁切换模块实现主从切换,仲裁切换模块的输出信号与CPU的输入引脚相连接,由CPU监视仲裁切换模块的输出结果;输出驱动模块采用三态门电路驱动输出,由仲裁切换模块与CPU模块共同控制其输出状态,同时输出驱动模块由CPU控制其是否上电工作。
在双CPU的切换过程中,采用双机冗余互相判断,通过双步切换方式避免由于从CPU的故障进行误判而进行的一次误切换,主CPU在从CPU进行一次切换后通过切换到冗余输出模块进行输出,从CPU出现故障而出现误动作时,从CPU不会按预定程序执行切换的全部过程,若主CPU出现故障则不会切换到冗余输出模块进行切换而保证了双机冗余的高可靠工作,避免了由于其中一个CPU故障而产生的误切换。
在系统出现CPU模块故障或输出切换模块故障的情况下,都可用通过双冗余结构切换到其备份设备,使系统继续正常工作。
双冗余CPU之间的通信采用URAT通讯接口和SPI通讯接口两个通信链路,避免单一链路故障导致的双机通信失效。
切换信号采用固定脉宽的脉冲信号取代传统的高低电平信号,有效的防止故障CPU产生的误切换信号。输出模块采用三态门电路,有效的对CPU故障而导致的管脚悬空、低电平或高电平的输出进行屏蔽。
采用通讯模块与上位机进行通讯,通过上位机对系统进行操作及设置,并且在上位机上监控系统状态。若在较长时间内上位机都没有收到主CPU的数据则判断主CPU出现故障,并发出切换信号,使从CPU执行切换程序,并切换到主CPU工作模式。
本发明采用双CPU冗余、双输出切换模块冗余,通过输出切换模块选择正确的CPU结果作为输出。本发明采用双机互检及双冗余切换电路设计,切换方法简化,系统总体可靠性高,选用部件结构简化,性价比高。与现有的双机冗余技术相比,本发明具有如下优点:
1、系统采用双冗余CPU和双冗余输出切换模块,提高系统整体可靠性,避免单点故障引起系统故障。
2、主从CPU采用双步切换方式,避免从CPU故障引起电平变化而引起误切换。
3、系统在其中一个CPU出现故障停留在某一状态或者程序跑飞时系统进行冗余切换并实现稳定输出。
4、切换信号采用固定脉宽的脉冲信号,避免传统高低电平信号容易导致系统的误切换。
附图说明
图1是本发明的系统结构框图;
图2是本发明的双冗余单片机与双冗余切换电路的电路图;
图3是本发明的系统状态转换图。
图中:
1、第一CPU模块; 2、第二CPU模块; 3、第一输出切换模块; 4、第二输出切换模块;
5、传感器; 6、通讯模块; 7、基板; 8、执行模块;
9、上位机; 31、第一输出驱动模块;32、第一仲裁模块;41、第二输出驱动模块;
42、第二仲裁模块; 311、第一三态门; 312、第二三态门; 321、第一驱动电路;
322、第一或门; 323、第一与非门; 324、第二与非门; 325、第一D触发器;
326、第二或门; 327、第三与非门; 411、第三三态门; 412、第四三态门;
421、第三驱动电路;422、第四与非门; 423、第二D触发器;424、第三或门;
425、第五与非门; 426、第六与非门; 427、第四或门。
具体实施方式
以下结合附图和具体实施方式进一步说明本发明的特点。
如图1所示,本发明的一种基于嵌入式CPU的双机冗余容错系统包括基板7,自带看门狗的双冗余的第一CPU模块1和第二CPU模块2,第一仲裁切换模块32与第一输出驱动模块31组成的第一输出切换模块3,第二仲裁切换模块42与第二输出驱动模块41组成的第二输出切换模块4和通讯模块6。第一CPU模块1、第二CPU模块2、第一输出切换模块3、第二输出切换模块4和通讯模块6均安装在基板7上并且通过通讯模块6与上位机9进行通讯。第一CPU模块1与第一仲裁切换模块32、第二仲裁切换模块42连接;第二CPU模块2与第一仲裁切换模块32、第二仲裁切换模块42连接,第一CPU模块1与第二CPU模块2发出切换指令,并且监视第一仲裁切换模块32、第二仲裁切换模块42的状态;第一CPU模块1输出连接第一输出驱动模块31、第二输出驱动模块41,并且监视第一输出驱动模块31、第二输出驱动模块41的输出;第二CPU模块2输出连接第一输出驱动模块31、第二输出驱动模块41,并且监视第一输出驱动模块31、第二输出驱动模块41的输出;第一仲裁切换模块32输出与第一输出驱动模块31的选通端相连控制第一输出驱动模块31是否导通,第二仲裁切换模块42输出与第二输出驱动模块41的选通端相连控制第二输出驱动模块41是否导通;第一输出驱动模块31、第二输出驱动模块41输出与执行模块8、通讯模块6的输入相连,通讯模块6与第一CPU模块1和第二CPU模块2的RXD引脚相连。第一CPU模块1和第二CPU模块2间通过对应引脚相连实现双机通讯。下面详述每个部件的结构及其工作机理。
第一CPU模块1和第二CPU模块2各自带有看门狗电路,系统工作时第一CPU模块1和第二CPU模块2一个作为主CPU,另外一个作为从CPU,主从CPU模块在本机程序跑飞时重启,并且双机间通过两种通讯接口进行询问与应答,实现双机的互检。主从CPU模块完成传感器5的数据采集,然后进行数据处理及运算,最后将结果经由第一输出切换模块3或第二输出切换模块4输出,驱动执行模块8工作。
第一仲裁切换模块32与第一输出驱动模块31组成的第一输出切换模块3,第二仲裁切换模块42与第二输出驱动模块41组成的第二输出切换模块4,它们一起形成双冗余输出切换模块结构,第一仲裁切换模块32和第二仲裁切换模块42为时序逻辑电路,与第一CPU模块1、第二CPU模块2的I/O口连接,接收CPU的输出作为切换信号,仲裁切换模块由触发器及与非门电路组成,图2是本发明一个实施例,其中仲裁切换模块部分采用D触发器、与非门组成,主CPU与从CPU通过发送方波信号给第一仲裁切换模块32和第二仲裁切换模块42实现主从切换,并且第一仲裁切换模块32的输出信号与第一CPU模块1的输入引脚相连接,第二仲裁切换模块42的输出信号与第二CPU模块2的输入引脚相连接,由第一CPU模块1监视第一仲裁切换模块32输出结果,第二CPU模块2监视第二仲裁模块42的输出结果。
第一输出驱动模块31由第一仲裁切换模块32与第一CPU模块1共同控制其输出状态,同时第一输出驱动模块31由第一CPU模块1控制其是否上电工作;第二输出驱动模块41由第二仲裁切换模块42与第二CPU模块2共同控制其输出状态,同时第二输出驱动模块41由第二CPU模块2控制其是否上电工作。
通信模块6采用232通讯,本实施例中采用MAX232及周边电路实现,RXD信号引脚同时接到第一CPU模块1与第二CPU模块2的RXD0引脚,并且第一CPU模块1与第二CPU模块2的TXD0与TXD0’引脚接到第一输出驱动模块31和第二输出驱动模块41,经第一输出驱动模块31和第二输出驱动模块41选择后形成TXD输出信号,并连接到MAX232的对应引脚。
通讯模块6与上位机9进行通讯,在上位机9上监视系统的工作状态,并能通过手动的方式控制第一CPU模块1与第二CPU模块2的工作状态与主从CPU之间的切换。
双冗余CPU主从切换采用双步切换过程:
假设工作在第一CPU模块1作为主CPU,第二CPU模块2作为从CPU。
从CPU第二CPU模块2切换到主CPU工作模式,并通过对对应引脚的控制使输出切换模块3选择新主CPU第二CPU模块2的结果输出;在原从CPU第二CPU模块2无故障的情况下,原从CPU现作为主CPU工作,并且再次对原主CPU第一CPU模块1发出询问信号;若原从CPU第二CPU模块2发生错误而错误地发出切换信号,原主CPU第一CPU模块1通过对输出切换模块3监视发现输出与输入不同,则对输出切换模块3断电,对输出切换模块4上电并且使其选择原主CPU第一CPU模块1的结果作为系统输出,并且在新主CPU第二CPU模块2进行询问时原主CPU第一CPU模块1给予应答,则原从CPU第二CPU模块2不会进行后续切换程序;在原从CPU第二CPU模块2出现掉电或程序跑飞等故障而产生引脚电平跳变引起误切换而原主CPU第一CPU模块1无故障情况下,则在误切换后原主CPU第一CPU模块1在询问原从CPU第二CPU模块2无应答,则原主CPU第一CPU模块1通过输出切换模块3屏蔽出故障的原从CPU第二CPU模块2的输出,并且原从CPU第二CPU模块2由于自身故障不会继续执行切换程序。避免原从CPU第二CPU模块2的某次故障错误切换;若原主CPU第一CPU模块1在一定时间内无应答,则新主CPU第二CPU模块2第二次判断原主CPU第一CPU模块1故障,则新主CPU第二CPU模块2的对应引脚使输出切换模块4工作,通过输出切换模块4选择新主CPU第二CPU模块2作为主机输出,并且对输出切换模块3断电。
图2是本发明的一个实施的双冗余单片机与双冗余切换电路的电路图,第一CPU模块1由ATMEGA128L构成,通过引脚PC.0和第四与非门422,通过PC.1和第一或门322的输入端和第一D触发器325的CLK引脚相连,通过PC.2和第五与非门425和第三或门424的输入端引脚相连,PE.6通过第三驱动电路421驱动第三三态门411,PE.7通过第一驱动电路321驱动第一三态门311,第一CPU模块1的输出引脚接到第一三态门311和第三三态门411的输入端D0…D7,第一仲裁切换模块32与第二仲裁切换模块42由第一D触发器325、第二D触发器423、第一与非门323、第二与非门324、第三与非门327、第四与非门422、第五与非门425、第六与非门426、和第一或门322、第二或门326、第三或门424、第四或门427组成,第一CPU模块1输出切换方波信号的引脚PE.0、PE.1与PE.2在正常状态下为低电平,并且第一或门322、第三或门424此时才会被选中输出低电平,第一三态门311、第三三态门411的/OE端才会置低,才会被选中作为系统输出,否则不会被选中并且输出为高阻态。第二D触发器423输出Q通过第六或非门426产生逻辑相反信号与另一CPU2支路的第四或门427的输入端相连,保障主CPU第一CPU模块1与从CPU第二CPU模块2的输出不会同时被选中作为系统输出。第一三态门311、第三三态门411各引出一个引脚的信号被第一CPU模块1监视,并且引出第二D触发器423和第一与非门323的输出信号作为第一CPU模块1的输入信号,监视第一三态门311、第三三态门411是否正常工作,并且这两个三态门的供电由第一CPU模块1控制,在一个第一三态门311或第三三态门411出现故障时检测到并且通过PE.6或PE.7对故障输出驱动模块断电并且切换到正常输出驱动模块工作,上述内容构成第一CPU模块1支路。第一CPU模块1支路的电路结构复制到第二CPU模块2的电路中,构成第二CPU模块2支路,即第二CPU模块2支路也采用相同的电路结构,具体电路参照图2。
主CPU第一CPU模块1与从CPU第二CPU模块2都各自带有看门狗电路,在本机程序跑飞时进行重置。双冗余第一CPU模块1和第二CPU模块2之间的通信采用URAT通讯接口和SPI通讯接口进行询问与应答,实现双机的互检,SPI通讯速率快但需要双冗余CPU间协同,数据量大的数据通过SPI接口传输,UART口传输速率慢但可靠性高,状态字与命令字数据量小通过UART口传输。
主从CPU间通过采用询问应答机制,在某一CPU出现故障时,对方CPU询问无应答而做出故障判断,并且通过输出切换模块进行切换,屏蔽故障CPU的输出,工作正常的CPU作为主机运行,并且通过输出切换模块输出正确的控制信号。
主从CPU的切换采用双步切换方式,假设正常工作时各个模块的状态为:第一CPU模块1做主CPU,第二CPU模块2作为从CPU工作,主从CPU分别通过主CPU1的引脚PE.7与从CPU2的引脚PE.6对第一三态门311与第二三态门312供电,并且都是为主CPU输出信号接到的第一三态门311输出,从CPU输出信号接到的第三三态门411输出为高阻态,并且第一D触发器325的Q端输出电平为高,第二D触发器423的Q端输出电平为低,整个系统等价于主CPU1工作,总输出为第一三态门311的输出。若主CPU1在发生故障时,从CPU2的询问信号发出后一定时间内没有收到主CPU1的应答信号则从CPU2判断主CPU1发生故障,从CPU2进入切换程序,切换机制过程如下:
从CPU2通过引脚PC.0发出一个方波信号后恢复低电平,通过与非门324使第一D触发器325的输出Q端置“1”使第一三态门311的输出引脚置为高阻态,并使第二三态门312的/OE端置低,使从CPU2输出信号接到的第二三态门312开通,使从CPU2切换到主机工作模式并且使其输出通过第二三态门312作为系统输出;在原从CPU2无故障的情况下,原从CPU2现作为主机工作,并且再次对原主CPU1发出询问信号;若原从CPU2发生错误而错误地发出切换信号,原主CPU1通过对第一三态门311的/OE端和输出端监视判断第一三态门311输出与输入不同,则对应引脚PE.7对其断电,同时通过PE.6对第三三态门411供电,并且同时通过PC.0引脚发出一个方波信号使第二D触发器423输出端Q置高电平,通过原主CPU1的输出通过第四三态门412输出,原主CPU1的对应引脚PC.1输出一个方波信号后置低通过第一D触发器325使输出Q的逻辑电平翻转后变为高电平,并且在新主CPU2进行询问时原主CPU 1给予应答,则原从CPU2停止执行切换程序;若原从CPU2出现掉电或程序跑飞等故障而产生引脚电平跳变引起误切换,则在误切换后原主CPU1在询问原从CPU2无应答,则原主CPU1通过向引脚PC.1发出一个方波信号,使第一D触发器325的Q端信号翻转,使第三三态门411输出为高阻,屏蔽出故障的原从CPU的输出,并且原从CPU2由于自身故障不会执行全部的切换程序。避免原从CPU2的某次故障错误切换。若原主CPU1在一定时间内无应答,则新主CPU2第二次判断原主CPU1故障,则新主CPU2的对应引脚PC.1输出一个方波信号后置低通过第二D触发器423使输出Q的逻辑电平翻转后变为高电平,通过第三或门424使第三三态门411的/OE端置高,并且由第六与非门426输出低电平,第四或门427输出置第四三态门412的/OE端置低。并且在整个切换过程中新主CPU2通过引脚PE.6和PE.7分别对第三三态门411断电,对第四三态门412上电;
双冗余输出切换模块的切换程序,假设在正常工作状态时,输出切换模块3被选择作为输出端时出现故障,则工作在主机状态的CPU通过检测输出驱动模块的状态对输出驱动模块的错误进行判断,而对故障部分第一三态门311进行断电,并且对第二三态门312供电切换到备份模块的输出作为系统输出;
上位机9也参与双机故障判断,由于主CPU第一CPU模块1通过通讯模块6定周期与上位机9通讯,若上位机9在过长时间没有收到来自主CPU第一CPU模块1的通信,则通过上位机9发出切换命令切换到从CPU第二CPU模块2执行切换程序使原从CPU第二CPU模块2作为主机工作并选择切换输出驱动模块输出。
本发明的一种基于嵌入式CPU的双机冗余容错系统的在系统出现某个部件故障的情况下,都可用通过双冗余结构切换到其备份设备,使系统继续正常工作,根据故障部位的不同,系统将分为13种工作状态。如图3所示为本发明的系统状态转换图,状态I与状态III为系统正常工作状态,系统开机初始化后工作在状态I,第一CPU模块1作为主CPU工作,第二CPU模块2作为从CPU监视,第一输出切换模块3工作,执行输出。在系统发生部件发生故障的情况下,系统状态转换如下:
状态I:第一CPU模块1做主CPU,第二CPU模块2做从CPU,第一输出切换模块3工作,第二输出切换模块4备份。若第一CPU模块1故障则切换到状态II;若第二CPU模块2故障则切换到状态IV;若第一输出切换模块3故障则切换到状态V;若第二输出切换模块4故障则切换到状态VI;若收到上位机主从切换命令则切换到状态III;
状态II:第二CPU模块2做主CPU,无从CPU,第二输出切换模块4工作,第一输出切换模块3备份。若第二CPU模块2故障则切换到状态XIII;若第一输出切换模块3故障则切换到状态VIII;若第二输出切换模块4故障则切换到状态VII;
状态III:第二CPU模块2做主CPU,第一CPU模块1做从CPU,第二输出切换模块4工作,第一输出切换模块3备份。若第一CPU模块1故障则切换到状态II;若第二CPU模块2故障则切换到状态IV;若第一输出切换模块3故障则切换到状态IX;若第二输出切换模块4故障则切换到状态X;若收到上位机主从切换命令则切换到状态I。
状态IV:第一CPU模块1做主CPU,无从CPU,第一输出切换模块3工作,第二输出切换模块4备份。若第一CPU模块1故障则切换到状态XIII;若第一输出切换模块3故障则切换到状态XII;若第二输出切换模块4故障则切换到状态XI;
状态V:第一CPU模块1做主CPU,第二CPU模块2做从CPU,第二输出切换模块4工作,第一输出切换模块3故障。若第一CPU模块1故障则切换到状态VIII;若第二CPU模块2故障则切换到状态XII;若第二输出切换模块4故障则切换到状态XIII;
状态VI:第一CPU模块1做主CPU,第二CPU模块2做从CPU,第一输出切换模块3工作,第二输出切换模块4故障。若第一CPU模块1故障则切换到状态VII;若第二CPU模块2故障则切换到状态XI;若第一输出切换模块3故障则切换到状态XIII;
状态VII:第二CPU模块2做主CPU,无从CPU,第一输出切换模块3工作,第二输出切换模块4故障。若第二CPU模块2故障或第一输出切换模块3故障则切换到状态XIII。
状态VIII:第二CPU模块2做主CPU,无从CPU,第二输出切换模块4工作,第一输出切换模块3故障。若第二CPU模块2故障或第二输出切换模块4故障则切换到状态XIII。
状态IX:第二CPU模块2做主CPU,第一CPU模块1做从CPU,第二输出切换模块4工作,第一输出切换模块3故障。若第一CPU模块1故障则切换到状态VIII;第二CPU模块2故障则切换到状态XII,若第二输出切换模块4故障则切换到状态XIII;
状态X:第二CPU模块2做主CPU,第一CPU模块1做从CPU,第一输出切换模块3工作,第二输出切换模块4故障。若第一CPU模块1故障则切换到状态VII;若第二CPU模块2故障则切换到状态XI;若第一输出切换模块3故障则切换到状态XIII;
状态XI:第一CPU模块1做主CPU,无从CPU,第一输出切换模块3工作,第二输出切换模块4故障。若第一CPU模块1故障或第一输出切换模块3故障则切换到状态XIII;
状态XII:第一CPU模块1做主CPU,无从CPU,第二输出切换模块4工作,第一输出切换模块3故障。若第一CPU模块1故障或第二输出切换模块4故障则切换到状态XIII;
状态XIII:系统故障,无法正确输出。
假设系统启动后正常工作情况下第一CPU模块1为主CPU,第二CPU模块2为从CPU。在第一CPU模块1或第二CPU模块2出现以下故障,系统进行冗余切换,保证系统正常运行:
1、若主CPU第一CPU模块1程序跑飞,由本机看门狗电路检测并重启,在重启阶段开始由从CPU第二CPU模块2执行切换程序并作为新主机工作。
2、若从CPU第二CPU模块2程序跑飞,由本机看门狗电路检测并重启,并且原主CPU第一CPU模块1作为主机继续工作。
3、若主CPU第一CPU模块1故障掉电,各引脚都悬空或主CPU第一CPU模块1故障置为低电平,则原从CPU第二CPU模块2在询问无应答判断出故障并执行切换程序后作为新主机工作。
4、若从CPU第二CPU模块2故障掉电,各引脚都悬空或从CPU第二CPU模块2故障置为低电平,则原主CPU第一CPU模块1继续作为主机工作。
5、若主CPU第一CPU模块1故障,引脚为高电平,则本支路输出驱动模块都会被置为高阻态而被屏蔽掉本支路输出,原从CPU第二CPU模块2检测到原主CPU第一CPU模块1故障并执行切换程序并作为新主机工作。
6、若从CPU第二CPU模块2故障,引脚为高电平,则本支路输出驱动模块都会被置为高阻态而被屏蔽掉本支路输出,原主CPU第一CPU模块1继续作为主机工作。
第一输出切换模块3出现故障,由第一CPU模块1与第二CPU模块2通过检测第一输出切换模块3状态而检测到故障而通过对应引脚对故障输出驱动模块3切断供电,并且对备用冗余第二输出驱动模块4上电工作。
若上位机9长时间没有收到数据,双冗余CPU及双输出切换模块出现故障并未进行切换时,则由上位机9对双冗余CPU发出切换信号执行切换。
本发明中通过双机冗余互相判断,通过二步切换方式避免由于从CPU的故障进行误判而进行的一次切换,主CPU在从CPU进行一次切换后通过切换到冗余输出模块进行输出,从CPU出现故障时,从CPU不会对两个不同引脚按次序发送切换方波信号,不会进行切换的全部过程。主CPU出现故障则不会切换到冗余输出模块进行切换而保证了双机冗余的高可靠工作,避免了由于其中一个CPU故障而产生的误切换。
Claims (4)
1.一种基于嵌入式CPU的双机冗余容错系统,包括基板(7)、第一CPU模块(1)和第二CPU模块(2)以及通讯模块(6),其特征在于,该系统还包括第一输出切换模块(3)和第二输出切换模块(4);第一CPU模块(1)、第二CPU模块(2)、第一输出切换模块(3)、第二输出切换模块(4)和通讯模块(6)安装在基板(7)上,并且通过通讯模块(6)与上位机(9)进行通讯;其中,
第一CPU模块(1)和第二CPU模块(2)各自带有看门狗电路,系统工作时,第一CPU模块(1)和第二CPU模块(2)中,一个作为主CPU,另外一个作为从CPU,主从CPU模块在本机程序跑飞时重启,并且第一CPU模块(1)和第二CPU模块(2)之间通过两种通讯接口进行询问与应答,实现第一CPU模块(1)和第二CPU模块(2)的互检,主从CPU模块完成传感器(5)的数据采集,然后进行数据处理及运算,最后将结果经由第一输出切换模块(3)或第二输出切换模块(4)输出,驱动系统外的执行模块(8)工作;
第一仲裁切换模块(32)与第一输出驱动模块(31)组成的第一输出切换模块(3),第二仲裁切换模块(42)与第二输出驱动模块(41)组成的第二输出切换模块(4),它们一起形成双冗余输出切换模块结构,第一仲裁切换模块(32)和第二仲裁切换模块(42)为时序逻辑电路,第一仲裁切换模块(32)与第一CPU模块(1)、第二CPU模块(2)的I/O口连接,第二仲裁切换模块(42)也与第一CPU模块(1)、第二CPU模块(2)的I/O口连接,第一仲裁切换模块(32)和第二仲裁切换模块(42)接收主CPU和从CPU的输出作为切换信号,第一仲裁切换模块(32)与第二仲裁切换模块(42)均由D触发器及与非门电路组成,主CPU与从CPU通过发送方波信号给第一仲裁切换模块(32)和第二仲裁切换模块(42)实现主从切换,并且第一仲裁切换模块(32)的输出信号与第一CPU模块(1)的输入引脚相连接,第二仲裁切换模块(42)的输出信号与第二CPU模块(2)的输入引脚相连接,由第一CPU模块(1)监视第一仲裁切换模块(32)输出结果,第二CPU模块(2)监视第二仲裁模块(42)的输出结果;
第一输出驱动模块(31)由第一仲裁切换模块(32)与第一CPU模块(1)共同控制其输出状态,同时第一输出驱动模块(31)由第一CPU模块(1)控制其是否上电工作;第二输出驱动模块(41)由第二仲裁切换模块(42)与第二CPU模块(2)共同控制其输出状态,同时第二输出驱动模块(41)由第二CPU模块(2)控制其是否上电工作;
通讯模块(6)采用232通讯,采用MAX232及周边电路实现,RXD信号引脚同时接到第一CPU模块(1)与第二CPU模块(2)的RXD0引脚,并且第一CPU模块(1)的TXD0引脚同时接到第一输出驱动模块(31)和第二输出驱动模块(41),第二CPU模块(2)的TXDO引脚也同时接到第一输出驱动模块(31)和第二输出驱动模块(41),经第一输出驱动模块(31)和第二输出驱动模块(41)选择后形成TXD输出信号,并连接到MAX232的对应引脚;
通讯模块(6)与上位机(9)进行通讯,在上位机(9)上监视系统的工作状态,并能通过手动的方式控制第一CPU模块(1)与第二CPU模块(2)的工作状态与主从CPU之间的切换,在所述系统的某个部件出现故障的情况下,通过双冗余结构切换到其备份设备,使系统继续正常工作,根据故障部位的不同,系统将分为13种工作状态,所述的工作状态是指:状态I:第一CPU模块(1)做主CPU,第二CPU模块(2)做从CPU,第一输出切换模块(3)工作,第二输出切换模块(4)备份;状态II:第二CPU模块(2)做主CPU,无从CPU,第二输出切换模块(4)工作,第一输出切换模块(3)备份;状态III:第二CPU模块(2)做主CPU,第一CPU模块(1)做从CPU,第二输出切换模块(4)工作,第一输出切换模块(3)备份;状态IV:第一CPU模块(1)做主CPU,无从CPU,第一输出切换模块(3)工作,第二输出切换模块(4)备份;状态V:第一CPU模块(1)做主CPU,第二CPU模块(2)做从CPU,第二输出切换模块(4)工作,第一输出切换模块(3)故障;状态VI:第一CPU模块(1)做主CPU,第二CPU模块(2)做从CPU,第一输出切换模块(3)工作,第二输出切换模块(4)故障;状态VII:第二CPU模块(2)做主CPU,无从CPU,第一输出切换模块(3)工作,第二输出切换模块(4)故障;状态VIII:第二CPU模块(2)做主CPU,无从CPU,第二输出切换模块(4)工作,第一输出切换模块(3)故障;状态IX:第二CPU模块(2)做主CPU,第一CPU模块(1)做从CPU,第二输出切换模块(4)工作,第一输出切换模块(3)故障;状态X:第二CPU模块(2)做主CPU,第一CPU模块(1)做从CPU,第一输出切换模块(3)工作,第二输出切换模块(4)故障;状态XI:第一CPU模块(1)做主CPU,无从CPU,第一输出切换模块(3)工作,第二输出切换模块(4)故障;状态XII:第一CPU模块(1)做主CPU,无从CPU,第二输出切换模块(4)工作,第一输出切换模块(3)故障;状态XIII:系统故障,无法正确输出;上述的状态I与状态III为系统正常工作状态,系统开机初始化后工作在状态I,第一CPU模块(1)作为主CPU工作,第二CPU模块(2)作为从CPU监视,第一输出切换模块(3)工作,执行输出,在系统发生部件发生故障的情况下,系统状态转换如下:
当系统处于状态I时:若第一CPU模块(1)故障则切换到状态II;若第二CPU模块(2)故障则切换到状态IV;若第一输出切换模块(3)故障则切换到状态V;若第二输出切换模块(4)故障则切换到状态VI;若收到上位机主从切换命令则切换到状态III;
当系统处于状态II时:若第二CPU模块(2)故障则切换到状态XIII;若第一输出切换模块(3)故障则切换到状态VIII;若第二输出切换模块(4)故障则切换到状态VII;
当系统处于状态III时:若第一CPU模块(1)故障则切换到状态II;若第二CPU模块(2)故障则切换到状态IV;若第一输出切换模块(3)故障则切换到状态IX;若第二输出切换模块(4)故障则切换到状态X;若收到上位机主从切换命令则切换到状态I;
当系统处于状态IV时:若第一CPU模块(1)故障则切换到状态XIII;若第一输出切换模块(3)故障则切换到状态XII;若第二输出切换模块(4)故障则切换到状态XI;
当系统处于状态V时:若第一CPU模块(1)故障则切换到状态VIII;若第二CPU模块(2)故障则切换到状态XII;若第二输出切换模块(4)故障则切换到状态XIII;
当系统处于状态VI时:若第一CPU模块(1)故障则切换到状态VII;若第二CPU模块(2)故障则切换到状态XI;若第一输出切换模块(3)故障则切换到状态XIII;
当系统处于状态VII时:若第二CPU模块(2)故障或第一输出切换模块(3)故障则切换到状态XIII;
当系统处于状态VIII时:若第二CPU模块(2)故障或第二输出切换模块(4)故障则切换到状态XIII;
当系统处于状态IX时:若第一CPU模块(1)故障则切换到状态VIII;第二CPU模块(2)故障则切换到状态XII,若第二输出切换模块(4)故障则切换到状态XIII;
当系统处于状态X时:若第一CPU模块(1)故障则切换到状态VII;若第二CPU模块(2)故障则切换到状态XI;若第一输出切换模块(3)故障则切换到状态XIII;
当系统处于状态XI时:若第一CPU模块(1)故障或第一输出切换模块(3)故障则切换到状态XIII;
当系统处于状态XII时:若第一CPU模块(1)故障或第二输出切换模块(4)故障则切换到状态XIII;
状态XIII:系统故障,无法正确输出;
第一CPU模块(1)与第一仲裁切换模块(32)、第二仲裁切换模块(42)连接;第二CPU模块(2)与第一仲裁切换模块(32)、第二仲裁切换模块(42)连接,第一CPU模块(1)与第二CPU模块(2)发出切换指令,并且监视第一仲裁切换模块(32)、第二仲裁切换模块(42)的状态;第一CPU模块(1)输出连接第一输出驱动模块(31)、第二输出驱动模块(41),并且监视第一输出驱动模块(31)、第二输出驱动模块(41)的输出;第二CPU模块(2)输出连接第一输出驱动模块(31)、第二输出驱动模块(41),并且监视第一输出驱动模块(31)、第二输出驱动模块(41)的输出;第一仲裁切换模块(32)输出与第一输出驱动模块(31)的选通端相连控制第一输出驱动模块(31)是否导通,第二仲裁切换模块(42)输出与第二输出驱动模块(41)的选通端相连控制第二输出驱动模块(41)是否导通;第一输出驱动模块(31)、第二输出驱动模块(41)输出与执行模块(8)、通讯模块(6)的输入相连,通讯模块(6)与第一CPU模块(1)和第二CPU模块(2)的RXD引脚相连,第一CPU模块(1)和第二CPU模块(2)间通过对应引脚相连实现双机通讯。
2.根据权利要求1所述的一种基于嵌入式CPU的双机冗余容错系统,其特征在于,第一CPU模块(1)由ATMEGA128L构成,通过引脚PC.0和第四与非门(422),通过引脚PC.1和第一或门(322)的输入端和第一D触发器(325)的CLK引脚相连,通过引脚PC.2和第五与非门(425)和第三或门(424)的输入端引脚相连,引脚PE.6通过第三驱动电路(421)驱动第三三态门(411),引脚PE.7通过第一驱动电路(321)驱动第一三态门(311),第一CPU模块(1)的输出引脚接到第一三态门(311)的输入端D0、D1、D2、D3、D4、D5、D6和D7和第三三态门(411)的输入端D0、D1、D2、D3、D4、D5、D6和D7,所述的第一三态门(311)和第三三态门(411)均采用74HC573型号;第一仲裁切换模块(32)与第二仲裁切换模块(42)由第一D触发器(325)、第二D触发器(423)、第一与非门(323)、第二与非门(324)、第三与非门(327)、第四与非门(422)、第五与非门(425)、第六与非门(426)、和第一或门(322)、第二或门(326)、第三或门(424)、第四或门(427)组成,第二D触发器(423)输出Q通过第六或非门(426)产生逻辑相反信号与第二CPU模块(2)支路的第四或门(427)的输入端相连,保障主CPU第一CPU模块(1)与从CPU第二CPU模块(2)的输出不会同时被选中作为系统输出;第一三态门(311)、第三三态门(411)各引出一个引脚的信号被第一CPU模块(1)监视,并且引出第二D触发器(423)和第一与非门(323)的输出信号作为第一CPU模块(1)的输入信号,监视第一三态门(311)、第三三态门(411)是否正常工作,并且这两个三态门的供电由第一CPU模块(1)控制,在一个第一三态门(311)或第三三态门(411)出现故障时检测到并且通过引脚PE.6或引脚PE.7对故障输出驱动模块断电并且切换到正常输出驱动模块工作,上述内容构成第一CPU模块(1)支路,所述的第二CPU模块(2)支路采用与第一CPU模块(1)支路相同的电路结构。
3.根据权利要求1所述的一种基于嵌入式CPU的双机冗余容错系统,其特征在于,所述的第一输出驱动模块(31)出现故障,由第一CPU模块(1)与第二CPU模块(2)通过检测第一输出驱动模块(31)状态而检测到故障并通过对应引脚对出现故障的第一输出驱动模块(31)切断供电,对备用冗余的第二输出驱动模块(41)上电工作。
4.根据权利要求1所述的一种基于嵌入式CPU的双机冗余容错系统,其特征在于,所述的第一CPU模块(1)和第二CPU模块(2)之间的通信采用URAT通讯接口和SPI通讯接口进行询问与应答,实现第一CPU模块(1)和第二CPU模块(2)的互检。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100910699A CN101634959B (zh) | 2009-08-21 | 2009-08-21 | 一种基于嵌入式cpu的双机冗余容错系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100910699A CN101634959B (zh) | 2009-08-21 | 2009-08-21 | 一种基于嵌入式cpu的双机冗余容错系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101634959A CN101634959A (zh) | 2010-01-27 |
CN101634959B true CN101634959B (zh) | 2011-05-04 |
Family
ID=41594156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100910699A Expired - Fee Related CN101634959B (zh) | 2009-08-21 | 2009-08-21 | 一种基于嵌入式cpu的双机冗余容错系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101634959B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833536B (zh) * | 2010-04-16 | 2012-02-08 | 北京航空航天大学 | 一种冗余仲裁机制的可重构星载计算机 |
CN101968756B (zh) * | 2010-09-29 | 2012-07-18 | 航天东方红卫星有限公司 | 一种基于fpga的星载计算机自主切机系统 |
CN102053882B (zh) * | 2011-01-11 | 2013-08-21 | 北京航空航天大学 | 基于cots器件的异构星载容错计算机 |
CN102301364B (zh) | 2011-06-27 | 2013-01-02 | 华为技术有限公司 | Cpu互联装置 |
US8909979B2 (en) | 2011-06-27 | 2014-12-09 | Huawei Technologies Co., Ltd. | Method and system for implementing interconnection fault tolerance between CPU |
CN102763087B (zh) * | 2011-06-28 | 2015-03-11 | 华为技术有限公司 | Cpu间互联容错的实现方法及系统 |
CN103257350B (zh) * | 2012-05-07 | 2014-12-24 | 中国交通通信信息中心 | 一种双机双工自动切换方法 |
CN102981470B (zh) * | 2012-11-15 | 2015-09-30 | 哈尔滨工程大学 | 一种分布式系统可修复控制方法 |
CN103020005A (zh) * | 2012-12-19 | 2013-04-03 | 北京康拓科技有限公司 | 一种用于高可靠系统的数据通讯、比较方法与装置 |
CN103903365A (zh) * | 2012-12-27 | 2014-07-02 | 航天信息股份有限公司 | 一种嵌入式网络开票系统 |
DE102013213402A1 (de) * | 2013-07-09 | 2015-01-15 | Robert Bosch Gmbh | Mikrocontroller mit mindestens zwei Kernen |
CN103631178B (zh) * | 2013-11-04 | 2016-02-03 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种双机备份冗余控制装置 |
CN103699462B (zh) * | 2014-01-08 | 2015-04-08 | 闽南师范大学 | 一种具有可靠性设计的单片机系统 |
CN103823362A (zh) * | 2014-02-17 | 2014-05-28 | 南京航空航天大学 | 基于仲裁机制的相似双余度飞控计算机及冗余控制方法 |
CN104407949A (zh) * | 2014-11-28 | 2015-03-11 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种星载模块级冗余备份系统及方法 |
US10002056B2 (en) | 2015-09-15 | 2018-06-19 | Texas Instruments Incorporated | Integrated circuit chip with cores asymmetrically oriented with respect to each other |
CN106598017A (zh) * | 2015-10-20 | 2017-04-26 | 中车大连电力牵引研发中心有限公司 | 冗余控制系统 |
CN107957692B (zh) * | 2016-10-14 | 2020-06-09 | 中国石油天然气集团公司 | 控制器冗余方法、装置及系统 |
CN106647351A (zh) * | 2016-10-19 | 2017-05-10 | 浙江中控技术股份有限公司 | 一种冗余切换电路 |
CN107092211A (zh) * | 2017-05-27 | 2017-08-25 | 浙江大学 | 一种基于arm的双冗余无人船船载控制系统和方法 |
CN109814519B (zh) * | 2017-11-22 | 2021-11-16 | 成都凯天电子股份有限公司 | 切换双余度航电设备输出信号的方法 |
CN108363636B (zh) * | 2018-03-14 | 2022-04-19 | 中国人民解放军国防科技大学 | 一种嵌入式容错系统及其容错方法 |
CN108833242B (zh) * | 2018-05-22 | 2021-03-23 | 天津市英贝特航天科技有限公司 | 一种二取二安全数据处理与仲裁方法 |
CN109687943B (zh) * | 2018-10-11 | 2021-10-12 | 中国人民解放军海军陆战队训练基地 | 一种双机备份冗余控制系统 |
CN110198065A (zh) * | 2019-06-21 | 2019-09-03 | 深圳市小兔充充科技有限公司 | 充电站的检测电路及充电站的检测装置 |
CN110638519A (zh) * | 2019-09-29 | 2020-01-03 | 杭州安杰思医学科技股份有限公司 | 高频发生电路、控制方法以及电外科手术设备 |
CN111463895B (zh) * | 2020-05-08 | 2021-06-25 | 成都中科信息技术有限公司 | 一种实现双核心双通道控制单个液晶屏的显示系统 |
CN112218321B (zh) * | 2020-10-15 | 2023-10-20 | 京信网络系统股份有限公司 | 主备链路切换方法、装置、通信设备和存储介质 |
CN112327682B (zh) * | 2020-10-21 | 2022-07-15 | 浙江吉利控股集团有限公司 | 一种整机控制器系统、控制方法及电动飞行器 |
CN112486062B (zh) * | 2020-11-23 | 2021-10-15 | 西安航天动力试验技术研究所 | 火箭发动机试验双机实时控制系统及切换方法 |
CN113467999B (zh) * | 2021-07-08 | 2022-12-09 | 西安航天动力试验技术研究所 | 主动式热冗余监测双机切换系统及方法 |
CN113703353A (zh) * | 2021-07-28 | 2021-11-26 | 中国铁道科学研究院集团有限公司通信信号研究所 | 一种应用于列尾设备的冗余控制和冗余通信的方法及系统 |
CN115061422A (zh) * | 2022-07-18 | 2022-09-16 | 索提斯云智控科技(上海)有限公司 | Plc的互检冗余不丢步实现方案 |
CN117544584B (zh) * | 2024-01-09 | 2024-04-16 | 紫光恒越技术有限公司 | 基于双cpu架构的控制方法、装置、交换机及介质 |
-
2009
- 2009-08-21 CN CN2009100910699A patent/CN101634959B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101634959A (zh) | 2010-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101634959B (zh) | 一种基于嵌入式cpu的双机冗余容错系统 | |
CN100375044C (zh) | 信息处理系统及其控制方法、控制程序以及冗余控制装置 | |
CN103149907B (zh) | 基于双dsp的热冗余can总线高容错性控制终端及容错控制方法 | |
CN100555234C (zh) | 双机冗余容错系统及其冗余切换方法 | |
CN203786723U (zh) | 基于x86 pc/104嵌入式cpu模块的双机冗余系统 | |
CN102724083A (zh) | 基于软件同步的可降级三模冗余计算机系统 | |
CN110427283B (zh) | 一种双余度的燃油管理计算机系统 | |
JP7509345B2 (ja) | 機能が安全なスイッチ量出力モジュール及び診断処理方法 | |
CN109739694A (zh) | 一种双机仲裁切换系统及方法 | |
CN104050061A (zh) | 一种基于PCIe总线多主控板冗余备份系统 | |
US6351823B1 (en) | Method and device for monitoring a computer system having at least two processors | |
CN111767244A (zh) | 基于国产龙芯平台的双冗余计算机设备 | |
CN111831488B (zh) | 具有安全等级设计的tcms-mpu控制单元 | |
CN101000591A (zh) | 基于嵌入式cpu的双机冗余系统 | |
CN112099412B (zh) | 一种微控制单元的安全冗余架构 | |
CN212541329U (zh) | 基于国产龙芯平台的双冗余计算机设备 | |
JPH0934809A (ja) | 高信頼化コンピュータシステム | |
CN202421854U (zh) | 用于dcs系统的三重冗余开关量输出模块 | |
CN112445751B (zh) | 适用于多模冗余系统的计算机主机接口板 | |
US6943463B2 (en) | System and method of testing connectivity between a main power supply and a standby power supply | |
CN111930573B (zh) | 一种基于管理平台的任务级双机热备系统及其方法 | |
CN212825427U (zh) | 一种应用于机器人控制系统的安全控制硬件平台 | |
CN115408240A (zh) | 一种冗余系统主备方法、装置、设备及储存介质 | |
CN109491842B (zh) | 用于故障安全计算系统的模块扩展的信号配对 | |
JPH02132529A (ja) | 自動監視切替制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110504 Termination date: 20180821 |