Sei sulla pagina 1di 21

Departamento de Eléctrica, Electrónica y

Telecomunicaciones

Tema: Funcionamiento del PPI 8255

Asignatura: Microprocesadores

NRC: 3193

Docente: Ing. Miroslava Aracely Zapata

Nombre: José Luis Pallo

Sangolquí, 2018
INFORME No.05

1. Tema: Funcionamiento del PPI 8255.

2. Objetivos:

General:
 Conocer el funcionamiento del circuito integrado PPI 8255 para su uso
en posteriores proyectos de la materia de Microprocesadores.
Específicos:
 Familiarizarse con la distribución de pines de PPI 8255.
 Determinar los modos de operación para su utilización como puertos
de E/S.
 Realizar ejemplos básicos con el PPI 8255 para comprender de mejor
manera su funcionamiento.

3. Marco Teórico

Interfaz Periférica Programable PPI 8255A

El Intel 8255A es un dispositivo de E/S programable de propósito general


diseñado como interface entre el bus de datos paralelo de los
microprocesadores Intel. Tiene 24 pines de E/S que pueden programarse
individualmente en 2 grupos de 12 y usarse en 3 modos principales de
operación. En el primer modo (MODO 0), cada grupo de 12 pines de E / S
puede programarse en conjuntos de 4 para ser de entrada o salida. En el
MODO 1, el segundo modo, cada grupo puede programarse para tener 8
líneas de entrada o salida. De los 4 pines restantes, 3 se utilizan para el
protocolo de enlace e interrupción de las señales de control. el tercer modo
de operación (MODO 2) es un modo de bus bidireccional que usa 8 líneas
para un bus direccional, y 5 líneas, que se toman prestadas del otro grupo,
para el intercambio de información.
(Intel, 2018)
Descripción general

El 8255 PPI contiene:


 Dos puertos (A y B) de 8 bits que pueden trabajar, según se
programen, como puertos de E/S de datos en paralelo.
 Un puerto (puerto C) de 8 bits que pueden trabajar como dos puertos
independientes de 4 bits cada uno, como líneas independientes, o
como señales de control para los puertos A y B.
 Un registro de control para la programación de los puertos, que no es
otra cosa que la selección de los modos de funcionamiento para las
puertas.

Estructura interna del PPI 8255A

En la Figura 1 se puede observar la estructura interna de este dispositivo.


El diagrama de bloques del 8255A muestra el búfer del bus de datos y las
funciones lógicas de control de lectura / escritura.

Figura 1. Diagrama de bloques del 8255A (Canto, 2018)


Distribución de pines

El chip PPI 8255 posee 40 pines de los cuales 24 son líneas de E/S asociadas
a los puertos A, B, C, la función de los pines del 8255A se muestra a
continuación en la Tabla 1.
En la Figura 2 se muestra la distribución de pines del PPI 8255.

Figura 2.Distribución de pines del PPI 8255A.

Tabla 1.Función de los pines del PPI 8255A

Pin Nombre del pin Función

Este buffer bidireccional de 8 bits de 3 estados se


utiliza para conectar el 8255A al bus de datos del
sistema. Los datos son transmitidos o recibidos por el
Bus de datos búfer tras la ejecución de las instrucciones de entrada
𝐷0 − 𝐷7
o salida por parte de la CPU. Las palabras de control
y la información de estado también se transfieren a
través del buffer del bus de datos.

Selección de
Un nivel bajo "low" en este pin de entrada permite la
̅𝐶𝑆
̅̅̅ comunicación entre el 8255A y la CPU.
chip

Un nivel bajo “low" en este pin de entrada permite al


Lectura 8255A, enviar los datos o la información de estado a
̅̅̅̅
𝑅𝐷 la CPU en el bus de datos. En esencia, permite que la
CPU "lea de" el 8255A

Escritura Un nivel bajo "low" en este pin de entrada permite que


̅̅̅̅̅
𝑊𝑅 la CPU escriba datos o controle palabras en el 8255A.
Pin Nombre del pin Función

Estas señales de entrada, junto con las entradas RD


Dirección de y WR, controlan la selección de uno de los tres
𝐴0, 𝐴1 puertos o los registros de palabras de control.
puertos Normalmente están conectados a los bits menos
significativos del bus de direcciones (A0 y A1).

Un nivel alto “high” en esta entrada borra el registro


Entrada de reset de control y todos los puertos (A, B, C) son
𝑅𝐸𝑆𝐸𝑇
configurados en el modo de entrada.

Puerto A Un latch/buffer de salida de datos de 8 bits o un buffer


𝑃𝐴0 − 𝑃𝐴7 de entrada de datos de 8 bits.

Puerto B Un latch/buffer de E/S de datos de 8 bits o un buffer


𝑃𝐵0 − 𝑃𝐵7 de entrada de datos de 8 bits.

Un latch/buffer de salida de datos de 8 bits o un


buffer de entrada de datos de 8 bits (sin latch para
entrada). Este puerto se puede dividir en dos puertos
Puerto C de 4 bits bajo el control de modo. Cada puerto de 4
𝑃𝐶0 − 𝑃𝐶7
bits contiene un latch de 4 bits y se puede usar para
las salidas de señal de control y las entradas de
señal de estado junto con los puertos A y B.

+5 Volts Alimentación 5 [V]


𝑉𝐶𝐶

0 Volts Tierra
𝐺𝑁𝐷

(Intel, 2018)

Operaciones Básicas

Mediante las líneas A0 A1 se direccionan los tres puertos y el registro de


control. La línea RD es la señal de lectura para el puerto direccionado y la
línea WR es la señal de escritura para escribir en alguno de los tres puertos
o en el registro de control. La línea CS (Chip Selec) permite la habilitación del
dispositivo. En la Tabla 2 se muestran las operaciones básicas de lectura y
escritura que puede realizar la PPI 8255.
(Departamento de Electrónica y Automatica, 2018)
Tabla 2. Operaciones básicas de la PPI 8255A.

𝑨𝟏 𝑨𝟎 ̅̅̅̅̅
𝑹𝑫 ̅̅̅̅̅
𝑾𝑹 ̅̅̅̅
𝑪𝑺 Operación de entrada (Lectura)
0 0 0 1 0 Puerto A Bus de Datos
0 1 0 1 0 Puerto B Bus de Datos
1 0 0 1 0 Puerto C Bus de Datos
Operación de salida (Escritura)
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 Control
Desabilitar función
x x x x 1 Bus de Datos 3-State
1 1 0 1 0 Condición ilegal
x x 1 1 0 Bus de Datos 3-State

Control Grupo A y Grupo B

La configuración funcional de cada puerto está programada por el software


del sistema. El CPU "envía" una palabra de control al 8255A. La palabra de
control contiene información como "modo", "set bit (1)", "reset bit (0)", etc.,
que inicializa la configuración funcional del 8255A.

Cada uno de los bloques de control (Grupo A y Grupo B) acepta "comandos"


de la lógica de control de lectura/escritura, recibe "palabras de control" del
bus de datos interno y emite los comandos correspondientes a sus puertos
asociados.

 Grupo A: puerto A y parte alta del puerto C (C7-C4).


 Grupo B: puerto B y parte baja del puerto C (C3-C0).

El Registro de palabras de control solo es de escritura. No se permite la


operación de lectura del Registro de palabras de control.
(Intel, 2018)
Antes de utilizar los puertos de entrada y de salida, el circuito integrado debe
inicializarse escribiendo en el registro de control un valor de 8 bits,
denominado palabra de control, la cual configura el funcionamiento general
del PPI, el cual a su vez admite tres modos diferentes de funcionamiento
denominados MODO 0, MODO 1, MODO 2.
(Pillajo, 2018)

Selección de Modo

Hay tres modos básicos de operación que pueden ser seleccionados de


acuerdo a la programación del dispositivo, estos son:

Modo 0 --- E/S básica


Modo 1 --- E/S strobed (Modo de reconocimiento mutuo, Handshaking)
Modo 2 --- 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 dispone de las cuatro líneas de cada grupo,
esto depende del modo en que trabaja el puerto A o B.

Para indicarle a la PPI cuál es el modo de operación elegido, se debe escribir


la palabra de control apropiada, lo cual se logra "escribiendo" en el registro
de control direccionado por A1 y A0 de la Tabla 2. La palabra de control se
escribirá de acuerdo a lo mostrado en la Figura 3.
(Intel, 2018)
Figura 3.Palabra de control-Selección de Modo.

Características 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 instrucción de salida, esto reduce los requerimientos de
software en aplicaciones de control. En otras palabras, este modo permite a
la CPU tener capacidad de direccionar un bit del puerto C para la operación
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.
(Intel, 2018)

La palabra de control para este formato se muestra en la Figura 4.


Figura 4.Formato para activar/desactivar un bit del puerto C.

Modos de Funcionamiento

MODO 0. (Modo básico de E/S)


Esta configuración provee operaciones simples de entrada o salida de datos,
no utiliza líneas de control con el periférico, todos los bits de las puertas A y
B se definen como entradas o como salidas. La parte alta y baja del puerto C
pueden trabajar independientemente como entrada o como salida según se
la haya definido en la palabra de control. En resumen:

 Se tiene dos puertos de 8 bits y dos puertos de 4 bits.


 Cualquier puerto puede ser de entrada o salida.
 Las salidas poseen latch.
 Las entradas no poseen latch, el periférico de entrada debe sostener el
dato hasta que la CPU lo lea.
 16 configuraciones diferentes de E / S son posibles en este modo.
MODO 1. (Strobed E/S)
Esta configuración funcional proporciona un medio para transferir datos de
E/S hacia o desde un puerto específico junto con señales de strobe o
"handshaking". En el modo 1, el puerto A y el puerto B usan las líneas en el
puerto C para generar o aceptar estas señales de "handshaking". En
resumen:

 Se tiene dos grupos (Grupo A y Grupo B)


 Cada grupo contiene un puerto de datos de 8 bits y un puerto de
control/datos de 4 bits.
 El puerto de datos de 8 bits puede ser entrada o salida. Tanto las
entradas como las salidas poseen latch.
 El puerto de 4 bits se utiliza para el control y el estado del puerto de
datos de 8 bits.

Puertos A y B en modo 1 como entradas


Las señales de control son:

̅̅̅̅̅̅: Habilitación de entrada. Un "0" en esta señal de entrada carga los


𝑺𝑻𝑩
datos provenientes del periférico en el latch de entrada de la PPI.
La línea PC4 es la señal ̅̅̅̅̅̅
𝑆𝑇𝐵 para el puerto A y la línea 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
señal ̅̅̅̅̅̅
𝑆𝑇𝐵, también le indica que no envíe un nuevo dato hasta que IBF
pase a nivel "0", lo cual se produce cuando la CPU lee el puerto
correspondiente. La línea PC5 es la encargada de generar esta línea para
el puerto A y la línea PC1 para el puerto B.

INTR: Pedido de interrupción. Señal de salida que en "1" pide interrupción


̅̅̅̅̅̅ si
a la CPU. La salida INTR se coloca en "1" con el flanco positivo de 𝑆𝑇𝐵
IBF está en "1" e INTE está en 1, INTE es una habilitación interna de
interrupción que puede ser puesta en "1" o "0" mediante una operación de
escritura en el formato bit set/reset, esta operación se describirá luego.
La línea INTR vuelve a nivel "0" en el flaco negativo de la señal de lectura
RD. La línea PC3 genera esta señal para el puerto A y la línea PC0 lo
hace para el puerto B.

En la Figura 5 se puede observar los puertos A y B como entradas para el


Modo 1, con sus respectivas señales de control.

Figura 5.Modo 1, Puerto A,B como entradas.


Puertos A y B en modo 1 como salidas
Las líneas de control utilizadas son:

̅̅̅̅̅̅
𝑶𝑩𝑭: (Output Buffer Full) Buffer de salida lleno. Señal de salida mediante
la cual la PPI le indica al periférico que tiene un dato para enviarle. Esta
señal se activa, es decir toma el valor "0", con el flanco positivo de la señal
de escritura WR y pasa a nivel "1" con el flanco negativo de la señal de
entrada ̅̅̅̅̅̅
𝐴𝐶𝐾 . Las líneas PC7 y PC1 se encargan de generar ̅̅̅̅̅̅
𝑂𝐵𝐹 para los
puertos A y B respectivamente.

̅̅̅̅̅̅: (Acknowledge) Reconocimiento de entrada. Esta señal es generada


𝑨𝑪𝑲
por el periférico, un "0" en esta señal de entrada del 8255 le informa que
el dato en la puerta correspondiente ha sido aceptado. En esencia es una
línea de reconocimiento por parte del periférico indicando que ha tomado
el dato puesto en la salida del puerto y que está dispuesto para recibir uno
nuevo. Las líneas PC6 y PC2 se encargan de esta entrada para los
puertos A y B respectivamente.

INTR: Pedido de interrupción. Un "1" en esta salida puede ser usado para
interrumpir a la CPU cuando un dispositivo ha aceptado el dato enviado,
indicándole que transmita un nuevo dato. La señal INTR toma el valor "1"
̅̅̅̅̅̅ si 𝑂𝐵𝐹
cuando se produce un flanco positivo de la señal 𝐴𝐶𝐾 ̅̅̅̅̅̅ está en "1"
y la habilitación interna INTE está también 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 líneas PC3 y PC0 se encargan de esta señal
para los puertos A y B.

En la Figura 6 se puede observar los puertos A y B como salidas para el


Modo 1, con sus respectivas señales de control.
Figura 6.Modo 1, Puerto A,B como salidas.

Palabra de Estado
Haciendo una lectura del puerto C cuando los puertos A y B están
trabajando en el Modo 1, se puede obtener el estado de los puertos A y
B. Solo hay que tener en cuenta la forma en que están trabajando los
puertos A y B, ya sea como entrada o como salida.
Figura 7. Lectura del puerto C en Modo 1.

Habilitación de interrupciones
Para el control de las señales INTR A e INTR B, se han de activar los bits
de habilitación INTE A e INTE B del puerto 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 = INTE A y PC2 = INTE B cuando se trabaja
como los puertos como entradas o PC6 = INTE A y PC2 = INTE B cuando
se trabaja los puertos como salidas.

MODO 2. (Strobed bidireccional E/S)

Esta configuración funcional proporciona un medio para comunicarse con un


dispositivo o estructura periférica en un solo bus de 8 bits para transmitir y
recibir datos (E/S bidireccional de bus). Se proporcionan señales de
"handshaking" para mantener la disciplina de flujo de bus adecuada de una
manera similar a la del Modo 1. Las funciones de generación de
interrupciones y set/reset también están disponibles. Este modo:
 Utiliza solo en el Grupo A
 Un puerto de bus bidireccional de 8 bits (Puerto A) y un Puerto de
control de 5 bits (Puerto C).
 Ambas entradas y salidas poseen latch.
 El puerto de control de 5 bits (Puerto C) se usa para el control y el
estado del puerto de bus bidireccional de 8 bits (Puerto A).

El puerto B puede trabajar en modo 0 o 1 pero nunca en modo 2.

Definición de señal de control de E / S bidireccional de bus

INTR (solicitud de interrupción). Se puede utilizar un “1” en esta salida para


interrumpir la CPU para las operaciones de entrada o salida. Se encarga de
pedirle interrupción a la CPU a través de PC3.

Operaciones de salida

̅̅̅̅̅̅ (Output Buffer Full) La salida de 𝑂𝐵𝐹


𝑶𝑩𝑭 ̅̅̅̅̅̅ se pondrá "0" para indicar que la
CPU ha escrito datos en el puerto A. PC7 se encarga de esta señal.

̅̅̅̅̅̅
𝑨𝑪𝑲 (Reconocimiento). Un "0" en esta entrada permite que el búfer de salida
de tres estados del puerto A envíe los datos. De lo contrario, el búfer de salida
estará en el estado de alta impedancia. Esta señal está presente en PC6.

INTE 1 (El flip-flop INTE asociado con OBF). Controlado por bit set / reset de
PC6.

Operaciones de entrada

̅̅̅̅̅̅
𝑺𝑻𝑩 (Strobe Input). Un "0" en esta entrada carga datos en el latch de entrada.
Esta señal está presente en PC4.
IBF (Búfer de entrada Full F / F). Señal generada por el PPI. Un "1" en esta
salida indica que los datos se han cargado en el latch de entrada. Esta señal
está presente en PC5.

INTE 2 (El Flip-flop INTE asociado con IBF). Controlado por set / reset desde
PC4.

Los pines del puerto C que no se utilizan en líneas de control (PC0, PC1, PC2)
pueden ser utilizados como entrada o salida según se configure el puerto C.

En la Figura 8 se observa el puerto A en Modo 2 con sus respectivas señales de


control de E/S.

Figura 8. Modo 2, Puerto A con señales de control E/S.

(Departamento de Electrónica y Automatica, 2018)


(Intel, 2018)
4. Ejemplo básico
Para este ejemplo de funcionamiento de la PPI 8255 se la programara en
Modo 1, el puerto A y el puerto B como salidas.
En este modo los pines PC7 y PC6 servirán como señales de control del
puerto A y los pines PC2 y PC1 servirán como señales de control del puerto
B como se muestra en la Figura 9.

Figura 9. PPI 8255 ejemplo en MODO 1.

En la figura 9 se utiliza los pines del puerto C para indicar cuando hay un dato
̅̅̅̅̅̅̅ y para indicar cundo el periférico acepto el
disponible en la PPI (señal : 𝑶𝑩𝑭
dato (señal ̅̅̅̅̅̅
𝑨𝑪𝑲):

̅̅̅̅̅̅̅𝑩 (Output Buffer Full)


PC1: 𝑶𝑩𝑭
PC2: ̅̅̅̅̅̅
𝑨𝑪𝑲 𝑩 (Acknowledge)
PC5: ̅̅̅̅̅̅
𝑶𝑩𝑭 𝑨 (Output Buffer Full)
̅̅̅̅̅̅ 𝑨 (Acknowledge)
PC6: 𝑨𝑪𝑲

Para inicializar la PPI se direcciona el registro de control de la PPI mediante


A0, A1 (Tabla 2) y se escribe la palabra de control para que trabaje como se
mencionó anteriormente.
En la Figura 10 se observa dicho direccionamiento y la palabra de control que
se escribirá por el bus de datos.
Figura 10. Direccionamiento del registro de control y escritura de la palabra de control.

Una vez inicializada la PPI ya puede operar en el Modo y función


seleccionado. En este caso trabajara en Modo 1 y los puertos A y B como
salidas de datos.

En Figura 11 se ha direccionado el puerto A mediante A0, A1 (Tabla 2) y


se ha escrito en este puerto el dato 01010101 , la señal ̅̅̅̅̅̅
𝑶𝑩𝑭 𝑨 me indica
que hay un dato disponible en el puerto.

Figura 11. Escritura en el puerto A.


̅̅̅̅̅̅ 𝑨 indico a la PPI que el dato fue aceptado y
Al poner en 0 la señal 𝑨𝑪𝑲
̅̅̅̅̅̅ 𝑨 Iindicando que esta lista para recibir un
esta a su vez desacticva 𝑶𝑩𝑭
nuevo dato.

̅̅̅̅̅̅
𝑨𝑪𝑲 𝑨

Figura 12. Escritura en el puerto A. Señal ACK

Para escribir en el puerto B simplemente se debe direccionar el puerto por


̅̅̅̅̅ y el dato se presentara
medio de A0, A1 (Tabla 2) y activar la señal 𝑾𝑹
en el puerto B como indica la Figura 13.

Figura 13. Escritura en el puerto B.

Las señales de control para este puerto se comportan de la misma manera


que para el puerto A en este ejemplo.
5. Conclusiones y Recomendaciones
Conclusiones
 La PPI 8255 puede trabajar de diversos modos según sea programada
pudiendo realizar transferencia de datos simple de E/S o también
transferencia de datos de E/S con señales de control mediante la
utilización de los pines del puerto C.
 Los puertos A, B, C pueden seleccionarse como entradas o como
salidas existiendo una gran cantidad de combinaciones de entrada y
salida entre los diferentes puertos.
 La PPI debe inicializarse antes de trabajar con ella ya que en la
inicialización se le programa como va a funcionar.

Recomendaciones
 Debido a las diferentes funcionalidades que posee la PPI 8255 es
recomendable tener a la mano su Datasheet ya que en este se
encuentra mucha información extra acerca de las diferentes
combinaciones en las cuales se puede usar sus puertos.

6. Bibliografía

[1]Canto, C. (4 de diciembre de 2018). Universidad Autónoma de San Luis Potosí-Facultad de


Ciencias. Obtenido de Universidad Autónoma de San Luis Potosí-Facultad de ciencias:
http://galia.fc.uaslp.mx/~cantocar/microprocesadores/EL_Z80_PDF_S/16_PPI.PDF
[2]Departamento de Electrónica y Automatica. (4 de diciembre de 2018). Departamento de
Electrónica y Automatica. Obtenido de Departamento de Electrónica y Automatica:
http://dea.unsj.edu.ar/mp1/APUNTES/Catedra%20Interface%20a%20Perifericos%2082
55%20PPI.pdf
[3]Intel. (4 de diciembre de 2018). All Datasheet. Obtenido de All Datasheet:
http://html.alldatasheet.com/html-pdf/66100/INTEL/8255A/253/2/8255A.html
[4]Pillajo, C. (4 de diciembre de 2018). Escuela Politecnica Nacional. Obtenido de Escuela
Politecnica Nacional: http://bibdigital.epn.edu.ec/bitstream/15000/10898/1/T1300.pdf

Potrebbero piacerti anche