Documente Academic
Documente Profesional
Documente Cultură
Puerto Paralelo
Propiedades hardware
A continuacin, se presenta una tabla que contiene las descripciones de los pines del
conector DB-25 del puerto paralelo y su correspondiente pareja en el conector
Centronics de 34 pines. El conector DB-25 (IEEE 1284 Tipo A) se encuentra
generalmente en la computadora, mientras el que el conector Centronics (IEEE 1284
Tipo B) se encuentra generalmente en las impresoras.
13
12
11
10
25 24 23 22 21 20 19 18 17 16 15 14
134
Pin No
(Centronics)
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
Tipo de Seal
E/S
Inversin
por
Hardware
Control
Si
Data
Data
Data
Data
Data
Data
Data
Data
Status
Status
Si
Registro
_Strobe
S
Data 0
S
Data 1
S
Data 2
S
Data 3
S
Data 4
S
Data 5
S
Data 6
S
Data 7
S
_Ack
E
Busy
E
Paper-Out / Paper12
12
E
Status
End
13
13
Select
S
Status
14
14
_Auto-Linefeed
E
Control
Si
15
32
_Error / nFault
E
Status
16
31
_Initialize
S
Control
_select-Printer /
17
36
S
Control
Si
_Select-In
18 - 25
19-30
Ground
Gnd
Tabla 6.1 - Asignacin de pines para los conectores DB-25 y Centronics
En esta tabla se usa el smbolo _ para denotar que la seal es activa en nivel bajo.
Los pines invertidos por hardware significan que su valor lgico es invertido por la
tarjeta interfase de la impresora.
Direcciones de puerto
El puerto paralelo usa generalmente tres direcciones de puerto base, las cuales son
listadas en la siguiente tabla. Cada direccin base ocupa tres direcciones de puerto
consecutivas.
Direccin
3BCh - 3BFh
378h - 37Fh
278h - 27Fh
Observacin:
Usadas por puertos paralelos integrados en tarjetas de vdeo o
tarjetas IDE/IO, seleccionable por puentes (jumpers).
Direccin usual para LPT 1
Direccin usual para LPT 2
Tabla 6.2 - Direcciones de puerto
Puerto Paralelo
135
Si el puerto paralelo es encontrado aqu, este es asignado como LPT1, entonces busca
a continuacin en la direccin 378H. Si un puerto es encontrado aqu, se le asigna la
siguiente etiqueta de dispositivo libre. Este puede ser LPT1 si es que no se encuentra
una tarjeta de puerto paralelo en la direccin 3BCH, o LPT2 si es encontrada en dicha
posicin. El ultimo puerto a llamar es el 278H, y sigue el mismo procedimiento
anterior.
Normalmente, la asignacin de los dispositivos LPT1, LPT2 y LPT3 no preocupa
mayormente a los usuarios de computadoras. Si por alguna razn se desea encontrar
las direcciones de puerto de LPT1 o de cualquier otro puerto disponible, puede
mirarse la tabla de consulta del BIOS. Cuando el BIOS asigna las direcciones de
puerto de los dispositivos paralelos (impresora), este almacena dichas direcciones en
una tabla en la memoria, la cuales se muestran a continuacin:
Direccin de inicio
Funcin
0000:0408
Direccin base de LPT1
0000:040A
Direccin base de LPT2
0000:040C
Direccin base de LPT3
0000:040E
Direccin base de LPT4 (Nota 1)
Tabla 6.3 - Direcciones de los LPT e el rea de datos del BIOS.
Nota 1: Direcciones 0000:040E en el rea de datos del BIOS puede ser usada como rea de datos
extendida
en
equipos
PS/2
y
en
versiones
de
BIOS
ms
recientes.
136
Offset
Base + 0
Base + 1
Base + 2
LPT2
03BCH
03BDH
03BEH
LPT3
0278H
0279H
027AH
Descripcin
Puerto de datos
Puerto de status
Puerto de control
Lectura/
Bit No.
Propiedades
Escritura
Puerto de
Escritura)
Bit 7
Data 7
datos
Bit 6
Data 6
Bit 5
Data 5
Bit 4
Data 4
Bit 3
Data 3
Bit 2
Data 2
Bit 1
Data 1
Bit 0
Data 0
Puerto de Solo lectura
Bit 7
Busy
status
Bit 6
Ack
Bit 5
Paper Out
Bit 4
Select In
Bit 3
Error
Bit 2
IRQ (Negado)
Bit 1
No usado
Bit 0
No usado
Puerto de
Lectura /
Bit 7
No usado
control
Escritura
Bit 6
No usado
Bit 5
No usado
Bit 4
Enable IRQ Via Ack
Bit 3
Select Printer
Bit 2
Initialize Printer (Reset)
Bit 1
Auto Linefeed
Bit 0
Strobe
Tabla 6.4 - Registros de software puerto paralelo
Nombre
Puerto Paralelo
137
138
Se puede concluir que el Puerto Paralelo no solo es til para usar impresoras. Este es
un dispositivo muy flexible de usar, que permite controlar de una manera sencilla
cualquier tipo de equipo o dispositivo externo que pueda adaptarse a los
requerimientos de operacin del puerto, con un esquema de programacin bastante
sencillo.
Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ
Puerto Paralelo
139
SPP
EPP
Strobe
2-9
10
Data 0-7
ACK
11
Busy
12
Paper Out/End
13
Select
14
Auto LF
15
Error
16
Initialize
17
Select Printer
18-25
Ground
Write
E/S
FUNCION
140
PUERTO
LECTURA/ESCRITURA
Puerto de datos (SPP)
Escritura
Puerto de estatus (SPP)
Lectura
Puerto de control (SPP)
Escritura
Puerto de direcciones (EPP)
Lectura/Escritura
Puerto de datos (EPP)
Lectura/Escritura
No definido (Transf. 16/32 bits)
No definido (Transf.. 32 bits)
No definido (Transf. 32 bits)
Tabla 6.6 - Registros EPP
Puede observar que las tres primeras direcciones son exactamente los mismos
registros del puerto SPP y poseen el mismo comportamiento. Esto permite usar el
puerto EPP en modo compatible con SPP, en otras palabras, el software de control de
impresoras (u otros alternos) funcionaran sin problemas.
Si lo que desea es comunicarse con un dispositivo compatible con EPP, lo nico que
hay que hacer es colocar los datos a enviar en el Puerto de Datos (Base+4) y el puerto
generara los pulso de control (handshake) necesarios. Por otro lado, si lo que desea es
enviar una direccin a su dispositivo, entonces use el Puerto de Direcciones (Base+3).
Ambos registros son bidireccionales, entonces, es posible leer y escribir sobre ellos.
El hardware del puerto EPP se encargara de generar los ciclos correspondientes en las
lneas Address Strobe y Data Strobe, y su dispositivo puede hacer solicitudes de
lectura usando interrupciones.
El Puerto de estatus tiene una pequea modificacin. El bit 0, fue reservado para el
juego de registros de SPP, en EPP se usa como Time-Out (Tiempo Agotado). Esto
ocurre por lo general cuando la lnea Wait (Espera) no es validada en un tiempo de
aproximadamente 10uS. Tmese en cuenta que el puerto EPP depende mucho de la
temporizacin del bus ISA.
Puerto Paralelo
141
Finalmente, los tres registros, Base+5, Base+6 y Base+7, pueden ser utilizados para
operaciones de lectura y escritura de 16 y 32 bits, solo si su puerto las soporta. El
puerto paralelo puede transportar solamente 8 bits a la vez, por lo que cualquier
acceso a lectura o escritura en 16 o 32 bits debe ser separado en bloques de 8 bits, a
fin de que puedan ser enviados por las 8 lneas de datos de puerto.
Temporizacin del EPP
En la siguiente tabla se puede observar los ciclos de lectura y escritura del puerto
EPP, tanto para datos como para direcciones.
Ciclo de escritura de datos
Lectura de datos
1. Lectura en Puerto de direcciones (Base + 3).
Ciclo de lectura de direcciones
2. Addr Strobe es colocado si Wait esta a nivel bajo.
3. Anfitrin espera por respuesta (Wait pasa a nivel alto)
4. La direccin es leda desde el puerto paralelo
5. Addr Strobe se descoloca (nivel alto)
6. Ciclo de lectura de direcciones terminado
Lectura de direcciones
Figura 6.1
Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ
142
Ciclos de Datos
Ciclos de Comandos
Las caractersticas principales del ECP incluyen la RLE (Run Length Encoding) o
compresin de datos en los computadores, FIFO para los canales directo e inverso y
DMA. La caracterstica RLE mejora la compresin de datos en tiempo real y puede
lograr una compresin de datos superior 64:1. Esto es particularmente til para las
impresoras y scanners que transfieren gran cantidad de imgenes y tienen largas
cadenas de datos idnticos.
El canal de direcciones contiene una pequea diferencia con el del EPP. El canal de
direccin se intenta que se use para sistemas lgicos mltiples de direccin con un
sistema fsico nico. Piense en esta idea como un nuevo sistema multi-funcin como
por ejemplo un Fax/Impresora/Mdem. Con este protocolo se puede estar enviado
datos a la impresora y al Mdem a la vez.
Propiedades hardware del puerto ECP
Mientras el puerto ECP usa exactamente el mismo conector DB25, ECP asigna
diferentes tareas a cada uno de los pines, la igual que EPP. Esto significa que existe
un mtodo de manejo (o handshake) diferente.
Puerto Paralelo
143
El puerto ECP es compatible hacia atrs con las normas SPP y EPP. Cuando opera en
el modo SPP, las lneas individuales operan exactamente igual a la norma original, y
todas conservan sus respectivos nombres. Cuando opera en la modalidad EPP, la
funciona de los pines es acorde al protocolo EPP anteriormente descrito. Cuando el
puerto funciona en la modalidad ECP, las siguientes denominaciones son asignadas a
cada pin.
Pin
SPP
ECP
E/S
Funcin
Las lneas HostAck y PeriphAck indican si las seales en las lneas de datos son datos
o comandos. Si esas lneas estn a nivel alto, entonces hay datos colocados en las
lneas de datos (pines 2-7). Si un ciclo de comandos esta tomando lugar entonces la
lnea apropiada ser activa baja, por ejemplo, si el anfitrin enva un comando,
entonces HostAck ser baja o si el dispositivo esta enviando un comando la lnea
PeriphAck ser baja.
Un ciclo de comandos puede hacer una de dos cosas, hace un conteo RLE o una
direccin. Esto lo determina el bit 7 (MSB) de las lneas de datos, por ejemplo, el pin
144
Puerto Paralelo
145
146
Direccin
Base + 0
Base + 1
Base + 2
Base + 400h
Base + 401h
Base + 402h
Nombre de puerto
Puerto de datos (SPP)
Direccin de cola FIFO ECP (MODO ECP)
Puerto de estatus (todos los modos)
Puerto de control (todos los modos)
Datos cola FIFO (Modo FIFO Puerto Paralelo)
Datos FIFO (Modo ECP)
Test FIFO (Modo Test)
Registro configuracin A (Modo configuracin)
Registro configuracin B (Modo configuracin)
Registro control extendido (Usado por todas las modalidades)
Tabla 6.8 - Registros ECP
R/W
R
R/W
R/W
R/W
R/W
RW
R/W
R/W
R/W
R/W
Funcion
Bit
7:5 Selecciona el modo de operacin
000 Modo Estandard
001 Modo Byte
010 Modo FIFO Puerto Paralelo
011 Modo FIFO ECP
100 Modo EPP
101 Reservado
110 Modo Test FIFO
111 Modo Configuracion
4 Bit de interrupcin ECP
3 Bit habilitacin DMA
2 Bit Servicio ECP
1 Cola FIFO llena
0 Cola FIFO vaca
Tabla 6.9 - Registros de control extendido
Los tres bits mas significativos del ECR seleccionan el modo de operacin. Existen 7
posibles modos de operacin, pero no todos los puertos pueden soportar todos los
modos. El modo EPP es uno de ellos, por ejemplo, no esta disponible en algunos
puertos.
Puerto Paralelo
147
Modos de Operacin
Modo
Estandar
Modo Byte /
Modo PS/2
Modo FIFO
Puerto
Paralelo
En este modo, cualquier dato escrito en la cola de datos FIFO ser enviado a
dispositivo usando el manejo (handshake) SPP. El hardware generara las
seales de manejo requeridas. Es til con dispositivos no-ECP. Puede tener
algunas de las caractersticas de ECP, tales como los buffers FIFO y el
hardware generador de seales de manejo y control, pero solo las existentes
para SPP.
Modo FIFO Modo estndar para uso de ECP. Se usa el manejo (Handshake) ECP
ECP
anteriormente descrito.
Modo EPP / En algunos chipsets, este modo permite usar EPP, mientras que en otros, este
Reservado
modo es reservado.
Reservado
Normalmente reservado
Modo Test
En este modo, cualquier dato escrito al registro Test FIFO ser colocado en la
FIFO
cola FIFO y cualquier dato ledo de dicho registro ser ledo del buffer FIFO.
Los bits de estatus de FIFO lleno/vaci reflejaran el verdadero valor.
Modo
En este modo, los dos registros de configuracin, cnfgA y cnfgB estarn
Configuracin disponibles para el registro de direcciones designado.
Tabla 6.10
148
Control. Si el bit 0 (FIFO vaci) esta activo, entonces el buffer FIFO esta
completamente vaci. Si el bit 1 esta activo, entonces el buffer FIFO esta lleno.
Entonces, si los bits 0 o 1 no estn activos, existen datos en el buffer FIFO, pero este
ultimo no esta lleno. Estos bits pueden ser usados por el Modo Test FIFO para
determinar la capacidad del buffer.
Bit
7
6:4
3
2
1:0
Funcin
1
Interrupciones disparadas por nivel
0
Interrupciones disparadas por flanco
00h Acepta mximo palabras de 16 bit de ancho
01h Acepta mximo palabras de 8 bit de ancho
02h Acepta mximo palabras de 32 bit de ancho
03h:07h Reservado para expansin futura
Reservado
Recuperacin de Anfitrin: Byte por transmitir esta en la cola FIFO?
En modo directo, 1 byte en la cola de transmisin no afecta a la
0
cola FIFO lleno.
En modo directo, 1 byte en la cola de transmisin es incluido
1
como parte de la cola FIFO llena.
Recuperacin de Anfitrin: Byte no enviados en la cola FIFO
00 Completar Port Word
01 1 byte valido
10 2 bytes validos
11 3 bytes validos
Tabla 6.11 - Configuracin del Registro A
El registro de configuracin A puede ser ledo para conocer un poco mas del Puerto
ECP. El MSP muestra si el hardware genera disparos de interrupcin por nivel o por
flanco. Los bits 4 al 6 muestran el ancho del bus. Por lo general, el software lee estos
bits para obtener la mxima eficiencia del puerto.
Los 3 LSBs son usados para la recuperacin del Anfitrin. Con el fin de recuperarse
de un error, el software deber saber cuantos bytes fueron enviados, determinando si
quedan algunos de estos bytes en la cola FIFO.
Puerto Paralelo
149
Otro problema es que la salida del Puerto Paralelo es solo de 8 bits de ancho, y es
posible que se necesiten usar instrucciones de E/S de 16 o 32 bit de ancho. Si ese es
el caso, entonces parte del Port Word puede ser enviado. Los bits 0 y 1 dan indicacin
del numero de bytes validos que permanecen en la cola FIFO, y cuales pueden
retransmitirse.
Bit(s)
7
Funcin
1 Comprime datos de salida usando RLE
0 No comprima datos
6 Estatus de Interrupcin: Muestra el estatus del pin IRQ
5:3 Selecciona o muestra el estatus de la lnea de peticin de
interrupcin.
000 Interrupcin seleccionada va puente (jumper)
001 IRQ 7
010 IRQ 9
011 IRQ 10
100 IRQ 11
101 IRQ 14
110 IRQ 15
111 IRQ 5
2:0 Selecciona o muestra el estatus del canal DMA usado
000 Usa canal DMA de 8 bits puenteado (jumpered)
001 Canal DMA #1
010 Canal DMA #2
011 Canal DMA #3
100 Usa canal DMA de 16 bits puenteado
101 Canal DMA #5
110 Canal DMA #6
111 Canal DMA #7
Tabla 6.12 - Configuracin del registro B
Este registro puede ser una combinacin de acceso lectura/escritura. Algunos puertos
pueden ser configurados por software, permitiendo la posibilidad de seleccionar los
recursos IRQ y DMA desde el registro. Otros pueden ser ajustados desde el BIOS o
usando puentes (jumpers) en la tarjeta madre (motherboard).
Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ
150
Ejercicios Propuestos
Haga un diseo hardware y software que permita emular una ruleta usando 16
leds. Esta ruleta empezara a rotar a alta velocidad, haciendo gradualmente mas
lenta hasta que al cabo de 30 segundos se detenga completamente. Solo utilice
el puerto paralelo en modo SPP y con la cantidad mnima de componentes.