Arqui Cap 9 PPI

Interfase Periférica Programable (PPI – 8255) Cap.9 Arquitectura de computadoras Objetivos Definir qué es una interfa

Views 52 Downloads 3 File size 317KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Interfase Periférica Programable (PPI – 8255) Cap.9

Arquitectura de computadoras

Objetivos Definir qué es una interfase periférica programable y para qué sirve.  Identificar su estructura interna.  Identificar sus modos de operación y cómo se programa. 

Interfase Periférica Programable 1

Introducción.

2

Estructura interna.

3

Programación y modos de operación.

Introducción La Interfase Periférica Programable (Programmable Peripheral Interface, PPI) 8255 es un componente para interfase muy popular y de bajo costo presente en muchas aplicaciones.  Es utilizado como interfase entre un microprocesador y cualquier dispositivo de E/S compatible con tecnología TTL. 

Introducción El PPI cuenta con 24 pines para E/S los cuales son programables en grupos de 12 pines cada uno.  Cuentan con varios modos de operación. 

 Uno

de sus grupos cuenta con tres modos de operación.

Introducción 

El 82C55 (versión CMOS) requiere la inserción de periodos de espera si trabaja con un microcontrolador que trabaje a más de 8MHz.  Puesto

que los dispositivos de E/S son relativamente lentos en comparación con un microprocesador, los periodos de espera no impactan significativamente con la velocidad del sistema.

Introducción 

El 82C55 aun cuenta con aplicaciones  En

los computadores personales (aun en computadores con procesador Pentium 4) el 82C55 es usado para interfase con el teclado y el puerto paralelo de impresora (aunque éste pueda ya no estar como un componente discreto, encontrándose incorporadas sus funciones al chipset).

Introducción El PPI cuenta con 24 pines para E/S los cuales son programables en grupos de 12 pines cada uno.  Vcc = pin 26 Gnd = pin 7 

34 33 32 31 30 29 28 27

5 36 9 8 35 6

D0 D1 D2 D3 D4 D5 D6 D7

RD WR A0 A1 RESET CS

82C55

PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10

Estructura Interna del PPI Tiene tres puertos de E/S: A, B y C.  Los puertos son programables por grupos: 

 El

grupo A está formado por el puerto A (PA7-PA0) y la mitad superior del puerto C (PC7-PC4).  El grupo B está formado por el puerto B (PB7-PB0) y la mitad inferior del puerto C (PC3-PC0).

Estructura Interna del PPI 

El 82C55 cuenta con seis pines de control: RD, WR, A0, A1, RESET, CS.  

 



RD: utilizada para seleccionar una operación de lectura. Se activa en BAJA. WR: utilizada para seleccionar una operación de escritura. Se activa en BAJA. A0, A1: permiten seleccionar un registro interno del PPI para programación u operación. RESET: para reiniciar al PPI (todos los puertos como puertos de entrada en modo 0). CS: (chip select) utilizada para seleccionar al PPI para programación o para lectura o escritura de uno de sus puertos. Se activa en BAJA.

Estructura Interna del PPI 

Asignación de los puertos de E/S para el 82C55. A1

A0

Función

0

0

Puerto A

0

1

Puerto B

1

0

Puerto C

1

Registro de Comando

1

Estructura Interna del PPI 

En los computadores personales el 82C55 o su equivalente es mapeado en las direcciones de puerto 60H63H.  Se

emplea para control de teclado, así como para control de parlante, temporizador y otros dispositivos internos como expansión de memoria.

Programación  

El 82C55 es programado a través de dos registros de control internos. Al recibir un comando por sus líneas de datos el PPI determina a cual registro de control va dirigido dicho comando de acuerdo al valor de su bit más significativo:  

1: Registro de control A 0: Registro de control B.

Programación Byte de control A 7

6

5

4

3

2

1

0

1 Grupo A

Grupo B PortC (PC3 – PC0) 1 = entrada 0 = salida

Modo 00 = modo 0 01 = modo 1 1X = modo 2

PortB 1 = entrada 0 = salida

PortA 1 = entrada 0 = salida

Modo 0 = modo 0 1 = modo 1

PortC (PC7 – PC4) 1 = entrada 0 = salida

Byte de control B 7

6

5

4

3

2

1

0

0 X X X

Selección de un bit del puerto C

Set/Reset de Bit 0 = set 1 = reset

Programación: Modo 0 

EL modo de operación 0 causa que el 82C55 funcione o como buffer de entrada o como latch de salida. Es decir, los puertos A, B y C pueden ser individualmente programados como puertos de entrada o salida. El puerto C es dividido en dos grupos de 4 bits (nibble), programados cada uno de manera independiente.

Programación: Modo 1 





El modo de operación 1 permite la implementación de una comunicación paralela unidireccional. En este modo el puerto A y/o el puerto B pueden ser configurados como un registro de entrada. Esto permite que los datos externos enviados se almacenen en el puerto hasta que el microprocesador esté listo para leerlos. El puerto C se utiliza para gestionar las señales de reconocimiento o control que hacen funcionar al puerto A y/o al puerto B como puertos de entrada mediante una señal estroboscópica.

Programación: Modo 2 El modo de operación 2 permite la implementación de una comunicación paralela bidireccional.  Este modo sólo es válido para el grupo A, donde el puerto A se vuelve bidireccional permitiendo transmitir y recibir datos en los 8 bits del bus. 

Ejemplos de empleo Interfaz para conectar 8 displays de 7 segmentos con un microprocesador 8088 a través de un PPI 39

D0

D1

D2

D3

D5

D6

D6

D7

2N2907

2.2K

34 33 32 31 30 29 28 27

D0 D1 D2 D3 D4 D5 D6 D7

5 36 9 8 35 6

IORC IOWC A1 A2 RESET

A7 A3 A4

A6 A5 A0

1 2 3

6 4 5

A B C

G1 G2A G2B

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

15 14 13 12 11 10 9 7

D0 D1 D2 D3 D4 D5 D6 D7

RD WR A0 A1 RESET CS

82C55

PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

4 3 2 1 40 39 38 37

2N2222

18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10

Vcc

690

Ejemplos de empleo Interfaz para controlar un motor de paso. Adicionalmente se controla un teclado matricial y un display LCD. VCC

34 33 32 31 30 29 28 27

5 36 9 8 35 6

D0 D1 D2 D3 D4 D5 D6 D7

RD WR A0 A1 RESET CS

PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

4 3 2 1 40 39 38 37

D0 D1 D2 D3 D4 D5 D6 D7

18 19 20 21 22 23 24 25

R/W RS E

Vee

10K

VCC

Display LCD 4 líneas x 20

15

14 15 16 17 13 12 11 10

LEDA LEDK

Motor de paso 10K

10K

12 V

10K

10K

82C55

VCC 10K 10K 10K 10K