Presentazione di PowerPoint

Transcript

Presentazione di PowerPoint
UNA INTRODUZIONE
AL MONDO DEI
MICROCONTROLLORI
1
…Microcontrollori?
Molti prodotti utilizzati
quotidianamente contengono più
intelligenza di quanto ogni
utente possa immaginare. Uno
studio indica che ogni giorno il
consumatore medio ha a che
fare con almeno un centinaio di
microcontrollori prima di andare
a dormire. E sono veramente
dappertutto: tostapane,
asciugacapelli, telefoni cellulari,
sistemi di sicurezza, forni a
microonde, lavatrici e automobili
hanno tutti qualche dispositivo
intelligente incorporato.
2
I microcontrollori stanno cambiando il mondo..!
Un esempio eclatante ne sono le automobili che oggi
incorporano da 30 a 40 microcontrollori, contro i 10 che
avevano pochi anni fa.
Questi microcontrollori sono usati per migliorare il
comfort e la sicurezza dei passeggeri, nonché per
contenere il consumo di carburante.
La stessa proliferazione di microcontrollori è avvenuta
anche negli elettrodomestici quali frigoriferi,
condizionatori, lavatrici e, persino, nei sistemi di
comando per l’apertura di cancelli. Ieri, questi
apparecchi erano totalmente elettromeccanici, mentre
oggi hanno sette o otto microcontrollori che ne migliora
le prestazioni, li fa consumare meno energia, li rende più
sicuri, affidabili e piacevoli da usare.
3
Il Microcontrollore

Un microcontrollore (µC ) è un dispositivo di
elaborazione dati simile al microprocessore (µP ).
Sul µP sono basati tutti i calcolatori dai personal computer ai mainframe.
Sul µC sono basati dispositivi per scopi industriali o per applicazioni
particolari (autronica, domotica)
4
Il µP contiene :
•
•
•
•
•
Una ALU (Arithmetic
Logic Unit ) dove
avvengono i calcoli
diversi Registri per la
memorizzazione
temporanea dei dati e la
gestione delle istruzioni
Un bus interno ad alta
velocità
circuiti di controllo e di
temporizzazione per
coordinare tutte le
attività
tre bus ( Data Bus ,
Address Bus , Control
Bus ) per comunicare
col mondo esterno (
dispositivi di memoria ,
dispositivi di ingressouscita)
5
Il µP ha bisogno per funzionare :
• Di un’ampia area di memoria esterna sia di lavoro
(RAM) che di massa (hard disk ecc ) , dato che
tratta grandi quantità di dati
• Di interfacce verso dispositivi esterni di Input
(tastiera, mouse,scanner, hard disk, floppy ,
microfoni ….)
• Di interfacce verso dispositivi esterni di Output
( monitor, stampante, altoparlanti, hard disk,
floppy,modem ……)
• Di potenza di alimentazione anche di decine di watt
• ………
6
Il µC invece possiede su un unico chip:
•
•
•
•
•
•
Una CPU RISC
Una piccola memoria di programma (EPROM-EEPROM)
Una piccola memoria di lavoro RAM ( alcuni KB)
Porte di ingresso/uscita
Contatori, timer, convertitore A/D
Uart, Pwm, interfacce di comunicazione di vari tipi
Contiene cioè, sia quello che possiede un µP (anche se in quantità
molto ridotta), sia parti che il µP non possiede.
Ha ingombro minimo e richiede poca potenza di alimentazione.
7
8
9
RISC
significa :
Reduced Instruction Set Computing
Elaborazione con insieme di istruzioni ridotto.
Le istruzioni perciò :
• Sono poche decine
• Sono eseguite molto velocemente
• non serve un clock molto elevato per un efficiente
funzionamento ( dai 4-8 MHz per i tipi più semplici, fino a
33-50 MHz per i tipi più evoluti)
10
Le società più importanti che
producono microcontrollori
•
•
•
•
•
Microchip con la serie PIC
ST Microelectronics con la serie ST6TXX
Siemens con la serie di microcontrollori 80C165/6/7
Motorola con la serie 68HCXX
Hitachi con la serie H8/300H
11
Il microcontrollore più diffuso è il
PIC16F84 della Microchip Technology
PIC = Peripheral Interface Controller
(Controllore di periferiche programmabile)
La sua caratteristica più importante sta nella sigla F :
Il programma risiede in una EEPROM FLASH
( Electrically Erasable Programmable Read only Memory )
è modificabile immediatamente anche senza togliere
l’integrato dal circuito (modalità : in-circuit )
12
Schema sintetico del PIC :
• Flash Program memory
• Program Counter
• Instruction Register
• RAM File Registers
• Address Mux
• ALU
• W register (accumulatore)
• I/O Ports
13
Alcune sezioni del µC
• Program Counter : contatore che punta alla successiva
istruzione da eseguire tra quelle contenute nel Program
Memory
• Instruction Register : registro che contiene le istruzioni
eseguibili; le confronta con il Program Memory e le dà per
l’esecuzione alla ALU
• ALU : esegue calcoli matematici e logici sui dati in
ingresso e deposita i risultati di calcolo nell’Accumulatore
14
Il PIC16F84
CARATTERISTICHE :
• Set di 35 istruzioni a 14 bit, eseguite ognuna in 4 cicli di clock
• Bus dati a 8 bit
• Clock fino a 20 MHz
• Memoria di programma EEPROM: 1024 locazioni da 14 bit
• 36 registri da 8 bit
• 15 registri specializzati
• 68 byte di EEPROM dati memorizzabili
15
Il PIC16F84
Altre caratteristiche :
• Stack a 8 livelli ( consente il richiamo di subroutine )
• 13 linee di I/O divise in due porte :
porta A : RA0-RA4 (5 bit)
porta B : RB0-RB7 (8 bit)
Le porte forniscono : 25 mA in sink 20 mA in source
(RA4 solo sink)
• Contatore – temporizzatore programmabile a 8 bit con
prescaler a 8 bit
• Linee di interrupt sulla porta B
16
Il PIC16F84
Altre caratteristiche :
• autoreset all’accensione.
• La possibilità di stare in modo SLEEP ( a bassissimo consumo)
• Il codice del programma può essere reso inaccessibile alla
lettura.
• Un Watch-dog Timer (temporizzatore “cane da guardia”) che evita
il blocco del funzionamento.
17
Pin function - piedinatura
• OSC1/CLKIN : oscillator
crystal input
• OSC2/CLKOUT : oscillator
crystal output
• MCLR : master clear (reset)
• RA0 – RA4 : 5 linee porta A
• RB0 – RB7 : 8 linee porta B
• Vss : massa
• Vdd : alimentazione positiva
18
Oscillatore a quarzo per il clock
L’oscillatore del PIC può
funzionare in quattro modi :
LP Low Power Crystal
32 KHz – 200 KHz
XT Crystal/Resonator
100 KHz – 4 MHz
HS High Speed
Crystal/Resonator
8 MHz – 20 MHz
RC Resistor Capacitor
Si può usare un quarzo o un
risonatore ceramico, a varie
frequenze, oppure un circuito RC
con scarsa precisione in frequenza.
Occorre scegliere un modo, sia per
costruire il circuito, sia per
impostare le opzioni del dispositivo
programmatore : l’opzione più
comune è XT .
19
La struttura interna e i registri del
PIC 16F84
20
La memoria interna del pic16F84
• Ci sono 2 tipi di memoria:
– La Memoria del Programma (Program Memory)
di tipo EEPROM, con 1024 locazioni da 14 bit ciascuna (0000h a
03FFh).
– La Memoria dei Dati (Data Memory),
a sua volta suddivisa in:
– Memoria RAM di uso generale
– Registri con Funzioni Speciali (SFR),
(di tipo static RAM)
– Memoria dati di tipo EEPROM (64 bytes)
21
I registri mappati in memoria (1)
I registri (chiamati Register
File) sono celle, locazioni, di
memoria dove il µC legge e
scrive valori fondamentali per
il funzionamento. Sono celle
che hanno un indirizzo
esadecimale ( h ) ; si dice che
sono mappati in memoria.
Ad esempio
scrivendo/leggendo nelle
locazioni 05h e 06h si
scrive/legge nelle porte A e B.
22
I registri mappati in memoria (2)
Se si programma il PIC in
linguaggio macchina
(Assembler) occorre
precisare molti dettagli
per i registri, con
istruzioni da mettere
all’inizio del programma.
Se si usa un linguaggio
ad alto livello (Basic), le
istruzioni da aggiungere
sono minori. Tuttavia la
mappa di memoria ( cioè
l’allocazione dei registri)
deve sempre essere
conosciuta.
23
La programmazione del PIC in linguaggio Assembler
Il programma per il PIC si può scrivere in linguaggio
assembly o assembler , usando direttamente le 35
istruzioni riconosciute dal PIC.
Il programma si scrive come un file di testo . Esso
viene convertito in codice binario da un programma
chiamato Assemblatore. Il file creato contiene
codici esadecimali e ha estensione .HEX
Per trasferire poi il file HEX nella memoria di
programma del PIC occorre un dispositivo chiamato
Programmatore
Si usa un Personal Computer :
• per scrivere il testo del programma ,con un editor
di testi ( non usando Word ! )
• per convertirlo in codice eseguibile, usando
l’Assemblatore
• per scriverlo nel PIC, usando un Programmatore.
24
La programmazione del PIC in linguaggio Assembler
La casa costruttrice Microchip fornisce un
pacchetto integrato chiamato MPLAB che
si scarica gratuitamente da internet.
Esso comprende :
MPLAB Editor : editor di testo per
scrivere il testo del programma
MPASM : il compilatore che traduce il
testo in codice eseguibile (usando il codice
esadecimale)
25
La programmazione del PIC in linguaggio ad alto livello
Il programma per il PIC si può scrivere usando un Compilatore ad alto
livello , ossia un software che usa istruzioni a livello più elevato , per
velocizzare e facilitare la stesura del programma .
Il Compilatore può essere
• in linguaggio BASIC ( ad esempio il PicBasic)
• in linguaggio C
• di tipo grafico, ossia che usa simboli grafici al posto delle istruzioni. Ad
esempio usa il simbolo di una porta AND al posto dell’istruzione
assembler equivalente . Due esempi di compilatori grafici sono il Visual
Parsic e il Proton+.
I compilatori devono essere acquistati ; i più semplici in Basic o C sono
a basso costo o anche freeware. Un ottimo compilatore c++ è il PICLITE
della HiTech, che offre una versione di prova detta Lite , cioè con
condizioni limitate .
26
Programmazione fisica del PIC (1)
La famiglia PIC16F8X , che comprende il 16F84, il 16F877
ecc. , può essere programmata :
• separatamente, con un Programmatore
• direttamente, mentre si trova già montato nel circuito
finale , aggiungendo nello schema del progetto un adatto
connettore in più ( programmazione in-circuit)
Dato che il PIC ha una memoria Flash di programma,
sono possibili veloci variazioni o aggiornamenti del
codice programma.
27
Programmazione fisica del PIC (2)
Dopo aver scritto il programma , cioè il codice sorgente, lo si compila
con il MPASM : viene creato un file oggetto con estensione .HEX, il
quale deve essere caricato nella memoria di programma del PIC,
inserito in uno zoccolo del programmatore ( sistema out of circuit).
Per caricare il file .HEX nella memoria programma del PIC occorre:
• Un personal computer
• Un programmatore
• Il software di gestione del programmatore
28
Il Programmatore industriale PICSTART plus
Un insieme completo e di
livello professionale è il
PICSTART Plus fornito dalla
stessa casa costruttrice
Microchip Inc.
Svantaggio : alto costo
Vantaggio : è aggiornabile
agli ultimi modelli
Microchip
Esistono molti programmatori industriali di terze parti, a costo minore,
o di tipo hobbystico, già pronti o in kit da costruire.
In genere se sono di basso costo, programmano solo alcuni tipi di PIC
e non sono aggiornabili agli ultimi modelli.
29
Demoboard
Dopo aver programmato il PIC, si può usare una scheda di valutazione
o dimostrativa per controllare l’esattezza del programma.
Una demoboard contiene alcuni semplici dispositivi di ingresso
(pulsanti ad esempio) e di uscita ( led, relè) e si usa in genere per
apprendere i fondamenti della programmazione.
Esistono demoboard molto sofisticate e costose ( con sensori di
temperatura, interfacce di vario tipo, display alfanumerici e grafici) e
altre di costo limitato.
Dato che la frequenza di clock è di pochi MHz, i circuiti con PIC si
possono montare, con qualche precauzione, anche su breadboard
millefori senza saldatura.
30
Demoboard ( 2 )
La demoboard FT215-K
in scatola di montaggio
contiene :
• 8 led
• 1 display LCD
• 1 tastiera a matrice
• 1 display a 7 segmenti,
• 2 pulsanti,
• 2 relè,
• 1 cicalino piezo
tutti controllabili dal PIC per
verificare immediatamente il
programma appena
memorizzato
.
31
DEMOBOARD (per un PIC16F877)
Contiene anche una breadboard per piccoli montaggi senza saldature
32
Applicazioni…Robotiche!
E’ impossibile fare un elenco. Sono moltissime, sparse in tutto il
Web. Esistono decine e decine di siti dedicati all’uso del PIC,
con circuiti provati, corsi di programmazione , software di
supporto ecc.
Una applicazione affascinante
è l’uso di una scheda PIC per
controllare un piccolo Robot.
Esistono anche gare di abilità
con robot programmati ( che
percorrono labirinti, che
giocano a calcio.......)
33