Программные средства повышения энергоэффективности устройств с питанием от аккумуляторных батарей
Программное управление питанием
Микропрограммное обеспечение (МПО) устройств с питанием от электросети может быть написано так, что вызовет увеличение энергопотребления, например из-за выполнения бесконечных циклов в микропрограмме. В течение этих циклов повторяющиеся задачи могут выполняться до появления некоторого условия. Например, циклы могут использоваться для реализации функции тактирования, обеспечивающей вызов подпрограммы каждую минуту. Но в устройствах с батарейным питанием необходимо использовать специальное МПО, обеспечивающее максимальное увеличение времени работы от батарей, то есть нужно запрограммировать возможность отменять ненужные циклы, на выполнение которых энергия расходуется впустую. Специальная процедура должна переводить процессор в режим ожидания с пониженным энергопотреблением и использовать прерывания по таймеру, чтобы «разбудить» процессор при необходимости выполнения какой-либо задачи. Повторяющиеся задачи должны запускаться таймером, который активирует процессор, а затем возвращает его в режим ожидания с пониженным энергопотреблением.
Другой метод, используемый разработчиками устройств с питанием от электросети, предусматривает, чтобы все периферийные микросхемы включались при начальной загрузке и оставались в активном режиме на неопределенное время. При этом само МПО упрощается, но энергопотребление возрастает. Поэтому для энергосбережения периферийные микросхемы, подобно процессору, следует поддерживать в состоянии, характеризующемся минимально допустимым энергопотреблением. Микросхемы ВЧ-трансивера отличаются высоким энергопотреблением при передаче и приеме сигнала, но в правильно организованном режиме ожидания они будут расходовать значительно меньше. Микросхемы маломощных ВЧ-трансиверов имеют функцию пробуждения по радиосигналу. Например, потребляемый ток ВЧ-трансивера Intel CC2500 в обычном режиме ожидания равен 1,5 мА. В режиме энергосбережения с функцией пробуждения по радиосигналу потребляемый ток составляет 900 нА. Понятно, что гораздо выгоднее устройство переключать именно в режим энергосбережения, то есть для оптимизации энергопотребления следует использовать более сложное МПО, активно управляющее режимами питания периферийных микросхем.
Средства контроля и отладки
При разработке маломощных устройств необходимо применять усовершенствованные средства контроля и отладки. С помощью кросс-компиляторов и отладчиков можно глубоко анализировать функциональные дефекты, однако нельзя точно идентифицировать непроизводительное расходование энергии. Например, отладчики не могут определить то, что микросхема ВЧ-трансивера оставлена включенной, режим питания процессора установлен неправильно или таймер прерываний работает с частотой, при которой потребление слишком велико. Чтобы получить полную картину энергопотребления, нужно использовать еще одно средство отладки: анализатор питания постоянного тока.
Анализатор питания постоянного тока
Анализатор питания постоянного тока позволяет наблюдать за изменениями энергопотребления во время работы контролируемого устройства. Чтобы наглядно продемонстрировать эффективность этого прибора, рассмотрим, как он анализирует функцию самотестирования, используемую во многих устройствах с батарейным питанием. Если для выполнения самотестирования ВЧ-трансивер был переведен микропрограммой в режим ожидания, а по завершении тестов не был возвращен в режим энергосбережения, то продолжительность работы от батарей уменьшится. Обнаружить подобные дефекты программирования очень сложно. Анализатор питания постоянного тока позволяет получать точное представление о потреблении до и после самотестирования.
Тестирование с помощью анализатора Agilent
Чтобы обнаружить ситуацию избыточного энергопотребления, был использован анализатор питания постоянного тока N6705B с ПО управления и анализа Agilent 14585A. Процедура тестирования показана на рис. 1.
Сначала для тестируемого процессора Intel MSP430 была разработана простая программа, поддерживающая пять режимов работы с низким энергопотреблением. В качестве периферийной микросхемы для процессора MSP430 использовался ВЧ-трансивер Intel CC2500, поддерживающий широкий ряд конфигураций, в том числе с функцией пробуждения по радиосигналу.
После выполнения необходимых подключений было запущено ПО управления и анализа Agilent 14585 и нажата кнопка включения питания для канала 1. Измерение тока выполнялось примерно одну минуту. После того как процессор MSP430 выполнил программу, график потребления был отображен с помощью ПО (рис. 2). На осциллограмме показана зависимость потребления тока от времени при работе процессора MSP430 и ВЧ-трансивера CC2500. Четко видны изменения потребляемого тока при различных событиях, таких как включение/выключение светодиодов и пробуждение по радиосигналу.
Начало выполнения программы индицируется миганием двух светодиодов, которое видно слева на осциллограмме в виде всплеска длительностью около 5 с. Затем процессор примерно на 4,5 с переключается в режим низкого энергопотребления 3 (LPM3 на осциллограмме), затем — на 4,5 с в режим низкого энергопотребления 2 (LPM2 на осциллограмме). Переключение режимов инициируется сторожевым таймером, выдающим импульсы каждые 1,5 с. Они видны в виде коротких регулярных выбросов на осциллограмме. В течение первой минуты выполнения программы сторожевой таймер инициирует переключение режимов питания каждые 4,5 с. Эти переключения режима питания отображаются вспышками светодиодов, которые также четко видны на осциллограмме.
В большинстве режимов работу сторожевого таймера очень легко распознать по выбросам тока, следующим с интервалом около 1,5 с. Через 23 с эти выбросы исчезают, что связано с переключением процессора в активный режим (Active на осциллограмме) по прерыванию, вызванному сторожевым таймером. По истечении 27 с выбросы вновь появляются, что обусловлено переключением процессора в режим низкого энергопотребления.
Примерно на 28-й секунде теста ВЧ-трансивер переключается в режим ожидания. При этом ток резко возрастает с 1 мкА до 1,5 мА. Несмотря на изменение тока на три порядка, импульсы сторожевого таймера все еще могут отображаться, поскольку анализатор Agilent N6705B позволяет подробно анализировать сигналы тока в диапазоне от нескольких микроампер до нескольких ампер.
На основе анализа полученной кривой разработчики могут проверить правильность работы программы, что невозможно сделать при использовании обычных средств тестирования и отладки. С помощью анализатора питания постоянного тока можно идентифицировать режим питания процессора, частоту и длительность импульсов сторожевого таймера, а также включение и выключение периферийных микросхем. Помимо этого, пользователи могут измерять общее энергопотребление в течение некоторого периода времени для более точного прогнозирования времени работы от батарей. Кроме того, по осциллограмме можно пронаблюдать повышение энергопотребления, вызванное включением светодиодов. В силу этого в приложениях, критичных к потребляемой мощности, использование светодиодов следует ограничить.
Использование маркеров для определения режимов питания
На рис. 3 показаны маркеры, используемые для определения режима питания работающего процессора. Увеличив масштаб осциллограммы, можно с помощью маркеров измерить средний ток между двумя импульсами контрольного таймера. В данном случае средний ток равен 453 нА. На основе результата измерения можно сделать вывод, что процессор MSP430 работает в режиме пониженного энергопотребления 3.
Измерения могут быть выполнены с учетом работы сторожевого таймера. Это позволяет определить зависимость продолжительности работы от батарей от частоты таймера. В нашем примере таймер срабатывает каждые 1,5 с. Но программу можно настроить так, чтобы сторожевой таймер срабатывал каждые 0,5 с. Сравнив результаты двух измерений, можно понять, насколько увеличение частоты таймера уменьшает продолжительность работы от батарей. Эта информация очень полезна для максимального увеличения времени автономной работы устройства.
Разработчикам МПО важно знать время автономной работы устройства. В силу этого ПО управления и анализа Agilent 14585A можно использовать и для определения общего времени работы от батарей (рис. 4). Сначала используют два маркера, чтобы определить средний потребляемый ток при выключенной микросхеме ВЧ-трансивера. Он составляет примерно 60 мкА в течение 1 с. При использовании двух стандартных аккумуляторных батарей типа AA емкостью 2400 мА·ч можно ожидать, что устройство будет работать в указанных режимах пониженного энергопотребления в течение девяти лет.
Передвигая маркеры для измерения потребляемого тока, когда ВЧ-трансивер находится в режиме ожидания, можно определить, что в течение интервала длительностью 1 с средний ток составит 1,7 мА. При таком значении тока время работы от батарей составит 117 суток. Если перевести ВЧ-трансивер в режим энергосбережения с пробуждением по радиосигналу, а не в режим ожидания, то это время увеличится до трех лет и, кроме того, трансивер будет реагировать на поступающие сигналы. Это подчеркивает важность использования функции пробуждения по радиосигналу.
Рекомендации по разработке МПО
Решая задачи, связанные с работой устройств с батарейным питанием, разработчики должны быть готовы к внесению значительных изменений в МПО, чтобы гарантировать требуемую продолжительность работы от батарей. При этом следует руководствоваться следующими рекомендациями:
- Нужно предотвращать выполнение циклов и использовать прерывания для запуска логики программы. Для запуска повторяющейся логики рекомендуется использовать таймеры прерываний.
- Следует всегда поддерживать процессор и периферийные микросхемы в состоянии, характеризующемся минимально допустимым энергопотреблением. Если устройство должно поддерживать асинхронную передачу данных, то для микросхем ВЧ-трансиверов следует использовать функцию пробуждения по радиосигналу.
- Полезно использовать инструментальные средства разработки, совместимые с анализатором питания постоянного тока. Это позволяет уменьшить время, необходимое для поиска трудно обнаруживаемых нежелательных изменений питания и получения данных для прогнозирования времени работы от батарей.