Embedded World 2008: applicazioni senza limiti

EMBEDDED –

Un evento come l‘Embedded World 2008 rappresenta un importante e significativo punto di osservazione e di misura della velocità e dell’intensità dello sviluppo, nonchè dello spazio applicativo della tecnologia embedded.


La tecnologia embedded è in rapido sviluppo in tutte le direzioni, dal software all’hardware, dall’analogica al digitale, dall’automazione al consumer. Alla base di questo sviluppo vi sono varie tecnologie cosiddette “abilitanti”, cioè quelle tecnologie che per la loro flessibilità e la loro potenzialità intrinseca stimolano la fantasia degli sviluppatori nella creazione di applicazioni sempre più embedded e sempre più innovative. Nuove tecnologie stanno emergendo e tra queste alcune sono più importanti e meritano attenzione in quanto si stanno configurando dei “driver” tecnologici che connoteranno lo sviluppo del mondo embedded nei prossimi anni.

Un settore driver è sicuramente quello del networking. Un forte motivazione allo sviluppo della tecnologia di networking è ovviamente la prolificazione e la pervasività di Internet, ma anche l’evoluzione dei sistemi di comunicazione personale, che allo stesso tempo sono anche sistemi di computing personale. In questo contesto i processori di comunicazione e i sistemi operativi orientati a supportare il networking e la comunicazione giocano un ruolo primario nel definire le basi tecnologiche dello sviluppo e il suo tasso di crescita.

I processori di comunicazione si stanno evolvendo prevalentemente nelle due direzioni auspicate dal mercato delle applicazioni embedded: maggiore capacità di supportare il multitasking e l’esecuzione di processi real-time. I sistemi operativi giocano un ruolo fondamentale nell’affiancare gli sforzi fatti in questa direzione dai produttori di hardware di sistema.
Linux, nella sua versione embedded, senza dubbio è uno dei driver di questo sviluppo. La conferma di questa tendenza è confermata dalla proiezione di mercato, che negli ultimi 5 anni hanno visto crescere le vendite di Linux in ambiente embedded di 10 volte. Il tasso di crescita vede quasi un raddoppio per anno, con una tendenza ad accelerare questo incremento in quest’ultimi anni, a conferma del crescente interesse da parte degli sviluppatori verso questo sistema operativo. Accanto a questa connotazione dello sviluppo delle applicazioni nella direzione dell’embedding, la tecnologia dello sviluppo di applicazioni embedded sta muovendosi con altrettanta rapidità e determinazione. In particolare ci sono le tecnologie di computing che meglio interpretano le tendenze di sviluppo delle applicazioni embedded: logica programmabile, computing multicore e system-on-chip. Queste tecnologie, nate proprio in ambito embedded, ora si stanno connotando in modo da rafforzare il loro ruolo di technology-driver.

Lo sviluppo dell’embedded

La conferma di questo trend della tecnologia di computing verso l’architettura embedded e system programmable, viene dagli ambienti di sviluppo evoluti in modo da supportare adeguatamente queste tecnologie. La progettazione ad alto livello, assistita da calcolatore, è ormai una metodologia generalmente accettata e supportata da una serie di tool, già introdotti negli anni passati, e che ora sono stati resi altamente efficienti e performanti. I linguaggi ad alto livello di progettazione dell’hardware, soprattutto quelli basati sul linguaggio di programmazione C, sono sempre più diffusi e ottimamente supportati da ulteriori strumenti software che aiutano il progettista a completare con successo la progettazione hardware in tempi compatibili con il mercato delle applicazioni embedded: analizzatori di complessità, modellatori di funzionalità, simulatori, ecc. Un terzo aspetto di tendenza nello sviluppo delle applicazioni embedded è lo sviluppo dei sistemi di visualizzazione, in particolare i display. La conferma di questa importanza viene da una parte dalle proiezioni di mercato che valutano una crescita nell’ordine del 50% del mercato dei display touch-screen fino al 2012. D’altra parte, è proprio il trend di sviluppo dei sistemi embedded che porta al formarsi di una forte domanda di questa tipologia di dispositivi capaci di garantire un livello di interazione con il sistema embedded molto elevato.

L’importanza dei dispositivi di comunicazione per i sistemi embedded, oltre che dal rapido sviluppo della tecnologia di visualizzazione, è confermata anche dallo sviluppo della tecnologia sensoriale. I Mems sono i protagonisti di questo sviluppo sia in termini di tasso di crescita del mercato (+50% fino al 2010), sia per quanto riguarda le innumerevoli applicazioni proposte nell’ambito embedded. Di seguito riportiamo alcune delle novità tecnologiche, che confermano questo trend di sviluppo, presentate quest’anno all’Embedded World 2008 che si è tenuto a Norimberga alla fine dello scorso febbraio.

Il training a basso costo sui microcontrollori

Anche se per tutti i microcontrollori sono disponibili evaluation board a basso costo, che permettono di valutare e studiare la funzionalità dei vari microcontrollori disponibili sul mercato, un approccio più orientato al training come quello messo in campo da Texas Instruments per il suo microcontrollore MSP430 rappresenta una vera novità. Il microcontrollore MSP430 è stato configurato da TI in uno stick simile a quello delle memorie flash Usb per i Pc. Lo stick (eZ430-F2013) contiene un emulatore Usb completo e una target micro board che ospita il microcontrollore MSP430. L’emulatore si connette al Pc host via Usb e al target (MSP430F20xx) via Jtag. Il target è su una microscheda che mette a disposizione una serie di pad che riportano tutti i segnali presenti ai pin del MSP430. Questa scheda può essere staccata dall’emulatore e può operare autonomamente quando il codice è stato fissato nella memoria flash interna al microcontrollore e viene fornita l’alimentazione. Per esempio la scheda può essere integrata all’interno di un sistema che prevede l’uso di un microcontrollore per la sua funzionalità.
Il microcontrollore MSP430 è un’architettura di computing modulare di natura Risc a 16 bit che utilizza un’architettura a bus comune (von-Neumann) per interconnettere Cpu, periferiche e il clock system. Le periferiche, sia analogiche che digitali, sono modulari e memory-mapped. Il set di registri (16) è abbastanza ampio da consentire di tenere al minimo il set istruzioni (27). Ciò comporta un modello di programmazione, sia assembler che C, ottimizzato, e che implica un bassissimo consumo di potenza, pur sviluppando 16 Mips di potenza computazionale. La bassissima potenza dissipata (250 µA per Mips) consente di realizzare applicazioni che possono operare per 10 anni senza sostituzione delle batterie. Un'altra azione di supporto al training sui microcontrollori viene anche da Silicon Labs, che ha realizzato uno stick con connettore Usb che contiene un sistema di sviluppo completo cui è connessa una daughter card che monta una Mcu target e l’eventuale circuiteria applicativa.

Processori e periferiche

L’innovazione nel multicore - Freescale ha introdotto un’architettura multicore molto avanzata, CoreNet Fabric, per il supporto del processing in ambito di rete di tipo concorrente, non-blocking, 100% cache-coherent. La piattaforma dispone di quattro core, di un set di processori specializzati (pattern matching, compressione e decompressione, crypto-security, table look-up, data path resource management). L’architettura multicore proposta da Freescale è molto innovativa sotto vari aspetti: elimina la contesa sul bus condiviso, è scalabile fino a supportare 32 core anche di natura eterogenea.

Flash breakpoint per ARM - Le applicazioni basate su microcontrollori ARM7 e ARM9 dotati di memoria flash embedded sono numerosissime. Conseguentemente le esigenze di progettazione aumentano. Una di queste esigenze concerne il controllo delle interruzioni (fermare l'esecuzione del programma ad una determinata locazione di memoria). L'ARM7 e 9 rende disponibile solo 2 breakpoint hardware, di cui uno solo è effettivamente disponibile al programmatore. Per superare questa limitazione, IAR Systems a Segger hanno introdotto la funzionalità FlashBP nel IAR Embedded Workbench per ARM. Il principale vantaggio per il progettista sta nel poter passare dalla versione Ram alla versione flash della sua applicazione, senza limitazioni alle sue possibilità di debug legate ai breakpoint.

Controller grafico con periferiche integrate - Il nuovo controller grafico MB88F332 di Fujitsu è una soluzione single chip per il controllo della grafica in applicazioni automotive che oltre a rendere disponibile l'interfaccia seriale ad alta velocità Apix di Inova Semiconductors, integra periferiche automotive importanti come il controllore motor stepper, i modulatori Pwm, gli Adc, l'interfaccia I2C, le Uart e un generatore di segnali.

Crypto Chip – Il CryptoCompanion chip (AT88SC016) è la novità che Atmel ha introdotto per consentire agli sviluppatori di aggiungere alle applicazioni la funzionalità della criptografia senza dover implementare e verificare complessi algoritmi di criptografia per aggiungere la funzionalità dell'accesso sicuro alle applicazioni embedded. Questa soluzione, plug & play è anche più vantaggiosa di quelle che utilizzano microprocessori complessi e costosi che eseguono gli algoritmi di criptografia. Uno dei vantaggi sta nell'eliminazione dal lato host delle operazioni di mutua identificazione, di criptografia dei dati, della verifica dell'integrità e della generazione del Message Authentification Code per le applicazioni sicure. Tutte queste operazioni sono infatti eseguite dal CryptoCompanion.

Mini motherboard per applicazioni embedded - La nuova Mini-ITX Mainboard D2703-S misura solo 17 x 17 cm e quindi è adatta ad applicazioni industriali, punti informativi, macchine distributrici di biglietti, di accesso bancario, per giochi, applicazioni multimedia HTPC, dispositivi medicali, ecc. Sulla sua limitata superficie di scheda, ospita il processore AMD Mobile Semprom (8 W) o Mobile Tourion (35 W) e il chipset M690E SB600 per la gestione della memoria Sdram. Una peculiarità di questa mini motherboard è il controllo del rumore delle ventole di raffreddamento e di altri dispositivi elettromeccanici. Silent Fun software function controlla per esempio le ventole di raffreddamento in funzione dei requisiti di raffreddamento ottimali, riducendo in tal modo al minimo la velocità delle ventole.

Mcu a 32 bit con funzionalità Usb On-The-Go - Diversi dispositivi dotati di Usb operano solo in modalità host (in particolare il Pc). Altri dispositivi, per esempio le memorie flash Usb, operano solo come dispositivi passivi, quindi non sono in grado di connettersi autonomamente. Per un dispositivo, disporre di entrambe le possibilità, significa avere più possibilità applicative, per esempio quella di autonegoziare quale dei due dispositivi On-The-Go far accendere. Microchip ha aggiunto alla funzionalità del suo microcontrollore a 32 bit PIC32, la connettibilità Usb 2.0 On-The-Go.

MicroBlaze con Mmu per ospitare Linux - Xilinx ha aggiornato il processore embedded MicroBlaze per la sua architettura programmabile Fpga con una Mmu (Memory Management Unit) che consente a questo processore a 32 bit di eseguire senza penalizzazione sistemi operativi sofisticati, tra cui Linux, che utilizzano il modello di memoria virtuale. MicroBlaze è un core Risc a 32 bit ad architettura Harvard realizzato sotto forma di soft processor, quindi personalizzabile a livello di progetto target. La Cpu dispone di 32 registri general purpose, di una Alu e di un set istruzioni ottimizzato per le applicazioni embedded. Il softcore più le necessarie periferiche e la funzionalità custom che richiede l’applicazione target, possono essere integrate su un’unica Fpga, scegliendo tra i vari tagli di Fpga disponibili quella che meglio corrisponde alla densità di porte logiche in cui viene tradotto l’intero progetto.

Usare la Usb diventa facile - Future Technology Devices ha realizzato la scheda di valutazione V-EVAL per la progettazione di interfaccia Usb host basata su Vinculum VNC1L. La scheda rende disponibile due porte host/slave Usb, vari connettori per porte di I/O, un programmer per il dispositivo Vinculum Usb, un emulatore di terminale e un monitor per i comandi. Oltre alla Usb, viene reso disponibile anche l’accesso a Uart, Spi e Fifo. Vinculum è una famiglia di controller Usb host/slave che permette la rapida implementazione della funzionalità controller Usb Host. Con questo controller è possibile realizzare applicazioni in cui dispositivi slave a connessione Usb possono essere gestiti in applicazioni stand-alone ed embedded, senza dover sviluppare tutta la logica necessaria alla gestione host dell’interfaccia Usb. Il controllore, VNC1L-1A gestisce l’interfaccia Usb e le funzioni di trasferimento dati grazie a una Mcu a 8/32 bit integrata all’interno, insieme alla memoria flash. In maniera trasparente gestisce la Fat del file system, comunica via Uart, Spi o interfaccia parallela Fifo e include il firmware per la gestione delle specifiche porte Usb.

Computer-on-module - I computer su un unico modulo sono schede Cpu altamente integrate che si inseriscono in schede applicative consentendo la realizzazione rapida e affidabile di applicazioni embedded avanzate. La strategia modulare consente di scalare con grande libertà il sistema in funzione della natura dell’applicazione. Com Express è lo standard industriale che consente di garantire compatibilità tra applicazioni Com. RadiSys ha rilasciato uno starter kit che accelera la fase di sviluppo dei prodotti che utilizzano Com Express. Lo starter kit mette a disposizione i moduli che servono allo sviluppatore, preassemblati con la memoria e integrati in una scheda host con hard disk e connessioni. Il sistema di sviluppo risulta così assemblabile in tempi minimi e la prototipazione inizia nel giro di pochi minuti.

Sensori ad elevata integrazione - Utilizzando la sua architettura PSoC (Programmable System-on-Chip) Cypress ha reso disponibile la funzionalità digitale e mixed-signal necessaria alla realizzazione di un sensore di contatto capacitivo. Un design starter kit permette di accelerare lo sviluppo delle applicazioni mixed-signal embedded, CapSense Express Touch Sense Controller. Si tratta di una un’applicazione di sensing capacitivo pre-programmata (in ambiente PSoC Express Visual Embedded System Design Tool e CapSense Express Configuration tool). Configurati e regolati i parametri, il firmware viene trasmesso e fissato sul silicio. Senza aver scritto una sola linea di codice, il dispositivo è pronto per essere integrato nell’applicazione.

I sistemi operativi

uCLinux per soft core processor - uCLinux è stato reso disponibile sul soft core processor LatticeMicro32. Questa disponibilità è particolarmente importante per gli sviluppatori di sistemi embedded che utilizzano l’architettura Fpga come piattaforma di sviluppo di sistemi riconfigurabili. La disponibilità di un sistema operativo basato su Linux su una piattaforma programmabile rappresenta un enorme vantaggio per l’implementazione rapida di sistemi di controllo e altre applicazioni embedded. uCLinux utilizza lo stesso file system e il sistema di networking di Linux senza utilizzare la Mmu. Il porting su LatticeMicro32 è basato su Linux 2.6. Il softcore LatticeMicro32 è una architettura Harvard a 32 bit a elevato livello di configurabilità all’interno delle Fpga di Lattice. È basato su un set istruzioni a 32 bit e un file di 32 registri a 32 bit general purpose. L’architettura di computing è di natura Risc ed è disponibile anche sotto forma di codice sorgente, quindi la sua funzionalità è visibile (è possibile capire il meccanismo operativo), portabile (è possibile migrare dalla Fpga a un Asic o SoC) e flessibile (l’utilizzatore può sviluppare un’architettura di computing alternativa).

RTOS gratuito per microcontrollori Fujitsu - FreeRTOS, un mini real-time kernel open source, è disponibile completamente gratis, attraverso download dal sito, per essere usato in applicazioni commerciali sui microcontrolori Fujitsu serie 16FX e FR MB91460.

Una piattaforma avanzata per i dispositivi mobili - La piattaforma Android, frutto di un'alleanza aperta tra Wind River e tre importanti produttori di chip per applicazioni mobili (STMicroelectronics, Texas Instruments e Nec) è uno stack software aperto che include un sistema operativo, il middleware e una serie di applicazioni chiave, utilizzabile su OMAP3430 di Texas Instruments, su Nomadik di ST e su Medity M2 di Nec. Uno dei principali vantaggi dell'architettura applicativa di Android è la riusabilità dei componenti: qualsiasi applicazione può rendere pubbliche le sue funzionalità e qualsiasi altra applicazione può utilizzarle. Lo stesso meccanismo può essere utilizzato per sostituire i componenti.

Gli ambienti di sviluppo

Linux per multimedia - Renesas ha reso disponibile il reference design basato sul sistema operativo Linux e sul processore multimedia SH722 con engine dedicato per il processing video H.264 di codifica e decodifica. Si tratta di una piattaforma di sviluppo per le applicazioni multimedia, compresa la voce e il video su protocollo Internet, i sistemi di navigazione portabili, i sistemi televisivi portabili e sistemi industriali di sorveglianza video su IP.
La piattaforma integra il processore superscalare SH7722 dotato di capacità di elaborazione Dsp, di tecnologia video e di un set di periferiche idoneo a supportare le applicazioni target di natura multimedia. Il livello software di sistema è basato su una soluzione Linux prevalidata.

Piattaforma di sviluppo Linux pre integrata - MontaVista Linux Professional Edition 5.0 è una piattaforma di sviluppo basata su Linux per sistemi embedded e rappresenta un ambiente integrato e pre-tested. Consiste di Linux open source e include quanto serve per costruire rapidamente una piattaforma o un’applicazione per dispositivi intelligenti. Yamaha, per esempio ha scelto MontaVista Linux Professional Edition come architettura software di sistema per lo sviluppo della famiglia di strumenti musicali avanzati Motif XS. La scelta di Linux è stata fatta in alternativa a quella di un sistema operativo real-time.

Una piattaforma per lo sviluppo rapido con logica programmabile - La combinazione della scheda starter di Cyclone III di Altera con un display Lcd touch-screen realizza un sistema di valutazione di Nios II che consente di pervenire ad applicazioni come il networking o l’audio/image processing in poco tempo, anche da parte di sviluppatori ancora non familiari con il modello di elaborazione basato su Fpga. Il kit include un insieme di strumenti software di sviluppo (Nios II Embedded Design Suite) e una serie di esempi e tutorial (provvisti di codice sorgente) che rendono particolarmente semplice lo sviluppo del software su un processore embedded come Nios II. Tra gli esempi proposti vi è l’aggiornamento di un progetto Fpga da remoto, via Internet, per aggiungere nuove funzionalità a una applicazione, oppure per correggere bachi di sistema. Il kit di sviluppo include la Fpga Cyclone III EP3C25 con 25 K elementi logici, 32 Mbyte di Sdram DDR, 1 MByte di Ssram, 16 MByte di flash, una Ethernet 10/100, un pannello Lcd a colori touch-screen, una interfaccia SD, un I/O audio, un input microfonico, un input video composito, un’uscita Vga, una interfaccia PS/2 e una interfaccia seriale RS232.

Convertire applicazioni C su Fpga - Impulse C, di Impulse Accelerated Technologies, consente di trasformare un programma scritto in C (algoritmi di signal processing o altri processi di elaborazione scritti in C caratterizzati da elevato parallelismo esecutivo) nell’equivalente programmazione ottimale di una Fpga. Impulse C è sostanzialmente un compilatore software-to-hardware, capace di ottimizzare il parallelismo esecutivo dell’algoritmo codificato in linguaggio C in funzione delle capacità esecutive parallele della Fpga target. L’ottimizzatore di parallelismo opera in maniera interattiva, consentendo di ottenere il massimo livello possibile di parallelismo esecutivo, individuando anche il codice a più elevato livello di computing al fine di privilegiare questo nell’esecuzione veloce. Impulse C consente di profilare e partizionare il codice C originario in modo da ripartirlo ottimamente tra il processore sequenziale e l’acceleratore parallelo Fpga. Il debug viene eseguito come per un linguaggio C tradizionale e al termine viene generato automaticamente il codice di programmazione della Fpga target. Le necessarie interfacce di comunicazione tra Fpga e host vengono anch’esse generate automaticamente .

Nuova versione di Artisan Studio - La nuova versione di Artisan Studio (7.0) si caratterizza per una migliore interfaccia, la capacità di generare codice C# e di integrarsi in modalità working group con l’ambiente Matlab/Simulink. Artisan Studio supporta gli standard industriali Omg SysML, Uml e Architectural Framework nel contesto dell’intera suite di strumenti di cui è costituito. In pratica rende disponibile un ambiente di sviluppo collaborativo e integrato che consente ai gruppi di sviluppatori (sistemisti e ingegneri del software) di interagire come se ogni gruppo fosse composto da una sola persona, in tutte le fasi del ciclo di vita, dalla progettazione all’implementazione e manutenzione. Questo aggiornamento di Artisan Studio evita problematiche connesse alla duplicazione del progetto quando il team di progettazione è disperso geograficamente, per esempio l’inconsistenza conseguente all’uso di tool e metodologie eterogenee. Il punto forte di questo aggiornamento è il data repository centralizzato che rende sicuri i dati e rende il modello informativo affidabile.

Pubblica i tuoi commenti