SlideShare a Scribd company logo
1 of 13
Download to read offline
Dispense del corso di
Architettura dei Calcolatori


      Porta parallela 8255
a.a. 2007/2008
Architettura dei calcolatori


                                            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 indirizzo




                                                                           8
                                                  PA0-PA7
                                        CS*
            CS*                                                           8
                                        WR**
            IOWR*                                 PB0-PB7
                                        RD*
           IORD*                                                           8
                                        A0
                                                  PC0-PC7
                                        A1
           RESET                        RESET
                                        D0 - D7
                               8
            Interfaccia con la CPU                                   interfaccia con l’esterno
                                                    8255




                                                   Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                               8255A




                                Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                                  Esempio di uso

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




                                        Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                                     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-STATE
        x   x  1   1    0        TRI-STATE
        0   0   0  1    0        Read A
        0   0   1  0    0        Write A
        0   1   0  1    0        Read B
        0   1   1  0    0        Write B
        1   0   0  1    0        Read C
        1   0   1  0    0        Write C
        1   1   1  0    0        Write Control




                                                 Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                                         PPI 8255
                                                         GROUP     A
 •      Struttura interna                                  A
                                                          CNTR
                               D0-D7
                                       DATA
                                                                 C HIGH
                                       BUF


                                RD*
                                WR*    READ
                                                                 C LOW
                                CS
                                CS*    WRITE
                                A1     CNTR
                                A0
                                                         GROUP
                               RESET
                                                           B      B
                                                          CNTR


 Modalita’ di trasferimento
 1) basic i/o
     LA CPU MASTER DECIDE SENZA SINCRONIZZAZIONE I TEMPI DI LETTURA E
     SCRITTURA SULLA PORTA
 2) strobed i/o
     L'INTERFACCIA CON L'ESTERNO E' SINCRONIZZATA DA UN PROTOCOLLO AD
     HANDSHAKE
 3) strobed I/O bidirezionale
     con doppio handshake in trasmissione e ricezione

                                               Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                                                     Parola di controllo
                                                                                            ESEMPIO:
                                                                                            ESEMPIO
          MODE SET FLAG                         Control Word                                PORTA C LOW = INPUT
            1=ACTIVE
                                                       GRUPPO B                             PORTA C HIGH = OUTPUT
                      GRUPPO A
                                                                                            PORTA B = OUT MODO 1
                                                                                            PORTA A = IN MODO O
                                                                                            CONTROL WORD
                                                                                  C LOW
                                                                                            = 10010101=95H
            MODE SELECTION
                                                                                 1=INPUT
              00=MODE 0
                                                                                 0 OUTPUT
                                                                                 0=OUTPUT
                                                A
              01=MODE
              01 MODE 1
                                        1=INPUT                               B 1=INPUT
              1X=MODE 2
                                      0=OUTPUT                                  0=OUTPUT
                                                 C HIGH
                                               1=INPUT MODE SELECTION
                                             0=OUTPUT     0=MODE 0
                                                          1=MODE 1
                                 PORTA C SET/RESET
          7        6           5   4     3    2    1    0


                                 NON
                                                                                   1=SET
                               UTILIZZATI
                                                                                  0=RESET
                                             0         0         0    Bit 0
                                             0         0         1    Bit 1
              SET/RESET FLAG
                                             0         1         0    Bit 2
                 0 ACTIVE
                 0=ACTIVE                    0         1         1    Bit 3
                                             ......................   Bit n
                                             1         1         1    Bit 7

                                                                        Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                               Temporizzazione in lettura modo 0




                                             Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                               Temporizzazione in scrittura modo 0




                                              Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                               Handshake di scrittura (modo 1)

                                                                 INTEA= FF 6 del registro
                                                                 C
                                                                 INTEB= FF 2 del registro
                                                                 C



                                                            Alcuni pin della porta C
                                                            sono usati come segnali di
                                                            controllo: in questo caso il
                                                            pin esterno corrispondente
                                                            è disconnesso dal
                                                            flip flop interno della porta C
    Out DX,AL




                                            Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                               Handshake di lettura (modo 1)



                                                               INTEA= FF 4 del registro C

                                                               INTEB= FF 2 del registro C




                                           Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                                                 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 8255
        pio_addr           equ      ____h ;indirizzo 8255
        pio_a_addr          equ pio_addr+0;indirizzo porta a
        pio_b_addr
          i b dd            equ pio_addr+2;indirizzo porta b
                                     i    dd +2 i di i    t
        pio_c_addr          equ pio_addr+4;indirizzo porta c
        pio_contr_addr equ pio_addr+6;indirizzo controllo
        pio_contr_word
        pio contr word equ 1          1_______b ; b
        pio_c_word           equ 0000____b ;ind.set/reset porta c

        INIZ_55 proc near
                  mov DX,PIO_CONTR_ADDR
                  mov AL,PIO_CONTR_WORD
                  out DX,AL
                  mov AL PIO C WORD
                       AL,PIO_C_WORD
                  out DX,AL
                  ret
        INIZ_55 endp
                   p



                                                          Parte 3
a.a. 2007/2008
Architettura dei calcolatori


                                                 Driver

        assume CS:codice, DS:DATI
        CODICE segment
        ; procedure
         INIZ_55 proc
         INIZ_55 endp
        START:
               mov ax DATI
                    ax,DATI
                                                            ; strobe su porta c
               mov ds,ax
                                                                       mov dx,pio_contr_addr
               mov ax,STACK_S
                                                                        mov al, C2_ON
               mov ss,ax
                      ,
                                                                        out dx,al
                                                                          td l
               mov sp,offset S_TOP
                                                                        mov al, C2_OFF
                                                                        out dx,al
        ;inizializzazione 8255
                                                                       jp
                                                                       jmp START
                 call INIZ_55                               CODICE ends
        ;carico i valori che voglio vedere sui              END START
                 mov al,      PORTAA_WORD
                 mov dx pio a addr
                       dx,pio_a_addr
                 out dx,al




                                                  Parte 3

More Related Content

More from Majong DevJfu

8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
Majong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
Majong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
Majong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
Majong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
Majong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
Majong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
Majong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
Majong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
Majong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
Majong DevJfu
 

More from Majong DevJfu (20)

8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 

Architettura dei Calcolatori 13 Porta Parallela 8255

  • 1. Dispense del corso di Architettura dei Calcolatori Porta parallela 8255
  • 2. a.a. 2007/2008 Architettura dei calcolatori 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 indirizzo 8 PA0-PA7 CS* CS* 8 WR** IOWR* PB0-PB7 RD* IORD* 8 A0 PC0-PC7 A1 RESET RESET D0 - D7 8 Interfaccia con la CPU interfaccia con l’esterno 8255 Parte 3
  • 3. a.a. 2007/2008 Architettura dei calcolatori 8255A Parte 3
  • 4. a.a. 2007/2008 Architettura dei calcolatori Esempio di uso • Nei PC x386 esempio di uso in modo 1 (polling) Parte 3
  • 5. a.a. 2007/2008 Architettura dei calcolatori 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-STATE x x 1 1 0 TRI-STATE 0 0 0 1 0 Read A 0 0 1 0 0 Write A 0 1 0 1 0 Read B 0 1 1 0 0 Write B 1 0 0 1 0 Read C 1 0 1 0 0 Write C 1 1 1 0 0 Write Control Parte 3
  • 6. a.a. 2007/2008 Architettura dei calcolatori PPI 8255 GROUP A • Struttura interna A CNTR D0-D7 DATA C HIGH BUF RD* WR* READ C LOW CS CS* WRITE A1 CNTR A0 GROUP RESET B B CNTR Modalita’ di trasferimento 1) basic i/o LA CPU MASTER DECIDE SENZA SINCRONIZZAZIONE I TEMPI DI LETTURA E SCRITTURA SULLA PORTA 2) strobed i/o L'INTERFACCIA CON L'ESTERNO E' SINCRONIZZATA DA UN PROTOCOLLO AD HANDSHAKE 3) strobed I/O bidirezionale con doppio handshake in trasmissione e ricezione Parte 3
  • 7. a.a. 2007/2008 Architettura dei calcolatori Parola di controllo ESEMPIO: ESEMPIO MODE SET FLAG Control Word PORTA C LOW = INPUT 1=ACTIVE GRUPPO B PORTA C HIGH = OUTPUT GRUPPO A PORTA B = OUT MODO 1 PORTA A = IN MODO O CONTROL WORD C LOW = 10010101=95H MODE SELECTION 1=INPUT 00=MODE 0 0 OUTPUT 0=OUTPUT A 01=MODE 01 MODE 1 1=INPUT B 1=INPUT 1X=MODE 2 0=OUTPUT 0=OUTPUT C HIGH 1=INPUT MODE SELECTION 0=OUTPUT 0=MODE 0 1=MODE 1 PORTA C SET/RESET 7 6 5 4 3 2 1 0 NON 1=SET UTILIZZATI 0=RESET 0 0 0 Bit 0 0 0 1 Bit 1 SET/RESET FLAG 0 1 0 Bit 2 0 ACTIVE 0=ACTIVE 0 1 1 Bit 3 ...................... Bit n 1 1 1 Bit 7 Parte 3
  • 8. a.a. 2007/2008 Architettura dei calcolatori Temporizzazione in lettura modo 0 Parte 3
  • 9. a.a. 2007/2008 Architettura dei calcolatori Temporizzazione in scrittura modo 0 Parte 3
  • 10. a.a. 2007/2008 Architettura dei calcolatori Handshake di scrittura (modo 1) INTEA= FF 6 del registro C INTEB= FF 2 del registro C Alcuni pin della porta C sono usati come segnali di controllo: in questo caso il pin esterno corrispondente è disconnesso dal flip flop interno della porta C Out DX,AL Parte 3
  • 11. a.a. 2007/2008 Architettura dei calcolatori Handshake di lettura (modo 1) INTEA= FF 4 del registro C INTEB= FF 2 del registro C Parte 3
  • 12. a.a. 2007/2008 Architettura dei calcolatori 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 8255 pio_addr equ ____h ;indirizzo 8255 pio_a_addr equ pio_addr+0;indirizzo porta a pio_b_addr i b dd equ pio_addr+2;indirizzo porta b i dd +2 i di i t pio_c_addr equ pio_addr+4;indirizzo porta c pio_contr_addr equ pio_addr+6;indirizzo controllo pio_contr_word pio contr word equ 1 1_______b ; b pio_c_word equ 0000____b ;ind.set/reset porta c INIZ_55 proc near mov DX,PIO_CONTR_ADDR mov AL,PIO_CONTR_WORD out DX,AL mov AL PIO C WORD AL,PIO_C_WORD out DX,AL ret INIZ_55 endp p Parte 3
  • 13. a.a. 2007/2008 Architettura dei calcolatori Driver assume CS:codice, DS:DATI CODICE segment ; procedure INIZ_55 proc INIZ_55 endp START: mov ax DATI ax,DATI ; strobe su porta c mov ds,ax mov dx,pio_contr_addr mov ax,STACK_S mov al, C2_ON mov ss,ax , out dx,al td l mov sp,offset S_TOP mov al, C2_OFF out dx,al ;inizializzazione 8255 jp jmp START call INIZ_55 CODICE ends ;carico i valori che voglio vedere sui END START mov al, PORTAA_WORD mov dx pio a addr dx,pio_a_addr out dx,al Parte 3