Sunteți pe pagina 1din 15

MICROPROCESADORES I

ELECTRONICA DIGITAL III


INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255
INTRODUCCIN
Este integrado de la firma INTEL, conocido como PPI 8255 (Programmable
Peripherical Interfase) realizado con tecnologa LSI, fue diseado como interfase entre el bus
de datos paralelo de los microprocesadores 8080, 8085, aunque puede ser utilizado por otros
tales como el 8086 u 8088.
Tiene la virtud de poder configurarse, con distintos modos de funcionamiento, por
software a travs del bus de datos, lo cual le brinda una gran flexibilidad.
El dispositivo dispone de 24 terminales de entrada/salida, que pueden ser programados
en dos grupos de 12 y brindar al usuario 3 modos bsicos de operacin. Dichos terminales
trabajan con niveles TTL.
Permite tambin poner en "1" o en "0" un nico bit de una de las puertas. La capacidad
de corriente es de 1mA, lo que permite mediante el uso de apropiados transistores, el manejo
de circuitos de potencia.

DESCRIPCIN GENERAL.
El 8255 PPI contiene:
-Dos puertas (A y B) de 8 bits que pueden trabajar, segn se programen, como puertas de
entrada/salida de datos en paralelo.
-Una puerta (puerta C) de 8 bits que pueden trabajar como dos puertos independientes de 4
bits cada uno, como lneas independientes, o como seales de control para los puertos A y B.
-Un registro de control para la programacin de los puertos, que no es otra cosa que la
seleccin de los modos de funcionamiento para las puertas.
La figura 1 muestra la configuracin interna y las lneas de control de la PPI.

Figura 1

SEALES HACIA EL MICROPROCESADOR


Mediante las lneas A0 A1 se direccionan las tres puertas y el registro de control. La
lnea RD es la seal de lectura para la puerta direccionada y la lnea WR es la seal de
escritura para escribir en alguno de las tres puertas o en el registro de control.
La lnea CS (Chip selec) permite la habilitacin del dispositivo.
La tabla 1 resume las operaciones bsicas de lectura y escritura de la PPI, realizadas por la
CPU.

A1

A0

RD

WR

CS

Operacin de entrada (lectura)

Puerta A -> Bus de Datos

Puerta B -> Bus de Datos

Puerta C -> Bus de Datos


Operacin de salida (escritura)

Bus de Datos -> Puerta A

Bus de Datos -> Puerta B

Bus de Datos -> Puerta C

Registro de Control
Inactivo

Bus de Datos 3 state

Condicin Ilegal

Bus de Datos 3 state


Tabla 1

CONTROL GRUPO A Y GRUPO B.


La configuracin funcional de cada puerta es programada por el software del sistema.
En esencia el micro procesador escribe una palabra de control hacia el 8255, la cual define la
"forma de operacin" del sistema de entrada/salida (I/O).
Cada uno de los bloques de control (grupo A y B) aceptan comandos desde la lgica
de control de lectura/escritura. Los grupos A y B se definen como:
Grupo A: Puerta A y parte alta de la puerta C
Grupo B: Puerta B y parte baja de la puerta C
El registro de control es un registro de escritura, es decir, no se puede realizar la lectura
de este registro.

PUERTAS A, B Y C.
El 8255 PPI tiene tres puertas de 8 bits cada una. Todas pueden ser configuradas de
distintas formas, tanto como entradas o como salidas.
Puerta A: un latch o buffer/latch de 8 bits como salida, un buffer o un buffer/latch de 8 bits
entrada.

Puerta B: un latch de 8 bits como salida, un buffer o un buffer/latch de entrada.


Puerta C: un latch de salida de 8 bits y un buffer de entrada de 8 bits. Esta puerta puede ser
dividida en dos puertas de 4 bits, de acuerdo con el modo de operacin del grupo. Cada una de
stas partes podrn ser usadas para transferir datos o como lneas de control para las puertas A
y B.

DESCRIPCIN DE LOS MODOS DE OPERACIN.


Seleccin de modos
Hay tres modos bsicos de operacin que pueden ser seleccionados de acuerdo a la
programacin del dispositivo, estos son:
Modo 0 --Modo 1 --Modo 2 ---

I/O bsica
I/O strobed (Modo de reconocimiento mutuo, Handshaking)
Bidireccional

Los modos para las puertas A y B pueden ser definidos en forma separada, mientras
que la puerta C est dividida en dos partes de 4 bits y cada una de estas partes pueden ser
utilizadas como entradas o salidas en forma independiente. No siempre se se dispone de las
cuatro lneas de cada grupo, esto depende del modo en que trabaja la puerta A o B , como se
describir luego.
Para indicarle a la PPI cual es el modo de operacin elegido, se debe escribir la palabra
de control apropiada, lo cual se logra "escribiendo" en el registro direccionado por la
condicin A1 y A0 en "1" (ver tabla 1).
La palabra de control mencionada tiene el siguiente formato:

CARACTERSTICAS DE FUNCIONAMIENTO EN MODO BIT SET/RESET.


Cualquiera de los ocho bits del puerto C puede ser puesto en "1" o "0" mediante una
simple instruccin de salida, esto reduce los requerimientos de soft-ware en aplicaciones de
control. En otras palabras, este modo permite a la CPU tener capacidad de direccionar un bit
de la puerta C para la operacin de escritura.
Puede ser usado cuando la puerta C est como salida o cuando el puerto C est siendo
usado como status/control de las puertas A o B.

La palabra de control para este formato se muestra a continuacin:

Conviene aclarar que el bit direccionado por D1, D2 y D3 es puesto en "1" o en "0" de
acuerdo al bit D0.

MODOS DE OPERACIN.
MODO 0. (MODO BSICO DE ENTRADA/SALIDA)
Esta configuracin provee operaciones simples de entrada o salida de datos, no utiliza
lneas de control con el perifrico, es decir, todas las seales son de transferencia de datos y
todos los bits de las puertas A y B se definen como entradas o como salidas. Las partes alta y
baja de la puerta C en este modo de operacin, pueden trabajar independientemente como
entrada o como salida segn se la haya definido en la palabra de control.
Resumiendo: En el modo 0 se dispone de 2 puertas de 8 bits y dos de 4 bits. Cuando
es entrada se comporta como buffer y para salida como latch.
MODO 1. (HANDSHAKING DE ENTRADA/SALIDA).
Handshaking implica un modo de reconocimiento mutuo, es decir que existe un cierto
protocolo de comunicacin entre el perifrico y la PPI.
En este formato se provee la forma de transferir datos desde o hacia una puerta
especificada en conjunto con lneas de strobe o handshaking. Para funcionar en este modo, las
puertas A o B utilizan algunas lneas de la puerta C para generar o recibir estas lneas de
protocolo o handshaking.

Las puertas A y B son utilizadas como puertas unidireccionales de entrada o de salida y


algunas lneas de la puerta C, como lneas de control.
En este modo, cada puerta (A o B), utilizan 3 lneas de la puerta C, quedando de esta
puerta dos lneas libres, las que se pueden utilizar como en el modo 0 para entrada o salida.
Estas dos lneas (PC6-PC7 o PC5-PC4) se utilizan como lneas de control para la puerta A
cuando trabaja en modo 2.
Los puertos A y B, tanto de entrada como de salida, capturan los datos, es decir tienen
un latch. Las lneas de la puerta C que son ocupadas como lneas de control varan segn la
puerta A o B, trabaje como entrada o salida.
Puertos A y B en modo 1 como entradas.
Las seales de control son:
STB: Habilitacin de entrada. Un "0" en esta seal de entrada carga los datos provenientes del
perifrico en el latch de entrada de la PPI.
La lnea PC4 es la seal STB para el puerto A y la lnea PC2 para el puerto B.
IBF: (Input Buffer Full) Buffer de entrada lleno. Un "1" en esta salida indica que el dato ha
sido cargado en el latch de entrada. Es la respuesta a una seal STB, es decir, cuando el
perifrico escribe un dato en el latch de la puerta correspondiente mediante la seal STB, la
PPI responde poniendo en "1" la lnea IBF que le indica al perifrico que ha tomado el dato
escrito por este ltimo y tambin le indica que no enve un nuevo dato hasta que IBF pase a
nivel "0", lo cual se produce cuando la CPU lee la puerta correspondiente. La lnea PC5 es la
encargada de generar esta lnea para la puerta A y la lnea PC1 para la puerta C.
INTR: Pedido de interrupcin. Seal de salida que en "1" pide interrupcin a la CPU. La
salida INTR se coloca en "1" con el flanco positivo de STB si IBF est en "1" e INTE est en
1, INTE es una habilitacin interna de interrupcin que puede ser puesta en "1" o "0" mediante
una operacin de escritura en el formato bit set/reset, esta operacin se describir luego.
La lnea INTR vuelve a nivel "0" en el flaco negativo de la seal de lectura RD. La lnea PC3
genera esta seal para el puerto A y la lnea PC0 lo hace para el puerto B.
La figura 2 ilustra el funcionamiento de estas lneas.

Figura 2

La figura 3 muestra un enlace entre un puerto A o B de la PPI con un perifrico y el


diagrama de tiempos de las lneas de control.

Figura 3
Activando STB (STB=0) por un perifrico exterior, se carga el dato enviado en la
puerta correspondiente y el 8255 genera la seal de reconocimiento IBF=1. Cuando se
desactiva STB (STB=1), el 8255 genera INTR, si est activado por software el bit de
habilitacin de interrupciones INTE, y la CPU contesta el pedido de interrupcin leyendo el

dato en el puerto mediante la lnea RD. Una vez realizada esta operacin, el 8255 desactiva
IBF quedando en espera de un nuevo dato.
Puertos A y B en modo 1 como salidas.
Al igual que en el funcionamiento como entrada, algunas de las lneas del puerto C, se
utilizan como seales de protocolo para la comunicacin entre la PPI y el perifrico.
Las lneas de control utilizadas se detallan a continuacin:
OBF: (Output Buffer Full) Buffer de salida lleno. Seal de salida mediante la cual la PPI le
indica al perifrico que tiene un dato para enviarle. Esta seal se activa, es decir toma el valor
"0", con el flanco positivo de la seal de escritura WR y pasa a nivel "1" con el flanco negativo
de la seal de entrada ACK. Las lneas PC7 y PC1 se encargan de generar OBF para los
puertos A y B respectivamente.
ACK: (Acknowledge) Reconocimiento de entrada. Esta seal es generada por el perifrico, un
"0" en esta seal de entrada del 8255 le informa que el dato en la puerta correspondiente ha
sido aceptado. En esencia es una lnea de reconocimiento por parte del perifrico indicando
que ha tomado el dato puesto en la salida del puerto y que est dispuesto para recibir uno nuevo. Las lneas PC6 y PC2 se encargan de esta entrada para los puertos A y B respectivamente.
INTR: Pedido de interrupcin. Un "1" en esta salida puede ser usado para interrumpir a la
CPU cuando un dispositivo ha aceptado el dato enviado, indicndole que transmita un nuevo
dato. La seal INTR toma el valor "1" cuando se produce un flanco positivo de la seal ACK
si OBF est en "1" y la habilitacin interna INTE est tambin en "1". Para pasar INTR a "0"
la CPU debe escribir un nuevo dato, es decir que INTR pasa a "0" con el flanco negativo de
WR. Las lneas PC3 y PC0 se encargan de esta seal para los puertos A y B. La figura 4 ilustra
el funcionamiento de estas lneas.

Figura 4
La figura 5 ilustra un enlace entre un puerto de la PPI y un perifrico que recibe datos
de la CPU a travs de la PPI.

Figura 5

Cuando la CPU escribe un dato en alguno de los puertos A o B de la PPI, se activa la


seal OBF indicndole al perifrico que tiene un dato para enviarle. Este ltimo contestar

10

generando una seal de reconocimiento que ingresar a la PPI por la lnea ACK, indicndole a
la que tom el dato enviado. Finalizado lo anterior, el 8255 desactiva OBF y genera la seal
INTR (si est permitida) para indicarle a la CPU que escriba un nuevo dato en el puerto. En
algunas aplicaciones puede intercalarse a la salida de la PPI un buffer tri-state si la
comunicacin se realiza mediante un BUS por el cual circulan datos procedentes de distintos
perifricos. Dicho buffer deber permanecer en alta impedancia en tanto el perifrico no
genere la seal de reconocimiento.

Palabra de Estado.
Haciendo una lectura del puerto C cuando los puertos A y B estn trabajando en el
modo 1, se puede obtener el estado de las puertas A y B.
Solo hay que tener en cuenta la forma en que estn trabajando las puertas A y B, ya sea
como entrada o como salida. La figura 6 muestra la disposicin de los bits de estado.

Figura 6

Habilitacin de Interrupciones.
Para el control de las seales INTRA e INTRB, se han de activar los bits de
habilitacin INTEA e INTEB de la puerta C usando el modo bit set/reset. El registro de
control, bajo formato bit-set/reset del puerto C, se programa para activar los bits PC4 =
INTEA y PC2 = INTEB. La figura 7 muestra un ejemplo de programacin, con el
microprocesador 8080, de los puertos de la PPI y de los bits de habilitacin de interrupciones.

11

Figura 7
MODO 2.
Trabajar en modo 2 implica tener la puerta A que funciona como "Puerta
bidireccional" para la transmisin y recepcin de datos. Lo de bidireccional significa que
funciona como puerta de entrada y salida, segn se activen unas u otras lneas de control, sin
necesidad de cambiar la programacin de la puerta. Las figuras 8 y 9 muestra el diagrama
funcional y el de tiempos del modo 2.
La nica puerta que funciona en este modo de operacin es la puerta A, que utiliza
cinco lneas de la puerta C como seales de control y status. En este modo, cada lnea de la
puerta A como entrada se comporta como un buffer latch igual que en el modo 1, y como
salida tambin se comporta como un buffer latch triestate, a diferencia del modo 1 en que se
comporta como un simple latch.
El puerto B puede trabajar en modo 0 o 1 pero nunca en modo 2.

12

Figura 8
La puerta A en modo 2 se comporta como una verdadera puerta bidireccional diseada
para hacer de interfase entre dos microprocesadores o entre un microprocesador y un perifrico
el cual transmite y recibe datos. Por ejemplo, un disco flexible (flopy disc) podra ser
interconectado a un microcomputador a travs de una PPI en modo 2.
Las lneas de control y status son las mismas que se utilizan en el modo 1. Cuando el
puerto A funciona como entrada el comportamiento es similar al modo 1. Cuando funciona
como salida adems del latch tiene un buffer tri-state que se habilita cuando la seal ACK
toma el valor "0".
Las seales de control para la comunicacin son:
STB A: Seal de strobe de entrada. Carga los datos enviados por el perifrico en el puerto A.
Esta seal est presente en PC4.
IBF A: Seal generada por el PPI en contestacin a STB A indicando que se ha recibido el
dato, con lo cual el perifrico sabe que puede escribir un nuevo dato en la PPI. Esta seal se
presenta en PC5.
Las seales de control cuando los datos salen de la PPI son:
OBF A: Seal de salida de la PPI que es generada cuando la CPU le escribe un dato en el
puerto. Esta seal tiene por funcin indicarle al perifrico que tiene un dato disponible para l.
PC7 se encarga de esta seal.

13

ACK A: Seal de entrada a la PPI generada por el perifrico indicndole a la PPI que se ha
recibido el dato. Cuando esta seal est activa en "0" la salida abandona el tercer estado para
presentar el dato que previamente escribi la CPU. Esta seal se presenta en PC6.
INTR: Esta seal se encarga de pedirle interrupcin a la CPU a travs de PC3 cuando el
perifrico escribi un dato en la PPI o cuando el perifrico ley el dato enviado desde la CPU.
Las interrupciones tienen una doble funcin: indicarle a la CPU cuando el perifrico escribi
un dato en la PPI y avisarle cuando el perifrico tom un dato enviado por la CPU para que de
esta manera enve un nuevo dato.
El diagrama de tiempos del modo 2 aparece en la figira 9.

Figura 9
Interrupciones en el modo 2.
A travs de la lnea PC3 se genera la seal de interrupcin que puede ser habilitada por
los flip-flops internos INTE 1 e INTE 2. Estos solo pueden ser activados por soft-ware
escribiendo en el registro de control bit-set/reset del puerto C.
El bit INTE 1 se ha de activar a travs de la seleccin de PC6 en el formato bitset/reset, permitiendo de esta manera las interrupciones provocadas por la salida de datos del
puerto A.
Para el bit INTE 2 se ha de seleccionar el bit PC4 en el formato bit-set/reset para
permitir de esta manera las interrupciones provocadas por la entrada de datos a la PPI. El
puerto B puede tambin generar sus propias interrupciones como se vio en la descripcin del
modo 1. La figura 10 muestra la combinacin lgica de los bits de habilitacin de

14

interrupciones y de las lneas de control. Los pines del puerto C que no se utilizan en lneas de
control (PC0,1,2) pueden ser utilizados como entrada o salida segn se configure el puerto C.

Figura 10

15

S-ar putea să vă placă și