- Mikrokontrollereiden virransäästötekniikat
- 1. Lepotilat
- 2. Suorittimen taajuuden dynaaminen muokkaus
- 3. Keskeytä käsittelijän laiteohjelmiston rakenne
- 4. Teho-optimoitu laiteohjelmisto
- Johtopäätös
Aivan kuten kaasu (bensiini / diesel) on tärkeää polkupyörien, kuorma-autojen ja henkilöautojen (joo, lukuun ottamatta Teslasia!) Liikkumiselle, samoin on sähkövoima suurimmalle osalle elektroniikkasovelluksia ja sitäkin enemmän sulautettuihin järjestelmiin perustuviin sovelluksiin, jotka ovat yleensä akkua (rajoitettu energia) virtalähde, tavallisista matkapuhelimista älykkäisiin kodinkoneisiin muun muassa.
Akkuvirran rajallisuus merkitsee tarvetta varmistaa, että näiden laitteiden virrankulutuksen tulee olla kohtuullinen kannustamaan niiden käyttöön ja käyttöön. Varsinkin IoT-pohjaisten laitteiden kanssa, joissa laitteen voidaan odottaa kestävän jopa 8-10 vuotta yhdellä latauksella ilman paristojen vaihtoa.
Nämä suuntaukset ovat tehneet pienitehoisten näkökohtien huomioon ottamisen sulautettujen järjestelmien suunnittelussa, ja suunnittelijat, insinöörit ja valmistajat ovat vuosien varrella kehittäneet useita älykkäitä tapoja hallita tuotteiden tehoa tehokkaasti varmistaakseen, että ne kestävät pidempään yhdellä latauksella. Monet näistä tekniikoista keskittyvät mikrokontrolleriin, joka on useimpien laitteiden sydän. Tämän päivän artikkelissa tutkimme joitain näistä tekniikoista ja miten niitä voidaan käyttää minimoimaan virrankulutus mikro-ohjaimissa. Vaikka mikroprosessori kuluttaa vähemmän virtaa, mutta sitä voidaan käyttää sijoitettuna mikrokontrolleriin kaikkialla, seuraa linkkiä saadaksesi tietää, miten mikroprosessori eroaa mikrokontrollerista.
Mikrokontrollereiden virransäästötekniikat
1. Lepotilat
Lepotilat (kutsutaan yleensä pienitehoisiksi tiloiksi) ovat kiistatta suosituin tekniikka virrankulutuksen vähentämiseksi mikrokontrollereissa. Niihin sisältyy yleensä tiettyjen mikrokontrollerien oheislaitteita ajavien piirien tai kellojen poistaminen käytöstä.
Arkkitehtuurista ja valmistajasta riippuen mikrokontrollereilla on yleensä erilaiset lepotilat, kullakin tilalla on kyky poistaa käytöstä enemmän sisäisiä piirejä tai oheislaitteita muihin verrattuna. Lepotilat vaihtelevat yleensä syvästä lepotilasta tai pois päältä lepotilaan ja torkkutilaan.
Joitakin käytettävissä olevista tiloista selitetään alla. On huomattava, että näiden tilojen ominaisuudet ja nimet voivat vaihdella valmistajittain.
i. Valmiustila / lepotila
Tämä on yleensä yksinkertaisin suunnittelijoiden toteuttama pienitehoinen tila. Tämän tilan avulla mikro-ohjain voi palata täydelliseen toimintaan erittäin nopeasti. Siksi se ei ole paras tila, jos laitteen virrankulutus vaatii sitä poistumaan lepotilasta hyvin usein, koska suuri määrä virtaa kuluu, kun mikro-ohjain poistuu lepotilasta. Paluu aktiiviseen tilaan valmiustilasta keskeytyy yleensä. Tämä tila toteutetaan mikro-ohjaimessa sammuttamalla kellopuu, joka ohjaa CPU-piiriä, kun taas MCU: n ensisijainen korkeataajuinen kello on käynnissä. Tämän avulla keskusyksikkö voi jatkaa toimintaansa heti, kun herätysliipaisin aktivoituu. Kellon porttia on käytetty laajasti katkaisemaan signaalit pienitehoisissa tiloissa mikro-ohjaimille, ja tämä tila portoi tehokkaasti kellosignaalit prosessorin yli.
ii. Valmiustila
Valmiustila on toinen virransäästötila, jonka suunnittelijat voivat helposti toteuttaa. Se on hyvin samanlainen kuin lepotila / lepotila, koska siihen sisältyy myös kellon porttikäytön käyttö prosessorin yli, mutta yksi merkittävä ero on se, että se sallii muutoksen ram-aseman sisällössä, mikä ei yleensä ole lepotilassa / lepotilassa. Valmiustilassa nopeita oheislaitteita, kuten DMA (suora pääsy muistiin), sarjaportteja, ADC ja AES-oheislaitteita, pidetään käynnissä varmistaakseen, että ne ovat käytettävissä heti suorittimen hereillä. Tiettyjen MCU: iden kohdalla myös RAM pidetään aktiivisena, ja DMA voi käyttää sitä, jolloin tiedot voidaan tallentaa ja vastaanottaa ilman suorittimen väliintuloa. Tässä tilassa käytetty teho voi olla niinkin pieni kuin 50uA / MHZ pienitehoisille mikro-ohjaimille.
iii. Syvä lepotila
Syvä lepotila käsittää yleensä suurtaajuisten kellojen ja muiden piirien poistamisen käytöstä mikro-ohjaimessa, jättäen vain kellopiirit, joita käytetään kriittisten elementtien, kuten vartija-ajastimen, ruskistumisen havaitsemisen ja virrankäynnistyspiirien, ohjaamiseen. Muut MCU: t voivat lisätä siihen muita elementtejä yleisen tehokkuuden parantamiseksi. Virrankulutus tässä tilassa voi olla niinkin alhainen kuin 1uA riippuen tietystä MCU: sta.
iv. Stop / OFF-tila
Tietyillä mikro-ohjaimilla on erilaisia muunnelmia tästä lisämoodista. Tässä tilassa sekä korkeat että matalat oskillaattorit on yleensä poistettu käytöstä jättäen vain joitain kokoonpanorekistereitä ja muita kriittisiä elementtejä päälle.
Kaikkien edellä mainittujen lepotilojen ominaisuudet eroavat MCU: sta MCU: han, mutta yleinen nyrkkisääntö on; mitä syvempi nukkuminen on, sitä enemmän oheislaitteiden lukumäärä on poistettu käytöstä unen aikana, ja pienempi virrankulutus, vaikka tämä yleensä tarkoittaa myös; mitä suurempi energiankulutus tarvitaan järjestelmän palauttamiseen. Suunnittelijan on siis harkittava tätä vaihtelua ja valittava tehtävälle oikea MCU tekemättä kompromisseja, jotka vaikuttavat järjestelmän määrittelyyn.
2. Suorittimen taajuuden dynaaminen muokkaus
Tämä on toinen laajalti suosittu tekniikka mikrokontrollerin kuluttaman tehon vähentämiseksi tehokkaasti. Se on ylivoimaisesti vanhin tekniikka ja hieman monimutkaisempi kuin lepotilat. Se edellyttää, että laiteohjelmisto ohjaa prosessorin kelloa dynaamisesti vuorotellen korkean ja matalan taajuuden välillä, koska prosessorin taajuuden ja kulutetun tehon välinen suhde on lineaarinen (kuten alla on esitetty).
Tämän tekniikan toteutus noudattaa yleensä tätä mallia; kun järjestelmä on lepotilassa, laiteohjelmisto asettaa kellotaajuuden pienelle nopeudelle, jolloin laite voi säästää virtaa, ja kun järjestelmän on tehtävä raskaita laskutoimituksia, kellotaajuus palautetaan.
Suorittimen taajuuden muuttamiselle on haitallisia skenaarioita, jotka yleensä johtuvat huonosti kehitetystä laiteohjelmistosta. Tällaisia skenaarioita syntyy, kun kellotaajuus pidetään matalalla, kun järjestelmä suorittaa raskaita laskelmia. Matala taajuus tässä skenaariossa tarkoittaa, että järjestelmä vie enemmän aikaa kuin on tarpeen asetetun tehtävän suorittamiseksi ja kuluttaa siten kumulatiivisesti saman määrän virtaa, jonka suunnittelijat yrittivät säästää. Siksi on oltava erityisen varovainen, kun tätä tekniikkaa käytetään aikakriittisissä sovelluksissa.
3. Keskeytä käsittelijän laiteohjelmiston rakenne
Tämä on yksi äärimmäisistä virranhallinnan tekniikoista mikrokontrollereissa. Muutama mikrokontrolleri, kuten ARM cortex-M -ydin, mahdollistaa SCR-rekisterissä nukkumisesta poistumisesta -bitin. Tämä bitti tarjoaa mikrokontrollerille mahdollisuuden nukkua keskeytysrutiinin suorittamisen jälkeen. Vaikka tällä tavalla sujuvasti toimivien sovellusten lukumäärä on rajallinen, tämä voi olla erittäin hyödyllinen tekniikka kenttäantureille ja muille, pitkäaikaisille, tiedonkeruupohjaisiin sovelluksiin.
Suurin osa muista tekniikoista on mielestäni muunnelmia jo mainituista tekniikoista. Esimerkiksi valikoiva oheislaitteiden kellotekniikka on olennaisesti muunnelma lepotiloista, joissa suunnittelija valitsee oheislaitteet päälle tai pois päältä. Tämä tekniikka vaatii syvällistä tietoa kohdemikrokontrollerista ja ei välttämättä ole kovin aloittelijaystävällinen.
4. Teho-optimoitu laiteohjelmisto
Yksi parhaista tavoista vähentää mikro-ohjaimen kuluttaman virran määrää on kirjoittaa tehokas ja hyvin optimoitu laiteohjelmisto. Tämä vaikuttaa suoraan suorittimen tekemän työn määrään kerrallaan, ja tämä myötävaikuttaa mikrokontrollerin kuluttaman tehon määrään. Laiteohjelmistoa kirjoitettaessa on pyrittävä varmistamaan pienempi koodikoko ja jaksot, koska jokainen tarpeeton suoritettu käsky on osa akkuun varastoitua energiaa. Alla on joitain yleisiä C-pohjaisia vinkkejä optimoidulle laiteohjelmistokehitykselle;
- Käytä ”Static Const” -luokkaa mahdollisimman paljon estääksesi virtaa kuluttavien matriisien, rakenteiden jne. Ajonaikaisen kopioinnin.
- Käytä osoittimia. Ne ovat luultavasti vaikein osa C-kieltä ymmärtää aloittelijoille, mutta ne ovat parhaita pääsemään rakenteisiin ja ammattiliittoihin tehokkaasti.
- Vältä Moduloa!
- Paikalliset muuttujat globaaleihin muuttujiin, mikäli mahdollista. Paikalliset muuttujat sisältyvät keskusyksikköön, kun taas globaalit muuttujat on tallennettu RAM-muistiin, mutta keskusyksikkö käyttää paikallisia muuttujia nopeammin.
- Allekirjoittamattomat tietotyypit ovat paras ystäväsi aina kun mahdollista.
- Hyväksy silmukoiden “lähtölaskenta” aina kun mahdollista.
- Käytä bittimaskkeja allekirjoittamattomien kokonaislukujen bittikenttien sijaan.
Lähestymistavat mikro-ohjaimen kuluttaman tehon vähentämiseksi eivät rajoitu edellä mainittuihin ohjelmistopohjaisiin lähestymistapoihin, laitteistopohjaisia lähestymistapoja, kuten ydinjännitteen ohjaustekniikkaa, on olemassa, mutta tämän viestin pituuden pitämiseksi kohtuullisella alueella säästämme heitä toisen päivän ajan.
Johtopäätös
Pienitehoisen tuotteen toteuttaminen alkaa mikrokontrollerin valinnasta, ja se voi olla melko hämmentävää, kun yrität käydä läpi markkinoilla olevat erilaiset vaihtoehdot. Selaamisen aikana tietolomake voi toimia hyvin MCU: iden yleisen suorituskyvyn saamiseksi, mutta tehokriittisille sovelluksille se voi olla erittäin kallis lähestymistapa. Mikrokontrollerin todellisten teho-ominaisuuksien ymmärtämiseksi kehittäjien on otettava huomioon mikro-ohjaimen sähköiset ominaisuudet ja pienitehoiset toiminnot. Suunnittelijoiden ei pitäisi olla huolissaan vain MCU: n tietolomakkeessa mainostettujen virtatilojen virrankulutuksesta, vaan heidän tulisi tutkia herätysaikaa, herätyslähteitä ja oheislaitteita jotka ovat käytettävissä käytettäväksi pienitehoisissa tiloissa.
On tärkeää tarkistaa mikrokontrollerin ominaisuudet, joita aiot käyttää, jotta voit selvittää, mitä vaihtoehtoja sinulla on pienitehoiseen käyttöönottoon. Mikrokontrollerit ovat olleet yksi tekniikan kehityksen suurimmista edunsaajista, ja nyt on olemassa useita erittäin pienitehoisia mikro-ohjaimia, jotka varmistavat, että sinulla on resursseja, joiden avulla pysyt virrabudjettisi rajoissa. Useat niistä tarjoavat myös useita tehoanalyysiohjelmistotyökaluja, joita voit hyödyntää tehokkaan suunnittelun takaamiseksi. Henkilökohtainen suosikki on MSP430-mikrokontrollerien sarja Texas Instrumentista.