擦写一万次就到寿:工业MCU掉电保存该用Flash模拟还是FRAM

2026-08-31 09:23:43

核心要点

  • 工业设备要在断电瞬间保住产量计数、工艺配方与故障记录,能不能保住取决于存储介质的写入寿命和单次写入时间,而不是MCU主频。选错介质的典型后果是设备用满一年后开始随机丢参数,现场表现为配方回到出厂值。
  • 主流MCU内部Flash的擦写寿命通常标注为一万次到十万次,按每分钟保存一次计算,一年就会产生约五十二万次写入,远超标称寿命。凡是按分钟级频率保存的数据,都不应该直接落在内部Flash上。
  • 外挂串行EEPROM的擦写寿命一般在一百万次到四百万次量级,页写周期约五毫秒;FRAM(Ferroelectric RAM,铁电存储器)擦写寿命可达十的十三次方量级,单字节写入时间在纳秒到百纳秒量级,断电瞬间写入几乎不需要维持时间。
  • 断电保存能否成功,本质是一道电容算术题:维持时间 t 约等于电容量 C 乘以可用电压降 ΔV 再除以负载电流 I。写入越慢、负载电流越大,需要的储能电容就越大,而电解电容的寿命本身又受温度限制。
  • 落地建议:按数据的更新频率而不是重要性分级,高频计数类数据放FRAM或带掉电保护的专用器件,低频配方类数据放EEPROM或Flash模拟方案,并且一律配双备份加校验,不要只写一份。
  • 什么是Flash模拟EEPROM

    Flash模拟EEPROM(EEPROM Emulation) 是用MCU片上Flash的两个或多个扇区轮转记录数据、在软件层模拟出按字节可改写行为的技术方案,芯片厂商通常以中间件库形式提供。它与真正的 EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器) 的差别在于:EEPROM可按字节直接改写,而Flash只能按页写、按扇区擦,模拟方案必须靠追加写入加磨损均衡来回避擦除限制。FRAM 则以铁电材料的极化方向存储数据,读写对称、无需擦除动作,写入功耗和时间都远低于Flash。

    三类介质怎么选

    介质典型擦写寿命单次写入时间容量与成本断电写入安全性
    MCU内部Flash模拟一万到十万次页写毫秒级免外挂,成本最低差,需大电容兜底
    串行EEPROM一百万到四百万次页写约5ms几KB到几百KB,成本低一般,需检测掉电
    FRAM十的十三次方量级纳秒到百纳秒几KB到数MB,单价高好,几乎无需维持
    带电池后备SRAM无写入寿命限制纳秒级受RTC域容量限制好,但电池需维护
    NOR Flash外挂十万次量级页写毫秒级容量大,成本中差,适合日志不适合计数
  • 看更新频率而不是看重要性:配方参数一年改十次,放哪儿都行;产量计数每分钟写一次,只有FRAM或后备SRAM扛得住。
  • 看写入时间而不是看读取速度:断电场景里决定成败的是把最后一笔数据写完需要多少毫秒。
  • 看温度而不是看常温指标:Flash的数据保持年限随温度显著缩短,85℃以上的场合要单独核对数据手册里的保持特性曲线。
  • 断电维持时间怎么算

  • 先算电流:断电瞬间只需要MCU和存储器工作,应先关断继电器、通信收发器与背光,把负载电流从数百毫安压到十几毫安级。
  • 再算电压窗口:可用电压降是母线电容电压从掉电检测阈值降到MCU最低工作电压之间的差值,通常只有一到三伏可用,不是整个二十四伏。
  • 代入公式:按 t 约等于 C 乘 ΔV 除以 I 计算,例如四百七十微法电容、两伏可用降幅、二十毫安负载,理论维持时间约四十七毫秒,只够写入不到十页EEPROM。
  • 留裕量:电解电容容量随寿命衰减,设计阶段应按标称容量的百分之七十核算,并按最高环境温度选105℃长寿命规格。
  • 验证方法:用可编程电源做上千次随机时刻断电测试,统计参数丢失次数,而不是手工拔几次插头就算通过。
  • 为什么Flash模拟方案会丢数据

  • 写入被中途截断:页写过程中掉电会留下一页半写状态,重启后校验不通过,若没有双备份就只能回退到出厂值。
  • 磨损均衡失效:中间件的轮转策略依赖扇区头部标记,标记写入本身也可能被掉电打断,处理不当会导致整个扇区判定为无效。
  • 擦除耗时被低估:扇区擦除通常需要数十到数百毫秒,远长于页写,一旦掉电落在擦除窗口内,风险最高。应把擦除动作安排在设备正常运行且供电稳定时主动触发。
  • 写入次数统计缺失:许多项目从不统计实际写入次数,等到现场批量故障才发现某个变量被每秒写一次。建议在固件里加写入计数器,用调试接口可读。
  • 校验方式偷懒:只判断非零或非全FF不算校验,应对每条记录加CRC并保存双份,读取时按版本号取较新且校验通过的一份。
  • 常见问题(FAQ)

    问:把保存频率降低,内部Flash是不是就够用了?

    答:多数场合够用,但要算清总量。以十万次寿命、每小时保存一次计算,理论可用约十一年,符合设备生命周期;若每分钟保存一次则不到三个月。降低频率的常见做法是数据在RAM中累加、仅在掉电检测触发或班次结束时落盘,这样既省寿命又减少掉电撞上写入窗口的概率。

    问:FRAM单价高,值不值得为它改板?

    答:如果保存频率高于每分钟一次,或者维持电容已经被迫做到毫法级,FRAM的物料增加往往比加大电容加长测试更划算。判断口径是把三年内的现场返修成本折进来:一次上门排查参数丢失的成本,通常高于整批设备的FRAM差价。

    问:MCU的RTC后备域SRAM能不能直接当掉电存储用?

    答:可以存少量关键数据,但有两个限制。一是容量通常只有几十到几百字节,二是需要纽扣电池或超级电容供电,电池在低温环境下容量下降明显,且属于需要维护的耗材。工业设备若不希望产生更换电池的售后动作,应优先选FRAM。

    问:换用国产MCU后,原厂的EEPROM模拟库能直接移植吗?

    答:不能假设可以。库的实现与Flash扇区结构、擦写时序、写保护寄存器强相关,即使外设寄存器兼容,扇区大小与擦除时间往往不同。移植时必须重新核对扇区划分、重新做掉电写入测试,并确认库是否支持双备份与磨损均衡这两项功能。

    问:怎么判断现场故障是掉电丢数据还是程序覆盖?

    答:看丢失的范围与规律。掉电丢失通常是最近一次写入的记录损坏、且伴随异常断电事件;程序覆盖往往是特定操作后必然复现、丢失范围固定。建议在每条记录里存写入时间戳与写入原因码,故障时直接读出记录序列就能分辨。

    选型与落地清单

  • 先给所有需要断电保存的变量列一张表,标明更新频率、容量与丢失后的后果,按频率而非重要性分配介质。
  • 每分钟级更新的计数与状态数据一律不落内部Flash,改用FRAM或后备域,Flash只承担低频配方与日志。
  • 所有掉电保存记录做双备份加CRC校验,附版本号与时间戳,读取时按较新且校验通过的一份恢复。
  • 按公式核算维持时间,电容容量按标称值的七成计算,并按最高环境温度选长寿命电容规格。
  • 掉电检测阈值要留出足够电压窗口,检测中断服务程序里第一步是关断大电流负载。
  • 扇区擦除动作安排在供电稳定的运行时段主动执行,禁止在掉电流程中触发擦除。
  • 固件内置写入次数统计,出厂前用调试接口抽查实际写入频率是否与设计一致。
  • 用可编程电源做上千次随机时刻断电测试并统计丢失率,把测试记录列入设计评审必要材料。
  • 推荐阅读

    多台电机共驱动一个负载,开环各自调速必然出现负载分配不均,一台过载一台轻载。根治办法是转矩主从:一台做速度主、其余做转矩从,共用转矩给定,稳态电流差压到5到8个百分点以内才算过关。
    入网时间:2026-08-31 09:13:19
    除尘器把粉尘浓缩到爆炸下限以上,是车间高风险点。本文按五要素逐项给出破坏手段,讲清抑制泄放隔离三类措施的定位。
    入网时间:2026-08-30 09:22:52
    视觉引导抓取误差来自五个环节逐级叠加。本文列出误差量级与可消除性,讲清标定姿态选取与端到端验证方法。
    入网时间:2026-08-30 09:22:44
    异常工况判断失误常源于画面视觉噪声过高。本文给出六条设计红线与四层导航划分,用异常处置时间量化改造效果。
    入网时间:2026-08-30 09:22:37
    相似定律只在系统曲线过原点时成立。本文指出静扬程、工况分布与效率变化三类高估来源,给出先测后算的评估步骤。
    入网时间:2026-08-30 09:22:30