Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema de Computacion Laboratorio PDF
Sistema de Computacion Laboratorio PDF
Periféricos en paralelo
2.1 Introducción
Se utiliza para conectar al microprocesador periféricos que trabajan en paralelo con palabras de 8,
16 y 24 bits.
En las computadoras que utilizan microprocesadores Intel, el PPI (Programable Pararell Interface)
esta ubicado en los puertos 60h-63h; Sin embargo para desarrollo de prototipos estas computadoras
reservan las direcciones 0300h - 03FFh
El PPI consta de 3 puertos de E/S en paralelo, a los que se denominan PA, PB y PC. Cada una
de estos puertos es de 8 bits. Las 8 líneas de la puerta PC se dividen en 2 partes de 4 bits. Estas
dos partes permiten formar dos grupos. Un grupo está formado por PA+PCH y el otro grupo esta
formado por PB+PCL. En el grupo PA+PCH, PA es el canal de datos y PCH es el canal de control.
En el grupo PB+PCL, PB es el canal de datos y PCL es el canal de control.
El 8255 dispone de 4 registros. Tres se dedican a almacenar datos que entran o salen de los puertos
PA, PB y PC, el cuarto registro se dedica a funciones de control y programación. Programando
este registro se configuran los puertos para que funcionen en uno de tres modos. El modo 0 nos
permitirá disponer de tres puertos de E/S. En el modo 1 los puertos PA y PB pueden funcionar
con comunicaciones half duplex y en modo 2 el puerto PA puede funcionar con comunicaciones full
duplex.
2.3 Modo 0
D7 D6 D5 D4 D3 D2 D1 D0
1 MPA1 MPA0 PA PCH PB+PCL PB PCL
1
2.4. MODO 1 2
2.4 Modo 1
En el modo 1 las puerta A y B pueden trabajar en half duplex, es decir permiten comunicación
bidireccional pero no al mismo tiempo. En este modo disponemos dos canales de comunicaciones
half duplex. Un canal esta formado por PA+PCH y el otro canal esta formado por PB+PCL.
D7 D6 D5 D4 D3 D2 D1 D0
1 MPA1 MPA0 PA PCH PB+PCL PB PCL
Como hemos visto en el modo 0, en todos los casos si el bit Di = 0, el puerto correspondiente
se configura como salida y si el bit Di = 1, el puerto correspondiente se configura como entrada.
Pero en el modo 1, cuando el bit D2 = 1, el grupo PB+PCL funciona en modo 1. De la misma
manera cuando los bits D6 D5 = 01, el grupo PA+PCH funciona en modo 1.
En este punto tenga cuidado y observe que cuando el bit D2 = 1 no tiene sentido configurar el
puerto PB como salida (D1 = 0) o como entrada (D1 = 1). De la misma manera tampoco tiene
sentido configurar el puerto PA como salida (D4 = 0) o como entrada (D4 = 1)
Para el circuito de la figura 2.1, si suponemos que la dirección del puerto PA es 0300h, PB estaría
en 0301h, PC estaría en 0302h y el registro de control estaría en 0303h. Entonces al momento de
configurar el PPI, para la figura 2.1 programamos como en la figura 2.2.
2.4. MODO 1 3
PA Modo1
ret
Fíjese que si IBF = 1 quiere decir que llego un dato al puerto PA y el µProcesador tiene que
leer. Por otro lado, cuando OBF = 0 quiere decir que el µProcesador puede escribir un dato en el
puerto PA.
También hay que evidenciar que las rutinas readPA y writePA son las que cambian el estado
de la bandera Quit = 1. Esta bandera normalmente está en Quit = 0. Es decir después que el
µProcesador lee o escribe un dato en el puerto PA, cambia el estado de la bandera Quit, de cero a
uno.
Para terminar este punto la rutina para leer el puerto PA es como sigue:
readPA proc
mov dx ,0300 h
in al , dx
mov dato , al
; Aqui va el cambio de estado de Quit = 1
ret
readPA endp
writePA proc
mov al , dato
mov dx ,0300 h
out dx , al
; Aqui va el cambio de estado de Quit = 1
ret
writePA endp
El cambio de estado de la bandera Quit puede ser, por ejemplo, desde el teclado (servicio 0Bh de
la int 21h) o con un click del ratón (servicio 03h de la int 33h). Estas interrupciones no detienen
2.4. MODO 1 4
la ejecución del programa, por tanto el prococolo de comunicaciones half duplex, utilizando el PPI
no se interrumpe, a no ser por voluntad del usuario.
PB Modo1
ret
Para utilizar el puerto PB en modo half duplex, toda la explicación realizada para el puerto PA,
a partir de las figuras 2.1 y 2.2 será la misma. Simplemente fígese en las figuras 2.1 y 2.3. En
la figura 2.1 las señales IBF y OBF están en los bits PC5 y PC7 respectivamente y en la figura
2.3 las señales IBF y OBF están en el bit PC1. Por tanto en la figura 2.2, codificamos cmp al,
2.5. MODO 2 5
readPB proc
mov dx ,0301 h
in al , dx
mov dato , al
; Aqui va el cambio de estado de Quit = 1
ret
readPB endp
writePB proc
mov al , dato
mov dx ,0301 h
out dx , al
; Aqui va el cambio de estado de Quit = 1
ret
writePB endp
2.5 Modo 2
En el modo 2 el puerto A puede trabajar en full duplex, es decir permite comunicación bidireccional
al mismo tiempo. En este modo disponemos de un canal de comunicaciones full duplex. El canal
esta formado por PA+PCH.
D7 D6 D5 D4 D3 D2 D1 D0
1 MPA1 MPA0 PA PCH PB+PCL PB PCL
Como hemos visto en el modo 0, en todos los casos si el bit Di = 0, el puerto correspondiente se
configura como salida y si el bit Di = 1, el puerto correspondiente se configura como entrada. Pero
en el modo 2, cuando los bits D6 D5 = 10, el grupo PA+PCH funciona en modo 2.
En este punto tenga cuidado y observe que cuando D6 D5 = 10, no tiene sentido configurar el
puerto PA como salida (D4 = 0) o como entrada (D4 = 1).
En realidad la figura 2.5 es la misma que la figura 2.1, es decir desde el punto de vista del hardware
el modo 1 y el modo 2 son lo mismo para la puerta PA; sin embargo desde el punto de vista del
software no son iguales del todo, cambia la programación del registro de control. Vea las figuras 2.3
y 2.4 el registro de control se programa con 84h, mientras que en la figuras 2.5 y 2.6 el registro
de control se programa con 0C0h.
2.5. MODO 2 6
PA Modo2
ret
Como hemos visto en los párrafos anteriores, el protocolo de comunicaciones simplemente se basa en
el hecho de que cambian las señales IBF y OBF. Entonces la pregunta es ¿Debido a que cambian
estas señales?
Para entender el protocolo de comunicaciones que utiliza el PPI, vamos a analizar las señales STB,
IBF, ACK y OBF. Vamos a suponer qué un periférico se conecta a la computadora utilizando el
PPI y vamos a analizar las señales desde el lado de la computadora.
2.6. DISEÑO DE UNA FUENTE DIGITAL REGULADA-REGULABLE 7
En recepción, un periférico envía un dato a la computadora generando la señal STB, esta carga
el dato en cuestión, en los flip-flops internos del PPI. Cuando el dato esta cargado se activa la
señal IBF = 1, avisando que el buffer de entrada de datos esta lleno, Entonces podríamos decir
que la señal STB activa la señal IBF de forma automática. Por su parte el µProcesador examina
periódicamente las señales IBF, si alguna de ellas esta activa (IBF = 1), reconoce que en el buffer
de entrada hay un dato. En el momento que el µProcesador lee el dato (in al,dx) se desactivan las
señales IBF = 0 y STB = 1.
Figura 2.7: Comunicación entre dos computadoras a través del puerto PA del PPI
2.7. COMUNICACIÓN ENTRE COMPUTADORAS A TRAVÉS DEL PPI 8
Ejemplo 2.2 Diseñar un sistema de computación para conectar dos computadoras utilizando el PPI.
La computadora-1 envía a la computadora-2 un archivo de texto que termina con el ascii EOF.
El texto está formado por párrafos y cada párrafo esta formado por palabras y números. En la
computadora-2, cada que llega una palabra, la cuenta e informa a la computadora-1, de igual manera
informa cada que ha recibido un párrafo. Un párrafo termina con la secuencia ascii CR y LF.
Figura 2.10: Comunicación entre dos computadoras a través del puerto PB del PPI
2.8. ESTÁNDAR RS232 9