专利名称:一种基于嵌入式cpu的双机冗余容错系统的制作方法
技术领域:
本发明涉及一种应用于自动控制领域的双机冗余容错系统,尤其涉及一种基于嵌入式
CPU的双机冗余容错系统。
背景技术:
基于嵌入式CPU的双机冗余系统在工业现场有很多应用,在航空航天、供配电及电信等
行业的大量实例表明,在高可靠性要求的环境中的双机冗余系统一般都经过单一的仲裁切换 模块进行选择输出。
目前基于嵌入式CPU的双机冗余系统只是对CPU进行冗余设计,仲裁切换电路和输出
模块都未进行冗余设计,若这些部分出现故障,系统将没有冗余备份,当这些故障无法进行 修复时,系统将输出错误而产生故障,导致系统不能正常运行。传统的双机冗余容错系统存 在的主要缺点是系统存在单点故障从而引起系统故障,系统总体可靠性不高。由于仲裁切换 电路和输出模块并未采用冗余结构,这些部分出现故障则整个系统出现不可恢复故障。
发明内容
本发明是提供一种基于嵌入式CPU的双机冗余容错系统,解决传统双机冗余容错系统存
在的单点故障问题,实现在系统发生一度故障模式下仍能通过切换到冗余备份设备,使系统 保持正常工作状态。
为实现上述目的,本发明采用技术方案如下
一种基于嵌入式CPU的双机冗余容错系统主要包括双冗余CPU模块和双冗余输出切
换模块。
其中双冗余CPU模块,包括两个功能相同的CPU模块,分别为第一 CPU模块和第二 CPU模块,系统工作时第一CPU模块和第二CPU模块中的一个作为主CPU,另外一个作 为从CPU。它们各自带有看门狗电路,在本机程序跑飞时重新启动,并且通过双机通讯互相 监视,若主CPU出现故障且无法屏蔽自身的输出时,从CPU借助双冗余切换模块屏蔽原主 CPU输出,并将从机切换到主CPU工作状态,双冗余CPU模块间通过URAT通讯接口和 SPI通讯接口连接,实现双冗余CPU之间的通信,避免单一通信接口出现故障而导致主从机 之间通信失效。主从CPU模块完成传感器的数据采集,然后进行数据处理及运算,最后将结
果经由双冗余输出切换禾莫块输出,驱动执行模块工作。 其中双冗余输出切换模块,包括两个功能相同的输出切换模块,输出切换模块由仲裁切
6换模块和输出驱动模块组成,仲裁切换模块采用时序逻辑电路设计,并与第一 CPU模块和第 二CPU模块的I/0口连接,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、 切换信号釆用固定脉宽的脉冲信号,避免传统高低电平信号容易导致系统的误切换。
图l是本发明的系统结构框图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模块l输出连接第一输出驱动模块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的数据采集,然后进行数据处理及运算,最后将结果经由第一输出切换t莫块 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的rxdo引脚,并且第一 cpu模块1与第二 cpu模块2的txdo与txdo'弓胸接到第一输出驱动模块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 由ATMEGA1'28L构成,通过引脚PC.O和第四与非门422,通过PC.l和第一或门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模块l输出切换方波信号的引脚PE.O、 PE.l 与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 MML2支路,即第 二 CPU模块2支路也采用相同的电路结构,具体电路参照图2。
主CPU第一 CPU模块1与从CPU第二 CPU模块2都各自带有看门狗电路,在本机程 序跑飞时进行重置。双冗余第一 CPU模块1和第二 CPU模块2之间的通信采用URAT通
1讯接口和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.O发出一个方波信号后恢复低电平,通过与非门324使第一 D触 发器325的输出Q端置"1"使第一三态门311的输出弓l脚置为高阻态,并使第二三态门 312的/OE端置低,使从CPU2输出信号接到的第二三态门312开通,使从CPU2切换到 主机工作模式并且使其输出通过第二三态门312作为系统输出;在原从CPU2无故障的情况 下,原从CPU2现作为主机工作,并且再次对原主CPU1发出询问信号;若原从CPU2发 生错误而错误地发出切换信号,原主CPU1通过对第一三态门311的/OE端和输出端监视 判断第一三态门311输出与输入不同,则对应引脚PE.7对其断电,同时通过PE.6对第三 三态门411供电,并且同时通过PC.O引脚发出一个方波信号使第二 D触发器423输出端 Q置高电平,通过原主CPU1的输出通过第四三态门412输出,原主CPU1的对应引脚PC.l 输出一个方波信号后置低通过第一 D触发器325使输出Q的逻辑电平翻转后变为高电平, 并且在新主CPU2进行询问时原主CPU1给予应答,则原从CPU2停止执行切换程序;若 原从CPU2出现掉电或程序跑飞等故障而产生引脚电平跳变引起误切换,则在误切换后原主 CPU1在询问原从CPU2无应答,则原主CPU1通过向引脚PC.l发出一个方波信号,使第 一 D触发器325的Q端信号翻转,使第三三态门411输出为高阻,屏蔽出故障的原从CPU 的输出,并且原从CPU2由于自身故障不会执行全部的切换程序。避免原从CPU2的某次故 障错误切换。若原主CPU1在一定时间内无应答,则新主CPU2第二次判断原主CPU1故 障,则新主CPU2的对应引脚PC.l输出一个方波信号后置低通过第二 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;若收到上位机主从切换命令则切换到状态m;
状态II:第二CPU模块2做主CPU,无从CPU,第二输出切换模块4工作,第一输出切换 模块3备份。若第二CPU模块2故障则切换到状态XIII;若第一输出切换模块3故障则切换到
状态vm;若第二输出切换模块4故障则切换到状态vn;
状态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工作,
12第一输出切换模块3故障。若第一CPU模块l故障则切换到状态VIII;若第二CPU模块2故障 则切换到状态XII;若第二输出切换模块4故障则切换到状态XIII;
状态VI:第一CPU模块1做主CPU,第二CPU模块2做从CPU,第一输出切换模块3工作, 第二输出切换模块4故障。若第一CPU模块1故障则切换到状态VII;若第二CPU模块2故障则 切换到状态XI;若第一输出切换模块3故障则切换到状态Xin;
状态VII:第二CPU模块2做主CPU,无从CPU,第一输出切换模块3工作,第二输出切 换模块4故障。若第二CPU模块2故障或第一输出切换模块3故障则切换到状态Xin。
状态Vin:第二CPU模块2做主CPU,无从CPU,第二输出切换禾莫块4工作,第一输出切 换模块3故障。若第二CPU模块2故障或第二输出切换模块4故障则切换到状态Xin。
状态IX:第二CPU模块2做主CPU,第一CPU模块1做从CPU,第二输出切换模块4工作, 第一输出切换模块3故障。若第一CPU模块1故障则切换到状态VIII;第二CPU模块2故障则
切换到状态xn,若第二输出切换模块4故障则切换到状态xm;
状态X:第二CPU模块2做主CPU,第一CPU模块1做从CPU,第一输出切换模块3工作, 第二输出切换模块4故障。若第一CPU模块1故障则切换到状态VII;若第二CPU模块2故障则 切换到状态XI;若第一输出切换模块3故障则切换到状态Xin;
状态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故障,引脚为高电平,则本支路输出驱动模块都会被置
13为高阻态而被屏蔽掉本支路输出,原从CPU第二 CPU *莫块2检测到原主CPU第一 CPU 模块1故障并执行切换程序并作为新主机工作。
6、若从CPU第二CPU模块2故障,弓l脚为高电平,则本支路输出驱动模块都会被置 为高阻态而被屏蔽掉本支路输出,原主CPU第一 CPU模块1继续作为主机工作。
第一输出切换模块3出现故障,由第一 CPU模块1与第二 CPU模块2通过检测第一输 出切换模块3状态而检测到故障而通过对应引脚对故障输出驱动模块3切断供电,并且对备 用冗余第二输出驱动模块4上电工作。
若上位机9长时间没有收到数据,双冗余CPU及双输出切换模块出现故障并未进行切换 时,则由上位机9对双冗余CPU发出切换信号执行切换。
本发明中通过双机冗余互相判断,通过二步切换方式避免由于从CPU的故障进行误判而 进行的一次切换,主CPU在从CPU进行一次切换后通过切换到冗余输出模块进行输出,从 CPU出现故障时,从CPU不会对两个不同引脚按次序发送切换方波信号,不会进行切换的 全部过程。主CPU出现故障则不会切换到冗余输出模块进行切换而保证了双机冗余的高可靠 工作,避免了由于其中一个CPU故障而产生的误切换。
权利要求
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模块完成传感器(5)的数据采集,然后进行数据处理及运算,最后将结果经由第一输出切换模块(3)或第二输出切换模块(4)输出,驱动系统外的执行模块(8)工作;第一仲裁切换模块(32)与第一输出驱动模块(31)组成的第一输出切换模块(3),第二仲裁切换模块(42)与第二输出驱动模块(41)组成的第二输出切换模块(4),它们一起形成双冗余输出切换模块结构,第一仲裁切换模块(32)和第二仲裁切换模块(42)为时序逻辑电路,与第一CPU模块(1)、第二CPU模块(2)的I/O口连接,接收CPU的输出作为切换信号,仲裁切换模块由触发器及与非门电路组成,其中仲裁切换模块部分采用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模块(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.O和第四与非门(422),通过PC.l 和第一或门(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)组成,第二 D触发器(423) 输出Q通过第六或非门(426)产生逻辑相反信号与另一 CPU(2)支路的第四或门(427)的输入 端相连,保障主CPU第一 CPU模块(l)与从CPU第二 CPU模块(2)的输出不会同时被选中 作为系统输出;第一三态门(311)、第三三态门(411)各引出一个引脚的信号被第一 CPU模块 (l)监视,并且引出第二 D触发器(423)和第一与非门(323)的输出信号作为第一 CPU模块(l) 的输入信号,监视第一三态门(311)、第三三态门(411)是否正常工作,并且这两个三态门的 供电由第一 CPU模块(l)控制,在一个第一三态门(311)或第三三态门(411)出现故障时检测 到并且通过PE.6或PE.7对故障输出驱动模块断电并且切换到正常输出驱动模块工作,上述 内容构成第一CPU模块(1)支路。
3、 根据权利要求2所述的一种基于嵌入式CPU的双机冗余容错系统,其特征在于,所 述的第一 CPU模块(1)支路的电路结构复制到第二 CPU模块(2)的电路中,构成第二 CPU模块(2)支路。
4、 根据权利要求1所述的一种基于嵌入式CPU的双机冗余容错系统,其特征在于,所述的系统在某个部件出现故障的情况下,通过双冗余结构切换到其备份设备,使系统继续正 常工作,根据故障部位的不同,系统将分为13种工作状态状态I与状态m为系统正常工 作状态,系统开机初始化后工作在状态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;状态xm:系统故障,无法正确lr出。
5、 根据权利要求1所述的一种基于嵌入式CPU的双机冗余容错系统,其特征在于,所 述的第一输出切换模块(3)出现故障,由第一 CPU模块(l)与第二 CPU模块(2)通过检测第一 输出切换模块(3)状态而检测到故障并通过对应引脚对故障输出驱动模块(3)切断供电,对 备用冗余第二输出驱动模块(4)上电工作。
6、 根据权利要求1所述的一种基于嵌入式CPU的双机冗余容错系统,其特征在于,所 述的双冗余第一CPU模块(1)和第二CPU模块(2)之间的通信采用URAT通讯接口和 SPI通讯接口进行询问与应答,实现双机的互检。
全文摘要
本发明公开一种基于嵌入式CPU的双机冗余容错系统,包括基板、第一CPU模块和第二CPU模块、第一输出切换模块、第二输出切换模块和通讯模块。第一CPU模块、第二CPU模块、第一输出切换模块、第二输出切换模块和通讯模块安装在基板上并且通过通讯模块与上位机通讯,第一CPU模块和第二CPU模块完成传感器的数据采集,然后进行数据处理及运算,最后将结果经由第一输出切换模块或第二输出切换模块输出,驱动执行模块工作。本发明解决了传统双机冗余容错系统存在的单点故障问题,在系统发生一度故障模式下仍能通过切换到冗余备份设备,使系统保持正常工作状态。本发明提供的双机冗余容错系统切换方法简单,总体可靠性高,选用部件结构简化,性价比高。
文档编号G06F11/16GK101634959SQ200910091069
公开日2010年1月27日 申请日期2009年8月21日 优先权日2009年8月21日
发明者徐利杰, 青 王, 董朝阳, 薛志刚 申请人:北京航空航天大学