Оптимизация энергопотребления микроконтроллерных систем

Бесплатный доступ

На сегодняшний день в мире электроники прослеживаются две тенденции: увеличение вычислительной мощности и снижение энергопотребления. Появление устройств с большими вычислительными возможностями и низким энергопотреблением дает возможность вместо громоздких устройств применять компактные приборы с аккумуляторным и батарейным питанием. Для того чтобы такие устройства работали без подзарядки как можно дольше и при этом сохраняли свою компактность, разработчики применяют множество способов по снижению энергопотребления. В этой статье рассматриваются различные способы по оптимизации потребления энергии устройствами, основным элементом которых является микроконтроллер. Производится обзор программных, архитектурных и схемотехнических способов снижения потребления, рассмотрены их достоинства и недостатки, а также возможность применения их в комплексе. Упомянуты принципиально новые архитектуры вычислительных систем, которые в перспективе, возможно, окажутся эффективнее традиционных с точки зрения энергосбережения. В завершение дается небольшой обзор некоторых современных микроконтроллеров с точки зрения минимума потребления энергии.

Еще

Микроконтроллеры, энергопотребление

Короткий адрес: https://sciup.org/147154885

IDR: 147154885

Текст краткого сообщения Оптимизация энергопотребления микроконтроллерных систем

В последнее время портативные вычислительные устройства на основе микроконтроллеров и микропроцессоров стали неотъемлемым атрибутом жизни. Появление миниатюрных устройств с большими вычислительными возможностями дают возможность вместо громоздких стационарных устройств применять компактные приборы с аккумуляторным питанием. Для того чтобы такие устройства работали без подзарядки как можно дольше и при этом сохраняли свою компактность, разработчики применяют множество способов по снижению энергопотребления. Способы оптимизации можно разбить на три большие группы: программные, архитектурные и схемотехнические.

Программные способы направлены, главным образом, на снижение вычислительной нагрузки на микроконтроллер, что дает возможность использовать кристаллы с небольшой вычислительной мощностью, но с гораздо меньшим потреблением энергии. К таким способам снижения нагрузки можно отнести несколько путей, один из них – применение специфичной математики. Многие микроконтроллеры не имеют на кристалле модуля для работы с числами с плавающей точкой, поэтому любые операции с дробными числами занимают продолжительное время. В большинстве случаев можно обойтись целочисленными операциями, значительно снизив вычислительную нагрузку и скорость выполнения программы. Также ускорить работу программы можно, учитывая разрядность ядра процессора: на 8-битных микроконтроллерах операции с числами большой разрядности будут выполняться гораздо дольше, нежели на 32-битных, поэтому их применения следует по возможности избегать. Еще одним путем увеличения скорости и эффективности работы программы является переписывание критичных участков кода на ассемблере [1]. Однако эта мера ставит крест на кроссплатформенности получившихся приложений и усложняет понимание программы, поэтому этот способ довольно спорен.

Архитектурные способы снижения энергопотребления и увеличения производительности применяются самими разработчиками микроконтроллеров. Следует отметить, что увеличение производительности, как это ни парадоксально, тоже помогает снизить энергопотребление в определенных случаях. Ведь чем выше производительность микроконтроллера, тем быстрее он выполнит все необходимые вычисления и перейдет в режим энергосбережения. Различные режимы энергосбережения – ключевой способ снижения потребления микроконтроллеров, поскольку он позволяет отключать неиспользуемую периферию и снижать тактовую частоту ядра, позволяя на порядки снизить потребление энергии. Если построить программу так, чтобы микроконтроллер быстро выполнял все необходимые вычисления и как можно дольше после этого был в спящем режиме – срок службы от аккумулятора увеличится в десятки раз. К архитектурным способам снижения энергопотребления относится и отключение неиспользуемых узлов кристалла: очень редко требуется работа всех периферийных устройств одновременно. Отключение неиспользуемой периферии позволяет в разы снизить потребление энергии.

Большие надежды на сегодняшний день возлагаются на применение новых типов памяти в микроконтроллерах: сегнетоэлектрическая память (FRAM) потребляет на порядок меньше энергии и обеспечивает в разы большее быстродействие, нежели традиционная Flash память, используемая для хранения программы.

Последним рассматриваемым способом снижения энергопотребления и увеличения производительности является применение принципиально новых вычислителей. Примером такого вычислителя может служить российская разработка – процессоры мультиклет [2], которые состоят из нескольких равноправных вычислителей, работающих независимо друг от друга. Выход из строя или отключение одного из вычислителей не приведет к сбою системы: нагрузка будет распределена между оставшимися вычислителями. Также перспективным направлением являются микроконтроллеры с вычислителем на основе нейронных сетей, так как в некоторых областях нейронные сети позволяют решать задачи гораздо эффективнее и быстрее. Пожалуй, самыми разнообразными из всех путей повышения энергоэффективности микроконтроллерных систем являются схемотехнические способы. Так же, как и на архитектурном уровне, одной из возможностей снижения энергопотребления системы является отключение ее компонентов. Как правило, датчики, память, кодеки и другие компоненты схемы используются только в определенные моменты времени, что дает возможность существенно выиграть в потреблении, полностью отключая их. Для этого у многих микросхем есть режим «Power down», в котором потребление энергии значительно уменьшено. Для экономии энергии также целесообразно отключать неиспользуемые порты ввода-вывода микроконтроллеров, экономя драгоценные миллиамперы.

Поскольку зачастую портативные устройства для связи с внешним миром используют какие-либо беспроводные коммуникации, сэкономить энергию можно и здесь. Некоторые беспроводные интерфейсы специально разрабатывались для приложений с батарейным питанием, к примеру, ZigBee, Bluetooth 4.0LE. Особенностью таких интерфейсов является то, что приемопередатчики включаются лишь на короткие промежутки времени, а большую часть времени беспроводная связь находится в выключенном состоянии. Применение таких оптимизированных средств связи позволит сохранить энергию батареи.

Схемотехнические методы оптимизации также применимы и к самому источнику питания – аккумуляторной батарее. Если рабочее напряжение схемы отличается от ЭДС батареи, то необходимо будет преобразовывать напряжение питания, а это приведет к потерям энергии. В этой связи многие современные микросхемы могут работать в широком диапазоне питающих напряжений: от 2,7 до 5 вольт, а некоторые специальные образцы могут работать при снижении напряжения питания до 0,7 вольт. Логично в таких случаях применение литий-ионных или литийполимерных источников питания, ЭДС которых лежит в диапазоне 3,6–4,2 вольт. Прямое питание схемы от батарей позволяет сберечь энергию, отказавшись от преобразователей и стабилизаторов. Немаловажную роль при выборе источника питания играет саморазряд элементов, который в некоторых случаях может превысить собственное энергопотребление схемы. Многие аккумуляторные батареи, в частности, уже упомянутые литий-ионные, теряют в месяц до 20% заряда, что не позволяет применять их в устройствах, которые предназначены для работы от одной зарядки более года. Для таких применений можно воспользоваться специальными аккумуляторами типа никель-металлгидридных NiMH-LSD (Low Self Discharge), или литиево-железных батарей. Такие батареи могут хранить заряд до 10 лет. Большинство современных микросхем основано на КМОП-технологии, для которой характерна прямая зависимость между величиной напряжения питания и токопотреблением. То есть, снижая напряжение питания схемы, можно снизить ее энергопотребление. С этой особенностью связаны несколько способов снижения потребляемой мощности, к примеру, различное напряжение питания вычислительного ядра (порядка 1,8 вольт) и периферии (3,3 вольт), как в микроконтроллерах на ядре ARM7. Однако следует помнить, что при снижении напряжения питания снижается максимально возможная тактовая частота микросхем. Поэтому есть смысл динамически менять напряжение питания вместе с тактовой

И.Л. Кафтанников, В.А. Руднев

Динамическое управление напряжением питания

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

В персональных компьютерах такая технология получила название DVS (Dynamic Voltage Scaling) – динамическое изменение напряжения [3]. В микроконтроллерах эта технология пока большого распространения не получила, в основном из-за сложности регулирования напряжения питания в условиях пониженного потребления схемы.

В таблице представлены сравнительные характеристики некоторых популярных современных микроконтроллеров в контексте минимального потребления энергии.

Сравнение энергопотребления микроконтроллеров

МК

Ядро

Производительность (MIPS)

Потребление энергии (мА/Mhz)

LPC1111FHN33

ARM 32-bit Cortex M0

0,9 x 50

0,15

STM32F100C4T6B

ARM 32-bit Cortex-M3

1,25 x 24

0,23

AtTiny13A

Atmel 8bit

20

0,3 (1Mhz) 0,55 (20 Mhz)

atmega48

Atmel 8bit

20

0,3 (1Mhz) 0,55 (20 Mhz)

MSP430F2101IPW

TI 16bit MSP430

16

0,25 (1Mhz)

0,4 (16Mhz)

PIC16F676

PIC16 8bit

5

0,1 x 4

PIC12F509

PIC12 8bit

5

0,087 x 4

Как видно из таблицы, наиболее эффективными в области минимума потребления энергии являются микроконтроллеры PIC фирмы Microchip, однако следует учитывать, что на этих микроконтроллерах практически полностью отсутствует периферия и ядро у них 8-разрядное. Таблица хорошо иллюстрирует тот факт, что за все аппаратные и программные средства увеличения вычислительной мощности приходится платить увеличением энергопотребления.

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

Список литературы Оптимизация энергопотребления микроконтроллерных систем

  • Агуров, П.В. Интерфейс USB. Практика использования и программирования/П.В. Агуров. -2-е изд. -СПб.: BHV, 2008. -256 с.
  • Руководство по эксплуатации мультиклеточного процессора MCp0411100101 -Multiclet. -http://www.multiclet.com/docs/PO/Manual-MCp_0411100101.pdf
  • Quadi, A. A Dynamic Voltage Scaling Algorithm for Sporadic Tasks/A. Quadi, S. Goddard, S. Farritor. -University of Nebraska-Lincoln, 2003.
Краткое сообщение