- Методи енергозбереження для мікроконтролерів
- 1. Режими сну
- 2. Динамічна модифікація частоти процесора
- 3. Структура прошивки обробника переривань
- 4. Прошивка, оптимізована для живлення
- Висновок
Подібно до того, як газ (бензин / дизель) важливий для руху велосипедів, вантажних автомобілів та автомобілів (так, крім Тесла!), Так само важлива електроенергія для більшості застосувань електроніки і тим більше, для вбудованих системних додатків, які зазвичай є акумулятором (обмежена енергія), від звичайних мобільних телефонів до розумних домашніх пристроїв, серед інших.
Обмежений характер заряду акумулятора передбачає необхідність забезпечення швидкості споживання енергії цими пристроями, щоб це було розумно, щоб заохочувати їх прийняття та використання. Особливо з пристроями на основі IoT, де можна очікувати, що пристрій прослужить 8-10 років від одного заряду без заміни акумулятора.
Ці тенденції призвели до впровадження міркувань щодо низької потужності при проектуванні вбудованих систем, і протягом багатьох років дизайнери, інженери та виробники кілька разів розробили кілька інтелектуальних способів ефективного управління енергією, споживаною продуктами, щоб забезпечити, щоб вони довше працювали на одна зарядка. Багато з цих методів зосереджені на мікроконтролері, який є серцем більшості пристроїв. У сьогоднішній статті ми розглянемо деякі з цих методів та способи їх використання для мінімізації споживання енергії в мікроконтролерах. Хоча мікропроцесор споживає менше енергії, але його можна використовувати для розміщення на мікроконтролері скрізь, перейдіть за посиланням, щоб дізнатися, чим відрізняється мікропроцесор від мікроконтролера.
Методи енергозбереження для мікроконтролерів
1. Режими сну
Режими сну (зазвичай їх називають режимами низької потужності) є, мабуть, найпопулярнішою технікою зменшення енергоспоживання мікроконтролерів. Як правило, вони включають відключення певної схеми або годинників, які керують певною периферією мікроконтролерів.
Залежно від архітектури та виробника, мікроконтролери зазвичай мають різні типи режимів сну, при цьому кожен режим має можливість вимкнути більше внутрішньої схеми або периферії в порівнянні з іншим. Режими сну зазвичай варіюються від глибокого сну або вимкненого режиму, до режимів холостого ходу та дрімання.
Деякі з доступних режимів пояснюються нижче. Слід зазначити, що характеристики, а також назва цих режимів можуть відрізнятися залежно від виробника.
i. Режим очікування / сну
Це, як правило, найпростіший із режимів низької потужності для реалізації дизайнерами. Цей режим дозволяє мікроконтролеру дуже швидко повернутися до повної роботи. Тому це не найкращий режим, якщо цикл живлення пристрою вимагає від нього дуже часто виходити з режиму сну, оскільки витрачається велика кількість енергії, коли мікроконтролер виходить із режиму сну. Повернення в активний режим із режиму очікування зазвичай відбувається на основі переривань. Цей режим реалізований на мікроконтролері шляхом вимкнення дерева тактових частот, що приводить в дію схему центрального процесора, у той час як основний високочастотний годинник MCU постійно працює. Завдяки цьому центральний процесор може відновити роботу негайно, коли активується тригер пробудження. Структура годинника широко застосовується для відсікання сигналів у режимах низької потужності для мікроконтролерів, і цей режим ефективно передає тактові сигнали через центральний процесор.
ii. Режим очікування
Режим очікування - це ще один режим з низьким енергоспоживанням, простий для реалізації дизайнерами. Він дуже схожий на режим очікування / режиму сну, оскільки він також передбачає використання годинникового механізму на центральному процесорі, але одна з основних відмінностей полягає в тому, що він дозволяє змінювати вміст оперативної пам'яті, що зазвичай не відбувається в режимі очікування / режиму сну. У режимі очікування високошвидкісні периферійні пристрої, такі як DMA (прямий доступ до пам'яті), послідовні порти, периферійні пристрої ADC та AES, продовжують працювати, щоб переконатися, що вони доступні відразу після пробудження процесора. Для певних мікроконтролерів оперативна пам’ять також залишається активною, і до неї може отримати доступ DMA, що дозволяє зберігати та отримувати дані без втручання центрального процесора. Потужність, що витрачається в цьому режимі, може становити до 50 мкА / МГц для мікроконтролерів низької потужності.
iii. Режим глибокого сну
Режим глибокого сну, як правило, включає вимкнення високочастотних годинників та інших схем у мікроконтролері, залишаючи лише тактову схему, що використовується для керування такими важливими елементами, як таймер сторожового таймера, виявлення коричневого вимкнення та схема скидання живлення. Інші MCU можуть додавати до нього інші елементи для підвищення загальної ефективності. Споживання енергії в цьому режимі може становити лише 1 мкА, залежно від конкретного мікроконтролера.
iv. Режим зупинки / вимкнення
Деякі мікроконтролери мають різні варіанти цього додаткового режиму. У цьому режимі як високий, так і низький осцилятори зазвичай відключаються, залишаючи включеними лише деякі регістри конфігурації та інші критичні елементи.
Особливості всіх режимів сну, згаданих вище, відрізняються від MCU до MCU, але загальним правилом є; чим глибший сон, тим більше кількість периферійних пристроїв відключено під час сну і менша кількість споживаної енергії, хоча, як правило, це також означає; чим вище кількість енергії, споживаної для відновлення системи. Таким чином, дизайнер повинен розглянути цю варіацію та вибрати правильний мікроконтроллер для завдання без компромісів, що впливає на специфікацію системи.
2. Динамічна модифікація частоти процесора
Це ще одна широко популярна техніка для ефективного зменшення енергії, споживаної мікроконтролером. Це на сьогоднішній день найстаріша техніка і трохи складніше, ніж режими сну. Він включає прошивку, що динамічно керує тактовою частотою процесора, чергуючи високу та низьку частоти, оскільки залежність між частотою процесора та кількістю споживаної енергії є лінійною (як показано нижче).
Реалізація цієї техніки зазвичай йде за цією схемою; коли система перебуває в режимі очікування, прошивка встановлює тактову частоту на низьку швидкість, що дозволяє пристрою економити трохи енергії, а коли системі потрібно зробити важкі обчислення, тактова частота повертається назад.
Існують контрпродуктивні сценарії модифікації частоти процесора, які, як правило, є наслідком погано розробленої мікропрограми. Такі сценарії виникають, коли тактова частота підтримується на низькому рівні, поки система виконує важкі обчислення. Низька частота в цьому сценарії означає, що системі знадобиться більше часу, ніж потрібно для виконання поставленого завдання, і таким чином накопичувально споживатиме ту саму кількість енергії, яку намагалися заощадити конструктори. Таким чином, слід бути особливо обережним при впровадженні цієї техніки в критично важливих для часу програмах.
3. Структура прошивки обробника переривань
Це одна з найбільш екстремальних методик управління живленням мікроконтролерів. Це стало можливим завдяки декільком мікроконтролерам, таким як ядра ARM cortex-M, які мають біт режиму сну на виході в регістрі SCR. Цей біт забезпечує мікроконтролеру можливість заснути після запуску процедури переривання. Хоча існує обмеження на кількість програм, які будуть працювати безперебійно таким чином, це може бути дуже корисною технікою для польових датчиків та інших, довгострокових програм, заснованих на зборі даних.
Більшість інших прийомів, на мій погляд, є варіаціями вже згаданих вище. Наприклад, селективна периферійна тактова синхронізація, по суті, є варіацією режимів сну, в яких дизайнер вибирає периферію для ввімкнення або вимкнення. Ця техніка вимагає глибоких знань цільового мікроконтролера і може бути не дуже зручною для початківців.
4. Прошивка, оптимізована для живлення
Одним з найкращих способів зменшити кількість енергії, споживаної мікроконтролером, є написання ефективної та добре оптимізованої мікропрограми. Це безпосередньо впливає на обсяг роботи, виконуваної центральним процесором за час, і це, в свою чергу, сприяє збільшенню потужності, споживаної мікроконтролером. Під час написання прошивки слід докласти зусиль, щоб забезпечити зменшення розміру коду та циклів, оскільки кожна непотрібна інструкція - це частина енергії, що зберігається в батареї, що витрачається даремно. Нижче наведено кілька загальних порад на основі C для оптимізованої розробки програмного забезпечення;
- Максимально використовуйте клас «Статична константа», щоб запобігти виконанню під час виконання масивів, конструкцій тощо, що споживає електроенергію.
- Використовуйте покажчики. Вони, мабуть, є найбільш складною частиною мови C для розуміння для початківців, але вони найкращі для ефективного доступу до структур та профспілок.
- Уникайте Modulo!
- Місцеві змінні над глобальними змінними, де це можливо. Локальні змінні містяться в центральному процесорі, тоді як глобальні змінні зберігаються в оперативній пам'яті, процесор швидше отримує доступ до локальних змінних.
- Непідписані типи даних - це ваш найкращий друг, де це можливо.
- Прийміть “зворотний відлік” для петель, де це можливо.
- Замість бітових полів для цілих чисел без знака використовуйте бітові маски.
Підходи до зменшення кількості енергії, споживаної мікроконтролером, не обмежуються зазначеними вище програмними підходами, існують апаратні підходи, такі як основна техніка контролю напруги, але, щоб тримати цю посаду в розумних межах, ми заощадимо їх ще на добу.
Висновок
Впровадження продукту з низькою потужністю починається з вибору мікроконтролера, і це може викликати заплутаність, коли ви намагаєтесь переглянути різні варіанти, доступні на ринку. Під час сканування таблиця може добре працювати для отримання загальної продуктивності мікроконтролерів, але для критично важливих додатків це може бути дуже дорогим підходом. Щоб зрозуміти справжні характеристики потужності мікроконтролера, розробники повинні взяти до уваги електричні характеристики та функціональні можливості низької потужності, доступні мікроконтролеру. Дизайнерів повинно турбувати не лише споживання струму кожним із режимів живлення, що рекламується в таблиці даних MCU, вони повинні вивчати час пробудження, джерела пробудження та периферію які доступні для використання в режимах низької енергії.
Важливо перевірити характеристики мікроконтролера, який ви плануєте використовувати, щоб з'ясувати варіанти, які ви маєте для реалізації з низьким енергоспоживанням. Мікроконтролери були одними з найбільших бенефіціарів вдосконалення технологій, і зараз існує кілька мікроконтролерів з наднизькою потужністю, які гарантують, що у вас є ресурси, які допоможуть вам залишатися в межах вашого бюджету електроенергії. Деякі з них також надають кілька програмних засобів для аналізу потужності, якими ви можете скористатися для ефективного проектування. Особистим фаворитом є лінійка мікроконтролерів MSP430 від Texas Instrument.