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

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

введение

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

Что такое конструкция с низким энергопотреблением?

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

К основным целям маломощной конструкции относятся:

  1. Уменьшите энергопотребление:проходить Выбирайте компоненты с низким энергопотреблением, оптимизированной схемотехникой и внедрением связи с низким Протокол энергопотребления для снижения энергопотребления всей системы.
  2. спящий режим:Когда устройство неактивно,Переведите устройство в спящий режим илирежим глубокого сна,снизить энергопотребление。только когда это необходимоустройство пробуждения。
  3. Оптимизировать код:Напишите эффективный программный код,Уменьшите использование процессора,Избегайте опросов и занятого ожидания,Использование прерываний и событийно-ориентированного подхода для уменьшения энергопотребления.
  4. Аппаратные компоненты с низким энергопотреблением:Выбирайте маломощный микроконтроллер、датчик、Модуль связи и блок управления питанием,уменьшить потребление тока.
  5. Оптимизация схемы питания:Проектирование эффективного блока управления питанием,Примите схему импульсного источника питания, схему стабилизации и снижения напряжения.,минимизировать потери энергии.
  6. Локальное хранение данных и пакетная обработка:Кэшируйте данные и периодически передавайте их.,Для снижения энергопотребления при частом общении.
  7. связь с низким энергопотреблением:использоватьсвязь с низким энергопотреблениемпротокол,Снижение энергопотребления модулей связи,Такие как LoRaWAN, BLE и т. д.
  8. Таймеры и внешние события пробуждения:использовать硬件定时器或外部事件来устройство пробуждения,выполнять конкретные задачи,Вместо того, чтобы постоянно держать устройство активным.

Конструкции с низким энергопотреблением не только помогают продлить срок службы батареи, но также помогают сократить потери энергии, снизить эксплуатационные расходы, повысить устойчивость и в некоторых случаях улучшить производительность и надежность устройства. Этот подход к проектированию широко используется в таких областях, как беспроводные сенсорные сети, Интернет вещей, портативные медицинские устройства, умные дома и мобильные устройства.

image.png
image.png

1. Выбирайте компоненты с низким энергопотреблением.

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

Язык кода:c
копировать
#include <LowPower.h>

void setup() {
  // Инициализировать устройство
}

void loop() {
  // Эксплуатация оборудования
  // Войдите в режим пониженного энергопотребления
  LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
}

2. Оптимизируйте код

Написание эффективного кода снижает энергопотребление ЦП, тем самым продлевая срок службы батареи. Избегайте опросов и ожидания занятости, а также используйте прерывания и спящие режимы, чтобы снизить загрузку ЦП. Вот простой пример использования спящего режима Arduino:

Язык кода:c
копировать
#include <avr/sleep.h>

void setup() {
  // Инициализировать устройство
}

void loop() {
  // Эксплуатация оборудования
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_enable();
  sleep_mode();
}

3. Оптимизируйте общение

Модули связи часто являются «горячими точками» энергопотребления во встроенных устройствах. Используйте протоколы связи с низким энергопотреблением (например, LoRaWAN) и соответствующие интервалы передачи, чтобы снизить энергопотребление во время связи. Вот пример использования Arduino и LoRaWAN:

Язык кода:c
копировать
#include <lmic.h>

void setup() {
  // Инициализируйте модуль LoRaWAN
}

void loop() {
  // Эксплуатация оборудования
  // Отправить данные
  LMIC_setTxData2(1, mydata, sizeof(mydata), 0);
  // Дождитесь завершения передачи
  os_runloop_once();
}

4. Динамическая настройка режима энергопотребления.

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

Язык кода:c
копировать
if (deviceActive) {
  // нормальный режим работы
} else {
  // режим глубокого сна
}
image.png
image.png

Если продление срока службы батареи встроенных устройств является критически важным, рассмотрите также следующие стратегии и примеры:

5. Датчики малой мощности

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

Язык кода:c
копировать
#include <LowPower.h>

void setup() {
  // Инициализация датчика
}

void loop() {
  // Ожидание срабатывания сенсорного события
  // устройство пробуждения
  // Проведение измерений с помощью датчика
  // Войдите в режим пониженного энергопотребления
  LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
}

6. Локальное хранение данных и пакетная обработка.

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

Язык кода:c
копировать
void loop() {
  // Эксплуатация оборудования
  // Кэшировать данные локально
  if (shouldTransmitData()) {
    // Отправить данные
  }
  // Войдите в режим пониженного энергопотребления
}

7. Блок управления питанием (PMU).

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

Язык кода:c
копировать
#include <PMU.h>

void setup() {
  // Инициализировать PMU
}

void loop() {
  // Эксплуатация оборудования
  // Оптимизируйте настройки питания
  PMU.setVoltage(LOW);
  PMU.setFrequency(LOW);
}

8. Алгоритм оптимизации

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

Язык кода:c
копировать
void loop() {
  // Получить данные датчика
  // Используйте упрощенные алгоритмы обработки данных
  // Отправить данные
}

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

image.png
image.png

9. Используйте спящий режим

Многие микроконтроллеры предлагают различные режимы сна, которые можно выбрать в соответствии с вашими потребностями. Вот пример использования режима SLEEP_MODE_PWR_DOWN Arduino:

Язык кода:c
копировать
#include <avr/sleep.h>

void setup() {
  // Инициализировать устройство
}

void loop() {
  // Эксплуатация оборудования
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_enable();
  sleep_mode();
  // Продолжить выполнение после пробуждения устройства
}

10. Оптимизируйте таймер

Используйте аппаратные таймеры для пробуждения устройства во время сна для выполнения определенных задач. Вот пример использования таймера Arduino:

Язык кода:c
копировать
#include <avr/sleep.h>
#include <avr/power.h>

void setup() {
  // Инициализировать таймер
  // Установить период таймера
  // Включить прерывание по таймеру
}

void loop() {
  // Эксплуатация оборудования
  sleep_enable();
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_mode();
  // Выполнение определенных задач после пробуждения устройства
}

11. Оптимизировать протоколы связи и передачи.

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

Язык кода:c
копировать
#include <lmic.h>

void setup() {
  // Инициализируйте модуль LoRaWAN
}

void loop() {
  // Эксплуатация оборудования
  if (shouldTransmitData()) {
    LMIC_setTxData2(1, mydata, sizeof(mydata), 0);
    os_runloop_once();
  } else {
    // Войдите в режим пониженного энергопотребления
    os_runloop_once();
  }
}

12. Используйте библиотеки с низким энергопотреблением

Многие встроенные платформы и инструменты разработки предоставляют библиотеки и функции, специально разработанные для низкого энергопотребления. Вот пример использования библиотеки Arduino LowPower:

Язык кода:c
копировать
#include <LowPower.h>

void setup() {
  // Инициализировать устройство
}

void loop() {
  // Эксплуатация оборудования
  LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
  // Продолжить выполнение после пробуждения устройства
}

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

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

Язык кода:c
копировать
#include <SwitchPower.h>

void setup() {
  // Инициализация цепи питания
}

void loop() {
  // Эксплуатация оборудования
  // Оптимизируйте настройки питания
  SwitchPower.setVoltage(3.3);
  // Войдите в режим пониженного энергопотребления
}

14. Внешние события сна и пробуждения.

Помимо использования внутренних таймеров для пробуждения устройства, вы также можете использовать внешние события для пробуждения устройства. Например, используя события, обнаруженные внешними датчиками, чтобы разбудить устройство для выполнения необходимых задач.

Язык кода:c
копировать
void setup() {
  // Инициализация внешних датчиков
  // Настройка запуска внешнего события
}

void loop() {
  // Устройство спит
  // Пробуждение по внешним событиям
  // выполнять задачи
}

в заключение

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

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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose