Architettura dei Microcontrollori Microchip PIC18F

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Architettura dei Microcontrollori Microchip PIC18F"

Transcript

1 Architettura dei Microcontrollori Microchip PIC18F A. Romani Elettronica dei Sistemi Digitali L-A

2 Cos è un microcontrollore? Differenza tra Microprocessore e Microcontrollore à Microprocessore: normalmente si intende un dispositivo limitato alla sola CPU, che richiede memoria, clock e componenti/periferiche esterni (maggior complessità di progetto) Es. Intel x86 à Microcontrollore: normalmente si intende un sistema incluso in un unico package che comprende una CPU, memoria (RAM, ROM/Flash), periferiche digitali (registri I/O, timer, etc.) e analogiche (ADC, comparatori, etc.), oscillatori per generare il clock, etc. Es. Microchip PIC, Texas Instruments MSP430, etc. MCU = Micro-Controller Unit

3 Architettura di un Microcontrollore Una MCU PIC contiene: à datapath con ALU à decoder per POCHE istruzioni. à Oscillatori/PLL per la generazione del clock à Registri generali (RAM) à Registri con funzioni speciali (SFR) à Interrupt Controller à RAM per dati. à FLASH per codice. à Porte di I/O digitale. à Altre periferiche Timer interno AD Converter USART (seriale) SPI/I2C PWM EEPROM dati

4 Microcontrollori Microchip PIC18 Con pochissimi componenti esterni e poche righe di programma si può ottenere un SISTEMA COMPLETO FUNZIONANTE. Facilità di lavoro à Semplice montaggio su scheda à E tutto dentro (anche il clock!) à Non serve progettare una MotherBoard! Programmazione à Assembler con poche, semplici istruzioni à Disponibili compilatori C, basic, Una volta programmato VA! Limiti nelle prestazioni à c e quello che c è (RAM e frequenza limitate) à potenza di calcolo limitata

5 MCU Microchip Diverse famiglie di Microcontrollori à 8, 16, 32 bit Ogni famiglia è composta da numerosi componenti, distinti per: à Memoria dati à Memoria codice à Periferiche à Frequenza di clock à Consumi di potenza

6 Famiglia PIC18 Caratteristiche: à Architettura a 8 bit à Instruction word a 16 bit à Architettura di memoria Harvard Frequenza massima: à 32MHz 64MHz (Internal PLL x4) Memoria codice: à 4KB 128KB Costo: à 1.20$ $ Data EEPROM à 0B 1024B Numero di pin: à pin Tensione di lavoro: à 1.8V 5.5V

7 PIC18 Part numbering Es. condizioni di utilizzo tipo di package PIC18F I/PT memoria codice flash 1 = 18 pin 2 = 28 pin 4 = 40/44 pin 6 = 64 pin 8 = 80 pin 2 1 = 2K bytes 2 2 = 4K bytes 2 3 = 8K bytes 2 4 = 16K bytes 2 5 = 32K bytes 2 6 = 64K bytes 2 7 = 128K bytes

8 Architettura di memoria I PIC18 includono 3 tipi di memoria: à Memoria codice (max 128KB) programma dati permanenti (es. da ricopiare in RAM durante l esecuzione) à Memoria dati RAM (max 3968B) dati temporanei à Memoria E 2 PROM (max 1024B) Mem Flash Codice dati permanenti bus istruzioni CPU bus dati RAM dati periferiche EEPROM

9 Architettura Data-path Esecuzione controllata da un clock a 4 fasi non sovrapposte Struttura della pipeline: à à A regime viene completata un istruzione ogni 4 cicli di clock (eccetto branch). Latenza 8 cicli di clock. MIPS = f CK (MHz)/4

10 PIC18 Spazio di indirizzamento RAM dati vista come insieme di registri à (GPR, General Purpose Registers) Le periferiche sono accessibili attraverso registri di controllo à detti Special Function Register à mappati alle locazioni alte dello spazio di indirizzamento (quindi omogenei alla RAM) Indirizzamento à a 12 bit à A 8 bit + 4 bit per selezione banco

11 Programmazione C E il modo più semplice per programmare un microcontrollore I produttori forniscono Header files e Librerie per utilizzare il dispositivo à L header file definisce tutti i tipi e strutture dati necessarie alla programmazione, à Definisce costanti simboliche per accedere ai registri di controllo delle periferiche à Definisce costanti simboliche per i valori di configurazione dei registri di controllo Es. à /* Esempio programma C */ #include <p18f452.h> #include <adc.h> [ ]

12 Registri di controllo Solitamente l header file definisce nomi simbolici per i registri associandoli alla locazione di memoria corrispondente à es. #define PORTA (*((volatile unsigned char *) (0xF60))) à unsigned char: intero a 8 bit senza segno (0..255) à à à à volatile: keyword del linguaggio utilizzata per indicare al compilatore che la locazione di memoria può essere modificata anche da agenti esterni alla CPU (es. porta I/O in lettura da un pulsante esterno, o il valore di un timer, etc). Se non indicata il compilatore potrebbe fare caching sui registri interni e non rileggere dalla periferica il valore attuale. *: in C indica un puntatore, cioè un tipo di dato/variabile che contiene l indirizzo di una locazione di memoria (che contiene un intero senza segno a 8 bit in queto caso) (tipo di dato): in C indica l operazione di casting : cioè il valore o la variabile che seguono devono essere considerati dal compilatore come il tipo di dato entro parentesi. Es. 0xF60 da solo è un intero a 12 bit, ma con il casting (volatile unsigned char *) (0xF60) diventa un indirizzo di memoria a cui è contenuto un intero senza segno a 8 bit volatile. * in C indica anche l operatore di dereferenziazione. Deve essere seguito da un puntatore. Es. *p = 12; scrive il valore 12 nella locazione di memoria contenuta nella variabile p, definita magari come int *p; (puntatore a intero). Quindi: *( (volatile unsigned char *) (0xF60)) dereferenzia la locazione di memoria 0xF60 e quindi consente di leggere o scrivere a questo indirizzo, dove c è la porta di I/O A: à Es. *( (volatile unsigned char *) (0xF60)) = 12; // scrive 12 nel // registro PORTA variabile1 = *( (volatile unsigned char *) (0xF60)); //copia il valore // del registor PORTA in variabile1 #define simbolo espressione implementa una macro : cioè una sostituzione testuale nel listato della parola simbolo con espressione à Dunque per accedere alla locazione di memoria F60 dove c è la porta dati A basta usare il simbolo PORTA invece della espressione corrispondente; Es. PORTA = 0b ; //scrive 4 zeri e 4 uni nella porta di uscita A

13 Programmazione C Come deve essere impostato un programma per un microcontrollore? Deve essere gestito come un LOOP INFINITO à Es. Non c è uscita o ritorno dal programma: A chi dovrebbe ritornare il programma? E quando? à /* Esempio programma C */ #include <p18f452.h> #include <adc.h> void main(void) /* Inizializzazione dati e periferiche */ [ ] Ogni MCU ha il suo header file, poiché ha una diversa architettura interna! /* Loop principale */ while(1) [ ] Esistono header file anche per le periferiche più complesse

14 Esempio: Controllo di un semaforo pedonale Esempio di schematico Vdd PGC GND PGD VDD MCLR 5.6k Vdd 10k Vdd 10k 100nF 33pF 1k 1k 1k

15 Programmazione C Es. Controllo di un semaforo. à Supponiamo luci verde, gialla, rossa e pulsante collegate come in slide precedente #include <p18f452.h> #define VERDE PORTBbits.RB1 #define GIALLO PORTBbits.RB2 #define ROSSO PORTBbits.RB4 #define PULSANTE PORTBbits.RB5 extern void delay_ms(unsigned int millisec); void main(void) /* Inizializzazione *) TRISB = 0b ; // porta B tutta in output tranne //il bit 5 ROSSO = 0; GIALLO = 0; VERDE = 1; while(1) while (!PULSANTE) ; // il pulsante se premuto // manda a 1 il segnale // esterno ed esco dal loop GIALLO = 1; delay_ms(2000); VERDE = 0; GIALLO = 0; ROSSO = 1; delay_ms(30000); ROSSO = 0; VERDE = 1; Indica che l oggetto è definito in un altro modulo (già compilato) e che verrà agganciato nella fase di linking quando viene creato il file binario ( eseguibile )

16 PIC18 - Periferiche Porte I/O digitali: à Servono per Generare segnali digitali in uscita Leggere segnali digitali in ingresso à Registri di uscita (PORTx) collegati: al bus dati come periferiche (ogni reg. ha un suo indirizzo nello spazio di indirizzamento) ai pin del dispositivo in uscita à Registro di controllo (TRISx) Collegato al bus dati come periferica al suo spazio di indirizzamento à Registro di ingresso LAT o I/O pin

17 DATA BUS PIC18 - Periferiche Le porte di I/O sono raggruppate in registri a 8 bit, accessibili individualmente o in parallelo à PORTA, PORTB,, PORTE, etc. PORTB.RB0 PORTB.RB1 PORTB.RB7

18 Programmazione C Porte I/O Esempio: à /* 10MHz */ #include <p18f458.h> void MSDelay(unsigned int); void main(void) TRISB = 0x00; /* configura la porta B come 8 output */ while(1) /* loop infinito */ PORTB = 0b ; MSDelay(250); PORTB = 0b ; MSDelay(250); void MSDelay(unsigned int itime) unsigned int i; unsigned char j; for (i=0;i<itime;i++) for (j=0; j<165;j++); /* ritardo gestito contando le iterazioni comprese in 1 ms. */

19 PIC18 Convertitore A/D Periferica che converte grandezze analogiche (tensioni) in numeri binari

20 PIC18 Convertitore A/D Risoluzione: 10 bit 4-28 canali analogici Funzione di trasferimento Es. #define GODONE ADCON0bits.GO #define ADON ADCON0bits.ADON #define ADFM ADCON1bits.ADFM void ADC_Init(void) TRISA = 0b ; //1=input ADCON1 = 0b ; //1=digital //0=analog ADFM=1; //10 bit ADON=1; int ADC_Convert(void) GODONE=1; //faccio partire la //conversione e while(godone) //aspetto che //sia finita return (ADRESH<<8) ADRESL;

21 Scelta della frequenza di clock Diverse modalità 1. Quarzo esterno (quando è richiesta precisione o frequenza elevate) 2. Generatore di onda quadra esterno (es. quando lo stesso clock deve arrivare a più dispositivi) 3. Oscillatore con RC esterno (semplice ed economico ma non troppo preciso e stabile) 4. Oscillatore interno configurabile (non servono componenti esterni, ed è possibile solo un insieme limitato di frequenze)

22 Le interruzioni Un meccanismo molto potente nella programmazione dei microcontrollori è la gestione delle interruzioni (interrupt) à In risposta ad eventi esterni, il micro sospende l esecuzione del programma principale, esegue apposite routine di servizio, e poi ritorna all esecuzione principale à Es. Posso programmare una periferica Timer (contatori) per generare un interrupt ogni secondo. Il micro può ad es. avere un programma principale in cui legge dati continuamente da un sensore con l ADC e, ogni secondo grazie all interrupt, aggiornare un display con l indicazione dell ora.

23 Gestione delle interruzioni Al RESET il micro esegue l istruzione contenuta alla locazione 0000H (detta reset vector) Il RESET vector causa un salto all entry point main 0020H, il programma inizia ad essere eseguito Se durante l esecuzione si verifica un interrupt a bassa priorità il micro automaticamente salta all indirizzo 0018H ed esegue l istruzione ivi contenuta Un nuovo salto ci porta all indirizzo 0040H dove risiede la procedura di gestione degli interrupt Verificando i FLAG è possibile capire quale periferica ha fatto scattare l interruzione, per poi eseguire la routine corrispondente Terminata la routine di gestione il micro ritorna al punto del programma in cui era stato interrotto indirizzo 0000H 0008H 0018H 0020H 0040H memoria codice GOTO 0020H GOTO 0040H GOTO 0040H main: inizializzazioni; GIE=1; while (1) main loop; Check interrupt flag if TMRIF==1 Routine_Timer; if ADCIF==1; Routine_ADC; reset vector High priority int. vector Low priority int. vector main program start

24 Gestione delle interruzioni Esempio #include <p18c452.h> void main (void); void InterruptHandlerHigh (void); // Definisco l high priority interrupt vector #pragma code InterruptVectorHigh = 0x08 void InterruptVectorHigh (void) _asm goto InterruptHandlerHigh //jump to interrupt routine _endasm // Definisco la routine di servizio #pragma code #pragma interrupt InterruptHandlerHigh void InterruptHandlerHigh () if (INTCONbits.TMR0IF) //check for TMR0 overflow INTCONbits.TMR0IF = 0; //clear int.flag Flags.Bit.Timeout = 1; //indicate timeout LATBbits.LATB0 =!LATBbits.LATB0; //toggle LED on RB0 union struct unsigned Timeout:1; TMR0 timeout unsigned None:7; Bit; unsigned char Byte; Flags; // // Main routine //flag to indicate a Void main () // Inizializzazioni Flags.Byte = 0; INTCON = 0x20; //disable global and enable TMR0 interrupt INTCON2 = 0x84; //TMR0 high priority RCONbits.IPEN = 1; //enable priority levels TMR0H = 0; //clear timer TMR0L = 0; //clear timer T0CON = 0x82; //set up timer0 - prescaler 1:8 INTCONbits.GIEH = 1; //enable interrupts TRISB = 0; while (1) if (Flags.Bit.Timeout == 1) //timeout? Flags.Bit.Timeout = 0; //clear timeout indicor LATBbits.LATB7 = LATBbits.LATB0; //copy LED state from RB0 to RB7

Architettura del PIC 18F452

Architettura del PIC 18F452 Controllo Digitale a.a. 2005-2006 Architettura del PIC 18F452 Ing. Federica Pascucci PIC 18F452 Caratteristiche Frequenza operativa: 40 MHz Memorie: Program FLASH memory: 32 KBytes, 16 K-istruzioni memorizzabili

Dettagli

8 Microcontrollori PIC

8 Microcontrollori PIC 8 Microcontrollori PIC 8.1 Descrizione generale Un microcontrollore è un dispositivo elettronico che opportunamente programmato è in grado di svolgere diverse funzioni in modo autonomo. Essenzialmente

Dettagli

INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI

INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI LUCIDI LEZIONI SISTEMI ELETTRONICI INDUSTRIALI www.dismi.unimo.it (People Associated Pavan ) www.microchip.com com (Datasheet PIC - DS30292) (Mid Range Family Manual DS33023) Università degli Studi di

Dettagli

09-05-07. Introduzione ai microcontrollori PIC

09-05-07. Introduzione ai microcontrollori PIC 09-05-07 Introduzione ai microcontrollori PIC Daniele Beninato: Nicola Trivellin: [email protected] [email protected] Che cosa è un microcontrollore? Un microcontrollore è un sistema a microprocessore

Dettagli

introduzione I MICROCONTROLLORI

introduzione I MICROCONTROLLORI introduzione I MICROCONTROLLORI Definizione Un microcontrollore è un dispositivo elettronico programmabile Può svolgere autonomamente diverse funzioni in base al programma in esso implementato Non è la

Dettagli

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON0... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON...

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON0... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON... A/D CON PIC 16F877 Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON... 7 ESEMPIO 1... 7 ADCON1... 8 ADFM... 8 PGF3, PGF1 E PGF0... 9 ESEMPIO

Dettagli

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S. 2007 2008. Microcontrollori Microchip PIC 8 bit. namoroso@mrscuole.

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S. 2007 2008. Microcontrollori Microchip PIC 8 bit. namoroso@mrscuole. Corso introduttivo sui microcontrollori A. S. 2007 2008 Microcontrollori Microchip PIC 8 bit Nicola Amoroso [email protected] NA L2 1 Microcontrollori Microchip PIC 8 bit PIC: Peripheral Interface

Dettagli

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 7 Ing. Saverio De Vito e-mail: [email protected] Tel.: +39

Dettagli

Davide Gennaretti, Matteo Nicolini

Davide Gennaretti, Matteo Nicolini Seminario sui Microcontrollori Davide Gennaretti, Matteo Nicolini AA 2003-04 II Facoltà di Ingegneria Elettronica Cesena Cosa sono i microcontrollori? Piccoli computer concentrati in un chip Un Datapath

Dettagli

Lezione 8. Figura 1. Configurazione del registro INTCON

Lezione 8. Figura 1. Configurazione del registro INTCON Lezione 8 In questa puntata, ci dedicheremo all'impiego dei cosiddetti "interrupt", che tanto incutono temore ai più inesperti. Ma che cosa sono questi interrupt? Come abbiamo già visto, un programma non

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania [email protected] http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Il sensore ad ultrasuoni

Il sensore ad ultrasuoni Il sensore ad ultrasuoni Caratteristiche elettriche Alimentazione: 5 Vcc Il sensore rileva oggetti da 0 cm fino a 6,45 metri. Tre diverse possibiltà per leggere il dato di uscita del sensore: 1. lettura

Dettagli

I PIC Partendo da Zero By link_89

I PIC Partendo da Zero By link_89 I PIC Partendo da Zero By link_89 Indice: 1. Introduzione 2. Che cosa serve 3. I più usati 4. I registri 5. Il Primo progetto Introduzione Con questa guida non pretendo di insegnarvi a usare perfettamente

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18.

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18. Tutorial Embedded Software Sviluppo di uno Scheduler di base per PIC18 Pagina 1 Sommario 1. INTRODUZIONE... 3 2. COSA CI SERVE?... 3 3. UN PO DI TEORIA... 4 4. DALLA TEORIA ALLA PRATICA... 5 5. IMPLEMENTAZIONE...

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggio C. Fondamenti. Struttura di un programma. Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Che cos è la barriera luminosa?

Che cos è la barriera luminosa? BARRIERA LUMINOSA Che cos è la barriera luminosa? Pezzi da contare Diodo IR o Laser (emittente) Pezzi contati Direzione del nastro trasportatore FOTODIODO (ricevitore) Direzione del nastro trasportatore

Dettagli

I microcontrollori. In sostanza i pic hanno le seguenti caratteristiche:

I microcontrollori. In sostanza i pic hanno le seguenti caratteristiche: I microcontrollori Con il termine di microcontrollori si intende un sistema integrato simile ad un microprocessore ma contente su un unico chip oltre la CPU, anche la memoria RAM, memoria dati, memoria

Dettagli

Sistemi Elettronici #1. Sistemi Elettronici. Definizioni e concetti generali. Sistemi Elettronici Laurea Triennale in Elettronica A.A.

Sistemi Elettronici #1. Sistemi Elettronici. Definizioni e concetti generali. Sistemi Elettronici Laurea Triennale in Elettronica A.A. Sistemi Elettronici Definizioni e concetti generali Concetti generali Il microcontrollore è un dispositivo che raggruppa su un unico chip un processore ed un insieme di dispositivi CPU Memoria RAM Memoria

Dettagli

Architettura degli elaboratori (A)

Architettura degli elaboratori (A) Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

L architettura di riferimento

L architettura di riferimento Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

Categorie di sistemi Digitali

Categorie di sistemi Digitali Vivian Marco 3isc AS 2007/08 Categorie di sistemi Digitali A Logica cablata Il comportamento di questi sistemi è legato dalla loro struttura fisica. Se si desidera modificarne il comportamento è necessario

Dettagli

Corso Base Arduino ed Elettronica

Corso Base Arduino ed Elettronica Corso Base Arduino ed Elettronica Secondo incontro Saldatura e Relatore: Roberto Beligni [email protected] L'ambiente di sviluppo L'ambiente di sviluppo di Arduino (Chiamato IDE) facilita la

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Capitolo. Interfacciamento di periferiche I/O con il PC. 1.1 Il BUS di espansione del PC

Capitolo. Interfacciamento di periferiche I/O con il PC. 1.1 Il BUS di espansione del PC Capitolo 1 Interfacciamento di periferiche I/O con il PC 1.1 Il BUS di espansione del PC 1.2 Interfacciamento di periferiche I/O con il PC, con dispositivi non programmabili 1.3 Istruzioni per leggere

Dettagli

Il microprocessore 8086

Il microprocessore 8086 1 Il microprocessore 8086 LA CPU 8086 Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l 8080, un microprocessore ad 8 bit che ha riscosso un

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Un micro FPGA. skills. come il core ABC. il core ABC sia la suite di sviluppo di AC-

Un micro FPGA. skills. come il core ABC. il core ABC sia la suite di sviluppo di AC- skills di Un micro FPGA che parte dall ABC Quando in molti progetti è necessario unire alla logica programmabile la funzionalità di un piccolo microprocessore le soluzioni semplici come il core ABC possono

Dettagli

INTERFACCIA PER PC MEDIANTE PORTA SERIALE

INTERFACCIA PER PC MEDIANTE PORTA SERIALE INTERFACCIA PER PC MEDIANTE PORTA SERIALE Scheda d interfaccia per PC da collegare alla porta seriale. Consente di controllare otto uscite a relè e di leggere otto ingressi digitali e due analogici. Un

Dettagli

MICROCONTROLLORE PIC16F84A

MICROCONTROLLORE PIC16F84A MICROCONTROLLORE PIC16F84A Il microcontrollore pic16f84a, a differenza di un computer normale e' dotato in un unico integrato di tutti gli elementi fondamentali di un computer, che sono la Cpu, unita'

Dettagli

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control

Dettagli

La tecnica DDS. Un generatore di toni DTMF

La tecnica DDS. Un generatore di toni DTMF La tecnica DDS 32 Un generatore di toni DTMF standard con selezione a tastiera è presentato in quest articolo come applicazione della tecnica DDS (Direct Digital Synthesys), mediante un microprocessore.

Dettagli

Il Processore: i registri

Il Processore: i registri Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Introduzione ai Microcontrollori Workshop 08/06/2011 Dott.Ing.Marco Frosini Qprel srl Dott.Ing.Lorenzo Giardina Qprel srl Slide 1 di 27 L'elettronica digitale PRIMA dei microcontrollori Elemento base:

Dettagli

Qualche informazione sul microcontrollore PIC

Qualche informazione sul microcontrollore PIC Qualche informazione sul microcontrollore PIC Il Web contiene un ampia quantità di informazioni sui microcontrollori e sulla famiglia PIC in particolare. Accanto ai siti dei produttori hardware e software

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

I puntatori e l allocazione dinamica di memoria

I puntatori e l allocazione dinamica di memoria I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1

Dettagli

Arduino UNO. Single board microcontroller

Arduino UNO. Single board microcontroller Arduino UNO Single board microcontroller Che cos è Arduino? Arduino è una piattaforma hardware basata su un microcontrollore, per lo sviluppo di applicazioni che possono interagire con il mondo esterno.

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Hardware di un Computer

Hardware di un Computer Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

Dettagli

OSCILLOSCOPIO SOFTWARE

OSCILLOSCOPIO SOFTWARE OSCILLOSCOPIO SOFTWARE Ghiro Andrea Franchino Gianluca Descrizione generale... 3 Interazioni tra processi e risorse... 4 Funzionalità di processi e risorse... 5 Interfaccia e comandi utente... 6 Funzioni

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti Banco di registri e memoria Corso ACSO prof. Cristina SILVANO Politecnico di Milano Componenti di memoria e circuiti di pilotaggio L organizzazione interna della memoria e del banco di registri prevedono

Dettagli

Esempio di moltiplicazione come somma e spostamento

Esempio di moltiplicazione come somma e spostamento Esempio di moltiplicazione come somma e spostamento Implementare una moltiplicazione coinvolge algoritmi di shift e somma Istruzioni di Shift:movimento di bit: ROL Rd ROR Rd LSL Rd LSR ASR Rd Rd 22 x 35

Dettagli

UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI

UNA INTRODUZIONE AL MONDO DEI MICROCONTROLLORI 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

Dettagli

CIRCUITO DI TEST E SOFTWARE UTILIZZATI

CIRCUITO DI TEST E SOFTWARE UTILIZZATI CIRCUITO DI TEST E SOFTWARE UTILIZZATI Circuito di Test Nello schema elettrico di figura A è rappresentato un circuito, realizzabile anche senza l ausilio di un circuito stampato, che consente di testare

Dettagli

PROGRAMMA DI SISTEMI TERZA AET 2014/2015

PROGRAMMA DI SISTEMI TERZA AET 2014/2015 PROGRAMMA DI SISTEMI TERZA AET 2014/2015 Docente: Gamerra Giuseppe, Porta Giovanni Testo : manuali originali dello Z80, appunti in classe, dispense sulla intranet, simulatore OSHONSOFT A) Non sono state

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Protocolli di Comunicazione Elettronica dei Sistemi Digitali L-A Università di Bologna, Cesena

Protocolli di Comunicazione Elettronica dei Sistemi Digitali L-A Università di Bologna, Cesena Protocolli di Comunicazione Elettronica dei Sistemi Digitali L-A Università di Bologna, Cesena Aldo Romani A.a. 2005-2006 UART UART Universal Asynchronous Receiver/Transmitter Clock implicito e trasmissione

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

Lezione 4. Figura 1. Schema di una tastiera a matrice di 4x4 tasti

Lezione 4. Figura 1. Schema di una tastiera a matrice di 4x4 tasti Lezione 4 Uno degli scogli maggiori per chi inizia a lavorare con i microcontroller, è l'interfacciamento con tastiere a matrice. La cosa potrebbe a prima vista sembrare complessa, ma in realtà è implementabile

Dettagli

Esame di Stato 2015. Materia: SISTEMI AUTOMATICI PRIMA PARTE

Esame di Stato 2015. Materia: SISTEMI AUTOMATICI PRIMA PARTE Esame di Stato 2015 Materia: SISTEMI AUTOMATICI PRIMA PARTE Il problema proposto riguarda un sistema di acquisizione dati e controllo. I dati acquisiti sono in parte di natura digitale (misura del grado

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Introduzione Che cos è un calcolatore? Come funziona un calcolatore? è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 3 ISC Esercizi per il recupero del debito formativo: Disegnare il diagramma e scrivere la matrice delle transizioni di stato degli automi a stati finiti che rappresentano

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Progetto di Microcontrollori. Cronotermostato per Caldaia

Progetto di Microcontrollori. Cronotermostato per Caldaia Progetto di Microcontrollori Cronotermostato per Caldaia Obiettivo del Progetto Realizzazione di un dispositivo elettronico capace di gestire l accensione di una caldaia mediante il controllo della temperatura

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari A.A. 2012 2013 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli