存储非常少量数据的最佳方法?

电器工程 记忆 eeprom 数据 贮存
2022-01-19 12:13:51

我目前正在构建一个辅助项目,我希望能够存储和检索非常少量的数据(最多 10 kB)。如果电源断开,我希望能够保留数据。我知道 EEPROM,但是,我注意到您可以更新 EEPROM 数据的数量是有限的。我很想拥有只存储 10 kB 数据的 HDD/SSD,但我在市场上找不到。如果我只想存储 10kB 的数据,你会建议我做什么?我不想花额外的钱购买大量我不会使用的存储空间。我需要能够每小时多次更新数据,所以我希望 EEPROM 变得无用(我对这些东西不熟悉,所以不能 100% 确定)。

你知道我可以在哪些地方获得只有 10 kB 数据的 HDD/SDD?

4个回答

我个人使用 FRAM,它很容易使用,几美元就可以得到 32K x 8。它像 EEPROM 模块一样工作,但没有延迟或读写限制。这些可以在 3.3 和 5V 的 3/4" x 1.25" 的 Arduino 模块上购买。

根据 Cypres 数据表:“CY15X102QN 能够支持 10^15 个读/写周期,或比 EEPROM 多 10 亿倍的写周期。” 查看数据表,还有很多与维基百科不一致的信息。

我需要能够每小时多次更新数据,所以我希望 EEPROM 变得无用

实际上......这不是100%正确的。

检查您的 EEPROM 数据表。对于一个非常基本和常见的 EEPROM(例如,我检查了Microchip 24LC256),您至少有 100 万次写入/擦除周期。

如果您 24/7 每小时写入 10 次,您每年将有 10 * 24 * 365 次写入,大约在 11 年半内达到 100 万次写入。

如果你想扩展它怎么办?好吧,你循环遍历内存的不同区域。例如,您使用 1Mbit (125kB) 内存,并循环通过 12 个不同的区域。您使用区域的第一个字节作为写入计数器(这样您就知道最后一个值存储在哪里以及下一个值存储在哪里),然后获得至少 132 年的记录。

因此,基本上,如果您每分钟最多写入一次,EEPROM 将持续一生。如果您想要更长的存储空间,您可以切换技术(例如 FRAM,正如其他人建议的那样,或 FLASH,写入次数较少但内存量很大,因此您可以循环多个区域),或者您可以切换算法(例如保存RAM 中的所有内容,然后每小时或关闭一次转储到永久内存,如果您有可靠的方法在关机前快速转储所有内容)

只需选择一个更大的 EEPROM,然后按顺序写入。

假设您有一个 EEPROM 系列可以承受 10000 次写入/擦除周期,而您需要 100 倍以上。然后从同一个系列中选择一个 1 MB 的 EEPROM,每次需要写入时,使用下一个未使用的 10 KB,而不是擦除整个芯片。仅在整个 1 MB 已满时才擦除。每 100 次写入,您将得到一个擦除周期。

如果您的最新数据损坏,这种方法具有从旧数据副本恢复的额外好处。

另请注意,少量的写入/擦除周期通常与较长的数据保留时间(例如 10 年)一起指定。如果您至少每月覆盖一次数据,那么 10000 次循环的 EEPROM 实际上可能支持 100000 次写入。

使用基本上是不同技术的 EEPROM 的 MRAM。无限写入。

还有几乎无限写入的 FRAM。我认为大约有万亿次写入。不是无限的,但你可以每秒写 1000 次,持续 32 年。编辑:我注意到 FRAM 也具有破坏性读取,因此必须将读取和写入计入耐力。尽管如此,大约一万亿的数量还是很多。它实际上更多,我只是不知道我的头顶上有多少万亿。

机械硬盘是唯一具有无限写入但又大又重且机械的东西。

SSD 违反了您无限耐用的标准。SSD 只是闪存,其耐用性甚至不如 EEPROM。

机械 HDD 和 SSD 都需要认真设计,因为大多数都是通过操作系统与 PC 主板连接的。