• Non ci sono risultati.

Silicon MOS 8255

N/A
N/A
Protected

Academic year: 2021

Condividi "Silicon MOS 8255"

Copied!
42
0
0

Testo completo

(1)

Silicon MOS 8255

Silicon Mos 8255 interfaccia di I/O al bus di sistema

Il data sheet completo è reperibile al

http://www.intel.com/design/periphrl/datashts/

(2)

Silicon Mos 8255

• L’8255 è un dispositivo, programmabile, di I/O progettato inizialmente per essere usato con i microprocessori 8008 e 8080, ma ancora

utilizzato.

• La sua funzione è quella di interfacciare i dispositivi periferici al bus di sistema.

• L’8255 è disponibile a 40-pin DIP o a 44-pin

plastic leaded chip carrier (PLCC) package. Noi esamineremo quello a 40 pin.

(3)

Caratteristiche del 8255

• 24 Pins di I/O programmabili.

• Completamente TTL compatibile.

• Completamente compatibile con le

famiglie dei microprocessori MCS

TM

-8 e MCS

TM

-80.

• Bit Set/Reset diretto

• 40-Pin Dual In-Line Package.

(4)

Descrizione dei Pins

• I 24 pins di I/O sono

divisi in 3 porte distinte:

Port A

Port A, Port B e Port C, Port B Port C, 3 I/O latch buffer

3 I/O latch buffer.

• Port C può essere divisa in due Porte di 4 bit:

Porta C lower (PC0-3) e Porta C upper (PC4-7).

4039 3837 3635 3433 3231 3029 2827 2625

2322 21 24 PA3PA2

PA1PA0 RDCS GND A1

PC7A0 PC6PC5 PC4PC0 PC1PC2

PB0PB1 PB2 PC3

PA4PA5 PA6PA7 RESETWR

D0 D1 D2D3 D4D5 D6D7 PB7Vcc

PB5PB4 PB3 PB6

82558255

12 34 56 78 109 1211 1314 1516

1819 20 17

(5)

• RD (Read Control) : Si tratta di un input che assume il valore basso

quando la CPU effettua una operazione di lettura.

Descrizione dei Pins

12 34 56 78 109 1112 1314 1516

1819 20 17

4039 3837 3635 3433 3231 3029 2827 2625

2322 21 24 PA3PA2

PA1PA0 RDCS GND A1

PC7A0 PC6PC5 PC4PC0 PC1PC2

PB0PB1 PB2 PC3

PA4PA5 PA6PA7 RESETWR

D0 D1 D2D3 D4D5 D6D7 PB7Vcc

PB5PB4 PB3 PB6

82558255

• WR (Write Control): Input che assume un valore basso quando la CPU

effettua una operazione di scrittura.

RD WR

(6)

Descrizione dei pins

• CS (Chip Select): Un valore basso su questo input attiva l’8255 per rispondere ai

segnali di RD e WR.

Altrimenti tali segnali vengono ignorati.

12 34 56 78 109 1112 1314 1516

1819 20 17

4039 3837 3635 3433 3231 3029 2827 2625

2322 21 24 PA3PA2

PA1PA0 RDCS GND A1

PC7A0 PC6PC5 PC4PC0 PC1PC2

PB0PB1 PB2 PC3

PA4PA5 PA6PA7 RESETWR

D0 D1 D2D3 D4D5 D6D7 PB7Vcc

PB5PB4 PB3 PB6

82558255

CS

(7)

Descrizone di Pins

• A1-0 (Address): questi input, in concomitanza con i

segnali RD e WR, seleziona una delle tre Porte oppure il Control Word Registers.

12 34 56 78 109 1112 1314 1516

1819 20 17

4039 3837 3635 3433 3231 3029 2827 2625

2322 21 24 PA3PA2

PA1PA0 RDCS GND A1

PC7A0 PC6PC5 PC4PC0 PC1PC2

PB0PB1 PB2 PC3

PA4PA5 PA6PA7 RESETWR

D0 D1 D2D3 D4D5 D6D7 PB7Vcc

PB5PB4 PB3 PB6

82558255

A1 A0

(8)

Descrizione dei Pins

0 0 1 0 0 Data Bus - Port A

0 1 1 0 0 Data Bus - Port B

1 0 1 0 0 Data Bus - Port C

1 1 1 0 0 Data Bus - Control Word

A1 A2 RD WR CS Output Operation(Write)

X X 1 1 0 Data Bus - 3° stato

X X X X 1 Data Bus - 3° stato

A1 A2 RD WR CS Funzioni disabilitate

0 0 0 1 0 Port A - Data Bus

0 1 0 1 0 Port B - Data Bus

1 0 0 1 0 Port C - Data Bus

1 1 0 1 0 Control Word - Data Bus

A1 A2 RD WR CS Input Operation(Read)

(9)

Descrizione dei Pins

• D7-0 (Data Bus): Bus bidirezionale a tre stati, connette l’8255 al bus di sistema.

12 34 56 78 109 1112 1314 1516

1819 20 17

4039 3837 3635 3433 3231 3029 2827 2625

2322 21 24 PA3PA2

PA1PA0 RDCS GND A1

PC7A0 PC6PC5 PC4PC0 PC1PC2

PB0PB1 PB2 PC3

PA4PA5 PA6PA7 RESETWR

D0 D1 D2D3 D4D5 D6D7 PB7Vcc

PB5PB4 PB3 PB6

82558255

• RESET: Un valore alto su questo input azzera i

registri di controllo e tutti i ports vengono impostati in modalità input mode.

RESET

(10)

Block Diagram

DATA BUS BUFFER

GROUP B

CONTROL

RESET RD WR A1 A0

Bidirezionale Data Bus

D7 - D0

I/O PA7 - PA0

I/O PC7 - PC4

I/O PC3 - PC0

I/O PA7 - PA0

GROUP A

CONTROL

GROUP A PORT C

UPPER

4 bit

GROUP B PORT C LOWER

4 bit

READ WRITE CONTROL

LOGIC

GROUP A PORT A

8 bit

GROUP B PORT B

8 bit

Mondo Esterno

Verso la CPU

(11)

Control Word

• La funzione di ciascun Porta è

programmata dal software di sistema. Ciò avviene tramite la CPU che invia una

control word al Data Buffer dell’8255.

• La control word contiene informazioni ( il modo, il bit set, il bit reset ecc.) per

l’inizializzazione delle funzionalità

dell’8255.

(12)

Modalità

• I 24 pins di I/O possono essere programmati in due gruppi di 12 (Gruppo A e Gruppo B) in 3 modi base di operare:

• Modo O - Basic Input/Output

• Modo 1 - Strobed Input/Output

• Modo2 - Bi-directional Bus

(13)

Modo 0 - Basic Input/Output

• In Modo 0, ciascun gruppo di 12 può essere programmato in insiemi di 4 e 8 per l’input e l’output.

8255

DATA BUS CONTROL BUSADDRESS BUS

D7 - D0

RD -WR A0 - A1

8 4 4 8

PB7 - PB0 PC3 - PC0 PC7 - PC4 PA7 - PA0

B C

A

I/O I/O I/O I/O

(14)

Modo 1 - Strobed Input/Output

• In Modo 1 ciascun gruppo può essere

programmato per avere 8 linee di input o output.

Tre dei rimanenti 4 pins sono usati per

l’handshaking e il controllo dell’interrupt.

8255

DATA BUS CONTROL BUSADDRESS BUS

D7 - D0

RD -WR A0 - A1

8 8

B C

A

I/O I/O

(15)

Modo 2 - Bi-directional Bus

• Nel Modo 2, otto linee (Port A) sono usate per un bus bidirezionale e cinque ( 4 Port C upper + 1 Port C lower) per handshaking.

8255

DATA BUS CONTROL BUSADDRESS BUS

D7 - D0

RD -WR A0 - A1

8

C A

Bi - Directional

I/O Control

(16)

Selezione dei Modi

• Quando il segnale di input RESET assume un valore alto tutte le ports saranno settate in input mode: le 24 linee saranno mantenute a un livello logico “uno” dall’ internal bus hold device.

• Quando il segnale di reset viene rimosso l’8255 può rimanere in input mode, senza aver bisogno di una ulteriore inizializzazione.

• Durante l’esecuzione del programma di sistema più di un modo può essere selezionato usando le appropriate istruzioni.

(17)

Selezione dei Modi

• La programmazione dei modi del Gruppo A e del Gruppo B possono essere combinati, così che le loro funzionalità possono essere compatibili per tutti i dispositivi di I/O.

• Per esempio il gruppo B può essere programmato in modo 0 per il controllo di un semplice

interruttore o di un display; mentre il gruppo A

può essere programmato in modo 1 per il controllo di una tastiera.

(18)

Mode Definition Format

• Le funzionalità del gruppo B vengono

programmate attraverso i primi tre bit della

control word (bit 0, 1, 2).

(19)

D7 D6 D5 D4 D3 D2 D1 D0

Port C (lower) 1 = INPUT 0 = OUTPUT PORT B

1 = INPUT 0 = OUTPUT Mode Selection 0 = Mode 0

1 = Mode 1

Gruppo B

Mode Definition Format Gruppo B

Control Word

D7=1

(20)

D7 D6 D5 D4 D3 D2 D1 D0

Port C (upper) 1 = INPUT

0 = OUTPUT PORT A

1 = INPUT 0 = OUTPUT Mode Selection 00 = Mode 0 01 Mode 1 1x mode 2

Gruppo A

Mode Definition Format Gruppo A

Control Word

D7=1

(21)

Set/Reset del singolo bit

• Gli 8 bits di Port C possono essere settati o resettati usando un’operazione di output (operazione di Bit Set/Reset).

D7 D6 D5 D4 D3 D2 D1 D0

Control Word Bit Set/Reset 1 = SET

0 = RESET

0 1 2 3 4 5 6 7 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1

b1 b2 b3

Bit Select

BIT SET/RESET FLAG 0 = ACTIVE

(22)

Interrupt Control Functioms

• Quando l’8255 è programmato per operare in

modo 1 o in modo 2, i segnali di controllo possono essere usati come segnale per la richiesta di

interrupt alla CPU.

• Il segnale di richiesta di interrupt, generato dalla Port C può essere inibito o attivato dal settaggio o resettaggio dell’INTE flip-flop associato, usando la funzione di Bit Set/Reset di Port C.

(23)

Mode 0 - Basic I/O

• Il modo 0 prevede semplici operazioni di input e output per ciascuna delle tre porte.

• Non è richiesto l’handshaking, il dato è semplicemente scritto o letto da una

specifica porta.

(24)

Modo 0 (Basic Input)

tHR

tRA

(25)

Modo 0 Basic Output

Tempo in cui il dato di output rimane stabile nel buffer dopo che WR è stato disattivato.

(26)

Modo 1 (Strobed I/O)

• Questa configurazione prevede per l’I/O dei dati, attraverso una specifica porta, l’utilizzo di segnali di controllo e di stato.

• In modo 1, Port A e Port B usano le linee

di Port C per generare o ricevere questi

segnali di handshaking.

(27)

Mode1 input (Port A)

PC4 PC5

PC3

Inte 8

A STBA

IBFA

INTRA 2 I/O

RD

PA7 . PA0

0 1 1 1/0 X X X 1

D6 D5 D4 D3 D2 D1 D0 D7

PC6,7 PC6,7

1=INPUT 0=OUTPUT

(28)

Mode1 input (Port B)

PC4 PC5

PC3

Inte 8

B STBB

IBFB

INTRB RD

PB7 . PB0

X X X X 1 1 X 1

D6 D5 D4 D3 D2 D1 D0 D7

(29)

Segnali di controllo dell’input per il Modo 1

• STB (Strobe Input). Un valore basso su questo input carica il dato nell’input latch.

• IBF (Input Buffer Full F/F). Un valore alto su questo output indica che il dato è stato caricato

nell’input latch. IBF è settato quando il segnale di input STB viene attivato, mentre viene resettato durante la fase crescente del segnale RD.

(30)

Segnali di controllo dell’input per il Modo 1

• INTR (Interrupt Request).Un valore alto su questo output può essere usato per inviare un interrupt alla CPU, quando un device di input richiede un

servizio.

• INTR è settato quando i segnali STB, IBF e INT assumono tutti e tre valore alto.

• INTR è resettato durante la fase di discesa del segnale RD.

– INT A: Controllato dal bit set/reset di PC4 – INT B: Controllato dal bit set/reset di PC2

(31)

Modo 1 Strobed Input

tST

tSIB tSIT tRIT

tRIB

tPH tPS

STB IBF INTR

RD

Input dalla Periferica

(32)

Mode 1 output (Port A)

PC7 PC6

PC3

8 InteA

OBFA ACKA

INTRA WR 2

PA7 . PA0

0 1 0 1/0 X X X 1

D6 D5 D4 D3 D2 D1 D0 D7

PC4,5 PC4,5

1=INPUT 0=OUTPUT

(33)

Mode 1 output (Port B)

PC1 PC2

PC0

8 InteB

OBFB ACKB

INTRB WR

PA7 . PA0

X X X X 1 0 X 1

D6 D5 D4 D3 D2 D1 D0 D7

(34)

Segnali di controllo dell’output per il Modo 1

• OBF (Output Buffer Full F/F). Questo output

assumerà un valore basso per indicare che la CPU ha scritto il dato sulla porta in questione. L’OBF sarà settato dal segnale WR durante la sua fase di crescita.

• ACK (Acknowledge Input). Un valore basso su questo input informa l’8255 che il dato per la Port

A o per la Port B, è stato accettato.

• Si tratta di una risposta del device periferico per indicare che ha ricevuto il dato di output della CPU.

(35)

Segnali di controllo dell’output per il Modo 1

• INTR(Interrupt Request). Un valore alto su questo output può essere usato come interrupt alla CPU, quando un output device accetta un dato che gli è stato trasmesso dalla CPU.

• INTR è settato quando ACK e OBF e INTE assumono tutti e tre il valore uno.

• E’ resettato durante la fase di crescita di WR.

– INTE A: controllato dal bit set/reset di PC6. – INTE B: è controllato dal bit set/reset di PC2.

(36)

Modo 1 strobed output

WR

OBF

INTR

ACK

OUTPUT

tWIT

tAK tAIT tAOB

tWB tWOB

(37)

Mode 2 (Bidirectional Bus)

• Il modo 2 è una configurazione, usata sola per Port A, in grado di comunicare con

device periferici o strutture attraverso un singolo bus di 8 bit , per trasmettere e

ricevere dati (bus di I/O bidirezionale).

• I segnali di hanshaking hanno la funzione di

disciplinare il flusso all’interno del bus.

(38)

Mode Port A

PC3

PC7 PC6

PC4 PC5

INTE 1 INTE

2

INTRA

OBFA ACKA

STBA

PC2-0 I/O

IBFA PA7 -PA0 8

1 X X X 1/01/01/0 1

D6 D5 D4 D3 D2 D1 D0 D7

PC2-0

1 = INPUT 0 = OUTPUT PORT B

1 = INPUT 0 = OUTPUT GROUP B MODE 1 = INPUT

0 = OUTPUT

WR RD

(39)

Segnali di controllo il Modo 2 (operazioni di output)

• INTR (Interrupt request). Un valore alto su questo output può essere usato per inviare un interrupt alla CPU per richiedere

operazioni di input o di output.

• OBF (Output Butter Full). Un valore basso

su questo input indica che la CPU ha scritto

il dato sulla Port A

(40)

Segnali di controllo il Modo 2 (operazioni di output)

• ACK (Acknowledge). Un valore basso su questo input attiva il tri-state del buffer di Port A in stato di output per inviare in uscita il dato.

• In caso contrario il tri-state del buffer sarà in stato di alta impedenza.

• INTE 1 (The INTE Flip Flop Associato con

OBF). Controllato dal bit/set reset di PC

6

.

(41)

Segnali di controllo il Modo 2 (operazioni di input)

• STB (Strobe Input). Un valore basso su questo input carica il dato nel input latch.

• IBF (Input Buffer Full F/F). Un valore alto su questo output indica che il dato è stato caricato sul latch di input.

• INTE 2 (The INTE Flip-Flop Associato with

IBF). Controllato dal bit set/reset di PC

4

.

(42)

WR OBF INTR ACK STB

IBF

Periferical Bus

RD

tWOB

tAOB

tAK

tKD tAD

tPS tSIB

tST

tPH tRB

Modo 2

Riferimenti

Documenti correlati

Settori – Tipologia di impianti di trasformazione/elaborazione Domanda Finale – Consumi finali dei prodotti per settori e/o destinazione.. Energy SUT aggregata toscana: 2015..

A major issue that we have to tackle when we use the IRIC-IOT table to compute Italian re- gions’ DVA in outflows and exports is dealing with the ‘Rest of the world’ (Row), which is

Modifica della CPU multi-ciclo per la gestione delle eccezioni Esempio di SW di risposta ad un’eccezione /

¨  Se la stringa di formato contiene un white space, la scanf legge zero o più white space, che verranno scartati, fino al primo carattere non white space.

Freud ci insegna che lo psicotico «tratta le parole come cose», e una volta che sappiamo che nel Sistema Inconscio disponiamo soltanto di rappresentazioni di cose, la parola

 An efficient means of transferring data directly between I/O and memory for large data transfers since programmed I/O is suitable only for slow devices and individual

whose name is distinct from all other existing files, and opens the file for binary writing and reading (as if the mode string "wb+" were used in an fopen() call). If

 saves pertinent information including last instruction executed and data values in registers in the PCB (process control block).  branches to