FőoldalKonstruktőrMély álomba szenderülés
2011. június 09., csütörtök ::

Mély álomba szenderülés

Új generációs, beágyazott alkalmazások hatékony energiamenedzsmentje újfajta technikákkal Nyílt titok, hogy a hagyományos alvómódokkal sok esetben képtelenség olyan energiahatékonyságot megvalósítani az új generációs, beágyazott rendszerekben, amellyel még több tekintetben meg lehet felelni a "zöld" követelményeknek, és akár évtizedes élettartamú alkalmazásokat lehet fejleszteni. A mikrokontrollerek gyártói ezért új technikákat alkalmaznak, amellyel a hagyományos alvómódokén túlmutató lehetőségeket kínáló energiahatékonysági megoldásokat kínálnak...

Az MCU-k (mikrokontrollerek) gyártóinak egyik legfrissebb megoldása például az elektronikus "kapcsolók" használata az áramkörökben, amely a chip bizonyos részeitől teljes egészében elveszi a teljesítményt, amikor azok használaton kívül vannak. Sokat fejlesztettek az elmúlt időben a gyártók a feszültség-felügyeleti megoldásokon is, amelyek immár annyira fejlettek, hogy folyamatos megfigyelés alatt tartják a részegységeket, és törekszenek minden körülmények között a legkevesebb telepkapacitás felhasználására. Ezen újszerű technológiák feltérképezésével és megértésével lényegesen közelebb kerülhetünk a kívánt energiamenedzsment megvalósításához.

A korosodó alvómód korlátai
Sokáig a mikrokontrollerek alvómódja jelentette a beágyazott rendszereket fejlesztő mérnök leghatékonyabb eszközét energiamenedzsment-célra. Az alvó üzemmódot azonban már jó ideje bevezették, nem friss fejlesztés, és az újfajta igények felmerülésekor bizony meglátszik a kora, egyszerűen nem képes helytállni az energiatakarékos, beágyazott rendszerek legújabb generációinál.
Ennek egyik oka, hogy éveken át rengeteget nőtt a mikrokontrollerek összetettsége, funkciógazdagsága. A bővülő perifériakészlettel az áramkörökben új feldolgozási csomópontok jelentek meg, amelyek jelentős energiaszivárgási tényezőt jelenthetnek. Vegyük hozzá mindehhez, hogy az új generációs beágyazott, rendszerek bizonyos fajtáinál (pl. intelligens közműfelhasználás-mérők, füstérzékelők stb.) követelménynek számít az akár 10(+) éves telepélettartam, és teljesen egyértelművé válik, hogy ezeknek a feltételeknek a hagyományos, alvómód egyszerűen képtelen megfelelni.

Mélyebb álomban

1. ábra. PIC24F16KA XLP: a Deep Sleep működési módot támogatja a korábbiaknál hatékonyabb energiamenedzsment 1. ábra. PIC24F16KA XLP: a Deep Sleep működési módot támogatja a korábbiaknál hatékonyabb energiamenedzsment
A növekedő összetettség ellensúlyozására az MCU-gyártók új megoldásokat kezdtek bevezetni áramköreik energiaigényének visszafogására. Jóllehet ezeket a gyártók különféle elnevezésekkel illetik, mint pl. Standby, STOP2, LPM5, Deep Sleep stb., céljuk mindig ugyanaz: a hagyományos alvó-módhoz képest jelentősen leszorítani az energiaigényt, és fokozni az energiagazdálkodás hatékonyságát. Az 1. ábra a Microchip egyik PIC24-es sorozatú, Deep Sleep módot támogató mikrokontrollerét mutatja.
A mélyalvó ("Deep Sleep") koncepción alapuló megoldásokban közös, hogy beágyazott, szoftveres vezérlés alatt álló kapcsolókkal működnek, amelyek a mikrokontroller energiamenedzsmenti szempontból lényeges területeitől vonják el a teljesítményt. E régiókban a tranzisztorok feszültségmentesítése megszünteti a szivárgásokat is, amely jelentősen kitolja a telepélettartamot.
2. ábra. A 2. ábra. A
Mélyalvó üzemmódban csupán a 2. ábrán zölddel jelölt áramköri területek maradnak aktív fogyasztói állapotban, a szürkén jelöltek mindegyike feszültségmentes marad.
A mélyalvó módban elérhető energiamegtakarítás mértéke gyártónként eltérő: némelyek az alvóállapotra jellemző áramhoz képest "csupán" 80% csökkenést érnek el, néhányan ma már viszont akár 20 nA mélyalvó állapotbeli áramfelvételt is el tudnak érni az egész áramkörre nézve. A mélyalvó módban elérhető, rendkívül csekély áramfelvétel nagyon alacsony telepkisülési sebességet tesz lehetővé, ezáltal akár évekkel is meghosszabíthatja az alkalmazás telepélettartamát.

A mélyalvó mód energiahatékonyságának ára
Természetesen a mélyalvó mód által hozott energiahatékonysági fejlődés sem jár hátrányos következmények nélkül, amely jelen esetben nem más, mint a mikrokontroller hosszabb bekapcsolási ideje. A hagyományos alvómódból való feléledéshez egy MCU-nak jellemzően 1 ... 10 µs időre van szüksége ahhoz, hogy aktív állapotba térjen vissza, mélyalvó módból ez az idő azonban több nagyságrenddel hosszabb: 0,3 ... 3 ms is lehet. A hosszabb feléledési időt a tápfelkapcsolási szekvenciák korrekt lefolytatásának szükségessége és a chip szabályozóinak stabilizálódása indokolják. A mélyalvó módból való visszatérés jellegét tekintve igen hasonló, mint egy teljes PoR (Power-on-Reset -áramkör-bekapcsolás utáni reset).
Egy további jelentős különbség a legtöbb mélyalvó üzemmód-technikát illetően, hogy az energiamenedzsment-rendszer az operatív memóriától (RAM-tól), a perifériaregiszterektől, valamint az I/O-tól is elveszi a táplálást, szemben az alvómóddal, amiből visszatérve a feladat-végrehajtás pontosan onnan folytatódik, ahol abbamaradt. A mélyalvó módból történő visszatéréskor biztosítani kell egy forrást a szükséges konfigurációs adatok/programrészlet visszatöltésére, amely célra nemfelejtő memóriát (EEPROM-ot vagy flasht), vagy akár elkülönített, mélyalvó módbeli tápelvétel által nem veszélyeztetett RAM-területet is rendszeresítenek a gyártók. Mivel kódfuttatáshoz és az MCU mélyalvó állapot előttire történő visszaállításához áramfelvételre van szükség, rövid ideig teljesítménytöbblettel kell számolni, ha az alkalmazás a mélyalvó módból feléled.
E kompromisszumok ellenére rengeteg olyan alkalmazás ismeretes, amelyeknél a mélyalvó módok használata rendkívül kifizetődő, azonban nem teljesen egyértelmű megítélni, hogy mikor célravezető ezen üzemmód implementálása és mikor nem az. A következő, egyszerű egyenlet azonban segít megválaszolni a kérdést (1):

ahol:
— tBE: a megtérülési idő, amelynél az alvóállapotbeli töltés megegyezik a mélyalvó állapotbeli töltéssel,
— tinit: a teljes aktív működési állapot eléréséhez szükséges inicializációs idő,
— Idd: aktív, futási módban felvett áram,
— tPoR: a Power-on-Reset lefutásához szükséges idő,
— IpoR: a Power-on-Reset áram (beleszámítva a szabályozók stabilizátorkondenzátor-áramát, ha van),
— Ipdslp: statikus áram alvómódban,
— Ipdds: statikus áram mélyalvó módban.

(Megjegyzés: az összefüggés a Microchip AN1267 számú alkalmazási jegyzetből származik.)

Az egyenlet az alvó- és mélyalvó állapotbeli töltést modellezi. A tBE-vel jelölt megtérülési idő azt a pontot adja meg, amelynél a töltés a két állapotban megegyezik. A tBE-nél hosszabb, mélyalvásban töltött idő esetén a mélyalvó mód használata megtérül, ahogy az alábbi példa szemlélteti. Feltételezzük, hogy az adott mikrokontroller mélyalvó állapotára az alábbi mennyiségek jellemzőek:
— inicializációs végrehajtási idő: tinit = 200 µs,
— végrehajtási áram: Idd = 400 µA,
— bekapcsolási reset (Power-on Reset): tPoR = 600 µs,
— áramfelvétel bekapcsolási reset alatt: IpoR= 30 mA1,
— alvómódbeli áramfelvétel: Ipdslp = 3,5 µA,
— mélyalvó módbeli áramfelvétel: Ipdds = 28 nA.

Az értékeket behelyettesítve az (1) képletbe:

A tBE-vel jelölt megtérülési időre kapott 5,2 s érték azt jelenti, hogy amennyiben a beágyazott alkalmazás 5,2 másodpercnél hosszabb időt tölt mélyalvó módban, úgy a mélyalvó mód használata megtérül.

Ébresztő!
Az MCU ébresztése mélyalvó állapotból másképp történik, mint a hagyományos, alvóállapotból. Ez utóbbinál több módszer is létezik az ébresztésre, lehet használni pl. megszakítást, időzítőket, vételi kommunikációt, A/D-átalakítás vége eseményt, tápfeszültség-változást stb. Ezek közül néhány, ha nem is az összes, alkalmas lehet az MCU-k mélyalvó állapotból történő ébresztésére is.
A mélyalvó állapotból való felébresztés eszközei lehetnek a megszakítás, a resetkivezetések, bekapcsolási reset, valós idejű órariasztások, watchdog-időzítők, tápfeszültség-visszaesés (brown-out) érzékelése. Amivel nem lehet számolni, az a vételi kommunikáció és A/D-átalakítás vége lehetőségek, mivel a mikrokontrollerek e részei a mélyalvó módban tápfeszültségmentes állapotban vannak, így értelemszerűen nem alkalmasak az áramkör ébresztésére.
Mivel - mint említettük - a mélyalvó állapotból történő ébresztésre gyártónként eltérő módszerek állnak rendelkezésre, feltétlenül tanácsos fejlesztés előtt áttekinteni ezek tárházát a kiszemelt MCU-családnál. (Néhány gyártó például kizárólag valamely resetkivezetésen keresztüli akcióval teszi lehetővé a mélyalvó állapotból való visszatérést. Ez kiválóan megfelel olyan alkalmazásoknál, amelyek rendelkeznek hardveres bekapcsoló gombbal, és mellettük nincs további áramfogyasztó rendszer. A gomb megnyomásával az alkalmazás kilép a mélyalvó állapotból, állapot-helyreállítást végez, és ezzel működésre kész is. Ez kiváló megoldás például hőmérsékletmérők és hasonló kézi eszközök számára, és elősegíti a telepélettartam jelentős meghosszabbítását.)
Más MCU-gyártók ennél kiterjedtebb rendszerimplementációs lehetőségeket biztosítanak, és valós idejű óra- és naptárfunkciók hozzáadásával további rugalmasságot nyújtanak a mélyalvó állapotból történő visszaállításra. Ezzel a teljes beágyazott rendszer maximálisan autonómmá tehető, és mélyalvó állapotbeli fogyasztása akár 500 nA-re is visszafogható. Nyomógombos felélesztés helyett az is lehetséges, hogy az áramkört a beépített óra/naptár keltse életre előre meghatározott időpont(ok)ban. Ez igen hasznos olyan alkalmazásoknál, mint pl. a füstérzékelők, amelyek percenként 2-3 alkalommal is életre kelnek a levegőminőség mérésére, vagy ide sorolhatók azok a szenzoros berendezések is, amelyek naponta pár alkalommal élednek fel, és továbbítanak adatot valamely formában.
Minden esetben célszerű észben tartani, hogy az adott alkalmazáshoz a legtesthezállóbb, mélyalvó módból ébresztés kiválasztásával jelentős javulás érhető el a telepélettartamban.

Amikor közeledik a vége a dalnak...
Habár a mélyalvó állapot valóban jelentősen megnöveli a várható telepélettartamot, előbb-utóbb mindenképpen bekövetkezik a telepélettartam vége, amelynél a nem rendeltetésszerű működés kockázata is megnő.
Az ilyesfajta események ellen jellemzően a feszültségesés-érzékelő (BOR - Brown-Out Detecetor) és watchdog-időzítő (WDT - WatchDog Timer) áramköröket használják. A BOR-áramkörök képesek érzékelni, ha a telepfeszültség az általa táplált áramkör biztonságos működése szempontjából túlságosan alacsony, majd ezt követően egy biztonságos állapotba lépésre utasítani. A watchdog-időzítők működésének lényege hasonló: a fals kódvégrehajtás ellen védenek abban az esetben, ha a mikrokontroller nem biztonságos feszültség vagy frekvencia mellett kísérli meg a végrehajtást. A legnagyob probléma ezen áramkörökkel nem más, mint az áramfelvételük, mely akár az 5 ... 50 µA-t is elérheti, és amely egy, a lehető legalacsonyabb energiaigényre törekedő alkalmazásnál teljességgel elfogadhatatlan.
A legújabb mikrovezérlőknél e tradicionális megoldásokat új tervezések ihlette, kisáramú BOR- és WDT-áramkörök váltják fel, amelyeket kifejezetten mélyalvó módra terveztek. A watchdog-időzítők tekintetében néhány gyártó az MCU mélyalvó módjában már 400 nA áramfelvétellel is kínál támogatást erre az üzemmódra. A DSBOR (Deep Sleep BOR) vagy Zero-Power BOR nevű, feszültségesés-érzékelő áramköröket is így fejlesztették, és ezek a pontosság oltárán hoznak áldozatot egy rendkívül alacsony, 45 nA áramfelvételű működésért cserébe. Ezek az áramkörök nemcsak a telepélettartam végén nyújtanak védelmet a termék számára, hanem pillanatnyi tápkiesés esetén is óvják a rendszert, amely a telepről táplált rendszereknél jellemzően például kontakthiba miatt is bekövetkezhet. A kisáramú BOR implementálása MCU-gyártónként eltérő módon történhet, néhány ki is kapcsolható, némelyek pedig állandóan bekapcsolt állapotban vannak. Mivel a mélyalvó állapotban nem minden mikrokontrollernél érhető el a BOR-támogatás, érdemes erre külön figyelmet szentelni az MCU-választáskor.
Ezek a fejlesztések lehetővé teszik, hogy ezek a felügyeleti áramkörök mélyalvó módban is aktívak maradhassanak, akár már 445 nA áramfelvétel mellett is. Az előző generációs mikrokontrollerekhez képest ez nem kevesebb mint 99%-os áramfelvétel-csökkentést jelent! A feljebb ismertetett (1) egyenlet alapján a BOR és WDT felügyeleti áramkörök együttes bekapcsolva tartásával is elérhető a mindössze 5,9 másodperces megtérülési idő (tBE), és teljesen biztonságos működést garantál a komplett MCU-rendszernek a teljes élettartama alatt.

A mélyalvó mód alkalmazásának előnyei. - Összefoglalás

Az elektronikai gyártástechnológia fejlődése, a gyártási csíkszélesség csökkenése lehetővé tette, hogy a mikrokontrollereket korábban sohasem tapasztalt gazdagságú perifériakészlettel lássák el gyártóik. Ez a nagyfokú integráltság és funkciógazdagság egyben azt is jelentette, hogy a mikrovezérlők hagyományos alvóműködési módjai a számos plusz áramkörrészlet (értsd: tranzisztorszám) által behozott többletszivárgás miatt nem képesek hatékonyan támogatni az energiahatékony működés feltételeit az új generációs alkalmazásokban.
A mikrokontrollerek fejlesztői ezért újfajta, ún. mélyalvó üzemmódokat fejlesztettek ki, amelyek lehetőséget biztosítanak bizonyos áramkörrészletek teljes feszültségmentesítésére aktív állapoton kívül. Ez a lehetőség az energiahatékony, ébresztést támogató áramkörökkel karöltve a korábbi megoldásoknál akár 80%-kal alacsonyabb energiaigényű, tétlen állapotbeli működést tesz lehetővé.
Bár a mélyalvó módok kétségkívül jelentős energiamegtakarítást bíztosíthatnak telepes táplálású, beágyazott rendszeres környezetben, fontos szem előtt tartani a megtérülési pont elhelyezkedését, amely megmutatja, hogy mely időtől számítva nagyobb az energiamegtakarítás mértéke az áramkör ébresztéséhez szükségesnél. Az ennek számítására szolgáló, egyszerű egyenlettel könnyedén megállapíthatják ezen időt a fejlesztők, amely még egy lépéssel közelebb viszi őket a valóban alacsony energiaigényű, egy telepről akár évekig is működő, beágyazott alkalmazás kifejlesztéséhez.

A Microchip honlapja

1: Beleértve a szabályozó-stabilizátor kondenzátor(ok) áramát

Tudomány / Alapkutatás

tudomany

CAD/CAM

cad

Járműelektronika

jarmuelektronika

Rendezvények / Kiállítások

Mostanában nincsenek események
Nincs megjeleníthető esemény