描述
掉电保护简介
掉电数据保护是系统设备的重要功能。
目前,有两种方法可以保护掉电数据:
(1)增加足够容量的备用电池,使系统在断电后继续工作;
(2)不加备用电池,在非易失性存储器中存储掉电时需要保护的数据,如FLASH和EEPROM。
第一种方法是设备体积大、成本高、电池寿命短;第二种方法很简单,但擦拭设备的寿命有限。本文在第二种方法的基础上提出了一种改进方法,即使用LM358作为电压比较器,在检测到系统断电时,将数据写入EEPROM中间。该方法不仅实现了系统数据断电的保护,而且延长了EEPROM的寿命。
基于LM358单片机脱电保护电路设计
如图1所示,通过调整R当系统正常供电时,Ua》Ub=3.5V,c端输出高电平;当系统断电时,由于二极管D1的隔离,使LM358无法供电。因为电容C2.电感L的存在,电容C2和电感L1由于下拉电阻,继续为单片机提供短暂的电源R5的存在使c端输出低电平。用于触发单片机INT0中断。
根据STC12C5A60S2系列单片机数据,对EEPROM写字节和擦除扇区所需的时间是55μs和21ms。正常模式下,典型功耗为2mA-7mA。5V单片机和3.3V单片机对EEPROM有效的最低电压分别为Umin=3.7V和Umin=2.4V。
系统断电后,等效电路模型为RLC串联电路。放电过程中电路的微分方程为:
根据R、L和C的参数值的不同,可分为欠阻尼振荡状态、临界阻尼状态、过阻尼状态。上面的方程可分为以下三种:
综上所述:当负载R确定时,选择合适的电容和电感(本文选择C 2 =6600uf/25V、L 1 =0.1H)。L 1 和C 2 可通过试验测试获得具体参数。只要u c (t)从初始状态u c (t)| t=0 衰减到u c (t)| t=t0 =U min 维持触发中断的时间大于维持触发中断EEPROM操作所需的时间t0能满足系统正常工作的要求。
单片机软件设计
主程序和中断服务子程序流程图如下图2和图3所示。
图2:主程序
图3:中断服务子程序
与本设计相关的程序如下:
void main(void)
{
??
Byte_Read(Address);
While(1)
{??}
}
void INT0_int()interrupt 0
{
Sector_Erase(Address);
Byte_Program(Address,Date);
Delay(XX); ///延迟,确保系统可靠
}
分析:系统掉电时,INT在中断服务子函数中,0中断被触发EEPROM擦除和写作。
总结
该系统的实现应用于二维运动控制平台。当系统断电时,X写入轴、Y轴坐标等参数EEPROM中间。系统重新上电后,读取并存储EEPROM工作平台以X轴、Y轴坐标等参数为起点,继续沿原设定位置移动。
本文的核心是基于LM358作为电压比较器,在检测到系统断电之前是正确的EEPROM擦写避免了每次执行程序EEPROM擦拭一次,导致寿命短。软硬件结构设计简单,提高了系统的实用性。
本文提供了具有良好可移植性的典型应用程序。添加循环语句可以存储多个数据EEPROM或从EEPROM里读出。
打开APP阅读更多精彩内容
点击阅读全文