vuoi
o PayPal
tutte le volte che vuoi
PIA (PERIFERAL INTERFACE ADAPTER)
La PIA (derivato MC6821) è un dispositivo parallelo con parallelismo a 8 bit. Esso è composto da 2 sezioni quasi uguali e configurabili separatamente ed è visto dal processore come un insieme di soli 4 registri su 6 effettivi.
Illustrazione 1: schema della PIA
Collegamento col processore:
- BUS DATI: bus dati di ingresso/uscita.
- !CS: chip select.
- A0, A1: (AD0, AD1 nelle tabelle) bit per la selezione dei registri interni.
- R, !W: segnali di lettura/scrittura.
- Reset: reset del dispositivo.
- IRQA, IRQB: linee di interruzione verso il processore.
Collegamento esterno:
- 8 Data Lines A, 8 Data Lines B: linee dati verso un terminale parallelo.
- CA1, CB1: linee di ingresso alla PIA per il controllo delle linee di interruzione verso il processore (IRQA e IRQB).
CA1 controlla il flag di interruzione IRQA1 (b7 o anche chiamato CRA7 del registro di STATO/CONTROLLO), infatti b7 passa a 1 sul fronte di CA1 (sul fronte di salita se b1 = 1 altrimenti sul fronte di
discesa se b1 = 0). il bit b7 viene resettato automaticamente all'atto della lettura del registro DATI da parte del processore. Il bit b0 del registro di STATO/CONTROLLO permette il mascheramento delle interruzioni. Le stesse cose valgono per CB1.
Illustrazione 2: controllo delle interruzioni per la linea CA1/CB1 (i bit del registro di STATO/CONTROLLO sono identificati dal suffisso CRA/CRB)
CA2, CB2: linee programmabili come ingresso (per avere le stesse funzioni di CA1 e CB1) o come uscita per sviluppare handshaking.
Se il bit b5 = 0 (reg. di STATO/CONTROLLO) allora CA2 e CB2 si comportano come CA1 e CB1 interessando però il flag di interruzione IRQA2 (b6 del registro di STATO/CONTROLLO). Per il mascheramento delle interruzioni in questo caso viene usato il bit b3 del registro STATO/CONTROLLO e per la gestione dei fronti il bit b4 del medesimo registro.
Se il bit b5 = 1 (reg. di STATO/CONTROLLO) allora CA2 e CB2 sono utili a controllare i modi di handshaking verso la
periferica controllati dai bit b3 e b4 (reg. diSTATO/CONTROLLO): (100) modo handshake, (101) modo impulsivo, (11-) mododopendente da CRA3, cioè CA2 assume il valore di b3 del registro STATO/CONTROLLO.
Illustrazione 3: registro di STATO/CONTROLLO (CRA/CRB)
Illustrazione 4: controllo delle interruzioni per la linea CA2/CB2settata come ingresso (i bit del registro di STATO/CONTROLLO sonoidentificati dal suffisso CRA/CRB)
Illustrazione 5: controllo della linea CA2 settata per handshaking (i bitdel registro di STATO/CONTROLLO sono identificati dal suffissoCRA/CRB)
Illustrazione 6: controllo della linea CB2 settata per handshaking (i bit delregistro di STATO/CONTROLLO sono identificati dal suffisso CRA/CRB)
Handshaking (periferica connessa alla PIA sul lato A):
- La periferica mette i dati sul BUS-DATI;
- La periferica invia alla PIA attraverso la linea CA1 il segnale di “dato pronto”, sullatransizione di CA1 anche CA2 si alza;
- Internamente alla PIA IRQA1 si alza e viene
inviata una richiesta di interruzione al processore che chiamerà una ISR;
4. L'ISR leggerà i dati dal registro DATI della PIA, il bit b7 del registro STATO/CONTROLLO viene automaticamente resettato e CA2 torna al valore logico basso, cioè "lettura ultimata" per la periferica connessa.
Illustrazione 7: handshaking
Programmazione del dispositivo (i registri sono a coppie):
CONTROL REGISTER: (CRA, CRB) registro di STATO/CONTROLLO.
DATA DIRECTION REGISTER: (DRA, DRB) per settare la direzione dei dati.
PERIPHERAL DATA REGISTER: (PRA, PRB) registro DATI.