La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

PIC 8259 PROGRAMMABLEINTERRUPTCONTROLLER Prof. Marco Solarino.

Presentazioni simili


Presentazione sul tema: "PIC 8259 PROGRAMMABLEINTERRUPTCONTROLLER Prof. Marco Solarino."— Transcript della presentazione:

1 PIC 8259 PROGRAMMABLEINTERRUPTCONTROLLER Prof. Marco Solarino

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

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

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

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

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

7 7 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 INTR INTA BUS DATI CPU 888

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

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

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

11 11 MASCHERAMENTO IMR – Interrupt Mask Register M7M6M5M4M3M2M1M0 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.

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

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

14 14 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!

15 15 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);

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

17 17 IN CONCLUSIONE 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. Il PIC 8259 risolve i tre problemi indicati all'inizio, in quanto:


Scaricare ppt "PIC 8259 PROGRAMMABLEINTERRUPTCONTROLLER Prof. Marco Solarino."

Presentazioni simili


Annunci Google