capitulo iii - interfaz paralela
DESCRIPTION
Describe características de la interfaz paralela PPITRANSCRIPT
Microcomputadores e Interfaces 1
La interfaz de Entrada/Salida Básica
• Tiene por finalidad comunicar el computador con el mundo exterior.
• Generalmente emplea interfaces del tipo digital
• Las interfaces más típicas son del tipo paralelas y seriales
• Para programar el ingreso y salida de datos se emplea instrucciones en código ensamblador.
• El direccionamiento de los dispositivos de Entrada/Salida se hace mediante dos métodos:
– E/S aislada
– E/S ubicada en memoria
Microcomputadores e Interfaces 2
La interfaz de Entrada/Salida Básica
• Instrucciones de E/S– El conjunto de instrucciones contiene un tipo de instrucción que transfiere
información a un dispositivo de E/S (OUT), y otra para leer información desde un dispositivo de E/S (IN)
– También se proporcionan instrucciones (INS y OUTS) encontradas en todas las versiones excepto en los 8086/8088 para transferir cadenas de datos entre memoria y un dispositivo de E/S.
– Tanto instrucción IN como la instrucción OUT transfieren datos entre un dispositivo de E/S y el acumulador del microprocesador (AL, AX o EAX).
– La dirección de E/S se almacena en el regsitro DX como una dirección de 16 bits de E/S, o en el byte (p8) inmediatamente posterior al código de operación como una dirección de 8 bits de E/S.
– Intel denomina a la forma de 8 bits (p8) como una dirección fija.
– La dirección de E/S de 16 bits en DX es llamada dirección variable, porque se almacena en DX y después se utiliza para direccionar el dispositivo de E/S.
Microcomputadores e Interfaces 3
La interfaz de Entrada/Salida Básica
– Al transferir datos con la instrucción IN o OUT, la dirección de E/S también conocida como número de puerto ( o simplemente puerto), aparece en el bus de direcciones.
– La interfaz externa de E/S decodifica el número de puerto de la misma manera en que codifica un adirección de memoria.
– El número de puerto fijo de 8 bits (p8) aparece en las conexiones A/ - A0 del bus de direcciones, con los bits A15 – A8 igual a 000000002.
– Las direcciones por arriba de A15 no están definidas para una instrucción de E/S.
– Esto significa que a las primeras 256 direcciones de puerto de E/S (00h a FFh) se accede por las instrucciones de E/S de dirección fija, como variable, pero a cualquier dirección de E/S desde 0100h a la FFFFh se accede solamente por la dirección de E/S variable.
Microcomputadores e Interfaces 4
La interfaz de Entrada/Salida Básica
InstrucciónAncho datos
Función
IN AL,p8 8 Transfiere un byte del puerto p8 a AL
IN AX,p8 16 Transfiere una palabra del puerto p8 a AX
IN AL,DX 8 Transfiere un byte del puerto direccionado por DX a AL
IN AX,DX 16 Transfiere una palabra del puerto direccionado por DX a AX
OUT p8,AL 8 Transfiere un byte de AL al puerto p8
OUT p8,AX 16 Transfiere una palabra de AX al puerto p8
OUT DX,AL 8 Transfiere un byte de AL al puerto direccionado por DX
OUT DX,AX 16 Transfiere una palabra de AX al puerto direccionado por DX
Instrucciones de E/S del 8086/8088
Microcomputadores e Interfaces 5
La interfaz de Entrada/Salida Básica
E/S aislada y ubicada en memoria (memory-mapped)• E/S Aislada.
– La técnica de transferencia más común de E/S empleada en los sistemas basados en los microprocesadores Intel.
– El término aislada describe cómo las localidades de E/S están aisladas del sistema de memoria en un espacio de dirección de E/S separado.
• E/S ubicada en memoria.– la E/S ubicada en memoria no utiliza las instrucciones de IN y OUT. En
su lugar, usa cualquier instrucción que transfiera datos entre el microprocesador y la memoria.
– Un dispositivo de E/S ubicado en memora es manejado como una localidad de memoria y por consiguiente admite las instrucciones de transferencia de datos entre la memoria y el procesador.
Microcomputadores e Interfaces 6
La interfaz de Entrada/Salida Básica
1M x 8
FFFFF
64K x 8
0000
FFFF
00000 00000
FFFFF
E/S
E/S aislada Espacio de E/S E/S ubicada en memoria
Microcomputadores e Interfaces 7
La interfaz de Entrada/Salida Básica
Interfaces básicas de entrada y de salida
• El dispositivo básico de entrada es un conjunto de buffers de tres estados.
• El dispositivo básico de salida es un conjunto de registros transparentes de datos.
• El término IN se refiere al movimiento de datos desde un dispositivo (puerta) de E/S al microprocesador (Acumulador)
• El término OUT se refiere al movimiento de datos desde el microprocesador (Acumulador) al dispositivo (puerta) de E/S
Microcomputadores e Interfaces 8
La interfaz de Entrada/Salida Básica• La interfaz básica de entrada
– Los buffers de tres estados son utilizados para construir el puerto de entrada de 8 bits.
– Los datos TTL externos están conectados a las entradas de los buffers
– Las salidas de los buffers están conectadas al bus de datos
– Las conexiones del bus dependen del microprocesador ( 8, 16, 32 o 64 bits)
– En la siguiente figura se aprecia un circuito que ingresa datos (8 bits) que provienen de interruptores al acumulador del microprocesador, cuando la señal de selección SEL’ toma el valor lógico de 0.
– De esta forma, al ejecutar la instrucción IN, el contenido de los interruptores se copia al registro AL.
– Cuando el microprocesador ejecuta una instrucción IN, la dirección del puerto de E/S se decodifica para generar un 0 lógico en SEL’.
– La presencia de un 0 en las entradas de control de salida (1G’ y 2G’) del buffer 74ALS244 ocasiona que las conexiones de entrada de datos (A) sean conectadas a la conexión de salida de datos (Y). Un 1 lógico lleva al dispositivo al modo de tercer estado que desconecta los interruptores del bus de datos.
Microcomputadores e Interfaces 9
La interfaz de Entrada/Salida Básica
• Características del Buffer 3-State 74LS244
Microcomputadores e Interfaces 10
La interfaz de Entrada/Salida Básica
V cc= 5.0 vo lts
10 K
1A 1
1A 2
1A 3
1A 4
2A 1
2A 2
2A 3
2A 4
1G2G
1Y11Y21Y3
1Y4
2Y1
2Y2
2Y32Y4
74ALS 244
BUSdeD atos
Microcomputadores e Interfaces 11
La interfaz de Entrada/Salida Básica
• La interfaz básica de salida– Acepta datos desde el microprocesador y por lo general, debe
mantenerlos para algún dispositivo externo
– Sus registros o biestables, al igual que los buffers del dispositivo de entrada, frecuentemente están integrados en el dispositivo de E/S
– En la figura siguiente se aprecia una conexión de 8 LED’s conectados al microcomputador a través de la interfaz 74ALS374.
– El biestable almacena el número al que da salida el microprocesador por el bus de datos, de manera que los LED’s puedan encenderse con cualquier número binario de 8 bits.
– Los biestables son requeridos para mantener los datos, porque cuando el microprocesador ejecuta una instrucción OUT, los datos están presentes en el bus de datos únicamente por menos de 1.0 useg. Sin un biestable, el observador nunca vería la iluminación de los LED’s
– Al ejecutar la instrucción OUT, los datos de AL o AX se transfieren al registro por medio del bus de datos
– Cada vez que se ejecuta la instrucción OUT, se activa la señal SEL’ al registro
Microcomputadores e Interfaces 12
La interfaz de Entrada/Salida Básica
• Características del Latch tipo D 3-State 74LS374
Microcomputadores e Interfaces 13
La interfaz de Entrada/Salida BásicaVcc= 5.0 volts
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
D0
D1
D2
D3
D4
D5
D6
D7
74ALS374
U
OC
> CLK
330
Busde
Datos
SEL
Microcomputadores e Interfaces 14
La interfaz de Entrada/Salida Básica
• Protocolo con respuesta– Muchos dispositivos de E/S admiten o liberan información a una
velocidad mucho menor que el microprocesador
– Otro método para el control de E/S, es llamado protocolo de respuesta (handshaking) o encuesta (polling), sincroniza al dispositivo de E/S con el microprocesador
– Un caso característico es la conexión entre un microcomputador y una impresora. Aquí los datos son transferidos por medio de las conexiones de datos (D7-D0), BUSY indica que la impresora está ocupada y STB’(strobe) es un pulso de reloj empleado para enviar los datos que imprima la impresora.
– Tan pronto la impresora recibe un pulso STB’ genera un 1 lógico en la terminal BUSY, lo que indica que la impresora está ocupada imprimiendo un dato
– El software de la impresora hace una encuesta tratando de verificar en que instante la terminal BUSY cambia al estado 0 lógico.
Microcomputadores e Interfaces 15
La interfaz de Entrada/Salida Básica
• Protocolo con respuesta– El siguiente es un programa básico de encuesta para determinar si
BUSY esta ocupado o no.
– 0000 IN AL,BUSY
– 0002 TEST AL,BUSY_BIT
– 0004 JNE 0000
– 0006 MOV AL,BL
– 0008 OUT PRINTER,AL
– 000A END
Microcomputadores e Interfaces 16
La interfaz de Entrada/Salida Básica
El conector DB25 encontrado en las computadoras y el conector Centronics de 36 terminales encontrado en impresoras para el establecimiento de la interfaz Centronics para impresoras paraleas se muestra en la sgte. figura:
DB25 CENT36
Microcomputadores e Interfaces 17
La interfaz de Entrada/Salida Básica
• Decodificación de dirección de un puerto de E/S
– La decodificación de un puerto de E/S es muy parecida a la decodificación de dirección de un banco de memoria
– La única diferencia está en que para una memoria de usan las líneas de dirección A19-A0, mientras que en E/S aislada se usa sólo A15-A0
– Generalmente se emplea un Decodificador para habilitar a los distintos puertos mediante la acción de las señales provenientes de las líneas de direcciones
– El decodificador actúa de preferencia sobre los terminales de activación (G1, G2 , SEL’, SEL1’, etc) del circuito que controla el puerto de E/S.
– Las características de los decodificadores varían de acuerdo a la forma en que se desee controlar el puerto.
Microcomputadores e Interfaces 18
La interfaz de Entrada/Salida Básica• El siguiente es el dibujo de un circuito decodificador 74LS138, que
permite decodificar puertos de 8 bits desde F0h hasta F7h.
• Sus terminales de entrada son A, B y C y los de salida en complemento Y0 a Y7
• Posee tres terminales de habilitación, G1, G2A y G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
ABC
G 1
G 2A
74ALS 138
U
G 2B
Microcomputadores e Interfaces 19
La interfaz de Entrada/Salida Básica• Características del decodificador Binario 74LS138 de 3 a 8 líneas
Microcomputadores e Interfaces 20
La interfaz de Entrada/Salida BásicaDecodificador de 8 bits F0h a F7h
A7 A6 A5 A4 A3 A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 DIRECCION
1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 F0
1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 F1
1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 F2
1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 F3
1 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 F4
1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 F5
1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 F6
1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 F7
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
ABC
G1
G2 A
74ALS138
U
G2 B
A 0
A 1A 2
A 4
A 3
A 5
A 6
A 7
F0 '
F1 'F2 '
F3 'F4 'F5 '
F6 'F7 '
Microcomputadores e Interfaces 21
La interfaz de Periférica Programable (PPI)
• La PPI (interfaz periférica programable) tipo 82C55, es un componente popular y de bajo costo, que puede ser utilizado como interfaz del microprocesador con cualquier dispositivo de E/S compatible a TTL.
• Se emplea como interfaz de teclado y puertas de impresora paralela en computadoras (frecuentemente integradas en un chipset).
• Requiere la insercion de estados de espera cuando se usa con microprocesadores que usan frecuencias de reloj mayores de 8 MHz.
• PPI tiene 24 pines para E/S que son programables en grupos de 12 pines y tiene 3 distintos modos de operación ( 0, 1 y 2).
• En la PC, un 82C55 o su equivalente es decodificado en la dirección de puertas de E/S 60H-63H.
• Posee tres puertos de salida, el puerto A, el B y el C.
• Cada puerto consta de 8 líneas de E/S (byte)
• Polarización Vcc= + 5.0 volts C.C.
Microcomputadores e Interfaces 22
La interfaz de Periférica Programable (PPI) 8255
Microcomputadores e Interfaces 23
Microcomputadores e Interfaces 24
La interfaz de Periférica Programable (PPI)
PA 0
PA 1
PA 2
PA 3
PA 4
PA 5
PA 6
PA 7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
D0
D1
D2
D3
D4
D5
D6
D7
RDW RA 0
CS
82C55
RESET
A 1
PUERTA - A
PUERTA -B
PUERTA -C
BUSDE
DATOS
CONTROL
GRUPO – A
PUERTA A (PA7 – PA0)
Mitad Superior PUERTA C
(PC7 – PC4)
GRUPO – B
PUERTA B (PB7 – PB0)
Mitad Inferior PUERTA C
(PC3 – PC0)
A1 A0 Función
0 0 Puerto A
0 1 Puerto B
1 0 Puerto C
1 1 Registro de Comando
VCCGND
Microcomputadores e Interfaces 25
La interfaz de Periférica Programable (PPI)
Descripción de los pines del 82C55
• Vcc
Terminal de polarización positivo de + 5 volts C.C.
• GND
Terminal de tierra del circuito integrado.
• D7 – D0
Bus de datos de líneas bidireccionales con lógica de tres estados
• RESET
Un 1 lógico en esta terminal borra el contenido del registro de control y todas las puertas son puestas a modo 0 y en configuración de entrada.
Microcomputadores e Interfaces 26
La interfaz de Periférica Programable (PPI)
Descripción de los pines del 82C55
• CS
Chip Select. Un 0 lógico puesto en este terminal habilita la comunicación entre el 82C55 y el Bus de Datos.
• RD
Terminal de control de Lectura. Una señal de nivel 0 lógico puesto en este terminal permite leer el estado de la PPI o los datos enviados vía el Bus de Datos al acumulador del microprocesador.
• WR
Terminal de control de Escritura. Una señal de nivel 0 lógico puesto en este terminal permite cargar la programación y enviar datos vía el Bus de Datos a la PPI desde el acumulador del microprocesador.
Microcomputadores e Interfaces 27
La interfaz de Periférica Programable (PPI)Descripción de los pines del 82C55
• A1 - A0
Terminales de dirección. Estas señales de entrada, en conjunto con las señales de control RD y WR, controlan la selección de una de las tres puertas o del registro de control de la PPI. A1 y A0, son a menudo conectados a los bits menos significativos del Bus de Direcciones del Microprocesador.
• PA7 – PA0
Puerta A. Posee 8 líneas que se configuran como entradas o salidas.
• PB7 – PB0
Puerta B. Posee 8 líneas que se configuran como entradas o salidas.
• PC7 – PC0
Puerta C. Posee 8 líneas que se configuran como entradas o salidas.
Microcomputadores e Interfaces 28
La interfaz de Periférica Programable (PPI)
Operación Básica de Control de la 82C55
A1 A0 RD WR CS OPERACION
0 0 0 1 0 PUERTA A -> DATA BUS
0 1 0 1 0 PUERTA B -> DATA BUS
1 0 0 1 0 PUERTA C -> DATA BUS
0 0 1 0 0 DATA BUS -> PORT A
0 1 1 0 0 DATA BUS -> PORT B
1 0 1 0 0 DATA BUS -> PORT C
1 1 1 0 0 DATA BUS -> CONTROL
X X X X 1 DATA BUS -> 3 STATE
1 1 0 1 0 ERROR
X X 1 1 0 DATA BUS -> 3 STATE
Microcomputadores e Interfaces 29
La interfaz de Periférica Programable (PPI)
7 6 5 4 3 2 1 0
1 X X X X X X X
Byte de Comando A
Puerto C (PC3 – PC0)
1 = entrada 0 = salida
Puerto B
1 = entrada 0 = salida
MODO
0 = Modo 0 1 = Modo 1
Puerto C (PC7 – PC4)
1 = entrada 0 = salida
Puerto A
1 = entrada 0 = salida
MODO
00 = Modo 0 01 = Modo 1
1X = Modo 2
GRUPO A
GRUPO B
Activa la opción de Bit Set/Reset
1 = inactivo
0 = activo
Microcomputadores e Interfaces 30
La interfaz de Periférica Programable (PPI)
7 6 5 4 3 2 1 0
0 X X X
Byte de Comando B (Bit Set/Reset)
Establecimiento/restauración de bit
1 = establece
0 = restaura
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Microcomputadores e Interfaces 31
La interfaz de Periférica Programable (PPI)
Programación de la PPI
• De acuerdo al Byte de Comando, se programan los Modos y la Configuración de las Puertas
• Ejemplo 01:7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0
Bit 7 : habilita byte de comandoBit 7 : habilita byte de comando
Bites 6 y 5 : señalan Modo 0 al grupo ABites 6 y 5 : señalan Modo 0 al grupo A
Bit 4 : puerta A en configuración de salidaBit 4 : puerta A en configuración de salida
Bit 3 : mitad superior de puerta C en configuración de salidaBit 3 : mitad superior de puerta C en configuración de salida
Bit 2 : señala Modo 0 al grupo BBit 2 : señala Modo 0 al grupo B
Bit 1 : puerta B en configuración de salidaBit 1 : puerta B en configuración de salida
Bit 0 : mitad inferior de puerta C en configuración de salidaBit 0 : mitad inferior de puerta C en configuración de salida
Microcomputadores e Interfaces 32
La interfaz de Periférica Programable (PPI)
Programación de la PPI
• De acuerdo al Byte de Comando, se programan los Modos y la Configuración de las Puertas
• Ejemplo 02:7 6 5 4 3 2 1 0
1 0 0 1 0 0 0 1
Bit 7 : habilita byte de comandoBit 7 : habilita byte de comando
Bites 6 y 5 : señalan Modo 0 al grupo ABites 6 y 5 : señalan Modo 0 al grupo A
Bit 4 : puerta A en configuración de entradaBit 4 : puerta A en configuración de entrada
Bit 3 : mitad superior de puerta C en configuración de salidaBit 3 : mitad superior de puerta C en configuración de salida
Bit 2 : señala Modo 0 al grupo BBit 2 : señala Modo 0 al grupo B
Bit 1 : puerta B en configuración de salidaBit 1 : puerta B en configuración de salida
Bit 0 : mitad inferior de puerta C en configuración de entradaBit 0 : mitad inferior de puerta C en configuración de entrada
Microcomputadores e Interfaces 33
La interfaz de Periférica Programable (PPI)
Programación de la PPI
• De acuerdo al Byte de Comando, se programan los Modos y la Configuración de las Puertas
• Ejemplo 03:7 6 5 4 3 2 1 0
1 0 1 0 X 0 0 X
Bit 7 : habilita byte de comandoBit 7 : habilita byte de comando
Bites 6 y 5 : señalan Modo 1 al grupo ABites 6 y 5 : señalan Modo 1 al grupo A
Bit 4 : puerta A en configuración de salidaBit 4 : puerta A en configuración de salida
Bit 3 : mitad superior de puerta C don’t careBit 3 : mitad superior de puerta C don’t care
Bit 2 : señala Modo 0 al grupo BBit 2 : señala Modo 0 al grupo B
Bit 1 : puerta B en configuración de salidaBit 1 : puerta B en configuración de salida
Bit 0 : mitad inferior de puerta C don’t careBit 0 : mitad inferior de puerta C don’t care
Microcomputadores e Interfaces 34
La interfaz de Periférica Programable (PPI)
Programación de la PPI
• De acuerdo al Byte de Comando, se programan los Modos y la Configuración de las Puertas
• Ejemplo 04:7 6 5 4 3 2 1 0
1 0 1 1 X 1 0 X
Bit 7 : habilita byte de comandoBit 7 : habilita byte de comando
Bites 6 y 5 : señalan Modo 1 al grupo ABites 6 y 5 : señalan Modo 1 al grupo A
Bit 4 : puerta A en configuración de entradaBit 4 : puerta A en configuración de entrada
Bit 3 : mitad superior de puerta C don’t careBit 3 : mitad superior de puerta C don’t care
Bit 2 : señala Modo 1 al grupo BBit 2 : señala Modo 1 al grupo B
Bit 1 : puerta B en configuración de salidaBit 1 : puerta B en configuración de salida
Bit 0 : mitad inferior de puerta C don’t careBit 0 : mitad inferior de puerta C don’t care
Microcomputadores e Interfaces 35
La interfaz de Periférica Programable (PPI)
Programación de la PPI
• De acuerdo al Byte de Comando, se programan los Modos y la Configuración de las Puertas
• Ejemplo 05:7 6 5 4 3 2 1 0
1 1 X X X 1 0 X
Bit 7 : habilita byte de comandoBit 7 : habilita byte de comando
Bites 6 y 5 : señalan Modo 2 al grupo ABites 6 y 5 : señalan Modo 2 al grupo A
Bit 4 : puerta A en configuración de entrada y salidaBit 4 : puerta A en configuración de entrada y salida
Bit 3 : mitad superior de puerta C don’t careBit 3 : mitad superior de puerta C don’t care
Bit 2 : señala Modo 1 al grupo BBit 2 : señala Modo 1 al grupo B
Bit 1 : puerta B en configuración de salidaBit 1 : puerta B en configuración de salida
Bit 0 : mitad inferior de puerta C don’t careBit 0 : mitad inferior de puerta C don’t care
Microcomputadores e Interfaces 36
La interfaz de Periférica Programable (PPI)
Programación de la PPI
• De acuerdo al Byte de Comando, se programan los Modos y la Configuración de las Puertas
• Ejemplo 06:7 6 5 4 3 2 1 0
1 1 X X X 1 0 X
Bit 7 : habilita byte de comandoBit 7 : habilita byte de comando
Bites 6 y 5 : señalan Modo 2 al grupo ABites 6 y 5 : señalan Modo 2 al grupo A
Bit 4 : puerta A en configuración de entrada y salidaBit 4 : puerta A en configuración de entrada y salida
Bit 3 : mitad superior de puerta C don’t careBit 3 : mitad superior de puerta C don’t care
Bit 2 : señala Modo 1 al grupo BBit 2 : señala Modo 1 al grupo B
Bit 1 : puerta B en configuración de salidaBit 1 : puerta B en configuración de salida
Bit 0 : mitad inferior de puerta C don’t careBit 0 : mitad inferior de puerta C don’t care
Microcomputadores e Interfaces 37
La interfaz de Periférica Programable (PPI)
• 82C55 : Modo de Operación 0
– Obliga al 82C55 a funcionar como un dispositivo de entrada buffer o como un dispositivo de salida latch (biestables).
– Todas las puertas pueden ser configuradas en forma independiente, esto significa que cualquiera de ellas puede ser de entrada o salida.
– Es el método más típico en la programación.
Microcomputadores e Interfaces 38
La interfaz de Periférica Programable (PPI)
LABORATORIO : MICROCOMPUTADORES E INTERFACES
EXPERIENCIA : Transmisión y recepción de datos.
OBJETIVOS :
• Entender la manera como la CPU envía y recibe datos desde otros dispositivos
• Aprender a programar una Interfaz Programable Periférica PPI.
• Detectar un número de pulsos y desplegarlos por visores numéricos
Microcomputadores e Interfaces 39
La interfaz de Periférica Programable (PPI)
• Las direcciones empleadas para la PPI del Entrenador MTS-88C son las siguientes:
DIR Función
1 0 Puerto A
1 1 Puerto B
1 2 Puerto C
1 3 Registro de Comando
Microcomputadores e Interfaces 40
La interfaz de Periférica Programable (PPI)
Características del transceptor 74LS245
Microcomputadores e Interfaces 41
La interfaz de Periférica Programable (PPI)
Transmisión de datos desde acumulador a puerta B
PA 0PA 1
PA 2
PA 3
PA 4PA 5PA 6
PA 7
PB 0PB 1
PB 2
PB 3
PB 4PB 5
PB 6
PB 7
PC 0PC 1
PC 2PC 3
PC 4PC 5
PC 6
PC 7
23
45
678
9
1011
1213
14
15
1617
1819
2021
222324
25
4039
3837
36
35
3433
32
31
302928
27
26
1
IR 7
IR 5
IR 2
IR 6
IR 3IR 4
IR 1
IR 0
C K 1
OU T 2
OU T 1
GA T 2
GA T 1PC L K
VC C
GN D
IN TER FA Z D ELM IC R OP
.L S245
D IR VC C
G GN D
1
2
3
4
5
6
7
8
9
19
20
18
17
16
15
14
13
12
11
10
D ISPL A Y D E L ED ´S D EL D IGIL A B+ 5 v C .C
Microcomputadores e Interfaces 42
La interfaz de Periférica Programable (PPI)
Diagrama de FlujoInicio
Programar 82C55
Modo 0 Puerta B de salida
Mueve dato a AL
Escribe AL a puerta B
Fin
Microcomputadores e Interfaces 43
La interfaz de Periférica Programable (PPI)
Programa
0000:0400 MOV AL,80 ; carga AL con byte de control
0000:0402 OUT 13,AL ; se selecciona Modo 0 y configura puerta B como salida
0000:0404 MOV AL,FF ; carga AL con FFh
0000:0406 OUT 11,AL ; escribe a la puerta B
0000:0408 HLT ; detenga programa
Microcomputadores e Interfaces 44
La interfaz de Periférica Programable (PPI)
PA 0PA 1
PA 2
PA 3
PA 4PA 5
PA 6
PA 7
PB 0PB 1
PB 2
PB 3
PB 4PB 5
PB 6
PB 7
PC 0PC 1
PC 2
PC 3
PC 4PC 5
PC 6
PC 7
23
4
5
6
7
8
9
10
1112
13
1415
16
171819
20
21
222324
25
4039
3837
36
35
34
33
32
31
302928
27
26
1
IR 7
IR 5
IR 2
IR 6
IR 3IR 4
IR 1
IR 0
C K 1
OU T 2
OU T 1
GA T 2
GA T 1PC L K
VC C
GN D
IN TER F AZ D EL
M IC R OP. L S245
D IR VC C
G GN D
1
2
3
4
5
6
7
8
9
19
20
18
17
16
15
14
13
12
11
10
IN TER R U PTOR ES D EL D IGIL A B
+ 5 v C .C0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0
Recepción de datos en el acumulador desde puerta B
Microcomputadores e Interfaces 45
La interfaz de Periférica Programable (PPI)
Inicio
Programar 82C55
Modo 0 Puerta B de entrada
Lee dato desde puerta B
Fin
Diagrama de Flujo
Microcomputadores e Interfaces 46
La interfaz de Periférica Programable (PPI)
Programa
0000:0400 MOV AL,82 ; carga AL con byte de control
0000:0402 OUT 13,AL ; se selecciona Modo 0 y configura puerta B como entrada
0000:0404 IN al,11 ; lee puerta B
0000:0406 HLT ; detiene programa
Microcomputadores e Interfaces 47
La interfaz de Periférica Programable (PPI)
abcdefg.
Gnd
MAN74A
abcdefg.
Gnd
MAN74A
B1C2LT3RGO4RGI5D6A7NC8 e9
d10c11b12a13g14f15
VCC16
DECODER 7448
+5V
245
DIR1A12A23A34A45A56A67A78A89EN19 GND10
B811B712B613B514B415B316B217B118
VCC20
IR740IR639IR538IR437IR336IR235IR134IR033
CK132OUT231OUT130GAT229GAT128PCLK27VCC26GND1
PC725PC624PC523PC422PC321PC220PC119PC018
PB717PB616PB515PB414PB313PB212PB111PB010
PA79PA68PA57PA46PA35PA24PA13PA02
B1C2LT3RGO4RGI5D6A7NC8 e9
d10c11b12a13g14f15
VCC16
DECODER 7448
4.7K
Detección por pulsos
Microcomputadores e Interfaces 48
La interfaz de Periférica Programable (PPI)
Inicio
Programar 82C55
Modo 0 Puerta A de entrada
Puerta B de salida
Escribe AL a puerta B
Borre AX
Lee puerta A
Retardo de tiempo
PA0 = 1
Diagrama de Flujo
Microcomputadores e Interfaces 49
La interfaz de Periférica Programable (PPI)
Programa0000:0400 XOR AX,AX ; borra AX
0000:0402 MOV AL,90 ; carga AL con byte de control
0000:0404 OUT 13,AL ; saca byte de control a puerta Control
0000:0406 IN AL,10 ; lee puerta A
0000:0408 TEST AL,01 ; chequea estado del switch
0000:040B JNE 0406 ; si switch está abierto rechequea
0000:040D INC AH ; AH=AH+1
0000:040F MOV AL,AH
0000:0411 OUT 11,AL ; escribe a puerta B
0000:0413 MOV CX,0010 ; pone retardo de tiempo
0000:0416 MOV BX,0500
0000:0419 DEC BX ; BX=BX-1
0000:041A JNE 0419 ; salta a dirección 0419 si BX≠0
0000:041C LOOP 0416 ; ejecuta ciclo si CX≠0
0000:041E JMP 0406 ; salta a dirección 0406
0000:0421 HLT ; detiene programa
Microcomputadores e Interfaces 50
La interfaz de Periférica Programable (PPI)
• 82C55 : Modo de Operación 1 entrada controlada por pulso– Obliga a que los puertos A y/o B del 82C55 funcionen como dispositivos
de entrada con registro. Esto permite almacenamiento de datos externos en el puerto hasta que el microprocesador esté listo para recuperarlos.
– El puerto C también es empleado en el modo de operación 1, no para datos, sino para señales de control o de respuesta que ayudan en la operación de los puertos ya sea A o B, o ambos como puertos de entrada controlados por pulsos.
– El puerto de entrada controlado por pulsos captura datos de las terminales del puerto cuando se activa la señal de reloj STB’.
– El puerto captura los datos durante la transición de 0 a 1 del pulso STB’
– La señal STB’, activa las señales de buffer de entrada lleno IBF y de solicitud de interrupción INTR
– Una vez que el microprocesador reconoce, por medio de software (IBF) o de hardware (INTR) que un dato está almacenado en el puerto, ejecuta una instrucción IN para leer el puerto (RD’)
– Al leer el puerto, se restituyen a sus estados inactivos tanto IBF e INTR.
Microcomputadores e Interfaces 51
La interfaz de Periférica Programable (PPI)
Definiciones de señal para entrada controlada por pulsos en modo 1• STB’
– La entrada pulso (strobe) carga datos al registro del puerto, el cual mantiene la información hasta que es transferida al microprocesador por medio de la instrucción IN.
• IBF– Buffer de entrada lleno es una salida que indica que el registro de entrada
contiene información.• INTR
– Solicitud de interrupción es una salida que solicita una interrupción de hardware al microprocesador. La terminal INTR asume un estado de 1 lógico cuando la entrada STB’ regresa al valor de 1 lógico, y es restituida cuando el dato es transferido desde el puerto al microprocesador.
• INTE– La señal de habilitación de interrupción no es una entrada ni salida; es un
bit interno programado por medio de la posición PC4 (puerto A) o PC2 (puerto B)
• PC7, PC6– Terminales 7 y 6 de E/S, son de propósitos generales y disponibles.
Microcomputadores e Interfaces 52
La interfaz de Periférica Programable (PPI)
PC4
PC5
PC3
INTEA
PC6+7
Puerto A
STBA
IBFA
INTRA
E/S
PC2
PC1
PC0
INTEB
Puerto B
STBB
IBFB
INTRB
Puertos A y B (entrada) en Modo 1
RDRD
Byte de Control
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 1 X X X X
Byte de Control
D7 D6 D5 D4 D3 D2 D1 D0
1 X X X X 1 1 X
Microcomputadores e Interfaces 53
Operación de entrada controlada por pulsos (Modo 1)
STB
IBF
INTR
RD
PUERTO
Dato de entrada escrito al puerto Dato leído por microprocesador
Buffer lleno
Interrupción solicitada
Microcomputadores e Interfaces 54
La interfaz de Periférica Programable (PPI)
Ejemplo de un procedimiento donde el microprocesador lee un carácter ASCII que ingresa por la puerta A
MOV AL,BC ; pone byte de control
MOV DX,13 ; pone dirección de Control
OUT DX,AL ;
READ_C MOV DX,12 ; obtiene dirección de puerta C
IN AL,DX ; obtiene estado de puerta C
TEST AL,00100000 ; chequea si IBF = 1 (PC5)
JZ READ_C ; si IBF = 0 vuelve a chequear
MOV DX,10 ; obtiene dirección de puerta A
IN AL,DX ; ingresa ASCII de puerta A a AL
MOV [0200],AL ; salva dato en dirección de memoria
HLT
Microcomputadores e Interfaces 55
La interfaz de Periférica Programable (PPI)
82C55 : Modo de Operación 1 salida controlada por pulso• Su operación es parecida a la de entrada controlada por pulsos en
modo 0, excepto que se incluyen señales de control para proporcionar respuesta.
• Siempre que se escriben datos a un puerto programado como puerto de salida controlado por pulsos, la señal buffer de salida lleno, OBF’, asume el estado de 0 lógico para indicar la existencia de datos en el registro del puerto.
• Esta señal indica a un dispositivo externo de E/S que hay datos disponibles.
• El dispositivo externo responde al puerto que ha leído los datos del registro del puerto, activando la entrada de reconocimiento, ACK’, del puerto.
• La señal ACK’ restituye la señal OBF’ a 1 lógico, indicando que el buffer está desocupado.
Microcomputadores e Interfaces 56
La interfaz de Periférica Programable (PPI)
Definiciones de señal para salida controlada por pulsos en modo 1
• OBF’– Es una salida que asume el estado bajo siempre que los datos
sean escritos (OUT) al registro de los puertos A o B. Esta señal es restituída a 1 lógico siempre que el pulso ACK’ es retornado desde un dispositivo externo.
• ACK’– La señal de reconocimiento ocasiona que la terminal OBF’
regrese al nivel lógico de 1. La señal ACK’ indica que el dispositivo externo recibio el dato.
• INTR– La solicitud de interrupción es una señal que freceuntemente
interrumpe al microprocesador cuando el dispositivo externo recibe el dato por medio de la señal ACK’. Esta terminal es calificada por el bit interno de habilitación de interrupción (INTE).
Microcomputadores e Interfaces 57
La interfaz de Periférica Programable (PPI)
Definiciones de señal para salida controlada por pulsos en modo 1
• INTE– La señal de habilitación de interrupción no es una entrada ni
salida; es un bit interno programado para habilitar o deshabilitar la terminal INTR. El bit INTE A es programado como PC6 e INTE B es programado como PC2.
• PC5 – PC4– Las terminales 4 y 5 del puerto C son terminales de E/S de
propósito general. El comando de establecimiento y restauración puede ser usado para controlar estas terminales.
Microcomputadores e Interfaces 58
La interfaz de Periférica Programable (PPI)
PC7
PC6
PC3
INTEA
PC4+5
OBFA
ACKA
INTRA
E/S
PC1
PC2
PC0
INTEB OBFB
ACKB
INTRB
Puertos A y B (salida) en Modo 1
RDRD
Byte de Control
D7 D6 D5 D4 D3 D2 D1 D0
1 0 1 0 X X X X
Byte de Control
D7 D6 D5 D4 D3 D2 D1 D0
1 X X X X 1 0 X
Puerto A Puerto B
Microcomputadores e Interfaces 59
Operación de salida controlada por pulsos (Modo 1)
WR
OBF
INTR
ACK
PUERTO
Dato enviado al puerto Dato extraído del puerto
Buffer lleno
Interrupción solicitada
Microcomputadores e Interfaces 60
Operación de salida controlada por pulsos (Modo 1)
Ejemplo de un procedimiento donde el microprocesador saca un carácter ASCII que ingresa por la puerta B
MOV AL,0BC ; pone byte de controlMOV DX,13 ; pone dirección de ControlOUT DX,AL ;DEC DX ; DX = DX-1
READ_C IN AL,DX ; obtiene estado de puerta CTEST AL,00000010 ; chequea si OBF = 1 (PC2)JZ READ_C ; si OBF = 0 vuelve a chequearMOV DX,11 ; obtiene dirección de puerta BMOV AL,[0200] ; carga ASCII de memoria a ALOUT DX, AL ; ingresa dato acumulador a puerta BHLT
Microcomputadores e Interfaces 61
La interfaz de Periférica Programable (PPI)
Combinaciones de Modo 1
PUERTA C ENTRADA SALIDA
PC0 INTRB INTRB
PC1 IBFB OBFB
PC2 STBB ACKB
PC3 INTRA INTRA
PC4 STBA I/O
PC5 IBFA I/O
PC6 I/O ACKA
PC7 I/O OBFA
Microcomputadores e Interfaces 62
La interfaz de Periférica Programable (PPI)
PA7 – PA0
PC4
PC5
PC6 – PC7
PC3
PB7 – PB0
PC1
PC2
PC0
STBA’
IBFA
INTRA
INTRB
OBFB’
ACKB’
I/O
PA7 – PA0
PC7
PC6
PC4 – PC5
PC3
PB7 – PB0
PC2
PC1
PC0
STBB’
IBFB
INTRA
INTRB
OBFA’
ACKA’
I/O
Combinaciones de Modo 1
Microcomputadores e Interfaces 63
PAR TID A
C O NFIGUR AR PP IMO D O 0
PO R T B SALID A
FLAG C O NTR O L D EMO TO R
SALID A PO R T B
R ETAR D O D E TIEMPO
GUAR D A AX EN STAC K
LEE TEC LAD O
TEC LA "G" TEC LA "S "
MO D O MO VIMIENTO
PO P AX
FLAG ?
R O R AL,01
MO D O PAR AD A
Y
TEC LAD O
Y
Y
Y
N
N
N
N
Microcomputadores e Interfaces 64
A.- CONTROL BASICO DEL MOTOR PASO A PASO0000:0400 MOV AL, 80 ; carga acumulador con programación de PPI en modo 00000:0402 OUT 13 , AL ; escribe byte a puerta de control0000:0404 MOV BL , 02 ; carga Flag en BL0000:0406 MOV AL , 66 ; carga Acumulador con código de rotar.0000:0408 OUT 11 , AL ; escribe byte del Acumulador a puerta B0000:040A CALL 042E ; llama a rutina de retardo de tiempo0000:040D PUSH AX ; guarda contenido de registro AX en Stack0000:040E IN AL , 21 ; lee Registro de Estado del Teclado0000:0410 TEST AL , 0F ; verifica si hay tecla presionada0000:0413 JZ 0423 ; si no hay tecla presionada salta a la dirección 04230000:0415 IN AL , 20 ; lee registro de datos del teclado0000:0417 CMP AL , D0 ; verifica si es tecla = “G”0000:0419 JNZ 041D ; si no es tecla =”G”, salte a 041D0000:041B MOV BL , 01 ; ponga Flag para rotación del motor0000:041D CMP AL , DC ; verifica si es tecla = “S”0000:041F JNZ 0423 ; si no es tecla =”S”, salte a 04230000:0421 MOV BL , 02 ; ponga Flag para detener al motor0000:0423 POP AX ; recupera de Stack, contenido AX 0000:0424 CMP BL , 01 ; verifica Flag de rotación del motor0000:0427 JNZ 0408 ; si no Flag, salta a 04080000:0429 ROR AL , 01 ; rota byte de Al un bit a la derecha0000:042B JMP 0408 ; salta a dirección 04080000:042E MOV CX , 0200 ; rutina de retardo de tiempo0000:0431 NOP0000:0432 LOOP 04310000:0434 RET ; retorno de instrucción CALL
Microcomputadores e Interfaces 65
CONTROL BÁSICO DEL MOTOR PASO A PASO
0400 MOV AL, 80 MOV BL, 01
OUT 13 , AL 041D CMP AL, DC
MOV BL , 02 JNZ 0423
MOV AL , 66 MOV BL, 02
0408 OUT 11 , AL 0423 POP AX
CALL 042E CMP BL, 01
PUSH AX JNZ 0408
IN AL , 21 ROR AL, 01
TEST AL , 0F JMP 0408
JZ 0423 042E MOV CX, 0200
IN AL , 20 0431 NOP
CMP AL , D0 LOOP 0431
JNZ 041D RET
Microcomputadores e Interfaces 66
0000:0400 MOV AL,80 ; carga acumulador con byte de programación de PPI en modo 00000:0402 OUT 13,AL ; escribe byte a puerta de control0000:0404 MOV BL,01 ; carga Flag en BL0000:0406 MOV AL,66 ; carga Acumulador con código a rotar0000:0408 OUT 11,AL ; escribe byte a puerta B0000:040A PUSH AX ; guarda registro AX en Stack0000:040B IN AL,21 ; lee registro de teclado0000:040D TEST AL,0F ; verifica si hay tecla presionada0000:0410 JE 041C ; no tecla presionada salta a 041C0000:0412 IN AL,20 ; lee registro de datos del teclado0000:0414 CMP AL,DD ; verifica si es tecla = “T”0000:0416 JE 0426 ; si no es tecla =”T”, salte a 04260000:0418 CMP AL,D7 ; verifica si es tecla = “N”0000:041A JE 0420 ; si no es tecla =”N”, salte a 04200000:041C POP AX ; recupera de Stack, contenido AX0000:041D JMP 0408 ;0000:0420 POP AX ; recupera de Stack, contenido AX 0000:0421 ROR AL,01 ; rota Al un bit a la derecha0000:0423 JMP 0408 ;0000:0426 MOV CX,00C8 ; pone contador en CX0000:0429 ROR AL,01 ; rota Al un bit a la derecha0000:042B OUT 11,AL ;0000:042D CALL 0435 ; llama rutina de retardo0000:0430 LOOP 0429 ;0000:0432 JMP 0408 ;0000:0435 PUSH CX ; guarda registro CX en stack0000:0436 MOV CX,0200 ; pone contador en CX0000:0439 NOP ;0000:043A LOOP 0439 ;0000:043C POP CX ; recupera de Stack, contenido CX0000:043D RET ; retorno de instrucción CALL
Control de la rotación y movimiento paso del motor
Microcomputadores e Interfaces 67
CONTROL BÁSICO DEL MOTOR PASO A PASO
0400 MOV AL, 80 0420 POP AX
OUT 13 , AL ROR AL, 01
MOV BL , 01 JMP 0408
MOV AL , 66 0426 MOV CX, 00C8
0408 OUT 11 , AL 0429 ROR AL, 01
PUSH AX OUT 11, AL
IN AL , 21 CALL 0435
TEST AL , 0F LOOP 0429
JZ 041C JMP 0408
IN AL , 20 0435 PUSH CX
CMP AL , DD MOV CX, 0200
JZ 0426 0439 NOP
CMP AL, D7 LOOP 0439
JZ 0420 POP CX
041C POP AX RET
JMP 0408 HLT
Microcomputadores e Interfaces 68
La interfaz de Periférica Programable (PPI)
82C55 : Operación bidireccional en modo 2
• En el modo 2, permitido solamente con el grupo A, el puerto A se convierte en bidireccional, permitiendo la transmisión y recepción de datos a través de los mismos ocho conductores.
• Los buses bidireccionales de datos son útiles para interconectar a dos computadoras
Microcomputadores e Interfaces 69
La interfaz de Periférica Programable (PPI)
Definiciones de señal para el modo 2 bidireccional
• INTR– Solicitud de interrupción es una salida utilizada para interrumpir al
microprocesador para ambas condiciones de entrada y de salida.
• OBF’– Buffer de salida lleno es una salida que indica que el buffer de salida
contiene un dato para el bus bidireccional.
• ACK’– Reconocimiento es una entrada que habilita los buffers de 3 estados de
forma que pueda aparecer un dato en el puerto A.
– Si ACK’ es un 1 lógico, los buffers de salida del puerto A están en su estado de alta impedancia.
• STB’– La entrada pulso de datos carga el registro de entrada del puerto A con
dato externo desde el bus bidireccional del puerto A.
Microcomputadores e Interfaces 70
La interfaz de Periférica Programable (PPI)
Definiciones de señal para el modo 2 bidireccional
• IBF– Buffer de entrada lleno es una salida utilizada para indicar que el
buffer de entrada contiene un dato para el bus bidireccional externo.
• INTE– Habilitación de interrupción son bist internos (INTE1 e INTE2)
que habilitan la terminal INTR. El estado de la terminal INTR es controlado por medio de los bits PC6 (INTE1) y PC4 (INTE2) del puerto C.
• PC2, PC1 Y PC0– Estas son terminales de E/S de propósito general en el modo 2
controlados por los comandos de establecimiento y restauración de bits.
Microcomputadores e Interfaces 71
La interfaz de Periférica Programable (PPI)
PC6
PC7
PC5
PC4
I N TE
I N TE
1
2
I NTR
OBF
STB
AC K
I BF
E/ S
PUERTO A
PC3
PC2 - PC0
Microcomputadores e Interfaces 72
La interfaz de Periférica Programable (PPI)
W R
OBF
I NTR
ACK
STB
I BF
PORT A
RD
Dato alm acenado en el puerto A
Dato de salida (OUT) al puerto A Dato leído del puerto A
Dato de entrada ( I N) desde el puerto A
Diagrama de tiempos en modo 2