Arquitectura de Computadoras II El puerto de impresora
EL PUERTO PARALELO DE LA IBM PC
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Mapa de puertos de Entrada y Salida en
la IBM PC
FFFFh La IBM PC utiliza las primeras 1024
direcciones del espacio de puertos para el
sistema .
Estas direcciones están entre 0000 y 03FFh
64512 Direcciones
no usadas
por la PC
Disponibles en los slots de
expansión
3FFh
512
1F1h
Puertos usados por la PC
512
000
Usados en la lógica de
la tarjeta madre
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Puerto
Asignación
Mapa de puertos de
(hex)
000-00F Controlador DMA
Entrada/Salida de
010-01F Controlador DMA (PS/2)
una IBM PC
020-02F Controlador maestro programable de interrupciones (PIC)
030-03F PIC esclavo
040-05F Temporizador programable de intervalos (PIT)
060-06F Controlador del teclado
070-071 Reloj en tiempo real
080-083 Registro de página DMA
090-097 Seleccionador programable de opciones (PS/2)
0A0-0AF PIC #2
0C0-0CF DMAC #2
0E0-0EF reservado
0F0-0FF Coprocesador matemático, controlador de disco PCJr
100-10F Seleccionador programable de opciones (PS/2)
110-16F LIBRE
170-17F Disco duro 1 (AT)
180-1EF LIBRE
1F0-1FF Disco duro 0 (AT)
200-20F Adaptador de juegos (Joystick)
210-217 Puertos de tarjetas de expansión
220-26F LIBRE
278-27F Puerto paralelo 3
280-2A1 LIBRE
2A2-2A3 Reloj
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Puerto
Asignación
Mapa de puertos de
(hex)
2B0-2DF EGA/Video
Entrada/Salida de
2E2-2E3 Adaptador de adquisición de datos (AT) una IBM PC
2E8-2EF Puerto serie COM4
2F0-2F7 Reservado
2F8-2FF Puerto serie COM2
300-31F Adaptador de prototipos, periscopio para depurar hardware
320-32F LIBRE
330-33F Reservado para XT/370
340-35F LIBRE
360-36F Red (network)
370-377 Controlador de disco flexible
378-37F Puerto paralelo 2
380-38F Adaptador SDLC
390-39F Adaptador de Cluster
3A0-3AF reservado
3B0-3BF Adaptador monocromo
3BC-3BF Puerto paralelo 1
3C0-3CF EGA/VGA
3D0-3DF Adaptador Gráfico en Color (CGA)
3E0-3EF Puerto serie COM3
3F0-3F7 Controlador de disco flexible
3F8-3FF Puerto serie COM1
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
El puerto de la impresora
• El puerto paralelo tiene una estructura muy simple;
consta de tres registros:
– de Datos.
– de Control
– de Estado
• Todas las señales que intervienen en el puerto
tienen asociado un bit en uno de esos registros, de
acuerdo con las funciones asignadas a cada línea
en particular.
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
El puerto de la impresora
Distribución de las terminales del puerto de la impresora en el
conector estándar DB25-hembra
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
El puerto de la impresora
Distribución de las terminales del puerto de la impresora en el
conector estándar DB25-hembra
Datos
STROBE
BUSY
Puerto ACKNLG
De la
PC SLCT IN Impresora
Conector
SEL
DB25H
INITIAL
PE
ERROR
AUTOFEED
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
El puerto de la impresora
SECUENCIA DE SEÑALES DE CONTROL Y DE STATUS PARA TRANMITIR DATOS
A LA IMPRESORA
DATO
STROBE
BUSY
ACKNLG
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Configuración del puerto
paralelo estándar
Patita E/S Polaridad activa Descripción
1 Salida 0 Strobe
2~9 Salida - Líneas de datos
10 Entrada 0 Línea acknowledge
11 Entrada 0 Línea busy
12 Entrada 1 Línea Falta de papel
(
13 Entrada 1 Línea Select
14 Salida 0 Línea Autofeed
15 Entrada 0 Línea Error
16 Salida 0 Línea Init
17 Salida 0 Línea Select input
18 ~ 25 - - Tierra eléctrica
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
El Registro de datos
PIN#
Es de tipo latch de 8 bits, que
D0 2 puede ser leído y escrito desde
D1 3 el procesador.
D2 4
Es el registro donde el
D3 5
D4
procesador, en operaciones de
6
D5 7
salida (OUT), pone el dato que
D6 8
se quiere enviar a la impresora
D7 9 y su dirección coincide con la
dirección base del puerto
CONECTOR
DB25-H
paralelo ( 0x 378 en LPT 1 ).
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Registro de datos
Lectura/Esc
Dirección Nombre Bit # Propiedades
ritura
Base + 0 Puerto de Escritura Bit 7 Dato 7
datos Bit 6 Dato 6
Bit 5 Dato 5
Bit 4 Dato 4
Bit 3 Dato 3
Bit 2 Dato 2
Bit 1 Dato 1
Bit 0 Dato 0
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
El Registro de Estado (Status)
El registro de estado indica la
situación actual de la impresora
conectada al puerto, en especial la S7 11 BUSY
ocurrencia de posibles errores, de S6 10 ACK
acuerdo con los niveles de tensión S5 12 PE
que tengan las líneas ACK, BSY,
S4 13 SEL
PAP y OF/ON , lo que permite
controlar el comportamiento de la S3 15 ERR
impresora. S2
Se trata de un registro de entrada S1
(Lectura) de información, su S0
dirección se obtiene sumando 1 a la
dirección base del puerto (0x379 en CONECTOR
LPT1). DB25-H
Con las interrupciones habilitadas, una transición
en el pin 10 (ACK) dispara la interrupción
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Registro de estado
Dirección Nombre Lectura/Escritura Bit # Propiedades
Base + 1 Puerto de Sólo Lectura Bit 7 Busy
estado Bit 6 Acknowledge
Bit 5 Falta de papel
Bit 4 Select In
Bit 3 Error
Bit 2 IRQ (Not)
Bit 1 Reservado
Bit 0 Reservado
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Registro de Control
permite inicializar el puerto y controlar la transferencia.
4 líneas bidireccionales
Permite puerto 17 SELECT IN
bidireccional INIT
16
14 AUTOLF
Permite IRQ a
1 STROBE
través de ACK
C3
C2
C1
C0
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Registro de control
Dirección Nombre Lectura/Escritura Bit # Propiedades
Base + 2 Puerto de Lectura/Escritura Bit 7 No usado
control Bit 6 No usado
Permite puerto
Bit 5 bidireccional
Permite IRQ a
Bit 4 través de la
línea acknowledge
Selecciona
Bit 3 impresora
Inicializa
Bit 2 impresora
Nueva línea
Bit 1 automática
Bit 0 Strobe
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Direcciones de los registros
•La dirección del registro de salida de los puertos 0, 1 y 2, denominadas
dirección-base del adaptador, están contenidas respectivamente en las
direcciones 00408, 0040A y 0040C de la memoria de datos de la ROM
BIOS.
•Estas direcciones de base son inicializadas a cero si no existe el
adaptador correspondiente.
Puerto R. de salida R. de estado R. de control IRQ
LPT1 378 379 37A 7
LPT2 278 279 27A 5
LPT3 3BC 3BD 3BE 7
las direcciones e interrupción usadas por cada puerto, aunque esta
asignación no es siempre consistente, y debería ser investigada.
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Variables del BIOS para el puerto paralelo
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Servicios BIOS de puerto paralelo
Los servicios BIOS relacionados con el puerto paralelo, denominados
servicios de impresora, se gestionan mediante el vector de interrupción
23 (17h); este servicio tiene 3 subservicios numerados del 0 al 2, que se
solicitan a través del registro AH, mientras que el número de puerto debe
indicarse en el registro DX.
Subservicio 0: Envía un byte a la impresora
Subservicio 1: Inicializar el puerto paralelo
Subservicio 2: Leer el registro de estado del puerto
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Puerto paralelo estándar
• Los diseñadores de la PC no pensaron en la posibilidad de utilizar los
puertos paralelo para recibir datos (no existe un subservicio BIOS para
leer en el puerto paralelo); eran solo de salida. Este puerto original es
denominado SPP ("Standard Parallel Port"), y su modo de operación
modo compatible.
• Aunque originalmente no estaban preparados para recibir datos,
mediante ciertos artificios se consiguió que los puertos SPP también
pudieran recibir datos, un nibble (4 bits) cada vez. Este tipo de
operación, 8 bits de salida y 4 de entrada se denomina modo nibble.
• Nota: Los puertos actuales de características mejoradas tienen también
los modos compatible y nibble para compatibildad con el software
anterior.
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Usando el Debug para determinar la dirección base del puerto (s) de
impresora presente(s) en el sistema
•Para trabajar con el puerto paralelo necesitamos en primer lugar conocer la dirección
base asignada por el BIOS, podemos utilizar el Debug , en donde tecleamos sin dejar
espacios en blanco D040:08L8 y presionamos la tecla entrar, entonces nos indica en
una serie de números la(s) dirección(es) para el (los) puerto(s) paralelo(s) disponibles
en nuestro sistema.
Dirección base del puerto de impresora
presente en la PC:0378h
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
Acceso restringido a puertos
Problema: Los sistemas operativos Windows 2000 y XP no
permiten que las aplicaciones accesen directamente el
puerto paralero, i.e. instrucciones OUT, IN
Solución: Afortunadamente es posible bajar de Internet un
driver que permite programar el puerto paralelo como
sigue:
1. Consulte Driver, baje y descomprima el archivo ZIP
2. Copie el archivo userport.sys al directorio
C:\WINDOWS\SYSTEM32\DRIVERS
3. Ejecute el programa userport.exe (acepte los defaults)
4. Ejecute sus programas de ensamblador
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
ITSLP M.I. Carlos E. Canto Quintal
Arquitectura de Computadoras II El puerto de impresora
ITSLP M.I. Carlos E. Canto Quintal