Количество записей в 32 килобайта? - PullRequest
1 голос
/ 16 июля 2011

Я подумываю о покупке внешнего модуля памяти EEPROM для моего микроконтроллера.Однако он имеет только 32 килобайта памяти.

Я использую это для хранения записей, где каждая запись в основном состоит из 4 отдельных чисел в диапазоне от 0 до 180.32 килобайта могли справиться?

Ответы [ 2 ]

1 голос
/ 16 июля 2011

Одна запись - это элемент из диапазона 181^4 возможных элементов, что дает информационную энтропию log(181^4)/log(2) = 29.999 bits.Таким образом, вы можете с некоторым усилием закодировать один элемент в 30 битах.

Это означает, что у вас есть floor(32 * 1024 * 8 / 30) = 8738 элементов, которые вы можете сохранить.Если вы решите кодировать, используя 32 бита - 4 байта - для значительного упрощения вашей логики кодирования, тогда это будет 32 * 1024 * 8 / 32 = 8192 элементов.

В этом анализе не учитываются дополнительные издержки для метаданных, таких как биты достоверности илифлажки, указывающие, какой элемент является самым новым и т. д.

0 голосов
/ 16 июля 2011

Помимо того факта, что вы можете хранить 8k элементов, используя 4 байта для каждой записи в EEPROM, вы рассматривали возможность использования карты SD вместо EEPROM?Для Arduino доступны довольно дешевые SD-карты щиты , и, кроме того, SD-карты очень дешевы, и у вас не будет проблем с пространством.Вы можете получить доступ к SD-карте с помощью SPI .

...