13
Dispense del corso di Architettura dei Calcolatori Architettura dei Calcolatori Porta parallela 8255

Architettura dei Calcolatori 13 Porta Parallela 8255

Embed Size (px)

Citation preview

Dispense del corso diArchitettura dei CalcolatoriArchitettura dei Calcolatori

Porta parallela 8255

Architettura dei calcolatori a.a. 2007/2008

Porta parallela

• Esempio di periferica: la porta parallela Intel 8255• Gestione differenziata e programmabile di tre porte parallele bidirezionali (input ed output);

tre porte ABC ed un registro di controllo; Il dispositivo occupa 4 locazioni di indirizzotre porte ABC ed un registro di controllo; Il dispositivo occupa 4 locazioni di indirizzo

CS**

PA0-PA7

8

8CS*

WR*RD*A0A1RESET

PB0-PB7

PC0-PC78

8

IORD*IOWR*

RESET

8255

RESETD0 - D78

RESET

Interfaccia con la CPU interfaccia con l’esterno

Parte 3

Architettura dei calcolatori a.a. 2007/2008

8255A

Parte 3

Architettura dei calcolatori a.a. 2007/2008

Esempio di uso

• Nei PC x386 esempio di uso in modo 1 (polling)

Parte 3

Architettura dei calcolatori a.a. 2007/2008

8255 Programmazione

• Per dettagli si veda il manuale su Web

• Programmazione: • Lettura / scrittura da ogni porta; (ReadA,B,C, Write A,B,C)• Programmazione della parola di controllo: modo e direzione per ogni porta; (Write Control) • Scrittura di un singolo bit (porta C) con Write Control

A1 A0 RD* WR* CS*x x x x 1 TRI-STATEx x 1 1 0 TRI-STATE0 0 0 1 0 Read A0 0 1 0 0 Write A0 1 0 1 0 Read B0 1 1 0 0 Write B1 0 0 1 0 Read C1 0 1 0 0 Write C1 1 1 0 0 Write Control

Parte 3

Architettura dei calcolatori a.a. 2007/2008

PPI 8255

• Struttura interna GROUPA

CNTR

A

DATABUF C HIGH

D0-D7

READWRITE

BUF

C LOW

RD*WR*CS*

GROUPB

CNTR

WRITECNTR

C LOW

B

CSA1A0

RESET

Modalita’ di trasferimento1) basic i/o

CNTR

1) basic i/oLA CPU MASTER DECIDE SENZA SINCRONIZZAZIONE I TEMPI DI LETTURA E SCRITTURA SULLA PORTA

2) strobed i/o2) strobed i/oL'INTERFACCIA CON L'ESTERNO E' SINCRONIZZATA DA UN PROTOCOLLO AD HANDSHAKE

3) strobed I/O bidirezionale3) strobed I/O bidirezionalecon doppio handshake in trasmissione e ricezione

Parte 3

Architettura dei calcolatori a.a. 2007/2008

Parola di controlloESEMPIO

Control WordGRUPPO BGRUPPO A

MODE SET FLAG1=ACTIVE

ESEMPIO: PORTA C LOW = INPUTPORTA C HIGH = OUTPUTPORTA B = OUT MODO 1PORTA A IN MODO O

A

MODE SELECTION00=MODE 001 MODE 1

PORTA A = IN MODO OCONTROL WORD = 10010101=95HC LOW

1=INPUT0=OUTPUT

MODE SELECTION

C HIGH1=INPUT

A 1=INPUT

0=OUTPUT

01=MODE 11X=MODE 2

0 OUTPUTB 1=INPUT

0=OUTPUT

MODE SELECTION0=MODE 01=MODE 1

0=OUTPUT

7 6 5 4 3 2 1 0PORTA C SET/RESET

1=SETNONUTILIZZATI 0=RESET

0 0 0 Bit 00 0 1 Bit 10 1 0 Bit 2

UTILIZZATI

SET/RESET FLAG0=ACTIVE

Parte 3

0 1 1 Bit 3...................... Bit n1 1 1 Bit 7

0 ACTIVE

Architettura dei calcolatori a.a. 2007/2008

Temporizzazione in lettura modo 0

Parte 3

Architettura dei calcolatori a.a. 2007/2008

Temporizzazione in scrittura modo 0

Parte 3

Architettura dei calcolatori a.a. 2007/2008

Handshake di scrittura (modo 1)

INTEB= FF 2 del registro C

INTEA= FF 6 del registro C

Alcuni pin della porta C sono usati come segnali disono usati come segnali dicontrollo: in questo caso il pin esterno corrispondenteè disconnesso dalè disconnesso dal flip flop interno della porta C

Out DX,AL

Parte 3

Architettura dei calcolatori a.a. 2007/2008

Handshake di lettura (modo 1)

INTEA= FF 4 del registro C

INTEB= FF 2 del registro C

Parte 3

Architettura dei calcolatori a.a. 2007/2008

Driver della PPI

• Viene considerato rispetto allo spazio di indirizzamento dell’ 8086 ( indirizzi pari cosi’ con il bus dei dati a 16 bit la parola di controllo e’ sempre collegata dai bit 0..7);------------------8255---------------------;indirizzi e parola di controllo 8255pio_addr equ ____h ;indirizzo 8255pio_a_addr equ pio_addr+0;indirizzo porta a

i b dd i dd +2 i di i t bpio_b_addr equ pio_addr+2;indirizzo porta bpio_c_addr equ pio_addr+4;indirizzo porta cpio_contr_addr equ pio_addr+6;indirizzo controllopio contr word equ 1 b ;pio_contr_word equ 1_______b ;pio_c_word equ 0000____b ;ind.set/reset porta c

INIZ_55 proc nearmov DX,PIO_CONTR_ADDRmov AL,PIO_CONTR_WORDout DX,ALmov AL PIO C WORDmov AL,PIO_C_WORDout DX,ALret

INIZ 55 endp_ p

Parte 3

Architettura dei calcolatori a.a. 2007/2008

Driver

assume CS:codice, DS:DATICODICE segment; procedure INIZ_55 proc INIZ_55 endpSTART:

mov ax DATImov ax,DATImov ds,axmov ax,STACK_Smov ss,ax

; strobe su porta cmov dx,pio_contr_addrmov al, C2_ON

t d l,mov sp,offset S_TOP

;inizializzazione 8255

out dx,almov al, C2_OFFout dx,aljmp START

call INIZ_55;carico i valori che voglio vedere sui

mov al, PORTAA_WORDmov dx pio a addr

j pCODICE endsEND START

mov dx,pio_a_addrout dx,al

Parte 3