32 KB 中的记录数?
我正在考虑为我的微控制器购买外部 EEPROM 存储模块。不过,它的存储容量只有 32 KB。
我用它来存储记录,其中每个记录基本上是 4 个独立的数字,范围在 0 - 180 之间。
您认为 32 KB 可以处理多少条记录?
I am considering buying an external EEPROM storage module for my microcontroller. However, it only has 32 kilobytes storage capacity.
I'm using this to store records where each record is basically 4 separate numbers ranging between 0 - 180.
How many records do you think 32 kilobytes could handle?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
单个记录是
181^4
可能元素范围之外的元素,其信息熵为log(181^4)/log(2) = 29.999 位
。因此,您可以通过一些努力,将一个元素编码为 30 位。这意味着您可以存储
floor(32 * 1024 * 8 / 30) = 8738
个元素。如果您选择使用 32 位(4 字节)进行编码,以显着简化编码逻辑,则为32 * 1024 * 8 / 32 = 8192
元素。此分析不计算元数据的任何额外开销,例如有效性位或指示哪个元素是最新的标志等。
A single record is an element out of a range of
181^4
possible elements, giving an information entropy oflog(181^4)/log(2) = 29.999 bits
. So you can, with some effort, encode one element in 30 bits.This means you have
floor(32 * 1024 * 8 / 30) = 8738
elements you can store. If you choose to encode using 32 bits - 4 bytes - for a significant simplification in your encoding logic, then it's32 * 1024 * 8 / 32 = 8192
elements.This analysis does not count any additional overhead for metadata such as validity bits, or flags to indicate which element is the newest, etc.
除了可以在 EEPROM 中为每个记录使用 4 个字节来存储 8k 元素之外,您是否考虑过使用 SD 卡而不是 EEPROM?有相当便宜的 SD 卡 shields 可用于 Arduino,此外,还有 SD 卡非常便宜,而且不会有任何空间问题。您可以通过 SPI 访问 SD 卡。
Besides the fact that you can store 8k elements using 4 bytes for each record in the EEPROM, have you considered using an SD card instead of an EEPROM? There are quite cheap SD card shields available for the Arduino, and, in addition, SD cards are very cheap and you won't have any space problems. You can access the SD card by SPI.