PIC 8259 PROGRAMMABLE INTERRUPT CONTROLLER

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
IL MICROCONTROLLORE ST6
Tesi di Laurea Triennale in Ingegneria Elettronica Applicata
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © William Fornaciari Tecniche di gestione.
File.
L’organizzazione della comunicazione di I/O G. Vercelli
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
PSPICE – simulazione codificatori e decodificatori, MUX - DEMUX
Gerarchie di priorità per la gestione delle interruzioni
rete di Petri: N = (T, P, Pre, Post)
Struttura dei sistemi operativi (panoramica)
Il livello analogico digitale Lezione 3_4 Chip delle CPU e Bus.
Come aumentare le linee di I/O?
Convertitore A/D e circuito S/H
Il Linguaggio Macchina
Com’è fatto un elaboratore?
Circuiti programmabili
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
1.7 Risorse di sistema Comprendere le risorse di sistema Gestire le risorse di sistema.

Le funzioni.
Espressioni condizionali
(Controllore Programmabile delle Interruzioni)
BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino
1 Gestione del mouse via interrupt. 2 Connessioni 8259 master CPU 80x86 IR4 INT INTA A MHz 8250 o INTR mouse OUT2 SIN DTR RTS.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
GLI INTERRUPT PAG..
L’Architettura del Sistema di Elaborazione
Informatica per medici
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
PPI 8255 PROGRAMMABLE PERIPHERAL INTERFACE
GESTIONE DELLA TASTIERA
TECNICHE DI INPUT/OUTPUT
Simulazione cassa Super-mercato
L' ARCHITETTURA DI VON NEUMANN
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Input/Output Elementi periferici: Testiera Monitor Stampanti
Architettura degli elaboratori
I vettore interruzioni
ITIS”A.Einstein ” di Roma
TC 8253 TIMER COUNTER Prof. Marco Solarino.
GESTIONE INTERRUPT CPU INTEL 8086
Introduzione al linguaggio assembly del microprocessore a parte
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Sistemi di elaborazione e trasmissione delle informazioni
Pippo.
La gestione delle interruzioni
ELETTRONICA DIGITALE (II PARTE) (1)
STRUTTURA DI UN COMPUTER
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.
Architettura di una CPU
Il nucleo del Sistema Operativo
ELETTRONICA DIGITALE (II Parte) (6-7) 13.12;15.12
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
L’esecuzione dei programmi
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda Interfaccia verso il bus.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
Il BUS è un elemento fondamentale dei computer che ha lo scopo di collegare elettricamente i dispositivi, le periferiche e le memorie con il microprocessore,
Transcript della presentazione:

PIC 8259 PROGRAMMABLE INTERRUPT CONTROLLER Prof. Marco Solarino

QUALCHE PROBLEMA Nella gestione dell'interrupt vista in precedenza la situazione era semplificata dalla presenza di una sola periferica. Nei sistemi di elaborazione reali, invece, le periferiche sono molte, e questo comporta dei problemi.

QUALI? 1) Convogliare tante richieste di interrupt sull'unico piedino INTR; 2) Gestire la priorità in caso di richieste contemporanee; 3) Identificare la periferica che fa la richiesta di interrupt.

PIC 8259 LA SOLUZIONE Programmable Interrupt Controller (Controllore programmabile dell'Interrupt)

IL PIC 8259 PIC 8259 IRQ0 IRQ1 INTR IRQ2 IRQ3 IRQ4 INTA IRQ5 IRQ6 IRQ7 D0-D7

COLLEGAMENTI P0 CPU 8086 PIC 8259 IRQ0 IRQ1 INTR P1 INTA P7 IRQ7 8 8 BUS DATI

UNO NON BASTA Le periferiche che utilizzano l'interrupt sono più di otto, quindi nel PC sono presenti due PIC collegati in cascata. PIC1 (master) IRQ2 IRQ1 IRQ0 IRQ7 INTR INTA PIC2 (slave) IRQ8 IRQ15 BUS DATI CPU 8

REGISTRI Il colloquio con il PIC avviene tramite due registri al suo interno, uno utilizzato per la programmazione vera e propria del dispositivo e l'altro usato per impostare il mascheramento degli interrupt. Per questo motivo ogni PIC lavora con due indirizzi di I/O (20h e 21h per il PIC1 e A0h e A1h per il PIC2). L'indirizzo pari è dedicato al registro di programmazione, mentre quello dispari individua il registro di maschera.

PROGRAMMAZIONE La programmazione dei due PIC viene effettuata dal BIOS del sistema all'avvio. Noi avremo bisogno di interagire con il registro di programmazione soltanto per segnalare la fine del servizio dell'interrupt, inviando il carattere EOI (End Of Interrupt), codificato col valore 20h, subito prima del termine della nostra ISR.

COME SI FA? In Assembly: OUT 20h,20h OUT A0h,20h In C++: outportb(0x20,0x20); outportb(0xA0,0x20);

MASCHERAMENTO IMR – Interrupt Mask Register Ogni bit di maschera M controlla la rispettiva linea IRQ (M0-IRQ0, M1-IRQ1, ecc.). Con valore 0 la IRQ è abilitata, con valore 1 la IRQ è disabilitata.

ESEMPIO Volendo disabilitare solo l'interrupt della tastiera (collegata su IRQ1) mantenendo abilitati tutti gli altri, la configurazione del registro di maschera sarà: M7 M6 M5 M4 M3 M2 M1 1 M0 Quindi occorrerà inviare all'indirizzo 21h il valore 2 (00000010 in binario).

COME SI FA? In Assembly: OUT 21h,2 In C++: outportb(0x21,2);

C'E' UN PROBLEMA I PIC presenti nel PC sono utilizzati dal sistema per la gestione di molte periferiche, e quindi se dobbiamo mascherare una linea IRQ non dobbiamo alterare lo stato di abilitazione delle altre. CHE SIGNIFICA? Non possiamo utilizzare le istruzioni appena viste con i valori dell'esempio, perché oltre alla disabilitazione di IRQ1 ciò comporterebbe l'abilitazione di tutte le altre linee!

E ALLORA? In Assembly: In C++: IN AL,21h OR AL,2 OUT 21h,AL unsiged char mask; mask=inportb(0x21); mask|=2; outportb(0x21;mask);

outportb(0x21;inportb(0x21)|2); VARIANTE C++ In C++ le istruzioni precedenti si possono nidificare in una unica riga, rendendo non più necessaria la variabile mask: outportb(0x21;inportb(0x21)|2); ...e così la nostra IRQ1 è disabilitata senza modificare lo stato di abilitazione/disabilitazione delle altre linee.

Il PIC 8259 risolve i tre problemi indicati all'inizio, in quanto: IN CONCLUSIONE Il PIC 8259 risolve i tre problemi indicati all'inizio, in quanto: 1) convoglia le richieste di interrupt di fino a otto periferiche per dispositivo sull'unica linea INTR; 2) gestisce la priorità di più richieste contemporanee in base al numero di IRQ (IRQ0 max – IRQ7 min); 3) Identifica la periferica fornendo alla CPU il numero di interrupt relativo alla linea IRQ utilizzata.