Sei sulla pagina 1di 8

Gua rpida

para gestionar
el puerto paralelo del PC

___________________





Jos Ignacio Surez Marcelo


Gua rpida para gestionar el puerto paralelo del PC
1. Introduccin

El puerto paralelo de un ordenador personal puede ser empleado para
comunicaciones entre el ordenador personal (PC) y un perifrico. Aunque tradicionalmente
se ha empleado como puerto unidireccional de salida, por ejemplo para gobernar una
impresora, lo cierto es que tambin puede ser empleado en modo bidireccional, con lo que
no slo se pueden enviar datos, sino tambin recibirlos desde un perifrico externo. En esta
gua se describe de forma breve la programacin (a nivel de registros) y las caractersticas
ms importantes del puerto paralelo, con el fin de que sirva como referencia para el
establecimiento de una comunicacin bidireccional con un dispositivo perifrico externo.


2. Caractersticas mecnicas

El puerto paralelo de un PC se identifica mediante un conector sub-D hembra de 25
pines (DB25) como el de la figura 1. Las seales que en l intervienen reciben nombres
relacionados con la comunicacin con una impresora (protocolo Centronics), pero en
realidad pueden ser programadas con total libertad por el usuario. En la tabla 1 se
describen cada uno de los pines del conector DB25 y el sentido de las seales (salida
significa desde el PC al perifrico y entrada desde el perifrico al PC).



Figura 1 Vista frontal del conector sub-D hembra de 25 pines correspondiente al puerto paralelo
de un PC
Jos Ignacio Surez Marcelo 2
Gua rpida para gestionar el puerto paralelo del PC
Tabla 1
Descripcin de los pines del puerto paralelo de un PC
N PIN SMBOLO SENTIDO
INVERTIDA
POR HW
DESCRIPCIN
1 STROBE E/S S Validacin de datos
2-9 DB[0..7] E/S Bus de datos de 8 bits
10 ACK E Acknowledge (Acept ltimo carcter, si ACK = 0)
11 BUSY E S Ocupada (impresora ocupada si BUSY = 0)
12 PE E Paper End (sin papel, si PE = 1)
13 SLCT E Impresora seleccionada (si SLCT = 1)
14 XT E/S S Autofeed (siguiente lnea automatica, si XT = 0)
15 ERROR E Error (error, si ERROR = 0)
16 INIT E/S Inicializar impresora (si INIT = 0)
17 SLCT IN E/S S Seleccionar impresora (si SLCT IN = 0)
18 25 GND Masa de seal
E/S En negrita, el sentido por defecto, cuando el puerto paralelo est en modo unidireccional
Invertida por HW, significa que la seal es invertida por la electrnica de la tarjeta.


3. Caractersticas elctricas

Las seales que forman el puerto paralelo normalmente son compatibles con
niveles TTL (de 0 a 5 V), pero suelen tener muy poca capacidad de corriente (entre 6 mA y
20 mA aproximadamente, variando de un fabricante a otro). Debido a ello, es habitual usar
un buffer de salida si el dispositivo perifrico tiene unos requerimientos de corriente
mayores.

Jos Ignacio Surez Marcelo 3
Gua rpida para gestionar el puerto paralelo del PC
4. Direccionamiento del puerto paralelo

El puerto paralelo, como todos los interfaces del PC, dispone de un rango de
direcciones de E/S asignado para el direccionamiento de sus registros internos. Y como es
habitual tambin se identifica mediante una direccin base a partir de la cual se
encuentran direccionados el resto de registros de la interfaz paralelo. La BIOS (Sistema
Bsico de Entrada/Salida), al encender el PC, determina el nmero de puertos que tiene
instalados el ordenador y les asigna una etiqueta (LPT1, LPT2 o LPT3) as como una
direccin base a cada uno de ellos. El rango de direcciones ms habituales se muestran en
la tabla 2.

Tabla 2
Direcciones ms habituales asignadas por la BIOS a los puertos paralelos del PC
ETIQUETA DIR. BASE DIR. FINAL
LPT1 0378 037F
LPT2 0278 027F
LPT3 03BC 03BF

Las direcciones base de E/S mostradas en la tabla 2 no siempre se asignan en el
orden indicado, sino que pueden variar de un ordenador a otro. Para saber realmente la
direccin base del puerto paralelo que se va a utilizar se puede proceder de varias maneras.
Una de ellas, muy simple, es entrar en la BIOS y mirar los puertos detectados y las
direcciones asignadas. Si no se desea entrar en la BIOS, slo hay que esperar (tras el
anlisis de la memoria y deteccin de perifricos: teclado, discos, etc.) a que aparezca esta
informacin en la tabla previa al inicio del arranque del sistema operativo que est
instalado. De todas formas, an habiendo ledo las direcciones asignadas por la BIOS,
puede ocurrir que el sistema operativo cambie dichas asignaciones segn su conveniencia.
Si se quiere realizar una deteccin por software, hay que saber que las direcciones base de
Jos Ignacio Surez Marcelo 4
Gua rpida para gestionar el puerto paralelo del PC
E/S, compuestas por dos bytes, son almacenadas por la BIOS en las direcciones de
memoria indicadas en la tabla 3.

Tabla 3
Direcciones de memoria donde la BIOS almacena las direcciones de E/S asignadas a los puertos
paralelo
DIR. DE MEMORIA PUERTO
00000:0408 LPT1
00000:040A LPT2
00000:040C LPT3

A continuacin se muestra un programa en lenguaje C para detectar los puertos
paralelo con sus direcciones asignadas.

#include <stdio.h>
#include <dos.h>

void main(void)
{
unsigned int far *direccion; //puntero a direccin de memoria (ver tabla 3).
unsigned int puerto; //direccin E/S del puerto paralelo (tabla 2).
int a;

direccion = (unsigned int far *)0x00000408; //apunta a la 1
a
entrada de la tabla 3.

for (a = 0; a < 3; a++){
puerto = *direccion; //lee 2 bytes de la direccin de memoria.

if (puerto == 0) printf(No se encontr puerto en LPT%d \n, a+1);
else printf (La direccin de E/S asignada a LPT%d es %Xh\n, a+1, puerto);

*direccion++; //apunta a siguiente entrada de la tabla 3.
}
}


Jos Ignacio Surez Marcelo 5
Gua rpida para gestionar el puerto paralelo del PC
5. Registros del puerto paralelo.

Los registros ms importantes del puerto paralelo son tres y se encuentran a partir
de la direccin base (ver tabla 4).
Tabla 4
Registros asociados al puerto paralelo del PC
REGISTRO DIRECCION NOMBRE
DREG BASE + 0 Registro de Datos
SREG BASE + 1 Registro de Estado
CREG BASE + 2 Registro de Control


REGISTRO DE DATOS (DREG): (dir. BASE + 0)

Es un registro de 8 bits, normalmente de slo escritura, aunque en modo
bidireccional tambin es de lectura. Aqu es donde se escriben o leen las lneas del bus de
datos DB[0..7].

REGISTRO DE DATOS (DREG) BASE + 0
B7 B6 B5 B4 B3 B2 B1 B0
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


Jos Ignacio Surez Marcelo 6
Gua rpida para gestionar el puerto paralelo del PC
REGISTRO DE ESTADO (SREG): (dir. BASE + 1)

Es un registro de 8 bits de slo escritura donde se puede leer el estado de las lneas
de entrada del puerto paralelo.

REGISTRO DE ESTADO (SREG) BASE + 1
B7 B6 B5 B4 B3 B2 B1 B0
BUSY# ACK# PE SLCT ERROR# IRQ#

Bits 0 y 1: reservados

Bit 2 (IRQ#): activa a nivel bajo, indica (si IRQ# = 0) que se ha producido una
interrupcin por recepcin de la seal ACK.

Bit 3 (ERROR#): activa a nivel bajo, indica (si ERROR# = 0) que ha habido un error en la
impresora.

Bit 4 (SLCT): activa a nivel alto, indica (si SLCT = 1) que la impresora ha sido
seleccionada.

Bit 5 (PE): activa a nivel alto, indica (si PE = 1) que la impresora se ha quedado sin papel.

Bit 6 (ACK#): activa a nivel bajo, indica (si ACK# = 0) que la impresora ha recibido un
carcter vlido y que est preparada para el siguiente.

Bit 7 (BUSY#): activa a nivel bajo, indica (si BUSY# = 0) que la impresora est ocupada.


Jos Ignacio Surez Marcelo 7
Gua rpida para gestionar el puerto paralelo del PC
REGISTRO DE CONTROL (CREG): (dir. BASE + 2)

Es un registro de 8 bits de lectura y escritura donde se puede establecer o leer el
estado de las lneas de salida del puerto paralelo.

REGISTRO DE CONTROL (CREG) BASE + 2
B7 B6 B5 B4 B3 B2 B1 B0
DD IRQ SLCT IN# INIT XT# STROBE#

Bit 0 (STROBE#): (validacin de datos) invertida por hardware. Si STROBE# = 0 la lnea
externa de STROBE (pin 1) se pone a nivel alto.

Bit 1 (XT#): (autofeed) invertida por hardware. Si XT# = 0 la lnea externa XT (pin 14) se
pone a nivel alto.

Bit 2 (INIT): (inicializa impresora) . Si INIT = 1 la lnea externa INIT (pin 16) se pone a
nivel alto.

Bit 3 (SLCT IN#): (selecciona impresora) invertida por hardware. Si SLCT IN# = 0 la
lnea externa SLCT IN (pin 17) se pone a nivel alto.

Bit 4 (IRQ): (activacin de interrupcin). Si IRQ = 1 activa interrupcin del puerto
paralelo (normalmente IRQ7).

Bit 5 (DD): (direccin de datos) bit de slo escritura. Si DD = 0, bus de datos como salida.
Si DD = 1, bus de datos como entrada.

Bits 6 y 7: reservados.

Jos Ignacio Surez Marcelo 8

Potrebbero piacerti anche