Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EL PUERTO PARALELO
EL PUERTO DE IMPRESORA
Los ordenadores PC han estandarizado un tipo de interfaz para la comunicacin con la impresora, conocida normalmente como CENTRONICS. Esta interfaz es capaz de enviar caracteres a la impresora de forma paralelo. Cada carcter est codificado en un byte, del cul cada bit se transmite por un terminal diferente. Existen otros terminales que conectan ordenador e impresora, que sirven para intercambiar informacin de control y de estado, a fin de implementar un sencillo protocolo. Para realizar esta interfaz, los PCs disponen de unos elementos hardware especficos, denominados puertos de impresora o tambin puertos paralelo. En un PC pueden instalarse varios de estos puertos que se distinguen entre s con los nombres LPT1, LPT2 y LPT3 (en algunos casos tambin LPT4). Todos ellos son idnticos, salvo que tienen asignadas diferentes direcciones en el mapa de entrada/salida. Cada uno de estos puertos ocupa tres direcciones del mapa de E/S: Puerto de Datos : De 8 bits, es donde la CPU escribe los datos que se envan a la impresora (caracteres). Puerto de Estado: Registro de 8 bits de donde la CPU puede conocer diversos aspectos del estado de la impresora (apagada, sin papel, etc). Se usan slo 5 de los 8 bits. Puerto de Control: Registro de 8 bits donde la CPU puede escribir diversas seales que reconoce la impresora (validacin de datos, inicializacin, etc). Se usan 4 bits. Estos tres registros ocupan posiciones consecutivas, por lo que basta con especificar la primera de ellas. El puerto de datos ser el puerto base. La ROM-BIOS de los PCs contiene programas elementales para el manejo de estos puertos. En primer lugar, durante el proceso de arranque del ordenador, se detecta su presencia y se almacenan sus direcciones base en una zona de variables situada en el segmento 0040H (zona de variables del BIOS). En esta zona se pueden encontrar los siguientes datos: Printer_Base: En los offsets 0008H, 000AH, 000CH y 000EH, con 2 bytes cada uno de ellos, estn las direcciones de E/S en las que se encuentran los puertos base de LPT1, LPT2, LPT3 y LPT4 respectivamente. Lista de equipamiento: En el offset 0010H se encuentra una palabra que muestra de forma rudimentaria los dispositivos que se han encontrado en el arranque. Los bits 15 y 14 indican el nmero de puertos de impresora instalados. Print_Tim_Out: En los offsets 0078H, 0079H, 007AH y 007BH se encuentran los valores de TIME_OUT asociados a cada puerto. Se trata de valores que se van a utilizar para establecer cunto tiempo se va a esperar para determinar que la impresora no est disponible (est apagada, no tiene papel, etc). Las direcciones del mapa de memoria de E/S en las que se suelen colocar los puertos de impresora son:
Impresora LPT1 LPT2 LPT3 Puerto de Datos 03BCh 0378h 0278h Puerto de Estado 03BDh 0379h 0279h Puerto de Control 03BEh 037Ah 027Ah
Tabla 1
arantxa.ii.uam.es/~gdrivera/varios/notas_lpt.htm
1/6
22/05/13
ESTADO BUSY E 11
EL PUERTO PARALELO
Un nivel alto indica que la impresora est ocupada y no puede recibir datos nuevos. Tambin se pone a 1 en situaciones de error. Un nivel bajo indica que la impresora ha recibido un dato y est disponible para recibir uno nuevo. Un nivel alto indica que la impresora no tiene papel. Un nivel alto indica que la impresora est on-line. Un nivel bajo indica que se ha producido un error en la impresora. No hay papel, mal funcionamiento, etc. Flag que habilita o inhibe la generacin de la interrupcin IRQ7 cuando se activa la seal ACK#. SELECT# INIT# AUTOFD# S S S 17 16 14 Activa a nivel bajo. Indica a la impresora que se ha seleccionado la impresora. A nivel bajo, enva un RESET a la impresora. A nivel bajo, la impresora se encarga de hacer un salto de lnea al recibir el carcter "retorno de carro". Validacin de datos. Cuando la impresora detecta un nivel bajo, acepta el dato.
ACK#
10
PE SLCT IN ERROR#
E E E
12 13 15
CONTROL
IRQEN
--
STROBE#
El puerto de Datos
Generalmente es slo de salida, pues se dise para enviar caracteres a la impresora. Actualmente este puerto es bidireccional. La correspondencia entre los bits del registro de datos y las seales presentes en el conector DB25 del exterior es:
BIT FUNCIN 7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0
Tabla 3
El puerto de Estado
Es un puerto de entrada. Est destinado a la lectura del estado de las lneas de interfaz con la impresora. La seal BUSY es invertida antes de llegar al registro. La correspondencia entre los bits del registro de estado y las seales presentes en el conector DB25 del exterior es:
BIT FUNCIN 7 BUSY (inv.) 6 ACK# 5 PE 4 SLCT IN 3 ERROR# 2 -1 -0 --
Tabla 4
El puerto de Control
Es un puerto de salida destinado a la escritura de comandos sobre la impresora. Las seales SLCT#, AUTOFD# y STROB# son invertidas antes de llegar a los correspondientes terminales de conector externo. El bit 4 (IRQEN) no es una seal que corresponda a alguno de los terminales de la interfaz Centronics. Se trata de un flag que habilita o prohibe la generacin de la interrupcin IRQ7 cuando se activa la seal ACK#. Las rutinas del BIOS que se ocupan de la impresora no utilizan esta interrupcin. La correspondencia entre los bits del registro de control y las seales presentes en el conector DB25 del exterior es:
BIT FUNCIN 7 -6 -5 -4 IRQEN 3 SELECT# 2 INIT# 1 AUTOFD# 0 STROBE#
arantxa.ii.uam.es/~gdrivera/varios/notas_lpt.htm
2/6
22/05/13
(inv.)
EL PUERTO PARALELO
(inv.) (inv.)
Tabla 5
Tabla 6 Es decir, disponemos de dos puertos de salida, uno de 8 bits y otro de 4 bits y un puerto de entrada de 5 bits para el propsito que nosotros decidamos, conociendo las direcciones que ocupan. Recordar el significado de las seales marcadas con "(inv)". Esto quiere decir que estn invertida por hardware. Es decir, si se ejecuta la instruccin OUT 037AH, 0FFh se estn poniendo a 1 todos los bits del registro del puerto de control, pero en el conector externo del puerto, el DB25, aparecera un 1 slo en el pin 16 (INIT#), en los pines 1, 14 y 17 aparecera un cero (STROBE#, AUTOFD# y SELECT respectivamente). La distribucin de seales en los pines del conector de salida del PC (hembra) se muestran a continuacin:
arantxa.ii.uam.es/~gdrivera/varios/notas_lpt.htm
3/6
22/05/13
EL PUERTO PARALELO
Figura 1. Los pines del 18 al 25 estn conectados a GND. Ejemplo de control de hardware externo a travs del puerto paralelo: control de encendido de diodos LED y lectura de pulsadores externos. En la siguiente figura se puede ver el montaje correspondiente a un grupo de 8 diodos LED conectados al puerto de datos, 4 al puerto de control y 5 pulsadores al puerto de estado. Las resistencias en serie con los LEDs sirven para limitar la corriente que circula por el puerto, que no debe ser elevada para no daarlo (del orden de 3-4 mA de salida y 12-15 mA de entrada). Las que estn conectadas a los pulsadores se denominan de pullup y sirven para fijar un nivel lgico en ausencia de pulsacin. Los LEDs se encendrn cuando haya un cero lgico a la salida del pin correspondiente del puerto.
Figura 2 Nota: el bit 7 del puerto de estado y los bits 1, 14 y 17 del de control estn invertidos. Para trabajar con ellos se recomienda el uso de la instruccin OR-Exclusiva (XOR) que, a travs de una mscara, corrija lo anterior despus de leer del puerto de estado o antes de escribir en el de control. Las instrucciones siguientes encenderan los LEDs a modo de un contador binario: mov cx,0FFh ; la cuenta se repetir 256 veces mov ax,0FFh ; primer nmero de la cuenta. Recordar que con un 1 estn apagados mov dx, puerto ; se supone definida puerto=03BCh, por ejemplo cont: out dx, al ; saca al puerto de datos el contenido de al dec ax ; actualiza la cuenta loop cont ; se repite 256 veces out dx,0FFh ; apaga todos los leds
arantxa.ii.uam.es/~gdrivera/varios/notas_lpt.htm 4/6
22/05/13
EL PUERTO PARALELO
22/05/13
EL PUERTO PARALELO
Bibliografa:
Los microprocesadores xx86 y la arquitectura del PC.
Madrid 1995. Lenguaje ensamblador y programacin para PC IBM y compatibles. Peter Abel. Ed. Prentice Hall Hispanoamericana, S.A..1996 The indispensable PC hardware book. Hans-Peter Messmer. Ed. Addison-Wesley. 1996 Direcciones tiles en Internet: : Interfacing to the IBM-PC Parallel Printer Port . Informacin general. Bastantes ejemplos de control de perifricos a travs del puerto paralelo.
http://www.doc.ic.ac.uk/~ih/doc/par/
http://www.nmsu.edu/Academic_Progs/Colleges/Engineering/ET/public_html/ETTI/review/phajun96/PRINTER.HTM: Use of a PC Printer Port for Control and Data Acquisition. Muy completo. Ejemplos en C. Manejo de la interrupcin del puerto paralelo. http://www.sandybay.com/pc-web/parallel_port.htm: Es una pgina de likns relacionados todos con el puerto paralelo. http://www.lvr.com/parport.htm: Parallel Port Central. Coleccin de ficheros y links acerca del puerto paralelo del PC, incluyendo los modos ECP, EPP, bidireccional y IEEE-1284. http://www.fapo.com/1284int.htm/: Coleccin de ficheros acerca del puerto paralelo del PC, incluyendo los modos SPP,ECP, EPP, bidireccional y IEEE-1284. Protocolo de impresin.
arantxa.ii.uam.es/~gdrivera/varios/notas_lpt.htm
6/6