1 问题的提出
在以单片机为核心的智能仪表及过程控制系统中常常需要长时间保存实时参数。通常可采用E2PROM、FLASH MEMORY以及以随机存贮器为基础内置电池的非易失芯片来实现。E2PROM、 FLASHMEMORY属于可在线修改的ROM器件,它解决了应用系统中实时参数掉电保存的难题,但这类芯片写入速度慢(ms级),擦写次数有限(万次级),有些器件擦写次数虽达百万次,对某些应用系统而言,其写入次数仍然是有限的。因此这类芯片只能用在需要保护的数据量小且写入不频繁的系统中。对那些需要大容量高速反复存取实时参数的系统,只能用随机存贮器RAM加掉电保护电路实现。掉电保护系统一般由低功耗的CMOS-RAM、供电电路及控制电路组成。供电电路保证系统正常时由电源给RAM供电,掉电时自动转到备用电池给RAM供电;控制电路保证在电源供电时RAM正常读写,电池供电时RAM处于保护状态,特别要防止系统上电/掉电过程中的瞬间干扰对RAM芯片的写入而改变RAM中的数据。基于RAM的掉电保护电路既具有RAM的高速写入、写入次数无限制的特点,又能象ROM那样长时间保存数据,因此得到了广泛的应用。实现上述原理的掉电保护方法很多,某些厂商甚至以RAM为基础内置电池开发出自掉电保护芯片,用这类独立的掉电保护芯片或电路构成的单片机系统,实际应用中有时会出现工作不稳定现象。经分析发现:若系统电源的变化使RAM先处于保护状态,而系统尚未复位,单片机仍正常工作,这时就出现写不进,读不出的现象,引发系统故障。对于这种单片机复位电平与掉电保护电平不一致而影响系统可靠性的问题,本文提出用微处理器监控电路使单片机复位与掉电保护联动的解决方案。RAM在单片机复位时处于保护状态,工作时正常存取,从而有效地解决前述问题。
2 MAX791[1]芯片介绍
MAX791是MAXIM公司生产的高性能微处理器电源监视电路,它与AMDA公司的AMD791性能
相同可以互换。功能包括微处理器复位、备用电池切换、看门狗电路、CMOS-RAM写入保护及
电源故障告警等,逻辑框图如图2—1[1]。图中VCC、VOUT分别为电源输入、输出,VBATT为
电池输入,为电源低输出,和为RAM芯片使能输入与输出,为
复位输出,为人工复位输入,为低将强制RESET有效,SWT、WDI、、分别
为看门狗定时设置、触发输入、超时输出和超时脉冲。PFI和分别为电源故障输入和输出,
PFI低于1.25 V时变低。
MAX791的复位时序如图2—2[1]所示。
3 掉电保护电路设计
3.1 硬件设计
图3—1给出了一种带掉电保护的MCS-51[2]、[3]单片机应用系统的原理图。
76C88是CMOS型的RAM芯片,其容量为8K×8,它有两个片选端和CS2,只有为低电平同时CS2为高电平时芯片才被选中。因此将CS2接MAX791的输出端,同时写允许信号通过MAX791的使能控制输入端和输出端,间接从MCS-51的引入,保证在系统复位期间不能读写,有效地保护了76C88中的数据。结合图2—2 MAX791的复位时序,图3—1的电路工作原理分析如下。
上电过程:当VCC从OV上升到复位门限1.65V,
输出仍将维持有效电平200ms的时间,保证电源电压正常后系统的有效复位。
有效期间76C88的CS2处于低电平,即片选信号无效,保证上电过程中片内数据不被改写。当VCC大于VBATT时,VOUT自动切换到与VCC相接,76C88转由VCC供电。
正常工作:在此状态下,CS2为高电平,通过MAX791的使能电路复制,单片机可对76C88进行读写操作。为防止程序跑飞,提高系统的可靠性,在程序中插入看门狗触发指令,即P1.7的置位/复位指令,程序正常执行时经常触发WDI。当程序跑飞超过1.6 s不能触发看门狗时,输出低电平,通过MR使系统复位。在此期间VCC通过二级管D1、电阻R1给后备电池充电。
掉电过程:当VCC从正常电压下降到复位门限4.65V时,立即有效,CS2变成低电平,76C88进入保护状态,保证掉电过程中片内数据不被改写。当VCC小于VBATT时,VOUT自动切换到与VBATT相接,76C88转由后备电池供电。
对多数应用系统,上电复位后程序从头开始即能满足要求,但对某些系统如由多道工序组成的流水线控制系统,突然停电后再来电时应接着原来的工序往下执行,这就要求计算机记录停电瞬间的系统参数,重新来电时根据记录的参数继续往下执行。
利用MAX791的电源报警功能,能方便地达到这一目的:分析图2-2,当VCC下降到4.65V+150mV时,产生负跳变,向单片机发中断请求,因贮能效应,VCC从4.8 V降到4.65 V有几个ms的时间,足够单片机执行几百条甚至上千条指令,利用这段时间在中断服务程序中保护断点及实时参数。重新来电后转入断点继续执行。
3.2 软件设计
图3—1所示单片机系统的软件可分成主程序和电源报警中断服务程序两部分。主程序中必须插入指令经常触发WDI,且间隔时间不能超过1.6s,报警中断必须设置为非屏蔽中断没有可以将设置成唯一的一个高级中断以替代。程序流程图如图3—2。
4 结束语
将复位与掉电保护联动,能有效解决掉电保护与复位不协调引起的系统工作不稳定现象,提高掉电保护电路及单片机应用系统的可靠性。以MAX791微处理器监控电路构成的单片机掉
电保护系统,在电力、石化等工业现场应用效果十分理想。