Un microcontrollore ( in acronimo MCU ovvero MicroController Unit), in elettronica digitale, è un dispositivo elettronico integrato su singolo circuito elettronico, nato come evoluzione alternativa al microprocessore e utilizzato generalmente in sistemi embedded ovvero per applicazioni specifiche di controllo digitale.

Storia I primi modelli

Il primo computer on-chip ottimizzato per applicazioni di controllo è stato il TMS1000 del 1974 a 4 bit, con RAM e ROM sullo stesso chip lanciato dalla Texas Instruments sebbene la ditta il 17 Settembre 1971 avesse annunciato il TMS1802NC entrato poi nella famiglia TMS 0100 da cui è nata la famiglia TMS1000 previa ottimizzazione.

Da notarsi: il primo Intel 4004 data 15 novembre del 1971 e quindi il titolo di primo processore spetterebbe al TMS1802NC

Il primo componente ad 8 bit fu l'8048 di Intel, uscito nel 1975. Questo componente è stato utilizzato in più di un miliardo di tastiere per PC e numerose altre applicazioni.

Nei primi anni di sviluppo del microcontrollore, la maggior parte dei modelli era commercializzata in due varianti: la più economica era dotata di memoria di programma già programmata in fabbrica (ROM) su specifiche del cliente oppure programmabile dall'utente una sola volta (OTP, One Time Programming); la seconda, più costosa, aveva la memoria di programma cancellabile EPROM mediante esposizione a luce ultravioletta del chip tramite la finestrella trasparente che lo sovrastava. La programmazione del firmware veniva fatta direttamente in linguaggio macchina.

L'evoluzione della tecnologia CMOS Lo sviluppo del CMOS e successivamente della HCMOS, nella prima metà degli anni ottanta, ha fornito un impulso decisivo alla diffusione dei microcontrollori, consentendo una notevole riduzione dei consumi e della dissipazione nei chip.

Per molti anni Motorola è stata leader mondiale per i microcontrollori: il suo 68HC11 si rivelò essere una pietra miliare, allorché fu presentato sul mercato nel 1985; oltre alla RAM ed alla ROM integrava convertitori A/D, porte di I/O, SPI (Serial Peripheral Interface), SCI (Serial Communication Interface), timer multifunzione, EEPROM, interrupt ed altro ancora, comprendendo persino il firmware di un monitor (Buffalo) che permetteva di effettuare il caricamento di programmi in RAM e il debug on-chip, tramite interfaccia seriale. Con un ciclo macchina di 333 ns (3 MHz di clock) è in grado di eseguire mezzo milione di istruzioni al secondo, consumando qualche decina di mA; il suo progetto si è dimostrato talmente innovativo da essere ancora prodotto ed utilizzato dopo più di un quarto di secolo.

Nel 1993 Microchip ha introdotto il modello di MCU PIC16C84, caratterizzato da memoria programma in EEPROM, ovvero cancellabile elettricamente, che permetteva sia lo sviluppo veloce del prototipo del prodotto finito, sia la modifica del Firmware a circuito montato (In-System Programming). La semplificazione del contenitore (package), senza finestrella in quarzo, ha contribuito a ridurre il costo finale del componente.

Nello stesso anno Atmel ha presentato il primo MCU che utilizzava una memoria di tipo flash, ancora più semplice e veloce da programmare/modificare, più compatta e con un ciclo di vita (cancellazioni) molto più elevato.

Le interfacce JTAG e ONCE Di pari passo venivano sviluppate interfacce, quali JTAG e On Chip Emulator (ONCE) della famiglia Coldfire di Freescale, che consentivano di effettuare sia il debugging on-chip, che il caricamento e la programmazione della flash interna. Queste interfacce potevano essere controllate da applicazioni software su PC, che rendevano molto più semplice il debug in background di programmi in linguaggi di alto livello (tipicamente il C++), e di conseguenza meno costoso lo sviluppo del firmware, limitando la necessità degli emulatori in-circuit.

Descrizione In parole povere, un microcontrollore è un microprocessore evoluto ovvero che, oltre a elaborazione di istruzioni (calcolo), integra fisicamente altre funzioni che, nel caso del microprocessore, sono demandate ad altri componenti elettronici. Il notevole passo successivo al microcontrollore è rappresentato dalla tecnologia SoC: un sistema completo integrato su un unico chip.

È progettato per interagire direttamente con il mondo esterno tramite un programma residente nella propria memoria interna e mediante l'uso di pin specializzati o configurabili dal programmatore. Sono disponibili in 3 fasce di capacità elaborativa (ampiezza del bus dati): 8 bit, 16 bit e 32 bit.

Generalmente sono dotati di CPU CISC con architettura von Neumann, anche se più di recente sono apparsi microcontrollori con CPU ad architettura RISC, come ad esempio il Texas Instruments MSP430, meglio predisposti per l'utilizzo dei moderni compilatori, piuttosto che dell'Assembly. Taluni microcontrollori complessi (come il Freescale 68302) hanno un processore RISC separato dal processor core.

L'ampia gamma di funzioni di comando e controllo disponibili, sia analogiche che digitali, integrate sullo stesso chip, permette l'impiego delle MCU in sostituzione di schede elettroniche cablate tradizionali ben più complesse e costose.

Per i microcontrollori sono pubblicati sistemi di sviluppo amatoriali e professionali anche in modalità open source.

Differenze col microprocessore Quando nell'aprile del 1972 Intel ha introdotto sul mercato il primo processore a 8 bit - lo 8008 - esso consisteva di una ALU (Arithmetic & Logical Unit, ALU) per svolgere operazioni logiche e matematiche e di una unità di elaborazione elementare (Control Processing Unit, CPU) per controllare il flusso di dati e indirizzi tra la ALU e i circuiti esterni di supporto.

Successivamente, l'architettura interna del microprocessore (in seguito spesso chiamato semplicemente CPU) si è evoluta velocemente con lo sviluppo di blocchi interni via via più complessi (maggior numero di bit elaborati e movimentati) e con capacità e velocità di calcolo crescenti in modo esponenziale.

Per quanto potente, il microprocessore integra sul chip solo la logica di elaborazione mentre richiede sempre delle unità esterne - memorie, gestori di segnali e dispositivi periferici per poter scambiare informazioni e interagire con l'esterno.

Il microcontrollore è invece un sistema completo, che integra in uno stesso chip il processore, la memoria permanente, la memoria volatile e i canali (pin) di I/O, oltre ad eventuali altri blocchi specializzati.

A differenza dei microprocessori classici, adatti per un uso generale (general purpose), il microcontrollore è inoltre progettato per ottenere la massima autosufficienza funzionale ed ottimizzare il rapporto prezzo-prestazioni in uno specifico campo di applicazioni.

Anche l'esecuzione dei programmi applicativi si appoggia su un'architettura hardware diversa da quella tipicamente usata per i microprocessori. Mentre questi ultimi, soprattutto quando usati per computer e personal computer, eseguono i programmi applicativi appoggiandosi a dispositivi di memoria di massa o a memoria volatile, per i microcontrollori il programma applicativo è tipicamente memorizzato su un dispositivo di memoria ROM (come per esempio una EPROM) ed è quindi in realtà un firmware.

In generale, essendo concepiti per applicazioni specifiche e per l'uso in condizioni ambientali particolari che impongono limitazioni sia in termini di consumi che in termini di dissipazione di potenza, i microcontrollori presentano caratteristiche meno spinte rispetto ai microprocessori ma risultano più economici di questi ultimi sia per l'integrazione in un solo chip di una serie di componenti sia per fattori di economia di scala legati ai volumi di produzione molto più elevati.

+ Tabella 1: confronto microprocessore vs. microcontrolloreI valori in tabella sono indicativi, per puro confronto di massima, e riferiti al momento della stesura (inizio 2010)Caratteristica Microcontrollore MicroprocessoreVelocità massima di clock200 MHz4 GHzCapacità elaborativa massima in MegaFLOPS2005 000Potenza minima dissipata in watt (in stato di elaborazioneIn stato di riposo sleep, il consumo si può ridurre di un fattore 1000.) 0,00150Prezzo minimo per singola unità in USD0,550Numero di pezzi venduti annualmente (in milioni) 11 0001 000

DSP Parallelamente al microcontrollore, e in continua evoluzione di potenza e di mercato, esistono i DSP (Digital Signal Processor) che incorporano moduli specializzati nel trattamento digitale di segnali analogici. I campi tipici di utilizzo sono nel controllo di azionamenti (come i motori), di componenti per auto e avionica, di trattamento di segnali multimediali (codifica/decodifica audio e video, streaming) e nella telefonia mobile.

Il DSP ha tipicamente una struttura a 32 bit, e prossimamente a 64 bit; la sua CPU ha un'architettura esclusivamente RISC.

Componenti

L'architettura del microcontrollore prevede un insieme di moduli fissi, comuni a tutti i modelli, e una serie di possibili estensioni in funzione del costruttore, del prezzo e della fascia applicativa: Unità di elaborazione: CPU Memoria di programma: ROM, EPROM, FLASH Memoria dati: RAM e EEPROM Oscillatore interno o esterno Porte di I/O e/o GPIO configurabili Gestione InterruptNon presente in tutti i modelli Controller DMA Moduli aggiuntivi Contatori e timer Moduli di comunicazione: USART, I²C, SPI, USB, Ethernet, IrDA, CAN, Bluetooth, Wi-Fi, Zigbee Interfacce analogiche o a tecnologia mista: ADC, DAC, PWM, Comparatori analogici Interfacce di visualizzazione e controllo: (LCD, Touch sensor)

Motivazioni del successo Il successo e l'enorme crescita del mercato di questi componenti sono dovuti a questi fattori: Basso costo (consente di sostituire 1 o più circuiti integrati tradizionali a costo inferiore). Ampia scalabilità di prestazioni, di complessità (da 8 pin a 144 pin) e velocità (da 1 MHz a 200 MHz). Vasta gamma di dotazioni in periferiche e moduli specializzati. Ridotto (al limite = 0) numero di componenti esterni, ovvero semplicità di realizzazione. Facilità di programmazione dovuta anche ai numerosi tool di sviluppo disponibili. Ampia (e spesso libera) disponibilità di librerie, codici di esempio e documentazione Possibilità e facilità di riprogrammazione (in-field e in-system). Grande flessibilità applicativa. Brevi tempi di introduzione sul mercato del prodotto finito.

Mercato Il microcontrollore occupa una posizione rilevante nel mercato complessivo dei semiconduttori, con una stima di introiti per circa 14 miliardi di dollari statunitensi e 10,8 miliardi di pezzi venduti nel 2008. La stima di crescita prevede un incremento del 10 % fino al 2014, mentre i pezzi venduti saranno 14 miliardi per la fine del 2010.

È comunque un mercato molto frammentato, con più di 40 produttori e più di 50 architetture, nessuna delle quali detiene più del 5% del mercato. Il segmento delle MCU a 32 bit è quello maggiormente in crescita, con introiti annui attuali (2009) di circa il 25% del totale.

I principali (in ordine decrescente per volumi di mercato) sono: Renesas Technology (Giappone) Freescale Semiconductor (USA) Atmel (USA) Microchip Technology (USA) Infineon Technologies (Germania) Texas Instruments Incorporated (USA) Fujitsu (Giappone) NXP Semiconductors (Paesi Bassi) STMicroelectronics (Francia, Italia) Samsung Electronics (Corea del Sud)

Applicazioni di impiego Elettronica di massa L'enorme volume di pezzi prodotti deriva dall'impiego massiccio di questo componente nei dispositivi elettronici di consumo e nei prodotti industriali di massa.

Spesso tali dispositivi vengono utilizzati nei sistemi di pagamento come nelle carte di credito, ma anche nelle smart card o per le cartoline musicali di auguri.

Comunicazioni e trasporti Un buon segmento di mercato è rappresentato dallautomotive (auto e altri mezzi di trasporto), che utilizza decine, in alcuni casi anche centinaia, di componenti per singola unità industriale venduta.