Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在考虑为我的微控制器购买一个外部EEPROM存储模块。但是,它只有 32 KB 的存储容量。
我用它来存储记录,其中每条记录基本上是 4 个独立的数字,范围在 0 到 180 之间。
您认为 32 KB 可以处理多少条记录?
单个记录是一系列181^4可能元素中的一个元素,其信息熵为log(181^4)/log(2) = 29.999 bits. 因此,您可以通过一些努力将一个元素编码为 30 位。
181^4
log(181^4)/log(2) = 29.999 bits
这意味着您有floor(32 * 1024 * 8 / 30) = 8738可以存储的元素。如果您选择使用 32 位(4 个字节)进行编码以显着简化编码逻辑,那么它就是32 * 1024 * 8 / 32 = 8192元素。
floor(32 * 1024 * 8 / 30) = 8738
32 * 1024 * 8 / 32 = 8192
此分析不计算元数据的任何额外开销,例如有效性位或指示哪个元素是最新的标志等。
除了您可以为 EEPROM 中的每条记录使用 4 个字节存储 8k 个元素之外,您是否考虑过使用SD卡而不是 EEPROM?Arduino有相当便宜的 SD 卡扩展板,此外,SD 卡非常便宜,不会有任何空间问题。您可以通过SPI访问 SD 卡。