ePerTutti


Appunti, Tesina di, appunto tecnica

PPI 8255 - Programmazione dell'8255 - MODO 0 - BASE INPUT/OUTPUT

ricerca 1
ricerca 2

PPI 8255


L'8255 è un'interfaccia usata per il collegamento di più periferiche e stà tra le periferiche e la CPU.



























CS





Anche l'8255 è formato da alcuni blocchi:  


BUFFER D.B.= è collegato al DB esterno.Questo memorizza temporaneamente i dati e amplifica il segnale quando mando l'informazione verso l'esterno.

LOGICA DI CONTROLLO= l'8255 deve capire quando io vado a scrivere per programmarlo o a leggere.


RD: se a 0 il microprocessore esegue una lettura,se a 1 avviene una operazione inversa.


WR: a 0 il dato è messo sul buffer e poi va al micropprocessore (scrittura sull'8255),se a 1 l'inverso.

A0,A1: sono i bit meno significativi del bus indirizzi e servono a identificare i registri interni dell'8255.

RESET:inizializza l'8255.


CS: abilita l'integrato

CONTROLLO GRUPPO A:controlla la porta PA e PCH.

CONTROLLO GRUPPO B:controlla la porta PB e PCL.


L'8255  contiene tre porte ad 8 bit:porta A,B,C.Queste porte possono essere programmate perchè lavorano tutte e tre in modi diversi.


PORTA A: è costituita da un buffer bidirezionale dotato di memoria e di un registro di memorizzazione di ingresso.


PORTA B: è costituita da un buffer di uscita ad 8 bit dotato di memoria e di un registro di memorizzazione ad 8 bit.


PORTA C:è costituita da un buffer di uscita ad 8 bit dotato di memoria e di un buffer di ingresso ad 8 bit.La porta C può essere divisa in due porte a 4 bit.




Programmazione dell'8255


L'8255 ha al suo interno 4 registri:PA,PB,PC,CONTROLLO.

Vediamo come è formato il registro di Controllo:







D7:indica il modo di programmazione che è attivato.Se a 1 c'è il modo di funzionamento 8255;se a 0    c'è il modo set/reset.

D6,D5:definiscono uno dei 3 modi di funzionamento del gruppo A:

00 = modo 0

01 = modo 1

1x = modo 2

D4:definisce se la porta PA lavora in input - 1 - o se lavora in output - 0 -.   


D3:definisce se la porta PCH lavora in input - 1 - o se lavora in output - 0 -.   


D2:definisce il modo di funzionamento del gruppo B:

1 = modo 1

0 = modo 0


D1:definisce se la porta PB lavora in input - 1 - o se lavora in output - 0 -.   


D0:definisce se la porta PCL lavora in input - 1 - o se lavora in output - 0 -.   



ES:

PA input ; PB output ; PCL input ; PCH output ; modo A = 0; modo B =0.





Modi di funzionamento



MODO 0 - BASE INPUT/OUTPUT

Le porte vengono definite o di input o di output,mai entrambi i casi.


PA PB PCH PCL

i i i i

i i i o i=input

i i o o o=output

: : : :

o o o o


Abbiamo 16 combinazioni possibili.


MODO 1 - STROBEN INPUT/OUTPUT

PA e PB possono essere definite in input o in output;alcuni bit di PC servono per il controllo delle porte PA e PB.











WR  WR





Porta A


OBFa=OUTPUT BUFFER FULL ;dice alla periferica che l'8255 ha un dato da trasmettere.


ACKa=ACKNOWLEDGE INPUT ;informa l'8255 che il dato è stato accettato.


segue le seguenti operazioni:

CPU manda il dato all'8255;

l'8255 manda il dato in PA;

l'8255 setta l'OBFa;

la periferica accetta il dato in PA;

la periferica imposta la ACKa.

Questo si può definire un sistema polling.

C'è anche un sistema interruzioni:la prima volta funziona come i 5 punti sopra elencati ma segue un sesto punto:

6.l'8255 produce l'INTR(l'intr va poi nell'8259).


La tecnica migliore è quella a interruzioni perchè la CPU scrive il dato quando sicuramente il dato precedente è stato mandato.



INTE A è un bit che abilita o disabilita le interruzioni.Per abilitare gli interrupt bisogna settare il PC& perchè l'INT A è proprio collegato a questo bit.


Porta B


Il modo di funzionare è uguale a quello della porta A,infatti usa sempre OBFb(negato),ackb(negato), INTRb e il bit INTE B.Di diverso sono i bit usati:con PB si usano PC1,PC2,PC0,mentre con PA si usano i restanti.



MODO 2 - MODO BIDIREZIONALE


Il modo 2 si può usare solo per il gruppo A perchè la porta A può funzionare sia in input che in output,con l'utilizzo di determinati interrupt.



PA


PC3


PC7

PC6




PC4



PC5



PC 0,2

 


INTRa

OBFa

ACKa



STBa



IBFa



BUS A 3 BIT

 









Le operazioni di ingresso sono le seguenti:


STB:se a livello basso il dato viene memorizzato nella memoria di ingresso.

IBF: se a livello alto indica che i dati presenti nella porta sono arrivati e memorizzati.

Le operazioni di uscita sono le seguenti:

INTR:se a livello alto chiede alla CPU che venga generata un interrupt.

OBF: se a livello basso indica che la CPU ha inviato un'nformazione alla porta A.

ACK: avverte quando il dato della porta A viene mandato nel buffer.





INDICE




IL MICROPROCESSORE-------- ----- ------ ----- ----- ------------- Struttura interna e registri

CPU,RAM E ROM-------- ----- ------ -------- ----- ------ -

LA MEMORIA-------- ----- ------ -------- ----- ------ ------- Memoria superiore e convenzionale.

Tabella interrupt.

GLI INTERRUPT -------- ----- ------ -------- ----- ------ -- Int r,nmi e reset.

METODI  DI INDIRIZZAMENTO DELLA MEMORIA----- ----- ----------

L'8259-------- ----- ------ -------- ----- ------ ----- ----- -------

LIMGUAGGI DI PROGRAMMAZIONE E L'ASSEMBLATORE -------- ----- ------ ----- ----- --------- ----- ------. 15

L'8255-------- ----- ------ -------- ----- ------ ----- ----- -------

































CONTROL LOGIC:genera i segnali di interrupt verso la CPU.

BUFFER ATOR:serve a collegare in cascata più 8259.

R/W:read/write logic-gestisce la logica di lettura e scrittura verso l'8259.

RD=0 attivo

RD=1 disabilitato

DATA BUS BUFFER:serve da interfaccia tra il blocco esterno e quello interno.

ISR:interrupt status register-memorizza lo stato delle interruzioni.

PRIORITY RESOLVER:mi dice quale interrupt devo passare per primo.

IRR:interrupt request register-avvisa il control logic di inviare l'interrupt.

IMR:interrupt mask




Per programmare l'8259 si usano parole di controllo:ICW1,ICW2,ICW3,ICW4.







ICW1: A0=0;

D0:se a 1 c'è la ICW4.

D1:se a 1 è singolo,altrimenti è in cascata.

D2:è per l'8255.

D3:se a 1 funziona per livelli di tensione,altrimenti per transizione.

D4:è sempre a 1.

D5,D6,D7:sono per l'8255.


ICW2:A0=1;

D7,D6,D5,D4,D3:sono i bit più significativi del vettore interruzione.

D2,D1,D0:sono sempre a 0

ICW3:A0=0;

Ai bit che sono a 1 è collegato uno slave.Questo è il caso in cui l'ICW3 è del master;nell'altro caso invece l'ICW3 contiene il codice dello slave.

ICW4:A0=1;

D7,D6,D5 sono sempre a 0.

D4 indica se a 1 modo speciale pienamente nidificato;se a 0 indica modo normalpienamente nidificato.

D3,D2 : 0X = senza buffer;

10 = buffer slave;

11 = buffer master.

D1 se a 1 indica auto EOI,se a 0 EOI normale.

D0 se a 1 8086/8088 , se a 0 8080/8085.








Privacy

© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta