Una introduzione ai
Microcontroller PIC
|
Il microcontroller si differenzia, dunque, dal microprocessore per
la sua struttura costruttiva e per le possibilità applicative:
microprocessore
|
microcontroller
|
il microprocessore ha
bisogno di tutti i numerosi componenti esterni aggiuntivi per poter
funzionare (memoria, oscillatore di clock, periferiche di ingresso/uscita
ecc), richiedendo una certa superficie per la realizzazione di un sistema
anche semplice ed un costo sensibile |
ll microcontroller comprende
in un solo elemento tutto quello che serve e può virtualmente
funzionare praticamente senza elementi esterni; questo richiede il
minimo di spazio e di costo |
il microprocessore si può espandere sui bus in maniera virtualmente
illimitata, permettendo di realizzare sistemi di alta complessità |
il microcontroller non ha veri e propri bus esterni per espandersi,
in quanto la sua funzione è il controllo di di sistemi relativamente
poco complessi |
nei sistemi a microprocessore l' espandibilità consente di
aggiungere memoria e periferiche a seconda delle necessità del
sistema |
il microcontroller non prevede, in genere, la possibilità di espandere
memoria o periferiche ed il numero degli I/O e delle funzioni
di controllo sul mondo esterno è
forzatamente limitato al numero dei pin accessibili. |
Ovvero quello che nel sistema a microprocessore si trovava
esterno all' unità centrale, nel microcontroller è "embedded",
ovvero integrato in un singolo package.
Quali sono le conseguenze ?
Essenzialmente queste:
-
un solo componente, per quanto complesso, costa molto meno
di un insieme di componenti distribuito su più schede
-
un solo componente può essere "personalizzato"
per una applicazione particolare aggiungendo o modificando o togliendo
periferiche da un modello base
-
un solo componente con una miniaturizzazione elevata avrà
la possibilità di essere realizzato con tecnologie low power per
consumare pochissima energia per il suo funzionamento
-
non servono più tensioni di alimentazione: tipicamente
una è sufficiente
-
le dimensioni minime permettono di inserire
"intelligenza" e automazione in ogni genere di apparecchi o
crearne ex novo, miniaturizzati e potenti
Per contro, un solo package non è in grado di dissipare l'elevata
energia richiesta dal funzionamento a frequenze alte e quindi,
mentre il clock dei microprocessori arriva a molte centinaia o migliaia di
megahertz quello degli embedded è attorno o al di sotto del centinaio.
E, se alcuni embedded prevedono la possibilità di gestire memorie esterne su
pin di I/O programmati come "bus", la primaria differenza tra
microprocessore e microcontroller è l' espandibilità del primo.
Il microcontroller, però, non è per forza un componente
"minore" per quanto riguarda le possibilità di calcolo, tanto che
esistono componenti, spesso definiti "single chip", che sono derivati da famiglie
di microprocessori di cui integrano la stessa MPU, con bus da 8 a 32
bit.
Si tratta
semplicemente di una diversa
implementazione del concetto di microprocessore in funzione di un campo di
applicazione particolare, ovvero quello dell' automazione o computerizzazione
dei dispositivi più vari. Lo scopo del microcontroller non è quello di realizzare un personal computer,
bensì quello di
controllare "intelligentemente" un qualche genere apparecchiatura e
quindi ha necessità di essere poco voluminoso, economico e flessibile, senza
l' obbligo di essere più che tanto espandibile, area applicativa, questa,
già coperta dal microprocessore.
Per fare un esempio in campo diverso, esistono veicoli per portare molte
persone, come gli autobus, ma se si è solo in quattro, non ha senso
acquistare un autobus; una normale autovettura sarà più adeguata. E, come
per portare 4 persone basteranno meno spazio e meno sedili che per portarne
50, anche nel microcontroller le risorse saranno limitate a quello che i
progettisti hanno ritenuto necessario per le applicazioni possibili di quel
componente, quindi un numero limitato di celle di memoria, di bit di I/O, di bus di
comunicazione, ecc.
Da questa idea di integrazione nascono numerose famiglie di prodotti, alcune progettate per essere
dedicate ad un particolare compito, altre per essere di uso più generale
possibile; e così troviamo microcontroller negli apri cancelli, negli antifurti,
delle centraline elettroniche delle auto (tipicamente un' automobile attuale ha
a bordo uno o due microcontroller a 32 bit, il doppio a 16 bit e anche
decine di microcontroller a 8 bit), negli elettrodomestici, nei TV e nelle
radio, nei lettori MP3, nelle macchine utensili, negli elettromedicali, negli
orologi e fotocamere e in tutti quegli apparecchi e processi in cui il controllo elettronico
delle varie funzioni è indispensabile.
Così, nello stesso PC, senza che ce ne rendiamo conto, convivono invisibili,
assieme al microprocessore
centrale, numerosi microcontroller : ne
troviamo nei driver dei dischi rigidi e in quelli dei DVD, nella tastiera e nel
mouse, nel monitor, nella stampante, nello scanner, ecc. In sostanza, ogni
periferica o dispositivo complesso che posso collegare al PC contiene a sua
volta uno o più microcontroller !
|
Ecco come si presentano alcuni package di
microcontroller PIC di Microchip.
Si tratta in questo caso di dispositivi sia SMD (Surface Mounting Devices
. dispositivi per montaggio superficiale), molto miniaturizzati, con
un numero di pin da 28 a 84, che in DIP.
|
|
Ed ecco un esempio di dispositivo completo : si tratta
di un controller per motori della Pololu,
azienda specializzata in sistemi per micro robotica e controllo del
movimento.
Un francobollo del genere è in grado di regolare in modo intelligente
la velocità di un motore in corrente continua da vari ampere,
alimentabile a batteria. |
Dunque, un microcontroller è:
-
un microprocessore programmabile, adatto a svolgere una qualsiasi funzione di automazione
-
usando il
minor numero possibile di componenti,
-
con un costo molto limitato,
-
possibilmente in un volume
ridotto e
-
con un basso consumo.
Con componenti programmabili di questo genere il campo delle possibili
applicazioni è enorme.
Numerose aziende hanno progettato e sviluppato
microcontrollori
utilizzando i "core" dei loro microprocessori e circondandoli con gli
elementi mancanti, altre volte partendo ex novo o applicando esperienze derivate
da sistemi di elaborazione più complessi.
Sono esempi di microcontroller la
famiglia ST6 di ST Microelectronics, i PIC di Microchip, le famiglie
68Hxx di Motorola, i
PSoC di
Cypress, gli 8051 di Intel, gli AVR di Atmel, ecc. Praticamente ogni produttore
di microprocessori, e non solo, ha a catalogo svariati microcontroller.
Una precisazione : alcuni produttori e pubblicazioni usano i termini
microprocessore, processore, microcontroller, controller indifferentemente che
si tratti di un chip embedded oppure no, così come si usa processore, CPU e
MPU per identificare sia il chip principale in se, sia la scheda che lo porta.
Anche noi, indifferenti ad un purismo troppo spinto, utilizzeremo questi
termini in modo "libero", escluso dove questo possa dare origine a
incertezza.
Ogni famiglia di microcontroller dispone di un set di istruzioni specifico, di una architettura
differente e di caratteristiche proprie, ma tutte comunque riconducibili ad
archetipi generali, visto che sono state pensate per svolgere lo stesso genere
di compiti.
Quindi, anche se tra una architettura RISC e una CISC, o tra un core basato su
paradigmi Intel ed uno basato su quelli Motorola, ci sono differenze sensibili,
la conoscenza di un certo ambiente specifico serve da guida per poter passare poi più
facilmente agli altri, almeno per quello che riguarda le linee ed i concetti
generali.
Per questo è possibile iniziare ad affrontare il tema -microcontroller- a partire ad uno qualsiasi dei prodotti esistenti; noi
cominciamo con i PIC per le ragioni che vedremo adesso.
|