- Strømbesparende teknikker til mikrokontrollere
- 1. Dvaletilstand
- 2. Dynamisk ændring af processorfrekvens
- 3. Afbryd Firmware-struktur for håndterer
- 4. Strømoptimeret firmware
- Konklusion
Ligesom gas (benzin / diesel) er vigtig for cykler, lastbiler og biler (ja, undtagen Teslas!) For at bevæge sig, er elektrisk strøm også for de fleste elektronikapplikationer og mere for integrerede systembaserede applikationer, som normalt er batteri (begrænset energi) drevet, fra almindelige mobiltelefoner til blandt andet smart home-enheder.
Den begrænsede karakter af batteristrøm indebærer behovet for at sikre, at strømforbruget af disse enheder skal være rimeligt for at tilskynde til vedtagelse og anvendelse. Især med IoT-baserede enheder, hvor en enhed kunne forventes at vare så længe som 8-10 år på en enkelt opladning uden udskiftning af batteri.
Disse tendenser har gjort implementeringen af laveffektsovervejelser i design af indlejrede systemer, og gennem årene har designere, ingeniører og producenter på flere punkter udviklet adskillige intelligente måder til effektivt at styre den strøm, der forbruges af produkter, for at sikre, at de holder længere på en enkelt opladning. Mange af disse teknikker fokuserer på mikrokontrolleren, som er hjertet i de fleste enheder. I dagens artikel vil vi undersøge nogle af disse teknikker, og hvordan de kan bruges til at minimere strømforbruget i mikrokontroller. Selvom en mikroprocessor bruger mindre strøm, men den kan bruges til at placeres på Microcontroller overalt, skal du følge linket for at lære, hvordan Microprocessor adskiller sig fra Microcontroller.
Strømbesparende teknikker til mikrokontrollere
1. Dvaletilstand
Dvaletilstandene (generelt kaldet lavt strømtilstande) er uden tvivl den mest populære teknik til at reducere strømforbruget i mikrokontroller. De involverer generelt deaktivering af visse kredsløb eller ure, der driver visse perifere enheder til mikrokontrollerne.
Afhængigt af arkitekturen og producenten har mikrokontrollere normalt forskellige slags søvntilstande, hvor hver tilstand har muligheden for at deaktivere mere interne kredsløb eller perifere i forhold til den anden. Dvaletilstand varierer normalt fra dyb søvn eller slukket, til inaktiv og dvaletilstand.
Nogle af de tilgængelige tilstande forklares nedenfor. Det skal bemærkes, at egenskaberne såvel som navnet på disse tilstande kan variere fra producent til producent.
jeg. Inaktiv / dvaletilstand
Dette er normalt den enkleste af lavt strømtilstande, som designere kan implementere. Denne tilstand giver mikrokontrolleren mulighed for at vende tilbage til fuld drift med en meget hurtig hastighed. Det er derfor ikke den bedste tilstand, hvis enhedens strømcyklus kræver, at den forlader dvaletilstanden meget ofte, da der trækkes en stor mængde strøm, når mikrokontrolleren forlader dvaletilstanden. Vend tilbage til aktiv tilstand fra standbytilstand er normalt afbrydelsesbaseret. Denne tilstand implementeres på mikrokontrolleren ved at slukke uretræet, der driver CPU-kredsløbet, mens MCU's primære højfrekvensur holdes i gang. Med dette er CPU'en i stand til at genoptage operationer straks vækningstriggeren aktiveres. Clock gating er blevet anvendt i vid udstrækning til at afskære signaler i lavt strømtilstande til mikrokontrollere, og denne tilstand gates effektivt ursignaler over hele CPU'en.
ii. Standbytilstand
Standbytilstand er en anden lavt strømtilstand, der er let for designere at implementere. Det svarer meget til inaktiv / dvaletilstand, da det også indebærer brug af ur, der peger over CPU'en, men en stor forskel er, at det tillader ændring i RAM-indholdet, hvilket normalt ikke er tilfældet med inaktiv / dvaletilstand. I standby-tilstand holdes perifere enheder med høj hastighed som DMA (direkte hukommelsesadgang), serielle porte, ADC og AES-periferiudstyr kørende for at sikre, at de er tilgængelige umiddelbart efter, at CPU'en er vågen. For visse MCU'er holdes RAM også aktivt og kan tilgås af DMA, så data kan gemmes og modtages uden CPU-intervention. Strøm trukket i denne tilstand kan være så lavt som 50uA / MHZ for mikrostyringer med lav effekt.
iii. Deep Sleep Mode
Dyb dvaletilstand involverer generelt deaktivering af højfrekvente ure og andre kredsløb i mikrocontrolleren, hvilket kun efterlader urkredsløbet, der bruges til at drive kritiske elementer som vagthundtimeren, detektering af brown-out og strømmen til reset-kredsløb. Andre MCU'er kan tilføje andre elementer til det for at forbedre den samlede effektivitet. Strømforbruget i denne tilstand kan være så lavt som 1uA afhængigt af den særlige MCU.
iv. Stop / OFF-tilstand
Visse mikrokontrollere har forskellige variationer af denne ekstra tilstand. I denne tilstand er både høje og lave oscillatorer normalt deaktiverede, og kun nogle konfigurationsregistre og andre kritiske elementer er aktiveret.
Funktionerne i alle ovennævnte søvntilstande adskiller sig fra MCU til MCU, men den generelle tommelfingerregel er; jo dybere søvn, jo mere er antallet af perifere enheder, der er deaktiveret under søvn, og jo mindre strømforbrug, selvom dette normalt også betyder; jo højere mængde energi der forbruges for at få systemet op igen. Det er således op til designeren at overveje denne variation og vælge den rigtige MCU til opgaven uden at gå på kompromis, der påvirker systemets specifikation.
2. Dynamisk ændring af processorfrekvens
Dette er en anden meget populær teknik til effektivt at reducere mængden af strøm, der forbruges af en mikrokontroller. Det er langt den ældste teknik og lidt mere kompliceret end dvaletilstandene. Det indebærer, at firmwaren dynamisk kører processorens ur og skifter mellem høj og lav frekvens, da forholdet mellem processorens frekvens og den forbrugte strøm er lineær (som vist nedenfor).
Implementeringen af denne teknik følger normalt dette mønster; når systemet er i inaktiv tilstand, indstiller firmwaren urfrekvensen til en lav hastighed, så enheden kan spare lidt strøm, og når systemet skal udføre tunge beregninger, bringes urets hastighed op igen.
Der er kontraproduktive scenarier for at ændre processorfrekvensen, hvilket normalt er et resultat af dårligt udviklet firmware. Sådanne scenarier opstår, når urfrekvensen holdes lav, mens systemet udfører tunge beregninger. En lav frekvens i dette scenarie betyder, at systemet vil tage mere tid end nødvendigt at udføre den indstillede opgave og dermed akkumuleret forbruge den samme mængde strøm, som designerne forsøgte at spare. Derfor skal der udvises ekstra forsigtighed, når denne teknik implementeres i tidskritiske applikationer.
3. Afbryd Firmware-struktur for håndterer
Dette er en af de mest ekstreme teknikker til strømstyring i mikrokontrollere. Det er muliggjort af få mikrokontrollere som ARM cortex-M-kernerne, der har en sleep-on-exit bit i SCR-registeret. Denne bit giver mikrokontrolleren mulighed for at sove efter at have kørt en afbrydelsesrutine. Mens der er en grænse for antallet af applikationer, der kører problemfrit på denne måde, kan dette være en meget nyttig teknik til feltfølere og andre, langsigtede, dataindsamlingsbaserede applikationer.
De fleste af de andre teknikker efter min mening er variationer af dem, der allerede er nævnt ovenfor. For eksempel er den selektive perifere urteknik i det væsentlige en variation af de søvntilstande, hvor designeren vælger det perifere udstyr til at tænde eller slukke. Denne teknik kræver en dyb viden om målmikrocontrolleren og er muligvis ikke meget nybegyndervenlig.
4. Strømoptimeret firmware
En af de bedste måder at reducere mængden af strøm, der forbruges af en mikrocontroller, er ved at skrive effektiv og godt optimeret firmware. Dette påvirker direkte mængden af arbejde, der udføres af CPU'en pr. Gang, og dette bidrager i forlængelse af mængden af strøm, der forbruges af mikrokontrolleren. Der skal gøres en indsats under skrivning af firmwaren for at sikre reduceret kodestørrelse og cyklusser, da enhver unødvendig instruktion, der udføres, er en del af den energi, der er gemt i batteriet, der spildes. Nedenfor er nogle almindelige C-baserede tip til optimeret firmwareudvikling;
- Brug klassen “Static Const” så meget som muligt for at forhindre runtime-kopiering af arrays, strukturer osv., Der bruger strøm.
- Brug pegepinde. De er sandsynligvis den sværeste del af C-sproget at forstå for begyndere, men de er de bedste til effektivt at få adgang til strukturer og fagforeninger.
- Undgå Modulo!
- Lokale variabler over globale variabler, hvor det er muligt. Lokale variabler er indeholdt i CPU'en, mens globale variabler er gemt i RAM, CPU'en får hurtigere adgang til lokale variabler.
- Usignerede datatyper er din bedste ven, hvor det er muligt.
- Vedtag "nedtælling" for sløjfer, hvor det er muligt.
- Brug bitmasker i stedet for bitfelter til usignerede heltal.
Metoder til at reducere mængden af strøm, der forbruges af en mikrokontroller, er ikke begrænset til de ovennævnte softwarebaserede tilgange, der findes hardwarebaserede tilgange som kernespændingskontrolteknikken, men for at holde længden af dette indlæg inden for et rimeligt interval sparer vi dem en anden dag.
Konklusion
Implementering af laveffektprodukt starter med valget af mikrocontroller, og det kan være ret forvirrende, når du prøver at gennemgå de forskellige muligheder, der er tilgængelige på markedet. Mens du scanner igennem, kan databladet fungere godt for at opnå MCU'ers generelle ydeevne, men for strømkritiske applikationer kan det være en meget dyr tilgang. For at forstå de virkelige egenskaber ved en mikrocontroller skal udviklere tage højde for de elektriske specifikationer og de lave effektfunktioner, der er tilgængelige for mikrocontrolleren. Designere bør ikke kun være bekymrede over det aktuelle forbrug af hver af de strømtilstande, der annonceres af MCU's datablad, de bør se på vækningstid, vækningskilder og perifert udstyr der er tilgængelige til brug i lavt strømtilstande.
Det er vigtigt at kontrollere funktionerne på den mikrocontroller, du planlægger at bruge, for at fastslå de muligheder, du har til implementering af lav strøm. Mikrocontrollere har været en af de største modtagere af teknologisk fremskridt, og der er nu adskillige mikrolægtere med ultra-lav effekt, der sikrer, at du har ressourcer til at hjælpe dig med at holde dig inden for dit strømbudget. En række af dem leverer også flere værktøjer til analyse af strømanalyse, som du kan drage fordel af til effektivt design. En personlig favorit er MSP430-serien af mikrokontrollere fra Texas Instrument.