Introduzione ai Microcontrollori

Slides:



Advertisements
Presentazioni simili
La struttura fisica e logica di un elaboratore
Advertisements

IL MICROCONTROLLORE PIC16F84A
MICROCONTROLLORI Di Tiziano Ragazzi.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Il livello Microarchitetturale
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Architettura dell’elaboratore
ELETTRONICA DIGITALE (II Parte)
L' ARCHITETTURA DI VON NEUMANN
Architettura del calcolatore
Unità centrale di processo
WATCHDOG TIMER E’ un oscillatore interno al  C, ma indipendente dal resto dei circuiti, il cui scopo è quello di rilevare eventuali blocchi della CPU.
Calcolatori Elettronici Il Processore
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Architettura di un calcolatore e linguaggio macchina.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Vediamo com'è fatto internamente un microcontrollore PIC, quali dispositivi contiene e come interagiscono tra loro. Nella figura seguente viene riprodotto.
sul Microcontrollore 16F84
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Informatica Applicata Lezione 7 Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De Vito.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Corso di Informatica Applicata - Lezione 4 - © 2005 Saverio De Vito Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Introduzione ai Microcontrollori Una prima definizione I microcontrollori sono utilizzati per gestire segnali in ingresso (input utente o da sensori),
Acquisizione dati con ADC 0831 e PIC 16F84
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
Z iLOG 80 Calcolatori Elettronici Bartolomeo Bajic.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI LINGUAGGIO MACCHINA.
© 2007 SEI-Società Editrice Internazionale, Apogeo
PRESENTAZIONE di RICCARDO
Introduzione all’Informatica
Architettura dei calcolatori
Architettura e funzionalità
ASSEMBLY Seconda parte.
Pic16f84 Assembly I/O.
LE ARCHITETTURE NON VON NEUMANN
Microcontrollori e microprocessori
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
Cammino dei Dati (Datapath)
STRUTTURA GENERALE DI UN ELABORATORE
Programmazione strutturata
Introduzione I microcontrollori.
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
Architetture non Von Neumann
Architettura dei calcolatori
componenti di un computer Roma – ATA “E. Sereni” – 1 agosto 2016
ALU (Arithmetic Logic Unit)
Architettura del calcolatore
Introduzione L’8254 è un interval timer event/counter, progettato per risolvere i problemi del controllo del timing, comuni ad ogni microcomputer. E’ costituito.
IL MODELLO DI VON NEUMANN
Controllo e microprogrammazione
Classe III A A.s – 2012 Programma di Informatica
Azione delle istruzioni
LOGICA DI FUNZIONAMENTO
Azione delle istruzioni
Programmazione e Laboratorio di Programmazione
Unità 1 Programmi base.
Lezione Terza Primi passi di programmazione
Programmazione e Laboratorio di Programmazione
Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Relazioni tra CPU e Memoria e Dispositivi I/O
Transcript della presentazione:

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

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

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

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

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

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

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

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)

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

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

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

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

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)

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)

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

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

Il PIC16F84A Il registro STATUS

Il PIC16F84A I registri PORTA e TRISA BSF STATUS, RP0 ; Select Bank 1 MOVLW 0x0F ; scrivi 00001111 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

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

Il PIC16F84A Il registro OPTION

Il PIC16F84A Il registro INTCON

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

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

La programmazione del PIC16F84A

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

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 00000011B MOVLW B'00000011' ; W 00000011 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

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

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) 0 istruzione condizione V F

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) 0 GOTO END_IF ELSE BCF PORTB, 0 ;(Else) PORTB(0) 0 END_IF GOTO MAIN V F Istruzioni 2 Else Then Istruzioni 1 goto EndIf condizione EndIf goto Else

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 5 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 ?

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