Puerto paralelo

Solo disponible en BuenasTareas
  • Páginas : 17 (4068 palabras )
  • Descarga(s) : 0
  • Publicado : 5 de octubre de 2010
Leer documento completo
Vista previa del texto
PUERTO PARALELO
Desde el punto de vista del software, el puerto paralelo son tres registros de 8 bits cada uno, ocupando tres direcciones de I/O consecutivas de la arquitectura x86. Desde el punto de vista hardware, el puerto es un conector hembra DB25 con doce salidas latcheadas (que tienen memoria/buffer intermedio) y cinco entradas, con 8 líneas de masa. La función normal es transferir datosa una impresora a través de las 8 líneas de datos, usando las señales restantes como control de flujo. El documento lo separé en tres secciones principales:

Descripción general Programación Puertos extendidos

Descripción general
Tabla de puertos paralelo
El puerto paralelo se identifica por su dirección de I/O base y se identifica ante sistemas DOS por el número LPT. Cuando arranca lamáquina, la BIOS chequea direcciones específicas de I/O en busca de puertos paralelos y construye una tabla de las direcciones halladas en la posición de memoria 40h:8h (o 0h:0408h). Esta tabla contiene hasta tres palabras de 16 bits. Cada palabra es la dirección de I/O base del puerto paralelo. La primera palabra corresponde a LPT1, la segunda a LPT2 y la tercera a LPT3. Hay que agregar que en DOStenemos el dispositivo PRN que es un alias a uno de los dispositivos LPT (generalmente es LPT1, pero se puede cambiar con la orden MODE) Las direcciones estándar para los puertos paralelos son 03BCh,0378h y 0278h (chequeadas en este orden). Para saber como detectar léase la sección Detectando SPP

Acceso directo al puerto
El puerto, como se mencionó antes, consiste de tres registros de 8 bitsubicados en direcciones adyacentes del espacio de I/O de la PC. Los registros se definen relativos a la dirección de I/O base (variable IOBase) y son: IOBase+0 : registro de datos IOBase+1 : registro de estado IOBase+2 : registro de control

Registro de datos (D)
Se puede leer y escribir. La forma de leer y escribir puertos con lenguajes de programación estándares se puede ver en la sección Accesoa los puertos Escribiendo un dato al registro, causa que el mismo aparezca en los pines 2 a 9 del conector del puerto. Leyendo el registro, se lee el último dato escrito (NO lee el estado de los pines; para ello hay que usar un puerto bidireccional).

Nro.Bit 7 x . . . . . . .

6 . x . . . . . .

5 . . x . . . . .

4 . . . x . . . .

3 . . . . x . . .

2 . . . . . x . .

1 . . . . .. x .

0 . . . . . . . x

Descripción D7 (pin 9), D6 (pin 8), D5 (pin 7), D4 (pin 6), D3 (pin 5), D2 (pin 4), D1 (pin 3), D0 (pin 2),

1=Alto, 1=Alto, 1=Alto, 1=Alto, 1=Alto, 1=Alto, 1=Alto, 1=Alto,

0=Bajo 0=Bajo 0=Bajo 0=Bajo 0=Bajo 0=Bajo 0=Bajo 0=Bajo

Cuando se indica Alto o Bajo se refiere a la tensión de salida (~5V para el 1 físico y ~0V para el 0 físico, respectivamente). Estoes porque la lógica puede ser positiva (un 1 lógico equivale a Alto o 5V) o negada (un 0 lógico equivale a Bajo o 0V). Con respecto a esto debemos decir que para negar algo le anteponemos el carácter / (representando la barra que se coloca encima). El estándar es que las salidas sean LS TTL (low schottky TTL), aunque las hay que son de tipo OC (colector abierto). La corriente que pueden entregar(source) es de 2,6 mA máximo y pueden absorber (sink) un máximo de 24 mA. En el puerto original de IBM hay condensadores de 2,2 nF a masa. Las tensiones para el nivel bajo son entre 0 y 0,8V y el nivel alto entre 2,4V y 5V.

Registro de estado (S)
El registro de estado está en IOBase+1. Es de sólo lectura (las escrituras serán ignoradas). La lectura da el estado de los cinco pines de entrada almomento de la lectura. En la tabla siguiente los nombres de los pines se dejaron en inglés porque es como generalmente se identifican.
Nro.Bit 7 x . . . . . 6 . x . . . . 5 . . x . . . 4 . . . x . . 3 . . . . x . 2 . . . . . x 1 . . . . . x 0 . . . . . x Descripción S7 : Busy S6 : Ack S5 : No paper S4 : Selected S3 : Error Sin definir (pin (pin (pin (pin (pin 11), 10), 12), 13), 15), 0=Alto,...
tracking img