UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORIgiovannigulli.altervista.org/PRESENTAZIONE DEI...

33
1 UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI

Transcript of UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORIgiovannigulli.altervista.org/PRESENTAZIONE DEI...

1

UNA INTRODUZIONE

AL MONDO DEI

MICROCONTROLLORI

2

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

3

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.

4

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)

5

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 ingresso-uscita)

6

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

• ………

7

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.

8

9

10

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)

11

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

12

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 )

13

Schema sintetico del PIC :

• Flash Program memory

• Program Counter

• Instruction Register

• RAM File Registers

• Address Mux

• ALU

• W register (accumulatore)

• I/O Ports

14

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

15

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

16

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

17

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.

18

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

19

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 .

20

La struttura interna e i registri del

PIC 16F84

21

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)

22

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.

23

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.

24

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.

La programmazione del PIC in linguaggio Assembler

25

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)

La programmazione del PIC in linguaggio Assembler

26

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 .

La programmazione del PIC in linguaggio ad alto livello

27

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.

28

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

Programmazione fisica del PIC (2)

29

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.

30

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.

31

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

.

32

DEMOBOARD (per un PIC16F877)

Contiene anche una breadboard per piccoli montaggi senza saldature

33

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