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

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

3天内不再提示

怎么避免现场设备系统损坏或丢数据

AGk5_ZLG_zhiyua 来源:ZLG致远电子 作者:ZLG致远电子 2020-09-15 14:45 次阅读

记录数据的可靠性,通常只考虑到突然掉电、写入不完全等,往往忽略了存储器件的使用寿命。存储器件的擦除次数寿命是行业公认的客观事实,工程师只能尽量的符合器件使用规范,以免过快损耗擦写寿命。

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_backup端需通过BOOST升压电路后以实现,且注意系统正常时(充电过程中)关断EN脚。

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

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

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

图5 系统掉电检测电路 工业品质稳定可靠ARM内核核心板、开发板、工控机等领域,M6708核心板、M/A335x核心板、M/A28x核心板、EPC系列工控主板、IoT系列无线主板/网关、DCP系列经典工控机等产品中,核心板产品针对Nand-Flash有着完善的坏块管理、工控主板添加掉电保护等措施。例如在Linux系统下加固Flash驱动、对操作系统进行双备份;软件与硬件信号测试对Flash进行10万次掉电试验等。 同时,致远电子配备专业的EMC实验室、安规实验室、环境实验室等可实际模拟恶劣应用状况试验。结合优质供应商保证各产品分立器件均达到EMC工业三级标准,有良好的静电抗性、雷击浪涌抗性、电瞬变群脉冲抗性、以及极低的EMI传导骚扰情况;可实现-40℃~+85℃的工业级环境适应性。为从Flash至整套目标系统的可靠性安全稳定提供切实保障。

图6 DCP-1000L产品剖析图示

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

    关注

    38

    文章

    7151

    浏览量

    162016
  • 系统数据
    +关注

    关注

    0

    文章

    7

    浏览量

    9169

原文标题:如何避免现场设备系统损坏或丢数据?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ST25R3920B与qi无线充电一起使用时,如何避免NFC芯片损坏呢?

    ST25R3920B 需要轮询是否有NFC卡靠近,而qi无线充电需要寻找充电设备,并需要时充电。发现容易损坏NFC芯片,请问如何避免?是硬件上保护,还是软件上控制状态?
    发表于 03-19 06:08

    使用CYAPI中的xferdata函数接收数据时,存在数的情况是为什么?如何提高数据接收的速率呢?

    50ms,这样会导致在120MB/S发送数据时,存在数的情况,这个大概是什么原因导致的呢,有什么方法可以提高数据接收的速率呢,我们使用的固件是slavefifo。
    发表于 02-23 07:50

    专注数据采集分析系统研发 做设备与MES系统中转站

    设备的运行状态、产量数据、测量数据、能耗数据等。通过数据采集,MES系统可以实时监控
    发表于 12-01 17:09

    在恒流供电的串并联电路中,如何避免因某个LED损坏所引起的问题?

    在恒流供电的串并联电路中,如何避免因某个LED损坏所引起的问题? 在恒流供电的串并联电路中,由于每个LED的特性存在差异,可能会出现某个LED损坏而引起整个电路的问题。为了避免这种情况
    的头像 发表于 11-30 14:28 569次阅读

    AD8211容易损坏的原因?如何避免

    最高电压为21V的1A线性恒流电路中做高端采样,采样电阻0.1欧,AD8211供电5V。有时候负载断开再接入,AD8211会损坏,芯片发烫,已经烧掉好几片了,这种情况怎样避免??
    发表于 11-13 06:36

    如何避免晶体管损坏

    如何避免晶体管损坏? 晶体管是半导体器件的一种,应用广泛,可以在计算机、电视、手机等各种设备中使用。晶体管工作时非常稳定,但是如果不注意使用、维护,很容易损坏。下面为您介绍几种
    的头像 发表于 10-31 10:37 449次阅读

    stm32的硬件IIC如何避免数据?

    stm32的硬件IIC如何避免数据
    发表于 10-30 07:03

    AT32F407/437使用网口收发数据包问题处理

    AT32F407/437使用网口收发数据包问题处理AT32F407/437 在使用EMAC 网口进行以太网数据收发时,如果出现数据包,应
    发表于 10-23 08:19

    如何实现工业现场设备物联控制?

    工业现场设备的物联控制已经成为提高生产效率、降低运营成本、增强设备安全的关键手段。通过将物理设备与互联网连接起来,可以实现设备的远程监控、
    的头像 发表于 09-27 15:22 448次阅读

    怎样避免直线导轨损坏

    怎样避免直线导轨损坏
    的头像 发表于 09-13 17:46 642次阅读
    怎样<b class='flag-5'>避免</b>直线导轨<b class='flag-5'>损坏</b>?

    工业物联网之“设备数据采集与控制+大数据存储分析+APP无代码应用开发”

    转换、边缘数据处理三层;向上与工业互联网平台/工业应用系统对接;向下接入设备智能产品。数据采集的特点 具有连接性、
    发表于 08-07 20:53

    ST25R3920B与qi无线充电一起使用时如何避免NFC芯片损坏

    ST25R3920B 需要轮询是否有NFC卡靠近,而qi无线充电需要寻找充电设备,并需要时充电。发现容易损坏NFC芯片,请问如何避免?是硬件上保护,还是软件上控制状态?
    发表于 08-07 07:45

    M484的HSUSB设备口,ISO端点DMA操作下,测试数据如何解决?

    实现的是UVC摄像头设备,ISO端口通过DMA发送数据给主机。第一次DMA操作正常,第二次开始,就会数据了。
    发表于 06-19 07:39

    PCB板怎么避免损坏

    避免 PCB 板损坏的建议: 1. 避免过度弯曲或扭曲 PCB 板,因为这可能会导致 PCB 板的裂纹或断裂。 2. 避免 PCB 板过度受热,因为高温可能会导致 PCB 板的变形或烧
    的头像 发表于 06-13 18:52 1101次阅读

    LPC55S69 USB设备接收到损坏数据是怎么回事?

    我们需要一些帮助来解决 LPC55S69 上的 USB 数据损坏问题 (或者问题可能出在 i.MX8M Quad 上)。 我们正在构建一个系统,其中包括一个用作 USB 主机的 i.MX8M, 连接
    发表于 05-09 07:03