Questa pagina è visualizzata in italiano grazie alla traduzione automatica. Visualizzare la versione in inglese?
Questa traduzione è stata utile?
  1. Home

Software embedded

Il software embedded è un'applicazione o un firmware specializzato che viene eseguito su un cluster di elaborazione incorporato in un SoC o IC. Quasi tutti i prodotti elettronici possono contenere uno o più processori embedded, comuni nelle automobili di oggi, nell'automazione dei fattori, nell'avionica, nei dispositivi medici e altro ancora.

Quali sono i diversi tipi di software embedded?

Le applicazioni software integrate sono programmazioni specializzate all'interno di dispositivi non PC, come parte di un microchip o come parte di un'altra applicazione che si trova sopra il chip, per controllare funzioni specifiche del dispositivo. A differenza delle applicazioni per PC, che possono essere installate su vari sistemi informatici e modificate per fornire diversi livelli di funzionalità, il software embedded ha requisiti hardware e capacità fisse. È stato creato esclusivamente per il particolare dispositivo su cui viene eseguito, con restrizioni di elaborazione e memoria legate direttamente alle sue specifiche. Nel contesto di questa discussione, il software embedded include applicazioni, firmware, middleware e sistemi operativi che vengono eseguiti su un singolo microprocessore o cluster di microprocessori "incorporati" all'interno di una logica aggiuntiva.

embedded-software-is803905696-feature-640x360

Caratteristiche e caratteristiche dei sistemi embedded

Anche se esistono molti tipi di sistemi embedded, tutti condividono le stesse caratteristiche vantaggiose e le stesse caratteristiche di progettazione.

Tutti i sistemi embedded sono specifici per le attività

Svolgono la stessa funzione pre-programmata per tutta la loro vita utile e non possono essere modificati.

Tutti i sistemi embedded sono ad alta efficienza

I requisiti di risorse del software embedded non devono mai superare la capacità dell'hardware su cui è installato e le specifiche dell'hardware non devono mai superare i requisiti minimi del software embedded.

Progettato per la stabilità

Tutti i sistemi embedded sono progettati per essere altamente affidabili e stabili. Devono svolgere il loro compito con tempi di risposta e funzionamento costanti per tutta la durata del dispositivo che li ospita.

Quali tipi di software embedded offre Siemens?

Siemens offre sia soluzioni di software embedded per il settore automobilistico che di ingegneria del software embedded. Siemens ha interrotto l'offerta di software embedded standalone per SoC con il ritiro delle offerte di prodotti software Sokol, Nucleus e Multicore.

Quali sono i diversi tipi di software embedded e i loro scopi?

  • Sistema operativo - Un sistema operativo (OS), nel suo senso più generale, è 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. Il sistema operativo fornisce inoltre servizi per facilitare l'esecuzione e la gestione efficienti e l'allocazione della memoria per i programmi applicativi software.
  • Firmware - Il firmware è un tipo di software scritto direttamente per un componente hardware. Funziona senza passare attraverso le API, il sistema operativo o i driver di dispositivo, 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 situato tra le applicazioni e i sistemi operativi. Il middleware viene spesso utilizzato nei sistemi distribuiti in cui semplifica lo sviluppo del software fornendo quanto segue:

    • Nascondere le complessità delle applicazioni distribuite
    • Mascherare l'eterogeneità di hardware, sistemi operativi e protocolli
    • Fornire interfacce uniformi e di alto livello utilizzate per creare applicazioni interoperabili, riutilizzabili e portatili.
    • Fornire una serie di servizi comuni che riducono al minimo la duplicazione degli sforzi e migliorano 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 è l'obiettivo principale della funzione di destinazione dei sistemi embedded. Ogni applicazione finale è unica, mentre i sistemi operativi e il firmware possono essere identici da dispositivo a dispositivo.

Software embedded vs sistemi embedded

I componenti hardware all'interno di un dispositivo che esegue software embedded sono chiamati "sistema embedded". Alcuni esempi di componenti hardware utilizzati nei sistemi embedded 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, viene deciso l'hardware che comporrà il sistema embedded e la sua configurazione all'interno del dispositivo. Quindi, il software embedded viene sviluppato da zero per funzionare esclusivamente su quell'hardware in quella precisa configurazione. Ciò rende la 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 disposti in un sistema software integrato. Di conseguenza, i sistemi software integrati sono onnipresenti nella vita di tutti i giorni e si trovano in tutta la tecnologia di consumo, industriale, automobilistica, aerospaziale, medica, commerciale, delle telecomunicazioni e militare.

Esempi comuni di funzionalità basate su software incorporato includono:

  • Sistemi di elaborazione delle immagini presenti nelle apparecchiature di imaging medicale
  • Sistemi di controllo fly-by-wire presenti negli aeromobili
  • Sistemi di rilevamento del movimento nelle telecamere di sicurezza
  • Sistemi di controllo del traffico presenti nei semafori
  • Sistemi di temporizzazione e automazione presenti nei dispositivi per la casa intelligente

Quali sono i diversi tipi di sistemi embedded?

In base alle prestazioni e ai requisiti funzionali, esistono cinque classi principali di sistemi embedded:

  • I sistemi embedded in tempo reale completano le attività in modo deterministico e ripetibile, il che è influenzato dall'architettura e dalla pianificazione sottostanti dei sistemi operativi, nonché dalle prestazioni dei thread, dalla diramazione e dalla latenza di interruzione. I sistemi embedded generici non contengono un requisito in tempo reale e possono gestire interrupt o ramificazioni senza dipendere da un tempo di completamento. I display grafici e la gestione di tastiera e mouse sono buoni esempi di sistemi generali.
  • I sistemi embedded autonomi sono in grado di completare le attività senza un sistema host o risorse di elaborazione esterne. Possono emettere o ricevere dati dai dispositivi collegati, ma non dipendono da essi per completare la loro attività.
  • I sistemi embedded stand-alone possono completare il loro compito senza un sistema host o risorse di elaborazione esterne. Possono emettere o ricevere dati dai dispositivi collegati, ma non dipendono da essi per completare la loro attività.
  • I sistemi embedded collegati in rete dipendono da una rete connessa per eseguire le attività assegnate.
  • In base alla complessità dell'architettura hardware del sistema, esistono tre tipi principali di sistemi embedded: I sistemi embedded collegati in rete dipendono da una rete connessa per eseguire le attività assegnate.

In che modo i mercati finali influenzano i sistemi embedded

I requisiti e i componenti del sistema embedded differiranno in base alle richieste del mercato di destinazione. Di seguito sono riportati alcuni esempi:

  • Consumer – In applicazioni come i beni di consumo come lavatrici, dispositivi indossabili e telefoni cellulari, i sistemi embedded enfatizzano le dimensioni ridotte del
  • System-on-chip, funzionamento a basso consumo energetico o a batteria e interfacce grafiche. In queste applicazioni, i sistemi operativi configurabili e la capacità di disattivare i "domini" non operativi del progetto sono apprezzati.
  • Rete: applicazioni che consentono la connettività, la comunicazione, le operazioni e la gestione di una rete aziendale. Fornisce il percorso di comunicazione e i servizi tra utenti, processi, applicazioni, servizi e reti esterne/Internet. Le applicazioni di rete embedded si concentrano sulla velocità di risposta, sull'elaborazione dei pacchetti e sui percorsi hardware delle periferiche.
  • Industriale – Per applicazioni come la gestione delle fabbriche, i motori e i mulini a vento, l'enfasi tende a proteggere la connettività cloud e il funzionamento deterministico "in tempo reale" e può concentrarsi fortemente sul middleware.
  • Medicale, automobilistico e aerospaziale – Questi settori hanno bisogno di sistemi critici per la sicurezza mista, in cui parti del progetto sono isolate l'una dall'altra per garantire che solo i dati necessari entrino o escano dal sistema (sicurezza), garantendo al contempo l'assenza di danni all'utente finale (sicurezza). Ne sono un esempio i sistemi di guida autonoma nelle automobili e i dispositivi medici. Questi sistemi embedded possono essere caratterizzati da una combinazione di sistemi operativi open source (Linux) e deterministici in tempo reale (RTOS) e utilizzano pesantemente middleware collaudato.

Perché il software integrato nel settore automobilistico è diverso?

Nell'elettronica automobilistica, complesse interazioni in tempo reale si verificano su più sistemi integrati che controllano funzioni come freni, sterzo, sospensioni, gruppo propulsore, ecc. L'alloggiamento fisico contenente ciascun sistema embedded è indicato come unità di controllo elettronico (ECU). Ogni ECU e il relativo software incorporato fanno parte di una complessa architettura elettrica nota come sistema distribuito.

Comunicando tra loro, le centraline che compongono il sistema distribuito di un veicolo possono eseguire una varietà di funzioni, come la frenata automatica di emergenza, 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 numerose centraline collegate da più protocolli di rete. I complessi algoritmi di controllo implementati con il software integrato garantiscono la corretta temporizzazione delle funzioni, gli input e le uscite 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 il cruise control adattivo, la frenata automatica di emergenza, l'assistenza al mantenimento della corsia, l'assistenza al traffico, gli 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 incorporato. Tuttavia, c'è una tendenza crescente tra le case automobilistiche a progettare ECU con circuiti integrati complessi che contengono più core di calcolo su un singolo chip, quello che viene definito System on a Chip (SoC). Questi SoC possono ospitare una moltitudine di astrazioni ECU per consolidare l'hardware. Lo stack software per una ECU include in genere una gamma di soluzioni, dal firmware di basso livello alle applicazioni software integrate di alto livello.

Pila ECU

Descrizione

Applicazione software integrata

Algoritmi di controllo, elaborazioni, servizi

Framework applicativo

Quadri di sicurezza e protezione

Ambiente operativo

AUTOSAR classic, AUTOSAR Adaptive, Canali di ingresso/uscita

Virtualizzazioni integrate

Sistema operativo in tempo reale, astrazioni ECU

Firmware

Bootloader, archiviazione sicura, threading sicuro

Hardware

Dispositivi a base di silicio, microcontrollori, schede a uno o più strati

Risorse correlate

Soluzioni di ingegneria del software

I nostri prodotti per l'ingegneria del software consentono di gestire l'intero ciclo di sviluppo del software.

Software integrato nei veicoli

Il software integrato nel settore automobilistico sta sempre più sostituendo l'ingegneria meccanica come elemento di differenziazione nella creazione di esperienze di marca.