Il Microcontrollore o Microcontroller o MCU è un dispositivo elettronico integrato su singolo chip, nato come evoluzione alternativa al Microprocessore.
E' 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.
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 rilasciati sistemi di sviluppo amatoriali e professionali anche in modalità open source.
Differenze tra Microprocessore e Microcontrollore
[modifica | modifica wikitesto]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) per svolgere operazioni logiche e matematiche e di una elementare CPU (Control Processing Unit) 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 è velocemente evoluta con blocchi interni complessi (numero di bit elaborati e movimentati) e con capacità e velocità di calcolo crescenti in modo esponenziale. Per quanto potente, il Microprocessore richiede sempre delle unità esterne - memorie, gestori di segnali e dispositivi periferici per poter dialogare e interagire con l'esterno.
Il Microcontrollore è invece un sistema completo, che integra 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, adatti per un uso generale (general purpose), è progettato per ottenere la massima autosufficienza funzionale ed ottimizzare il rapporto prezzo-prestazioni per una specifica applicazione,
Caratteristica | Microcontrollore | Microprocessore |
---|---|---|
Velocità massima di clock | 200Mhz | 4GHz |
Capacità elaborativa massima in MFLOPS | 200 | 5000 |
Potenza minima dissipata in Watt (in stato di elaborazione[1]) | 0.001 | 50 |
Prezzo minimo per singola unità in USD | 0.5 | 50 |
Numero di pezzi venduti annualmente (in milioni) | 11,000 | 1,000 |
NOTA: questi sono valori indicativi, per puro confronto di massima, e riferiti al momento della stesura (inizio 2010)
In sintesi, il Microcontrollore è molto meno potente del Microprocessore, ma è economico, ha consumi energetici ridotti e, per la sua versatilità, viene utilizzato in parecchi milioni di prodotti.
DSP
[modifica | modifica wikitesto]Parallelamente al Microcontrollore, e in continua evoluzione di potenza e di mercato, esistono i DSP (Digital Signal Processor) che incorporano moduli specializzati nel trattamento in digitale di segnali analogici. I campi tipici di utilizzo sono nel controllo di azionamenti (motori), di componenti per auto e avionica, di trattamento di segnali multimediali (codifica/decodifica audio e video, streaming e, campo principe, nella telefonia mobile. Il DSP ha tipicamente una struttura a 32 bit, e prossimamente a 64 bit.
Componenti del Microcontrollore
[modifica | modifica wikitesto]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 configurabili
- Gestione Interrupt[2]
- Moduli aggiuntivi
Motivazioni del successo
[modifica | modifica wikitesto]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.
Applicazioni di impiego
[modifica | modifica wikitesto]L'enorme volume di pezzi prodotti deriva dall'impiego massiccio di questo componente nei dispositivi elettronici di consumo e nei prodotti industriali si massa. Difatti, al primo posto in classifica come segmento di mercato troviamo l'automotive (auto e altri mezzi di trasporto), che utilizza decine, in alcuni casi anche centinaia, di componenti per singola unità industriale venduta. Segue il segmento della telefonia mobile e delle telecomunicazioni in genere, quindi vengono i prodotti medicali, i consumer e gli elettrodomestici.
Spesso utilizziamo questi dispositivi senza rendercene conto, come per le smartcard delle carte di credito o per le cartoline musicali di auguri.
Mercato
[modifica | modifica wikitesto]Il Microntrollore occupa una posizione rilevante nel mercato complessivo dei semiconduttori, con una stima di introiti per circa 14 miliardi di USD 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 di 14 miliardi per la fine 2010. [3]
E' 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. [4]
I principali (in ordine decrescente di volumi di mercato) sono:
- Renesas Technology
- Freescale Semiconductor
- NEC
- Fujitsu
- Infineon Technologies
- Microchip
- ST Microelectronics
- Texas Instruments
- Atmel
- NXP Semiconductors
E' da sottolineare il caso particolare del produttore Renesas Technology: la sua famiglia di prodotti denominata ARM, per la particolare architettura, consente a terze parti di "crearsi" un proprio prodotto, con caratteristiche distintive basate su microcodice proprietario e commercializzarlo con nomi e personalizzazioni differenti. Il catalogo di molte aziende sopra citate (es. Freescale, ST, Texas, NXP) e altri ancora, comprende prodotti il cui core è una MCU ARM.
Cenni storici
[modifica | modifica wikitesto]Il primo computer on-chip ottimizzato per applicazioni di controllo è stato il modello 8048 di Intel, rilasciato nel 1975, con RAM e ROM sullo stesso chip. 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 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.
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[3] ha rilasciato 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. Questo ha segnato l'inizio del massiccio utilizzo del Microcontrollore nelle più disparate applicazioni.
Sistemi di sviluppo per MCU rilasciati in modalità Open Source
[modifica | modifica wikitesto]ACK (Amsterdam Compiler Kit)
[modifica | modifica wikitesto]L'Amsterdam Compiler Kit [4] è un cross-compilatore GPL destinato agli ambienti Unix
I processori trattati sono:
- 6500 Il 6502 è il noto processore dell'Apple e del Vic 20, il 6510 del Commodore 64
- 6800
- 6805
- ARM
- 8080
- Z80
- Z8000
- i86
- i386
- 68000 : Nei microcontrollori complessi tipo il 68302,il solo 68000 viene programmato ed il RISC viene lasciato ad altri strumenti
- 68020
- NS32016
- S2650
- SPARC
- VAX4
- PDP11
L'efficienza del compiliatore è nella media dei compilatori commerciali proprietari.
SDCC (Small Device C Compiler)
[modifica | modifica wikitesto]L'SDCC (Small Devices C Compiler) [5] è un porting Open Source GPL per i microcontrollori delle sole famiglie Z80, 8051, 68HC11, PIC. E' stato separato dal progetto GCC (Gnu Compilers Collection) per poter ottimizzare meglio il lavoro dei microcontrollori, dove serve una grande efficienza del compilatore e contemporaneamente vivere in un ambiente molto povero di risorse RAM e ROM.
Nonostante il piccolo numero di target disponibili, il compilatore è molto quotato e nella maggior parte delle situazioni dà risultati migliori dei sistemi di sviluppo professionali commerciali, con lo svantaggio dell'assenza di una IDE integrata.
Senza settaggi specifici il compilatore genera il codice per il controllore 8051
JAL (Just Another Language)
[modifica | modifica wikitesto]Il JAL (compilatore) [6] è un dialetto GPL del Pascal destinato ai microcontrollori PIC.
Voci correlate
[modifica | modifica wikitesto]
Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su Orionis/Microcontrollore
Collegamenti esterni
[modifica | modifica wikitesto]- Microprocessori e microcontrollori - Corso di progettazione su SoC ARM - Università Degli Studi RomaTre
- Base di dati di progetto del microcontroller di PIC
- home page dell'SDCC
- SDCC Open Knowledge Resource
- Un porting del FreeRTOS per l'8051
- Using SDCC on the AT89C52 (derivativo dell'8051)