Duty-cycle: alcune considerazioni

Pubblicato il 6 agosto 2015

Per alcune tipologie di dispositivi, come quelli per applicazioni IoT (Internet of Things) e “indossabili”, l’autonomia della batteria è il fattore chiave. Gli utenti non vogliono assumersi l’onere di ricaricare le batterie e, nel caso di nodi sensori distribuiti, effettuare cambi frequenti della batteria o cicli di ricarica possono risultare operazioni poco pratiche se non addirittura impossibili. Si immagini ad esempio di voler sostituire una pila a bottone di un estensimetro celato all’interno di un pilastro in cemento di un ponte.

Long life batterySebbene si senta spesso parlare dei problemi legati ai consumi di potenza, il vero obbiettivo è rappresentato dall’energia. Nel caso di dispositivi che non possono essere ricaricati, il problema è stabilire di quanta energia avrà bisogno il sistema nel corso della sua vita operativa prevista.

Molti sistemi embedded raggiungono i loro obbiettivi in termini di consumi di potenza funzionando in modo tale che buona parte dei circuiti risultano spenti quando sono inattivi. Togliendo potenza a un circuito laddove possibile, le perdite sono ridotte al minimo in quanto nessuna corrente di alimentazione viene sprecata.

Ottimizzare l’autonomia della batteria significa mantenere il microcontrollore nel suo stato di bassa energia il più a lungo possibile, “risvegliandolo” solamente quanto è richiesto il controllo software per l’elaborazione dei dati in ingresso. Questo si traduce in un duty-cycle (ovvero un fattore di utilizzo) molto basso – verosimilmente il sistema si troverà nello stato di completa attività per non più dell’1% dell’intera vita operativa. Per il restante 99% gran parte dei suoi circuiti sono spenti.

La domanda chiave è dunque la seguente: come e quando “svegliare” il microcontrollore. I sistemi caratterizzati da un basso duty-cycle si possono suddividere in due categorie: reattivi e periodici. Nel funzionamento in modo reattivo, un sistema si trova nello stato di stand-by in attesa di una qualche attività o di un evento prima di iniziare l’elaborazione per poi tornare in uno stato di “deep-sleep”.

Un tipico esempio di sistema reattivo a bassa energia è un dispositivo di allarme usato per il monitoraggio della salute di persone anziane o disabili che si attiva quando un paziente cade:  in questo caso un segnale in uscita da un accelerometro può innescare un interrupt quando rileva un movimento che supera una soglia preimpostata.

I sistemi periodici, invece, si svegliano a intervalli fissi, eseguono un controllo per vedere se si è verificato un evento che merita attenzione, elaborano i dati e quindi ritornano nella modalità di stand-by.  I sistemi in cui è difficile eseguire una verifica di un ingresso rispetto a un valore di soglia possono usare una modalità di “sleep” periodico: alcuni tipi di sensori, come ad esempio quelli per touchscreen e induttivi, spesso rientrano in questa categoria.

Un risveglio periodico può anche sembrare la miglior strategia da adottare nel caso la modalità di “deep sleep” del microcontrollore supporta solamente un interrupt proveniente dal timer del sistema. In alcuni progetti è prevista la disabilitazione di altre fonti di interrupt esterne quando il dispositivo si trova in modalità “deep sleep”,  per cui è richiesto un risveglio su base periodica semplicemente per verificare se nel frattempo è successo qualcosa. Un approccio di questo tipo comporta un dispendio maggiore rispetto a quello reattivo, ma i più frequenti cicli di “risveglio” abbinati alla modalità “deep sleep” si possono tradurre in una maggiore autonomia della batteria rispetto a quella che si otterrebbe facendo girare in una modalità di “sleep” meno “profonda” ma più onerosa in termini di consumi il microcontrollore per la maggior parte del tempo.

Il punto centrale è la scelta di un’architettura che riesca ad abbinare la modalità “deep sleep” con un approccio di tipo reattivo. Esistono RTC (Real Time Clock) a bassissima energia che possono verificare l’esistenza di problematiche esterne, come ad esempio quelle provocate da interrupt hardware o da variazioni  della tensione di ingresso rilevate da un comparatore.

Nel momento un cui viene rilevato un evento esterno, il sistema può svegliarsi rapidamente, senza incorrere nella penalizzazione, in termini di consumi, tipica della strategia di polling (interrogazione ciclica), ottimizzando il periodo di tempo in cui il sistema si trova nello stato “deep sleep”.

Poiché il consumo di potenza di un microcontrollore nello stato attivo è di ordini di grandezza superiore rispetto a quelli dei migliori RTC disponibili sul mercato, come quelli prodotti da Ambiq, anche una riduzione dell’1% ha un impatto significativo.

Così, nella progettazione di un microcontrollore efficiente in termini di consumi, è importante individuare il compromesso ottimale a livello di sistema tra tensione, consumi e prestazioni mentre il microcontrollore è nello stato attivo. Ambiq ha condotto un’analisi esaustiva su questa tematica e ha messo a punto la piattaforma SPOT (Sub-Threshold Power Optimised) che rappresenta la base dei microcontrollori della serie Apollo.

Questa tecnologia assicura l’impiego dei livelli di tensione e di corrente più adatti durante ogni fase del ciclo di vita del microcontrollore, indipendentemente dalla strategia adottata per il duty-cycle.

Mike Salas, vice president marketing di Ambiq Micro



Contenuti correlati

Scopri le novità scelte per te x