Tutorials - PIC

 

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. 

 


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 01/04/13.