Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
El PPI 8255 su conexión y programación
: Aprender a programar y aplicar adaptadores adaptadores de interfase programables programables paralelos (PPI 8255)
INTRODUCCIÓN: El circuito PPI (Interfaz Periférica Programable) 8255A de Intel es un dispositivo programable de entrada/salida de propósito general diseñando para ser usado con microprocesadores Intel. Tiene 24 terminales de entrada/salida las cuales se pueden programar individualmente en 2 grupos de 12 y se puede utilizar en 3 diferentes modos de operación. La figura nos muestra muestra la distribución de terminales terminales del chip y la estructura interna de este dispositivo.
Buffer del Bus de Datos Buffer bidireccional de 8 bits con habilidad habilidad de tercer estado en sus sus terminales. Se utiliza para conectar el PPI al bus de datos del sistema. Los datos son transmitidos o recibidos por el buffer a través del programa , con las instrucciones de entrada o de salida. Las palabras de control y el estado de la información también se transmiten a través del buffer.
Lógica de Control de Lectura/Escritura Este bloque maneja todas las transferencias internas y externas relacionadas con los Datos, Control o Palabras de Estado. Acepta entradas provenientes de los buses de Control y Direcciones del CPU y emite comandos a los controles controles de grupos.
CS
M.C. Carlos E. Canto Quintal
- 38 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
Selección del chip. Un bajo en la entrada de esta terminal, habilita la comunicación entre el 8255A y la CPU.
RD (READ) Lectura. Un bajo en la entrada de esta terminal, habilita al 8255A para enviar el dato o estado de la información al CPU a través del bus de datos. Esto permite al CPU leer del 8255A.
WR (WRITE) Escritura. Un bajo en la entrada de esta terminal, habilita al CPU para escribir datos o palabras de control al 8255A.
Microprocesadores
EL PPI 8255
DIAGRAMA DE BLOQUES DEL 8255 Control Control del del grupo grupoAA
BUS DE DATOS
D0-D7 RD WR A0 A1
Buffer Bufferde de bus busde de datos datos
Lógica Lógicade de control control de de escritura/ escritura/ lectura lectura
BUS DE DATOS INTERNO 8 BITS
Control Control del del grupo grupoBB
Grupo GrupoAA Puerto PuertoAA
E/S PA0-PA7
Grupo GrupoAA Puerto PuertoCC 44altos altos
E/S PC7-PC4
Grupo GrupoBB Puerto PuertoCC 44bajos bajos
E/S PC3-PC0
Grupo GrupoBB Puerto PuertoBB
E/S PB7-PB0
RESET CS
Carlos Canto Q.
A0 y A1 Estas señales de entrada, en conjunto con las señales RD y WR, controlan la selección de uno de los tres puertos o los registros de la palabra de control. Normalmente se conectan a los bits menos significativos del bus de direcciones (A0 y A1).
Reset Reinicialización. Un alto en la entrada de esta terminal limpia el registro de control y todos los puertos (A, B, C) son colocados en el modo de entrada.
M.C. Carlos E. Canto Quintal
- 39 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
Puertos A, B, C El 8255A contiene 3 puertos (A, B, C) de 8 bits cada uno. Todos pueden ser configurados en una variedad de modos funcionales a través del software desde el sistema, pero cada uno tiene sus características especiales.
Puerto A. Como puerto de salida de datos de 8 bits tiene latch y buffer y como latch de entrada de datos de 8 bits. Puerto B. Una entrada/salida de datos de 8 bits con latch/buffer y una entrada de datos de 8 bits con buffer. Microprocesadores
D0-D7
BUS DE DATOS
RESET CS
ENTRADA DE RESET SELECCIÓN DE CHIP
RD
ENTRADA DE LECTURA
WR A0,A1
ENTRADA DE ESCRITURA DIRECCIÓN DE PUERTOS
PA7-PA0 PB7-PB0
PUERTO A PUERTO B
PC7-PC0
PUERTOC
VCC
ALIMENTACIÓN +5V
G ND
TIERRA
PA 3 PA 2 PA 1 PA 0 RD CS G ND A1 A0 PC 7 PC 6 PC 5 PC 4 PC 0 PC 1 PC 2 PC 3 PB 0 PB 1 PB 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
PA 4 PA 5 PA 6 PA 7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VC C PB 7 PB 6 PB 5 PB 4 PB 3
Carlos Canto Q.
Puerto C. Una salida de datos de 8 bits latch/buffer y una entrada de datos de 8 bits buffer únicamente. Este puerto puede ser dividido en dos puertos de 4 bits bajo el modo de control. Cada puerto de 4 bits contiene un latch de 4 bits y este puede ser usado para el control de las señales de estado de entrada en conjunto con los puertos A y B. Selección del modo Hay tres modos básicos de operación que pueden ser seleccionados por el software del sistema usando la palabra de control correspondiente: Modo 0. Modo básico de entrada/salida. Modo 1. Modo de "Strobe" de entrada/salida. Modo 2. Modo de bus bidireccional.
PALABRA DE CONTROL Antes de poder usar el PPI, primero debe ser configurado, inicializado o programado. La forma en la que se hace esto, es escribiendo através del programa una palabra (byte) de control al registro de control. Se programa en grupos, se tiene el grupo A y el grupo B La palabra de control de programación de modo, consta de 8 bits que van desde D0 hasta D7, donde D0 es el bit menos significativo (LSB) y D7 es el bit más significativo (MSB). M.C. Carlos E. Canto Quintal
- 40 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
Microprocesadores
EL PPI 8255 PALABRA DE CONTROL
GRUPO GRUPOBB Puerto PuertoCC(bits (bitsbajos) bajos) 1=entrada 1=entrada 0=salida 0=salida Puerto PuertoBB 1=entrada 1=entrada 0=salida 0=salida Selección Seleccióndedemodo modo 0=modo 0=modo00 1=modo1 1=modo1
D7 D7 D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0
FORMATO DE LA DEFINICIÓN DEL MODO
GRUPO GRUPOAA Puerto PuertoCC(bits (bitsaltos) altos) 1=entrada 1=entrada 0=salida 0=salida Puerto PuertoAA 1=entrada 1=entrada 0=salida 0=salida Selección Seleccióndedemodo modo 00=modo 00=modo00 01=modo1 01=modo1 1x=modo2 1x=modo2
Bandera Banderadedeactivar activarmodo modo 1=activo 1=activo
Carlos Canto Q.
Microprocesadores
EL PPI 8255 PALABRA DE CONTROL D7 D7 D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0
X
X
X
BitBitset/ set/rest rest 1=set 1=set 0=reset 0=reset Bit seleccionado 0 1 2 3 4 5 6 7
No importa
0 1 0 0 1 1 1 1 B0 0 0 1 1 0 0 1 1 B1 0 0 0 1 0 1 0 1 B2
bandera banderadedeactivar/desactivar activar/desactivarbitbit 0=activo 0=activo
FORMATO PARA ACTIVAR/DESACTIVAR UN BIT DEL PUERTO C Carlos Canto Q.
M.C. Carlos E. Canto Quintal
- 41 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
El grupo A: formado por el puerto A y Puerto C [superior (C7 - C4)] ElGrupo B : formado por el Puerto B y Puerto C [inferior (C3 - C0)] Al registro de control solo se puede escribir, no se permite la operación de lectura de la palabra de control.
Microprocesadores
EL PPI 8255
Tabla de verdad de la operación del PPI 8255 A1
A0
RD
WR
CS
0
0
0
1
0
Puerto A
bus de datos
0
1
0
1
0
Puerto B
bus de datos
0
Puerto C
Bus de Datos
1 .
0 .
0 .
1 .
.
operación de entrada (leer)
operación salida (escribir)
0
0
1
0
0
Bus de datos
puerto A
0
1
1
0
0
Bus de datos
puerto B
1
0
1
0
0
Bus de datos
puerto C
1
1
1
0
0
Bus de datos
reg. control
.
.
.
.
.
Función de deshabilitado
x
x
x
x
1
Bus de datos
1
1
0
1
0
Condición ilegal
x
x
1
1
0
Bus de datos
en tri state en tri state
Carlos Canto Q.
Modos de operación. Modo 0: Operación simple de E/S sin protocolo. Se le asigna operaciones de entrada y salida a cada uno de los tres puertos No se usa un protocolo (handshaking) para el intercambio de los datos. Los datos simplemente se escriben a o leen de un puerto específico.
DEFINICIÓN FUNCIONAL BÁSICA DEL MODO 0 ♦ Se tiene 2 puertos de 8 bits y 2 de 4 bits. ♦ Cualquier puerto puede ser entrada o salida ♦ Las salidas tienen LATCH (cerrojo) ♦ Las entradas no tiene LATCH ♦ Hay 16 posibles configuraciones de entrada/salida en este modo CPU Bus Busde dedatos datos
BUFFER BUFFER TRI STATE TRI STATE
LATCH LATCH
WR
A1 A0 Selector Selectorde de puertos puertos
M.C. Carlos E. Canto Quintal
- 42 -
8255
Puerto PuertoAA
Periférico Periférico de de salida salida
Tiene TieneLATCH LATCHaala la salida, salida,tal talque queel eldato dato enviado enviadopor porel elCPU CPU queda asegurado queda asegurado yy disponible disponiblepara parael el periférico periféricode desalida. salida.El El dato datose seretiene retienehasta hasta que quese seescriba escribauno uno nuevo. nuevo.
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
CPU Bus Busde dedatos datos
BUFFER BUFFER TRI STATE TRI STATE
Puerto PuertoAA
RD
A1 A0 Selector Selectorde de puertos puertos
8255
Periférico Periférico de de entrada entrada
Operado Operado como como entrada, entrada,no notiene tiene latch. Esto implica latch. Esto implica que queelelperiférico periféricode de entrada entradadebe debe sostener sostenerel eldato dato hasta que hasta quelalaCPU CPUlolo lea . lea .
Modo 1 : Entrada/Salida con protocolo (handshaking). (Strobed Input/Output) El puerto A y el puerto B usan las líneas del puerto C para generar o aceptar señales de handshaking en modo de pulsos (strobes).
Características: 2 grupos (grupos A y B) ♦ Cada grupo contiene 8 bits de puerto de datos y 4 bits de puerto de control/datos. ♦ Cada puerto de datos de 8 bit puede usarse como entrada o como salida independientemente. ♦ Tanto las entradas como las salidas tienen “latches “ ♦ El puerto de 4 bits se usa para control y status del puerto de datos de 8 bits. ♦
Señales de Control o protocolo (handshaking) Entrada: STB (Strobe Input): Un nivel bajo en esta entrada, carga los datos en el latch de entrada. IBF (Input Buffer Full F/F): Un nivel alto en esta salida indica que el dato ya fue cargado en el latch de entrada. IBF se pone en alto por un nivel bajo en STB y se M.C. Carlos E. Canto Quintal
- 43 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
pone en bajo debido al flanco positivo de la entrada RD. IBF se hace 1 cuando STB es 0 y se hace 0 con el flanco de subida de la señal RD, es decir, cuando la CPU ha leído el dato. STBA (Strobe input ) Un 0 en esta línea de entrada al 8255 carga un dato en el latch del PUERTO A. IBFA (Input buffer full ) Un 1 en esta línea de salida indica que el dato ha sido cargado en el latch.
Salida:
OBFA (Output buffer full ) Esta línea de salida será 0 para indicar que la CPU ha puesto un dato en el PUERTO A y que este debe ser recogido por el dispositivo exterior. OBF será 0 con el flanco de subida de la señal WR y se hará 1 cuando la señal de entrada ACK sea 0. ACKA ( Acknowledge input ) Un 0 en esta entrada informa al 8255 de que los datos del PUERTO A han sido leídos. Esencialmente es una respuesta del dispositivo periférico indicando que ha sido recibido el dato enviado por la CPU.
Interrupción:
INTR (Pedido de Interrupción): Un nivel alto en esta salida se puede usar para interrumpir al Procesador. INTR se pone en alto cuando STB está en 1, IBF está en 1 e INTE está en 1. Se pone en 0 con el flanco negativo de RD.
Para entradas
INTRA es 1 cuando STBA es 1, IBFA es 1 e INTEA es 1. Para salidas
INTRA es 1 cuando ACKA es 1, OBFA es 1 e INTEA es 1.
Puerto A en modo 1.
Puerto B en modo 1.
M.C. Carlos E. Canto Quintal
- 44 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
LECTURA DEL PUERTO C EN MODO 1
Cronograma del modo 1.
Modo 2: Bidireccional con protocolo. (Strobed Bidirectional Bus I/O) Permite enviar datos a, o recibir datos de un periférico mediante un único bus de 8 bits bidireccional; con señales de handshaking para mantener el flujo de datos sobre el bus de datos de una manera similar al MODO 1. También se pueden generar interrupciones y dispone también de funciones de enable/disable.
Características: Usa sólo el Grupo A. ♦ Tiene un bus bidireccional de 8 bits (puerto A) y un puerto de control de 5 bits (puerto C). ♦ Se latchean tanto las entradas como las salidas. ♦
M.C. Carlos E. Canto Quintal
- 45 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
El puerto de control de 5 bits se usa para control y status del bus bidireccional de 8 bits. ♦
Señales de Control INTR (Interrupt Request): Un nivel alto en esta salida sirve para interrumpir al 8088 tanto en operaciones de entrada como de salida.
Operaciones de Salida OBF (Output Buffer Full): Esta salida pasa a un nivel bajo para indicar que el 8088 escribió un dato en el puerto A. ACK (Acknowledge): Un nivel bajo en esta entrada habilita el buffer de salida del puerto A para enviar datos al periférico (el periférico lee al 8255). En otro caso, el buffer de salida permanece en alta impedancia. INTE 1 (El flip-flop INTE asociado con OBF): controlado por el bit set/reset de PC6.
Operaciones de Entrada
STB (Strobe Input): un nivel bajo en esta entrada carga el dato en el latch de entrada. IBF (Input Buffer Full F/F): Un nivel alto en esta salida indica que el dato fue cargado en el latch de entrada. INTE 2 (El flip-flop INTE asociado con IBF): controlado por bit set/reset de PC4.Modo 2:
Puerto A en modo 2.
Lectura del uerto C en modo 2
M.C. Carlos E. Canto Quintal
- 46 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
Cronograma del modo 2.
CARACTERISTICAS ELECTRICAS DE LOS PUERTOS Los 3 puertos tienen una especificación de corriente IOL de 1.7 mA y una especificación de IOH de 200 uA. Esto significa que puede manejar directamente una carga TTL estándar ó 4 cargas TTL LS.
CARACTERISTICAS DE CARGA DEL 8255 Las 8 líneas de los puertos B y C pueden suministrar hasta 1 mA a 1.5 Volts. Esto es útil para manejar relevadores de estado sólido y transistores así como, drivers tipo Darlington y Displays de alto voltaje que requieren esa fuente de corriente Pero no son capaces de absorver la corriente típica de un Led de 10 a 20 mA. Para este fin se deberá usar un buffer TTL.
M.C. Carlos E. Canto Quintal
- 47 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
CONEXIÓN Y PROGRAMACIÓN DEL 8255 CON EL Z80 En la figura se ilustra un ejemplo de la conexión asignándole como dirección base 10H.
del 8255 con el Z80,
Lectura = entrada de datos por el puerto
Microprocesadores
EL PPI 8255 Ejemplo de Conexión del PPI con el Z80
Use un decodificador 74LS138 para asignarle al PPI una dirección base de 10H
Bus Busde deDatos Datos
Grupo A RST
RD
Puerto A
RD
Direcciones Direcciones válidas válidaspara paraelel PPI: PPI: 10h puerto A 10hÆ Æ puerto A 11h Æ puerto B 11h Æ puerto B 12H puerto C 12HÆ Æ puerto C 13H Æ r. control 13H Æ r. control
IORQ
Z80 Z80
RESET Circuito Circuito de reset de reset RESET
WR A0 A1 A2 A3 A4 A5 A6 A7
Puerto CL
WR A0 A1
B u B s u s d e d e D i r D e i r c e c c i c o i n o e n s e s ( B ( a B j a o j ) o )
PPI PPI 8255 8255
Puerto CH
RESET
Puerto B CS
A2 A3 A5 A6 A7 A4
Selección de puerto del PPI
Grupo B
74LS138 Y0
Selección del chip 8255
A B C G1A G1B G2
A7
A6
A5
A4
A3
A2
A1
A0
0
0
0
1
0
0
X
X
Carlos Canto Q.
Escritura = salida de datos El reset del 8255 es activo en “1” por eso se requiere el inversor. REGISTROS DE LECTURA Y ESCRITURA DEL 8255.
M.C. Carlos E. Canto Quintal
- 48 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
Las direcciones de los cuatro registros de lectura / escritura del 8255 según nuestro ejemplo analizando son 10H, 11H, 12H, 13H. Las direcciones de los puertos A y C siempre serán PARES ya que A0=0 Las direcciones de los puertos B y de control siempre serán IMPARES ya que A0=1.
EJEMPLO DE CONFIGURACIÓN DE LOS PUERTOS EN MODO 0: Se desea que todos los puertos del PPI sean configurados como salidas, La palabra de control para lograrlo es: (10000000B) 80H. Se carga esta palabra de control al registro de control
LD A,80H OUT (13H),A Una vez que el puerto ha sido configurado o programado, ya queda habilitado para poder escribir a cualquier puerto usando la instrucción OUT del Z80. Deseamos escribir un (00100011B) 23H a las salidas del puerto A, (01000001B) 41H al puerto B y (10010011B) 93H al puerto C. Programa
LD A,23H OUT (10H),A LD A,41H OUT (11H),A LD A,93H OUT (12H),A
CORRELACIÓN CON TEMAS DEL PROGRAMA VIGENTE: Con esta práctica se cubre algunos de los aspectos de la unidad II: Interfases
MATERIAL Y EQUIPO NECESARIO: 1 CI PPI 8255 2 74LS244 (ó 74LS245) 1 CI 74LS138 5 Push Button NA 5 resistencias de 2.2 KΩ 8 LED´s rojos 8 LED´s verdes 16 resistencias de 220Ω 1 protoboard 1 Fuente de cd de 5 volts regulada
METODOLOGÍA (DESARROLLO DE LA PRÁCTICA):
M.C. Carlos E. Canto Quintal
- 49 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
I.-Asegurando que el PPI tenga una dirección Base de 80H, arme el circuito mostrado en el diagrama de abajo, en el mismo protoboard donde se encuentran los circuitos de las prácticas anteriores. II.- Implemente un programa que realice lo sigui ente: 1.- Con la palabra de control para selección de modo, programe el puerto A y C como salidas y el puerto B como entrada. Hacer que los LEDs conectados en el puerto A, prendan y apaguen en secuencia dando la impresión visible de luces rotando y que con las correspondientes teclas ( Izquierda, Derecha, rápido , Lento, paro) conectadas en el puerto B, se pueda controlar el sentido, la velocidad y el paro de la rotación. 2.-Que también se pueda invocar desde el teclado en B ( con la tecla Parpadeo), la acción de parpadeo de estos LEDs 3.-Usando la palabra de control para Activar/Desactivar bit del puerto C, hacer que los LEDs conectados al Puerto C, prendan y apaguen en secuencia con apariencia visible de rotación hacia la izquierda y que esta función sea invocada con la correspondiente tecla del teclado en el Puerto B.
330 ohms
+5V
PRACTICA NUM.6 20 17 15 13 11 8 6 4 2
CONEXIÓN Y PROGRAMACIÓN DEL PPI 8255
+5v
BUS DE DATOS D0-D7
26 34 33 32 31 30 29 28 27
9
RD
8 10
IORQ
IORD
12 11 13
WR
5 36
(1/2) 74LS32
S E N O I C C E R I D
9 8 +5v
80H-83H 16
E D 7 A S U 0 B A
A2 A3 A4 A5 A6 A7
1 2 3 4 5 6 8
RD WR
VCC A B C G2AN G2BN G1
Y0N Y1N Y2N Y3N Y4N Y5N Y6N Y7N
15 14 13 12 11 10 9 7
35
6
A0 A1
RESET
8255
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
RESET
CS
7
GND
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
4 3 2 1 40 39 38 37
2A4 2A3 2A2 2A1 1A4 1A3 1A2 1A1
2Y4 2Y3 2Y2 2Y1 1Y4 1Y3 1Y2 1Y1
3 5 7 9 12 14 16 18
1G 2G GND +5V 74LS244
2.2 K ARRANQUE
18 19 20 21 22 23 24 25
PARO
IZQUIERDA
14 15 16 17 13 12 11 10
DERECHA
PUERTO C
+5V
330 ohms
GND
20 17 15 13 11 8 6 4 2
74LS138
CIRCUITO DE RESET
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
IOWR
A0 A1
Z80
VCC D0 D1 D2 D3 D4 D5 D6 D7
1 19 10
VCC
DECODIFICADOR DE DIRECCIONES DE PUERTOS DE E/S
1 19 10
RESET
VCC 2A4 2A3 2A2 2A1 1A4 1A3 1A2 1A1
2Y4 2Y3 2Y2 2Y1 1Y4 1Y3 1Y2 1Y1
3 5 7 9 12 14 16 18
1G 2G GND 74LS244
LA DIRECCIÓN BASE SELECCIONADA PARA EL PPI 8255 ES 80H
C.CANTO
M.C. Carlos E. Canto Quintal
- 50 -
Laboratorio de Microprocesadores
El PPI 8255 su conexión y programación
SUGERENCIA DIDÁCTICA: 1.- Responda las siguientes cuestiones: ¿Qué palabra de control debe ser cargada al registro de control del PPI para configurarlo de la siguiente forma:? a).- puerto A como salida, puerto B como entrada, puerto CL como salida y Puerto CH como entrada ambos grupos en modo 0 b).-grupo A como entrada en modo 1 y el Grupo B como entrada en modo 0. c).- Todos los puertos como salida en modo 1 2.- implemente un programa para que un display de 7 segmentos conectado al puerto A , muestre el número de la tecla, del teclado de 8 bits conectado al puerto B, que se oprima. Si se oprimen 2 ó más teclas que muestre una “E” en el display indicando un error.
REPORTE: I..-Reporte el diagrama de flujo, el programa en ensamblador, desarrollado para realizar lo que se pide en la práctica (el archivo imprimible y documentado). II.-los cálculos realizados para la generación del retardo necesario para que la rotación de los LEDs pueda verse a simple vista. III.- Las soluciones a las cuestiones dada en la sección de sugerencia didáctica IV.- Reporte también sus conclusiones y comentarios
BIBLIOGRAFÍA: • • •
Manual de Zilog Manual del 8255 Ramesh S. Gaonkar The Z80 Microprocessor: Architecture, Interfacing, Programming, and Design Prentice Hall
M.C. Carlos E. Canto Quintal
- 51 -