以32kb为单位的记录数



我正在考虑为我的微控制器购买外部EEPROM存储模块。但是,它只有32kb的存储容量。

我用它来存储记录,其中每个记录基本上是4个独立的数字,范围在0 - 180之间。

你认为32kb可以处理多少记录?

单个记录是181^4个可能元素范围中的一个元素,给出log(181^4)/log(2) = 29.999 bits的信息熵。因此,您可以通过一些努力,将一个元素编码为30位。

这意味着您可以存储floor(32 * 1024 * 8 / 30) = 8738元素。如果您选择使用32位(4字节)进行编码,以显著简化编码逻辑,那么它是32 * 1024 * 8 / 32 = 8192元素。

此分析不计算元数据的任何额外开销,例如有效性位,或指示哪个元素是最新的标志,等等。

除了您可以在EEPROM中为每个记录使用4字节存储8k元素的事实之外,您是否考虑过使用SD卡而不是EEPROM?Arduino有相当便宜的SD卡屏蔽,此外,SD卡非常便宜,你不会有任何空间问题。可以通过SPI访问SD卡

相关内容

  • 没有找到相关文章

最新更新