PERIFERICOS PROGRAMABLE DE E/S PARALELO 8255 En un periférico programable de E/S y de aplicación general, compatible con los microprocesadores 8080 y 8085. Dispone de un total de 24 líneas de E7S. Los canales se queden agrupar en puertas, según tres modos diferentes de programación. Sus características básicas son: • 24 líneas de E/S programables. • Compatible con niveles TTL. • Control Set/Reset sobre cualquier línea. • Alimentación simple de 5V. • Encapsulado DIL 40. • Potencia de disipación 1W. CONSTITUCION INTERNA En un buffer bidireccional con control de alta impedancia utilizado para interconectar al periférico con el bus de datos del sistema procesador. Los datos se trasmiten o reciben del periférico mediante instrucciones de OUT o de IN del microprocesador, respectivamente. A través de este buffer también se transfieren las palabras de programación y de status BLOQUE DE CONTROL Y LECTURA−ESCRITURA. La función de este bloque es controlar las transferencias internas de los datos. Recoge la información de dirección y las señales de control provenientes del microprocesador, empleando las siguientes líneas: • CS (chip selec): un nivel bajo en esta entrada habilita la intercomunicación entre el microprocesador y el periférico. • RD (read): un nivel 0 habilita al 8255 para enviar el dato al microprocesador a través del bus de datos. • WR (write): un nivel bajo habilita el microprocesador para escribir datos o palabras de control en el 8255. • A0 y A1: Estas señales de entrada, junto con las de lectura o escritura RD o WR controlan la selección de una de las tres puertas o del registro de programación. Estas entradas van normalmente conectadas a los 2 bits menos significativos del bus de direcciones. −RESET: un nivel 1 en esta entrada borra el registro de control y todas las líneas quedan programadas en el modo de entrada. El efecto combinado de todas estas líneas se detalla en la tabla siguiente: BLOQUE DE CONTROL A Y B. El modo de funcionamiento de cada una de las puertas queda programado por software. La palabra de control que escribe el microprocesador sobre el periférico contiene la información del modo, bit activado, etc. y todo ello sirve para inicializar a dicho periférico. Cada uno de los bloques de control acepta comandos de programación para las puertas asociadas a el. 1 • Control grupo A: puerta a y puerta C alta (C7 a C4). • Control grupo B: puerta B y puerta c baja (C3 a C0). En el registro de Control de palabra solamente se puede escribir y no se permiten operaciones de lectura. PUERTAS A, B Y C Son tres puertas de 8 bits cada una. Todas ellas son programables de diferentes maneras mediante las adecuadas palabras de programación. A continuación se especifica el comportamiento de cada una de las puertas. • Puerta A : puede ser una puerta de 8 salidas con posibilidad de lacht . También se puede programar como puerta de entrada lacheada . • Puerta B : puede ser una puerta de 8 entrada o salida con posibilidad de lacht o no , una puerta de 8 entradas sin lachear . • Puerta C : Puede ser una puerta de 8 lineas de salida lacheada o no , o una puerta de 8 lineas de entradas sin lachear , ademas esta puerta se puede dividir en dos puertas de 4 bits , cada una de las cuales contiene un lanch para cada linea y puede utilizarse para señalkes de control o estado con las puertas A y B. MODOS DE ENSAYO Para ensayar cada uno de los tres posibles modos de funcionamiento de este chip hay que seguir los siguientes pasos: • Configurar o programar el modo de ensayo (por ejemplo, Modo 0 todo salidas). • Para ello debemos pensar en la palbra de control que deseamos escribir en los registros internos de control de los puertos. • Escribir la palabra de control en los registros de control internos. • Para ello debemos poner en el bus de control, en las líneas A1, A0, RD, WR, CS, la combinación oportuna que nos indica la tabla. • Escribir el dato que queremos visualizar a la salida en las líneas que van del D0 a la D7. • Podemos entender mejor con un ejemplo : • Montamos el 8255 en el entrenador, y hacemos las conexiones necesarias. (En D0 a D7 conectamos los interruptores del entrenador). • Alimentamos el chip y ponemos la entrada del bus de control CS a nivel alto. • En este caso vamos a comprobar el funcionamiento del modo 0 siendo los puertos A y C entradas de datos y el puerto B salidas de datos. • Pensamos en la palabra de control que deseamos introducir en el chip (en este caso 10011001). • Dicho dato le introducimos por D0 a D7. • Ponemos en el bus de control la palabra según la tabla en este caso A1=1, A0=1, RD=1, W=0, CS=0. Con lo que activamos el chip. • Producimos los flancos descendentes en W. De este modo la palabra de control se graba. • Deseleccionamos el chip CS=1. • Introducimos en el bus de entrada de datos D0 a D7 el dato que queremos escribir en la salida (en alguno de los puertos de la salida). • Ponemos en la línea de control según la tabla A1=0, A0=1, R=1, W=0, CS=0 (pensando que el puerto B es salida). Con lo que queda habilitado el chip. • Producimos flancos de baja en W con lo que nos aparece en los led los datos introducidos en D0 hasta D7. 2 PARA LEER LOS DATOS. • Ponemos en D0 a D7 los led y en el puerto B (configurandolo como entrada) los interruptores del entrenador en nuestro caso. • Deshabilitar el chip, es decir, CS=1. • Ponemos los datos oportunos en el puerto B que es nuestra entrada. • Ponemos según la tabla de control A1=0, A0=1, R=0, W=1, CS=0, con lo que habilito el chip. • Producimos flancos de bajada en R con lo que nos aparece la palabra de control que introducimos. • Si cambiamos la palabra de control y producimos flancos de bajada en R nos queda grabada dicha palabra y así con todas las que introduzcamos. Dicho proceso se repiute para comprobar el puerto A y C. En el modo 1 debemos seguir los mismos pasos teniendo en cuenta que los datos de entrada no van a pasar a la salida si la entrada de autorización del puerto en questión no está activada. La entrada de autorización de los puertos en modo 1 son: • Para el puerto A: − Como entrada de datos PC4. − Como salida de datos PC6 • Para el puerto B: − Como entrada de datos PC2 − Como salida de datos PC2 También en el modo 2 debemos dar los mismos pasos que en los dos casos anteriores con la salvedad que este modo precisa de más líneas del puerto C de control. CONCLUSIONES DEL ENSAYO. Mediante la programación del modo 0 conseguimos de una forma rápida la transmisión de datos del microprocesador a los tres puertos de una forma directa y sin autorización. También podemos pasar los datos de los puertos al microprocesador Mediante la programación del modo 1 conseguimos de igual manera pasar los datos del microprocesador a los puertos y del puerto al microprocesador, pero con la excepción de que existe un protocolo de autorización para que el intercambio de datos entre ambas partes. El puerto C queda anulado como puerto de entrada salida en su conjunto pasando a ser usado para los protocolos de intercambio de informaciones. Mediante la programación en modo 2 conseguimos lo siguiente; un bus bidireccional E/S de datos del microprocesador en este caso el puerto A. El puerto B no tiene posibilidad de trabajar en este modo pero si se puede trabajar en cualquiera de los modos anteriores descritos. El puerto C se usa para protocolos de E/S de los datos. Este modo resulta altamente complicado de ensayar en algunas de sus partes dada la dificultad que 3 presenta en el puerto A es unas veces de entrada y otras de salida debemos tener precaución para no cortocircuitar una salida pues destruiriamos el integrado . A1 A0 RD WR CS 00100 Operación escritura µp−−−Pa 01100 µp−−−Pb 10100 µp−−−Pc 11100 XXXX1 µp−−−Registro control Funciones no permitidas Salidas en alta impedancia 11010 Condición ilegal XX110 Salidas en alta impedancia Leer 00010 01010 10010 Pa−−−µP Pb−−−µP Pc−−−µP ESQUEMA DEL 8255 4