单片机掉电检测与保存
- 格式:pdf
- 大小:182.24 KB
- 文档页数:3
单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1 简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOS RAM。
CMOS型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMS RAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
用法拉电容从容实现单片机掉电数据保存电路见下:这里首先用6V供电(如7806),为什么用6V不用5V是显而易见的.这里的二极管们一般都起两个作用,一是利用单向导电性保证向储能电容0.47F/5.5V单向冲电;二是起钳位作用,钳去0.6V,保证使大多数51系列的单片机都能在4.5V--5.5V之间的标称工作电压下工作.而4.5-5.5间这1V电压在0.47F电容的电荷流失时间就是我们将来在掉电报警后我们可以规划的预警回旋时间.两只47欧电阻也有两个作用:1:和47UF和0.01UF电容一起用于加强电源滤波.2.对单片机供电限流一般电子工程师都喜欢把单片机电源直接接7805上,这是个非常不好的习惯,为什么?7805可提供高达2A的供电电流,异常时足够把单片机芯片内部烧毁.有这个电阻47欧姆电阻挡作及时把芯片或者极性插反也不会烧单片机和三端稳压器,但这电阻也不能太大,上限不要超过220欧,否则对单片机内部编程时,会编程失败(其实是电源不足).3.对0.47F/5.5V储能电容,串入的这只47欧电阻消除"巨量法拉电容"的上电浪涌.实现冲电电流削峰大家算一算要充满0.47F电容到5.5V,即使用5.5A恒流对0.47F电容冲电,也需要0.47秒才能冲到5.5V,既然知道了这个问题,大家就清楚:1.如果没有47欧姆电阻限流,上电瞬间三端稳压器必然因强大过电流而进入自保.2.长达0.47秒(如果真有5.5A恒流充电的话)缓慢上电,如此缓慢的上电速率,将使得以微分(RC电路)为复位电路的51单片机因为上电太慢无法实现上电复位.(其实要充满0.47UF电容常常需要几分种).3.正因为上电时间太慢,将无法和今天大多数主流型以在线写入(ISP)类单片机与写片上位计算机软件上预留的等待应答时间严重不匹配(一般都不大于500MS),从而造成应答失步,故总是提示"通信失败".知道这个道理你就不难理解这个电路最上面的二极管和电阻串联起来就是必须要有上电加速电路.这里还用了一只(内部空心不带蓝色的)肖特基二极管(1N5819)从法拉电容向单片机VCC放电,还同时阻断法拉电容对上电加速电路的旁路作用,用肖特基二极管是基于其在小电流下导通电压只有0.2V左右考虑的,目的是尽量减少法拉电容在掉电时的电压损失.多留掉点维持时间.三极管9014和钳制位二极管分压电阻垫位电阻(470欧姆)等构成基极上发射极双端输入比较器,实现掉电检测和发出最高优先级的掉电中断,这部分电路相当于半只比较器LM393,但电路更简单耗电更省(掉电时耗电小于0.15MA).47K电阻和470欧姆二极管1N4148一道构成嵌位电路,保证基极电位大约在0.65V左右(可这样计算0.6(二极管导通电压)+5*0.47/47),这样如果9014发射极电压为0(此时就是外部掉电),三极管9014正好导通,而且因为51单片机P3.2高电平为弱上拉(大约50UA),此时9014一定是导通且弱电流饱和的,这样就向单片机内部发出最高硬件优先级的INX0掉电中断.而在平时正常供电时,因发射极上也大约有6*0.22/2.2=0.6V电压上顶,不难发现三极管9014一定处于截止状态,而使P3.2维持高电平的.下面还有两个重要软硬件要点和建议:1.硬件要点:凡是驱动单片机外部口线等的以输出高电平驱动外部设备,其电源不能和电片机的供电电压VCC去争抢(例如上拉电阻供电不取自单片机VCC).而应直接接在电源前方,图中4.7K电阻和口线PX.Y就是一个典型示例,接其它口线PX.Y'和负载也雷同.这里与上拉4.7K电阻相串联二极管也有两个作用:1.钳去0.6V电压以便与单片机工作电压相匹配,防止口线向单片机内部反推电.造成单片机口线功能紊乱.2.利用二极管单向供电特性,防止掉电后单片机通过口线向电源和外部设备反供电.上面的硬件设计,在与软件结合起来(见下面叙述)就可以保证在掉电期间,不会因法拉电容上的积累电荷为已经掉电的外部电路无谓供电和向电源反供电造成电容能量泄放缩短掉电维持时间.2.软件要点:首先INX0在硬件上(设计)是处于最高优先级的,这里还必须要在软件保证最高级别的优先.从而确保掉电时外部中断0能打断其他任何进程,最高优先地被检测和执行.其次在INX0的中断程序入口,还要用: MOV P1,#00HMOV P2,#00HMOV P3,#00HMOV P0,#00HSJMP 掉电保存来阻断法拉电容的电荷通过单片机口线外泄和随后跳转掉电写入子程序模块.(见硬件要点)有了上面的预备和细节处理,下面我们信心百倍地一道来计算0.47UF的电容从5.5V跌落到4.5V(甚至可以下到3.6V)所能维持的单片机掉电工作时间.这里设单片机工作电流为20MA(外设驱动电流已经被屏蔽)不难算出:T=1V*0.47*1000(1000是因为工作电流为豪安)/20=23.5秒!!!!!天!这个对单片机而言相当于从原始社会到共产主义社会的历史慢长.休说是写内部FLASH ROM,就是从新写片子本身都能写5希望以上资料对你有所帮助,附励志名言3条::1、世事忙忙如水流,休将名利挂心头。
单片机检测交流电掉电程序(数码分段开关)
灯饰配件中有一种控制器叫数码分段开关,基本工作原理是利用墙壁开关
通断电来实现对多种负载的轮流亮灭,这其中就涉及到单片机如何检测交流电
掉电。
首先,要把交流电的同步信号提取出来,形成单片机能识别的低压信号,一般有2 中方法,一种是直接利用电阻分压法,把同步信号提取(适合非隔离
型电路)。
另外一种方法是利用光耦提取隔离的交流信号。
2 种方法如下所示:
光耦隔离取样电路
电阻分压取样电路
所取得的交流信号如下图:
本程序实现的功能是,第一次打开关,L1 亮,L2 灭,第二次打开关,L1 灭,L2 亮,第三次打开关,L1,L2 全亮,第四次打开关,L1,L2 全灭,如此循环。
那么,单片机检测交流电掉电,每隔一定时间检测一次交流信号输入口,如果
是低电平,开始计时,如果12MS-15MS 之后,还是低电平,说明交流电被断
过一次电,此时要做出相应的控制动作。
所用单片机为PIC16F676,RA5 上的
脚作为交流检测脚。
RC2,RC3 作为负载输出控制端。
程序如下:
#include__CONFIG(0X1B4);#define uchar unsigned char//宏定义,相当于uchar=unsigned char#define uint unsigned int//宏定义,相当于uint=unsigned int tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
掉电保存方案
掉电保存方案主要通过在系统中加入掉电检测电路和掉电数据保存功能来实现。
下面是一种常见的单片机掉电检测电路和掉电数据保存方案:
单片机掉电检测电路通常由法拉电容实现。
法拉电容具有大容量、高储能的特性,能够储存足够多的电能。
在电源断电的情况下,法拉电容可以通过电荷泵电路等将电力输送给单片机,使其保持工作状态,并将数据保存在存储器中。
当电源恢复供电时,单片机将继续执行任务,并且可以从存储器中恢复掉电前保存的数据。
掉电数据保存方案通常采用数据备份和恢复机制。
在系统运行过程中,单片机可以定期将重要的数据备份到非易失性存储器中,如EEPROM、Flash等。
当电源断电时,单片机可以立即将剩余的数据写入存储器中,确保数据不会丢失。
当电源恢复供电时,单片机可以从存储器中恢复数据,确保数据的完整性。
另外,为了避免电源断电时对单片机的干扰,可以采用低功耗技术来降低单片机的工作电流,使其在断电时能够快速进入休眠状态。
同时,可以在单片机外部添加去抖动电路、滤波电路等抗干扰措施,以确保数据的准确性。
总的来说,掉电保存方案需要在硬件和软件方面进行全面设计和实现。
硬件方面需要选择合适的法拉电容、非易失性存储器等器件,软件方面需要编写相应的掉电检测和数据备份程序,以确保系统在掉电时能够正确地保存数据并恢复工作状态。
单片机掉电检测电路与单片机掉电数据保存
摘要: 单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。
在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。
因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据存在在EEPROM 中。
为此,...
单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。
在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。
因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据存在在EEPROM 中。
为此,通常做法是在这些系统中加入单片机掉电检测电路与单片机掉电数据保存。
用法拉电容可从容实现单片机掉电检测与数据掉电保存。
电路见下图。
这里首先用6V 供电(如7806),为什幺用6V 不用5V 是显而易见的.电路中的二极管们一般都起两个作用,一是起钳位作用,钳去0.6V,保证使大多数51 系列的单片机都能在4.5V--5.5V 之间的标称工作电压下工作.而4.5-5.5 间这1V 电压在0.47F 电容的电荷流失时间就是我们将来在单片机掉电检测报警后我们可以规划的预警回旋时间。
二是利用单向导电性保证向储能电容0.47F/5.5V 单向冲电。
两只47 欧电阻作用:第一,对单片机供电限流。
一般地单片机电源直接接。
单片机掉电保护总结Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM 不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOSRAM。
CMOS 型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMSRAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
单片机的空闲模式与掉电模式首先,我们来介绍一下单片机的空闲模式。
空闲模式是指单片机在没有接收到外部处理请求时停止运行主程序,转入一种低功耗模式。
在空闲模式中,单片机可以关闭一些不必要的模块、外设和时钟源,以达到最低功耗状态。
同时,虽然主程序停止运行,但空闲模式下,单片机仍能继续监测并执行中断服务程序,以确保在有需要时能立即响应外部处理请求。
空闲模式可以有效降低功耗,延长电池寿命,减少能源消耗。
接下来,我们来介绍一下单片机的掉电模式。
掉电模式是指单片机完全关闭或部分关闭,并停止运行主程序和中断服务程序。
在掉电模式下,单片机的工作状态处于最低功耗状态,只保持最基本的功能,以极低的功耗维持芯片的存储数据等必要功能。
单片机的掉电模式分为多个级别,不同级别的掉电模式将关闭不同的模块和外设,实现不同程度的功耗降低。
通过选择合适的掉电模式,可以在保证基本功能的同时,实现最小功耗的芯片工作状态。
在单片机的掉电模式中,可以通过外部中断、看门狗定时器或RTC(实时时钟)来唤醒单片机,以便在有需求时重新启动芯片,恢复正常工作。
这样既保证了低功耗,又能满足外部处理请求的及时响应。
掉电模式与空闲模式相比,功耗更低,但需要更长的启动时间。
因此,在实际应用中,需要根据实际需求和性能要求选择合适的模式。
总结起来,单片机的空闲模式与掉电模式都是为了实现节能和低功耗设计的。
空闲模式通过停止主程序的运行,关闭不必要的模块和外设,降低功耗,延长电池寿命。
掉电模式进一步降低功耗,通过部分或完全关闭芯片,只保持基本存储数据和最低功耗功能,实现极低功耗状态。
这两种模式都可以通过外部触发唤醒信号来重新启动芯片,以满足外部处理请求的需求。
在实际应用中,根据需求和性能要求选择合适的模式,以实现最佳的节能效果。
在掉电瞬间将数据存入E2PROM的方法在掉电瞬间将数据存入E2PROM的方法在单片机的应用中,一些需要高速处理且掉电后需要保存的数据多放在单片机片内RAM中,采用备用电池保存RAM中的数据。
备用电池使用期限有限,存储的数据易受干扰,可靠性低。
将数据存在E2PROM中可靠性较高。
如果数据量较小(10个字节以内),则可采用在掉电瞬间靠电容储能将需要保存的数据存入E2PROM的方法。
在单片机系统中,常用X25045来存储数据。
89C2051和X25045的耗电量都比较低,当稳压电源的滤波电容在3000μF以上时,一检测到掉电立即关掉耗电量较大的输出,则电容的储能可以保证单片机在系统掉电后继续工作40ms以上。
X25045的存储时间为2ms/字节,50Hz交流电压掉电可在20ms内检测到,因此可以将10个字节的数据存入X25045。
这样,在单片机的正常运行期间数据存储在内部RAM中,存取速度快,掉电后数据存入E2PROM中,数据保存的可靠性高,系统电路简单、成本低1.硬件电路及原理由于电容的储能只能保证单片机在掉电后40ms内正常工作,掉电检测电路必须在尽可能短的时间内准确地检测到掉电。
将50Hz的交流电压转换为50Hz占空比约为50%的脉冲信号,单片机检测50Hz脉冲,如果脉冲停止则判断为掉电,立即转入掉电处理程序。
硬件电路如图1所示。
220V交流电经过变压器TI,输出9V交流电,通过1kΩ电阻R2接到光耦D1的输入端。
当交流电正半周A、B两点间的电压大于光耦的导通电压时,光耦导通,经过74LS14整形反相后输出一个高电平到单片机;当A、B两点间的电压小于光耦的导通电压时,74LS14输出一个低电平到单片机,输入到单片机的是一个占空比略小于50%的脉冲信号,高电平的脉冲宽度在5~10ms之间。
将扫描周期定为5ms,可以保证用最短的时间准确地检测到掉电(如图2所示)。
单片机每隔5ms读入一次I/O口的状态,如果连续四次都为低电平,则判为掉电,转入掉电处理子程序。
单片机掉电检测与保存
单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。
在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。
因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据存在在EEPROM中。
为此,通常做法是在这些系统中加入单片机掉电检测电路与单片机掉电数据保存。
用法拉电容可从容实现单片机掉电检测与数据掉电保存。
电路见下图。
这里首先用6V供电(如7806),为什幺用6V不用5V是显而易见的。
电路中的二极管们一般都起两个作用,一是起钳位作用,钳去0.6V,保证使大多数51系列的单片机都能在4.5V--5.5V之间的标称工作电压下工作。
而4.5-5.5间这1V电压在0.47F电容的电荷流失时间就是我们将来在单片机掉电检测报警后我们可以规划的预警回旋时间。
二是利用单向导电性保证向储能电容0.47F/5.5V单向冲电。
两只47欧电阻作用:第一,对单片机供电限流。
一般地单片机电源直接接7805上,这是个不保险的做法,为什幺?因为7805可提供高达2A的供电电流,异常时足够把单片机芯片内部烧毁。
有这个47欧姆电阻保护,即使把芯片或者极性插反也不会烧单片机和三端稳压器,但这个电阻也不能太。