capitulo 3 - el puerto lpt

30
CAPITULO 3 – El puerto LPT

Upload: jesusvillegas9

Post on 25-Jun-2015

471 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Capitulo 3 - El Puerto LPT

CAPITULO 3 – El puerto LPT

Page 2: Capitulo 3 - El Puerto LPT

3.1 INTRODUCCION

La mayoría de las computadoras de hoy en día están equipadas con un puerto paralelo, el cual es comúnmente usado para conectar la computadora a una impresora paralela. Debido a que esta presente en la mayoría de las computadoras, el puerto paralelo es la opción ideal de conexión con otros dispositivos periféricos. Sin embargo, la comunicación con los periféricos a través del puerto paralelo esta limitada debido a que la interfase es tradicionalmente unidireccional y no hay un estándar especifico para su uso. Adicionalmente, a pesar de que el desempeño de las computadoras se ha incrementado dramáticamente, el puerto paralelo ha permanecido sin cambios. Debido a esta situación se ha desarrollado un nuevo estándar para el puerto paralelo –IEEE standard 1284-1994. Este estándar esta basado en la especificación original del puerto paralelo estándar Centronics (SPP) e incluye al puerto paralelo extendido (EPP) y al puerto con capacidades extendidas (ECP).

3.2 Puerto Paralelo Estándar (SPP) – Puerto Paralelo Centronics

El puerto paralelo estándar es también conocido como puerto paralelo centronnics. Centronics data computer corporation desarrollo la interfase a mediados de los 60’s la cual fue una comunicación unidireccional paralela de 8 bits de la computadora con la impresora. La interfase fue ampliamente utilizada, sin embargo, no fue desarrollado ningún estándar o especificación para definir la interfase.

El estándar Centronics define un conector de 36 pines para la interfase de señales en el lado de la impresora. En el lado de la computadora hubo una gran variedad de implementaciones hasta la introducción de la PC por IBM en 1981. La implementación del puerto paralelo utilizada en la PC de IBM se convirtió en la interfase más usada en la industria para el puerto paralelo. La interfase del puerto paralelo define un conector de 25 pines con 8 terminales para datos unidireccionales, cuatro líneas de control y cinco líneas de estado. Una descripción de estas señales se muestra en la tabla 3.1

Debido a que no hay ningún estándar definido, la relación de tiempos entre el protocolo de señales varia ampliamente de impresora a impresora y dependiendo del fabricante, sin embargo, deben mantener todos la compatibilidad con la interfase Centronics.

El diagrama de tiempos de una transferencia básica del puerto paralelo estándar se muestra en la figura 3.1. Cuando la impresora esta lista para recibir datos, pone la línea BUSY a cero. El PC coloca los datos a transferir en las líneas de datos, espera un mínimo de 500ns, después envía un pulso a STROBE de una duración mínima de 500ns. Los datos validos deben permanecer en las líneas de datos un mínimo de 500ns después de la activación de STROBE. La impresora recibe el dato y activa la línea BUSY para indicar que esta procesando el dato. Cuando la impresora ha terminado la transferencia de datos, activara la línea ACK por un mínimo de 500ns y desactivara la línea BUSY, indicando que esta lista para el siguiente dato.

22

Page 3: Capitulo 3 - El Puerto LPT

SPPNombre de la señal

EPPNombre de la señal

ECPNombre de la señal

Fuente Conector

Data 8-1Líneas de datos unidireccionales

AD8-1Líneas de datos y direcciones unidireccionales

Data 8-1Líneas de datos y direcciones unidireccionales

PC/Periférico

1284A: 9-21284B: 9-21284C: 13-6

STROBEEl dato es valido durante un pulso activo en bajo en esta línea

WRITEEsta señal esta en cero durante la escritura y en uno durante la lectura

HostClkEn la dirección PC a periférico, esta línea de protocolo esta interconectada con PeriphAck y es puesta a cero cuando el dato es valido

PC 1284A: 11284B: 11284C: 15

AUTOFDEl uso de esta línea varia. La mayoría de las impresoras realizan un avance de línea después de cada retorno de carro cuando esta línea esta en estado bajo, y retornos de carro solo cuando esta línea esta activa

DSTROBEEsta señal denota ciclos de datos: Durante una operación de escritura, el dato es valido cuando esta señal esta activa, mientras que para una operación de lectura esta señal esta en estado bajo cuando la PC esta lista para recibir datos

HostAckEn la dirección PC a periférico, esta línea es puesta a cero para una transferencia de comando y puesta a uno para una transferencia de datos, en la dirección periférico a PC es una señal de protocolo interconectada con PeriphClk

PC 1284-A: 141284-B: 141284-C: 17

INITEsta línea es puesta en estado bajo por lo menos 50us para reiniciar la impresora y borrar el buffer de impresión

INITEsta línea es puesta en estado bajo para terminar el modo EPP y regresar al modo SPP

ReverseRequestEsta línea es puesta a cero para colocar la interfase paralela en la dirección periférico a PC

PC 1284-A: 161284-B: 311284-C: 14

SelectlnLa PC pone a estado bajo esta línea para seleccionar al periférico

ASTROBEEsta línea denota ciclos de dirección. Cuando esta línea esta en estado bajo, AD8-1 contiene una dirección

1284 ActiveLa PC activa esta línea mientras se encuentra en modo ECP y la pone a estado bajo para el termino del modo ECP

PC 1284-A: 171284-B: 361284-C: 16

ACKEl periférico envía un pulso bajo en esta línea cuando ha recibido el dato previo y esta listo para recibir otro dato. Un pulso de subida en esta línea puede ser enviado para interrumpir al PC

INTREl periférico puede interrumpir al PC mediante un pulso de subida en esta línea

PeriphClkEl periférico envía un pulso en estado bajo a esta línea de protocolo con dirección periférico a PC Para indicar que el dato es valido. PeriphClk esta interconectada con HostAck

Periférico 1284-A: 101284-B: 101284-C: 3

BUSYEl periférico activa esta línea para indicar que aun no esta listo para recibir datos

WAITEl periférico coloca esta línea a cero para indicar que ha completado satisfactoriamente la transferencia de datos o dirección

PeriphAckEsta línea de protocolo esta interconectada con HostClk y controlada por el periférico para reconocer datos recibidos del PC. Durante

Periférico 1284-A: 111284-B: 111284-C: 1

23

Page 4: Capitulo 3 - El Puerto LPT

transferencias periférico a PC, el periférico activa esta línea durante transferencias de datos y la pone a cero para transferencias de comandos

PerrorEl uso de esta línea varia, las impresoras típicamente al usan para indicar que no tienen papel

User Defined AckReverseEl periférico maneja esta línea para seguir el nivel de la línea ReverseRequest

Periférico 1284-A: 121284-B: 121284-C: 5

SelectEl periférico activa esta línea cuando ha sido seleccionado y esta listo para la transferencia de datos

User Defined XflagEl periférico activa esta línea para indicar que utiliza el modo ECP

Periférico 1284-A: 131284-B: 131284-C: 2

FAULTEl uso de esta línea varia.Los periféricos la utilizan para indicar que un error ha ocurrido

User Defined PeriphRequestEl periférico manda un cero en esta línea para una transferencia periférico a PC. Esta línea puede ser utilizada para interrumpir al PC

Periférico 1284-A: 151284-B: 321284-C: 4

Tabla 3.1 Descripción de señales del Puerto Paralelo en sus tres modos de operación

Figura 3.1 Diagrama de tiempos de transferencia de datos del SPP

La computadora deberá efectuar cuatro pasos para realizar una transferencia de un byte a través del puerto paralelo:

1. Escribir el dato valido al registro de datos2. Leer la línea BUSY y esperar a que este inactiva en caso de estarlo3. Escribir al registro de control para activar la línea STROBE

24

Page 5: Capitulo 3 - El Puerto LPT

4. Escribir al registro de control para desactivar la señal STROBE

El tiempo mínimo de activación, mantenimiento y ancho de pulso requeridos para la transferencia de datos por el puerto paralelo SPP limita su desempeño. Teniendo en cuenta los tiempos latentes de software, la velocidad máxima de transferencia es de 150Kbytes/sec. Las transferencias típicas de datos se encuentran alrededor de los 10Kbytes/sec.

El puerto paralelo estándar o SPP cuenta con tres registros para manipular los datos, controlar las líneas y leer el estado de las líneas del puerto. Estas líneas y su dirección de registro correspondiente a la dirección base del puerto paralelo se muestran en la tabla 3.2

Registro Offset 7 6 5 4 3 2 1 0

Registro de Datos

0 D7 D6 D5 D4 D3 D2 D1 D0

Registro de Estado

1 /BUSY ACK Perror Select FAULT /IRQ Reservado Reservado

Registro de Control

2 Reservado Reservado Reservado IRQEN /SelectIn INIT /AUTOFD /STROBE

Tabla 3.2 Registros del SPP y posición de las líneas.

La dirección base usualmente llamada “puerto de datos” o “registro de datos” es utilizada para el envío solamente de datos a través de las líneas D0 a D7. Este registro es normalmente de solo escritura, por lo cual si se lee este puerto se debe leer el ultimo valor enviado.

El registro de estado (dirección base + 1) es un registro de solo lectura, por lo que cualquier dato enviado a este registro será ignorado. El puerto de estado esta compuesto de cinco líneas de entrada, una para IRQ y dos bits reservados. Debe notarse que el bit 7 (BUSY) es una línea activa en bajo, lo cual significa que para un valor leído de cero hay un valor de +5v en el pin.

El registro de control (dirección base + 2) es un registro de solo escritura. Cuando una impresora esta conectada al puerto, cuatro líneas de control son utilizadas las cuales son STROBE, Auto Linefeed, INITIALIZE, y SelectPrinter las cuales todas son activas en bajo excepto INIT.

Muchos programas de transferencia de archivos ignoran las características unidireccionales del puerto paralelo estándar usando las cuatro líneas (SLCT, BUSY, PE, ERROR) para enviar datos al PC de hasta cuatro bits a la vez. La línea ACK puede ser usada para indicarle al PC que el dato esta listo para ser leído.

3.3 El Puerto Bidireccional

25

Page 6: Capitulo 3 - El Puerto LPT

La computadora PS/2 de IBM mejoro la interfase del puerto paralelo estándar al agregar drivers bidireccionales a las ocho líneas de datos. El conector y la asignación de señales permanecieron sin cambios. Un puerto paralelo con drivers bidireccionales es a menudo llamado puerto paralelo en modo extendido. IBM refiere al puerto paralelo bidireccional como puerto paralelo tipo 1. IBM define también a los puertos tipo 2 y tipo 3 los cuales utilizan un canal DMA para escribir o leer bloques de datos hacia o desde el puerto paralelo respectivamente. El puerto paralelo en la mayoría de las computadoras esta configurado de fabrica en el modo unidireccional y una aplicación se puede utilizar en algunas computadoras para seleccionar el modo bidireccional.

El mapa de registros para una computadora IBM PS/2 se muestra en la tabla 3.3. Un puerto paralelo en modo extendido (tipo 1) cuenta solo con los primeros tres registros. Estos registros son idénticos a los del puerto paralelo estándar pero con un bit de dirección adicional en el registro de control. Los últimos registros están presentes en los tipos 2 y 3 de puertos paralelos.

Las transferencias DMA de los tipos 2 y 3 obedecen el diagrama de tiempos del puerto paralelo estándar descrito anteriormente. Durante los ciclos de escritura DMA, el controlador de DMA escribe los datos en el registro de datos y un pulso en la línea STROBE es generado automáticamente. Cuando la señal ACK es recibida por el periférico, un requerimiento de DMA es enviado y se envía entonces el siguiente byte. El periférico puede detener momentáneamente la transferencia mediante la línea BUSY. Durante los ciclos de lectura, un pulso en la línea ACK genera un requerimiento de DMA e inicia la transferencia a la memoria del sistema. El controlador de DMA lee el registro de datos y un pulso en la línea STROBE es generado automáticamente.

Registro Offset 7 6 5 4 3 2 1 0

Registro de Datos

0 D7 D6 D5 D4 D3 D2 D1 D0

Registro de Estado

1 /BUSY ACK PError Select FAULT /IRQ Reservado Reservado

Registro de Control

2Auto

StrobeReservado Dirección IRQEN /SelectIn INIT /AUTOFD /STROBE

Control de interfase

3 Start Reset TC/ACK Select FAULT PError Set EOD DMAEN

Registro DMA EOD IRQEN IRQEN IRQEN IRQEN

Estado de interfase

4 Reservado EOD TC/ACK Select FAULT PError Reservado Reservado

INT INT INT INT

Registro reservado

5 Reservado Reservado Reservado Reservado Reservado Reservado Reservado Reservado

Tabla 3.3 Registros del Puerto paralelo Bidireccional.

26

Page 7: Capitulo 3 - El Puerto LPT

3.4 Enhanced Parallel Port (EPP)

El Puerto paralelo en el modo EPP fue desarrollado para proveer una transferencia de datos bidireccional, a relativamente altas velocidades y que fuese compatible con los registros existentes del puerto paralelo estándar. La especificación del puerto paralelo EPP incorpora algunas funciones de señales que tradicionalmente se manejaban en el bus del PC (por ejemplo address strobe y data strobe), a las líneas de la interfase para que las maneje directamente el hardware.

Una transferencia de datos a través del puerto paralelo estándar requiere de varios pasos a base de software. El puerto paralelo en modo EPP incorpora hardware y registros adicionales para generar automáticamente señales de control y protocolos de comunicación con tan solo una instrucción de entrada-salida. Con un bus ISA los rangos máximos de transferencia de datos son de 2Mbytes/s. Rangos de 10Mbytes o mas pueden ser alcanzados en otras plataformas.

3.4.1 Registros del EPP

El EPP cuenta con cinco registros en adición a los tres con los que cuenta el puerto paralelo estándar. Estos registros son utilizados para colocar automáticamente la información de datos o direcciones en las líneas del puerto paralelo y generar las señales de control automáticamente. Los registros del puerto paralelo en modo EPP se muestran en la tabla 3.4. Los registros de Datos, Control y Estado cuentan con las mismas características y asignación de bits que los registros del puerto paralelo estándar.

Registro Lectura / Escritura Offset

Data register Escritura 0

Status register Lectura 1

Control register Lectura/Escritura 2

Auto Address Strobe register Lectura/Escritura 3

Auto Data Strobe register Lectura/Escritura 4

Auto Data Strobe register Lectura/Escritura 5

Auto Data Strobe register Lectura/Escritura 6

Auto Data Strobe register Lectura/Escritura 7

Tabla 3.4 Mapa de registros del puerto paralelo en modo EPP

Si se desea establecer comunicación con un dispositivo compatible con el EPP todo lo que se tiene que hacer es colocar el dato que se quiere enviar en el registro de datos del EPP en el offset Base + 4 y el hardware generara automáticamente las señales necesarias para el ciclo. De igual manera si se desea enviar una dirección al dispositivo, se utiliza el registro de dirección del EPP ( Base + 3 )

Ambos registros del puerto EPP son de lectura y escritura, por lo cual, para leer datos desde el dispositivo se utilizan los mismos registros. Sin embargo, la interfase EPP tiene

27

Page 8: Capitulo 3 - El Puerto LPT

que iniciar el ciclo de lectura debido a que las líneas /Data Strobe y /Address Strobe son salidas. El dispositivo puede enviar un requerimiento de lectura mediante el uso de la interrupción y en la rutina de atención a la interrupción se realiza la lectura.

Debido a que el puerto EPP es muy dependiente de los tiempos utilizados en el bus ISA, cuando un ciclo de lectura o escritura es realizado, el puerto debe respetar los protocolos de transferencia del bus ISA y el dato debe obtenerse dentro de ese mismo ciclo. Esto no ocurre en un solo ciclo, por lo tanto, el puerto utiliza la señal IOCHRDY (I/O Channel Ready) para introducir ciclos de espera en el bus ISA hasta que la transferencia termina. El Registro de estado tiene una modificación, el bit 0, el cual estaba reservado en el registro del puerto paralelo estándar, es ahora el bit Time Out. Este bit es activado cuando la línea /WAIT no es llevada a cero por el dispositivo en un lapso de 10us. En caso de que un ciclo de lectura o escritura sea comenzado sin algún periférico conectado a la interfase la computadora, el puerto nunca recibiría la señal /WAIT porque no habría dispositivo alguno que la mandase a cero, y debido a esto el puerto se mantendría enviando requerimientos de ciclos de espera del bus y el sistema se bloquearía. Por lo tanto el puerto EPP implementa una especie de “watch dog” o perro guardián el cual espera solo 10us.

3.4.2 Protocolos de comunicación del EPP

Las operaciones con el puerto paralelo en modo EPP constan de ciclos de bus de 2 fases las cuales son iniciadas por el PC. El PC primero selecciona un registro dentro del periférico y ejecuta un ciclo de dirección, entonces el PC ejecuta una serie de lecturas o escrituras a ese registro seleccionado. El EPP define una señal de interrupción, INTR, habilitando al periférico con el objetivo de que este señalice al PC, es decir, que el periférico maneje las señales de comunicación. El EPP tiene cuatro operaciones básicas: escritura de dirección, lectura de dirección, escritura de datos y lectura de datos.

Figura 3.2 Protocolo de ciclo de escritura de datos del EPP

Descripción1. El software escribe al registro de datos del EPP (base + 4)

28

Page 9: Capitulo 3 - El Puerto LPT

2. Se manda un cero a /WRITE. (un cero en /WRITE indica una operación de escritura)

3. Se escribe el dato en las líneas de datos 0 a 74. /Data Strobe es activada si /WAIT esta en cero5. El PC espera a que /WAIT valla a uno, lo cual le indica que puede terminar el ciclo.6. /Data Strobe es desactivada7. Termina el ciclo de escritura de datos del EPP.

Figura 3.3 Protocolo de ciclo de escritura de dirección del EPP

Descripción1. El software escribe la dirección al registro de dirección (base + 3)2. /WRITE se manda a cero. (cero indica operación de escritura)3. Se escribe la dirección en las líneas de datos 0 a 74. /Addr Strobe es puesta a cero si /WAIT esta a cero, lo cual indica que el ciclo puede

ser iniciado5. El PC espera a que /WAIT valla a uno, lo cual indica que el periférico ha terminado

la operación y el ciclo puede terminarse.6. /Addr Strobe es desactivada.7. El ciclo de escritura de dirección del EPP termina

29

Page 10: Capitulo 3 - El Puerto LPT

Figura 3.4 Protocolo de ciclo de lectura de datos del EPP

Descripción1. El software lee el registro de datos (base + 4)2. /Data Strobe es activada en cero se /WAIT esta a cero3. El PC espera a que /WAIT valla a uno lo cual indica que el ciclo puede continuar4. El dato es leído desde los pines del Puerto paralelo5. /Data Strobe es desactivado llevándolo a uno6. El ciclo de lectura de datos finaliza

Figura 3.5 Protocolo de ciclo de lectura de dirección del EPP

Descripción1. El software lee el registro de dirección (base + 3)

30

Page 11: Capitulo 3 - El Puerto LPT

2. /Addr Strobe es activada llevándola a cero si /WAIT esta en cero.3. El PC espera a que /WAIT valla a uno, lo cual indica que el ciclo puede continuar4. El dato es leído desde los pines del Puerto paralelo5. /Addr Strobe es desactivada llevándola a uno.6. El ciclo de lectura de dirección termina

3.5 Extended Capabilities Port (ECP)

El modo “capacidades extendidas” fue diseñado por Microsoft y Hewlett Packard para su implementación como protocolo de puerto de capacidades extendidas y estándar de la interfase ISA. Este protocolo utiliza hardware adicional para generar las señales de comunicación necesarias de manera parecida al modo EPP, por esta razón, la velocidad del modo ECP es muy parecida a la del modo EPP. En este modo, sin embargo, tiene un mejor desempeño bajo windows debido a que se pueden utilizar los canales DMA para mover datos y utiliza buffers FIFO para enviar o recibir datos.

Otra de las características del ECP es la de compresión de datos en tiempo real. Utiliza el concepto de Run Lenght Encoding o codificación de largo de repetición (RLE) para alcanzar compresiones de datos de hasta 64:1. Esto es útil en dispositivos como Scanner e impresoras donde una gran parte de los datos consta de largas cadenas las cuales son repetitivas.

El modo ECP soporta un método de direccionamiento de canales. El propósito de este método no es direccionar una cadena de dispositivos, si no direccionar múltiples dispositivos dentro de un mismo periférico o dispositivo. Por ejemplo esto puede suceder con algunas maquinas de fax las cuales cuentan con una interfase paralela para la conexión con la computadora e incorporan funciones de scanner, impresión y modem/fax, las cuales pueden ser separadas dentro del mismo dispositivo y ser direccionadas individualmente, aun si el buffer de alguna de las funciones esta lleno.

3.5.1 Protocolos de comunicación del ECP

El protocolo de señales del modo ECP es diferente del del modo SPP. La deferencia más obvia es la capacidad de transmisión de datos en cualquier dirección, por esto, señales adicionales son requeridas. A continuación se muestran los protocolos para la transmisión en ambas direcciones.

31

Page 12: Capitulo 3 - El Puerto LPT

Figura 3.6 Ciclo de datos con dirección PC a dispositivo del ECP

Descripción.1. El dato es colocado en las líneas de datos por el PC.2. El PC indica que se trata de un ciclo de datos activando la señal HostAck.3. El PC indica que hay un dato valido enviando HostClk a cero.4. El periférico envía su reconocimiento de dato valido activando PeriphAck5. El PC desactiva la señal HostClk poniéndola a uno y el flanco de subida de esta

señal es usado para introducir el dato al periférico.6. El periférico envía su confirmación de recepción del byte mandando a cero la línea

PeriphAck.

Figura 3.7 Ciclo de comando con dirección PC a dispositivo del ECP

32

Page 13: Capitulo 3 - El Puerto LPT

Descripción.1. El dato es colocado en las líneas de datos por el PC2. El PC indica que se trata de un comando llevando a cero la línea HostAck3. El PC indica que hay un dato valido enviando HostClk a cero.4. El periférico envía su confirmación de dato valido llevando a uno la línea

PeriphAck.5. El PC desactiva la señal HostClk poniéndola a uno y el flanco de subida de esta

señal es usado para introducir el dato al periférico.6. El periférico envía su confirmación de recepción del byte mandando a cero la línea

PeriphAck.

Figura 3.8 Ciclo de datos con dirección Dispositivo a PC del modo ECP

Descripción.1. El PC pone a cero la línea /Reverse Request para solicitar el cambio de dirección

del canal.2. El periférico confirma el cambio de dirección de canal enviando a cero /AckReverse3. El dato es colocado en las líneas de datos por el periférico.4. El ciclo de dato es entonces seleccionado por el periférico llevando a uno la línea

PeriphAck.5. El dato valido es indicado por el periférico llevando a cero la línea PeriphClk.6. El PC envía su confirmación llevando a uno la línea HostAck.7. El periférico envía a uno la línea PeriphClk y el flanco de subida de esta es utilizado

para la introducción del dato en el PC8. El PC envía su confirmación de byte recibido desactivando la línea HostAck.

33

Page 14: Capitulo 3 - El Puerto LPT

Figura 3.9 Ciclo de comando con dirección Dispositivo a PC del modo ECP

Descripción.1. El PC pone a cero la línea /Reverse Request para solicitar el cambio de dirección

del canal.2. El periférico confirma el cambio de dirección de canal enviando a cero /AckReverse3. El dato es colocado en las líneas de datos por el periférico.4. El ciclo de comando es entonces seleccionado por el periférico llevando a cero la

línea PeriphAck.5. El dato valido es indicado por el periférico llevando a cero la línea PeriphClk.6. El PC envía su confirmación llevando a uno la línea HostAck.7. El periférico envía a uno la línea PeriphClk y el flanco de subida de esta es utilizado

para la introducción del dato en el PC8. El PC envía su confirmación de byte recibido desactivando la línea HostAck.

3.5.2 Run Length Encoding (RLE)

La codificación de longitud de repetición o RLE (Run Lenght Encoding) es un esquema de compresión el cual puede alcanzar una razón de hasta 64 a 1, y funciona mediante el envío de bytes como contadores y una copia del byte, es decir, el contador determina el numero de repeticiones del byte.

Por ejemplo, si una cadena de 25 ‘A’ fuese a ser enviada, entonces un contador de 24 seria enviado primero seguido inmediatamente por el byte ‘A’. El periférico, al recibir el contador expandirá o repetirá el siguiente byte el numero de veces determinado por el contador de longitud. El byte contador de longitud es distinguido de otros bytes enviados ya que es enviado como comando al puerto de direcciones FIFO del puerto paralelo ECP. Los bytes enviados a este puerto pueden ser de dos tipos, contadores de longitud o direcciones.

34

Page 15: Capitulo 3 - El Puerto LPT

Estos son distinguidos mediante el bit más significativo. Si el bit 7 esta a uno, entonces los demás bits del 0 al 6 corresponden a una dirección de canal. Si el bit 7 esta a cero, entonces los demás bits corresponden al contador de longitud.

3.5.3 Registros del ECP

La tabla 3.5 muestra los registros del puerto paralelo ECP. Los primeros tres registros son exactamente los mismos que con el SPP. Sin embargo el registro de control cuenta con un bit llamado Enable bidirectional Port (bit 5 del registro de control) el cual refleja la dirección en la cual se encuentra actualmente el puerto ECP y causara efectos en los bits FIFO Full y FIFO empty del registro ECR, el cual se vera mas adelante.

Dirección Nombre del registro Lectura/Escritura

Base + 0Registro de datos (SPP) Escritura

Direcciones FIFO ECP (modo ECP) Lectura/Escritura

Base + 1 Registro de estado (todos los modos) Lectura/Escritura

Base + 2 Registro de control (todos los modos) Lectura/Escritura

Base + 400h

Datos FIFO (Puerto paralelo modo FIFO) Lectura/Escritura

Datos FIFO (modo ECP) Lectura/Escritura

Prueba FIFO (modo Prueba) Lectura/Escritura

Registro de configuración A (modo de configuración) Lectura/Escritura

Base + 401h Registro de configuración B (modo de configuración) Lectura/Escritura

Base + 402h Registro de control extendido ECR (todos los modos) Lectura/Escritura

Tabla 3.5 Registros del ECP

3.5.4 El registro de control extendido ECR

El registro más importante en el puerto paralelo ECP es el registro de control extendido ECR. Este registro establece el modo de operación del puerto ECP, además proporciona el estado del FIFO del ECP entre otras cosas. La tabla 3.6 muestra el contenido del registro ECR.

Bit Función

7:5 Selecciona el modo de operación actual

000 Modo estándar

001 Modo byte

010 Puerto paralelo en modo FIFO

011 ECP modo FIFO

100 Modo EPP

101 Reservado

110 FIFO en modo prueba

111 Modo de configuración

4 BIT de interrupción del ECP

3 Bit de habilitación de DMA

35

Page 16: Capitulo 3 - El Puerto LPT

2 Bit de servicio de ECP

1 FIFO full

0 FIFO empty

Tabla 3.6 Registro de control extendido del ECP

Los tres bits más significativos del registro ECR seleccionan el modo de operación. Hay 7 posibles modos de operación, sin embargo no todos los puertos los soportan. El modo EPP es un ejemplo, no estando disponible en todos los puertos. A continuación se muestra una tabla de los modos de operación.

Modos de operaciónModo estándar La selección de este modo provocara que el puerto se comporte como

un puerto paralelo estándar y sin funcionalidad bidireccional.

Modo Byte / Modo PS/2

Funciona igual que el SPP en modo bidireccional

Puerto paralelo modo FIFO

En este modo cualquier dato escrito al FIFO de datos será enviado al periférico utilizando el protocolo del puerto paralelo estándar. El hardware generara las señales necesarias. Útil en dispositivos que no requieran del uso del ECP como las impresoras. Se tendrán algunas de las características del ECP como los buffers FIFO y generación de señales por el hardware pero con el protocolo SPP en vez del ECP.

ECP modo FIFO Es el modo estándar de uso del ECP. Este modo utiliza los protocolos del ECP anteriormente descritos

Modo EPP / reservado

En algunos chipsets, este modo habilitaría el EPP para ser usado. Mientras que en otros este modo sigue reservado.

Reservado Reservado

FIFO en modo de prueba

Estando en este modo cualquier dato escrito al registro de prueba FIFO será colocado en el FIFO y cualquier dato leído del registro FIFO será leído del buffer FIFO. Los bits de estado FIFO full/empty reflejaran su verdadero valor, así, la capacidad del FIFO entre otras cosas puede ser determinado en este modo

Modo de configuración

En este modo los dos registros de configuración cnfigA y cnfigB están disponibles es sus respectivos registros.

36

Page 17: Capitulo 3 - El Puerto LPT

Como se vio en la tabla cuando el puerto es configurado para trabajar en modo estándar, se comportara como el SPP sin transferencia de datos bidireccional. Si se requiere transferencia bidireccional entonces se selecciona el modo de byte. En el modo de puerto paralelo FIFO y en el modo ECP FIFO, las señales necesarias se generan automáticamente por hardware. La única diferencia entre cada uno de los modos es que el modo puerto paralelo FIFO utiliza los protocolos del SPP y el modo ECP FIFO utiliza los protocolos ECP.

El modo de prueba FIFO puede ser utilizado para comprobar la capacidad de los buffer FIFO y para asegurarse que estos funcionan correctamente. Cuando se esta en el modo de prueba FIFO, cualquier byte que sea escrito en el FIFO de prueba (base + 400h) es colocado en el buffer FIFO y cualquier dato que es leído de este registro es tomado del buffer FIFO. Esto puede usarse en conjunción con los bits FIFO full y FIFO empty del ECR para determinar la capacidad del buffer FIFO, el cual es normalmente de 16 bytes.

Otros bits también juegan un papel importante en el funcionamiento del ECP. El bit de interrupción del ECP (bit 4) permite el uso de interrupciones, mientras que el bit de habilitación de DMA (bit 3) permite el uso de acceso directo a memoria. El bit de servicio del ECP (bit 2) muestra si una petición de interrupción ha sido inicializada, si así fuese este bit se activa.

El bit FIFO full (bit 1) y el bit FIFO empty (bit 0) muestra el estado del buffer FIFO. Estos bits son dependientes de la dirección en que se lleve a cabo la comunicación, por ello, deberá tomarse en cuenta del bit 5 (Dirección) del registro de control. Si el bit 0 (empty) esta activado, entonces el buffer FIFO esta completamente vació. Si el bit 1 esta activado entonces el buffer FIFO esta lleno. Estos bits pueden ser utilizados en FIFO modo de prueba para determinar la capacidad del buffer FIFO.

3.5.5 El registro de configuración A

El registro de configuración A es uno de los dos registros de configuración con los que cuenta el ECP. Estos registros de configuración son accesibles solo cuando el ECP se encuentra en el modo de configuración. Cnfg A puede ser accesado en la dirección base + 400h.

Bit Función

7 1 Interrupciones activadas por nivel

0 Interrupciones activadas por flanco

6:4 00h Acepta máximo palabras de 16 bits

01h Acepta máximo palabras de 8 bits

02h Acepta máximo palabras de 32 bits

03h:07h Reservado

3 Reservado

2 Host recovery

37

Page 18: Capitulo 3 - El Puerto LPT

0 En dirección PC a dispositivo 1 byte en el pipeline del transmisor no afecta a FIFO full

1 En dirección PC a dispositivo 1 byte en el pipeline del transmisor no es incluido como parte de FIFO full

1:0 Host recovery: bytes sin enviar dejados en el FIFO

00 Palabra de Puerto completa

01 1 byte valido

10 2 bytes validos

11 3 bytes validos

Tabla 3.7Registro de configuración A – ECR

El registro de configuración A puede ser leído para saber un poco mas del puerto ECP. El bit más significativo muestra si las interrupciones están configuradas para activarse por nivel o por flanco. Esto depende del tipo de bus que se este utilizando. Los bits del 4 al 6 muestran la capacidad de los buses en la interfase algunas interfases solo tienen 8 bits de capacidad, mientras que otras pueden tener 16 o hasta 32 bits de capacidad. Para obtener la máxima eficiencia el software puede leer el estado de estos bits y determinar el tamaño máximo de la palabra de salida.

Los tres bits menos significativos son usados para el recuperamiento del PC. Para recuperarse de un error el software debe saber cuantos bytes fueron enviados comprobando si hay algunos bytes en el FIFO. Otro de los problemas es que la salida de los puertos paralelos es de solo 8 bits y podrían estarse utilizando instrucciones de entrada salida de 16 o hasta 32 bits. Si este es el caso, entonces parte de la palabra que se envía al puerto podría ser enviada. Los bits 0 y 1 dan una indicación del numero de bits validos restantes en el FIFO para su reenvío.

3.5.6 El registro de configuración B

El registro de configuración B, al igual que el registro de configuración A, esta solamente disponible en el modo de configuración del ECP. El registro de configuración B reside en la dirección base + 401h. La siguiente tabla muestra la estructura del registro de configuración B.

Bits Función

7 1 Compresión de datos salientes utilizando RLE

0 No hay compresión de datos

6 Muestra el estado actual del pin de interrupción

5:3 Despliega el estado de la línea de petición de interrupción

000 Selección de interrupción vía jumper

001 IRQ 7

010 IRQ 9

011 IRQ 10

100 IRQ 11

38

Page 19: Capitulo 3 - El Puerto LPT

101 IRQ 14

110 IRQ 15

111 IRQ 5

2:0 Selecciona o despliega el estado del canal DMA que la interfase de impresora utiliza

000 Utiliza canal DMA de 8 bit seleccionado por jumper

001 Canal DMA 1

010 Canal DMA 2

011 Canal DMA 3

100 Utiliza canal DMA de 16 bit seleccionado por jumper

101 Canal DMA 5

110 Canal DMA 6

111 Canal DMA 7

Tabla 3.8 registro de configuración B del ECR

El registro de configuración B (Cnfg B) puede ser una combinación de acceso de lectura o escritura. Algunos puertos pueden ser configurados mediante software, en los cuales los canales DMA así como las interrupciones IRQ’s pueden ser determinados desde el registro, mientras que otros deben ser configurados a través del BIOS o utilizando jumpers en las tarjetas, siendo estos últimos de lectura.

El bit 7 del registro de configuración B selecciona si los datos de salida serán comprimidos utilizando RLE. Cuando esta activado el PC comprimirá los datos antes de ser enviados. Si esta desactivado los datos serán enviados al periférico sin compresión alguna. El bit 6 refleja el estado del pin de interrupción IRQ, pudiendo esto ser utilizado para el diagnostico de conflictos ya que no solo refleja el estado de la IRQ del puerto paralelo, sino la posibilidad de que otro dispositivo este utilizando la misma IRQ.

Los bits 5 a 3 dan un estado de las asignaciones de IRQ’s del puerto, así como los bits 2 a 0 proporcionan el estado de las asignaciones de los canales DMA. Como se menciono estos campos pueden ser de lectura o escritura.

3.6 Conectores

El estándar IEEE 1284 define tres tipos de conectores para la interfase paralela: 1284-A, 1284-B y 1284-C. El 1284-A es el equivalente al conector DB25 comúnmente utilizado en la computadora. El conector 1284-B es el equivalente al conector centronics de 36 pines utilizado en el periférico. El 1284-C es un conector nuevo de 36 pines y abertura de 0.050”. El estándar recomienda este ultimo conector en ambos, el PC y el periférico. En la tabla 3.9 se muestran los conectores así como su distribución de pines.

PinNumber

1284-A25-pin Dsub

1284-B36-pin Centronics

1284-C36-pin de Alta densidad

39

Page 20: Capitulo 3 - El Puerto LPT

1 /STROBE /STROBE BUSY

2 Data1 Data1 Select

3 Data2 Data2 /ACK

4 Data3 Data3 /FAULT

5 Data4 Data4 PError

6 Data5 Data5 Data1

7 Data6 Data6 Data2

8 Data7 Data7 Data3

9 Data8 Data8 Data4

10 /ACK /ACK Data5

11 BUSY BUSY Data6

12 PError PError Data7

13 Select Select Data8

14 /AUTOFD /AUTOFD /INIT

15 /FAULT Not Defined /STROBE

16 /INIT Logic Ground /SelectIn

17 /SelectIn Chassis Ground /AUTOFD

18 Ground Peripheral Logic High Host Logic High

19 Ground Ground Ground

20 Ground Ground Ground

21 Ground Ground Ground

22 Ground Ground Ground

23 Ground Ground Ground

24 Ground Ground Ground

25 Ground Ground Ground

40

Page 21: Capitulo 3 - El Puerto LPT

26 Ground Ground

28 Ground Ground

29 Ground Ground

30 Ground Ground

31 /INIT Ground

32 /FAULT Ground

33 Not Defined Ground

34 Not Defined Ground

35 Not Defined Ground

36 /SelectIn Peripheral Logic High

Tabla 3.9 Conectores y definición de pines del Puerto paralelo

41