Ultra small e ultra low-power

I microcontrollori rappresentano il settore più competitivo della microelettronica, sia per la pervasività che caratterizza questo dispositivo, sia per la tendenza al system-on-chip. Pur diventando sempre più complessi e funzionalmente omnicomprensivi, i microcontrollori stanno riducendo in maniera eccezionale le dimensioni e i consumi energetici, aprendo in tal modo spazi applicativi prima inimmaginabili e caratterizzati da volumi estremamente elevati nel campo dei sistemi embedded in generale, ma soprattutto dei sistemi wearable e Internet of Things in particolare. I sistemi wearable e di Internet of Things caratterizzeranno il prossimo decennio in termini di “miliardi“ di dispositivi e di applicazioni connessi ad altri dispositivi ed applicazioni, direttamente o tramite la rete. Il concetto di controllo e monitoraggio intelligente e automatico in tempo reale diventerà il paradigma più importante delle applicazioni sia a livello personale, sia a livello ambientale. Per esempio, opportuni dispositivi wearable potranno monitorare continuamente e in maniera non invasiva i parametri fisiologici di una persona e programmare automaticamente in suo check-up presso il servizio sanitario. Per esempio, il classico termostato che controlla la temperatura in casa potrà non semplicemente accendere e spegnere il sistema di climatizzazione in base al tempo e alla temperatura, ma anche in base alle esigenze climatiche delle persone e alla loro presenza. I microcontrollori svolgono un ruolo fondamentale nello sviluppo del Cloud Connected Embedded System che caratterizzerà applicazioni come i controlli remoti, la diagnostica remota, la riprogrammabilità remota dei dispositivi, la memorizzazione remota di dati e la loro elaborazione ed altre applicazioni che necessitano di un livello computazionale elevato, ma che sono etremamente embedded in termini di consumo di potenza elettrica, di dimensioni, di costo. Il microcontrollore, in un contesto di Cloud Connected Embedded System, deve soprattutto consentire la fattibilità dell’applicazione e la sua connettività in modo da avvalersi delle capacità computazionali, di memoria e funzionali della rete. Questa nuova natura dei sistemi embedded e della loro applicabilità evidenzia requisiti più stringenti soprattutto in termini di portabilità, quindi di dimensioni e di consumi di potenza elettrica ultra ridotti o addirittura infinitesimali. I microcontrollori sono il componente più importante dei sistemi embedded in quanto consentono di implementare la maggior parte della funzionalità di tali sistemi senza dover ricorrere alla logica dedicata o ad altre soluzioni hardware che non consentono di ottimizzare i tre principali fattori di tali sistemi: dimensioni, consumo energetico e costi. La peculiarità delle Mcu sta nella loro versatilità o meglio ancora nell’estremamente ampia offerta di architetture, sia computazionali, sia di sistema, che consentono di ottimizzare praticamente qualsiasi tipo di applicazione. Anche se le Mcu a 32 bit stanno diventando sempre più attrattive relativamente alle applicazioni embedded, le architetture a 8 e 16 bit riscuotono attualmente, e probabilmente riscuoteranno anche in futuro, molto interesse da parte degli sviluppatori. Le Mcu a 8 bit sono ancora molto utilizzate, malgrado queste potrebbero apparire superate dalle caratteristiche dimensionali, di consumo energetico e di costo delle architetture a 16 e 32 bit. In realtà, pur non essendo in primo piano come le Mcu a 32 bit, sono di fatto estremamente attuali per lo sviluppo dei sistemi embedded, soprattutto quelli relativi ad applicazioni come le macchine distributrici di cibo e bevande, i piccoli elettrodomestici, le macchine del caffè, i sensori, i controller, i carica batterie, i sistemi di misura del gas e dell’elettricità, e moltissime altre applicazioni in cui il livello computazionale non è critico. La ragione della scelta di una Mcu a 8 bit rispetto a una a 16 o 32 bit non sta solo nei bassi requisiti computazionali dell’applicazione, ma anche nei requisiti elettrici dell’applicazione, per esempio l’alimentazione a 5 volt. Le architetture a 16 e 32 bit, per poter essere incapsulate in package piccoli come quelli delle Mcu a 8 bit (superfici di qualche millimetro per lato), devono considerevolmente tenere bassa la tensione di alimentazione, rendendo più problematico il livello di affidabilità delle periferiche e delle memorie. Le Mcu a 16 bit sono meno utilizzate delle Mcu a 8 bit e di quelle a 32 bit proprio perché, da versanti opposti, i campi applicativi vedono le Mcu a 8 e quelle a 32 bit concorrenziali con le Mcu a 16 bit. Comunque, anche se in quantità più limitata, le Mcu a 16 bit risultano ottimali in applicazioni in cui sono richieste operazioni computazionalmente intensive a frequenze di clock limitate. Le Mcu a 32 bit, grazie alla riduzione dimensionale, di costo e di consumo di potenza, rappresentano la soluzione ottimale per una sempre più ampia gamma di applicazioni in cui il livello computazione è abbastanza alto e allo stesso tempo la disponibilità di memoria di programma è molto limitata.

Le architetture a 8 bit

Le Mcu a 8 bit si sono evolute moltissimo nel tempo, adottando soluzioni computazionali che hanno superato la tradizionale architettura Cisc (Complex Instruction Set Computer) a favore di altre soluzioni come ad esempio l’architettura Harvard e la soluzione simil-Risc (Reduced Instruction Set Computer). Grazie a questa evoluzione le Mcu a 8 si sono molto diversificate rendendo più ampi i campi applicativi. Microchip ha recentemente introdotto nuovi dispositivi a 8 bit che evidenziano il vantaggio dello small factor nelle applicazioni embedded. PIC 16LF1544 e PIC16LF1559 di Microchip sono microcontrollori a 8 bit che integrano due Adc a 10 bit da 100 kSPS con un hardware Capacitive Voltage Driver che consente di supportare la funzionalità di touch capacitivo. Grazie alla configurazione è possibile acquisire da sensore in maniera efficiente e utilizzare tecniche di touch sensing avanzato in contesti applicativi ad elevato livello di rumore. Questi microcontrollori a 8 bit integrano 14 kbyte di memoria Flash e 512 byte di memoria Ram, operano a 32 MHz di clock e si avvalgono della tecnologia XLP (eXtreme Low Power) per portare a livelli estremamente bassi il consumo di potenza elettrica (35 microAmpere/MHz quella attiva e 30 nanoAmpere quella di sleep). Quindi, basso costo e piccole dimensioni si combinano in un dispositivo a 8 bit ad architettura computazionale avanzata per un’ampia classe di applicazioni embedded come i piccoli elettrodomestici, i dispostivi medicali indossabili, i sistemi di monitoraggio della frequenza cardiaca, i dispositivi di automazione e quelli industriali.

Mcu Ultra low power

Il consumo di potenza elettrica rappresenta una delle più importanti caratterizzazioni dei microcontrollori di ultima generazione. L’obiettivo cui tendono le Mcu ultra low-power è quello di consentire una durata della fonte di alimentazione potenzialmente illimitata (relativamente alla natura dell’applicazione), compatibilmente con le dimensioni. Il consumo ridottissimo di potenza elettrica da parte della Mcu consente infatti, oltre all’utilizzo di batterie convenzionali di formato ridotto (per esempio le batterie a bottone), anche l’utilizzo di fonti di alimentazione alternative alle batterie convenzionali, come per esempio i sistemi di alimentazione in modalità harvesting. EFM32 Gecko di Silicon Labs è un esempio emblematico di una Mcu ottimizzata al massimo per ottenere il minimo consumo di potenza elettrica. Il nome di questa famiglia di Mcu ultra low-power, Gecko, è emblematico in quanto questa nota lucertola ha la caratteristica di consumare solo il 10% dell’energia che consuma un mammifero di dimensioni equivalenti. Le Mcu EFM32 sono microcontrollori di natura mixed-signal basati sull’architettura Arm, in particolare M4, M3 ed M0, ottimizzati per applicazioni alimentate a batteria. Quindi, non solo la Cpu è ultra low-power, ma anche le periferiche, pur mantenendo le necessarie prestazioni funzionali, come i tempi rapidi di risposta, la bassa latenza e l’indipendenza operativa (la Cpu non è attiva mentre la periferica comunica) grazie a un sistema chiamato Peripheral Reflex System. Il Peripheral Reflex System è un sistema che consente a una periferica di connettersi e comunicare con un’altra periferica senza alcun intervento della Cpu. Questa rimane in modalità sleep mentre le periferiche scambiano dati e segnali di controllo. Tra le periferiche ultra low-power vi è un controller Lcd per display a 4x40 segmenti che consuma solo 0.55 microAmpere, una Uart capace di comunicare a 32 kHz che consuma solo 100 nanoAmpere, un Adc capace di 1 milione di campionamenti al secondo che consuma solo 200 nanoAmpere, un comparatore analogico che consuma solo 150 nanoAmpere e un acceleratore hardware per criptare e decriptrare con l’algoritmo Aes 128/256 bit che impiega solo 54/74 cicli. EFM32 Gecko implementano una modalità attiva di elevato risparmio energetico che porta questa Mcu a consumare solo 180 μA/MHz durante l’esecuzione di codice residente nella memoria flash interna. La scelta di core processor particolarmente efficienti nell’esecuzione del codice, come per esempio il Cortex M3, consente in modalità esecutiva del codice di ottenere elevate prestazioni nella riduzione dei consumi di potenza grazie al minor numero di cicli di clock richiesti nella modalità attiva della Cpu. Al risparmio energetico contribuiscono anche altri fattori funzionali, come per esempio i tempi rapidi di commutazione dallo stato attivo a quello di sleep profondo e viceversa. In tali condizioni di sleep anche profondo, la Ram e la Cpu sono in grado di mantenere i dati, la circuiteria di controllo del Reset e del Brown-out detection sono comunque attive. Oltre all’efficienza energetica on-chip dell’EFM32 Gecko è disponibile anche un ambiente e delle risorse particolarmente ottimizzate per la gestione energetica della Mcu, come il sistema Aem (Advanced Energy Monitoring) che consente di misurare e monitorare in tempo reale e in maniera accurata i consumi energetici del sistema a livello prototipale. Questo strumento di monitoraggio dei consumi energetici si affianca alla suite di funzioni software che interagiscono con il sistema Aem per consentire la visualizzazione dei consumi energetici e la conseguente ottimizzazione del codice. EFM32 Zero Gecko, l’ultimo nato della famiglia di Mcu Gecko, ottimizza il dispositivo anche in termini dimensionali, con un package di solo 5 x 5 mm.

Mcu ultra small

Le dimensioni delle applicazioni embedded tendono ad essere sempre più ridotte e quindi il fattore dimensionale diventa un elemento determinante della fattibilità. Le Mcu, tra i componenti di un sistema, sono determinanti nella riduzione dimensionale dei sistemi, sia attraverso il processo di elevata integrazione funzionale, sia attraverso il processo di riduzione delle dimensioni a livello di package. Kinetis KL03 di Freescale è una Mcu chip-scale package basata su Arm che misura solo 1,6 x 2,0 mm a livello di package e solo 20 punti di saldatura per il montaggio su Pcb. Questa eccezionale riduzione delle dimensioni porta a un consumo del 35% delle dimensioni della scheda senza ridurre le prestazioni dell’applicazione sia in termini di potenza computazionale, sia in termini di potenza di calcolo, sia in termini funzionali. Alle ridottissime dimensioni, Kinetis KL03 affianca anche i ridottissimi consumi di potenza elettrica. Questa Mcu è dotata di ben 10 modalità di gestione della potenza elettrica con valori di consumo che vanno dai 75 microAmpere per MHz in modalità Run, ai 161 nanoAmpere della modalità deep sleep Vllso. I recovery time delle modalità sleep sono molto piccoli e variano dai 4 microsecondi della modalità Stop ai 95 microsecondi della modalità deep sleep Vllso. L’efficienza energetica della serie Kinetis L di Freescale deriva soprattutto dall’architettura di sistema. In questo caso le caratteristiche dell’architettura Cortex-M0+ sono state ottimizzate. Per esempio, è stato introdotto un bit manipulation engine che consente di migliorare sia il tempo di esecuzione delle istruzioni, sia le dimensioni del codice di un fattore dell’ordine del 40% relativamente alla componente computazionale del codice (operazioni matematiche e controllo delle periferiche). In questa unità sono implementate funzioni come Or, And, Xor, bitfield insert, bitfield extract. Queste funzioni controllate dal Bfe consentono di evitare l’impiego di numerose istruzioni per eseguire le operazioni equivalenti consentite dal set istruzioni della Cpu (read-modify-write). Un ulteriore contributo al risparmio energetico viene dall’implementazione dell’opzione low-power boot che consente di ridurre i picchi di consumo di potenza tipici delle sequenze di boot o del wake-up dagli stati di sleep. Questo aspetto non è tanto importante relativamente alla componente di consumo vero e proprio, ma relativamente alla componente di prestazioni delle batterie, e quindi alla tipologia stessa di batterie utilizzabili nelle applicazioni ultra low-power. Per esempio, certe batterie hanno una chimica che limita la disponibilità di corrente di picco (per esempio le batterie a ioni di litio). L’efficienza energetica della serie di Mcu Kinetis L deriva anche dalla tecnologia delle memorie utilizzata in tali dispositivi. Tali memorie ottimizzano le memorie convenzionali basate sulla memorizzazione di cariche tramite la creazione di isole di silicio a scala nanometrica per memorizzare la carica invece di utilizzare il film continuo, ottenendo in tal modo anche un miglioramento dell’immunità alla perdita di dati della memoria flash. Una componente importate di risparmio energetico riguarda le periferiche. Queste nella serie L di Kinetis implementano intelligenza a basso consumo nelle periferiche, consentendo a tali dispositivi di operare in maniera autonoma in modalità deep sleep, utilizzando un clock alternativo. Le periferiche sono come dei mini core capaci di eseguire task senza necessitare del core della Mcu. In tal modo il consumo di potenza viene ridotto in maniera drastica. Ecco quali operazioni le periferiche delle Mcu Kinetis L sono in grado di eseguire autonomamente: l’Adcn campiona periodicamente un sensore analogico, esegue il confronto e la media hardware; l’Uart trasmette e riceve con continuità i dati verso e da un radio IC o un’altra Mcu; il Timer/Pwm controlla dinamicamente un motore e rileva gli impulsi esterni; il real-time clock gestisce il tempo e riconosce gli eventi di allarme; l’Interfaccia touch rileva il tocco dall’interazione utente attraverso bottoni e altri dispositivi capacitivi; l’Lcd a segmenti visualizza le informazioni utente attraverso la visualizzazione di segmenti con modalità alternate di tipo blinking e screens. Dotare la Mcu di periferiche intelligenti a bassissimo consumo è una strategia molto efficace per sfruttare al massimo il bassissimo consumo di potenza delle modalità deep sleep, impedendo che la Mcu venga risvegliata per eseguire operazioni triviali come inviare e ricevere dati, generare forme d’onda, campionare segnali analogici, ecc.

 

Fig 4

Kinetis KL03 di Freescale è una Mcu chip-scale package basata su Arm che misura solo 1,6 x 2,0 mm a livello di package e solo 20 punti di saldatura per il montaggio su Pcb

 

La Fram fa risparmiare energia

Per rendere un microcontrollore ultra low-power, oltre che agire sulle periferiche si può agire sulle memorie. A differenza delle periferiche, ove la soluzione sta nel trasferire intelligenza dalla Cpu verso la periferica, per le memorie la problematica è soprattutto di natura tecnologica. Memoria Ram e memoria Flash sono sottosistemi molto critici relativamente ai consumi di potenza. Le nuove tecnologie di memoria rappresenteranno nel prossimo futuro un importante punto di svolta nelle prestazioni computazionali e funzionali dei microcontrollori, soprattutto nella caratterizzazione ultra low-power. Texas Instruments ha integrato nel suo microcontrollore MSP430 ultra low-power la tecnologia di memoria Fram (Ferroelectric Ram). I microcontrollori MSP430FRxx utilizzano come memoria non volatile la nuova tecnologia Fram con velocità di accesso 100 volte superiore a quella delle Flash convenzionali e consumi di potenza nettamente inferiori (250 volte meno di una flash operante allo stesso data-rate). La tecnologia proprietaria di Texas Instruments Ull (Ultra-low-leakage) insieme a quella delle Fram embedded consentono di ottenere livelli di consumo, in condizioni di massima attività della Mcu, dell’ordine dei 100 microAmpere/MHz. Insieme alla Fram contribuiscono a ridurre i consumi anche il real-time clock con 450 nanoAmpere di corrente di standby, le periferiche analogiche intelligenti con 140 microAmpere a 200 kbps e una interfaccia di scansione per il flow metering capace di operare mentre il sistema è in standby. Texas Instruments rende disponibile per i microcontrollori MSP430 un tool di analisi del codice che misura e visualizza il profilo energetico dell’applicazione e aiuta a ottimizzare il consumo in termini di ultra low-power. Questa tecnologia è basata su un nuovo metodo di misura il consumo di corrente della Mcu, alternativo a quello classico che fa cadere la tensione elettrica su una resistenza di precisione.

Un Mcu per le applicazioni wearable

Maxim Integrated ha appena introdotto un microcontrollore, il MAX32600, finalizzato specificamente alle applicazioni indossabili. MAX32600 è una Mcu low-power altamente integrata, basata su Arm Cortex M3 e su un sottosistema analogico ad alta precisione. Oltre a queste caratteristiche funzionali mirate a supportare la metrica wellness ed e-health, il MAX32600 integra una unità Trust Protection Unit che assicura un elevatissimo grado di sicurezza con la chiave pubblica interna di autenticazione, la crittografia dei dati e il tamper detection. La peculiarità di questa Mcu sta nel front-end analogico altamente configurabile. La Mcu include driver Led ad elevata corrente che consentono di misurare in maniera effettiva parametri fisiologici come la frequenza cardiaca e la resistenza galvanica della pelle. Grazie a questa caratterizzazione hardware, la Mcu MAX32600 permette di implementare sistemi portatili e indossabili, semplificando la parte più problematica dei sistemi embedded orientati al target della vestibilità.

Mcu hardware abstraction layer

La complessità delle Mcu è tale da rendere abbastanza difficile l’utilizzo ottimale delle prestazioni hardware a favore dell’applicazione. Lo sviluppatore non può spendere molta parte del suo tempo per trovare la soluzione ottimale di utilizzo di una periferica, distraendo la sua attenzione dell’obiettivo primario che è l’applicazione. Disporre di un hardware abstraction layer per la Mcu target dell’applicazione e fondamentale per accelerare il processo di sviluppo ed essere sicuri che la Mcu effettivamente funzioni al massimo delle sue prestazioni, sia computazionali, sia funzionali. STMicroelectronics ha sviluppato uno strumento, l’STM32 Cube che, basato su un’interfaccia utente grafica, genera codice C di inizializzazione per le Mcu STM32. Ha anche realizzato una embedded software library per la serie di microcontrollori STM32 che di fatto realizza un livello di astrazione dell’hardware relativo alle periferiche. A queste risorse a disposizione dello sviluppatore si aggiunge anche una serie di componenti di natura middelware (kernel di Rtos, Tcp/IP, Usb, ecc.). L’STM32 Cube è uno strumento completamente libero che consente di approcciare lo sviluppo del software embedded tramite l’integrazione di software a basso e medio livello per l’inizializzazione della Mcu target. Una serie di componenti software embedded permettono allo sviluppatore di inizializzare anche l’applicazione in contesti applicativi come l’audio, la connettività, l’interfaccia grafica, la crittografia, il controllo motore e la sicurezza. Si tratta dunque di un ecosistema di risorse che, insieme alla serie di schede STM32 Nucleo, consente di affrontare in maniera efficiente lo sviluppo di sistemi ove la Mcu è il componente fondamentale del successo dell’applicazione. STM32 Nucleo sono schede che consentono di affrontare in maniera flessibile e rapida la prototipazione basata su Mcu. STM32 Nucleo è un sistema espandibile a stack che prevede due modalità di espansione, una tramite la compatibilità verso Arduino, una tramite Morpho extension pin header che consente il pieno accesso a tutto l’I/O di STM32.

Pubblica i tuoi commenti