Tutti hanno certamente familiarità con il software per il PC o il notebook, ma si è affermata anche un’altra forma di applicazione. Nel caso dei cosiddetti “sistemi embedded”, questi sono saldamente collegati all’hardware e garantiscono che il dispositivo segua una certa logica. Il controllo è simile a quello di un computer. In questo articolo spieghiamo come funziona il “software embedded” e mostriamo a cosa può servire con l’aiuto di alcuni esempi pratici.
No, i programmi embedded sono sviluppati specificamente per un particolare dispositivo o funzione e non possono essere scambiati o modificati.
Da un lato, il software embedded è caratterizzato da un basso consumo di energia e di spazio e, dall’altro, da una manutenzione molto ridotta.
Le applicazioni embedded sono utilizzate in tutti i settori dell’IoT (“Internet of Things”).
Indice dei contenuti
Definizione: cos’è il software incorporato?
Il “software incorporato” è un software sviluppato per un hardware specifico. Le applicazioni vengono eseguite in gran parte inosservate dall’utente in background e si occupano del controllo, della regolazione e del monitoraggio delle funzioni. Anche il termine “firmware” è spesso usato come sinonimo.
Il software incorporato è costituito essenzialmente da tre componenti che ne determinano il design e la funzionalità:
- Il bootloader si occupa di caricare o aggiornare il sistema operativo e il software applicativo.
- Il sistema operativo è responsabile della gestione dei file e della memoria e controlla il multitasking.
- Il software applicativo è l’interfaccia con il sistema host. Contiene funzioni specifiche del dispositivo ed elabora i dati raccolti in precedenza.
I sistemi embedded sono spesso caratterizzati da condizioni quadro rigorose. Queste includono, ad esempio, fattori quali la minimizzazione dei costi e dello spazio e la riduzione dei requisiti energetici. Inoltre, di solito sono richiesti requisiti elevati in termini di funzionamento, affidabilità, comportamento in tempo reale e, naturalmente, sicurezza. Non sorprende quindi che le piattaforme si discostino spesso in modo significativo dal design abituale (standardizzato) dei PC.
Buono a sapersi: La controparte del “sistema incorporato” è il cosiddetto “sistema autonomo”, in cui le funzioni sono separate in diversi sistemi indipendenti. Questi includono, ad esempio, i controlli automobilistici basati su microcontrollori, ma anche una normale tastiera di computer.
Nozioni di base di ingegneria: come programmare un software embedded?
Lo sviluppo di software embedded è diverso dalla scrittura di programmi per computer tradizionali ed è anche molto più impegnativo. In un sistema embedded è disponibile solo una quantità limitata di memoria; inoltre, la memoria dei programmi e quella dei dati sono separate tra loro. Anche la velocità di clock del processore embedded è spesso molto inferiore a quella di un sistema PC convenzionale.
Ciò significa che il codice incorporato deve non solo offrire ampie funzionalità, ma anche funzionare alla velocità richiesta nonostante le risorse limitate. Inoltre, devono essere soddisfatti anche i requisiti di architettura, tempistica e consumo energetico.
Fortunatamente, gli sviluppatori embedded hanno a disposizione una serie di strumenti e tecniche per implementare tali progetti. Il software embedded viene solitamente programmato in assembler, ma ora si utilizzano sempre più spesso linguaggi di alto livello come il C o il C++. Questi ultimi dispongono solitamente di un compilatore migliore. Inoltre, molte delle tecniche di analisi e ottimizzazione possono essere utilizzate anche per applicazioni basate su assembler.
3 Esempi pratici di utilizzo del software embedded
Il dispositivo in questione non deve necessariamente essere un computer. Uno degli esempi più evidenti di sistema incorporato sono le automobili moderne, che sono praticamente impossibili da spostare senza elettronica.
Che si tratti di ABS, telaio adattivo, airbag, ABS o cambio automatico , sono tutti controllati da un software altamente efficiente che svolge una funzione precisamente definita come sottosistema insieme all’hardware associato.
Ad esempio, se l’ABS riceve dai sensori di velocità degli pneumatici l’informazione che la ruota potrebbe bloccarsi in frenata, utilizza delle valvole idrauliche per modificare la pressione dei freni sulla ruota in questione. In questo modo, la capacità di sterzare e la stabilità di guida vengono mantenute.
3.1 Anche la costruzione trae vantaggio dal software incorporato
Un altro settore che trae vantaggio dall’uso del software incorporato è quello delle costruzioni. Le macchine edili del produttore Liebherr, ad esempio, sono dotate di un sistema embedded di Zühlke Engineering che legge i dati operativi e li trasmette via SMS o Internet a un centro dati. Se, ad esempio, la pressione dell’olio è troppo alta, il sistema segnala un carico eccessivo sui tubi idraulici. Inoltre, è possibile supportare i tecnici in loco attraverso la manutenzione remota dal centro di controllo.
Anche nella produzione, sempre più processi vengono automatizzati con l’aiuto di software intelligenti. Oggi esistono persino punzonatrici in grado di rilevare le irregolarità del materiale. Inoltre, riconoscono gli errori nel processo di produzione e si regolano in pochi secondi grazie agli aggiornamenti del software basati su questi dati.
Oltre a ciò, il software incorporato può essere trovato anche in questi settori:
- Elettronica di consumo, ad esempio televisori, radio digitali, TV, console di gioco o streaming box.
- Dispositivi di telecomunicazione, ad esempio router o telefoni cellulari.
- Tecnologia industriale e medica
- Tecnologia militare
- Aerospaziale
- Comandi per lavatrici, lavastoviglie e frigoriferi
Buono a sapersi: Il collegamento in rete dei singoli sistemi embedded crea una serie di nuove possibilità per ambienti complessi, con i quali i processi possono essere mappati in tempo reale e senza il costante intervento umano.
Quali sono i vantaggi e gli svantaggi del software embedded?
L’incorporazione del software in un sistema complessivo presenta alcuni vantaggi significativi. Poiché nella maggior parte dei casi i sistemi hanno una sola funzione, non solo si adattano a uno spazio molto ridotto, ma sono anche caratterizzati da un basso consumo energetico. Inoltre, sono relativamente poco costosi da acquistare e quindi rappresentano un modo molto economico ed efficiente di controllare i dispositivi.
Inoltre, il software incorporato richiede pochissima manutenzione, il che significa che deve essere aggiornato solo molto raramente. Ciò lo rende particolarmente interessante per l’integrazione in dispositivi che non devono necessariamente essere mantenuti dall’utente finale e che non richiedono aggiornamenti regolari.
4.1 Anche il software incorporato ha i suoi limiti
Nonostante tutti gli aspetti positivi, il software embedded presenta anche alcuni svantaggi che non vogliamo tralasciare in questa sede. Da un lato, è indispensabile per il funzionamento dell’intero sistema e, purtroppo, non può essere sostituito perché è incorporato. Con una struttura modulare, invece, c’è la possibilità di aggiungere e rimuovere successivamente funzioni e processi.
Anche l’aggiornamento di un sistema embedded è sostanzialmente impossibile, perché l’hardware e il software sono progettati appositamente per funzionare ininterrottamente senza aggiornamenti. Per modificare un sistema embedded, è necessario prima smontare completamente il dispositivo host per poterlo riassemblare dopo la riprogrammazione. Nella maggior parte dei casi, è quindi molto più conveniente sostituirlo completamente.
Un altro aspetto che spesso causa problemi è il fatto che i sistemi embedded non sono completamente reattivi. Comunicano tramite sensori e attuatori e si aspettano una risposta corretta in tempo reale. Se questa non viene fornita, il risultato è “FALSO”, che a sua volta compromette il funzionamento dell’intero sistema.
In questo video potete anche scoprire cos’è il software embedded: