Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 38 -
NOMBRE DE LA PRCTICA
El PPI 8255 su conexin y programacin
OBJETIVO ESPECFICO:
Aprender a programar y aplicar adaptadores de interfase programables paralelos (PPI 8255)
INTRODUCCIN:
El circuito PPI (Interfaz Perifrica Programable) 8255A de Intel es un dispositivo programable de entrada/salida de propsito general diseando 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 operacin. La figura nos muestra la distribucin de terminales del chip y la estructura interna de este dispositivo.
Buffer del Bus de Datos Buffer bidireccional de 8 bits con habilidad de tercer estado en sus terminales. Se utiliza para conectar el PPI al bus de datos del sistema. Los datos son transmitidos o recibidos por el buffer a travs del programa , con las instrucciones de entrada o de salida. Las palabras de control y el estado de la informacin tambin se transmiten a travs del buffer. Lgica 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 de grupos. CS PRACTICA N0.4 Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 39 - Seleccin del chip. Un bajo en la entrada de esta terminal, habilita la comunicacin 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 informacin al CPU a travs 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. A0 y A1 Estas seales de entrada, en conjunto con las seales RD y WR, controlan la seleccin 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 Reinicializacin. 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. DIAGRAMA DE BLOQUES DEL 8255 Grupo A Puerto A Grupo A Puerto A Grupo A Puerto C 4 altos Grupo A Puerto C 4 altos Grupo B Puerto C 4 bajos Grupo B Puerto C 4 bajos Grupo B Puerto B Grupo B Puerto B Control del grupo A Control del grupo A Buffer de bus de datos Buffer de bus de datos Lgica de control de escritura/ lectura Lgica de control de escritura/ lectura Control del grupo B Control del grupo B RD WR A0 A1 RESET CS D0-D7 E/S PA0-PA7 E/S PC7-PC4 E/S PC3-PC0 E/S PB7-PB0 BUS DE DATOS INTERNO 8 BITS Microprocesadores Carlos Canto Q. EL PPI 8255 BUS DE DATOS Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 40 -
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 travs del software desde el sistema, pero cada uno tiene sus caractersticas 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.
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 seales de estado de entrada en conjunto con los puertos A y B.
Seleccin del modo Hay tres modos bsicos de operacin que pueden ser seleccionados por el software del sistema usando la palabra de control correspondiente:
Modo 0. Modo bsico 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 atravs 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 programacin 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 ms significativo (MSB). Microprocesadores Carlos Canto Q. 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 1 2 3 4 5 6 7 8 13 14 15 16 17 18 19 9 10 11 12 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 PA3 PA2 PA1 PA0 TIERRA GND ALIMENTACIN +5V VCC PUERTOC PC7-PC0 PUERTO B PB7-PB0 PUERTO A PA7-PA0 DIRECCIN DE PUERTOS A0,A1 ENTRADA DE ESCRITURA WR ENTRADA DE LECTURA RD SELECCIN DE CHIP CS ENTRADA DE RESET RESET BUS DE DATOS D0-D7 Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 41 -
Microprocesadores Carlos Canto Q. FORMATO DE LA DEFINICIN DEL MODO D7 D7 D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0 PALABRA DE CONTROL GRUPO B GRUPO B Puerto C (bits bajos) 1=entrada 0=salida Puerto C (bits bajos) 1=entrada 0=salida Puerto B 1=entrada 0=salida Puerto B 1=entrada 0=salida Seleccin de modo 0=modo 0 1=modo1 Seleccin de modo 0=modo 0 1=modo1 GRUPO A GRUPO A Puerto C (bits altos) 1=entrada 0=salida Puerto C (bits altos) 1=entrada 0=salida Puerto A 1=entrada 0=salida Puerto A 1=entrada 0=salida Seleccin de modo 00=modo 0 01=modo1 1x=modo2 Seleccin de modo 00=modo 0 01=modo1 1x=modo2 Bandera de activar modo 1=activo Bandera de activar modo 1=activo EL PPI 8255 D7 D7 D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0 bandera de activar/desactivar bit 0=activo bandera de activar/desactivar bit 0=activo Bit seleccionado Bit set/ rest 1=set 0=reset Bit set/ rest 1=set 0=reset X X X No importa Microprocesadores Carlos Canto Q. FORMATO PARA ACTIVAR/DESACTIVAR UN BIT DEL PUERTO C PALABRA DE CONTROL EL PPI 8255 B2 1 0 1 0 1 0 0 0 B1 1 1 0 0 1 1 0 0 B0 1 1 1 1 0 0 1 0 7 6 5 4 3 2 1 0 Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 42 - 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 operacin de lectura de la palabra de control.
Modos de operacin. Modo 0: Operacin 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 especfico.
DEFINICIN FUNCIONAL BSICA 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
Microprocesadores Carlos Canto Q. EL PPI 8255 Bus de datos en tri state 0 1 1 x x Condicin ilegal 0 1 0 1 1 Bus de datos en tri state 1 x x x x Funcin de deshabilitado . . . . . Bus de datosreg. control 0 0 1 1 1 Bus de datospuerto C 0 0 1 0 1 Bus de datospuerto B 0 0 1 1 0 Bus de datospuerto A 0 0 1 0 0 operacin salida (escribir) . . . . . Puerto CBus de Datos 0 1 0 0 1 Puerto Bbus de datos 0 1 0 1 0 Puerto Abus de datos 0 1 0 0 0 operacin de entrada (leer) CS WR RD A0 A1 Tabla de verdad de la operacin del PPI 8255 LATCH LATCH BUFFER TRI STATE BUFFER TRI STATE Perifrico de salida Perifrico de salida Bus de datos Bus de datos Puerto A Puerto A Selector de puertos Selector de puertos 8255 CPU WR A0 A1 Tiene LATCH a la salida, tal que el dato enviado por el CPU queda asegurado y disponible para el perifrico de salida. El dato se retiene hasta que se escriba uno nuevo. Tiene LATCH a la salida, tal que el dato enviado por el CPU queda asegurado y disponible para el perifrico de salida. El dato se retiene hasta que se escriba uno nuevo. Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 43 -
Modo 1 : Entrada/Salida con protocolo (handshaking). (Strobed Input/Output)
El puerto A y el puerto B usan las lneas del puerto C para generar o aceptar seales de handshaking en modo de pulsos (strobes).
Caractersticas:
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.
Seales 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 BUFFER TRI STATE BUFFER TRI STATE Perifrico de entrada Perifrico de entrada Bus de datos Bus de datos Puerto A Puerto A Selector de puertos Selector de puertos 8255 CPU RD A0 A1 Operado como entrada, no tiene latch. Esto implica que el perifrico de entrada debe sostener el dato hasta que la CPU lo lea . Operado como entrada, no tiene latch. Esto implica que el perifrico de entrada debe sostener el dato hasta que la CPU lo lea . Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 44 - 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 seal RD, es decir, cuando la CPU ha ledo el dato. STBA (Strobe input) Un 0 en esta lnea de entrada al 8255 carga un dato en el latch del PUERTO A. IBFA (Input buffer full) Un 1 en esta lnea de salida indica que el dato ha sido cargado en el latch. Salida: OBFA (Output buffer full) Esta lnea 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 seal WR y se har 1 cuando la seal 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 ledos. Esencialmente es una respuesta del dispositivo perifrico indicando que ha sido recibido el dato enviado por la CPU. Interrupcin: INTR (Pedido de Interrupcin): 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. Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 45 -
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 perifrico mediante un nico bus de 8 bits bidireccional; con seales de handshaking para mantener el flujo de datos sobre el bus de datos de una manera similar al MODO 1. Tambin se pueden generar interrupciones y dispone tambin de funciones de enable/disable.
Caractersticas:
Usa slo 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. Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 46 - El puerto de control de 5 bits se usa para control y status del bus bidireccional de 8 bits.
Seales 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 perifrico (el perifrico 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 puerto C en modo 2 Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 47 - Cronograma del modo 2. CARACTERISTICAS ELECTRICAS DE LOS PUERTOS Los 3 puertos tienen una especificacin de corriente IOL de 1.7 mA y una especificacin de IOH de 200 uA. Esto significa que puede manejar directamente una carga TTL estndar 4 cargas TTL LS. CARACTERISTICAS DE CARGA DEL 8255 Las 8 lneas de los puertos B y C pueden suministrar hasta 1 mA a 1.5 Volts. Esto es til para manejar relevadores de estado slido 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 tpica de un Led de 10 a 20 mA. Para este fin se deber usar un buffer TTL.
Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 48 -
CONEXIN Y PROGRAMACIN DEL 8255 CON EL Z80 En la figura se ilustra un ejemplo de la conexin del 8255 con el Z80, asignndole como direccin base 10H. Lectura = entrada de datos por el puerto 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. Ejemplo de Conexin del PPI con el Z80 Microprocesadores Carlos Canto Q. EL PPI 8255 X X 0 0 1 0 0 0 A0 A1 A2 A3 A4 A5 A6 A7 Seleccin de puerto del PPI Seleccin del chip 8255 Direcciones vlidas para el PPI: 10h puerto A 11h puerto B 12H puerto C 13H r. control Direcciones vlidas para el PPI: 10h puerto A 11h puerto B 12H puerto C 13H r. control Z80 Z80 PPI 8255 PPI 8255 Bus de Datos Bus de Datos RST RESET RESET RESET CS RD WR RD WR A0 A1 A0 A1 A2 A3 A4 A5 A6 A7 B u s
d e
D i r e c c i o n e s
( B a j o ) B u s
d e
D i r e c c i o n e s
( B a j o ) A B C G1A G1B G2 74LS138 Circuito de reset Circuito de reset Puerto A Puerto B Puerto CL Puerto CH Grupo A Grupo B Y0 A3 A2 A6 A7 A5 A4 Use un decodificador 74LS138 para asignarle al PPI una direccin base de 10H IORQ Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 49 - Las direcciones de los cuatro registros de lectura / escritura del 8255 segn nuestro ejemplo analizando son 10H, 11H, 12H, 13H. Las direcciones de los puertos A y C siempre sern PARES ya que A0=0 Las direcciones de los puertos B y de control siempre sern IMPARES ya que A0=1.
EJEMPLO DE CONFIGURACIN 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 instruccin 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
CORRELACIN CON TEMAS DEL PROGRAMA VIGENTE: Con esta prctica 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 LEDs rojos 8 LEDs verdes 16 resistencias de 220 1 protoboard 1 Fuente de cd de 5 volts regulada
METODOLOGA (DESARROLLO DE LA PRCTICA):
Laboratorio de Microprocesadores El PPI 8255 su conexin y programacin
M.C. Carlos E. Canto Quintal - 50 - I.-Asegurando que el PPI tenga una direccin Base de 80H, arme el circuito mostrado en el diagrama de abajo, en el mismo protoboard donde se encuentran los circuitos de las prcticas anteriores.
II.- Implemente un programa que realice lo siguiente: 1.- Con la palabra de control para seleccin 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 impresin visible de luces rotando y que con las correspondientes teclas ( Izquierda, Derecha, rpido , Lento, paro) conectadas en el puerto B, se pueda controlar el sentido, la velocidad y el paro de la rotacin.
2.-Que tambin se pueda invocar desde el teclado en B ( con la tecla Parpadeo), la accin 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 rotacin hacia la izquierda y que esta funcin sea invocada con la correspondiente tecla del teclado en el Puerto B. +5v +5v +5V +5V +5V CIRCUITO DE RESET RESET RESET BUS DE DATOS D0-D7 B U S
D E
D I R E C C I O N E S A 0 - A 7 IORQ RD WR 80H-83H IORD IOWR (1/2) 74LS32 330 ohms Z80 DECODIFICADOR DE DIRECCIONES DE PUERTOS DE E/S 330 ohms A0 A1 A2 A3 A4 A5 A6 A7 PRACTICA NUM.6
SUGERENCIA DIDCTICA: 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 nmero de la tecla, del teclado de 8 bits conectado al puerto B, que se oprima. Si se oprimen 2 ms 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 prctica (el archivo imprimible y documentado).
II.-los clculos realizados para la generacin del retardo necesario para que la rotacin de los LEDs pueda verse a simple vista.
III.- Las soluciones a las cuestiones dada en la seccin de sugerencia didctica IV.- Reporte tambin sus conclusiones y comentarios
BIBLIOGRAFA: Manual de Zilog Manual del 8255 Ramesh S. Gaonkar The Z80 Microprocessor: Architecture, Interfacing, Programming, and Design Prentice Hall