Свежие обсуждения
Микроконтроллеры

Intel MCS 51 - интегрирование больших объемов информации

1 3

Здравствуйте !

Вот хочу использовать такой контроллер, для счетчика эл. энергии ... задачи - считать импульсы с порта, тут понятно - используем допустим таймер, поделить значения на коэфф. счетчика (а моем случае 100 импульсов 1 кВт/ч) тут уже начинаются проблемы ... Во сама суть вопроса:
Данные надо интегрировать и если использовать память контроллера рано или поздно она кончится, если использовать внешнюю память, как можно реализовать интегрирование там ?

 

Ув lex, что Вы понимаете под словом "интегрирование"? Накопление? Есть серия AT45DBxxx флэшек с последовательным интерфейсом емкостью до 64 МБит. Стоимость - менее 100руб. Если интегрирование - это что-то другое, то что именно? И какие проблемы возникают насчет "поделить на 100"? Алгоритмы деления известны десятки лет

 

Интересно, а сколько памяти у Вашего Intel MCS 51, и какие значения вы собираетесь там хранить?

 

У обычных 8051 128 байт "прямо"-адресуемой памяти и столько же косвенно, через указатель. Потом добавили памяти, адресуемой уже через 16-битный указатель... Тут уже есть варианты. Обычно через этот же указатель адресуется и внешняя память... Которой соответственно не больше 64 Кб получается (без переключения банков).

А зачем Вам интегрирование, кстати? Не совсем представляю, что будет после интегрирования КВт/час... Если Вам надо просто считать кол-во энергии, так это должно проще реализовываться...

 

Интегрирование тут - накапливание.
Я не работал с внешней памятью да и с контроллером этим собо тоже, делали в универе таймер давным давно )

chav1961 : проблемы могут быть из-за нецелых чисел, тоесть одной командой DIV тут не обойтись, надо еще учитывать остаток... но способы есть, я думаю разберусь с этим. Если кто может направить где копать буду рад
Спасибо про память.

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

AlexAlcoa: ПЗУ - 4 Кб

 

lex: это 6600 импульсов
импульсов в час.

все будет определятся с какой временной выборкой Вы желаете хранить статистику.
и хранение статистики за несколько лет внутри контроллера - ИМНО - маловероятно.
chav1961: Есть серия AT45DBxxx флэшек с последовательным интерфейсом емкостью до 64 МБит.
самое оно.

Обратите внимание на возможность записи-переноса статистики на извлекаемую флешку для переноса на РС, либо RS232 \ USB порт.

 

А EEPROM сколько? (чтобы сохранять значение в энергонезависимой памяти).
Если точность счетчика = 1квт (т.е. импульсы / 100) и организовать в RAM счетчик глубиной даже в 4-е байта (останется еще 124 ячейки) то он сможет накопить максимальное значение = 4.294.967.296 кВт, а если счетчик глубиной 8,9,10... байт, думаю за всю жизнь ему не досчитать В других ячейках можно считать потребление за сутки, недели, месяцы, годы, и т.д.

 

Cheeeper: мгновенно, 6600 импульсов при максимальной нагрузке.

"Обратите внимание на возможность записи-переноса статистики на извлекаемую флешку для переноса на РС, либо RS232 \ USB порт."
Согласен это все нужные вещи.

AlexAlcoa: 4Kb EEPROM
С ваших слов получается что можно обойтись контроллером одним ?
Регистры общего назначения все 8 битные тоесть максимум 1111 1111 что = 255 в десятичной.

 

Попробуйте ADUC8xx от analog.com там есть апноут - счетчик электроэнергии
и у microchip.com тоже есть такой апноут.

 

Если Вам нужна статистика "по дням" это 365*4 = 1460 байт... Влазит в EEPROM 24сXX от Atmel. Если по оконцанию месяца можно всю статстику сводить в "потребление за месяц" то еще меньше. На несколько лет хватит. Есть смысл посмотреть на eeprom со встроенными часами. Есть такие. Позже могу узнать название.

По поводу деления, если будете использовать Си, а не асм, то особо сложного не будет. Используете обычный float и все. Точности должно хватить.