Micşorarea consumului de putere în sistemele embedded

by donpedro

Datorită faptului că sistemele alimentate de la baterii oferă din ce în ce mai multe funcţii, proiectanţii de sistem sunt obligaţi ca toate aceste caracteristici să poată fi operaţionale utilizând capacitatea bateriei. Desigur trebuie să se ţină cont şi de costul şi performanţa sistemului, dar odată ce specificaţia echipamentului a fost finalizată, metodele de extindere a duratei de viaţă a bateriei sunt foarte importante. În acest articol vom examina câteva strategii de gestiune a puterii pentru sistemele embedded.

Tensiunea de operare
Un domeniu larg al tensiunii de operare permite să fie folosită o mare parte din capacitatea bateriei. Considerăm o baterie lithium-ion cu o tensiune nominală de 3.6V. Când este complet încărcată, tensiunea de ieşire a ei este de 4.2V, iar când este complet descărcată are valoarea de 2.5V. Dacă microcontrolerul şi orice alte periferice externe pot lucra într-un interval atât de larg, viaţa aplicaţiei în sine se extinde. Este important de amintit că domeniul tensiunii de operare al sistemului este determinat de dispozitivul cu cel mai mic domeniu de alimentare acceptat astfel încât este necesar să se specifice atât toate perifericele folosite cât şi microcontrolerul utilizat.

Oscilatorul de “start-up”
Oscilatorul de “start-up” este parametrul cel mai frecvent ignorat de proiectanţii de sisteme embedded. În acel moment, microcontrolerul nu execută nici un cod, dar el consumă putere. Timpul de “start-up” nu este uzual specificat în fişele tehnice deoarece este o problemă de sistem care depinde de cristal, de încărcarea condensatoarelor, de mediul sistemului, de modul oscilatorului etc. Tipic, un proiectant va folosi un oscilator de mică frecvenţă pentru a economisi putere, dar acest lucru va creşte automat timpul de “start-up” ce poate creşte destul de mult consumul de putere al sistemului. Majoritatea microcontrolerelor implementează anumite oscilatoare de “start-up” pentru a asigura un “start-up” sigur şi a oferi suficient timp pentru construirea oscilaţiilor. Soluţia este de a utiliza un oscilator de “start-up” cu două viteze. Dispozitivul va executa imediat o instrucţiune de cod cu ajutorul unui oscilator de “start-up” rapid precum un oscilator RC şi va comuta pe oscilatorul cu cristal când va fi gata. Acest lucru este critic în special pentru aplicaţiile în care un dispozitiv are secvenţe frecvente de “wake-up / sleep”.

Modurile de management a puterii şi frecvenţa de ceas a sistemului
Este important ca proiectarea să fie eficientă atât în cazul în care “se face ceva” cât şi în cazul în care “nu se face ceva”. Atunci când “se face ceva” este important să se determine cea mai bună sursă de ceas, modul de operare şi frecvenţa de ceas a aplicaţiei. Mulţi proiectanţi privesc doar părţile limită ale specificaţiei pentru a determina strategia lor de gestiune a puterii. Ideal, ei ar trebui să privească la diagramele grafice pentru a putea determina modurile de operare şi frecvenţa de ceas. La aceeaşi frecvenţă de ceas, moduri de operare variate ar putea consuma putere diferit funcţie şi de diversele tipuri de oscilatoare. Oscilatoarele au de asemenea felurite caracteristici de “start-up”. Percepţia generală este aceea că execuţia aceleiaşi valori de instrucţiune de cod la o frecvenţă de ceas mai rapidă sau mai joasă va consuma aceeaşi valoare din media de putere. Sloganul “dublarea frecvenţei = dublarea curentului” nu este întotdeauna adevărat. Acest lucru poate fi observat în caracteristica Idd / Frecvenţă care nu este liniară la o pantă de 45°(panta este mai mică de 45°). O frecvenţă de ceas mai înaltă nu va rezulta printr-o creştere proporţională a consumului de putere. Oricum, corelaţia dintre oscilator şi modurile de operare poate aduce îmbunătăţiri în ceea ce priveşte consumul de putere.
O strategie tipică de conservare a puterii include activarea doar a acelor module necesare pentru a executa o anumită sarcină. De exemplu, dacă un echipament trebuie să trimită date la un PC, dezactivăm toate celelalte periferice. Unele microcontrolere oferă modul “wait” sau “idle” care vor opri execuţia codului şi continua comunicaţia. Un mod tipic “a nu face ceva” include sarcina “watchdog” care aşteaptă ca un eveniment să apară.
Cea mai bună cale de a implementa aceasta este de a comuta pe modul “stand-by” sau “sleep” şi de a trece în “wake-up” în cazul apariţiei unui eveniment. Dacă aceste moduri nu sunt acceptabile, se va selecta modul care oferă cel mai mic consum de putere în funcţionare. Este important ca sistemul să poată fi capabil să comute rapid de la modul cu cel mai mic consum de putere la modul care oferă cea mai mare viteză.

Mecanismul intern de “wake-up”
Cel mai important mod în orice sistem de management a puterii este modul “stand-by” sau “sleep”, iar o caracteristică importantă a acestui mod este mecanismul de “wake-up”. În timp ce sistemele sunt diferite, una dintre cerinţele comune o reprezintă capabilitatea de auto “wake-up”, iar soluţia este de a utiliza un timer “watchdog” programabil. Intervalul de programabilitate şi curentul scăzut sunt de asemenea importante. Altă caracteristică apropiată diferitelor sisteme este folosirea unui oscilator secundar de mică putere. Acesta utilizează tipic un ceas cu cristal şi poate oferi mai multe opţiuni în funcţie de microcontroler. Acesta poate fi folosit ca sursă “wake-up” programabilă cu numărător. Câteva aplicaţii precum “data logger” reclamă o durată de timp particulară, iar oscilatorul secundar ajută la crearea unui ceas de timp real. Similar, oscilatorul secundar poate suporta modurile “low power” şi execuţia codului la frecvenţă joasă.

“Low battery check-up”
Multe sisteme alimentate de la baterii cer anumite indicatoare care afişează starea bateriei. Cea mai bună metodă de cost pentru implementarea acestei funcţii este utilizarea blocului detector “low-voltage” care este disponibil la multe microcontrolere.

Configurarea I/O
Una dintre cele mai simple căi de a reduce consumul de curent este de a vedea starea pinilor I/O. Dacă intrările de tensiune se apropie de mijlocul valorii dintre tensiunile VDD şi VSS pentru intrările digitale, tranzistoarele din interiorul microcontrolerului sunt polarizate în regim liniar şi vor consuma o bună parte din curent. Similar, o intrare mobilă poate oscila şi creşte curentul de drenă. Pinii I/O trebuie să se termine cu rezistori “pull-up” sau “pull-down” sau să fie configuraţi ca ieşiri.

Consideraţii de sistem
Este important să ne gândim la întreg sistemul în loc să ajustăm unitatea centrală sau microcontrolerul. Dacă un periferic consumă mai multă putere, nu se poate face nimic în încercarea de a micşora consumul de putere al microcontrolerului. Este necesar să privim către toate elementele mari consumatoare de putere ale sistemului şi să avem o strategie similară de activare numai a perifericului care trebuie să fie utilizat. Din nefericire, costul implementării unei asemenea capabilităţi este uneori prohibitiv. Cea mai simplă soluţie este de a alimenta dispozitivele utilizând pinii I/O ai microcontrolerului care oferă un control uşor de gestiune a puterii oricărui periferic. Singura problemă este capabilitatea sursei de curent a microcontrolerului.

Necesarul de putere
Am discutat diverse metode de reducere graduală a puterii. Chestiunea finală este “Cât de mult efort ar trebui făcut pentru a face orice lucru?” Metoda de a calcula necesarul de putere (power budgeting) poate ajuta. Necesarul de putere poate prevedea consumul de curent şi durata de viaţă a bateriei. Hai să considerăm un sistem de înregistrare (pe o durată lungă de timp) a datelor format dintr-un senzor, o memorie EEPROM, o baterie şi un microcontroler (Tabelul 1). La fiecare două secunde, sistemul citeşte datele de la senzor, scalează datele, apoi le stochează şi aşteaptă pentru o nouă citire. S-a luat în considerare faptul că memoria şi senzorul sunt alimentate folosind pinii I/O ai microcontrolerului, iar sistemul le poate dezactiva.
După completarea necesarului de putere, este uşor să se determine tipul şi mărimea bateriei capabile să corespundă cerinţelor aplicaţiei. Dacă este consumată prea multă putere, este uşor să se determine unde trebuie făcute schimbările pentru a reduce consumul de putere.

Concluzie
Unele familii de microcontrolere precum cele de la Microchip Technology care prezintă caracteristica nanoWatt Technology, oferă caracteristici speciale de administrare a puterii. Fiecare sistem are probleme unice şi soluţii unice. Sperăm că acest articol v-a oferit câteva reguli de bază foarte utile pentru managementul puterii în sistemele embedded.
de Gaurang Kavaiya, Microchip Technology Inc.

S-ar putea să vă placă și

Adaugă un comentariu