Ridurre il consumo energetico

Tra batterie da sostituire e ricaricare, a volte ho l'impressione di stare costantemente dietro a dispositivi elettronici scarichi. Anche se presto sempre abbastanza attenzione allo stato della carica, accade spesso che il mio fitness tracker o gli auricolari Bluetooth mi lascino a piedi durante un allenamento. Per non parlare della batteria dello smartphone che decide spesso di abbandonarmi nel momento peggiore. So che non sono da solo in questo.

Provate a immaginare questa esperienza personale limitata a un numero limitato di dispositivi elettronici, con un'applicazione per Internet delle cose (IoT), con migliaia di dispositivi alimentati a batteria: è facile immaginarsi applicazioni che vanno fuori servizio per via della mancata manutenzione delle batterie. In reti IoT su larga scala di questo tipo (ma vale anche per i dispositivi personali), il desiderio di avere dati più immediati da sensori sempre in funzione ingigantisce il problema dell'alimentazione. Fortunatamente l'immagine di apparecchiature elettroniche spente a causa di batterie scariche diventerà sempre meno realistica man mano che i produttori di silicio perfezioneranno l'efficienza energetica dei microcontroller, alleggerendo allo stesso tempo il carico di elaborazione del processore principale.

Gestione energetica classica migliorata dalle tecnologie avanzate

L'immagine tipica che abbiamo dei sistemi basati su microcontroller si fonda principalmente sul ciclo di lavoro del processore principale, da cui in genere dipende la maggior parte del consumo energetico dei sistemi embedded di piccole dimensioni. I progettisti hanno imparato che è necessario ridurre al minimo il tempo in cui il processore rimane attivo al massimo consumo. La realtà contraria, cioè un sistema vincolato in termini di consumi, punta a permettere al processore di rimanere nella modalità di sospensione a basso consumo per il maggior tempo possibile. Per le applicazioni che devono raccogliere periodicamente dati da sensori, gli sviluppatori lasciano il processore in modalità di sospensione e lo riattivano mediante interrupt delle periferiche solo per il tempo necessario a raccogliere ed elaborare i dati, prima di riportarlo nello stato di sospensione.

L'emergere di periferiche su chip più sofisticate ha permesso agli sviluppatori di aumentare il tempo trascorso dal processore nello stato di sospensione. I microcontroller ormai integrano periferiche come i convertitori analogico/digitali (ADC), che sono in grado di raccogliere dati da sensori senza riattivare il processore principale. I produttori di semiconduttori hanno ampliato ulteriormente questo concetto realizzando architetture di microcontroller più avanzate per supportare modalità energetiche intermedie, a metà strada tra uno stato di completa attivazione e uno di completa sospensione. In questi dispositivi, le modalità intermedie possono attivare selettivamente i diversi distinti domini energetici per il core del processore, la memoria su chip e le periferiche analogiche e digitali.

Famiglie di processori avanzati, come i microcontroller Darwin di Maxim Integrated, vanno addirittura oltre, con un'ampia serie di meccanismi progettati appositamente per ridurre il consumo energetico senza compromettere le funzionalità dell'applicazione e le prestazioni previste (vedere "Creare dispositivi intelligenti più efficaci: Parte 1 – Progettare per il basso consumo con MCU e PMIC"). Gli sviluppatori possono così trovare un miglior compromesso tra consumi e prestazioni in base ai vincoli di potenza disponibile.

Le periferiche hanno un processore dedicato

Per poter separare le funzionalità periferiche dall'elaborazione core, nei microcontroller più avanzati i sistemi periferici sono dotati di processori dedicati. Ad esempio, la serie Darwin di Maxim Integrated, come molti dispositivi della stessa classe, include un'unità di gestione delle periferiche (PMU) che va oltre il supporto standard per le operazioni di accesso diretto alla memoria (DMA), includendo la programmazione Round-Robin e altre funzionalità più avanzate.

La diffusione delle capacità di elaborazione oltre il core del processore rappresenta la base di alcuni degli approcci più efficaci disponibili attualmente per ridurre il consumo energetico e migliorare le prestazioni. Un chiaro esempio di questa tendenza sono gli acceleratori hardware crittografici integrati nei microcontroller più avanzati, progettati per l'IoT o altre applicazioni connesse. Rendendo più rapida l'esecuzione degli algoritmi, gli acceleratori dedicati permettono al dispositivo di tornare più velocemente in uno stato di basso consumo.

Un esempio più interessante di questa tendenza è dato dai microcontroller wireless come quelli della famiglia SimpleLink di Texas Instruments. Ad esempio, il microcontroller wireless Bluetooth Low Energy (BLE) CC2640R2F di Texas Instruments combina un processore principale Arm® Cortex®-M3 e un sottosistema BLE dedicato che comprende un processore Arm Cortex-M0 dedicato e un transceiver a radiofrequenza (RF) (Figura 1).

Figura 1: Microcontroller wireless avanzati, come il BLE CC2640R2F di Texas Instruments, ottimizzano il consumo energetico mediante un core di processore Arm Cortex-M0 ad alta efficienza energetica per garantire la connettività wireless anche quando il processore principale Arm Cortex-M3 è in sospensione. (Immagine per gentile concessione di Texas Instruments)

Mentre il processore principale esegue l'applicazione, il processore Cortex-M0 non è disponibile per lo sviluppatore ed esegue solo lo stack di protocollo BLE. Il core Cortex-M0 ad elevata efficienza energetica può continuare a funzionare a livelli di potenza ridotti mentre il processore principale è in modalità di sospensione e quindi può garantire connettività costante senza incidere eccessivamente su potenze disponibili ridotte.

L'esigenza di avere dispositivi sempre attivi naturalmente non riguarda solo la connettività. Per un numero sempre crescente di applicazioni di rilevamento, gli utenti si aspettano che i dispositivi rispondano istantaneamente alle variazioni di temperatura, movimento, qualità dell'aria e non solo. Con i metodi convenzionali, questo stato di attività costante obbligherebbe il microcontroller a funzionare praticamente sempre nello stato attivo, per raccogliere ed esaminare i dati relativi agli eventi significativi.

Molti sensori avanzati permettono di programmare soglie minime e massime per l'attivazione di un interrupt, in modo da consentire al microcontroller di rimanere in modalità di sospensione fino al verificarsi dell'evento che supera la soglia. In alcune applicazioni però la presenza di questa soglia non è sufficiente. Un sensore di movimento sempre in funzione, ad esempio, potrebbe avere la necessità di riconoscere caratteristiche che variano o che si ripetono in modo simile nei valori misurati di accelerazione o orientamento, perché possono indicare che l'utente che ha il dispositivo sta camminando, correndo, salendo le scale, facendo una curva o eseguendo altre attività. Anche in presenza di sensori avanzati in grado di agire in base a soglie, il microcontroller host dovrebbe comunque rimanere attivo per identificare queste variazioni. Il modulo sensore LSM6DSOX di STMicroelectronics è invece in grado di identificare modelli di interesse grazie alla macchina a stati finiti e al motore di elaborazione dell'albero decisionale incorporati.

Per gli sviluppatori, funzionalità come operazioni periferiche autonome, motori di elaborazione dedicati ed elaborazione locale dei sensori sono solo alcuni dei metodi disponibili per contribuire ad alleviare il carico sulla batteria.

Bibliografia:

Creare dispositivi intelligenti più efficaci: Parte 1 – Progettare per il basso consumo con MCU e PMIC – https://www.digikey.it/it/articles/techzone/2018/oct/build-more-effective-smart-devices-part-1-low-power-design-mcus-pmics

Informazioni su questo autore

Image of Stephen Evanczuk

Stephen Evanczuk ha più di 20 anni di esperienza come autore sull'industria elettronica e ha scritto su una vasta gamma di argomenti tra cui hardware, software, sistemi e applicazioni, incluso l'IoT. Ha ricevuto un Ph.D. in neuroscienze sulle reti neuronali e ha lavorato nel settore aerospaziale su sistemi di sicurezza ampiamente distribuiti e sui metodi di accelerazione algoritmica. Attualmente, quando non scrive articoli su tecnologia e ingegneria, lavora su applicazioni di deep learning per i sistemi di riconoscimento e di raccomandazione.

More posts by Stephen Evanczuk
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum