- Techniky úspory energie pre mikrokontroléry
- 1. Režimy spánku
- 2. Dynamická úprava frekvencie procesora
- 3. Prerušte štruktúru firmvéru obslužnej rutiny
- 4. Firmvér optimalizovaný pre napájanie
- Záver
Rovnako ako plyn (benzín / nafta) je dôležitý pre pohyb bicyklov, nákladných automobilov a automobilov (áno, okrem Teslas!), Tak je to aj s elektrickou energiou pre väčšinu elektronických aplikácií a ešte viac pre aplikácie založené na zabudovanom systéme, ktoré sú zvyčajne batéria (s obmedzenou energiou), od bežných mobilných telefónov až po inteligentné domáce zariadenia.
Z obmedzeného charakteru napájania z batérie vyplýva, že je potrebné zabezpečiť, aby miera spotreby energie týchto zariadení mala byť primeraná na podporu ich prijatia a používania. Najmä so zariadeniami založenými na IoT, kde by sa dalo očakávať, že zariadenie na jedno nabitie vydrží bez výmeny batérie až 8 - 10 rokov.
Tieto trendy viedli k implementácii aspektov s nízkou spotrebou energie v dizajne zabudovaných systémov. V priebehu rokov vyvinuli dizajnéri, inžinieri a výrobcovia v niekoľkých bodoch niekoľko inteligentných spôsobov efektívneho riadenia energie spotrebovanej výrobkami, aby sa zaistilo, že pri dlhodobom používaní vydržia dlhšie. jedno nabitie. Mnoho z týchto techník sa zameriava na mikrokontrolér, ktorý je srdcom väčšiny zariadení. V dnešnom článku sa budeme venovať niektorým z týchto techník a možnostiam ich použitia na minimalizáciu spotreby energie v mikrokontroléroch. Aj keď mikroprocesor spotrebuje menej energie, ale je možné ho umiestniť do mikrokontroléra všade, kliknutím na nasledujúci odkaz zistíte, v čom sa mikroprocesor líši od mikrokontroléra.
Techniky úspory energie pre mikrokontroléry
1. Režimy spánku
Režimy spánku (všeobecne sa označujú ako režimy s nízkou spotrebou energie) sú pravdepodobne najpopulárnejšou technikou na zníženie spotreby energie v mikrokontroléroch. Spravidla zahŕňajú deaktiváciu určitých obvodov alebo hodín, ktoré poháňajú určité periférie mikrokontrolérov.
V závislosti na architektúre a výrobcovi majú mikrokontroléry zvyčajne iný druh spánkových režimov, pričom každý z nich má schopnosť zakázať viac vnútorných obvodov alebo periférií v porovnaní s ostatnými. Režimy spánku sa zvyčajne pohybujú od hlbokého spánku alebo vypnutia po režimy nečinnosti a spánku.
Niektoré z dostupných režimov sú vysvetlené nižšie. Je potrebné poznamenať, že vlastnosti, ako aj názvy týchto režimov sa môžu u jednotlivých výrobcov líšiť.
i. Režim nečinnosti / spánku
Toto je zvyčajne najjednoduchší z režimov nízkej spotreby, ktorý môžu dizajnéri implementovať. Tento režim umožňuje mikrokontroléru vrátiť sa do plnej prevádzky veľmi rýchlym tempom. Nie je to preto najlepší režim, ak silový cyklus prístroja vyžaduje, aby zariadenie opustilo režim spánku veľmi často, pretože sa odoberá veľké množstvo energie, keď sa mikrokontrolér ukončí z režimu spánku. Návrat do aktívneho režimu z pohotovostného režimu je zvyčajne založený na prerušení. Tento režim je implementovaný v mikrokontroléri vypnutím hodinového stromu, ktorý poháňa obvody procesora, zatiaľ čo sú stále v chode primárne vysokofrekvenčné hodiny MCU. Vďaka tomu je CPU schopný pokračovať v činnosti okamžite po aktivácii spúšťača prebudenia. Hodinové hradlo sa rozsiahle využíva na prerušenie signálov v režimoch nízkej spotreby pre mikrokontroléry a tento režim efektívne hradlí hodinové signály cez CPU.
ii. Pohotovostný režim
Pohotovostný režim je ďalší režim s nízkou spotrebou energie, ktorý sa návrhárom ľahko implementuje. Je to veľmi podobné ako v režime nečinnosti / spánku, pretože tiež zahŕňa použitie hradlovania hodín na CPU, ale jedným hlavným rozdielom je to, že umožňuje zmenu obsahu piestu, čo v prípade režimu nečinnosti / spánku zvyčajne nie je. V pohotovostnom režime zostávajú v prevádzke vysokorýchlostné periférie, ako sú DMA (priamy prístup do pamäte), sériové porty, ADC a AES, aby boli okamžite po prebudení procesora k dispozícii. Pre určité MCU je RAM tiež udržiavaná aktívna a je k nej prístupná prostredníctvom DMA, čo umožňuje ukladanie a príjem dát bez zásahu CPU. Príkon v tomto režime môže byť pre mikrokontroléry s nízkym výkonom až 50uA / MHZ.
iii. Režim hlbokého spánku
Režim hlbokého spánku zvyčajne zahrnuje deaktiváciu vysokofrekvenčných hodín a iných obvodov v mikrokontroléri, pričom zostávajú iba hodinové obvody používané na riadenie kritických prvkov, ako je časovač strážneho psa, detekcia zhasnutia a napájanie resetovacích obvodov. Ostatné MCU môžu do neho pridať ďalšie prvky na zlepšenie celkovej účinnosti. Spotreba energie v tomto režime môže byť až 1 uA v závislosti od konkrétneho MCU.
iv. Režim Stop / OFF
Niektoré mikrokontroléry majú rôzne variácie tohto dodatočného režimu. V tomto režime sú vysoko aj nízkooscilátory zvyčajne deaktivované a ponechávajú zapnuté iba niektoré konfiguračné registre a ďalšie kritické prvky.
Vlastnosti všetkých vyššie uvedených režimov spánku sa líšia od MCU po MCU, ale všeobecné pravidlo je; čím hlbší spánok, tým väčší počet periférnych zariadení deaktivovaných počas spánku, a tým menšie množstvo spotrebovanej energie, aj keď to zvyčajne tiež znamená; tým väčšie množstvo energie sa spotrebuje na opätovné spustenie systému. Je teda na návrhárovi, aby zvážil túto variáciu a vybral pre úlohu správny MCU bez toho, aby urobil kompromisy, ktoré majú vplyv na špecifikáciu systému.
2. Dynamická úprava frekvencie procesora
Toto je ďalšia veľmi populárna technika efektívneho znižovania množstva energie spotrebovanej mikrokontrolérom. Je to zďaleka najstaršia technika a trochu komplikovanejšia ako spánkové režimy. Zahŕňa to firmvér, ktorý dynamicky poháňa hodiny procesora a strieda sa medzi vysokou a nízkou frekvenciou, pretože vzťah medzi frekvenciou procesora a množstvom spotrebovanej energie je lineárny (ako je znázornené nižšie).
Implementácia tejto techniky sa zvyčajne riadi týmto vzorom; keď je systém v nečinnom stave, firmvér nastavuje frekvenciu hodín na nízku rýchlosť, čo umožňuje zariadeniu šetriť energiu, a keď systém potrebuje náročné výpočty, rýchlosť hodín sa vráti späť.
Existujú kontraproduktívne scenáre, ako upraviť frekvenciu procesora, ktorá je zvyčajne dôsledkom zle vyvinutého firmvéru. Takéto scenáre vznikajú, keď je frekvencia hodín udržiavaná na nízkej hodnote, zatiaľ čo systém vykonáva náročné výpočty. Nízka frekvencia v tomto scenári znamená, že systému bude vykonanie stanovenej úlohy trvať dlhšie, ako je potrebné, a teda akumuluje kumulatívne rovnaké množstvo energie, aké sa snažili ušetriť dizajnéri. Pri implementácii tejto techniky v časovo kritických aplikáciách je preto potrebné venovať zvýšenú pozornosť.
3. Prerušte štruktúru firmvéru obslužnej rutiny
Toto je jedna z najextrémnejších techník riadenia napájania v mikrokontroléroch. Umožňuje to niekoľko mikrokontrolérov, ako sú jadrá ARM cortex-M, ktoré majú v registri SCR bit spánok-výstup. Tento bit poskytuje mikrokontroléru schopnosť spať po vykonaní rutiny prerušenia. Aj keď existuje obmedzený počet aplikácií, ktoré budú bežať týmto spôsobom hladko, môže to byť veľmi užitočná technika pre snímače v teréne a ďalšie dlhodobé aplikácie založené na zhromažďovaní údajov.
Väčšina ďalších techník podľa môjho názoru je variáciou tých, ktoré už boli spomenuté vyššie. Napríklad technika selektívneho periférneho času je v podstate variáciou spánkových režimov, v ktorých návrhár vyberá periférie, ktoré sa majú zapnúť alebo vypnúť. Táto technika vyžaduje hlboké znalosti cieľového mikrokontroléra a nemusí byť veľmi priateľská pre začiatočníkov.
4. Firmvér optimalizovaný pre napájanie
Jedným z najlepších spôsobov zníženia množstva energie spotrebovanej mikrokontrolérom je napísanie efektívneho a dobre optimalizovaného firmvéru. To priamo ovplyvňuje množstvo práce vykonanej procesorom za čas a toto rozšírenie prispieva k množstvu energie spotrebovanej mikrokontrolérom. Počas zápisu firmvéru je potrebné vyvinúť úsilie, aby sa zabezpečila zmenšená veľkosť kódu a cykly, pretože každá zbytočná vykonaná inštrukcia predstavuje časť energie uloženej v batérii, ktorá sa zbytočne míňa. Ďalej uvádzame niekoľko bežných tipov na optimalizáciu vývoja firmvéru založených na jazyku C.
- Ak je to možné, použite triedu „Static Const“, aby ste zabránili runtime kopírovaniu polí, štruktúr atď., Ktoré spotrebúvajú energiu.
- Použite ukazovatele. Sú pravdepodobne najťažšie pochopiteľnou časťou jazyka C pre začiatočníkov, ale sú najlepším nástrojom na efektívny prístup k štruktúram a odborom.
- Vyhnite sa Modulo!
- Pokiaľ je to možné, lokálne premenné nad globálnymi premennými. Lokálne premenné sú obsiahnuté v CPU, zatiaľ čo globálne premenné sú uložené v RAM, procesor pristupuje k miestnym premenným rýchlejšie.
- Nepodpísané dátové typy sú vaším najlepším priateľom, kde je to možné.
- Ak je to možné, použite pre odpočty „odpočítavanie“.
- Namiesto bitových polí pre celé čísla bez znamienka použite bitové masky.
Prístupy k znižovaniu množstva energie spotrebovanej mikrokontrolérom sa neobmedzujú iba na softvérové prístupy uvedené vyššie, existujú hardvérové prístupy, ako je napríklad technika riadenia napätia v jadre, ale aby sme udržali dĺžku tohto príspevku v rozumnom rozmedzí, ušetríme na ďalší deň.
Záver
Implementácia produktu s nízkou spotrebou energie začína od výberu mikrokontroléra a môže byť dosť mätúce, keď sa pokúsite prejsť cez rôzne možnosti dostupné na trhu. Pri prehľadávaní môže údajový list dobre slúžiť na získanie všeobecného výkonu MCU, ale pre výkonovo dôležité aplikácie to môže byť veľmi nákladný prístup. Aby sme pochopili skutočné výkonové charakteristiky mikrokontroléra, musia vývojári brať do úvahy elektrické špecifikácie a nízkoenergetické funkcie, ktoré má mikrokontrolér k dispozícii. Dizajnéri by sa nemali zaujímať iba o aktuálnu spotrebu každého z režimov napájania inzerovaných v údajovom liste MCU, mali by sa zamerať na čas budenia, zdroje budenia a periférie ktoré sú k dispozícii na použitie v režimoch nízkej spotreby.
Je dôležité skontrolovať vlastnosti mikrokontroléra, ktorý plánujete použiť, aby ste sa uistili, aké možnosti máte pri implementácii s nízkou spotrebou. Mikrokontroléry boli jedným z najväčších príjemcov technologického pokroku a v súčasnosti existuje niekoľko mikrokontrolérov s veľmi nízkym výkonom, ktoré vám zabezpečia zdroje, ktoré vám pomôžu dodržať rozpočet na napájanie. Mnohé z nich tiež poskytujú niekoľko softvérových nástrojov na analýzu napájania, ktoré môžete využiť na efektívny dizajn. Osobným favoritom je rad mikroprocesorov MSP430 od spoločnosti Texas Instrument.