- Mikrokontrolleru enerģijas taupīšanas paņēmieni
- 1. Miega režīmi
- 2. Procesora frekvences dinamiskā modifikācija
- 3. Pārtrauciet apstrādātāja programmaparatūras struktūru
- 4. Ar enerģiju optimizēta programmaparatūra
- Secinājums
Tāpat kā gāze (benzīns / dīzeļdegviela) ir svarīga velosipēdu, kravas automašīnu un automašīnu (jā, izņemot Teslas!) Kustībai, tāpat kā elektroenerģija ir lielākajai daļai elektronikas lietojumu un vēl vairāk - iegultās sistēmas balstītām lietojumprogrammām, kuras parasti ir akumulatori (ierobežots enerģijas patēriņš), sākot no parastajiem mobilajiem tālruņiem līdz viedās mājas ierīcēm.
Akumulatora enerģijas ierobežotais raksturs nozīmē nepieciešamību nodrošināt saprātīgu šo ierīču enerģijas patēriņa ātrumu, lai veicinātu to pieņemšanu un lietošanu. Īpaši ar ierīcēm, kuru pamatā ir IoT, kur varētu sagaidīt, ka ierīce ar vienu uzlādi bez akumulatora nomaiņas darbosies pat 8 - 10 gadus.
Šīs tendences ir veicinājušas zemas jaudas apsvērumu ieviešanu iegulto sistēmu projektēšanā, un gadu gaitā dizaineri, inženieri un ražotāji vairākos punktos ir izstrādājuši vairākus viedus veidus, kā efektīvi pārvaldīt produktu patērēto enerģiju, lai nodrošinātu, ka tie ilgst ilgāk. viena maksa. Daudzi no šiem paņēmieniem koncentrējas uz mikrokontrolleru, kas ir lielākās daļas ierīču sirds. Šodienas rakstā mēs izpētīsim dažus no šiem paņēmieniem un to, kā tos var izmantot, lai samazinātu enerģijas patēriņu mikrokontrolleros. Lai gan mikroprocesors patērē mazāk enerģijas, taču to var izmantot, novietojot to uz mikrokontrollera visur, sekojiet saitei, lai uzzinātu, kā mikroprocesors atšķiras no mikrokontrollera.
Mikrokontrolleru enerģijas taupīšanas paņēmieni
1. Miega režīmi
Miega režīmi (parasti tiek saukti par mazjaudas režīmiem), iespējams, ir vispopulārākais paņēmiens, kā samazināt enerģijas patēriņu mikrokontrolleros. Tie parasti ietver noteiktu shēmu vai pulksteņu atspējošanu, kas vada noteiktus mikrokontrolleru perifēros.
Atkarībā no arhitektūras un ražotāja mikrokontrolleriem parasti ir dažāda veida miega režīmi, un katram režīmam ir iespēja atspējot vairāk iekšējo shēmu vai perifērijas ierīču, salīdzinot ar citu. Miega režīmi parasti svārstās no dziļa miega vai izslēgta, līdz dīkstāves un snaudas režīmiem.
Daži no pieejamajiem režīmiem ir paskaidroti tālāk. Jāatzīmē, ka šo režīmu raksturojums, kā arī nosaukums katram ražotājam var atšķirties.
i. Gaidīšanas / miega režīms
Parasti dizaineriem tas ir vienkāršākais no mazjaudas režīmiem. Šis režīms ļauj mikrokontrollerim atgriezties pilnīgā darbībā ļoti ātri. Tāpēc tas nav labākais režīms, ja ierīces strāvas cikls prasa ļoti bieži atstāt miega režīmu, jo tiek patērēts liels enerģijas daudzums, kad mikrokontrolleris iziet no miega režīma. Atgriešanās aktīvajā režīmā no gaidīšanas režīma parasti tiek pārtraukta. Šis režīms tiek ieviests mikrokontrollerī, izslēdzot pulksteņa koku, kas vada CPU shēmu, kamēr MCU primārais augstfrekvences pulkstenis turpina darboties. Ar to CPU var atsākt darbību tūlīt, kad tiek aktivizēts modināšanas sprūda. Pulksteņa vārti tiek plaši izmantoti, lai mazkontrolieriem izslēgtu signālus mazjaudas režīmos, un šis režīms efektīvi pārraida pulksteņa signālus visā CPU.
ii. Gaidīšanas režīmā
Gaidīšanas režīms ir vēl viens mazjaudas režīms, kuru dizaineriem ir viegli ieviest. Tas ir ļoti līdzīgs dīkstāves / miega režīmam, jo tas ietver arī pulksteņa vārtu izmantošanu visā centrālajā procesorā, taču viena būtiska atšķirība ir tā, ka tas ļauj mainīt cilindra saturu, kas parasti nav gaidīšanas / miega režīmā. Gaidīšanas režīmā tiek palaistas ātrdarbīgas perifērijas ierīces, piemēram, DMA (tieša piekļuve atmiņai), sērijas ostas, ADC un AES perifērijas ierīces, lai nodrošinātu, ka tās ir pieejamas tūlīt pēc centrālā procesora nomodā. Dažiem MCU arī RAM tiek saglabāts aktīvs, un DMA tam var piekļūt, ļaujot datus uzglabāt un saņemt bez centrālā procesora iejaukšanās. Šajā režīmā patērētā jauda var būt maza kā 50uA / MHZ mazjaudas mikrokontrolleriem.
iii. Dziļā miega režīms
Dziļā miega režīms parasti ietver augstas frekvences pulksteņu un citu mikrokontrollera ķēžu atspējošanu, atstājot tikai pulksteņa shēmas, kuras izmanto kritisko elementu, piemēram, sargsuns taimera, vadīšanai, brūnas krāsas noteikšanai un atiestatīšanas ķēdes ieslēgšanai. Citi MCU var pievienot tam citus elementus, lai uzlabotu vispārējo efektivitāti. Enerģijas patēriņš šajā režīmā var būt tik zems kā 1uA atkarībā no konkrētā MCU.
iv. Stop / OFF režīms
Dažiem mikrokontrolleriem ir dažādas šī papildu režīma variācijas. Šajā režīmā gan augstie, gan zemie oscilatori parasti tiek atspējoti, atstājot ieslēgtus tikai dažus konfigurācijas reģistrus un citus kritiskos elementus.
Visu iepriekš minēto miega režīmu iezīmes atšķiras no MCU līdz MCU, bet vispārējais īkšķa noteikums ir; jo dziļāks miegs, jo vairāk perifēro ierīču skaits miega laikā ir invalīds, un mazāks patērētās enerģijas daudzums, lai gan tas parasti arī nozīmē; jo lielāks enerģijas daudzums tiek patērēts sistēmas atjaunošanai. Tādējādi dizaineram ir jāapsver šī variācija un jāizvēlas uzdevumam pareizais MCU, neveicot kompromisus, kas ietekmē sistēmas specifikāciju.
2. Procesora frekvences dinamiskā modifikācija
Tas ir vēl viens plaši populārs paņēmiens, kā efektīvi samazināt mikrokontrollera patērētās enerģijas daudzumu. Tas ir līdz šim vecākais paņēmiens un nedaudz sarežģītāks nekā miega režīmi. Tas ietver programmaparatūru dinamiski virzīt procesora pulksteni, mainot augstu un zemu frekvenci, jo sakarība starp procesora frekvenci un patērēto enerģijas daudzumu ir lineāra (kā parādīts zemāk).
Šīs tehnikas ieviešana parasti notiek pēc šī modeļa; kad sistēma ir tukšgaitā, programmaparatūra pulksteņa frekvenci iestata uz mazu ātrumu, ļaujot ierīcei ietaupīt nedaudz enerģijas, un, kad sistēmai jāveic smagi aprēķini, pulksteņa ātrums tiek atkal palielināts.
Procesora frekvences modificēšanai ir neproduktīvi scenāriji, kas parasti ir slikti izstrādātas programmaparatūras rezultāts. Šādi scenāriji rodas, ja pulksteņa frekvence tiek turēta zemā līmenī, kamēr sistēma veic smagus aprēķinus. Zema frekvence šajā scenārijā nozīmē, ka sistēma prasīs vairāk laika, nekā nepieciešams, lai veiktu iestatīto uzdevumu, un tādējādi akumulatīvi patērēs tādu pašu enerģijas daudzumu, kādu dizaineri centās ietaupīt. Tādējādi, lietojot šo tehniku laikus kritiskās lietojumprogrammās, jāpievērš īpaša piesardzība.
3. Pārtrauciet apstrādātāja programmaparatūras struktūru
Šī ir viena no ekstrēmākajām jaudas pārvaldības metodēm mikrokontrolleros. To nodrošina daži mikrokontrolleri, piemēram, ARM cortex-M serdeņi, kuriem SCR reģistrā ir bits no miega uz izeju. Šis bits nodrošina mikrokontrolleru spēju gulēt pēc pārtraukuma rutīnas palaišanas. Lai gan šādā veidā nevainojami darbojošos lietojumprogrammu skaits ir ierobežots, tas varētu būt ļoti noderīgs paņēmiens lauka sensoriem un citām ilgtermiņa datu vākšanas programmām.
Lielākā daļa citu paņēmienu, manuprāt, ir jau iepriekš minēto varianti. Piemēram, selektīvā perifērijas pulksteņa paņēmiens būtībā ir miega režīmu variācija, kurā dizaineris izvēlas perifērijas ierīces, kuras ieslēgt vai izslēgt. Šis paņēmiens prasa dziļas zināšanas par mērķa mikrokontrolleru un, iespējams, nav ļoti draudzīgs iesācējiem.
4. Ar enerģiju optimizēta programmaparatūra
Viens no labākajiem veidiem, kā samazināt mikrokontrollera patērētās enerģijas daudzumu, ir efektīvas un labi optimizētas programmaparatūras rakstīšana. Tas tieši ietekmē CPU vienā laikā paveiktā darba apjomu, un tas papildina mikrokontrollera patērētās enerģijas daudzumu. Rakstot programmaparatūru, jāpieliek pūles, lai nodrošinātu mazāku koda lielumu un ciklus, jo katra nevajadzīga izpildītā instrukcija ir daļa no akumulatorā uzkrātās enerģijas. Tālāk ir sniegti daži izplatīti C padomi optimizētai programmaparatūras izstrādei;
- Cik vien iespējams izmantojiet klasi “Static Const”, lai nepieļautu masīvu, struktūru uc kopēšanu izpildes laikā, kas patērē enerģiju.
- Izmantojiet rādītājus. Iesācējiem, iespējams, tās ir visgrūtāk saprast C valodā, taču tās ir vislabākās, lai efektīvi piekļūtu struktūrām un savienībām.
- Izvairies no Modulo!
- Lokālie mainīgie salīdzinājumā ar globālajiem mainīgajiem, ja iespējams. Vietējie mainīgie atrodas CPU, kamēr globālie mainīgie tiek saglabāti RAM, centrālais procesors ātrāk piekļūst vietējiem mainīgajiem.
- Parakstītie datu tipi ir jūsu labākais draugs, ja iespējams.
- Ja iespējams, pieņemiet cilpu “atpakaļskaitīšanu”.
- Parakstītu veselu skaitļu bitu lauku vietā izmantojiet bitu maskas.
Pieejas mikrokontrollera patērētās enerģijas apjoma samazināšanai neaprobežojas ar iepriekšminētajām programmatūras balstītajām pieejām, pastāv aparatūras bāzes pieejas, piemēram, kodola sprieguma vadības tehnika, taču, lai saglabātu šīs ziņas garumu saprātīgā diapazonā, mēs ietaupīsim tos vēl uz vienu dienu.
Secinājums
Zema enerģijas patēriņa produkta ieviešana sākas ar mikrokontrollera izvēli, un tas var būt diezgan mulsinošs, mēģinot aplūkot dažādās tirgū pieejamās iespējas. Skenējot, datu lapa var darboties labi, lai iegūtu vispārēju MCU veiktspēju, bet jaudai kritiskām lietojumprogrammām tā var būt ļoti dārga pieeja. Lai saprastu mikrokontrollera patiesās jaudas īpašības, izstrādātājiem jāņem vērā elektriskās specifikācijas un mikrokontrollerim pieejamās mazjaudas funkcionalitātes. Dizaineriem vajadzētu uztraukties ne tikai par strāvas patēriņu katrā no MCU datu lapā reklamētajiem enerģijas režīmiem, bet arī izpētīt pamošanās laiku, pamošanās avotus un perifērijas ierīces kas ir pieejami lietošanai mazjaudas režīmos.
Ir svarīgi pārbaudīt mikrokontrollera funkcijas, kuras plānojat izmantot, lai pārliecinātos, kādas iespējas ir zemas jaudas ieviešanai. Mikrokontrolleri ir bijuši vieni no lielākajiem ieguvumiem no tehnoloģiju attīstības, un tagad ir vairāki īpaši mazjaudas mikrokontrolleri, kas nodrošina, ka jums ir resursi, lai palīdzētu jums nepārsniegt jaudas budžetu. Vairāki no tiem nodrošina arī vairākus enerģijas analīzes programmatūras rīkus, kurus varat izmantot efektīvai projektēšanai. Personīgs favorīts ir MSP430 mikrokontrolleru līnija no Texas Instrument.