I sistemi embedded si stanno caratterizzando sempre più come l'elemento di innovazione in quasi tutti i settori applicativi, sia di natura industriale, sia di natura consumer. Lo sforzo innovativo che le aziende dimostrano di aver messo in atto va oltre le possibilità offerte dall'attuale situazione economica, ancora in fase recessiva. L'investimento in ricerca e sviluppo dei prodotti sia hardware che software destinati al mondo delle applicazioni embedded va oltre le possibilità che il mercato recessivo consente, dimostrando in tal modo grande lungimiranza da parte delle industrie del settore. La quantità di know-how richiesta nel campo delle applicazioni embedded è enorme, e la parte più avanzata di questo know-how viene dal mondo della ricerca in ambito universitario. La conferma dell'importanza del contributo dell'università a favore dell'industria relativamente all'innovazione tecnologica per i sistemi embedded è il successo dell'Embedded World Student Day, cui hanno partecipato oltre 1000 studenti universitari dalla Germania e dall'Austria, per entrare in contatto con le aziende. Questi hanno assistito a una lezione di 90 minuti, tenuta dal Prof. Franz Josef Radermacher del Research Institute for Application-Orientated Knowledge Processing di Ulm, che ha evidenziato l'importanza degli sviluppatori nel mondo degli embedded system in un mondo sempre più integrato in rete. Significativo è stato anche l'University Award, un premio istituito per portare in primo piano tesi di laurea e tesi di master che presentano idee e risultati innovativi relativamente alle tecnologie embedded. Il premio è stato assegnato da una giuria mista di professori universitari e di rappresentati autorevoli dell'industria. L'interesse per la tecnologia dei sistemi embedded è quindi crescente e in questo crescendo di offerta tecnologica spiccano alcune tematiche su cui converge l'attenzione di numerosi produttori. Uno di questi temi riguarda la problematica del multicore, sia a livello hardware, sia a livello software. Altre problematiche di spicco sono relative agli ambienti di sviluppo e ai sistemi operativi real-time, alle nuove strategie nel campo del microcontrollo industriale, a una maggiore attenzione alla qualità e alla sicurezza del software.
Sfruttare la potenzialità del multicore
In passato la potenza di elaborazione si aumentava “pigiando sull'acceleratore” della frequenza di clock. Senza nessuna ottimizzazione del codice, questo poteva girare più velocemente, ma come in tutte le soluzioni “non intelligenti”, il costo di un piccolo aumento di potenza è stato estremamente elevato. Il costo maggiore è stato quello di portare la tecnologia di integrazione ai suoi limiti fisici. Ora, aumentare la frequenza di clock è veramente arduo se non si ricorre a soluzioni “intelligenti”. Il parallelismo esecutivo è una soluzione intelligente che trova nella tecnologia multicore una delle più efficaci implementazione. Ovviamente c'è un prezzo da pagare: cambiare il modello di programmazione per poter sfruttare a pieno le potenzialità di computing offerte dalle architetture multicore. La complessità delle applicazioni è tale che gli strumenti di sviluppo correnti e l'intervento manuale da parte dello sviluppatore per ottimizzare il codice non sono possibili. È quindi necessario disporre di strumenti che ottimizzano l'esecuzione del codice in funzione dell'architettura di computing messa a disposizione dai sistemi multicore. Il Fraunhofer Institut ha presentato il tool di ottimizzazione FESPA che è capace di partizionare e distribuire l'esecuzione delle funzioni create in un ambiente di modellazione come Simulink di MathWorks in modo da essere eseguibili in maniera efficiente in un ambiente multicore o di rete di processori, considerando la potenza computazionale disponibile, le caratteristiche di comunicazione della piattaforma ed altre caratteristiche applicative specifiche. Oltre alle architetture parallele di natura multicore, il parallelismo esecutivo può essere ottimizzato anche su piattaforme di computing a parallelismo pieno come le architetture Fpga.
Processori video ad elevate prestazioni
La qualità dei video diventa sempre più simile a quella delle comunicazioni dal vivo, e ciò sta rivoluzionando il modo di comunicare. In particolare il video in HD è sempre più richiesto in applicazioni come le conferenze video in tempo reale,il video 3D e il rilevamento di movimenti. Un esempio di innovazione che va incontro a queste esigenze emergenti è il processore per supporti digitali Da Vinci DM8168 di Texas Instruments. Questo offre un'elevatissima capacità video in streaming essendo capace di trattare fino a 3 stream video frame 1080p60 fps, 12 stream video 720p30 fps o una combinazione di questi. Ciò significa che è possibile, con lo stesso processore catturare, codificare, decodificare e analizzare lo stream video, mandando in uscita il video su tre schermi indipendenti. Una delle tecnologie abilitanti di queste prestazioni avanzate dei processori video di TI è quella multicore. Questi processori integrano su un singolo chip acceleratori video, il core Arm Cortex-A8, il core Dsp TMS320C674x e un acceleratore grafico 3D. Inoltre, grazie anche alla tecnologia system-on-chip, integrano il controller di display e le periferiche. Ciò consente di ridurre i costi del 50% eliminando i componenti discreti e di ridurre a un quinto la dimensione della scheda. Il vantaggio è anche nella riduzione della latenza dovuta ai componenti discreti.
Schede multicore per applicazioni ad alte prestazioni
I processori multicore sono ormai fondamentali per le applicazioni ad elevatissime prestazioni, soprattutto in campo aerospaziale. In questo settore contano molto anche fattori come l'affidabilità, l'efficienza energetica e soprattutto le dimensioni compatte. Il rilascio da parte di Emerson Network Power delle single board computer OpenVPX (VITA 65) è la dimostrazione di questo grande interesse da parte degli sviluppatori. Le due schede, iVPX7220 and iVPX7223, sono basate sul nuovo dual-core 2.20 GHz Intel Core i7 2655LE processor, con controller grafico e di memoria integrati, e dotate del QM67 PCH chipset per la funzionalità I/O avanzata di Intel. Oltre alle caratteristiche di prestazione e di elevata integrazione, queste schede sono anche particolarmente robuste, essendo resistenti a sollecitazioni, vibrazioni e variazioni di temperatura. I processori Intel Core di seconda generazione implementano un set di istruzioni a 256 bit (che includono anche le Advanced Vector Extensions) e di altre funzioni che consentono di accelerare il calcolo applicato a grandi quantità di dati. Queste prestazioni vengono garantite dal data rate fino a 5 Mbit/s e da una notevole quantità di memoria su scheda. Per esempio, la variante quad-core processor del iVPX7220 supporta fino a 16 GB di memoria Ddr3-133. La iVPX7220 offre anche 4 GB di embedded Usb flash e 256 KB di Fram. Altre funzionalità di comunicazione comprendono fino a 9 porte Usb 2.0, 5 porte seriali, 5 porte Sata, dieci Gpio, tre connessioni DisplayPort, Vga and doppio XMC.
Elevatissima integrazione per la connettività Usb ad alta velocità
La connettività Usb dei sistemi embedded non è più un'opzione ma uno standard. Conseguentemente questa funzionalità deve essere efficiente, incidere poco sul resto del sistema e allo stesso tempo non rappresentare un collo di bottiglia relativamente alle problematiche di connettività.
FTDI focalizza la sua attenzione in ricerca e sviluppo sulla connettività Usb, portando da singolo chip (o modulo) tutta la funzionalità Usb necessaria alle applicazioni embedded. Uno degli ultimi sviluppi di FTDI è FT232H Usb2.0 Hi-Speed, un single-channel Usb-to-Uart-Fifo interface configurabile via eeprom. Configurato con l'opportuno driver (incluso nel bundle di driver Usb della FTDI) consente di utilizzare un'ampia gamma di interfacce seriali e parallele. FT232H è di fatto un Usb device controller che integra tutta la funzionalità necessaria alla gestione dei protocolli seriali e paralleli, eliminando in tal modo la necessità di sviluppare firmware specifico per la gestione Usb su dispositivi di natura Mcu ed Fpga. Oltre a supportare la connettività asincrona, FT232H supporta anche quella sincrona come SPI, I2C, JTAG e le interfacce di programmazione per Fpga, utilizzando il suo Multi-Protocol Synchronous Serial Engine, capace di velocità di comunicazione fino a 30Mbits/s. È prevista anche la possibilità di implementare protocolli custom. Incorporato come opzione di interfaccia c'è il nuovo bus proprietario FT1248. Questo è di natura sincrono, half-duplex seriale/parallelo, per comunicare con la logica esterna a data rate fino a 30Mbytes/s. La peculiarità di questo bus è di ottimizzare la banda gestendo un numero variabile di line fisiche disponibili per connettere il FT232H alla logica esterna.
Microcontrollore a 32 bit per applicazioni automotive intensive
L'automotive è uno dei settori applicativi che sta ricorrendo pesantemente alla tecnologia embedding. I microcontrollori ad elevate prestazioni ed alta integrazione sono il principale componente per l'embedding in un contesto applicativo caratterizzato da requisiti estremamente stringenti. Il microcontrollore a 32 bit di Atmel UC3C AT32UC3C0512C AVR è inteso proprio a soddisfare tali requisiti. Il micro controllo a 32 bit è infatti innovativo in ambito automotive, soprattutto per le applicazioni di controllo motore relativamente a Hvac, finestrini, porte e sedili. Questo microcontrollore dispone di un controller Pwm e di funzioni analogiche on-chip per il controllo diretto dei motori, e quelle per la comunicazione. Oltre al Pwm veloce a 4 canali e 20 bit di precisione, all'Adc a 16 canali e 12 bit di precisione, al sensore di temperatura e a quattro comparatori analogici, si evidenzia anche la ricchezza delle periferiche di comunicazione come Can, 5 Usart, Lin 2.1 e 5 interfacce I2C compatibili a due fili.
Microcontrollori ad elevata efficenza energetica, velocità e affidabilità
I motori elettrici sono i componenti dei sistemi embedded che maggiormente consumano energia. Secondo uno studio del 2008 dell´associazione VDE, in Germania la sola industria consuma 240 TWh/anno di energia elettrica, le famiglie 140 TWh/anno, le aziende di servizi 130 TWh/anno e i trasporti 16 TWh. I motori elettrici utilizzati nell'industria e nel settore domestico rappresentano da soli il 50% del totale dell'energia elettrica consumata. Secondo VDE i motori trifase più efficienti nella gamma di potenza da 1,1 a 37 kW offrono il maggior potenziale per il risparmio di energia elettrica. Infineon affronta questa problematica con una nuova serie di Mcu destinate all'implementazione di unità di controllo motore economiche che, ad oggi, sono state affrontate in termini di Mcu high-end a 8 bit oppure di Dsp di fascia bassa. Le funzionalità chiave di questi microcontrollori includono un core Dsp ad alte prestazioni, un convertitore A/D a 12 bit ad alta velocità con funzionalità di sincronizzazione, un'unità di capture/compare e una unità Pwm ad alta velocità con impulso minimo di 12,5 ns. Le versioni low-end della famiglia XE166 sviluppano 66 Mips e dispongono da 32 a 160 KB di flash integrata. Il core Dsp dispone di una unità Mac per le operazioni matematiche intensive. La famiglia XE166 è supportata da una serie completa di tool di sviluppo che comprende board di valutazione, debugger, compilatori e relativa documentazione. Per la configurazione, l'inizializzazione e la generazione di codice è disponibile DAvE (Digital Application virtual Engineer). Rispetto ad altri strumenti di configurazione, il software DAvE Drive genera algoritmi completi e non si basa su librerie. Inoltre è possibile la generazione flessibile del codice anche per motori non standard costruiti su specifica del cliente. Questo comporta una riduzione significativa del tempo di sviluppo, così come è semplificata anche la differenziazione del sistema.
Controllo industriale e consumer basato su Arm Cortex-M0
Sia il controllo industriale, sia quello consumer, richiedono funzionalità sempre più sofisticate, in cui la componente “intelligente” è sempre più rilevante, e conseguentemente i requisiti computazionali diventano sempre più stringenti. In accordo con queste esigenze, NXP ha basato la sua soluzione su un'architettura di computing avanzata come quella Arm. I microcontrollori della gamma LPC1200 si basano su processori Arm a 32 bit, quindi soddisfano bene sia le esigenze dell'automazione industriale, sia quelle dell'automazione domestica, in particolare quello degli elettrodomestici intelligenti. In questo campo applicativo la problematica va ormai oltre il controllo efficiente della componente motore e investe problematiche di interazione con l'ambiente e con l'utilizzatore in maniera “naturale”. Ciò richiede capacità di computing superiori a quelle che possono offrire i microcontrollori a 8/16 bit. All'interno di una lavatrice, per esempio, un'unità LPC1200 può controllare il motore, gestire l'interfaccia utente, monitorare i consumi elettrici e gestire la comunicazione off-board con una soluzione semplice, integrata ed efficiente. Il Gpio ad alta tensione può controllare direttamente i Triac senza necessità di transistor esterni, riducendo ulteriormente ingombri e costi.
Qualità e sicurezza del codice per le applicazioni embedded
Grazie all'analisi del dataflow è possibile identificare condizioni critiche dei malfunzionamenti del software sempre più ricorrenti nelle applicazioni embedded col crescere della complessità che li caratterizza. PRQA ha particolarmente approfondito queste problematiche e ha sviluppato tecnologie di analisi del software innovative, con particolare attenzione alle applicazioni embedded. Il nuovo approccio di PRQA per identificare le criticità di codifica del software nelle applicazioni embedded si basa su una sofisticata tecnologia basata sull'analisi del dataflow. L'obiettivo è di identificare le criticità di codifica (C, C++) correlate controllo del flusso di programma, allo stato e alla stabilità delle variabili e alla consistenza delle chiamate delle funzioni di libreria. Da questo approccio è stato derivato un nuovo modulo di analisi, Dataflow basato su un motore di risoluzione cosiddetto Satisfiability Modulo Theories. In questa soluzione convergono, oltre alla tecnologia SMT, anche quella dei linguaggi, dell'esperienza nell'analisi delle funzioni di controllo di flusso e delle semantiche. L'approccio è quello del code-modelling relativamente all'interdipendenza tra le variabili e del loro rapporto con le espressioni condizionali, al funzionamento dei cicli di controllo con particolare attenzione alle variabili di controllo, alla definizione e manipolazione dei dati a livello binario. Oltre alla criticità della componente di programmazione introdotta dallo sviluppatore, significativa attenzione viene posta sull'intrinseca criticità che caratterizza il linguaggio utilizzato, in particolare quella del C/C++. Vengono analizzate le operazioni sui puntatori che portano risultati critici come per esempio quelle relative ad operatori non correlati, oppure relative all'aritmetica (divisione per zero, wraparound, conversione di formato, ecc.). La vera forza delle soluzioni PRQA è il set di analysis checks disponibile. Questo copre tutte le ben note vulnerabilità dei linguaggi C/C++, così come funzioni aggiuntive value-sensitive che sono particolarmente rilevanti per le applicazioni embedded. Fondamentale è anche l'analisi delle chiamate delle Api dalle librerie standard. Quest'analisi è particolarmente importante in quanto le vulnerabilità intrinseche del codice sono molto meno visibili allo sviluppatore.
Intefaccia utente e sensorialità embedded
Se da una parte la problematica del controllo embedded viene affrontata in termini di aumento della potenza computazionale mantenendo basso i costi, i consumi e le dimensioni, da un'altra parte si punta all'ottimizzazione del dispositivo relativamente all'applicazione finale, sempre con l'obiettivo di mantenere bassi i consumi, il costo e le dimensioni del sistema embedded. Un esempio emblematico è la soluzione annunciata da Microchip relativamente alle applicazioni embedded che utilizzano la comunicazione Can e che hanno stringenti requisiti di basso costo, oltre a necessitare di soluzioni altamente ottimizzate. Queste, se basate su microcontrollori ad elevata integrazione funzionale e allo stesso tempo particolarmente essenziali nel costo, possono derivarne i massimi benefici implementativi. I microcontrollori Can a 8 bit PIC18FxxK80 di Microchip sono stati pensati per soddisfare queste esigenze. Oltre ad essere dotati di tecnologia avanzata di controllo dei consumi (eXtreme Low Power (XLP) ,meno di 20 nA), dispongono anche di un Adc a 12 bit, di una periferica che consente l'implementazione di interfacce utente a rilevamento tattile capacitivo mTouch e di un Data Signal Modulator che consente la rilevazione del movimento.
SoC e Fpga, la nuova opzione per i sistemi embedded
L'integrazione della tecnologia Fpga, dei sottosistemi di Cpu e delle IP stanno portando ad una tecnologia emergente cosiddetta SoC-Fpga. La tecnologia Fpga è ormai ampiamente utilizzata per la realizzazione di sistemi embedded ottimizzati proprio rispetto all'architettura di sistema. La limitazione delle Fpga si è però evidenziata a livello di sviluppatore proprio nella loro natura di logica programmabile. Questo richiede, oltre alla libertà di definire un'architettura di sistema che coincide con le proprie esigenze, anche di poter disporre sulla stessa piattaforma di tutta la funzionalità necessaria. Inoltre, i SoC-Fpga sono in grado di integrare differenti tecnologie nello stesso dispositivo. Altera, a fine 2010 aveva già annunciato la sua “Embedded Initiative” relativa alla sua intenzione di produrre dispositivi che integrano versioni hardware dei sottosistemi Arm in un contesto di tecnologia Fpga a 28-nm. Uno degli impatti positivi di questa innovazione SoC-Fpga sta nella possibilità di ottenere la massima efficienza funzionale e computazionale dalla tecnologia multicore, gestibile in tal modo in termini di parallelismo esecutivo effettivo. Un esempio di Fpga integrato a un Hard SoC è quello basato sul processore Arm Cortex-A9MP che include non solo il core processor in versione hardware, ma anche le periferiche embedded, anche queste in versione hardware. Fpga è SoC sono perfettamente integrati e quindi l'efficienza del sistema è massima, con conseguente riduzione di costi, consumi e dimensioni dell'applicazione finale.
Multi-OS per multicore
L'evoluzione multicore delle applicazioni embedded ha creato nuove problematiche relative alle prestazioni, alla gestione dei consumi di potenza, alla complessità e gestione della progettazione. Malgrado queste complessità, il vantaggio della migrazione verso il muticore è indiscutibile, considerando la crescente complessità delle applicazioni emergenti in ambito embeddeed. La necessità del time-to-market impone comunque soluzioni di sistema e di gestione del processo di sviluppo consistenti, soprattutto quando al multicore si affianca anche il multi-OS (multi Operative System). Mentor Graphics ha appena rilasciato openMCAPI, un'implementazione open source dello standard MCAPI (Multicore Communications Application Program Interface) specification. Questa tecnologia rende disponibile una libreria Linux e il kernel del driver che consente alle applicazioni di comunicare tra i core, attraverso la memoria condivisa, secondo il modello del multi processing asimmetrico. La peculiarità di openMCAPI sta nel fatto di essere stata progettata per le applicazioni multicore e multi-OS che devono girare su singolo chip. MCAPI è un meccanismo di comunicazione interprocesso robusto tra sistemi operativi in un contesto multicore.
Microcontrollori Wireless
La Mcu Si10xx wireless di Silicon Labs si basa sul core 8051 a 25 MHz e combina sullo stesso chip il transceiver sub-GHz wireless EZRadioPro, 64 kB di memoria flash e Adc a 10 bit. Grazie ad amplificatori integrati a basso rumore è possibile disporre di un range RF esteso, una banda elevata e un consumo bassissimo. L'elevatissima efficienza energetica di questa Mcu è dimostrata dal bassissimo consumo di corrente (160 microAmpere per MHz) in modalità attiva e il quasi inesistente consumo, 315 nanoAmper, in sleep mode, pur mantenendo attivo il real-time clock. In modalità deep-sleep mode, è possibile arrivare a solo 25 nanoAmpere di consumo, con pieno mantenimento del contenuto della Ram. La combinazione di questa Mcu con il modulo B-Bus wireless di IMST, ha consentito di ottenere una soluzione ideale per le applicazioni di energy metering, su un modulo di appena 17 x 19 mm. Il modulo, dispone di tutte le risorse necessarie per le applicazioni di metering (I/O analogico e digitale, comunicazione seriale e quanto serve a creare l'interfaccia verso i sistemi oggetto di metering).
Microcontrollo a 32 bit per embedding industriale e medicale
I microcontrollori a 32 bit rappresentano uno dei motivi di più significativa innovazione per le applicazioni embedded, sia in campo industriale, sia in altri settori emergenti, come ad esempio quello medicale. Freescale ha realizzato una linea di microcontrollori a 32 bit, Kinetis K5x, basata sul core Cortex M4 di Arm, che si connota perfettamente per applicazioni embedded basate sulla misura e il monitoraggio dei segnali. Infatti, le applicazioni industriali e quelle medicali necessitano in maniera crescente di capacità di misura combinate a quelle di connettività. Contemporaneamente sono richieste anche efficienti capacità di elaborazione del segnale e di scalabilità, considerando le crescenti esigenze di portabilità che il mondo delle applicazioni medicali sta evidenziando. Il core processor Arm Cortex-M4 è in grado di eseguire 1.25 DMIPS/MHz, anche di natura Dsp. È anche un ultra-low power ed è dotato di scalabilità a livello di memoria (da 32 KB flash / 8 KB Ram a 1 MB flash / 128 KB Ram). I banchi di flash indipendenti consentono di eseguire in modalità concorrente il codice e gli aggiornamenti del software. Particolarmente interessante per gli sviluppatori è il Tower System, una piattaforma di sviluppo modulare per i microcontrollori a 8, 16 e 32 bit che consente uno sviluppo molto efficiente delle applicazioni attraverso il processo di prototipazione rapida.
Energy Friendly Microcontroller
L'energia è uno dei fattori più critici dei sistemi embedded. Energy Micro è particolarmente innovativa relativamente alla riduzione del consumo di potenza dei microcontrollori e dispone di una gamma di microcontrollori a bassissimo consumo, EFM32 Gecko, di cui i più recenti basati Cortex-M0 di Arm e su Cortex-M3 (Tiny Gecko). Questo set di microcontrollori viene connotato come Efm (Energy Friendly Microcontroller) in conseguenza della particolare capacità di ridurre i consumi di potenza elettrica. I dispositivi della famiglia EFM32 Gecko per esempio si caratterizzano per i consumi estremamente bassi in modalità attiva e stand-by, per l'elevata velocità di elaborazione, i ridotti tempi di wake-up e la modalità di funzionamento a bassa energia. In particolare supportano la funzione di debugging dell'energia, grazie alla presenza del sistema avanzato per il monitoraggio dell'energia e al toolset Simplicity Studio. La tecnologia del basso consumo energetico è stata estesa anche ai dispositivi radio (EFR - Energy Friendly Radio), un complemento tecnologico ai microcontrollori EFM32 Gecko. Si tratta di radio SoC Draco caratterizzati da consumi di corrente in ricezione e trasmissione pari a soli 5 e 6 mA rispettivamente. Oltre a risparmiare energia si può anche risparmiare tempo, con il Simplicity Studio, una console software completa che permette di accedere immediatamente a tutti i tool, alla documentazione, al software e alle altre risorse necessarie per lo sviluppo di sistemi basati sui microcontrollori a elevata efficienza energetica EFM 32 Gecko. Ideato con l'obiettivo di dimezzare il tempo richiesto per lo sviluppo di sistemi embedded, Simplicity Studio unifica il controllo di qualsiasi elemento, dal codice sorgente all'Ide fornito da terze parti fino ai datasheet del microcontrollore e alle note applicative.