Mcu per IoT a consumo ultra basso

2477467_PR-Image-ADuCM302x-1860x1860-300dpi_WEB

Internet delle Cose sta pilotando la nuova rivoluzione tecnologica e, affinché le cose possano connettersi alla rete, è necessario che siano smart, ovvero dotate di intelligenza. Questo significa che devono essere equipaggiate con un microcontrollore e un software che gestisca le interfacce, da una parte verso il mondo reale, ovvero i sensori, dall’altra verso Internet tramite il nodo di comunicazione. Quali sono dunque i requisiti che devono soddisfare i microcontrollori per le applicazioni IoT? Ovviamente dipende dall’applicazione, e questo apre la porta a un ampio ventaglio di possibilità. Tuttavia si può individuare un insieme di requisiti che aiutano a orientarsi nella scelta. Tra questi ce ne sono tre universalmente riconosciuti, ovvero la connessione senza fili, sia per la parte di comunicazione che per la parte di alimentazione, la sicurezza informatica, ovvero la trasmissione di dati che non siano facilmente intercettabili e interpretabili da esterni per usi illeciti, e infine l’affidabilità, ovvero la capacità di lavorare al meglio delle prestazioni nel tempo in un contesto che può rivelarsi ostile. C’è un altro aspetto correlato alla funzione dell’oggetto. Il concetto odierno è che gli oggetti acquisiscano dei dati e li inviino nel Cloud dove vengono elaborati per estrarre le informazioni richieste. Questo comporta l’invio di una quantità di dati spesso ridondante o priva di informazione, con conseguenti impatti sulla banda del canale di trasmissione e sul consumo di energia. Il trend per il futuro è quindi di dotare i vari nodi di un livello di intelligenza più elevato, che consenta una prima interpretazione dei dati e l’invio solo di informazioni utili per l’applicazione. Ne consegue che i microcontrollori per applicazioni IoT devono essere a basso consumo, dotati di meccanismi di protezione dei dati e dei programmi, in grado di effettuare della diagnostica per garantire la correttezza dei dati forniti e forniti di una buona capacità di calcolo.


Basso consumo e sicurezza informatica

Quali sono dunque i parametri da considerare quando si vuole scegliere un Mcu a basso consumo? Il consumo in active mode è sicuramente il parametro fondamentale, ma non basta. L’oggetto potrebbe essere inattivo per lunghi periodi, in questo caso è conveniente mettere il sistema in uno stato dormiente, e allora diventa fondamentale il consumo in stand-by. I due estremi del consumo di corrente sono Active Mode, durante il quale il microcontrollore opera a piena potenza, e shutdown, durante il quale non viene effettuata alcuna operazione. Nel mezzo possono esserci altre modalità che comportano un funzionamento con prestazioni ridotte al fine di abbassare il consumo di potenza. Esistono poi altri meccanismi di cui il dispositivo può essere dotato che portano a una riduzione di consumo complessiva del sistema in cui il microcontrollore viene utilizzato. Ad esempio, un’unità di clock flessibile o l’integrazione di un’unità di power management che utilizzi convertitori switching ad alta efficienza. Per le varie modalità di funzionamento i costruttori definiscono diverse condizioni operative per cui diventa difficoltoso orientarsi. Esistono tuttavia degli istituti, come l’Eembc (Embedded microprocessor benchmark consortium), che utilizzano metodi standard come l’ULPBench per valutare il consumo di potenza. Un altro aspetto fondamentale è la sicurezza informatica. Da un lato si vogliono trasmettere dati che non siano intercettabili, e in questi casi si ricorre a tecniche di crittografia. Un acceleratore hardware per la crittografia aiuta a ridurre i tempi di esecuzione, salvaguardando la capacità di calcolo del processore, ma anche il consumo. La sicurezza implica anche la salvaguardia delle proprietà intellettuali, e l’impossibilità a riprogrammare il sistema da parte di hacker. Il micro deve pertanto essere equipaggiato con sistemi di protezione di lettura e scrittura della memoria. Infine, l’ambiente in cui il sistema può trovarsi a operare può essere soggetto a disturbi elettromagnetici, variazioni di temperatura e elevata umidità. Un ambiente ostile espone il sistema a malfunzionamenti e potenziali errori. Un Mcu dotato di diagnostica e meccanismi per il rilevamento e la correzione degli errori contribuisce alla costruzione di un sistema robusto e affidabile.

Cortex M3 a consumo ultra-basso

Analog Devices propone una nuova famiglia di microcontrollori per IoT, progettata e ottimizzata per un consumo ultra basso. Infatti in Active Mode il consumo è inferiore a 38µA/MHz mentre in Hibernate, con ritenzione della memoria, consuma meno di 750nA. La tensione di alimentazione va da 1,8 V a 3,6 V, consentendo l’utilizzo di una batteria a singola cella. Il dispositivo è anche dotato di un’unità di power management interna, che comprende un Ldo e un regolatore buck ad alta efficienza, per generare la tensione a 1.2V interna. Sono previste quattro modalità di funzionamento, Active, Flexi, Hibernate e Shutdown, che consentono di ottimizzare il consumo di energia a seconda dello stato del sistema. Il micro raggiunge il ragguardevole punteggio di 245.5 nel test ULPBench dell’Eembc. In Fig. 2 è riportato lo schema a blocchi funzionale. Il core è un Cortex M3 con unità di protezione della memoria. La frequenza massima del core è 26 MHz. Le istruzioni sono a 16/32 bit, i dati possono essere a 8/16/32 bit. La memoria Flash arriva fino a 256 kB ed è provvista di un sistema di correzione degli errori. Una chiave utente fissa viene richiesta per eseguire comandi protetti, come “mass erase” oppure “page erase”. Un meccanismo simile si applica per la scrittura delle locazioni di memoria accessibili all’utente. 64 kB di Sram configurabili, con controllo di parità, di cui 4 kB utilizzabili come cache. La cache risulta particolarmente utile quando si esegue il programma dalla Flash, riducendo il numero di accessi. La Sram può essere ripartita in 32 kB per le istruzioni e 32 kB per i dati. In modalità Hibernate, è possibile ritenere una quantità di Sram fino a un massimo di 32 kB. Due oscillatori interni consentono di generare le due frequenze di clock a 26 MHz e 32 kHz. Se è richiesta dall’applicazione una maggiore precisione e stabilità è possibile connettere dei cristalli esterni. Il sistema è anche provvisto di Pll con divisori programmabili per generare frequenze che non siano sottomultiplo di 26 MHz.

Per un sistema sicuro e affidabile

Abbiamo già detto del consumo ultra basso, vediamo ora le altre caratteristiche che consentono di realizzare un sistema sicuro e affidabile. Per quanto riguarda l’affidabilità il sistema è provvisto di monitoraggio delle tensioni, sia quella di batteria che della tensione regolata. Il monitoraggio avviene sia in active mode che nelle modalità sleep; sono previste più soglie, in modo da poter allertare il sistema con sufficiente anticipo e provvedere al salvataggio dei dati importanti e dello stato. Il Watchdog, connesso all’oscillatore a bassa frequenza, consente di recuperare da situazioni di stallo del software. Come già accennato, la memoria Flash è provvista di Ecc (Error correction code) mentre sulla Sram c’è il controllo di parità che consente di rilevare eventuali errori casuali. Inoltre sul contenuto della Flash viene effettuato un controllo a ridondanza ciclica prima dell’esecuzione del programma. Il Crc può essere inoltre calcolato per verificare l’integrità della Sram e della Flash in qualsiasi momento. Per quanto concerne la sicurezza informatica il dispositivo è provvisto di un acceleratore hardware per la crittografia. Questa funzione consente di ridurre drasticamente i cicli macchina per crittografare i dati. Ad esempio, volendo realizzare un Aes-128, in software sono richiesti 1728 cicli, mentre l’acceleratore richiede soltanto 40 cicli, senza intervento del processore. Il processore supporta lo standard Aes, con crittografia a chiave simmetrica a 128 e 256 bit. Per quanto riguarda l’autenticazione il dispositivo supporta il codice Ceb-Mac (Cipher Block Chaining Message Authentication Code) che è un tecnica per costruire un codice di autenticazione di messaggio usando un cifrario a blocchi. Per la verifica dei dati ricevuti, per stabilire che non siano stati alterati, viene fornita la funzione Sha-256. Infine viene fornito un generatore di numeri casuali, utile nel generare valori imprevedibili per le comunicazioni sicure. Per quanto riguarda la protezione dagli accessi il dispositivo è protetto sia in lettura, per la protezione del codice e dei dati, che in scrittura, al fine di evitare riprogrammazioni non autorizzate. Utenti non autorizzati non possono avere accesso alla Flash, alla Ram, o ai registri del processore e delle periferiche. È inoltre possibile attivare una protezione che inibisce la riprogrammazione in-circuit del dispositivo con codice non autorizzato. Il dispositivo è inoltre provvisto di tutta una serie di periferiche digitali per potersi connettere con dispositivi esterni. In particolare ha due Real Time Clock, uno dei due denominato Flex_Rtc che supporta la modalità SensorStrobe per la sincronizzazione con un sensore esterno. A completare l’architettura c’è la sezione analogica, che comprende un convertitore analogico digitale di tipo Sar a 12 bit, 1,8 Msps. I canali analogici sono otto, configurati come single ended, e la conversione può avvenire nelle due modalità single-cycle o auto-cycle. Sono disponibili anche dei comparatori digitali, un sensore di temperatura e un voltage reference di precisione.

Pubblica i tuoi commenti