Sistemi e Reti - Alternative ai Microprocessori: MCU, SoC, SBC | Lezione 5
Sistemi e Reti · Anno 3 · Modulo 1 · Lezione 05
✍ Autore: profgiagnotti · Materia: Sistemi e Reti

Alternative ai Microprocessori: MCU, SoC e Single Board Computer

Oltre la CPU tradizionale: quando scegliere microcontrollori, System on Chip e SBC per sistemi embedded, IoT ed Edge AI. Confronto tecnico, casi reali e guida alla scelta.

⏱ 60 min 📚 Anno 3 🧠 MCU · SoC · SBC 💻 Embedded
// OBIETTIVI DI APPRENDIMENTO
✓Conoscere le principali alternative ai microprocessori tradizionali: MCU, SoC e SBC e la loro filosofia di integrazione
✓Distinguere architettura, componenti interni e caratteristiche di microcontrollori, System on Chip e Single Board Computer
✓Comprendere applicazioni reali: automotive, robotica, wearable, IoT, smartphone e prototipazione didattica
✓Saper confrontare potenza di calcolo, consumo energetico, costo e flessibilità per scegliere la tecnologia corretta
✓Capire il ruolo di GPIO, architettura big.LITTLE e Edge AI nei moderni sistemi embedded distribuiti

1. Microprocessore vs alternative: perché integrare?

Nei moderni sistemi embedded e nei dispositivi intelligenti, la scelta della tecnologia di calcolo non si limita più ai tradizionali microprocessori general purpose. Oggi esistono tre grandi famiglie di soluzioni — ciascuna progettata per rispondere a esigenze specifiche di potenza, efficienza energetica, connettività e integrazione.

📌 Definizione da ricordare

Un microprocessore tradizionale è solo la CPU: per funzionare richiede RAM esterna, ROM esterna e controller I/O separati. MCU, SoC e SBC integrano tutto (o quasi) in un unico componente, riducendo costi, consumi e ingombro fisico.

01 · MCU

🔌 Microcontrollore

Compatto, efficiente, real-time. Un intero sistema su singolo chip per controllo dedicato.

02 · SoC

💡 System on Chip

Potente, connesso, multimediale. CPU+GPU+NPU+wireless nello spazio di un'unghia.

03 · SBC

🖥️ Single Board Computer

Flessibile, programmabile, completo. Computer con OS + GPIO per il mondo fisico.

MICROPROCESSORE solo CPU CPU RAM esterna ❌ ROM / I/O esterni ❌ + scheda madre necessaria → MCU CPU + Flash + SRAM GPIO · ADC · Timer UART · SPI · I²C · PWM μA sleep · €1-5 SoC CPU big.LITTLE GPU + NPU Wi-Fi·5G·BT ISP·DSP Smartphone · Tablet 100B transistor SBC SoC/MCU + RAM + Storage USB · HDMI · Ethernet · Wi-Fi 40 pin GPIO → sensori Linux + Python Raspberry · Arduino
💬 Tip del docente

Quando vedi un dispositivo minuscolo a batteria che dura anni (telecomando, sensore di temperatura, smartwatch base), pensa subito MCU. Se vedi uno smartphone che fa foto bellissime e gira AI, pensa SoC. Se vedi una scheda con tante porte e pin colorati in laboratorio, è un SBC.

2. Microcontrollori (MCU): cuore dei sistemi real-time

📌 Definizione da ricordare

Un microcontrollore (μC o MCU) è un sistema di elaborazione completo integrato in un unico chip: CPU RISC ottimizzata per basso consumo + memorie + GPIO e periferiche. Non ha bisogno di componenti esterni per funzionare.

Un microcontrollore è pensato per fare una sola cosa, ma farla benissimo e per anni senza fermarsi. Avvio istantaneo, consumo in microAmpere in sleep, costo di pochi euro.

Cosa integra un MCU su un singolo chip

CPU RISC

Unità di elaborazione

Architettura RISC ottimizzata per basso consumo e risposta deterministica real-time. 8, 16 o 32 bit.

MEMORIE

Flash + SRAM + EEPROM

Flash per il programma (non volatile), SRAM per dati runtime, EEPROM per configurazioni persistenti.

I/O E PERIFERICHE

GPIO, timer, ADC/DAC

GPIO, timer/contatori, ADC/DAC, UART, SPI, I²C, PWM — tutto configurabile via firmware.

MICROCONTROLLERE - ARCHITETTURA INTERNA SU SINGOLO CHIP CPU RISC8-32 bit · MHz FLASH · SRAMProgramma + Dati ADC · DACSensori analogici TIMER · PWMReal-time GPIO · BUSUART SPI I²C ← Tutto su ~5x5 mm · avvio in millisecondi · sleep in μA → Esempi: PIC16F877A · ATmega328P (Arduino) · STM32 (Cortex-M)
✓ PUNTI DI FORZA

Perché scegliere un MCU

▸ Consumo minimo (μA in sleep)
▸ Costo €0,50-5
▸ Avvio immediato, nessun OS
▸ Real-time deterministico
▸ Dimensioni ridottissime

✕ LIMITI

Cosa NON può fare

▸ Potenza limitata (MHz, non GHz)
▸ Memoria KB, non GB
▸ Nessuna grafica 3D
▸ Wi-Fi richiede moduli esterni
▸ Niente Linux / Android

Dove si usano i microcontrollori

Ovunque serve controllo continuo, affidabile, a batteria: automotive (ABS, airbag, centralina), robotica (controllo motori), automazione industriale (PLC, sensori), IoT (nodi sensore a batteria per anni).

AUTOMOTIVE

🚗 ABS, airbag, iniezione

Real-time critico, zero margine di errore.

ROBOTICA

🤖 Motori e sensori

Controllo PWM diretto, risposta immediata.

IoT

📡 Sensori connessi

Sensore che invia dati per 5 anni con una batteria.

🎯 Esempio in classe

Prendi un Arduino Uno: il suo ATmega328P è un MCU a 16 MHz con 32 KB di Flash e 2 KB di SRAM. Non può far girare YouTube, ma può leggere un sensore di temperatura ogni secondo, accendere un LED se supera 30°C e dormire il resto del tempo consumando quasi nulla. Per 3 anni con una batteria a bottone.

C++ · Arduino MCU - Blink con timer
// Su MCU niente OS: il firmware gira diretto su hardware // Loop infinito deterministico - real-time garantito void setup() { pinMode(LED_BUILTIN, OUTPUT); pinMode(A0, INPUT); // sensore temperatura } void loop() { int temp = analogRead(A0); // ADC integrato nel chip if (temp > 600) { digitalWrite(LED_BUILTIN, HIGH); } else { digitalWrite(LED_BUILTIN, LOW); } delay(1000); // 1 Hz - consumo minimo tra le letture // In un progetto reale: sleep_mode() qui -> μA }

3. System on Chip (SoC): tutto il sistema in un chip

📌 Definizione da ricordare

Un SoC è l'evoluzione spinta dell'MCU: CPU multicore, GPU, DSP, NPU per AI, connettività 5G/Wi-Fi, codec multimediali e RAM LPDDR compressi in pochi mm². È il cuore di smartphone e tablet moderni.

Se l'MCU è uno specialista, il SoC è un intero team in una scatola. Integra decine di IP blocks progettati per lavorare insieme con efficienza energetica estrema.

Componenti integrati in un SoC moderno

ELABORAZIONE

CPU + GPU + NPU + DSP

CPU multicore big.LITTLE, GPU per grafica, DSP per audio, NPU per inferenza AI on-device.

CONNETTIVITÀ

Wi-Fi, 5G, BT, USB

Modem integrato, camera ISP, DMA ad alta velocità. Tutto senza chip esterni.

SUPPORTO

Sicurezza, multimedia

Encoder 4K, ADC/DAC, modulo crittografia hardware, gestione batteria.

SoC MODERNO - ARCHITETTURA big.LITTLE + AI BIG x43.4 GHzPrestazioni LITTLE x42.0 GHzEfficienza GPUAdreno / MaliGaming + AI NPU45 TOPSNeural Engine 5G · Wi-Fi 6E · BT 5.3 ISP 200MP + 8K HDR LPDDR5 + SECRAM + Crypto Interconnect NoC - bus ad alta velocità + DMA coerente Apple M3 · 25 mld transistorSnapdragon 8 Gen 3 · BCM2712 (RPi5) Smartphone · Laptop M-series · Wearable · Smart TV · Chromecast1 chip = sistema completo da tasca
💬 Tip del docente

big.LITTLE è geniale: quando guardi Instagram scrollando, lavorano i core LITTLE da 2 GHz che consumano pochissimo. Apri un gioco 3D o esporti un video? Il scheduler sposta il carico sui core BIG da 3,4 GHz in millisecondi. È così che il telefono dura tutto il giorno ma è potente come un PC.

Dove si usano i SoC

Smartphone (Snapdragon, Apple A-series), laptop moderni (Apple M-series, Snapdragon X Elite), wearable (smartwatch), smart TV e chiavette streaming (Chromecast, Fire TV). Esempi concreti: Apple M3 con 100+ miliardi di transistor, Snapdragon 8 Gen 3 con AI on-device, BCM2712 cuore del Raspberry Pi 5.

🚫 Da non confondere

SoC ≠ SBC. Il SoC è il singolo chip nero quadrato saldato sulla scheda (es. BCM2712). L'SBC è l'intera schedina con quel chip + RAM + porte + pin GPIO (es. Raspberry Pi 5). Il SoC sta dentro l'SBC.

4. Single Board Computer (SBC): computer completo su scheda

Un SBC è un computer completo su una singola scheda PCB: processore (spesso un SoC), RAM, storage (SD/eMMC), interfacce per periferiche esterne, ma con una marcia in più — i pin GPIO che lo trasformano in un ponte tra software e mondo fisico.

📌 Definizione da ricordare

SBC = computer completo su una scheda: SoC/MCU centrale + RAM + storage + USB/HDMI/Wi-Fi + 40 pin GPIO per sensori e attuatori. Esegue un OS completo (Linux) ma parla direttamente con l'hardware.

SINGLE BOARD COMPUTER - VISTA SCHEDA SoCBCM2712CPU+GPU RAM LPDDR4 SD / eMMC PorteUSB 3.0 x4 · HDMI x2Ethernet · Audio WIRELESSWi-Fi 5Bluetooth 5 40 PIN GPIOI²C SPI UART PWMSensori · Motori · LED→ MONDO FISICO LinuxPythonC++ Node

Raspberry Pi vs Arduino — confronto diretto

RASPBERRY PI - SBC + SoC

💻 Computer completo

▸ CPU ARM multicore 2,4 GHz
▸ Linux / Raspberry Pi OS
▸ RAM 4-8 GB, SD / SSD
▸ USB, Ethernet, HDMI, Wi-Fi
▸ 40 pin GPIO
▸ Python, C/C++, Node.js

Ideale per: server, media center, AI edge, visione artificiale, dashboard

ARDUINO - SBC + MCU

🔌 Controller real-time

▸ MCU singolo 16 MHz (ATmega328P)
▸ Nessun OS — firmware diretto
▸ Flash 32KB + SRAM 2KB
▸ Pin analogici/digitali
▸ PWM, I²C, SPI nativi
▸ Avvio immediato
▸ C/C++ Arduino IDE

Ideale per: controllo motori, lettura sensori, automazione semplice

⚠️ Errore comune

Pensare che Raspberry Pi sia “più potente quindi sempre meglio di Arduino”. Falso: se devi accendere un motore entro 1 ms quando un sensore scatta, Linux su Pi introduce latenze imprevedibili (decine di ms). Arduino con firmware bare-metal risponde in microsecondi, sempre uguale. Per real-time hard, MCU vince.

🎯 Esempio in classe

Stesso progetto, due tecnologie: stazione meteo. Con Arduino leggi temperatura/umidità ogni minuto e accendi una ventola — codice di 40 righe, consumo minimo, gira per mesi. Con Raspberry Pi leggi gli stessi sensori MA salvi dati su database, crei una pagina web con grafici in tempo reale e invii foto alla nuvola quando piove. Arduino fa il controllo, Pi fa l'intelligenza.

Python · Raspberry Pi - GPIO + sensore
import time import board import adafruit_dht from gpiozero import LED # Su SBC abbiamo un OS: possiamo usare librerie Python ad alto livello dht = adafruit_dht.DHT11(board.D4) # sensore su GPIO4 led = LED(17) while True: try: temp = dht.temperature print(f"Temperatura: {temp}°C") if temp and temp > 30: led.on() else: led.off() # su Pi posso anche loggare su file, inviare via MQTT, ecc. with open("/home/pi/log.csv","a") as f: f.write(f"{time.time()},{temp}\n") except Exception as e: print(f"Errore lettura: {e}") time.sleep(2) # ATTENZIONE: su Linux non è real-time garantito!

5. Confronto tecnico tra MCU, SoC e SBC

Le tre famiglie non competono: occupano nicchie diverse nello spazio potenza/consumo/flessibilità. La tabella è la mappa da usare in verifica.

CaratteristicaMCUSOCSBC
IntegrazioneCPU+mem+I/O su chipSistema completo su chipComputer su singola scheda
Potenza di calcoloBassa (MHz, 8-32 bit)Molto alta (GHz, multicore + GPU + NPU)Media-alta (dipende dal SoC)
ConsumoMinimo (μA-mA) 🟢Ottimizzato (mA-W) 🟡Moderato (1-10 W) 🟡
Sistema operativoNo, firmware bare-metalSì (Android, iOS, Linux)Sì (Linux, Raspberry Pi OS)
GPIO fisiciSì — nativoLimitati o assentiSì — 40 pin standard
Real-timeDeterministicoPossibile con RTOSNon garantito (OS general purpose)
Costo tipico€0,50 – €5€5 – €100+ (integrato)€20 – €80
Esempi realiPIC16F877A, ATmega328P, STM32Apple M3, Snapdragon 8 Gen 3, BCM2712Raspberry Pi, Arduino Uno
💬 Tip del docente

Per ricordarti la tabella all'interrogazione: pensa a 3 assi — Potenza: MCU < SBC < SoC. Consumo al contrario: SoC > SBC > MCU (MCU consuma meno). Flessibilità software: MCU < SoC (chiuso) < SBC (apertissimo). Disegna un triangolo, metti MCU in basso (efficienza), SoC in alto (potenza), SBC al centro (equilibrio).

6. Come scegliere — guida pratica al progetto

Tre domande guidano la decisione progettuale. Rispondi onestamente e la tecnologia si sceglie da sola.

USA UN MCU SE...

🔌 Batteria & real-time

▸ Consumo critico (anni a batteria)
▸ Task semplice e ripetitivo
▸ Risposta real-time garantita
▸ Costo unitario minimo
▸ Avvio istantaneo senza OS

USA UN SoC SE...

💡 Multimedia & connesso

▸ Grafica, AI o video 4K
▸ Prodotto finale device connesso
▸ Ingombro vincolo primario
▸ Connettività wireless integrata
▸ Produci milioni di unità

USA UN SBC SE...

🖥️ Prototipazione & flessibilità

▸ Stai imparando o prototipando
▸ Serve OS completo + GPIO
▸ Interfaccia sensori/attuatori
▸ Progetto evolve rapidamente
▸ Flessibilità software immediata

🎯 Esempio in classe - tre progetti, tre scelte

Braccialetto conta-passi a batteria: MCU STM32L4 ultra-low-power, TinyML per riconoscere passi, 6 mesi con batteria 200 mAh.
Smart speaker con riconoscimento vocale: SoC dedicato con NPU + Wi-Fi, risponde in locale senza cloud.
Serra automatizzata laboratorio: Raspberry Pi SBC legge sensori, controlla irrigazione, dashboard web per la classe, Python modificabile al volo.

7. Verso i sistemi intelligenti - Edge AI

La connettività con applicazioni di Intelligenza Artificiale amplia le possibilità di tutte e tre le categorie. MCU con inferenza TinyML, SoC con NPU dedicata, SBC con accesso a modelli cloud — l'ecosistema embedded oggi è il principale campo di applicazione dell'AI distribuita (Edge AI).

EDGE AI - INTELLIGENZA DISTRIBUITA SUL DISPOSITIVO MCU + TinyML20 KB modelloWake-word, gestureConsumo <1 mWSensore intelligente SoC + NPU 45 TOPSRiconoscimento faccialeFoto notturna AILLM on-deviceSmartphone AI SBC + Cloud AIPython + TensorFlowVisione artificialeChatbot, dashboardPrototipo intelligente
💬 Tip del docente

TinyML è il futuro che potete toccare: un modello di 20 KB su MCU riconosce “ciao” pronunciato e accende la luce, senza inviare nulla a Internet. Privacy totale, latenza zero, batteria infinita. Cercate “Edge Impulse” — potete addestrare un modello dal browser e scaricarlo su Arduino in 10 minuti.

✓I microprocessori tradizionali richiedono componenti esterni — MCU, SoC e SBC integrano tutto (o quasi) in un unico componente riducendo costi e ingombro
✓Un MCU integra CPU, Flash, SRAM, EEPROM, GPIO, ADC/DAC, timer e bus seriali — ideale per sistemi real-time a basso consumo (PIC, ATmega328P, STM32)
✓Un SoC integra CPU multicore big.LITTLE, GPU, DSP, NPU, connettività wireless e moduli multimediali — cuore di smartphone, tablet e laptop (Apple M3, Snapdragon)
✓Un SBC è un computer completo su scheda singola con OS, RAM, storage e pin GPIO — ponte tra software e hardware fisico (Raspberry Pi, Arduino)
✓Raspberry Pi (SBC+SoC) esegue Linux ed è adatto a elaborazione complessa; Arduino (SBC+MCU) non ha OS ed è ottimale per controllo real-time deterministico
✓I tre parametri chiave sono potenza di calcolo, consumo energetico e flessibilità software — MCU vince su consumo, SoC su potenza, SBC su flessibilità didattica
✓MCU, SoC e SBC convergono nell'Edge AI: intelligenza distribuita direttamente sul dispositivo — da TinyML su MCU a NPU su SoC

📚 Prossimo passo - Le Memorie nei Sistemi di Elaborazione

Ora che sai scegliere il “cervello” giusto, scopriremo dove questi sistemi memorizzano istruzioni e dati: gerarchia delle memorie, RAM, cache, memoria virtuale e storage. Fondamentale per capire perché un MCU ha KB e un SoC ha GB.