- Mikrovaldiklių energijos taupymo būdai
- 1. Miego režimai
- 2. Dinaminis procesoriaus dažnio keitimas
- 3. Pertraukite tvarkyklės programinės įrangos struktūrą
- 4. Energijai optimizuota programinė įranga
- Išvada
Kaip dviračiai (benzinas / dyzelinas) yra svarbūs dviračių, sunkvežimių ir lengvųjų automobilių (taip, išskyrus „Teslas“!) Judėjimui, taip pat elektros energija yra svarbi daugumai elektronikos programų ir dar labiau - įterptinių sistemų programoms, kurios paprastai yra baterijos (riboto energijos kiekio), pradedant įprastais mobiliaisiais telefonais ir baigiant išmaniųjų namų prietaisais.
Ribotas akumuliatoriaus energijos pobūdis reiškia, kad reikia užtikrinti, kad šių prietaisų energijos suvartojimo greitis būtų pagrįstas, kad paskatintų juos naudoti ir naudoti. Ypač su IoT pagrįstais įrenginiais, kur galima tikėtis, kad įrenginys veiks 8–10 metų vienu įkrovimu be baterijos keitimo.
Šios tendencijos lėmė mažos galios svarstymą kuriant įterptąsias sistemas, o bėgant metams dizaineriai, inžinieriai ir gamintojai keletą kartų sukūrė keletą protingų būdų, kaip efektyviai valdyti produktų sunaudojamą energiją, siekiant užtikrinti, kad jie ilgiau tarnautų. vienas mokestis. Daugelis šių būdų sutelkti dėmesį į mikrovaldiklį, kuris yra daugumos prietaisų širdis. Šiandienos straipsnyje mes išnagrinėsime kai kuriuos iš šių būdų ir kaip juos galima naudoti siekiant sumažinti energijos suvartojimą mikrovaldikliuose. Nors mikroprocesorius sunaudoja mažiau energijos, tačiau jį galima naudoti visur įdėjus į mikrovaldiklį, spustelėkite nuorodą, kad sužinotumėte, kuo mikroprocesorius skiriasi nuo mikrovaldiklio.
Mikrovaldiklių energijos taupymo būdai
1. Miego režimai
Miego režimai (paprastai vadinami mažos galios režimais) yra neabejotinai populiariausias būdas sumažinti energijos suvartojimą mikrovaldikliuose. Paprastai jie išjungia tam tikras grandines ar laikrodžius, kurie valdo tam tikrus mikrovaldiklių periferinius įrenginius.
Priklausomai nuo architektūros ir gamintojo, mikrovaldikliai paprastai turi skirtingus miego režimus, kurių kiekvienas režimas turi galimybę išjungti daugiau vidinių grandinių ar periferinių įrenginių, palyginti su kitu. Miego režimai paprastai būna nuo gilaus miego ar išjungimo iki tuščiosios eigos ir snaudimo režimų.
Kai kurie galimi režimai paaiškinti toliau. Reikėtų pažymėti, kad šių režimų charakteristikos ir pavadinimas gali skirtis.
i. Neaktyvusis / miego režimas
Paprastai tai yra paprasčiausias iš mažos galios režimų, kuriuos projektuotojai gali įgyvendinti. Šis režimas leidžia mikrovaldikliui labai greitai grįžti į visišką veikimą. Todėl tai nėra geriausias režimas, jei prietaiso maitinimo ciklas reikalauja, kad jis labai dažnai išeitų iš miego režimo, nes mikrovaldikliui išėjus iš miego režimo, reikia sunaudoti daug energijos. Grįžimas į aktyvųjį režimą iš budėjimo režimo paprastai pertraukiamas. Šis režimas įgyvendinamas mikrovaldiklyje išjungiant laikrodžio medį, kuris valdo procesoriaus grandinę, o MCU pagrindinis aukšto dažnio laikrodis veikia toliau. Tokiu būdu centrinis procesorius gali tęsti veiksmus iškart suaktyvinus pažadinimo gaiduką. Laikrodžio vartai buvo plačiai naudojami norint nutraukti signalus mažos galios mikrovaldiklių režimais, ir šis režimas efektyviai nukreipia laikrodžio signalus per centrinį procesorių.
ii. Budėjimo režimas
Budėjimo režimas yra dar vienas mažos galios režimas, kurį dizaineriai gali lengvai įgyvendinti. Tai labai panašu į tuščiosios eigos / miego režimą, nes jis taip pat apima laikrodžio vartų naudojimą visame procesoriuje, tačiau vienas iš pagrindinių skirtumų yra tai, kad jis leidžia keisti avino turinį, kuris paprastai nėra tuščiosios / miego režimo atveju. Budėjimo režimu didelės spartos periferiniai įrenginiai, tokie kaip DMA (tiesioginė prieiga prie atminties), nuoseklieji prievadai, ADC ir AES periferiniai įrenginiai, nuolat veikia, kad užtikrintų, jog jie bus prieinami iškart po budėjimo. Tam tikrų MCU atveju RAM taip pat yra aktyvi ir prie jos gali prisijungti DMA, leidžianti duomenis saugoti ir gauti be centrinio procesoriaus įsikišimo. Šiame režime sunaudojama galia mažos galios mikrovaldikliams gali būti mažesnė kaip 50uA / MHZ.
iii. Gilaus miego režimas
Gilaus miego režimas paprastai apima aukšto dažnio laikrodžių ir kitų mikrovaldiklio grandinių išjungimą, paliekant tik laikrodžio schemą, naudojamą kritiniams elementams, tokiems kaip sargybos laikmatis, valdyti, rudos spalvos aptikimui ir maitinimo atstatymo grandinėms. Kiti MCU gali prie jo pridėti kitų elementų, kad pagerėtų bendras efektyvumas. Energijos suvartojimas šiame režime gali būti vos 1uA, priklausomai nuo konkretaus MCU.
iv. Stop / OFF režimas
Tam tikri mikrovaldikliai turi skirtingus šio papildomo režimo variantus. Šiuo režimu tiek aukštasis, tiek žemasis osciliatoriai paprastai yra išjungiami, paliekant tik kai kuriuos konfigūracijos registrus ir kitus kritinius elementus.
Visų aukščiau paminėtų miego režimų funkcijos skiriasi nuo MCU iki MCU, tačiau bendra nykščio taisyklė yra; kuo giliau miego metu, tuo daugiau miego metu neįgaliųjų periferinių įrenginių yra mažiau ir sunaudojama mažiau energijos, nors tai paprastai taip pat reiškia; tuo didesnis energijos suvartojimas norint atkurti sistemos būklę. Taigi dizaineris turi apsvarstyti šį variantą ir pasirinkti užduočiai tinkamą MCU, nedarydamas kompromisų, turinčių įtakos sistemos specifikacijai.
2. Dinaminis procesoriaus dažnio keitimas
Tai dar viena plačiai paplitusi technika, skirta efektyviai sumažinti mikrovaldiklio suvartojamos energijos kiekį. Tai yra pati seniausia technika ir šiek tiek sudėtingesnė nei miego režimai. Tai reiškia, kad programinė aparatinė įranga dinamiškai valdo procesoriaus laikrodį, kaitaliodama aukštą ir žemą dažnį, nes ryšys tarp procesoriaus dažnio ir sunaudojamos energijos kiekio yra tiesinis (kaip parodyta žemiau).
Šios technikos įgyvendinimas paprastai vyksta pagal šį modelį; kai sistema neveikia, firmware nustato laikrodžio dažnį mažu greičiu, leidžiančiu prietaisui sutaupyti šiek tiek energijos, o kai sistemai reikia atlikti didelius skaičiavimus, laikrodžio greitis vėl padidinamas.
Yra neproduktyvūs procesoriaus dažnio modifikavimo scenarijai, kurie dažniausiai būna dėl blogai sukurtos programinės aparatinės įrangos. Tokie scenarijai kyla, kai laikrodžio dažnis yra žemas, kol sistema atlieka sunkius skaičiavimus. Žemas dažnis pagal šį scenarijų reiškia, kad sistema užtruks daugiau laiko, nei reikia nustatytai užduočiai atlikti, ir taip sukaups tą patį energijos kiekį, kurį bandė sutaupyti dizaineriai. Taigi, diegiant šią techniką kritiškai svarbioms programoms reikia būti ypač atsargiems.
3. Pertraukite tvarkyklės programinės įrangos struktūrą
Tai yra viena iš kraštutinių mikrovaldiklių galios valdymo metodų. Tai leidžia keli mikrovaldikliai, pvz., ARM cortex-M branduoliai, kurie SCR registre turi „miego-išėjimo“ bitą. Šis antgalis suteikia mikrovaldikliui galimybę miegoti atlikus pertraukimo režimą. Nors tokiu būdu sklandžiai veikiančių programų skaičius yra ribotas, tai gali būti labai naudinga lauko jutiklių ir kitų ilgalaikių duomenų rinkimo programų metodika.
Daugelis kitų metodų, mano nuomone, yra aukščiau minėtų variantų variantai. Pavyzdžiui, selektyviojo periferinio laikrodžio nustatymo technika iš esmės yra miego režimų, kai dizaineris pasirenka periferinius įrenginius, kuriuos įjungti arba išjungti, variantas. Ši technika reikalauja gilių tikslinio mikrovaldiklio žinių ir gali būti nelabai draugiškas pradedantiesiems.
4. Energijai optimizuota programinė įranga
Vienas iš geriausių būdų sumažinti mikrovaldiklio suvartojamos energijos kiekį yra parašyti efektyvią ir gerai optimizuotą programinę-aparatinę įrangą. Tai tiesiogiai veikia procesoriaus per laiką atlikto darbo kiekį, o tai iš esmės prisideda prie mikrovaldiklio sunaudojamos energijos kiekio. Rašant programinę aparatinę įrangą reikia stengtis užtikrinti mažesnį kodo dydį ir ciklus, nes kiekviena nereikalinga instrukcija yra švaistoma baterijoje saugomos energijos dalis. Toliau pateikiami keli įprasti C pagrindu sukurti patarimai, kaip optimizuoti programinės aparatinės įrangos kūrimą;
- Naudokite „Static Const“ klasę kiek įmanoma, kad išvengtumėte masyvų, struktūrų ir pan., Kurie sunaudoja energiją, kopijavimo vykdymo metu.
- Naudokite rodykles. Jie tikriausiai yra sunkiausiai suprantama C kalbos dalis pradedantiesiems, tačiau jie yra geriausi, norint efektyviai pasiekti struktūras ir sąjungas.
- Venkite „Modulo“!
- Kur įmanoma, vietiniai kintamieji, palyginti su visuotiniais. Vietiniai kintamieji yra procesoriuje, o visuotiniai kintamieji yra saugomi RAM, CPU greičiau pasiekia vietinius kintamuosius.
- Nepasirašyti duomenų tipai yra geriausias jūsų draugas, jei įmanoma.
- Jei įmanoma, patvirtinkite kilpų skaičiavimą.
- Vietoj nepasirašytų sveikųjų skaičių bitų laukų naudokite bitų kaukes.
Mikrokontrolerio sunaudojamos energijos kiekio mažinimo būdai neapsiriboja aukščiau minėtais programinės įrangos metodais, egzistuoja aparatūros principais pagrįsti metodai, tokie kaip pagrindinės įtampos valdymo technika, tačiau norėdami išlaikyti šio įrašo ilgį protingame diapazone, mes sutaupysime juos dar vienai dienai.
Išvada
Mažos galios produkto įdiegimas prasideda nuo mikrovaldiklio pasirinkimo ir gali būti gana painu, kai bandote apžvelgti įvairias rinkoje esančias galimybes. Nuskaitydamas duomenų lapas gali gerai veikti, kad gautų bendrą MCU našumą, tačiau galingoms kritinėms programoms tai gali būti labai brangus metodas. Kad suprastų tikrąsias mikrovaldiklio galios charakteristikas, kūrėjai turi atsižvelgti į elektrines specifikacijas ir mažos galios mikrovaldiklio funkcijas. Dizaineriai turėtų būti susirūpinę ne tik dėl kiekvieno maitinimo režimo, kurį reklamuoja MCU duomenų lapas, dabartinio suvartojimo, bet ir pažvelgti į pabudimo laiką, pabudimo šaltinius ir periferinius įrenginius kuriuos galima naudoti esant mažos galios režimams.
Svarbu patikrinti mikrovaldiklio, kurį planuojate naudoti, funkcijas, kad sužinotumėte galimybes, kaip įdiegti mažai energijos. Mikrovaldikliai buvo vieni didžiausių technologijų pažangos naudos gavėjų, ir dabar yra keletas itin mažos galios mikrovaldiklių, kurie užtikrina, kad turite išteklių, kurie padės jums neviršyti savo energijos biudžeto. Daugelis jų taip pat pateikia keletą energijos analizės programinės įrangos įrankių, kuriais galite pasinaudoti, kad galėtumėte efektyviai projektuoti. Asmeninis mėgstamiausias yra „Texas Instrument“ mikrovaldiklių serija „MSP430“.