Che cos’è il software incorporato?

“Che cos’è il software incorporato?” è una domanda comune. Il mondo e la società intorno a noi sono modellati e governati da sistemi basati su microprocessori – pacemaker, telefoni cellulari, elettrodomestici, automobili, sistemi di controllo ferroviario, satelliti – la lista è quasi letteralmente infinita. Senza di loro, non ci sarebbe energia, acqua corrente o cibo. Gli affari o il trasporto sarebbero impossibili. Le malattie si diffonderebbero e la società si disintegrerebbe rapidamente.

Il software eseguito in questi sistemi è chiamato software incorporato. Si tratta di software per computer che è incorporato in sistemi hardware scritti per controllare macchine o dispositivi. Il software incorporato è tipicamente progettato per il particolare hardware su cui viene eseguito e spesso esegue una funzione specifica, anche se un singolo pezzo di hardware può contenere più programmi software incorporati.

Ogni pezzo di tecnologia che ha circuiti e chip di computer avrà probabilmente un software incorporato al suo interno. I produttori incorporano software embedded nell’elettronica di automobili, telefoni, modem, elettrodomestici, giocattoli, sistemi di sicurezza, pacemaker, televisori e set-top box, e orologi digitali per esempio.

Il software embedded permette molte delle funzioni avanzate che sono comuni nei dispositivi moderni. Mentre il software incorporato può essere molto semplice, può anche essere molto sofisticato in applicazioni come i sistemi di controllo dei processi, armi militari e aerei.

Storia del software incorporato

La maggior parte della tecnologia innovativa, è spesso finanziata, ricercata e sviluppata per applicazioni militari e i sistemi incorporati sono stati usati nell’esplorazione dello spazio, nella guida dei missili e nell’avionica dalla fine degli anni 30 alla metà degli anni 60. Non è stato fino alla fine degli anni ’60 che il software incorporato si è evoluto al punto da essere utile a persone al di fuori di queste aree specialistiche.

Negli anni ’70, i primi chip micro-controller integrati come l’Intel 8008 hanno fatto decollare il software incorporato. Questo singolo chip agiva come un piccolo computer; poteva leggere i dati del mondo reale, elaborarli e generare output, controllati da un programma software flessibile. Con questi chip, divenne possibile scrivere un singolo programma, caricarlo nel chip e poi fare in modo che il chip eseguisse il suo programma ogni volta che riceveva l’input corretto. Alla fine degli anni ’80, quasi ogni forma di elettronica di consumo aveva una sorta di chip microcontrollore incorporato al suo interno.

Negli anni successivi, il costo di produzione dei microcontrollori integrati è sceso a pochi centesimi. Come risultato, sono in quasi tutti i dispositivi elettronici, e ognuno di questi chip ha uno o più pezzi di software incorporato. Sono anche in oggetti che la maggior parte delle persone non penserebbe di avere dei computer, come tostapane, ventilatori elettrici o giocattoli per bambini.

Le sfide del software integrato

Il software integrato è per definizione parte di un sistema hardware più grande, che sia un’automobile, un pacemaker o un sistema di automazione industriale. Non solo questi sistemi operano in tempo reale e devono produrre l’azione progettata entro un tempo specificato in tutte le circostanze, ma devono operare con risorse limitate come un piccolo spazio di memoria, limitate capacità di elaborazione dei dati o basso consumo energetico. Il software incorporato deve anche conformarsi a una vasta gamma di cambiamenti nel suo ambiente. Processori, sensori e parti hardware cambiano nel tempo, mentre il software rimane quasi lo stesso. Inoltre, il software richiede portabilità, autonomia, flessibilità e adattabilità.

L’affidabilità è fondamentale. Un comportamento inaspettato di un sistema embedded potrebbe danneggiare seriamente il suo ambiente operativo. Poiché gli utenti finali richiedono comportamenti a lungo termine dai sistemi embedded, il software embedded deve funzionare per decenni senza assistenza.

A causa della stretta associazione del software embedded con ambienti critici e rischi per la vita la sicurezza è anche un requisito chiave. Il ciclo di vita nello sviluppo di software embedded è governato da standard che richiedono alta qualità, forte ingegneria e processi di gestione. Combinando questo con l’uso di tecnologie all’avanguardia, si richiedono forti competenze tecniche e professionalità agli ingegneri del software embedded. Man mano che le dimensioni e la complessità del software embedded crescono, gli standard applicati al processo di sviluppo del software devono migliorare continuamente, nonostante le forti pressioni sui costi.

La sicurezza sta diventando sempre più importante man mano che l'”internet delle cose” significa che i sistemi embedded diventano più ampiamente utilizzati e più altamente interconnessi tra loro. Poiché i dispositivi di tutti i giorni, come lavatrici e frigoriferi, includono la connettività come caratteristica standard, l’Internet delle cose rischia di esporre nuovi livelli di insicurezza e sono necessarie nuove idee per aiutare a contrastare il malware e le minacce di hacking.

Conclusione

Il software embedded aumenta la variabilità, la configurabilità, l’estendibilità e la modificabilità dei prodotti quotidiani e permette anche una maggiore varietà di funzionalità. Ora è una parte fondamentale di molte cose che diamo per scontate nella vita quotidiana.

In futuro, il software incorporato sarà in tutto – la vostra casa automatizzata, la vostra auto intelligente, le infrastrutture di comunicazione, gli strumenti medici e gli impianti, e i sistemi di controllo onnipresenti. Le nuove tecnologie legate all’energia aumenteranno l’efficienza della trasmissione della corrente elettrica e forniranno modi immediati ed efficaci per affrontare le richieste di energia e clima.

I sistemi embedded non saranno più definiti dall’hardware di calcolo che usano. Piuttosto, saranno progettati per fare qualsiasi funzione per raggiungere obiettivi multipli e mutevoli, sia su un micro-controller, un microprocessore, un processore di segnali, un assemblaggio biologico, o qualsiasi altro dispositivo logico programmabile.

Più qualità di vita desideriamo, più alti standard di vita vogliamo stabilire in tutto il pianeta, e più chiediamo sicurezza e protezione, più abbiamo bisogno di software embedded.