- Techniky úspory energie pro mikrokontroléry
- 1. Režimy spánku
- 2. Dynamická úprava frekvence procesoru
- 3. Přerušte strukturu firmwaru obslužné rutiny
- 4. Firmware optimalizovaný pro napájení
- Závěr
Stejně jako plyn (benzín / nafta) je důležitý pro pohyb kol, nákladních automobilů a automobilů (ano, kromě Teslasu!), Stejně jako elektrická energie pro většinu aplikací v elektronice a ještě více pro aplikace založené na vestavěných systémech, které jsou obvykle baterie (s omezenou energií), mimo jiné od běžných mobilních telefonů až po inteligentní domácí zařízení.
Omezená povaha energie baterie znamená, že je třeba zajistit, aby rychlost spotřeby energie těchto zařízení měla být přiměřená, aby se podpořilo jejich přijetí a používání. Zejména u zařízení založených na IoT, u kterých lze očekávat, že zařízení vydrží na jedno nabití až 8 - 10 let bez výměny baterie.
Tyto trendy způsobily implementaci úvah o nízké spotřebě energie při navrhování vestavěných systémů a v průběhu let designéři, inženýři a výrobci v několika bodech vyvinuli několik inteligentních způsobů efektivního řízení energie spotřebované produkty, aby bylo zajištěno, že vydrží déle na na jedno nabití. Mnoho z těchto technik se zaměřuje na mikrokontrolér, který je srdcem většiny zařízení. V dnešním článku budeme zkoumat některé z těchto technik a jak je lze použít k minimalizaci spotřeby energie v mikrokontrolérech. Ačkoli mikroprocesor spotřebovává méně energie, ale lze jej použít všude na mikrokontroléru, kliknutím na odkaz se dozvíte, jak se mikroprocesor liší od mikrokontroléru.
Techniky úspory energie pro mikrokontroléry
1. Režimy spánku
Režimy spánku (obecně označované jako režimy s nízkou spotřebou energie) jsou pravděpodobně nejoblíbenější technikou snižování spotřeby energie v mikrokontrolérech. Obvykle zahrnují deaktivaci určitých obvodů nebo hodin, které pohánějí určité periferie mikrokontrolérů.
V závislosti na architektuře a výrobci mají mikrokontroléry obvykle jiný druh spánkových režimů, přičemž každý režim má schopnost deaktivovat více interních obvodů nebo periferií ve srovnání s ostatními. Režimy spánku se obvykle pohybují od hlubokého spánku nebo vypnutí, po klidové a spánkové režimy.
Některé z dostupných režimů jsou vysvětleny níže. Je třeba poznamenat, že vlastnosti i názvy těchto režimů se mohou u jednotlivých výrobců lišit.
i. Klidový / klidový režim
Toto je obvykle nejjednodušší z režimů s nízkou spotřebou, kterou mohou designéři implementovat. Tento režim umožňuje mikrokontroléru návrat do plného provozu velmi rychlou rychlostí. Není to tedy nejlepší režim, pokud silový cyklus zařízení vyžaduje, aby velmi často opouštěl režim spánku, protože se odebírá velké množství energie, když mikrokontrolér opustí režim spánku. Návrat do aktivního režimu z pohotovostního režimu je obvykle založen na přerušení. Tento režim je implementován na mikrokontroléru vypnutím stromu hodin, který řídí obvody CPU, zatímco primární vysokofrekvenční hodiny MCU jsou stále v provozu. Díky tomu je CPU schopen pokračovat v operacích okamžitě po aktivaci spouštěcího signálu. Hodinové hradlování se ve velké míře používá k odříznutí signálů v režimech nízké spotřeby pro mikrokontroléry a tento režim účinně hradlí hodinové signály přes CPU.
ii. Pohotovostní režim
Pohotovostní režim je další režim s nízkou spotřebou energie, který se návrhářům snadno implementuje. Je to velmi podobné režimu nečinnosti / spánku, protože zahrnuje také použití hodinového hradlování napříč CPU, ale jedním zásadním rozdílem je to, že umožňuje změnu obsahu paměti RAM, což u režimu nečinnosti / spánku obvykle není. V pohotovostním režimu jsou udržovány v chodu vysokorychlostní periferní zařízení, jako jsou DMA (přímý přístup do paměti), sériové porty, ADC a AES, aby byly k dispozici okamžitě po probuzení CPU. U určitých MCU je RAM také udržována aktivní a lze k ní přistupovat pomocí DMA, což umožňuje ukládání a příjem dat bez zásahu CPU. Výkon odebíraný v tomto režimu může být u mikrokontrolérů s nízkou spotřebou až 50uA / MHZ.
iii. Režim hlubokého spánku
Režim hlubokého spánku obvykle zahrnuje deaktivaci vysokofrekvenčních hodin a dalších obvodů v mikrokontroléru a ponechává pouze hodinové obvody používané k řízení kritických prvků, jako je časovač hlídacího psa, detekce zhasnutí a zapnutí obvodů resetování. Jiné MCU k tomu mohou přidat další prvky, aby zlepšily celkovou účinnost. Spotřeba energie v tomto režimu může být až 1 uA v závislosti na konkrétním MCU.
iv. Režim zastavení / vypnutí
Některé mikrokontroléry mají různé varianty tohoto doplňkového režimu. V tomto režimu jsou vysoké i nízké oscilátory obvykle deaktivovány a ponechávají zapnuté pouze některé konfigurační registry a další kritické prvky.
Vlastnosti všech výše uvedených režimů spánku se liší od MCU k MCU, ale obecné pravidlo je; čím hlubší je spánek, tím větší je počet periferních zařízení deaktivovaných během spánku a tím nižší je spotřeba energie, i když to obvykle také znamená; čím vyšší je množství energie spotřebované k opětovnému spuštění systému. Je tedy na návrháři, aby zvážil tuto variantu a vybral pro danou úlohu správný MCU bez kompromisů, které ovlivňují specifikaci systému.
2. Dynamická úprava frekvence procesoru
Jedná se o další široce populární techniku pro účinné snižování množství energie spotřebované mikrokontrolérem. Je to zdaleka nejstarší technika a trochu komplikovanější než spánkové režimy. Zahrnuje firmware, který dynamicky řídí hodiny procesoru a střídá se mezi vysokou a nízkou frekvencí, protože vztah mezi frekvencí procesoru a množstvím spotřebované energie je lineární (jak je uvedeno níže).
Implementace této techniky se obvykle řídí tímto vzorem; když je systém v nečinném stavu, firmware nastaví frekvenci hodin na nízkou rychlost, což umožňuje zařízení ušetřit energii a když systém potřebuje provádět těžké výpočty, rychlost hodin se obnoví.
Existují kontraproduktivní scénáře úpravy frekvence procesoru, která je obvykle výsledkem špatně vyvinutého firmwaru. Takové scénáře vznikají, když je frekvence hodin udržována na nízké hodnotě, zatímco systém provádí těžké výpočty. Nízká frekvence v tomto scénáři znamená, že systému bude trvat déle, než je nutné k provedení stanoveného úkolu, a bude tedy kumulativně spotřebovávat stejné množství energie, jaké se designéři snažili ušetřit. Při implementaci této techniky v časově kritických aplikacích je tedy třeba věnovat zvýšenou pozornost.
3. Přerušte strukturu firmwaru obslužné rutiny
Jedná se o jednu z nejextrémnějších technik správy napájení v mikrokontrolérech. Umožňuje to několik mikrokontrolérů, jako jsou jádra ARM cortex-M, která mají v registru SCR bit spánku na výstupu. Tento bit poskytuje mikrokontroléru schopnost spát po spuštění rutiny přerušení. I když existuje omezení počtu aplikací, které budou tímto způsobem fungovat hladce, může to být velmi užitečná technika pro polní senzory a další dlouhodobé aplikace založené na shromažďování dat.
Většina ostatních technik podle mého názoru je variantou těch, které již byly zmíněny výše. Například technika selektivního periferního hodinování je v podstatě variací spánkových režimů, ve kterých návrhář vybere periferní zařízení pro zapnutí nebo vypnutí. Tato technika vyžaduje hlubokou znalost cílového mikrokontroléru a nemusí být příliš přátelská pro začátečníky.
4. Firmware optimalizovaný pro napájení
Jedním z nejlepších způsobů, jak snížit množství energie spotřebované mikrokontrolérem, je psaní účinného a dobře optimalizovaného firmwaru. To přímo ovlivňuje množství práce odvedené CPU za čas a toto rozšíření přispívá k množství energie spotřebované mikrokontrolérem. Při zápisu firmwaru je třeba se snažit zajistit zmenšenou velikost kódu a cykly, protože každá zbytečná instrukce je částí energie uložené v baterii, která se ztrácí. Níže uvádíme několik běžných tipů pro optimalizovaný vývoj firmwaru založených na jazyce C;
- Pokud je to možné, používejte třídu „Static Const“, abyste zabránili běhovému kopírování polí, struktur atd., Které spotřebovává energii.
- Použijte ukazatele. Jsou pravděpodobně nejobtížněji pochopitelnou částí jazyka C pro začátečníky, ale jsou nejlepší pro efektivní přístup ke strukturám a odborům.
- Vyhněte se Modulo!
- Kde je to možné, místní proměnné nad globálními proměnnými. Místní proměnné jsou obsaženy v CPU, zatímco globální proměnné jsou uloženy v paměti RAM, CPU přistupuje k místním proměnným rychleji.
- Nepodepsané datové typy jsou vaším nejlepším přítelem, kde je to možné.
- Přijměte „odpočítávání“ smyček, kde je to možné.
- Místo bitových polí pro celá čísla bez znaménka použijte bitové masky.
Přístupy ke snížení množství energie spotřebované mikrokontrolérem se neomezují pouze na výše uvedené softwarové přístupy, existují hardwarové přístupy, jako je technika řízení napětí jádra, ale abychom udrželi délku tohoto příspěvku v rozumném rozsahu, ušetříme je na další den.
Závěr
Implementace produktu s nízkou spotřebou začíná výběrem mikrokontroléru a může být docela matoucí, když se pokusíte projít různými možnostmi dostupnými na trhu. Při skenování může datový list fungovat dobře pro získání obecného výkonu MCU, ale pro výkonově kritické aplikace to může být velmi nákladný přístup. Abychom pochopili skutečné výkonové charakteristiky mikrokontroléru, musí vývojáři vzít v úvahu elektrické specifikace a funkce nízkého výkonu, které má mikrokontrolér k dispozici. Návrháři by se neměli obávat pouze aktuální spotřeby každého z režimů napájení inzerovaných v datovém listu MCU, měli by se také podívat na dobu probuzení, zdroje probuzení a periferie, které jsou k dispozici pro použití v režimech nízké spotřeby.
Je důležité zkontrolovat funkce mikrokontroléru, který plánujete použít, abyste zjistili možnosti, které máte k implementaci s nízkou spotřebou. Mikrokontroléry byly jedním z největších příjemců technologického pokroku a nyní existuje několik mikrokontrolérů s velmi nízkou spotřebou energie, které vám zajistí zdroje, které vám pomohou zůstat v rámci vašeho rozpočtu na energii. Řada z nich také poskytuje několik softwarových nástrojů pro analýzu výkonu, které můžete využít pro efektivní návrh. Osobním favoritem je řada mikroprocesorů MSP430 od společnosti Texas Instrument.