Siemens offre sia software embedded per il settore automobilistico sia soluzioni di progettazione di software integrati. Siemens ha interrotto l'offerta di software embedded autonomo per SoC con il ritiro nel novembre del 2023 dei prodotti Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux e Sourcery CodeBench (inclusi i componenti aggiuntivi associati). I contratti di assistenza esistenti per questi prodotti continuano a essere posti in essere. Contatta il Centro assistenza di Siemens per ulteriori informazioni.
Quali sono i diversi tipi di software embedded e qual è il loro scopo?
- Sistema operativo: un sistema operativo (OS), nella sua accezione più generica, è un software che consente a un utente di eseguire altre applicazioni su un dispositivo informatico. Il sistema operativo gestisce le risorse hardware di un processore, inclusi i dispositivi di input come tastiera e mouse, i dispositivi di output come display o stampanti, le connessioni di rete e i dispositivi di archiviazione come dischi rigidi e memoria. Inoltre, il sistema operativo fornisce servizi per consentire un'esecuzione e una gestione efficienti dei programmi applicativi software e semplificare le allocazioni della memoria per tali programmi.
- Firmware: il firmware è un tipo di software che viene scritto direttamente per un componente hardware. Funziona senza passare attraverso le API, il sistema operativo o i driver dei dispositivi, fornendo le istruzioni e le indicazioni necessarie per comunicare con altri dispositivi o eseguire attività e funzioni di base come previsto.
- Middleware: il middleware è un livello software che si colloca tra le applicazioni e i sistemi operativi. Il middleware viene spesso utilizzato nei sistemi distribuiti, dove semplifica lo sviluppo del software nei modi seguenti:
- Nascondendo le complessità delle applicazioni distribuite
- Mascherando l'eterogeneità di componenti hardware, sistemi operativi e protocolli
- Fornendo interfacce uniformi e di alto livello, utilizzate per realizzare applicazioni interoperabili, riutilizzabili e portatili.
- Mettendo a disposizione un set di servizi comuni che riduce al minimo la ripetizione delle stesse attività e migliora la collaborazione tra le applicazioni
- Applicazione: l'utente finale sviluppa l'applicazione software finale che viene eseguita sul sistema operativo, utilizza o interagisce con il middleware e il firmware ed è il focus principale della funzione di destinazione dei sistemi integrati. Ogni applicazione finale è unica, mentre i sistemi operativi e il firmware possono essere identici per tutti i dispositivi.
Software embedded vs sistemi embedded
I componenti hardware all'interno di un dispositivo che esegue un software embedded prendono il nome di "sistema embedded". Alcuni esempi di componenti hardware utilizzati nei sistemi integrati sono i circuiti di alimentazione, le unità di elaborazione centrale, i dispositivi di memoria flash, i timer e le porte di comunicazione seriale. Durante le prime fasi di progettazione di un dispositivo, si decide quale componente hardware costituirà il sistema integrato e quale sarà la sua configurazione all'interno del dispositivo. Quindi, il software embedded viene sviluppato da zero affinché possa essere eseguito esclusivamente su quel componente hardware e con quella precisa configurazione. Questo fa della progettazione di software embedded un campo specializzato che richiede una profonda conoscenza delle capacità hardware e della programmazione informatica.
Esempi di funzioni integrate basate su software
Quasi tutti i dispositivi con circuiti stampati e chip per computer hanno questi componenti organizzati in un sistema software integrato. Di conseguenza, i sistemi software integrati sono onnipresenti nella vita di tutti i giorni e si trovano in tutte le tecnologie impiegate nei settori dei beni di consumo, industriale, automobilistico, aerospaziale, medicale, commerciale, delle telecomunicazioni e militare.
Esempi comuni di funzionalità basate su software embedded includono:
- Sistemi di elaborazione delle immagini che si trovano nelle apparecchiature di imaging medicale
- Sistemi di controllo Fly-by-Wire che si trovano sugli aerei
- Sistemi di rilevamento del movimento che si trovano nelle telecamere di sicurezza
- Sistemi di controllo del traffico che si trovano nei semafori
- Sistemi di temporizzazione e automazione che si trovano nei dispositivi di domotica
Quali sono i diversi tipi di sistemi integrati?
In base alle prestazioni e ai requisiti funzionali, esistono cinque classi principali di sistemi integrati:
- I sistemi integrati in tempo reale eseguono le attività in un modo deterministico e ripetibile, influenzato dall'architettura di base e dalla pianificazione dei sistemi operativi, nonché dalle prestazioni dei thread, dalle diramazioni e dalla latenza dell'interruzione. I sistemi integrati generici non contengono un requisito in tempo reale e possono gestire interruzioni o diramazioni indipendentemente dal tempo di completamento. I display grafici e la gestione di tastiera e mouse sono ottimi esempi di sistemi generici.
- I sistemi integrati autonomi possono completare le attività senza un sistema host o risorse di elaborazione esterne. Possono inviare o ricevere dati dai dispositivi collegati, ma il loro funzionamento non dipende da essi.
- I sistemi integrati autonomi possono svolgere la propria funzione senza un sistema host o risorse di elaborazione esterne. Possono inviare o ricevere dati dai dispositivi collegati, ma il loro funzionamento non dipende da essi.
- I sistemi integrati in rete dipendono da una rete connessa per l'esecuzione delle attività assegnate.
- In base alla complessità dell'architettura hardware del sistema, esistono tre tipi principali di sistemi integrati: I sistemi integrati in rete dipendono da una rete connessa per l'esecuzione delle attività assegnate.
In che modo i mercati finali influenzano i sistemi integrati
I requisiti e i componenti del sistema integrato differiranno in base alle richieste del mercato di riferimento. Alcuni esempi:
- Settore dei beni di consumo: in applicazioni come i beni di consumo, quali lavatrici, dispositivi indossabili e telefoni cellulari, i sistemi integrati riducono ulteriormente le dimensioni dei
- dispositivi system-on-chip e il consumo energetico o il funzionamento a batteria e migliorano le interfacce grafiche. In queste applicazioni, i sistemi operativi configurabili e la possibilità di disattivare gli "ambiti" non operativi del progetto sono molto apprezzati.
- Networking: applicazioni che consentono la connettività, la comunicazione, le operazioni e la gestione di una rete aziendale. Offrono un percorso e servizi di comunicazione tra utenti, processi, applicazioni, servizi e reti esterne/Internet. Le applicazioni di rete integrate si concentrano sulla velocità di risposta, sull'elaborazione dei pacchetti e sui percorsi delle periferiche hardware.
- Settore industriale: per applicazioni come la gestione delle officine, i motori e i mulini a vento, questi sistemi garantiscono la connettività cloud e il funzionamento deterministico "in tempo reale" e possono concentrarsi soprattutto sul middleware.
- Settori medicale, automobilistico e aerospaziale: questi settori necessitano di sistemi critici per la sicurezza mista, in cui le parti del progetto sono isolate l'una dall'altra in modo che solo i dati necessari entrino o escano dal sistema, garantendo al contempo che l'utente finale non subisca danni. Alcuni esempi di applicazioni sono i sistemi di guida autonoma delle automobili e i dispositivi medici. Questi sistemi integrati possono essere dotati di un mix di sistemi operativi open source (Linux) e deterministici in tempo reale (RTOS) e fanno ampio ricorso al middleware collaudato.
Perché il software embedded per il settore automobilistico è diverso?
Nell'elettronica per il settore automobilistico, si verificano complesse interazioni in tempo reale tra più sistemi integrati, ciascuno dei quali controlla funzioni quali frenata, sterzo, sospensioni, gruppo motopropulsore, ecc. L'alloggiamento fisico contenente ciascun sistema integrato è indicato come unità di controllo elettronico (ECU). Ciascuna ECU e il relativo software embedded fanno parte di una complessa architettura elettrica nota come sistema distribuito.
Comunicando tra loro, le ECU che compongono il sistema distribuito di un veicolo possono eseguire una varietà di funzioni, come la frenata di emergenza automatica, il cruise control adattivo, il controllo della stabilità, i fari adattivi e molto altro. Una singola funzione potrebbe richiedere interazioni tra 20 o più applicazioni software integrate, distribuite su più ECU collegate tramite diversi protocolli di rete. I complessi algoritmi di controllo distribuiti con il software embedded garantiscono la corretta temporizzazione delle funzioni, gli input e gli output necessari e la sicurezza dei dati.
Esempi comuni di funzionalità basate su applicazioni software per il settore automobilistico includono:
- Funzioni ADAS (Advanced Driver Assist Systems) come cruise control adattivo, frenata automatica di emergenza, sistema di mantenimento della corsia, sistema di assistenza nel traffico, avvisi di deviazione dalla corsia
- Gestione della batteria
- Compensazione della coppia
- Controllo della velocità di iniezione del carburante
Stack software ECU
L'unità di controllo elettronico o ECU è composta da un'unità di calcolo principale con hardware a livello di chip e uno stack di software embedded. Tuttavia, i produttori del settore automotive tendono sempre più a progettare ECU con circuiti integrati complessi che contengono più core di calcolo in un unico chip, i cosiddetti System on a Chip (SoC). Questi SoC possono ospitare più astrazioni di ECU per il consolidamento dell'hardware. Lo stack software di una ECU include in genere una vasta gamma di soluzioni, dal firmware di basso livello alle applicazioni software integrate di alto livello.
Stack ECU | Descrizione |
Applicazione software integrata | Algoritmi di controllo, elaborazione, servizi |
Framework applicativo | Framework di sicurezza |
Ambiente operativo | AUTOSAR Classic, AUTOSAR Adaptive, canali di ingresso/uscita |
Virtualizzazioni integrate | Sistema operativo in tempo reale, astrazioni ECU |
Firmware | Bootloader, archiviazione sicura, implementazione sicura di thread |
Hardware | Dispositivi a base di silicio, micro-controller, circuiti stampati a uno o più strati |