Tutorials - PIC

 

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

  • 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.

 


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 02/10/11.