Важнейшая задача, стоящая перед разработчиками автономных систем сбора данных Интернета вещей – сделать их экономичными настолько, насколько это возможно. Большинство изделий такого рода питаются либо от заменяемых батарей, либо от внешних источников – солнечных элементов, виброгенераторов и т.д. Батареи желательно менять как можно реже; обычный срок работы от одного комплекта батарей типичного устройства Интернета вещей – бытового счётчика тепла – составляет не менее года. Внешние же источники энергии крайне нестабильны и маломощны, что также означает необходимость как можно экономнее расходовать с таким трудом полученную энергию.
В основе устройств сбора данных лежат маломощные микроконтроллеры, чья задача – принять данные от сенсоров, обработать их и передать по проводному или беспроводному интерфейсу в сеть. Для большинства бытовых применений достаточно опрашивать датчики раз в секунду, минуту или даже реже; но иногда это требуется делать с частотой порядка нескольких герц. В любом случае, время, в течение которого микроконтроллер обрабатывает и передаёт данные, мало по сравнению с периодом опроса датчиков.
Иными словами, бóльшую часть времени устройство ничего не делает. Поэтому с точки зрения экономии энергии лучше всего будет переводить микроконтроллер в режим сна, при котором его потребление снижено до минимума. В этом случае общая мощность, потреблённая микроконтроллером, складывается из двух составляющих:
PΣ =(PСОН × tСОН% + PРАБ × tРАБ%)/100%,
где PСОН и PРАБ – мощность, потребляемая в режимах сна и работы, а tСОН% и tРАБ% – время, проведенное в этих режимах, выраженное в процентном соотношении. Для оптимизации схемы с точки зрения энергопотребления следует определить, какое из слагаемых общей мощности больше. И если вдруг оказалось, что в режиме сна микроконтроллер потребил больше энергии батареи, чем работая, имеет смысл переводить его в более глубокий сон.
Практически все современные микроконтроллеры обладают несколькими режимами энергосбережения, в том числе и режимом глубокого сна, когда неактивна практически вся периферия и, как следствие, потребление тока крайне мало. Использованию этого режима в качестве основного мешает невозможность самостоятельного пробуждения, так как в нём неактивны таймеры, которые могут выполнять роль «будильников». Единственный способ будить микроконтроллер, спящий так крепко – внешние прерывания. Однако прерывания не могут приходить из «ниоткуда», и мы возвращаемся к тому же месту, с которого начали: снизив до предела потребление микроконтроллера, мы вынуждены тратить драгоценную энергию батарей на питание внешних источников прерываний.
Но не все так плохо. Среди современной элементной базы можно отыскать микросхемы с крайне низким потреблением, использование которых вместе со спящим микроконтроллером-ленивцем принесёт реальную экономию. Одно из таких решений – интегральные микросхемы серии EnerChip компании Cymbet, представляющие собой самые экономичные из доступных на рынке часов реального времени, объединённых с миниатюрной аккумуляторной батареей и схемой управления зарядкой и питанием. Часы могут играть роль таймера, периодически пробуждающего микроконтроллер прерываниями. Кроме этого, микросхемы EnerChip оснащены ключом для непосредственного управления питанием микроконтроллера и остальных компонентов схемы, а также последовательным интерфейсом. Поэтому с их помощью можно управлять режимами работы микроконтроллера так гибко, как это только возможно. При этом микроконтроллер может предотвращать принудительное отключение в случае, если он не успевает выполнить свои задачи.
В схемах на Рис. 1 и 2 микросхема EnerChip прямо управляет питанием микроконтроллера и датчиков. Без дополнительных компонентов микросхема может размыкать земляную шину питания (Рис. 1), а дополнительный транзистор на Рис. 2 позволяет переключать и шину VCC. С помощью последовательного интерфейса микроконтроллер имеет возможность отсрочить отключение питания.
Рис. 1. | Схема управления питанием микроконтроллера и датчиков устройства с помощью таймера EnerChip. Размыкается земляная шина. |
Рис. 2. | Управление питанием микроконтроллера размыканием положительной шины питания. |
Если же для достижения заданных требований к энергосбережению достаточно просто переводить микроконтроллер в режим глубокого сна, потребуется схема, показанная на Рис. 3. Здесь микроконтроллер переводится в режим сна командами по интерфейсу I2C, а выводится из него прерыванием.
Рис. 3. | Реализация управления режимами работы микроконтроллера с помощью прерываний. |
Применение подобных схемотехнических решений позволяет получить весьма значительную (до 10 раз и более!) экономию по сравнению с традиционными схемами при условии относительно коротких рабочих циклов и долгих пауз между ними – ведь именно в режиме простоя проявляются преимущества малопотребляющего таймера. А возможность использовать резервную батарею микросхемы EnerChip расширяет области ее применения и позволяет не опасаться за часы реального времени во время замены основных батарей устройства.
Посмотреть подробные характеристики микросхем серии EnerChip