tecnica |
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