vuoi
o PayPal
tutte le volte che vuoi
Microcontrollori e le loro applicazioni
Si può trovare un Microcontrollore in ogni genere di dispositivo, ad esempio:
Prodotti per l'informazione personale:
- Telefoni cellulari
- Orologi
- Registratori
- Calcolatrici
Componenti Laptop:
- Mouse
- Tastiere
- Modem
- Fax
- Schede sonore
- Caricatori di batterie
Applicazioni Home:
- Serrature per porte
- Sistemi di allarme
- Condizionatori
- Telecomandi
Settore industriale:
- Regolatori industriali
- Controllo di assi (posizione, velocità, etc)
Un Microcontrollore lavora in base ad un programma installato in una memoria non volatile: la programmazione è tipicamente in linguaggio Assembler e differisce da una casa produttrice all'altra, ma a volte utilizza anche altri linguaggi come il C o il Visual Basic, che però se inerenti nell'ambito di un Microcontrollore prendono il nome di MikroC e MikroBasic (per via dellasemplicità perchè hanno un numero di librerie e funzionalità ridotte).
31.1.1. Architettura
di un Microcontrollore Viene adesso mostrata l'architettura tipica di un Microcontrollore:
- un Timer che temporizza le azioni svolte e permette di generare ritardi e/o per le misurazioni di intervalli di tempo.
- Linee di I/O: grazie ad esse il Microcontrollore è in grado di rilevare "stimoli" digitali provenienti dall'ambiente esterno in Input (pressione di un tasto, ricezione di un segnale digitale, chiusura di un contatto, etc) oppure in Output (accensione di un led, di un relè, azionamento di una valvola o di una serratura, scritte su un display, etc).
- Moduli PWM (Modulation Width Pulse): sono in grado di generare delle onde quadre di diverso duty cycle che si possono
Una Memoria per conservare i dati anche in assenza di alimentazione oltre che contenere il programma da eseguire, può essere una ROM, EPROM, EEPROM, o una Flash ROM.
Un Watch Dog: è un contatore alimentato da un oscillatore indipendente che serve per controllare che il programma non si blocchi per varie cause, generando un segnale di interrupt o di reset prima che tale contatore vada in overflow.
Bus di comunicazione: consente l'interfacciamento attraverso protocolli standard (SPI, I2C, UART, CAN, etc) con altri dispositivi.
Convertitori analogico/digitali (ADC): permettono di acquisire un segnale analogico proveniente dall'esterno (in genere da un sensore) e convertirlo in un segnale digitale per poterci lavorare ed elaborarlo nel programma.
Un Prescaler: è un divisore di
frequenza che permette di dividere la frequenza del ciclo di istruzioni in valori più piccoli, con il risultato di ottenere tempi di esecuzione più alti e quindi più facilmente gestibili (o in ogni caso impostabili sui valori che il programmatore desidera).
Gran parte dei piedini (Pin) di un Microcontrollore viene utilizzata per comunicare con l'esterno, cioè per ricevere e inviare dati: ciò è possibile per mezzo di Porte, cioè un gruppo di piedini dedicato al collegamento di dispositivi esterni. I singoli bit di una porta possono essere programmati per funzionare come ingressi o come uscite tramite il programma che si va a inserire nel Microcontrollore. Se i bit di una porta sono accessibili singolarmente dall'esterno in modo parallelo si parla di Porte Parallele. Viceversa si parla di Porte Seriali se i bit vengono generati o letti in sequenza. Alcune porte di ingresso possono essere connesse internamente ad un ADC per acquisire
Dall'esterno in Input un segnale analogico, che viene letto da un sensore e convertirlo al giusto range di valori di tensione che può essere letto da un dispositivo connesso in Output. Viene mostrata una possibile implementazione:
I sensori di ogni "dito" vengono connessi ad uno specifico Microcontrollore che fa la conversione da analogico a digitale ed elimina i primi rumori di fondo con un filtraggio sul segnale di uscita del sensore. Il segnale digitalizzato viene trasferito tramite un canale di comunicazione ad un altro microcontrollore "Master", il quale ha il compito di acquisire e raggruppare i dati inviati dagli altri dispositivi, a patto che il canale sia implementato tramite un protocollo standard riconosciuto da tutti i Microcontrollori utilizzati (ad esempio SPI). Una volta riconosciuti, i dati devono essere resi disponibili ad un personal computer trasferendoli mediante un protocollo di comunicazione riconosciuto sia dal computer che dal Microcontrollore.
51.1.2. Microcontrollori PIC I PIC (Peripheral Interface Controller) costituiscono una delle famiglie più diffuse ed utilizzate di microcontrollori. Vengono prodotti dalla Microchip e sono molto popolari sia in ambito industriale che nelle applicazioni hobbystiche per via delle loro caratteristiche: - Sono molto economici; - Hanno una grande disponibilità di software e strumenti di sviluppo; - Sono di piccole dimensioni; - Sono facili da programmare; - Hanno performance elevate in termini di velocità. I PIC sono disponibili in un'ampia gamma di modelli per meglio adattarsi alle esigenze di progetto, differenziandosi per il numero di linee di I/O e per le periferiche in dotazione. Si hanno tre famiglie di PIC: da 8, 16 e 32 bit. Si parte dai modelli più piccoli identificati dalla sigla PIC12C5xx dotati di soli 8 pin, fino ad arrivare ai modelli più grandi. Nella figura successiva viene mostrato un confronto fra le varie famiglie: A titolo diF690 Il PIC16F690 è un PIC ad 8 bit di distribuzione Microchip che presenta le seguenti caratteristiche: - È dotato di 20 pin di cui ben 18 per l'I/O; - Tensione di funzionamento dai 2.0 V ai 5.5 V, anche se in genere si alimenta con 5V; - Set di 35 istruzioni nelle versioni base, fino a 77 in quelli con prestazioni più elevate; - Ogni istruzione per essere eseguita impiega 4 cicli di clock, tranne quelle che comportano un salto all'interno della memoria che impiegano 8 cicli; - Sono presenti 2 Comparatori, 2 Timer da 8 bit ed 1 Timer da 16 bit; - L'architettura interna è di tipo Harvard, con bus di dati e controllo di 8 bit; - Categoria dei Mid Range, ovvero la lunghezza di una parola d'istruzione è di 14 bit; - Program Memory di 4Kb; - Memoria interna EEPROM di 256 bytes; - RAM di 256 bytes; - ADC di 12 canali con risoluzione a 10 bit; - Oscillatore interno a frequenza massima di 8 MHz.è il modello, la F nel nome indica la presenza di una EEPROM Flash sull’integrato, ovvero di una memoria non volatile e riscrivibile elettricamente per contenere il programma, e infine gli ultimi tre valori xxx indicano una sigla numerica che contraddistingue le caratteristiche tecniche di quel modello. La Piedinatura del PIC16F690 è la seguente:
Esso presenta 20 pin di cui 2 sono di alimentazione ed i restanti 18 possono essere utilizzati per l’I/O se nessuna periferica associata a quel pin è attiva. Questi 18 pin sono disposti in tre porte denominate PORTA, PORTB e PORTC:
- PORTA dispone di 6 linee configurabili, identificate dalle sigle RA0, RA1, RA2, RA3, RA4, RA5
- PORTB dispone di 4 linee configurabili denominate RB4, RB5, RB6, RB7
- PORTC dispone di 8 linee configurabili denominate RC0, RC1, RC2, RC3, RC4, RC5, RC6, RC7
La prima cosa che si nota è l’assenza di piedini di indirizzo poiché la memoria è già
integrata all'interno del Microcontrollore. Al pin V deve essere collegata l'alimentazione e a quello V la massa (GND). I piedini hanno nomi piuttosto complessi, perché possono svolgere diverse funzioni a seconda di come sono programmati. Essi sono bidirezionali, cioè possono essere programmati sia come input che come output, tranne il pin 4 (RA3/MCLR/V) che può essere usato solo come input. Inoltre alcuni di questi pin sono condivisi con i 12 ingressi del convertitore analogico digitale interno al PIC e perciò sono indicati nella piedinatura dell'integrato con nomi piuttosto complicati (RA0/AN0, RA1/AN1, RA2/AN2, RA4/AN3, RC0/AN4, RC1/AN5, RC2/AN6, RC3/AN7, RC6/AN8, RC7/AN9, RB4/AN10, RB5/AN11). Per la gestione delle linee di I/O da programma, ogni porta dispone di due registri: - TRIS-x: sono dei registri di pilotaggio che determinano se quella linea funziona come input (1) oppure come output (0); - PORT-x: sono dei registri di utilizzazione.infatti nelle celle binarie di essi si scrivono tutti ibit che il Microcontrollore vuole inviare verso l'esterno o acquisire all'interno attraverso quella porta, ovvero lo stato che quella porta dovrà assumere. Ad esempio se il bit 0 del registro TRIS-A viene messo a zero, la linea RA0 verrà configurata come linea in uscita, quindi il valore a cui verrà posto il bit 0 del registro PORT-A determinerà lo stato logico di uscita di tale linea (0 = 0V, 1 = 5V). Per completezza viene mostrato anche lo schema interno del PIC16F690: C'è una Flash 4kx14 Program Memory, che è la memoria interna EEPROM destinata a contenere il programma. È organizzata in 4096 parole da 14 bit ciascuna, una parte di essa è destinata ai bit di configurazione che servono per settare la configurazione iniziale di alcuni dispositivi interni al PIC al momento dell'accensione del Microcontrollore. Per programmare tale Memoria (cioèPer caricare nel Microcontrollore il programma scritto da computer occorre utilizzare un programmatore che si collega al Personal Computer tramite un cavo USB, così che mediante un opportuno software di programmazione (ad esempio il PICkit 2 Starter kit), il file di programmazione possa essere caricato sulla EEPROM interna al PIC sostituendo il contenuto precedente. Per rendere il tutto più semplice è possibile alloggiare il PIC su una speciale Demoboard (su di essa può essere montato e programmato direttamente il Microcontrollore, essa presenta 4 LED, un pulsante, ed un potenziometro per testare rapidamente il funzionamento di un programma) offerta sempre dal PICkit 2 Starter kit, come viene mostrato in figura:

Per la compilazione spesso viene utilizzato il MPLAB-IDE, che è un ambiente di sviluppo proprietario della Microchip, gratuitamente fruibile dal sito della stessa azienda, che integra tutte le funzionalità di un ambiente di sviluppo integrato (IDE) per la programmazione dei Microcontrollori PIC.