Una introduzione ai
Microcontroller PIC
|
Microprocessori e microcontroller
Un microprocessore è un singolo circuito integrato che contiene le
principali funzioni di un computer.
Essendo miniaturizzato, a paragone con
i grossi computer (mainframe) prende appunto il nome di "micro", anche se i moderni
sistemi a microprocessori che stanno in una scatola da scarpe superano ampiamente, come prestazioni, i primi elaboratori elettronici che stavano a malapena in una
grande stanza.
|
ENIAC, del 1945, in questa classica foto dell' esercito USA,
è uno dei primi calcolatori elettronici della storia. Occupava una ampia stanza di
180 metri quadri e pesava circa 27 tonnellate. Conteneva 18.000 valvole termoioniche, consumava oltre 150
kW ed era programmato inserendo i
codici binari delle istruzioni per mezzo di speciali schede in cui venivano cablati
manualmente i cavi necessari a creare le varie configurazioni: ogni
variazione del programma richiedeva che si facessero le corrispondenti
variazione dei contatti elettrici sulle schede di programmazione.
Questo mostro continuò a lavorare fino al 1955, quando fu sostituito
con sistemi più recenti ed è ora esposto in un museo a
Washington |
|
ENIAC poteva svolgere qualche centinaio di migliaia di operazioni in
virgola mobile in un giorno, con un clock di 100kHz. I dati da
elaborare e quelli in uscita erano erano perforati su schede di carta.
Non disponeva di una vera memoria, ma di banchi di flip flop che
contenevano una ventina di numeri a dieci cifre.
A confronto, un notebook attuale (nella foto,
Lenovo) pesa
circa 3 chili, consuma poche decine di watt, sta in una borsa a
tracolla, elabora dati con un clock a più di 1,6 megahertz.
Il suo processore, da solo, integra decine di milioni di transistor. Il
sistema dispone di tastiera, mouse, monitor LCD, masterizzatore
DVD, memoria di massa su disco rigido e memoria RAM
fino a 4GB. E mentre ENIAC era costato al governo americano almeno mezzo
milione di dollari (del 1945), un notebook si può acquistare oggi
per meno di 500 dollari. |
Quello che permette di realizzare il notebook qui sopra è il microprocessore
.
Essenzialmente un microprocessore è un circuito integrato (chip)
che svolge al suo interno le funzioni logico-matematiche necessarie alla
elaborazione dei dati ; è l' unità centrale (MPU Micro Processor
Unit) o CPU (Central Processor Unit) di un
computer della classe "personal". La potenza di calcolo e le
possibilità di espansione sono enormemente maggiori di quelle dei grossi
computer degli anni 50, pur consumando una frazione minima della loro potenza
ed occupando uno spazio altrettanto ridotto.
Rispetto al passato, l' aggettivo "micro" è più che adeguato per
descrivere la riduzione delle dimensioni, non delle prestazioni.
Va precisato che esistono
ancora i mainframe, ovvero i grandi computer che occupano una o più stanze,
ma essi sono proporzionalmente ben diversi dall' ENIAC descritto prima; la loro
struttura è certo più complessa di quella del personal computer e non solo per
le dimensioni fisiche o la quantità di componenti impiegati, e le loro
possibilità sono assai più ampie di quelle di un microprocessore. Si tratta,
però, di ambienti applicativi differenti per la mole di dati o necessità di
velocità operativa richiesta dalle grandi applicazioni su cui lavorano queste
macchine, a volte realizzate con il parallelo di migliaia di microprocessori
integrati in un unico insieme.
Per noi, l' appellativo "micro" ha
valore nel senso delle ridottissime dimensioni che, proporzionate al costo del
sistema completo, hanno permesso di disporre ad un singolo individuo di una
potenza di elaborazione superiore a quella dei primi grandi sistemi.
Sono microprocessori lo Z80 di Zilog (che
animava il Commodore 128), il 6502 di MOS Technology (il processore dei primi
Apple), il
6800 e il 68000 di Motorola,
la famiglia 808xx di Intel, gli Athlon di AMD, entrambi base dei PC attuali, ma
anche nomi meno noti, vissuti un tempo relativamente breve e poi scomparsi nel
turbine dello sviluppo tecnologico e commerciale, come l' SC/MP
e il PACE di National Semiconductors, il PPS-8 di Rockwell, l'
IM6100 di Intersil, ecc.
I microprocessori cominciano ad essere realizzati negli anni 70, con il
passaggio dai transistor ai circuiti integrati e sono alla base non
solo del personal computer come noi lo conosciamo adesso, ma anche dell' attuale
automazione industriale e di tutti quei prodotti innovativi tipici della nostra
tecnologia, dal cellulare al GPS.
Il microprocessore, per poter funzionare, deve essere
completato con altri dispositivi (chipset, memoria, input-output,
clock, memorie di massa, interfacce video e audio, ecc).
Per comunicare tra di
loro tutte queste parti fanno uso di sistemi di conduttori chiamati bus (dall'
inglese autobus, dato che sono il mezzo per far viaggiare le informazioni).
|
Un sistema a microprocessore può essere schematizzato così :
- attraverso un bus, cioè un insieme ordinato di conduttori
elettrici, arrivano dall' esterno i dati da elaborare
- l' unità centrale, con l' appoggio della memoria, con cui
comunica attraverso un altro bus, elabora i dati
- i dati elaborati sono resi all' esterno su un bus di uscita
Il programma che gestisce tutte queste operazioni solitamente
risiede in una parte non volatile della memoria (in questo esempio
indicata come ROM), mentre un' altra parte della memoria (RAM) viene
usata come supporto per l' elaborazione. |
I bus accessibili dall' esterno del chip sono disponibili come pin metallici ed
è attraverso
questi che il
microprocessore riceve e restituisce dati. Dovendo utilizzare questi bus, si finisce per avere
chip con un numero elevato di
pin (anche molte centinaia), in funzione
della complessità del processore.
Sono i tipici packages (pacchetti,
contenitori) dei circuiti integrati, parallelepipedi di materiale
plastico nero o ceramiche rossicce o ibridi più complessi, dotati di un elevato
numero di zampette metalliche (pin) con cui collegarsi al resto del
circuito.
|
Un package classico per i microprocessori è quello presentato a lato, dove vediamo
una CPU Intel delle ultime generazioni, dotata di un package con molte centinaia
di connessioni
L' aumento della complessità della logica contenuta all' interno del
chip rende necessario un numero di pin proporzionato e gli zoccoli di
supporto diventano griglie fittissime in cui la distanza tra un pin e
l' altro è inferiore al millimetro. |
|
Come in questo socket ZIF (Zero Insertion
Force ) del 2007, progettato per accogliere processori AM2 di
AMD con la bellezza di 940 pin in un quadrato di circa
4 centimetri di lato ! E questo è ancora poco : la tendenza è a
superare i 1000 pin e siamo già a oltre 1300 con le ultime CPu
di Intel.
Per inciso, lo zoccolo ZIF serve ad inserire o sostituire il
processore senza danneggiare i piccoli e fragili pin.
|
Con una tale disponibilità di risorse, un sistema a
microprocessore può assumere dimensioni considerevoli, espandendo i bus sui
quali si collegheranno ogni sorta di dispositivi periferici, che la
potenza di calcolo calcolo dell' unità centrale potrà agilmente
gestire.
|
Con un numero così elevato di connessioni verso l' esterno i
circuiti stampati diventano tremendamente complessi e richiedono più
strati, anche 8 o più, dove allocare i segnali, le alimentazioni, le
masse.
Alla complessità di queste connessioni si aggiunge la necessità
di mantenere elettricamente e logicamente validi i segnali che,
essendo a frequenze di molti MHz se non di GHz, rendono
particolarmente critica anche solo la lunghezza delle piste, la loro
disposizione reciproca, ecc.. |
Tipicamente in un sistema a microprocessore, programmi
e dati stanno all' esterno del processore stesso, nelle unità di memoria e sono pure esterni i
sistemi di controllo, gli adattatori per gli ingressi e le uscite, ecc.
Quindi
un sistema a microprocessore si trova ad occupare una certa superficie di una
o più schede, anche perchè, per il funzionamento reale dell' insieme,
occorrono molti altri componenti accessori. Tipico proprio dei sistemi a
microprocessore è la possibilità di poter essere espansi e quindi di
disporre di bus su cui inserire facilmente altre schede.
|
Nello schema a lato è tratteggiata una struttura tipica con:
- bus dati
- bus indirizzi
- bus dei controlli
Sui bus sono inserite le periferiche di I/O (PIO), ma anche la
memoria programma (ROM) e la memoria dati (RAM), oltre ad una ampia
varietà di altre funzioni necessarie all' operatività del sistema,
come il generatore del clock, il sistema di indirizzamento, il
circuito del reset, ecc. |
Possiamo prendere ad esempio proprio una
scheda madre (motherboard o mainboard o mb) di un qualsiasi personal computer
per poter identificare facilmente le varie aree :
|
- MPU : il microprocessore
- clock : il sistema di
temporaizzazione delle operazioni
- RAM : la memoria volatile
- ROM : la memoria non
volatile che contiene il programma di diagnostica e diavvio (BIOS)
- control : il sistema di
sincronizzazione e controllo dei vari bus
- I/O : gli elementi di
ingresso e uscita
- bus : i vari bus di
espansione
|
Tutte le altre parti della scheda non evidenziate contengono
altri elementi indispensabili, come:
-
gestori dell' alimentazione
-
batteria di
mantenimento dei dati nella memoria di configurazione utente (RAM CMOS)
-
chip ausiliari per gli I/O di sistema, ecc.
-
il chip del BIOS (EPROM, EEPROM o FLASH)
-
i connettori per gli stick di memoria RAM
-
i bus accessibili dall'
esterno (ISA, PCI, AGP) e i relativi connettori in cui inserire
schede
-
i connettori degli I/O, del pannello frontale, ecc.
Come si vede, è necessaria una superficie di vari decimetri quadrati per
trovare posto ai necessari componenti del sistema e rendere possibile una
espansione delle funzioni attraverso i bus; una scheda come quella nella foto
misura almeno 30,5 x 17 cm e richiede numerose tensioni diverse per la sua
alimentazione, con molte decine di watt di consumo.
Il microcontroller
Come ci si è resi conto della potenzialità dovuta al passaggio dalle valvole
ai transistor e dai transistor ai circuiti integrati, che hanno permesso minori
dimensioni, minor consumo e maggiore potenza di elaborazione, ben presto ci si
accorge che le capacità del microprocessori possono essere
validamente utilizzate non solo in macchine per il puro calcolo, ma anche per
controllare ed automatizzare ogni genere di processo, dalla lavatrice alla
centrale nucleare. Ora, se in una centrale nucleare la complessità delle azioni
da svolgere, lo spazio disponibile ed il budget di spesa ampio si prestano all'
uso di sistemi complessi che occupano armadi interi, ben difficilmente è
possibile usare soluzioni analoghe all' interno della lavatrice o di un utensile
elettrico, sia per ragioni
costo che di spazio, ma anche perchè la logica necessaria ad azionare un
elettrodomestico o un trapano è molto limitata rispetto a quella che serve a governare
un grande impianto industriale.
Nasce allora l' idea di raccogliere in un solo chip TUTTE le funzioni del sistema, ovvero integrare in una unica piastrina di silicio il
microprocessore, il suo sistema di controllo, la memoria e gli I/O : nasce il
microcontroller.
In sostanza il microcontroller (traducibile in italiano con microcontrollore)
è un componente elettronico che può svolgere molteplici funzioni in modo
autonomo, dopo essere stato opportunamente programmato, praticamente con un
minimo di componenti esterni, contenendo tutto quello che gli serve in un
unico package (in inglese si usa il termine embedded, traducibile con
incapsulato). Può avere dimensioni piccolissime, anche con solo un
quadratino di pochi millimetri di lato con sei pin accessibili,
nonostante contenga al suo interno
sia il programma che la memoria di lavoro, oltre ad una ampia gamma di
Timers, Input-output, convertitori, interfacce di comunicazione, ecc.
|
Tutto quello che era necessario e circondava la MPU del
microprocessore viene inserito in un solo chip.
In sostanza, in un singolo package troviamo :
- l' unità centrale, MPU
- la memoria, sia volatile (RAM) che memoria programma non
volatile (ROM)
- il sistema di controllo e il
clock
- gli I/O
Ne deriva che :
- I bus interni che collegano le varie parti non
sono accessibili dall' esterno
- I pin del package del microcontroller sono in numero
limitato, da 6 per quelli
destinati alle funzioni più semplici a un centinaio di quelli
più complessi, e sono collegati principalmente ai dispositivi di
I/O. Quindi il loro numero non dipende dalle possibilità di
espansione della MPU, ma dalla complessità delle funzioni di input e output
integrate e rese disponibili per interfacciarsi con il mondo
esterno.
|
|