Tutorial sui sistemi integrati

⚡ Riepilogo intelligente

Il tutorial sui sistemi embedded illustra i dispositivi basati su controller progettati per svolgere funzioni specifiche all'interno di sistemi meccanici o elettrici più ampi. LessQuesto libro tratta componenti, caratteristiche, microcontrollori, microprocessori, linguaggi di programmazione, applicazioni, vantaggi e svantaggi, ed è rivolto sia a ingegneri principianti che a ingegneri di livello intermedio.

  • ⚙️ Scopo dedicato: I sistemi embedded eseguono un compito specifico utilizzando un processore, una memoria e periferiche integrati nel dispositivo host.
  • 🧠 Componenti principali: Hardware, firmware e sistemi operativi in ​​tempo reale si combinano per fornire risposte deterministiche a sensori e attuatori.
  • 📐 ArchiTipologie di struttura: A seconda dei costi, del consumo energetico e delle esigenze di prestazioni, è possibile scegliere tra progetti basati su microcontrollore, microprocessore o FPGA.
  • 💻 Linguaggi di programmazione: Il linguaggio C domina lo sviluppo embedded, con C++, Assembly, Pythone Rust sta guadagnando terreno per i carichi di lavoro critici per la sicurezza.
  • 🏭 Ampie Applicazioni: I settori automobilistico, medicale, dell'elettronica di consumo, dell'automazione industriale e aerospaziale si affidano quotidianamente ai sistemi embedded.
  • 🤖 Intelligenza artificiale al limite: TinyML, i chip AI edge e gli acceleratori neurali portano l'intelligenza on-device sui dispositivi embedded senza dipendenza dal cloud.

Tutorial sui sistemi integrati

Prima di apprendere il sistema incorporato, impariamo:

Cos'è un sistema?

Un sistema è una disposizione in cui tutti i suoi componenti funzionano secondo le regole specifiche definite. È un metodo per organizzare, lavorare o eseguire uno o più compiti secondo un piano fisso.

Cos'è un sistema integrato?

Sistema incorporato è una combinazione di software e hardware per computer con funzionalità fissa o programmabile. Un sistema integrato può essere un sistema indipendente oppure può far parte di un sistema di grandi dimensioni. È progettato principalmente per una o più funzioni specifiche all'interno di un sistema più ampio. Ad esempio, un allarme antincendio è un esempio comune di sistema integrato in grado di rilevare solo il fumo.

Esempio di sistemi embedded

Stampante laser

Le stampanti laser sono uno degli esempi di sistemi embedded che utilizzano sistemi embedded per gestire vari aspetti della stampa. Oltre a svolgere il compito principale della stampa, devono accettare input utente, gestire la comunicazione con il sistema informatico, gestire guasti e rilevare la carta lasciata sul vassoio, ecc.

In questo caso il compito principale del microprocessore è comprendere il testo e controllare la testina di stampa in modo tale che scarichi l'inchiostro dove è necessario.

Per fare ciò, deve decodificare i diversi file che gli vengono forniti e comprenderne il carattere e la grafica. L'elaborazione dei dati richiederà molto tempo della CPU e dovrà ricevere input dall'utente, controllare motori, ecc.

Storia del sistema Embedded

Ecco alcune pietre miliari importanti della storia del sistema embedded:

  • Nel 1960, il sistema embedded fu utilizzato per la prima volta per lo sviluppoping Sistema di guida Apollo di Charles Stark Draper al MIT.
  • Nel 1965, Autonetics sviluppò il D-17B, il computer utilizzato nel sistema di guida missilistica Minuteman.
  • Nel 1968 fu lanciato il primo sistema integrato per un veicolo.
  • Texas Instruments ha sviluppato il primo microcontrollore nel 1971.
  • Nel 1987, il primo sistema operativo incorporato, VxWorks, fu rilasciato da Wind River.
  • Microsoft'S Windows CE incorporato nel 1996.
  • Alla fine degli anni '1990 apparve il primo sistema Linux incorporato.
  • Il mercato dei dispositivi embedded ha raggiunto i 140 miliardi di dollari nel 2013.
  • Gli analisti stimano che il mercato Embedded supererà i 40 miliardi di dollari entro il 2030.

Caratteristiche di un sistema embedded

Caratteristiche di un sistema embedded
Caratteristiche di un sistema embedded

Di seguito sono riportate le caratteristiche importanti di un sistema embedded:

  • Richiede prestazioni in tempo reale
  • Dovrebbe avere disponibilità e affidabilità elevate.
  • Sviluppato attorno a un sistema operativo in tempo reale
  • Di solito, hanno un'operazione semplice e senza disco, avvio ROM
  • Progettato per un compito specifico
  • Deve essere collegato alle periferiche per collegare i dispositivi di input e output.
  • Offre elevata affidabilità e stabilità
  • Necessaria un'interfaccia utente minima
  • Memoria limitata, basso costo, minori consumi energetici
  • Non ne ha bisogno memoria secondaria nel computer.

Terminologie importanti utilizzate nei sistemi embedded

Ora in questo tutorial sui sistemi embedded tratteremo alcuni termini importanti utilizzati nei sistemi embedded.

L’affidabilità

Questa misura della probabilità di sopravvivenza del sistema quando la funzione è critica durante il tempo di esecuzione.

Tolleranza agli errori

La tolleranza agli errori è la capacità di un sistema informatico di sopravvivere in presenza di errori.

Real-Time

Il sistema integrato deve soddisfare vari tempi e altri vincoli. Gli vengono imposti dal comportamento naturale in tempo reale del mondo esterno.

Ad esempio, un dipartimento dell'aeronautica che mantiene track degli attacchi missilistici in arrivo deve calcolare e pianificare con precisione il proprio contrattacco a causa di rigidi limiti di tempo reale. Altrimenti, verrà distrutto.

Flessibilità

Si tratta di sistemi costruttivi con opportunità di debug integrate che consentono la manutenzione remota.

Ad esempio, stai costruendo un veicolo spaziale che atterrerà su un'altra fioriera per raccogliere vari tipi di dati e inviarci i dettagli raccolti. Se questa navicella impazzisse e perdesse il controllo, dovremmo essere in grado di fare qualche importante diagnosi. Pertanto, la flessibilità è vitale durante la progettazione di un sistema embedded.

Portabilità

La portabilità è una misura della facilità di utilizzo dello stesso software embedded in vari ambienti. Richiede una generalizzazione assolutatracinterazioni tra la logica del programma applicativo stesso e le interfacce di sistema di basso livello.

Cos'è il microcontrollore?

Un microcontrollore è un'unità VLSI a chip singolo chiamata anche microcomputer. Contiene tutta la memoria e le interfacce I/O necessarie, mentre un microprocessore generico necessita di chip aggiuntivi per offrire queste funzioni necessarie. I microcontrollori sono ampiamente utilizzati nei sistemi embedded per applicazioni di controllo in tempo reale.

Cos'è un microprocessore?

Un microprocessore è un dispositivo semiconduttore a chip singolo. La sua CPU contiene un contatore di programma, un'ALU, un puntatore allo stack, un registro di lavoro e un circuito di temporizzazione dell'orologio. Include anche ROM e RAM, decodificatore di memoria e molte porte seriali e parallele.

Archistruttura del Sistema Embedded

Di seguito è riportata l'architettura di base del sistema incorporato:

Archistruttura del Sistema Embedded
Archistruttura del Sistema Embedded

1) Sensore

Il sensore ti aiuta a misurare la quantità fisica e a convertirla in un segnale elettrico. Inoltre memorizza la quantità misurata nella memoria. Questo segnale può essere preparato da un osservatore o da qualsiasi strumento elettronico come un convertitore A2D.

2) Convertitore AD

Il convertitore AD (convertitore analogico-digitale) consente di convertire un segnale analogico inviato dal sensore in un segnale digitale.

3) Memoria

La memoria viene utilizzata per archiviare informazioni. Il sistema incorporato contiene principalmente due celle di memoria 1) Volatile 2) Memoria non volatile.

4) Processore e ASIC

Questo componente elabora i dati per misurare l'output e archiviarlo nella memoria.

5) Convertitore DA

Il convertitore DA (un convertitore digitale-analogico) ti aiuta a convertire i dati digitali forniti dal processore in dati analogici.

6) Attuatore

Un attuatore consente di confrontare l'uscita fornita dal convertitore DA con l'uscita effettiva memorizzata in esso e memorizza l'uscita approvata nella memoria.

Tipi di sistemi embedded

Tre tipi di sistemi embedded sono:

  • Piccola scala
  • Scala media
  • Sofisticato
Tipi di sistemi embedded

Tipi di sistemi embedded

Sistemi embedded su piccola scala

Questo sistema embedded può essere progettato con un singolo microcontrollore a 8 o 16 bit. Può essere alimentato a batteria. Per lo sviluppoping sistema embedded su piccola scala, un editor, un assembler (IDE) e un cross-assembler sono i più vitali strumenti di programmazione.

Sistemi embedded di media scala

Questi tipi di sistemi embedded sono progettati utilizzando microcontrollori a 16 o 32 bit. Questi sistemi offrono complessità sia hardware che software. C, C++, Javae lo strumento di ingegneria del codice sorgente, ecc. vengono utilizzati per sviluppare questo tipo di sistema integrato.

Sistemi embedded sofisticati

Questo tipo di sistemi embedded ha molte complessità hardware e software. Potresti aver bisogno di IPS, ASIPS, PLA, processori di configurazione o processori scalabili. Per lo sviluppo di questo sistema, hai bisogno di co-progettazione hardware e software e componenti che devono essere combinati nel sistema finale.

Differenza tra microprocessore e microcontrollore

Impara la differenza tra Microprocessore e microcontrollore

Microprocessore Microcontrollori
Utilizza blocchi funzionali come registro, ALU, temporizzazione e unità di controllo. Utilizza blocchi funzionali di microprocessori come RAM, timer, I/O paralleli, ADC e DAC.
Nel microprocessore, le istruzioni di gestione dei bit sono inferiori, solo uno o due tipi. Il microcontrollore offre molti tipi di istruzioni per la gestione dei bit.
Offre movimenti rapidi di codice e dati tra la memoria esterna e il microprocessore. Offre movimenti rapidi di codice e dati nel microcontrollore.
Ti aiuta a progettare sistemi informatici digitali per scopi generali. Aiuta a progettare sistemi dedicati specifici per l'applicazione.
Ti consente di fare più cose contemporaneamente. È un sistema orientato al singolo compito.
Nel sistema a microprocessore, puoi decidere il numero di porte di memoria o I/O necessarie. Nel sistema microcontrollore, il numero fisso di memoria o I/O rende un microcontrollore ideale per completare l'attività specifica.
Offre supporto per memoria esterna e porte I/O, il che rende il sistema più pesante e costoso. Questo tipo di sistema è leggero e più economico rispetto al microprocessore.
I dispositivi esterni necessitano di più spazio e il loro consumo energetico è piuttosto elevato. Questo tipo di sistema consuma meno spazio e anche il consumo energetico è molto basso.

Applicazioni dei sistemi embedded

Di seguito sono riportate le applicazioni importanti del sistema embedded:

Scienza robotica

  • Veicoli terrestri
  • Droni
  • Veicoli subacquei
  • Robot industriali

Medicale

  • Macchina per dialisi
  • Pompe di infusione
  • Monitor cardiaco
  • Dispositivo protesico

Automotive

  • Controllo del motore
  • sistema di accensione
  • Sistema di frenaggio

Networking

  • router
  • Mozzi
  • Gateway
  • Strumenti elettronici

Dispositivi domestici

  • televisori
  • Digital Allarme
  • Condizionatore d'aria
  • Lettore video DVD
  • Camere

Vetture

  • Iniezione di carburante
  • Sistema di illuminazione
  • Serrature
  • Borse Air
  • Windows
  • Sistema di assistenza al parcheggio
  • Allarmi Antifurto Whippers Motion

Industrial Control

  • Robotica
  • Sistema di controllo
  • Missili
  • Reattori nucleari
  • Stazioni spaziali
  • navette

Vantaggi del sistema embedded

Ecco i vantaggi/vantaggi derivanti dall'utilizzo del sistema incorporato:

  • È in grado di coprire un’ampia varietà di ambienti
  • Less probabile che ripetano errori
  • Il sistema integrato ha un hardware semplificato che riduce i costi complessivi.
  • Offre prestazioni migliorate
  • Il sistema embedded è utile per la produzione di massa.
  • Il sistema embedded è altamente affidabile.
  • Ha pochissime interconnessioni.
  • Il sistema embedded è di piccole dimensioni.
  • Ha un funzionamento veloce.
  • Offre una migliore qualità del prodotto.
  • Ottimizza l'uso delle risorse di sistema.
  • Ha un funzionamento a basso consumo.

Svantaggi del sistema integrato

Qui ci sono importanti svantaggi/svantaggi dell'utilizzo del sistema incorporato.

  • Per sviluppare un sistema embedded sono necessari elevati sforzi di sviluppo.
  • Ha bisogno di molto tempo per essere commercializzato.
  • I sistemi integrati svolgono un compito molto specifico, quindi non possono essere programmati per fare cose diverse.
  • I sistemi embedded offrono risorse di memoria molto limitate.
  • Non offre alcun miglioramento tecnologico.
  • È difficile eseguire il backup dei file incorporati.

DOMANDE FREQUENTI

I sistemi embedded svolgono funzioni specifiche con risorse limitate, mentre i computer generici eseguono numerose applicazioni. Nella progettazione di sistemi embedded, la priorità è data a potenza, dimensioni, costi e tempi di risposta, piuttosto che a flessibilità e ampia compatibilità software.

Hardware Edge AI come Google I framework Coral, NVIDIA Jetson e TinyML consentono ai dispositivi embedded di eseguire reti neurali localmente. Ciò permette la visione artificiale, l'elaborazione vocale e il rilevamento di anomalie in tempo reale, senza la necessità di inviare dati al cloud.

Sì. Gli strumenti di programmazione basati sull'IA generano codice driver, ottimizzano le routine a livello di registro e spiegano i datasheet. Velocizzano l'avvio delle MCU, suggeriscono gestori di interrupt e aiutano a risolvere i problemi di temporizzazione su piattaforme STM32, ESP32 e PIC.

Il linguaggio C rimane quello dominante perché offre un controllo preciso sull'hardware e un ingombro ridotto. C++ e Rust crescono nei progetti critici per la sicurezza, mentre MicroPython e circuitoPython semplificare la prototipazione rapidaping su microcontrollori capaci.

Un RTOS (Real-Time Operating System) pianifica le attività con tempistiche deterministiche, in modo che gli eventi vengano eseguiti entro scadenze precise. Tra le opzioni più diffuse si annoverano FreeRTOS, Zephyr, ThreadX e VxWorks, comunemente utilizzati in dispositivi di controllo per il settore automobilistico, medicale e industriale.

I progettisti combinano microcontrollori a basso consumo, modalità di risparmio energetico, periferiche efficienti e firmware basato sugli eventi. Tecniche come il duty cycle, il clock gating e gli alimentatori a recupero di energia prolungano la durata della batteria per anni nei sensori IoT.

I veicoli moderni contengono decine di centraline integrate che controllano la gestione del motore, l'ABS, l'infotainment, i sistemi ADAS e la gestione della batteria. I bus CAN, LIN e Automotive Ethernet collegano questi moduli integrati per un funzionamento coordinato in tempo reale.

FoundationPer acquisire competenze in ambito embedded sono necessari dai tre ai sei mesi di esperienza pratica con progetti a microcontrollore. La padronanza di RTOS, protocolli di comunicazione e debug hardware richiede in genere da uno a due anni di esperienza pratica continuativa.

Riassumi questo post con: