Upload
majong-devjfu
View
562
Download
3
Embed Size (px)
Citation preview
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
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
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