|
|
L'utilizzo dell' mP0 ,ci fornisce un modo rapido per inserire dei dati nella memoria, ma se in realtà esistesse veramente,con una memoria a 256 byte sarebbe di difficile utilizzo anche perché non ha nessun collegamento col mondo esterno. Quindi si ha bisogno di dispositivi che permettano questa funzione : i dispositivi di I/O che si collegano al microprocessore per mezzo del : bus dati (usato per il trasferimento di dati),bus indirizzi (usato per scegliere a quale dispositivo fare riferimento) e del bus di controllo (usato per es. per stabilire se l'operazione è in lettura o scrittura ma solitamente serve a sincronizzare le operazioni di clock ( anche se le porte I/O sono asincrone)).
Per il collegamento dell' I/O si possono usare due tipi di architetture differenti :
1-Memory mapped I/O
2-Isolated I/O
Memoria e I/O sono visti dal microprocessore come entità dello stesso tipo, una parte degli indirizzi è dedicata alla memoria , un' altra all' I/O .Il vantaggio di questa architettura è che il microprocessore usa le stesse istruzioni sia con l'una che con l'altra.
Es: 6502 Rockwell o Motorola 6800 e 68000
2-Il microprocessore distingue le operazioni I/O e memoria . Il vantaggio riguarda il fatto che il
microprocessore può utilizzare la stessa capacità d'indirizzamento sia per l'I/O che per la
memoria, quindi si ha un guadagno di spazio totale d'indirizzamento.
Es:Z80 Zilog
Un ulteriore architettura è quella detta multibus, dove si usano bus separati per la memoria e per l'I/O : il vantaggio sono i trasferimenti con la memoria e con l I/O.
mP0
I/O
Memoria
I/O
MREQ :Richiesta di memoria .Attivato dalla UC (unità di controllo) quando si effettua un .
trasferimento di dati con la memoria.
I/OREQ: Richiesta di I/O . Attivato dalla UC quando si effettua un trasferimento di dati con l'I/O.
R/W :Quando mP0 è in lettura UC=1,quando è in scrittura UC=0.
INT :Segnale d' interruzione.
CLOCK:Segnale di sincronismo.
DISPOSITIVI I/O :
Il simulatore di mP0 ha solamente il collegamento di 2 porte d'ingresso (una per la tastiera ($e0) e una per la porta stampante ($f0),che serve per acquisire i dati ad 8 bit) ed una d'uscita ($f0),che è la stessa di quella d'ingresso.
Analizzando la porta d'uscita (porta parallela P.C.),vediamo che è costituita da un latch ad 8 bit con ingressi collegati al bus dati e le uscite sono utilizzabili dall'esterno (per es.collegando un display). Il latch è necessario per memorizzare i dati verso l'uscita presenti sul bus dati perché altrimenti non sarebbero visti dato che l'operazione è troppo breve.La porta ha anche due terminali di controllo: CK(abilita la scrittura nei f.f.),è controllato dal microprocessore in fase di scrittura ed OE((output enaible), che abilita le uscite (3-state)), è controllato dall'esterno in fase di lettura.
Limitazioni: 1- mP non sa se il dato in uscita è stato letto e ne può scrivere un altro
2- Fuori non si sa se il dato è stato letto dal microprocessore e se ne può scrivere un
altro.
Per risolvere a questo problema si ricorre ad un flag .
Con flag =1: il microprocessore scrive nel f.f.
flag =0: lo si imposta da fuori dopo che si è acquisito il dato e torna ad 1 quando ce n'è uno
nuovo (protocollo di handshaking).
Il flag può essere usato con un latch S-R:
SET:controllato dal microprocessore quando esegue una scrittura sui f.f. collegato al CK porta.
RESET:usato dopo la lettura dei f.f. e comandato dall'OE della porta.
Q:portata all'esterno per controllarne il valore.
Per far sapere al microprocessore se il dato è stato letto o no,collegare Q al bus dati(al LSB),quando il micropr. è in fase di lettura quindi usiamo un buffer 3-state tra Q l'LSB.
Si usa Q perché quando il micropr.legge 0 dal flag,la porta non è libera e c'è ancora il dato.Quando il dato è stato letto si resetta Q =0 e il micropr. scrive nuovo dato.
Vista a sé stante la porta d'uscita (e d'ingresso) è in simmetria con l'interno e l'esterno,invertendo
CK/OE dell'uscita si ha la porta d'ingresso.Meglio usare una porta con memoria che memorizzi i dati anche in caso di perdita d'essi.
PORTA D'INGRESSO
Inviato il dato a 8 bit su porta d'ingresso,si abilita il segnale di scrittura:si memorizza il dato e si porta Q=1,con Q negatola porta è occupata dal dato.Per leggere Q, il micropr. Porta sul bus dati (con buffer 3-state),genera il segnale di lettura abilitando OE e il latch porta Q=0,indicando che il
micropr. è pronto per un nuovo dato.
mP0
Memo
3-state
Bus dati
Rete decodifica S Q R
Q OE porta
CK
Bus
controllo
Bus indirizzi
Porta libera
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2025