La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione ai Microcontrollori

Presentazioni simili


Presentazione sul tema: "Introduzione ai Microcontrollori"— Transcript della presentazione:

1 Introduzione ai Microcontrollori
Una prima definizione I microcontrollori sono utilizzati per gestire segnali in ingresso (input utente o da sensori), elaborare le informazioni acquisite e controllare di conseguenza un insieme più o meno vario di attuatori e dispositivi di output

2 I microcontrollori nelle nostre case
Sistemi antifurto televisori videoregistratori cronotermostati nei telefoni I microcontrollori nelle nostre auto sistemi di chiusure delle portiere iniezione di carburante ABS climatizzatore airbag navigatori satellitari

3 Architettura di un microcontrollore
ALU Logica di Controllo Alimentazione Piedini I/O Clock Memoria L’architettura è molto simile a quella di un microprocessore con una differenza sostanziale Il microntrollore integra al proprio interno tutti, o quasi, questi elementi In un sistema a microprocessore queste componenti sono separate e comunicano attraverso uno o più bus

4 Le famiglie di micro Micro embedded Micro con memoria esterna DSP
Differiscono per Utilizzo Numero periferiche integrate

5 I micro embedded Tutte le componenti sono integrate
(ALU, RAM, EEPROM, I/O, clock) Potenza di calcolo limitata economici ALU Logica di Controllo Memoria

6 I micro con memoria esterna
RAM interna e capacità di interfacciare banchi esterni Algoritmi complessi Maggiore complessità nella progettazione ALU Logica di Controllo Memoria Memoria

7 Digital Signal Processor
ALU molto efficiente Convertitore AD Vengono utilizzati per applicazioni Real Time

8 Gran numero di istruzioni Servono a compiti di particolare difficoltà
I micro CISC Complex Instruction Set Computer Gran numero di istruzioni Servono a compiti di particolare difficoltà Ogni istruzione ha un suo proprio tempo di esecuzione (numero di periodi) I micro RISC Reduced Instruction Set Computer Set di istruzioni limitato È compito del programmatore implementare algoritmi complessi Tutte le istruzione hanno lo stesso tempo di esecuzione (numero di periodi)

9 Il microprocessore PIC 16F84
Architettura Harvard Memoria di programma 1024 righe da 14 bit (EEPROM program memory) Memoria dati 36 celle da 8 bit (RAM) Registri speciali 15 celle da 8 bit (RAM) Registro accumulatore W È di tipo RISC Il set di istruzioni è composto da solo 35 istruzioni Ogni istruzione 1 ciclo macchina, pari a 4 periodi Solo le istruzioni di salto richiedono 2 cicli macchina cioè 8 periodi

10 Il microprocessore PIC
È di tipo RISC Il set di istruzioni è composto da solo 35 istruzioni Ogni istruzione 1 ciclo macchina pari a 4 periodi Solo le istruzioni di salto richiedono 2 cicli macchina cioè 8 periodi

11 Architettura Harvard ALU Logica di Controllo Memoria istruzioni
La fase di Fetch carica l’istruzione dalla memoria istruzione La fase di execute è interna alla cpu La fase di scrittura coinvolge cpu e memoria dati La fase di Fetch e la fase di scrittura coinvolgono dispositivi e bus diversi  possono avvenire in contemporanea Consideriamo un’applicazione che in loop Legge un’istruzione - fase di Fetch (F) L’esegue – fase di execute (E) Scrive il risultato in memoria (S) ALU Logica di Controllo Memoria istruzioni Memoria dati Fetch F1 F2 F3 F4 Execute E1 E2 E3 Scrittura S1 S2

12 Le memorie dei microcontrollori
Memoria delle variabili (file register) Di tipo RAM Memorizza variabili È estremamente ridotta Memoria codice (program memory) Di tipo EEPROM flash (più facilmente aggiornabile) Memorizza le istruzioni del programma Dimensione: qualche kilobyte Memoria dati Di tipo EEPROM Serve a mantenere informazioni anche in assenza di alimentazione (es. taratura o personalizzazione) Dimensioni molto ridotte (64 byte x 8 bit nel PIC 16F84) Memoria esterna Solo nei micro a memoria esterna

13 Memoria codice (program memory)
Il PIC16F84A Memoria codice (program memory) Memoria di tipo EEPROM flash Non è modificabile run-time 1Kbyte x 14 bit 1024 righe (un programma può contenere al più 1024 istruzioni) 14 bit (ogni istruzione è codificata con 14 bit ed occupa 1 sola parola) Da 000H a 3FFH La cella 000 contiene la prima istruzione da eseguire dopo il reset (RESET VECTOR) ORG 0x00 La cella 0004 contiene la prima istruzione da eseguire dopo l’interrupt (INTERRUPT VECTOR)

14 Memoria variabile (register file)
Il PIC16F84A Memoria variabile (register file) Memoria di tipo RAM Modificabile run-time Organizzata in due banchi Si può accedere ad un solo banco alla volta selezionandolo con il bit5 del registro STATUS Registri di uso speciale a 8 bit Banco 0 00H-0BH Banco 1 80H-8BH Registri di uso generale a 8 bit Banco 0 0CH-4FH (68 byte)

15 Registri di uso speciale
Il PIC16F84A Registri di uso speciale W STATUS TRISA, TRISB PORTA, PORTB OPTION INTCON PCL TMR0

16 Il registro W (accumulatore)
Il PIC16F84A Il registro W (accumulatore) È l’unico registro ad avere accesso diretto  tutte le operazioni di caricamento devono necessariamente coinvolgere W Se ad esempio voglio caricare un valore nel file register all’indirizzo 0C devo Caricare il valore su W Copiare il contenuto di W in 0C Esempio: MOVLW 120 ;carica 120 in W MOVWF 0Ch ;copia W in 0CH MOVLW 120 ;carica 120 in W MOVWF PORTB ;copia W in PORTB

17 Il PIC16F84A Il registro STATUS

18 Il PIC16F84A I registri PORTA e TRISA BSF STATUS, RP0 ; Select Bank 1
MOVLW 0x0F ; scrivi in W MOVWF TRISA ; Scrivi W in TRISA Set RA<3:0> as inputs; RA4 as output BCF STATUS, RP0 I registri PORTA e TRISA

19 Il PIC16F84A I registri PORTB e TRISB BSF STATUS, RP0 ; Select Bank 1
MOVLW 0xFF ; scrivi in W MOVWF TRISA ; Scrivi W in TRISA Set RB0-RB7 come input BCF STATUS, RP0 I registri PORTB e TRISB

20 Il PIC16F84A Il registro OPTION

21 Il PIC16F84A Il registro INTCON

22 Il PIC16F84A Il registro TMR0
Il modulo Timer 0 è un timer/counter con le seguenti caratteristiche: • Timer/Counter a 8 bit • Il registro TMR0 del contatore può essere scritto e letto • Sorgente di clock selezionabile (interna oppure esterna) • Fronte di conteggio del clock esterno selezionabile (salita o discesa) • Prescaler a 8 bit programmabile via software • Possibilità di generare interruzioni quando il contatore va in overflow

23 Il byte meno significativo (Low) si chiama PCL register
Il PIC16F84A Il registro PCL Il Program Counter (PC) contiene l’indirizzo della prossima istruzione che deve essere eseguita È costituito da 13 bit Il byte meno significativo (Low) si chiama PCL register Il byte più significativo (High) si chiama PCH register Il registro può essere letto e scritto

24 La programmazione del PIC16F84A

25 Set Istruzioni Processore RISC (Reduced Instruction Set Computer)
35 istruzioni base (assembler del PIC 16F84A) Le istruzioni sono strutturate mnemonico operando (o operandi) esempio: MOVWF TRISB ; metti W in TRISB BCF PORTA, 4 ; metti a 0 bit 4 di PORTA Tempo di esecuzione di una istruzione 1 ciclo macchina (4 periodi di clock) 2 cicli macchina per le istruzioni di salto esempio: se la fCk= 1MHz si ha TCk=1 s e quindi il PIC 16F84A impiega 4s per eseguire una singola istruzione

26 Esempi Configurazione PORTO B Coinvolge i registri W e TRISB (banco 1)
Definisce la direzione (input/output) delle singole linee della porta. NON effettua operazioni di I/O W TRISB B MOVLW B' ' ; W MOVWF TRISB ; TRISB W Configuro i bit 0,1 come ingressi, gli altri come uscite del registro PORTB; di conseguenza i pin RB0,RB1 sono utilizzati per acquisire due bit, i pin RB2-RB7 sono usati come output

27 Esempi Output dati su PORT B Input dati da PORT B
Coinvolge i registri W e PORTB (banco 0) Copia il dato memorizzato in W in PORTB Effettua una operazione di output MOVWF PORTB ; PORTB W W PORTB Input dati da PORT B Coinvolge i registri W e PORTA (banco 0) Legge i dati da PORTB e li memorizza in W Effettua una operazione di input MOVF PORTB,W ; W PORTB PORTB W

28 Esempi Selezione If-Then
IF <condizione> THEN salta l’istruzione successiva ELSE esegue istruzione successiva Esempio: se bit5 di PORTB è 0 allora salta l’istruzione altrimenti esegui l’istruzione successiva BTFSC PORTB, 5 ; salta se PORTB(5)=0 BCF PORTB, 5 ; PORTB(5) istruzione condizione V F

29 Selezione If-Then-Else
Esempi Selezione If-Then-Else SE <condizione> ALLORA esegue istruzioni 1 ALTRIMENTI esegue istruzioni 2 Esempio: se bit5 di PORTB è 0 allora metti a 1 il bit0 di PORTB altrimenti mettilo a zero IF BTFSC PORTB, 5 ;(IF) salta se PORTB(5)=0 GOTO ELSE BSF PORTB, 0 ;(Then) PORTB(0) GOTO END_IF ELSE BCF PORTB, 0 ;(Else) PORTB(0) END_IF GOTO MAIN V F Istruzioni 2 Else Then Istruzioni 1 goto EndIf condizione EndIf goto Else

30 Occorre una variabile contatore Ad ogni ciclo:
Esempi Cicli Repeat-Until Occorre una variabile contatore Ad ogni ciclo: Si eseguono le istruzioni Si decrementa il contatore Si verifica se il contatore vale 0; se non è zero si ripete il ciclo Esempio: Ripetere 5 volte il blocco “istruzioni” CONT EQU 0CH ; cont nella locazione 0CH MOVLW 5 ; W MOVWF CONT ; CONT W LOOP ; inizio ciclo (REPEAT) ISTR ; blocco istruzioni DECFSZ CONT, 1 ; CONT CONT – 1 ; ESCI se CONT=0 GOTO LOOP ; fine ciclo (UNTIL) V F cont := cont - 1 InizioCiclo istruzioni cont := n goto InizioCiclo cont = 0 ?

31 CALL <sottoprogramma>
Esempi Sottoprogrammi CALL <sottoprogramma> return Sottoprogramma Istruzioni 2 call Sottoprogramma Istruzioni 3 Istruzioni 1 Programma principale Esempio: Il sottoprogramma esegue 256 cicli senza fare nulla generando un ritardo temporale … istruzioni 1 CALL CIAO ; chiama sottoprogramma … istruzioni 2 CIAO … istruzioni 3 ; inizio sottoprogramma RETURN ; fine sottoprogramma


Scaricare ppt "Introduzione ai Microcontrollori"

Presentazioni simili


Annunci Google