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

    文章

    7452

    浏览量

    163602
  • 系统数据
    +关注

    关注

    0

    文章

    8

    浏览量

    9188

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

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

收藏 人收藏

    评论

    相关推荐

    康谋分享 | 确保AD/ADAS系统的安全:避免数据泛滥的关键!

    如何实现数据的高效管理、解读和正确分析,以避免数据泛滥的不利影响?掌握好“指标与算法”和“全面可视化分析工具”两大关键要素,助力AD/ADAS系统开发、验证和改进过程!
    的头像 发表于 11-13 09:54 610次阅读
    康谋分享 | 确保AD/ADAS<b class='flag-5'>系统</b>的安全:<b class='flag-5'>避免</b><b class='flag-5'>数据</b>泛滥的关键!

    怎样才能避免LM3886损坏

    损坏。 A、过流损坏:虽有电流监测,可能是响应不够快; B、过压损坏:负载上残留的工频电压过高损坏。请问怎样才能避免LM3886
    发表于 09-06 06:31

    如何实现更精确的电流限制并避免损坏受测器件

    电子发烧友网站提供《如何实现更精确的电流限制并避免损坏受测器件.pdf》资料免费下载
    发表于 08-29 11:09 0次下载
    如何实现更精确的电流限制并<b class='flag-5'>避免</b><b class='flag-5'>损坏</b>受测器件

    ESP8266如何避免固件损坏

    我们需要在固件下载中采用强大的固件升级方法,我们知道在固件下载中有一个示例。 例子/at_upgrade.c 对于该示例,我们有一个问题: 如何避免损坏的bin文件? 因为如果恶意用户将损坏
    发表于 07-19 06:00

    ESP8266_RTOS3.0串口0传输大量数据包的原因?

    多个分段进入处理函数,后来使用example示例中的uart_echo,发现接收可以完整接收,但是当把数据原样从串口0的tx输出时,数据中间出现多次中断包。 我发现用系统自带的打印
    发表于 07-09 06:32

    串口通信的时候怎么避免包的情况?

    1.如何避免在中断里面执行长时间的操作 2.串口通信的时候怎么避免包的情况 3.串口通信为什么不可以一次发送1000bit或者10000bit 也就是说一帧数据为 一位起始位 100
    发表于 07-03 07:00

    esp32 udp broadcast包怎么避免

    esp32 udp broadcast
    发表于 06-17 06:05

    低功耗蓝牙模块轻松实现智能防

      低功耗蓝牙模块,作为集成蓝牙无线技术功能的PCBA板,主要用于短距离无线通讯,已经成为物联网无线传输发展的中坚力量。随着蓝牙技术不断更新换代,越来越多的智能可穿戴设备出现在我们的生活中,智能
    的头像 发表于 05-25 15:19 325次阅读

    模块电源使用时有哪些注意事项 避免过载、避免湿润环境、过热和损坏 注意接地等

    模块电源使用时有哪些注意事项 避免过载、避免湿润环境、过热和损坏 注意接地等 使用合适的电源适配器:根据设备的电压和电流要求,选择合适的电源适配器。使用过高
    的头像 发表于 03-27 09:22 383次阅读

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

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

    电源模块可以实现哪些功能 保护您的设备避免过载和短路!高效电源模块,稳定供电

    :根据电路设备的负载情况,调节输出电流的大小,以保证稳定的电源供应。 过载保护:当电路设备负载超过规定的上限,电源模块可以自动切断输出电源,以
    的头像 发表于 01-11 09:14 661次阅读

    网络包率正常范围及其影响因素

    网络包率正常范围及其影响因素 网络包率是评估网络性能和稳定性的重要指标之一。 一、网络包率的定义和测量方法 网络包率是指在数据传输过
    的头像 发表于 12-29 14:45 5671次阅读

    常见的网络包故障定位⽅法

    本期分享一个比较常见的⽹络问题--包。例如我们去ping⼀个⽹站,如果能ping通,且⽹站返回信息全⾯,则说明与⽹站服务器的通信是畅通的,如果ping不通,或者⽹站返回的信息不全等,则很可能是数据
    的头像 发表于 12-07 09:48 1675次阅读
    常见的网络<b class='flag-5'>丢</b>包故障定位⽅法

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

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

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

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