文档库 最新最全的文档下载
当前位置:文档库 › 单片机掉电保护总结

单片机掉电保护总结

单片机掉电保护总结
单片机掉电保护总结

单片机掉电保护总结 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】

单片机应用系统断电时的数据保护方法

在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM。下面将介绍最常用的一些掉电保护的处理方法,希望能对相

关设计人员在实际工作中有所帮助。?

1简单的RAM数据掉电保护电路

在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOSRAM。CMOS型RAM 存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CP U在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直

保持接近VCC。通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMSRAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。?

图1中,4060开关电路起到对CS控制的作用。当电压小于等于时就使开关断开,CS线上拉至"1",这样,RAM中的数据就不会冲失;当电压大于时,4060开关接通,使RAM

能正常进行读写。

2可靠的RAM掉电保护电路

上述的电路虽然简单,但有时可能起不到RAM掉电保护的作用,原因是在电源掉电和重新加电的过程中,电源电压跃变的干扰可能使RAM瞬间处于读写状态,使原来RAM中的数据遭到破坏,因此,在掉电刚刚开始以及重新加电直到电源电压保持稳定下来之前,RAM应处于数据保持状态,6264RAM、5101RAM等RAM芯片上都有一个CE2引脚,在一般情况下需将此引脚拉高,当把该引脚拉至小于或等于时,RAM就进入数据保持状态。实用的静态RAM掉电保护电路如图2所示,图2中U1、U2为电压比较器,稳压管D3提供一个基准电压Vr(Vr=)。当Vcc为5V时,在R4上得到的分压大于Vr,U2输出高电平,又因为U4输出也为高电平,故CE2输出为高电位,单片机此时可对RAM进行存取,当电源掉电时,Vcc开始下降,当满足如下条件时:

R4×Vcc/[(R4+R3)/(R5+R6)]≥Vr

U2输出低电平,通过U5和U6使CE2输出小于等于,RAM进入数据保持状态(按图2中元件参数代入上式,当Vcc降到时,U2输出为低电位)。若Vcc继续下降使U3翻转,再通过D4、U4和U6进一步保证CE2为低电平。此外,当Vcc下降到小于E时,D2截止,D1导通,这时E作为RAM的备份电源,当单片机重新加电时,Vcc由0跃变到5V 时,U2的输出端会出现瞬间的干扰脉冲,由于U3和U4间电路的积分延迟(约),CE2并不立即升到高电平,因而阻止了U2的干扰脉冲,当延时结束时,电源电压已稳定在5 V,此后CE2升高,单片机便可对RAM进行存取。图2中U3和U6为一块四施秘特(CD4 093),该电路直接由E供电,这样才能保证掉电后使CE2≤,并在重新加电时CE2不受电源电压跃变的干扰,比较器U1和U2为电源供电,Vcc为后备电源U1的电压监视电

路,当后备电池快用完时(小于),发光管会发出亮光,表明要换上新电池,备份电源可用3节5号干电池,也可以采用锂电池或镍电池。?

3利用TL7705对现场数据进行保护

单片机构成的应用系统在突然断电时,往往使片内RAM数据遭到破坏,下面介绍一种利用TL7705构成的电源监控电路,使单片机系统在掉电时自动保护现场数据。?

TL7705的工作原理

TL7705是电源监控用集成电路,采用8脚双列直插式封装,其内部结构图3所示。图3中,基准电压发生器具有较高的稳定性,可由1脚输出基准电压,为了吸收电源的同脉冲干扰,通常在1脚上接一个μF的滤波电容来提高其抗干扰能力,被监控的电源电压由SENSE端7脚引入,经过R1和R2分压后送入比较器CMP1,与基准电压进行比较,当其值小于基准电压时,T1导通,定时电容CT通过T1放电,使CMP2比较器翻转,T2和T3导通,输出脚RESET为高电平,SESET反为低电平,当送入CMP1比较器的电压高于基准电压时,T1截止100μA恒流源给CT充电,当CT上的电压高于时,CMP2比较器翻转,T2和T3截止,RESET和RESET反输出关断。?

TL7705与80C51单片机的接法

在某些单片机应用系统中需要在系统掉电时记忆当前现场状态,以使电源恢复后能继续从断电处运行,图4是以80C51单片机为例采用其空闲方式或掉电方式,在备用电池支

持下实现掉电后的数据保护。

图4中,R1、C1和74LSO4构成单片机的上电自动复位和手动按钮复位电路,备用电池P1及D1、D2实现掉电时备用电池的切换。电源正常时D1不导通,+5V直接给单片机供电,并为电池P1充电,为了减小电池耗电,备用电池只给单片机供电,保护片内RAM 中的数据,电源掉电后,其他外围电路的工作电压仅靠电源电容维持很短的时间,电位器RW用来调节检测电压,范围为-,当掉电时,外围电路的电压下降到门限设定电压时,可将片外RAM中需要保护的数据写入片内RAM中,并使单片机进入掉电工作方式以完成数据保护,为了保证单片机有足够的处理时间,取检测电压为,当电源电压降至时,TL7705由RESET反向单片机发出中断请求信号(INTO反)。单片机运行到一个可断断点后,相应中断,在中断服务程序中保护现场数据,使单片机进入掉电工作状态。?

4采用软件冗余措施保证数据的准确性

最常用的一种方法是采用软件冗余措施,即将欲保护的数据写入RAM中的不同区域,如0000H-00FFH、0100H-01FFH和0200H-02FFH这三个区域存储同样一组数据,当使用这些数据前,先对各组进行检查,对于正确的数据方可应用,同时将错误的数据进行修正,在上电与断电过程中,总线不确写性是随机的,不可将所有数据完全冲失。采用硬件对数据进行断电保护,同时在软件上采用冗余的措施是最常用的数据保护方法,在断电突然发生时可保证数据的准确无误。

网路文章:

我想在掉电时保存数据(3个字节)到EEPROM中,用BOD掉电检测,不知怎样使用。望高手指点:

1。在BOOT区设置好BODEN,BODLEVEL,后软件还要怎样设置

2。掉电中断是否是产生复位我的写EEPROM程序应该放在什么地方他和其他复位怎样区别

3。设置了BOOT区后,硬件上是否要加电源到一个管脚比较后才产生中断

============================================================================ =======

掉电检测BOD的误解

AVR自带的BOD(Brown-out Detection)电路,作用是在电压过低(低于设定值)时产生复位信号,防止CPU意外动作. 对EEPROM的保护作用是当电压过低时保持RESET信号为低,防止CPU意外动作,错误修改了EEPROM的内容而我们所理解的掉电检测功能是指具有预测功能的可以进行软件处理的功能。

例如,用户想在电源掉电时把SRAM数据转存到EEPROM,可行的方法是

外接一个在翻转的电压比较器(VCC=,BOD=,输出接到外部中断引脚(或其他中断)

一但电压低于,马上触发中断,在中断服务程序中把数据写到EEPROM中保护起来

注意: 写一个字节的EEPROM时间长达8mS,所以不能写入太多数据,电源滤波电容也要选大一些

============================================================================ ========

将AVR的BOD设为,从到这段时间写EEPROM。AVR的供电采用14楼方案,掉电检测使用IMP809。

软件编写思路请参考我的《M128》书是第5章,或10月出版的书的第7章。参考电路如下:

在图中,外部9V电源通过7805稳压到5V,作为系统电源使用。而AVR的工作电源则是单独提供的,由5v系统电源通过低压差肖特基二极管1N5817后得到。IN5817的正向压

降为,因此,AVR的工作电压为。电源监控芯片IMP809-L的监控电压为,当系统电源的电压低于时,在R脚上产生由高电平到低电平的变化,使AVR进入INT0中断。

该电路的工作原理为:首先通过配置AVR的熔丝位,设置BOD掉电检测电压门限为,并允许BOD检测。因此,当AVR的Vcc电压掉到以下时,AVR就停止工作(掉电检测功能是AVR片内的功能之一,见第二章的 AVR的复位源和复位方式)。电源监控芯片

IMP809-L检测电压门限为,用于检测系统电源的电压。当系统电源大于时,IMP809-L 的R端输出高电平,整个系统正常工作。当系统电源的电压跌到以下时,IMP809-L的R 脚输出低电平,作为AVR外部中断INT0的申请。INT0设计为掉电处理中断,其主要任务是备份系统运行的重要数据到EEPROM中。

在提供AVR工作的电源系统中,大容量的电解电容C5作为储能电容,一旦系统电源电压下降,二极管1N5817截止,此时AVR可以靠C5提供的电储可以继续工作一段时间。C5容量应足够大,在系统电源掉电过程中,IMP809-L的R端输出低电平(下降到)时,要能够保证维持AVR的工作电压Vcc从降到的时间超过300ms,使AVR有时间做紧急处理和备份数据。AVR写EEPROM大约需要50-100mA的电流,所以电容C5的值应该在1000u~4700u,需要保存的数据越多,C5的容量应该越大。

INT0是AVR优先级最高的中断,采用外部电平变化的下降沿触发方式。一旦

IMP809-L的R脚电平由正常的高电平变为低电平时,将触发INT0中断,进入INT0掉电中断服务程序。

在INT0掉电保护中断服务程序中,应按以下的步骤和过程处理:

A)紧急处理,关闭所有外部器件的工作,或将外部状态设置到安全模式,如关闭马达、开关等,保证系统不出事故。

B)将AVR所有I/O设置为输入方式,最大程度的减少AVR芯片对电源的消耗。

C)将重要数据写入到EEPROM中。

D)循环检测INT0引脚是否恢复高电平。如为高电平则转到下一步E执行;如果INT0电平一直为低,程序将在此循环,直到完全停止运行(因为储能电容C5的电压低于后,AVR的BOD起作用,产生内部复位,AVR停止运行程序)。

E)软件延时一段时间。

F)再次检测INT0引脚电平。为低电平时转回D再次循环检测;为高电平时继续向下执行(这种情况表示系统电源受到干扰或短时掉电,现已经恢复正常)。

G)恢复外部器件工作(此时尽管进入了掉电保护程序,但AVR在C5的维持下,一直正常工作,所有的数据并没有破坏,可以继续进行工作);

H)中断返回。

在实际应用中,系统断电保护的设计是一个比较难的问题,实现的方法和手段也有不同。这个设计主要是作为一个使用外部中断的例子,让读者可以从中体会到如何合理和正确的使用外部中断。

相关文档