Personal computer/Mapping/Interfacce: differenze tra le versioni
Riga 76: | Riga 76: | ||
=== PIC 8259 === |
=== PIC 8259 === |
||
L'integrato 8259 riesce a gestire singolarmente fino a 8 richeste di interruzioni da dispositivi esterni. |
L'integrato 8259 riesce a gestire singolarmente fino a 8 richeste di interruzioni da dispositivi esterni (IR0..IR7),e fino a 64 con un utilizzo di altri 8 8259 in cascata. |
||
+----------------+ |
|||
--> | CS* IR0| <-- |
|||
--> | A0 IR1| <-- |
|||
--> | WR* IR2| <-- |
|||
--> | RD* IR3| <-- |
|||
<-> | D[0..7] IR4| <-- |
|||
<-- | INT IR5| <-- |
|||
--> | INTA* IR6| <-- |
|||
--> | SP/EN* IR7| <-- |
|||
--> | CAS[0..2] | <-- |
|||
+----------------+ |
|||
D[0..7] 8 bit dati |
|||
CS* Chip Select Se basso l'interfaccia è stata indirizzata |
|||
RD* Read Utilizza l'interfaccia in lettura |
|||
WR* Write Utilizza l'interfaccia in scrittura |
|||
IR[0..7] Interrupt Request(riconoscimento richeste a livello o fronte) |
|||
INT Interrupt verso il processore |
|||
INTA* Interrupt Acknowledge |
|||
A0 Bit di indirizzamento |
|||
CAS[0..2] Usati dal 8259 Master per selezionare l'8259 Slave (Per utilizzo in cascata) |
|||
* L'8259 occupa due byte nello spazio di indirizzamento, utilizzati per la programmazione |
|||
* Possibilità i mascherare le rischieste di interruzione dall'esterno |
|||
* Possibilità di modificare le priorita' di gestione delle interruzioni dei dispositivi |
|||
{{avanzamento|25%}} |
{{avanzamento|25%}} |
Versione delle 19:26, 13 ott 2008
Le interfacce di I/O permettono la comunicazione tra CPU e dispositivi periferici. Qualsiasi dispositivo di interfacciamento ha quindi due interfacce, una rivolta verso il bus di sitema e quindi standard, l'altra specifica per il dispositivo periferico e quindi dipendente dal tipo di unità.
Per quanto riguarda un'interfaccia ad 8 bit, considerando soltanto la parte rivolta verso il bus dati, saranno sicuramente presenti i pin:
+----------------+ <-> | D[0..7] | --> | CS* | --> | RD* | --> interfaccia verso la periferica --> | WR* | --> | A[0..n-1] | +----------------+ D[0..7] 8 bit dati CS* Chip Select Se basso l'interfaccia è stata indirizzata RD* Read Utilizza l'interfaccia in lettura WR* Write Utilizza l'interfaccia in scrittura A[0..n-1] n bit di indirizzo
RS 232
8250 - Interfaccia Seriale
8255 - Interfaccia Parallela
L'interfaccia parallela 8255 gestisce tre porte bidirezioanli (input/output) in 3 modalità di funzionamento: è quindi un'interfaccia programmabile. Dispone di 4 registri interni per lo scanbio di:
- dati (un registro in ingresso ed uno in uscita)
- informazioni di controllo, programmazione (un registro)
- informazioni di stato (un registro)
Avendo soltanto quattro porte, i bit di indirizzo sono due, con le configurazioni:
A0 A1 0 0 Porta A 0 1 Porta B 1 0 Porta C 1 1 Registro di controllo
I pin di comunicazione del bus sono in 3-state, sia quando il CS* è al valore logico alto (è un segnale attivo basso), sia quando entrambi i segnali RD* e WR* sono alti.
Le tre modalità di funzionamento sono:
- Modo 0: Basic Input/Output La CPU legge/scrive sulle porte senza alcun meccanismo di sincronizzazione con l'unità periferica collegata all'interfaccia parallela.
- Modo 1: Strobed Input/Output La CPU si sincronizza al dispositivo periferico tramite un protocollo di handshake. L'I/O può essere gestito sia a polling che ad interrupt.
- Modo 2: Strobed Bi-directional I/O La comunicazione tra CPU e dispositivi è bidirezionale.
Tutte le tre porte possono essere programmate in modalità 0, mentre solo A e B possono esserlo in modalità 1. La porta C avrà sui bit da 4 a 7 (PC7-4) i segnali per la gestione del protocollo di handshake, se la porta A è in modalità 1; e sui bit da 0 a 3 (PC3-0) i segnali per la gestione del protocollo di handshake, se la porta B è in modalità 1.
Il registro di controllo conterrà una control word i cui bit sono:
D0 parte bassa della porta C 1 input 0 output D1 porta B 1 input 0 output D2 seleziona della modalità 0 mode 0 1 mode 1 D3 parte alta della porta C 1 input 0 output D4 porta A 1 input 0 output D5-D6 seleziona della modalità 00 mode 0 01 mode 1 1x mode 2 D7 mode set flag 1 active
Per cui, se volessimo programmare i pin “liberi” della porta C (lower) in input, la porta B in modo 1-output, i pin “liberi” della porta C (upper) in output, e la porta A in modo 0-input, avremo:
10010101.
PIC 8259
L'integrato 8259 riesce a gestire singolarmente fino a 8 richeste di interruzioni da dispositivi esterni (IR0..IR7),e fino a 64 con un utilizzo di altri 8 8259 in cascata.
+----------------+ --> | CS* IR0| <-- --> | A0 IR1| <-- --> | WR* IR2| <-- --> | RD* IR3| <-- <-> | D[0..7] IR4| <-- <-- | INT IR5| <-- --> | INTA* IR6| <-- --> | SP/EN* IR7| <-- --> | CAS[0..2] | <-- +----------------+ D[0..7] 8 bit dati CS* Chip Select Se basso l'interfaccia è stata indirizzata RD* Read Utilizza l'interfaccia in lettura WR* Write Utilizza l'interfaccia in scrittura IR[0..7] Interrupt Request(riconoscimento richeste a livello o fronte) INT Interrupt verso il processore INTA* Interrupt Acknowledge A0 Bit di indirizzamento CAS[0..2] Usati dal 8259 Master per selezionare l'8259 Slave (Per utilizzo in cascata)
- L'8259 occupa due byte nello spazio di indirizzamento, utilizzati per la programmazione
- Possibilità i mascherare le rischieste di interruzione dall'esterno
- Possibilità di modificare le priorita' di gestione delle interruzioni dei dispositivi