Quaranta miliardi. È il numero previsto di dispositivi embedded che saranno disponibili, in tutti i campi applicativi, alla fine del 2020. Fra sei anni. C’è da chiedersi se saranno ancora in vendita machine e sistemi general purpose come i PC.
Già oggi una recente ricerca rivela che PC e workstation costituiscono soltanto il 2% del parco mondiale dei sistemi informatici, ritenendo quindi che ben il 98% di tali dispositivi siano incorporati (embedded) in apparecchiature elettroniche più complesse. Giusto per dare un’idea, si stima che già alla fine del 2015 (fra soltanto poco più di un anno) il mercato globale dei sistemi embedded sarà valutabile in 2600 miliardi di dollari. Perché questa esasperata tendenza all’integrazione? I sistemi embedded sono dispositivi basati su piattaforme hardware personalizzate con applicazioni software ottimizzate per l’esecuzione di un unico compito, quasi sempre con elevato livello di customizzazione, non riproducibile su piccola scala. Sono dunque la chiave di volta per far fronte a un mercato caratterizzato da un’economia globalizzata, nel quale i produttori di sistemi devono affrontare enormi pressioni per ridurre i costi, massimizzare i profitti e, vista la rapidità di evoluzione e innovazione tecnologica, per accelerare il time-to-market dei prodotti.
Una definizione completa e ragionata
Ricercando in Rete si trovano numerose definizioni formali e informali per i sistemi embedded. La seguente descrizione, per esempio, è sufficientemente chiara e completa: «Un sistema embedded è un sistema di elaborazione arbitrariamente complesso contenuto entro un generico apparato o impianto, e da esso normalmente non separabile senza perdita di funzionalità; tale sistema di elaborazione risulta usualmente inaccessibile in modo diretto, ed è dedicato esclusivamente al controllo dell’apparato o del sistema che lo ospita. Il dispositivo, indifferentemente pre-programmato o (parzialmente) riprogrammabile, è per costruzione specificamente dedicato a un ristretto numero di funzioni di misura e controllo». Dunque hardware dedicato e ottimizzato per svolgere una sola funzione, integrato all’interno di apparecchiature più complesse, non accessibile direttamente, pre-programmato o parzialmente riprogrammabile, ben lontano dal più familiare concetto di piattaforma general-purpose tipica dei PC, caratterizzati da risorse sovrabbondanti rispetto a singole e specifiche applicazioni.
I vantaggi dei sistemi di controllo embedded
In un sistema embedded la prima caratteristica non necessaria è la versatilità, il che consente l’ottimizzazione dell’hardware con la riduzione della taglia e delle prestazioni allo stretto indispensabile per garantire la funzionalità progettata. La precisa conoscenza dell’applicazione consente quindi di dimensionare in modo corretto e ottimale la capacità di calcolo scegliendo opportunamente il microprocessore ed eventualmente utilizzando componenti hardware aggiuntivi per ridurre la potenza di elaborazione richiesta al processore stesso. Spesso la riduzione di taglia si esplica anche in una riduzione dimensionale a tutto vantaggio dell’ingombro fisico del sistema controllato; basta pensare a un moderno smartphone per rendersi conto dell’importanza di tale possibilità. L’ottimizzazione dell’hardware, di norma, collabora anche alla riduzione dei costi, fattore determinante per le produzioni di grandi numeri, tipiche dell’elettronica di consumo (si pensi ancora agli smartphone). La portabilità, inoltre, è caratteristica sempre più apprezzata e che accomuna sistemi professionali e sistemi consumer: solo per fare qualche esempio, sono ormai d’uso frequente sistemi d’identificazione RFID, pannelli di controllo HMI portatili o movibili, sistemi di connessione Wi-Fi per ambiente industriale, così come phablet e tablet; per tutti questi sistemi, che hanno nella mobilità il loro punto di forza, un basso livello di consumo energetico è la prerogativa fondamentale che consente l’utilizzo di batterie piccole e leggere e un’ampia autonomia, di fatto promuovendo e agevolando la diffusione di tali dispositivi. Infine la ridotta complessità della piattaforma hardware e le caratteristiche di limitatezza del software, circoscritto alla funzionalità da implementare, rendono necessarie strategie progettuali flessibili, in grado di garantire la possibilità di modificare il progetto in corso d’opera, visto che ormai, per esigenze di rapidità nell’essere presenti sul mercato, le fasi iniziali della progettazione avvengono in parallelo, o quasi, alla stesura delle specifiche.
Le caratteristiche di un sistema embedded
La natura tailor-made dei sistemi embedded impone però alcune caratteristiche funzionali:
- dimensione ridotta del codice; come detto un dispositivo embedded nasce per svolgere una funzione o al più una classe ridotta di funzioni e dunque, già di per sé, ciò tende a ridurre la dimensione del software. A ciò si aggiunge che l’applicazione risiede normalmente in un supporto di memoria integrato nello stesso chip o sulla stessa board del microprocessore; questo vincolo, necessario soprattutto per motivi di costo e ingombro, collabora a imporre limitazioni all’estensione del codice.
- prestazioni; in generale devono garantire, oltre la funzionalità progettata, anche il soddisfacimento di due tipi di vincoli: il tempo di reazione a un evento e il tempo di gestione dell’evento stesso. Questi vincoli impongono soluzioni progettuali e architetturali spesso difficili da attuare perché, oltre a soddisfare i requisiti funzionali, devono comunque mantenere basso il costo di sviluppo e messa a punto.
- tempo reale; se il sistema embedded è progettato per un utilizzo industriale, per esempio come regolatore in un ciclo di controllo, è necessario che le operazioni svolte siano completate entro un tempo fissato predefinito ovvero il sistema operativo deve avere caratteristiche real-time.
- affidabilità; il tema è ampio e riguarda sia l’aspetto di provata funzionalità, ovvero l’assenza di bug che, per impieghi non consumer, potrebbero provocare danni e pericoli, sia quello di rispondenza a certificazioni che possono anche essere molto restrittive, dipendendo dal Paese e dal settore di applicazione.
- safety; con tale termine si fa riferimento alla possibilità che, a fronte di un guasto, il sistema non provochi conseguenze gravi alle cose o alle persone con cui interagisce.
- sicurezza; indipendentemente dal settore applicativo, un dispositivo embedded deve garantire di proteggere le informazioni e di poterne verificare l’autenticità; a titolo di esempio si pensi al solito smartphone.
Le piattaforme hardware dei sistemi embedded
Da quanto detto, risulta evidente che la forte ottimizzazione propria dei sistemi embedded rende difficile definire delle architetture hardware standard. A parità di prestazioni e a seconda dei vincoli posti dall’applicazione, vi possono in realtà essere diverse realizzazioni. Se, per esempio, l’obiettivo è quello di realizzare un prodotto con un rapido TTM (Time To Market) la scelta progettuale può essere sbilanciata verso soluzioni software, mentre se l’obiettivo è la realizzazione di un prodotto con ingombri limitati e di basso costo per grossi volumi produttivi, la soluzione ottimale potrebbe essere lo sviluppo di hardware dedicato, basato su circuiti ASIC (Application Specific Integrated Circuit). Nel primo caso l’architettura potrebbe, in linea di principio, essere più vicina alle normali architetture general purpose basandosi, per esempio, su piattaforme X86 eventualmente ridotte e/o customizzate mentre nel secondo caso potrebbe invece essere basata su circuiti integrati VLSI (Very Large Scale of Integration) appositamente progettati e già contenenti una serie di componenti caratteristici dei sistemi a microprocessore (microprocessore, unità aritmetico-logica, memoria, DSP, interfaccia con l’esterno, porte di I/O, ecc…). In tal caso l’ovvio vantaggio è quello di una totale disponibilità del prodotto per l’applicazione progettata e, quindi, un livello prestazionale non altrimenti raggiungibile. Vale la pena mettere in evidenza che, stanti i requisiti di tempo e costo per la customizzazione hardware, l’utilizzo di ASIC da ai costruttori il grande vantaggio della quasi impossibilità di copia/clonazione del dispositivo. Il che, di questi tempi, non è poco.
I sistemi embedded e il controllo di processo
Un esempio concreto e a massima diffusione di architettura embedded basata su ASIC è la parte di comunicazione presente oggi indistintamente in tutti i PLC, nei sistemi HMI e in moltissimi dispositivi di campo utilizzati in automazione industriale. Se, per esempio, un costruttore vuole implementare in un proprio prodotto la connettività al bus di campo ProFiBus non ha che da scegliere fra ASIC “Master”, ASIC “Simple Slave”, ASIC “Intelligent Slave”, ASIC “Slave with processor core” o ASIC “For signal conditioning and conversion to other media” in dipendenza delle caratteristiche funzionali, acquistare la quantità necessaria di chip e installarli nel proprio prodotto, ottenendo un dispositivo nel quale la gestione della comunicazione non utilizza praticamente alcuna risorsa di elaborazione dell’apparecchiatura ospitante essendo totalmente autonoma e implementata nel chip ASIC. L’esempio fatto per ProFiBus, ovviamente, vale anche per moltissimi altri sistemi di comunicazione come CanBus, DeviceNet, Ethernet, EtherCat, ecc… Addirittura sono oggi comuni ASIC in grado di gestire più protocolli e in grado di garantire la connessione di un dispositivo a differenti strutture di comunicazione.