0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于LM358电压比较器+STC12C5A60S2单片机实现数据掉电保护设计方案

基于LM358电压比较器+STC12C5A60S2单片机实现数据掉电保护设计方案

来源: elecfans
2021-12-02
类别:工业控制
eye 56
文章创建人 拍明

原标题:基于LM358电压比较器实现数据掉电保护设计方案

  在单片机系统中为了防止突然掉电而造成数据丢失,一般需要把重要的数据存储在EEPROM中。由于EEPROM擦写寿命有限,故不宜程序每执行一遍,对其擦除一次。本设计提出了一种以LM358为电压比较器,当检测到系统掉电时才对EEPROM进行擦写的掉电保护系统,并设计了硬件电路,开发了相应的软件。利用该系统不仅实现了数据掉电的保护,而且延长了EEPROM的使用寿命。

  1.掉电保护简介

  掉电数据保护是系统设备一个重要的功能。是指在掉电时,所有的数据将一直保存在磁盘上,直到重构完成后才删除。当此项设置为可用时,在重构过程中(非重建),这样如果在重构过程中发生掉电,将不会发生数据丢失的危险情况。指在正常供电电源掉电时,迅速用备用直流电源供电,以保证在一段时间内信息不会丢失,当主电源恢复供电时,又自动切换为主电源供电。

  目前,掉电数据保护的方法主要有2种:

  (1)加足够容量备用蓄电池,使系统掉电后继续工作;

  (2)不加备用电池,把掉电时需要保护的数据存储在非易失性存储器中,如FLASH和EEPROM。

  第一种方法器件体积大、费用高并且蓄电池寿命短;第二种方法简单,但擦写器件的寿命有限。本文在第二种的基础上提出一种改进方法,即利用LM358作为电压比较器,当检测到系统掉电时才将数据写入EEPROM中。该方法不仅实现了系统数据掉电的保护,而且延长了EEPROM的寿命。

  2.电路设计

  

o4YBAGAXz3-AbVE6AAFxD7IYinc278.png


  图1 掉电保护电路原理图

  如图1,通过调节R2,使系统正常供电时,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就能满足系统正常工作的要求。

  3.单片机软件设计

  主程序和中断服务子程序流程图分别如下图2和图3所示。

  

pIYBAGAXz4WAZzcPAABGrmDPej0813.png


  图2 主程序

  

o4YBAGAXz42AbzoQAABYU_wY1Bs631.png


  图3 中断服务子程序

  与本设计有关的程序如下:

  void main(void)

  {

  ??

  Byte_Read(Address);

  While(1)

  {??}

  }

  void INT0_int()interrupt 0

  {

  Sector_Erase(Address);

  Byte_Program(Address,Date);

  Delay(XX); //延时,确保系统可靠

  }

  分析:系统掉电时,INT0中断被触发,在中断服务子函数中对EEPROM进行擦除和写的操作。

  总结

  该系统的实现,应用于二维运动控制平台。系统掉电时,X轴和Y轴坐标以及其他参数被写入EEPROM中。系统重新上电后,读取出存储在EEPROM里X轴和Y轴坐标及其他参数,工作平台以该位置为起点继续沿着原设定的位置运动。本文的核心就是基于LM358作为电压比较器,检测到系统掉电时才对EEPROM进行擦写,避免了每执行一遍程序对EEPROM进行擦除一次而造成其寿命短的问题。软、硬件结构设计简单,提高了系统的实用性。并且本文给出了典型的应用程序,具有良好的可移植性。加入循环语句可以把多个数据存EEPROM或从EEPROM里读出。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案