0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于存储器件掉电丢数据的2种解决方法以及法拉电容的UPS电路设计思路

h1654155971.7688 2018-01-22 14:04 次阅读

Nand-Flash/eMMC(带有Flash控制器的Nand-Flash)作为一种非线性宏单元模式存储器,为固态大容量存储的实现提供了廉价有效的解决方案。Nand-Flash存储器具有容量大,改写速度快等优点,适用于大量数据的存储,因而越来越广泛地应用在如嵌入式产品智能手机、云端存储资料库等业界各领域。

图1 Nand-Flash与eMMC芯片

存储器件使用寿命

使用了Nand-Flash的主板出现丢数据掉程序现象,是一个让无数工程师毛骨悚然的事故。眼看着程序用着用着就消失了,只能干着急也无法下手。有经验的工程师手起刀落换上一颗新物料,熬夜补代码继续撑过半个项目周期。回头无处发泄还要大刀阔斧换厂商、换品牌。虽说换几片Nand-Flash还能负担得起,但毕竟这是一个无底洞,不如去深入探明问题原因,不然散尽家财也无法弥补亏空。

器件数据手册中通常描述Nand-Flash的块擦写寿命达10万次,EMMC的块擦写最高也会有1万次;同理,EEPROMSD卡、CF卡、U盘、Flash硬盘等存储介质在都存在写寿命的问题。在文件系统向写数据的底层存储器块写数据时,常规会先将块里的数据读出来,擦除块干净后,将需要写入的数据和之前读出来的块数据一起再回写到存储器里面去,如果文件系统写平衡没有处理好,特别是要求1分钟以内要记录一次数据这样频繁的擦写块操作,就有可能将Nand-Flash或EMMC的块写坏。

存储器件掉电丢数据

文件系统向存储器写数据时,常规是先将块里的数据读出来,擦除块干净后,将需要写入的数据和之前读出来的块数据一起在回写到存储器里面去。如果设备在擦除块过程中或者在回写数据过程中意外发生断电甚至电压不稳定,均会造成数据丢失或者损坏。如果丢失的数据是文件系统的FAT表,则会造成文件系统崩溃。这就是引起系统程序无法启动灾难性后果的原因。

系统数据保护方案

很多时候,产品在未出厂前烧录程序、反复测试,无论怎样折腾也不会出现丢程序的情况。这可能的因素是测试设备保证了稳定的运行中电源输出,因此系统运行中正常的Flash保护机制是可靠执行的。

相对于用户实际使用而言,想避免Flash损坏的情况,需要严格遵守产品说明使用,尤其注意避免在Flash擦除或写入过程中人为地突然掉电。这是存储器件用法的一个大忌,即使完好的器件,如此不规范的使用也会大大缩短其寿命。而且不同环境下的电源系统五花八门,在电源不满足功率要求情况下程序对于电源低电量的检测阈值较低,此时强制启动系统或执行写操作更会加剧系统耗电波动,巨大的纹波也会引起CPU对存储的误操作。

解决此问题对于软件方面而言:

调试系统或现场使用时,建议使用软件复位,避免人为频繁的通过断电实现复位操作;有断电必要时,将打印信息添加如“系统加载完成”、“数据保存完毕”等指示说明后操作;

软件采取Flash均衡保存算法,高效地调整更改数据时擦除的Flash区域大小;

可将数据先写入内存或者铁电存储器,然后定期的再将数据搬移到大的存储器里面,减少直接断Nand-Flash、EMMC擦写次数;

在程序中加入或者提高电源电量检测的阈值,程序上保证所有电源系统下的芯片在此阈值上均可以正常工作。

读写过程中仔细对坏块表进行维护更新,避免程序写入坏块。读取数据时对ECC校验,确保读取数据无误。

硬件角度考虑需要注意:

用法上避免在Flash擦除或写入过程中人为突然掉电;

设计好处理控制核心的电源系统,防止CPU等在启动、运行中,电源系统因瞬时变化引起的纹波等情况;

搭配掉电检测电路,在检测到外部电源掉电的同时,及时迅速关闭文件系统,停止向文件系统内写数据的操作;

添加文件系统电源域UPS电源,乃至整机掉电续航工作电源;

对于使用EEPROM等小容量存储的用户而言,可以考虑使用高可靠性的铁电材料加工制成的铁电非易失性存储器FRAM来替换。FRAM可以像RAM一样快速读写。数据在掉电后可以保存10年,且其读写寿命高达100亿次,比EEPROM和其他非易失性记忆体系统可靠性更高,结构更简单,功耗低等优点。

图2 铁电材料非易失性存储器

下面简介一款基于法拉电容的UPS电路设计思路,要点如下:

由于电容存在个体差异,电容存储电荷的速率不一样,存在过充造成电压超过耐压值的问题,电路中存在多颗法拉电容时需要做均压处理;

为保证电容能够充满电能,源端需采用恒流源充电;

为维持电容电压稳定,并降低充电电路功耗,需增加过压检测电路;

若对电压高于法拉电容本身电压上限的电源系统提供掉电续航时,Vcc_backu端需通过BOOST升压电路后以实现,且注意系统正常时(充电过程中)关断EN脚。

基于存储器件掉电丢数据的2种解决方法以及法拉电容的UPS电路设计思路

图3 基于法拉电容的UPS核心电路

系统电源正常时,充电电路即给UPS充电。系统电源掉电时,UPS放电给系统提供备用电能,建议UPS在掉电后能持续给文件系统供电能力不低于10秒,在10秒续航期间内,系统可以将电源异常状态上报、及时保持临时重要数据、关闭文件系统,保证系统稳定性,避免文件系统在掉电情况下出现损害,影响应用程序的正常启动。

基于存储器件掉电丢数据的2种解决方法以及法拉电容的UPS电路设计思路

图4 建议UPS充放电时序

此外系统掉电情况需要掉电检测电路实现。使用一颗比较器器件即可,注意使用Output_VCC端供电,以确保外部掉电时,比较器仍然可以工作。比较器负端连接一个参考电压,参考电压由稳压二极管提供。正常供电时,比较器输出电压由升压电路的反馈端分压决定;掉电时,比较器输出低电平,此时处理器仍未掉电,收到状态信息可及时响应处理。另一路掉电检测可供其它功能使用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • UPS
    UPS
    +关注

    关注

    20

    文章

    1069

    浏览量

    91124
  • FlaSh
    +关注

    关注

    10

    文章

    1549

    浏览量

    146643
  • 存储器
    +关注

    关注

    38

    文章

    7144

    浏览量

    161978
  • 法拉电容
    +关注

    关注

    8

    文章

    121

    浏览量

    18452

原文标题:让嵌入式工程师毛骨悚然的掉电丢数据事故可以这样解决!

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于lm358单片机掉电保护电路设计

    电池,把掉电时需要保护的数据存储在非易失性存储器中,如FLASH和EEPROM。 第一种方法器件体积大、费用高并且蓄电池寿命短;第二种
    的头像 发表于 12-05 07:31 1w次阅读
    基于lm358单片机<b class='flag-5'>掉电</b>保护<b class='flag-5'>电路设计</b>

    铁电存储器的技术原理

    而言,铁电存储器具有一些独一无二的特性。传统的主流半导体存储器可以分为两类--易失性和非易失性。易失性的存储器包括静态存储器SRAM和动态存储器
    发表于 11-19 11:53

    铁电存储器的技术原理

    而言,铁电存储器具有一些独一无二的特性。传统的主流半导体存储器可以分为两类--易失性和非易失性。易失性的存储器包括静态存储器SRAM和动态存储器
    发表于 11-21 10:49

    法拉电容从容实现单片机掉电数据保存

    公式Q = I*t;Q = C*U;今天,因为MCU内部一般都带FLASH ROM和伴随着法拉电容的出现,事实上已经宣布背掉电电池或者用达拉斯DS存储器实现
    发表于 08-08 10:17

    让嵌入式工程师毛骨悚然的掉电数据事故可以这样解决!

    基于法拉电容UPS电路设计思路,要点如下:由于电容存在个体差异,
    发表于 12-28 16:40

    STM32F4掉电检测想加个法拉电容

    STM32F4掉电检测到后想存储一些数据,但是时间太短了,所以得加个法拉电容,不知道加多少合适,差不多50~100ms的时间。有参考
    发表于 03-18 08:17

    STM32系统中的2种数据掉电保护方法

    STM32系统中的2种数据掉电保护方法!在嵌入式设备开发中,往往需要保存一些掉电不易失性的数据
    发表于 04-17 15:16

    避免存储器件掉电数据,我们要怎么做?

    记忆体系统可靠性更高,结构更简单,功耗低等优点。图 2 铁电材料非易失性存储器下面简介一款基于法拉电容UPS
    发表于 09-16 10:58

    几种掉电数据存储设备的区别

    首先谈一下几种掉电数据存储设备的区别:1.Norflash:可擦写,贵,在Norflash上可以直接运行代码!2.Nandflash:
    发表于 11-03 07:02

    FPGA零基础学习:半导体存储器和可编程逻辑器件简介

    应用,这种快乐试试你就会懂的。话不多说,上货。半导体存储器和可编程逻辑器件简介半导体存储器是一存储大量二值信息的半导体
    发表于 02-23 15:24

    M058S单片机掉电保存数据问题求解

    想请教一下关于新塘单片机(M058S)掉电保存数据问题。其实应该就是掉电存储数据的问题了。主要是涉及到硬件上的问题:目前
    发表于 06-20 06:33

    RAM掉电保护电路的设计

    摘要:本文介绍了在单片机应用领域中RAM读写存储器数据掉电时的三种保护方法及相应的设计电路和软件设计
    发表于 05-31 09:47 29次下载

    单片机掉电检测与保存

    本文主要介绍了单片机掉电检测与保存方法,单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的
    发表于 01-14 11:51 9037次阅读
    单片机<b class='flag-5'>掉电</b>检测与保存

    一款基于法拉电容UPS电路设计思路

    您是否有遇到使用中的程序无故丢失?产品调试非常稳定,布置到现场后频繁系统崩溃和数据遗失,亦或产品应用一年后批量涌现存储器件损坏?本文将深入探明这些问题的原因及提供参考解决方案。
    的头像 发表于 01-15 09:06 8609次阅读

    什么是法拉电容法拉电容的作用是什么?

    说起电容器很多人或多或少都知道是什么东西,但是提到法拉电容可能就有少许陌生。其实在咱们的日常生活中,法拉电容也非常常见,比如说:计算机
    的头像 发表于 12-14 15:56 7517次阅读
    什么是<b class='flag-5'>法拉</b><b class='flag-5'>电容</b>?<b class='flag-5'>法拉</b><b class='flag-5'>电容</b>的作用是什么?