architettura dei calcolatori 13 porta parallela 8255

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

Upload: majong-devjfu

Post on 25-Jul-2015

561 views

Category:

Technology


3 download

TRANSCRIPT

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