Personal computer/Mapping/Interfacce: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
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

Indice del libro

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