Personal computer/Mapping/Interfacce: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Riga 75: Riga 75:
'''10010101'''.
'''10010101'''.


=== PIC 8259 ===
=== PIC(Programmable Interrupt Controller) 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.
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.


Riga 100: Riga 100:
CAS[0..2] Usati dal 8259 Master per selezionare l'8259 Slave (Per utilizzo in cascata)
CAS[0..2] Usati dal 8259 Master per selezionare l'8259 Slave (Per utilizzo in cascata)


Caratteristiche generali:
* L'8259 occupa due byte nello spazio di indirizzamento, utilizzati per la programmazione
* L'8259 occupa due byte nello spazio di indirizzamento, utilizzati per la programmazione
* Possibilità i mascherare le rischieste di interruzione dall'esterno
* Possibilità i mascherare le rischieste di interruzione dall'esterno
* Possibilità di modificare le priorita' di gestione delle interruzioni dei dispositivi
* Possibilità di modificare le priorita' di gestione delle interruzioni dei dispositivi
* L'8259 non ha il segnale di RESET, ergo al riavvio della macchina rimane la sua programmazione interna (non una di default com nei normali dispositivi), deve essere necessariamente riprogrammato in fase di avvio del sistema insieme agli altri dispositivi se si vuole un comportamento diverso.

Funzionamento Interno:
All'interno l'8259 ha 3 registri da 8 bit (non indirizzabili dal processore), ma riservati per la gestione interna.

* IMR (Interrupt Mask Register) è utilizzato per mascherare le richeste di interruzione
* IRR (Interrupt Request Register) quando le rischieste arrivano all' 8259 vengono campionate in registro
* ISR (Interrupt service Register) memorizza quale interruzione è eventualmente in servizio(resettando il bit del'IRR corrispondente)

Contiene anche una rete combinatoria.

* Priority Resolution che si occupa di gestire la corretta gestione tra i registri.

Programmazione del PIC
I due Byte di indirizzo, sono utilizzati per la programmazione dell'8259


{{avanzamento|25%}}
{{avanzamento|25%}}

Versione delle 19:48, 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(Programmable Interrupt Controller) 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)

Caratteristiche generali:

  • 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
  • L'8259 non ha il segnale di RESET, ergo al riavvio della macchina rimane la sua programmazione interna (non una di default com nei normali dispositivi), deve essere necessariamente riprogrammato in fase di avvio del sistema insieme agli altri dispositivi se si vuole un comportamento diverso.

Funzionamento Interno: All'interno l'8259 ha 3 registri da 8 bit (non indirizzabili dal processore), ma riservati per la gestione interna.

  • IMR (Interrupt Mask Register) è utilizzato per mascherare le richeste di interruzione
  • IRR (Interrupt Request Register) quando le rischieste arrivano all' 8259 vengono campionate in registro
  • ISR (Interrupt service Register) memorizza quale interruzione è eventualmente in servizio(resettando il bit del'IRR corrispondente)

Contiene anche una rete combinatoria.

  • Priority Resolution che si occupa di gestire la corretta gestione tra i registri.

Programmazione del PIC I due Byte di indirizzo, sono utilizzati per la programmazione dell'8259