Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Indice
1 Storia
1.1 I primi modelli
1.2 L'evoluzione della tecnologia CMOS
1.3 Le interfacce JTAG e ONCE
2 Descrizione
2.1 Differenze col microprocessore
2.2 DSP
2.3 Componenti
3 Motivazioni del successo
4 Mercato
5 Applicazioni di impiego
5.1 Elettronica di massa
5.2 Comunicazioni e trasporti
6 Sistemi di sviluppo
7 Note
8 Voci correlate
9 Altri progetti
10 Collegamenti esterni
Storia
I primi modelli
Il primo microcontrollore
Il primo computer on-chip ottimizzato per applicazioni di controllo � stato il
modello 8048 di Intel, uscito 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.
La programmazione del firmware veniva fatta direttamente in linguaggio macchina.
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), timers
multifunzione, EEPROM, interrupts 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.
Nello stesso anno Atmel [1] 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.
Descrizione
� 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.
Componenti
Spesso tali dispositivi vengono utilizzati nei sistemi di pagamento come nelle
carte di credito, ma anche nelle smartcard o per le cartoline musicali di auguri.
Comunicazioni e trasporti
Un buon segmento di mercato � rappresentato dall'automotive (auto e altri mezzi di
trasporto), che utilizza decine, in alcuni casi anche centinaia, di componenti per
singola unit� industriale venduta.
Sistemi di sviluppo
L'implementazione in un sistema di sviluppo consiste nella stesura del programma in
linguaggio Assembly o di alto livello (tipicamente il C), utilizzando un editor di
testo generico o specifico per quel linguaggio. Una volta scritto, se in linguaggio
Assembly, il programma deve essere assemblato, cio� tradotto nell'effettivo codice
macchina numerico (generalmente esadecimale). La conversione viene fatta da un
Assemblatore specifico per processore, o famiglia di processori. Se codificato in
alto livello, il programma deve essere compilato, per mezzo di un compilatore che
lo converte prima in linguaggio Assembly, e quindi nell'effettivo codice macchina,
in due passaggi successivi. Anche il compilatore deve essere specifico per
processore, o famiglia di processori.
Nella maggior parte dei casi, la complessit� delle funzioni di un programma per
microprocessore, richiede la suddivisione in moduli funzionali (o sottoprogrammi).
Ciascun modulo viene quindi assemblato in modalit� rilocabile (ad indirizzi non
determinati). L'incorporamento di tutti i moduli assemblati agli indirizzi
definitivi, viene effettuato, in un ulteriore passaggio, da un Linker, che genera
il codice macchina definitivo (codice eseguibile), in un formato opportuno per
poter essere trasferito nella memoria del processore, ed eseguito.
Note
^ I valori in tabella sono indicativi, per puro confronto di massima, e riferiti al
momento della stesura (inizio 2010)
^ In stato di riposo sleep, il consumo si pu� ridurre di un fattore 1000.
^ Non presente in tutti i modelli
^ fonte: Databeans
^ fonte: Luminary Micro
^ fonte: Databeans Archiviato l'8 marzo 2014 in Internet Archive.
Voci correlate
Microprocessore
Registri hardware nei microcontrollori
Sistemi embedded
Sistema di sviluppo
Altri progetti
Collabora a Wikizionario Wikizionario contiene il lemma di dizionario
�microcontrollore�
Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su
microcontrollore