You are on page 1of 5

(7) EPS

Estructura y Tecnología de Computadores II (2º)

(7) Características
Pueden instalarse varios en el PC (LPT1, LPT2, LPT3, LPT4) El puerto paralelo ocupa tres direcciones de memoria distintas del mapa de memoria de E/S.
Puerto de datos: puerto por el que la CPU manda datos a la impresora o lee datos si el puerto es bidireccional*. Puerto de estado: puerto que la CPU usa para conocer el estado del puerto. En el caso de la impresora puede saberse si está sin papel, apagada, etc. Puerto de control: puerto que la CPU usa para enviar señales de control al puerto paralelo. En el caso de la impresora sirve para la validación de datos, la inicialización de la impresora, etc.
(*) Lectura de datos (8 bits) sólo en Modos Avanzados: Bidireccional o PS/2, EPP (puerto paralelo mejorado) o ECP (puerto con capacidades mejoradas: usa DMA, cumple norma IEEE 1284-1994). Modo Estándar (SPP) es el original, sólo de salida, lectura sólo de los 4 bits del Registro de Estado. Selección del modo en el SETUP del PC.

Tema 7
Puerto Paralelo e Impresora LPT

10:31:47

Ingeniería Informática EPS - UAM

10:31:47

(7) Tipos y Modos de Puertos
Tipo de Puerto Paralelo
SPP (Estándar) SPP (Estándar) Bidireccional (PS/2 o Extendido) (1987) (bit 5 Reg. Ctrl) Bidireccional (PS/2 o Extendido) (1987) (bit 5 Reg. Control) EPP (P. Paralelo Mejorado) (IEEE 1284)(1991) (Periféricos) EPP (P. Paralelo Mejorado) (IEEE 1284)(1991) (Periféricos) ECP (P. Capacidades Mejoradas) (IEEE 1284) (DMA) (1992) ECP (P. Capacidades Mejoradas) (IEEE 1284)(DMA) (1992)
10:31:47

(7) ROM-BIOS y el puerto paralelo
Velocidad
50 KByte/s

Modo de Entrada
Nibble (4 bits) (Reg. Estado)

Modo de Salida

Durante el arranque del PC, las rutinas del BIOS se encargan de:
Detectar los puertos paralelos existentes en el PC Almacenar sus direcciones base e información sobre el time-out

Compatible (8 bits) Byte (8 bits) Compatible (8 bits) EPP (8 bits) EPP (8 bits) ECP (8 bits) ECP (8 bits)

150 KB/s 150 KB/s

0000h:0408h 0000h:040Ah 0000h:040Ch 0000h:040Eh
150 KB/s 500 KB/s – 2 MB/s 500 KB/s – 2 MB/s 500 KB/s – 2 MB/s 500 KB/s – 2 MB/s
10:31:47

Dirección base

Dirección base

Dirección base

Dirección base

LPT1
Time-out LPT1

LPT2
Time-out LPT2

LPT3
Time-out LPT3

LPT4
Time-out LPT4

0000h:0478h 0000h:0479h 0000h:047Ah 0000h:047Bh

Time-out : segundos que se va a esperar como máximo a que suceda algún evento, en el caso de la impresora es el tiempo que se puede esperar hasta determinar que la impresora no está disponible (apagada, off-line, sin papel, ...)

(7) Direcciones habituales del puerto
paralelo
Para acceder a los puertos es necesario usar IN o OUT
Registro de Registro de Registro de Puerto datos estado control
LPT1: LPT2: LPT3: 03BCh 0378h 0278h 03BDh 0379h 0279h 03BEh 037Ah 027Ah

(7) Registro de Datos
Registro de 8 bits que se corresponden con los pines 2 a 9 del conector (DB-25) del puerto paralelo. Originalmente era un puerto de salida para enviar datos a la impresora. Actualmente es bidireccional debido a que sus aplicaciones van más allá del uso con impresoras.
7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0

El LPT4: sólo se usa en algunos casos.

D7

10:31:47

10:31:47

1

(7) Protocolo STROBE Datos (D0-D7) (7) Protocolo STROBE Enviar dato STROBE Tm Bajar STROBE Esperar Tm Subir STROBE Tm= tiempo mínimo para que STROBE sea efectivo 10:31:47 10:31:47 (7) Protocolo BUSY Datos (D0-D7) STROBE BUSY (7) Protocolo BUSY No BUSY=1? Sí Enviar dato Bajar STROBE No BUSY=0? Sí Subir STROBE 10:31:47 10:31:47 2 . mal funcionamiento. ERROR: a 0 indica error en la impresora (sin papel. Funcionamiento en Modo Bidireccional (datos de 8 bits de entrada).---. la impresora hará un salto de línea (line feed) al recibir un carácter de retorno de carro (13). Exclusivamente de entrada. Cuando se envía un pulso a 0. SLCT: a 1 indica que la impresora está on-line.).(7) Registro de Estado Registro de 8 bits (sólo se usan 5 bits). (inv) Señal invertida por hardware en el conector DB-25. Hay que restaurarlo (a 1) cada vez que se envía un dato.---- IN BIDIR IRQEN SLCT (inv) INIT AUTOFD STROBE BUSY (inv): Cuando está a 0 indica impresora ocupada. se provoca un reset en la impresora. etc. STROBE (inv): La transición 0-1 en este bit indica a la impresora que el dato es válido y puede ser leído. (nuevo. 10:31:47 10:31:47 BIDIR: a 1 es un puerto de entrada. A 0 (defecto) es de salida. ACK: a 0 indica que la impresora ha recibido un dato y que está preparada para recibir otro. INIT: Normalmente a 1. Máscara local de interrupción. (7) Registro de Control Registro de 8 bits (sólo se usan 6 bits). Exclusivamente de entrada. AUTOFD (inv): Cuando este bit es 1. En situaciones de error también se pone a 0. IRQEN: a 1 permite que la señal ACK continúe hacia el PIC como petición de interrupción. 7 BUSY (inv) 6 ACK 5 PE 4 SLCT 3 2 1 0 7 6 5 4 3 2 1 (inv) 0 (inv) ERROR ---. IRQ del puerto paralelo conectada a entrada IR7 del PIC Maestro (Vector 0Fh) SLCT IN (inv): a 1 indica a la impresora que ha sido seleccionada. antes no existía). PE: a 1 indica impresora sin papel.---- ---.

(7) Protocolo ACK Datos (D0-D7) STROBE BUSY ACK (7) Protocolo ACK El ACK pide la atención de una rutina de interrupción asociada al puerto paralelo. Estado del SPP.o u t 17h 1h Entrada Salida R. Pueden leerse a través del R. indica transferencia de una dirección Masa (7) Modo EPP (Enhanced Parallel Port) Registros Dirección Base + 0 Base + 1 Base + 2 Base + 3 Base + 4 Base + 5 Base + 6 Base + 7 Nombre del Registro Registro de Datos (SPP) Registro de Estado (SPP) Registro de Control (SPP) Registro de Dirección Registro de Datos Indefinido (transf. 32 bits) Lectura / Escritura Escritura Lectura Escritura Lectura / Escritura Lectura / Escritura - 12 13 14 15 16 17 18-25 10:31:47 Paper Out/End Select Auto Linefeed Error / Fault Initialize Select Printer Ground Spare Spare Data Strobe Spare Reset Address Strobe Ground In In Out In Out Out GND • Si el Puerto Paralelo EPP lo soporta.3) AH: byte de estado DL: carácter a imprimir 2 1 0 T im e . Bidireccional Línea interrupción (activa en flanco ascendente) Usada por protocolo EPP. Hay inversores entre el conector DB-25 y los registros correspondientes.3) AH: byte de estado DX: impresora a utilizar (1. los datos son divididos en varios bloques de 8 bits (máximo tamaño de datos) y se envían / reciben en varias operaciones de escritura / lectura. Cuando es “0” puede comenzar el ciclo EPP y terminar cuando se pone a “1” No usada por el protocolo EPP No usada por el protocolo EPP A “0”. 16/32 bits) Indefinido (transf. Lo que debe hacer la rutina es el diagrama de flujo de la derecha. No es necesario esperar a la subida del BUSY al principio porque siempre que se genera un ACK es que BUSY ha subido. indica transferencia de un dato No usada por el protocolo EPP A “0”. reset del periférico A “0”. Las señales marcadas como Spare quedan a disposición del usuario. 10:31:47 Enviar dato Bajar STROBE No BUSY=0? Sí Subir STROBE 10:31:47 (7) Conexiones R.2.2. 10:31:47 10:31:47 7 6 5 4 3 B y te d e Im p r e s o r a ERROR BU S Y AC K P E e s ta d o S e le c c io n a d a I/O (7) Modo EPP (Enhanced Parallel Port) Pines y funciones Pin 1 2-9 10 11 SPP Signal Strobe Data 0-7 ACK Busy EPP Signal Write Data 0-7 Interrupt Wait IN / OUT Out In / Out In In Función A “0” escritura.3) AH: byte de estado DX: impresora a utilizar (1. 10:31:47 3 . Estado 7 6 5 4 3 PIN 11 PIN 10 PIN 12 PIN 13 PIN 15 2 1 0 2h 21h 5h Entrada Salida Entrada PIN n significa que la señal sale del conector (DB-25) invertida en el caso de los bits del Registro de Control. podemos transferir datos de 16 y 32 bits utilizando los registros de las direcciones Base + 5. a “1” lectura Bus Datos. En este caso. o que llega invertida al registro en el caso del Registro de Estado. 32 bits) Indefinido (transf. Base + 7. El primer dato se envía mediante llamada software y es necesario seguir el protocolo BUSY. Datos 7 6 5 4 3 2 1 0 PIN 9 PIN 8 PIN 7 PIN 6 PIN 5 PIN 4 PIN 3 PIN 2 R.2. aunque son sólo de entrada. Control 7 6 5 4 3 2 1 0 PIN 17 PIN 16 PIN 14 PIN 1 (7) Interrupciones asociadas a la impresora Int AH 5h 0h Función Imprimir pantalla Imprimir carácter Inicializar impresora Leer estado de la impresora Imprimir un carácter I/O Se llama desde el teclado Entradas Salida AL: ASCII a imprimir DX: impresora a utilizar (1. Base + 6.

El ciclo de escritura de dirección del EPP ha finalizado. La señal Address Strobe se desactiva. 10:31:47 1. (7) Modo EPP (Enhanced Parallel Port) Descripción del Funcionamiento (1/2) • El Modo EPP es compatible con el SPP. se lo podría indicar al programa a través de la señal de petición de interrupciones ACK. El ciclo de escritura de datos del EPP finaliza. 7. 4. El programa escribe la dirección en Registro de Dirección del EPP (Base + 3) 2. a través de la señal Wait. 6. El dato se sitúa en las líneas de datos 0-7. La señal Addr Strobe es desactivada. 6. indicando el fin del ciclo. indicando una operación de escritura. pasa a valer “1”. indicando una operación de escritura. 7. a través de la señal Wait que se debe poner a “1”. 3. La rutina de servicio se encargará de leer el dato o dirección con un ciclo de lectura EPP convencional. • Si el periférico quisiera enviar un dato o dirección. El programa lee el dato del Registro de Datos del EPP. reservado en Modo SPP. Address Strobe) y se supone que el periférico es compatible EPP y por tanto. (Base + 4) 2. El programa escribe el dato en el Registro de Datos del EPP (Base + 4) 2. 5. El PC espera confirmación de lectura del dato por parte del periférico. • En el caso de querer leer datos o direcciones. 10:31:47 (7) Modo EPP (Enhanced Parallel Port) Descripción del Funcionamiento (2/2) • El bit 0 del Registro de Estado. indicando el fin de la lectura del periférico. La petición parte. La señal Data Strobe se pone a “1”. mediante la desactivación de la señal Wait (se pone a “1”). se desactiva. La señal Data Strobe se pone a “0” (activa) si la señal Wait está a “0” (luz verde para el comienzo del ciclo). La señal Data Strobe se desactiva (pasa a “1”). El PC espera la confirmación del periférico de que la dirección está preparada. capaz de generar la señal Wait como es debido. Se pone a “1” cuando se supera un tiempo establecido (alrededor de 10 uS) cuando la señal Wait no se desactiva pasado ese tiempo. 6. se pone a “1” y en ese momento se lleva a cabo la lectura del dato de los pines del puerto. La señal Addr Strobe se activa (se pone a “0”) si la señal Wait está a “0” (luz verde de cominzo del ciclo). La señal Write se pone a “0”. De ese modo evitamos que el ordenador se quede “colgado” esperando a esa señal para cerrar el ciclo de lectura / escritura EPP. 3. (7) Modo EPP (Enhanced Parallel Port) Protocolo: Ciclo Lectura de Dato (7) Modo EPP (Enhanced Parallel Port) Protocolo: Ciclo Lectura de Dirección 10:31:47 1. el Puerto Paralelo EPP genera la señales de protocolo necesarias (Data Strobe. momento en el que se realiza la lectura del dato. 10:31:47 1. La dirección se sitúa en las líneas de datos 0-7. 4. La señal Data Strobe se pone a “0” (activa) si la señal Wait está a “0” (luz verde para comenzar el ciclo) 5. podemos utilizar los registros del SPP como siempre para comunicarnos con una impresora. Todo está preparado para leer el dato (dirección) de los pines del Puerto Paralelo. 4. El ciclo de lectura de dirección del EPP finaliza. el programa lee el Registro de Datos o de Dirección y de forma automática. que pasa a “1”. es decir. el Puerto Paralelo Modo EPP activa las señales Data Strobe o Address Strobe. El PC espera que el periférico le confirme que ha leído el dato. 3. en este caso. • Cuando enviamos (escribir) datos o direcciones al periférico. El programa lee la dirección el Registro de Dirección del EPP. (Base + 3) 2. desde el Puerto Paralelo EPP. 4. 10:31:47 4 . La señal Write se pone a “0”. esperando la confirmación del periférico (señal Wait). Es una especie de watchdog que incorpora el Puerto Paralelo en este modo. El ciclo de lectura de datos del EPP finaliza. Se supone que la operación de lectura la inicia el programa del PC. El PC espera que el periférico le confirme que todo va bien (dato preparado) mediante la desactivación de la señal Wait (pasa a “1”). La señal Address Strobe se pone a “0” (activa) si la señal Wait está a “0” (luz verde al comienzo del ciclo) 5. 3. El dato está preparado para ser leído de los pines del Puerto Paralelo. se utiliza en Modo EPP como bit de Time-out. 6.(7) Modo EPP (Enhanced Parallel Port) Protocolo: Ciclo Escritura de Datos (7) Modo EPP (Enhanced Parallel Port) Protocolo: Ciclo de Escritura de Dirección 10:31:47 1. 5.

• Conviene comprobar siempre el valor del bit 0 del Registro de Estado (Time-out). a “1”. es decir. 10:31:47 10:31:47 5 . • A veces. • Para llevar a cabo esa inicialización se debe escribir en el Registro de Control (Modo SPP) el siguiente dato “XXXX0100”.(7) Modo EPP (Enhanced Parallel Port) Detalles de Programación del EPP • Es necesario configurar adecuadamente el Puerto Paralelo en Modo EPP: • Señales Data Strobe. es necesario que esa inicialización se realice antes de cada operación con el EPP y no sólo al principio. • Poner a “0” el bit 5 del Registro de Control (SPP) para evitar que el Puerto Paralelo en Modo EPP funcione en modo inverso. Hay que borrarlo si eso ocurre. Write y Reset deben estar inactivas. Cuando vale “1” indica que se ha producido un time-out y el puerto EPP deja de funcionar correctamente. (7) Ejercicios Realiza un programa que inicialice la impresora. Address Strobe. lo que daría problemas.