tema 06 - puerto paralelo

Upload: omar-milton-condori-pena

Post on 17-Feb-2018

220 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/23/2019 Tema 06 - Puerto Paralelo

    1/18

    Tema 6

    Puerto Paralelo

    El puerto paralelo es el interfase ms utilizado para la creacin de proyectos. Estepuerto, en su versin estndar, denominada SPP (Single Pararell Port) proporciona 9bits de entrada y 12 bits de salida. El puerto se compone de 4 lneas de control, 5lneas de status y 8 lneas de datos. Se localiza normalmente en la parte posterior de lacomputadora, como un conector DB-25 hembra.

    Propiedades hardwareA continuacin, se presenta una tabla que contiene las descripciones de los pines delconector DB-25 del puerto paralelo y su correspondiente pareja en el conectorCentronics de 34 pines. El conector DB-25 (IEEE 1284 Tipo A) se encuentrageneralmente en la computadora, mientras el que el conector Centronics (IEEE 1284Tipo B) se encuentra generalmente en las impresoras.

    13 12 11 10 9 8 7 6 5 4 3 2 1

    25 24 23 22 21 20 19 18 17 16 15 14

    Figura 6.1 - Conector DB-25 Hembra Puerto Paralelo Estndar

  • 7/23/2019 Tema 06 - Puerto Paralelo

    2/18

    134 Microprocesadores de 16 bits y tecnologa PC

    Pin No

    (DB-25)Pin No

    (Centronics)Tipo de Seal E/S Registro

    Inversin

    por

    Hardware1 1 _Strobe S Control Si2 2 Data 0 S Data

    3 3 Data 1 S Data4 4 Data 2 S Data

    5 5 Data 3 S Data6 6 Data 4 S Data

    7 7 Data 5 S Data8 8 Data 6 S Data9 9 Data 7 S Data10 10 _Ack E Status

    11 11 Busy E Status Si

    12 12Paper-Out / Paper-

    EndE Status

    13 13 Select S Status14 14 _Auto-Linefeed E Control Si15 32 _Error / nFault E Status16 31 _Initialize S Control

    17 36_select-Printer /

    _Select-InS Control Si

    18 - 25 19-30 Ground GndTabla 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 puertoEl puerto paralelo usa generalmente tres direcciones de puerto base, las cuales sonlistadas en la siguiente tabla. Cada direccin base ocupa tres direcciones de puertoconsecutivas.

    Direccin Observacin:3BCh - 3BFh Usadas por puertos paralelos integrados en tarjetas de vdeo o

    tarjetas IDE/IO, seleccionable por puentes (jumpers).

    378h - 37Fh Direccin usual para LPT 1278h - 27Fh Direccin usual para LPT 2Tabla 6.2 - Direcciones de puerto

    Cuando la computadora recibe energa (encendido), el BIOS (Basic Input/OutputSystem), determina el nmero de puerto que posee el equipo, y asigna las etiquetas dedispositivo (LPT1, LPT2 o LPT3) a estos. El BIOS primero mira la direccin 3BCH.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    3/18

    Puerto Paralelo 135

    Si el puerto paralelo es encontrado aqu, este es asignado como LPT1, entonces buscaa continuacin en la direccin 378H. Si un puerto es encontrado aqu, se le asigna lasiguiente etiqueta de dispositivo libre. Este puede ser LPT1 si es que no se encuentrauna 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 procedimientoanterior.

    Normalmente, la asignacin de los dispositivos LPT1, LPT2 y LPT3 no preocupamayormente a los usuarios de computadoras. Si por alguna razn se desea encontrarlas direcciones de puerto de LPT1 o de cualquier otro puerto disponible, puedemirarse la tabla de consulta del BIOS. Cuando el BIOS asigna las direcciones depuerto de los dispositivos paralelos (impresora), este almacena dichas direcciones enuna tabla en la memoria, la cuales se muestran a continuacin:

    Direccin de inicio Funcin

    0000:0408 Direccin base de LPT10000:040A Direccin base de LPT20000: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.

    El siguiente programa en Cle permitir leer estas locaciones de memoria, obteniendoas las direcciones de los puertos paralelos presentes en el equipo.

    #include

  • 7/23/2019 Tema 06 - Puerto Paralelo

    4/18

    136 Microprocesadores de 16 bits y tecnologa PC

    Registros software del puerto paraleloCada direccin base de puerto paralelo, esta compuesta por tres direccionesconsecutivas de puerto. La primera direccin (Base+0) se denominaPuerto de datos.La segunda (Base+1) se denominaPuerto de status. Finalmente, la tercera direccin

    (Base+2) se denominaPuerto de control. De esta manera se puede concluir que, bajolos estndares de asignacin del BIOS y MSDOS tenemos que:

    LPT1 LPT2 LPT3 Descripcin

    0378H 03BCH 0278H Puerto de datos0379H 03BDH 0279H Puerto de status

    037AH 03BEH 027AH Puerto de control

    Offset NombreLectura/Escritura

    Bit No. Propiedades

    Bit 7 Data 7Bit 6 Data 6Bit 5 Data 5Bit 4 Data 4

    Bit 3 Data 3Bit 2 Data 2

    Bit 1 Data 1

    Base + 0 Puerto dedatos Escritura)

    Bit 0 Data 0Bit 7 BusyBit 6 Ack

    Bit 5 Paper Out

    Bit 4 Select InBit 3 Error

    Bit 2 IRQ (Negado)Bit 1 No usado

    Base + 1 Puerto destatus

    Solo lectura

    Bit 0 No usadoBit 7 No usado

    Bit 6 No usadoBit 5 No usado

    Bit 4 Enable IRQ Via AckBit 3 Select PrinterBit 2 Initialize Printer (Reset)Bit 1 Auto Linefeed

    Base + 2 Puerto decontrol

    Lectura /Escritura

    Bit 0 StrobeTabla 6.4 - Registros de software puerto paralelo

    La direccin base, usualmente denominada Puerto de datos o registro de datos, esusada simplemente para la salida de datos hacia las lneas del puerto (pines 2 al 9).Este puerto es normalmente de solo escritura. Si se lee este puerto, se obtendr elultimo byte enviado.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    5/18

    Puerto Paralelo 137

    El puerto o registro de status (Base+1) es un puerto de solo lectura. Cualquier datoescrito en este puerto ser ignorado. Este puerto posee 5 lneas de entrada (pines 10,11, 12, 13 y 15), el registro de status de IRQ y dos bits reservados. Ntese que el bit7 (Busy) es una entrada activa a nivel bajo. Por ejemplo, si el bit 7 muestra el valor

    0 esto significa que le entrada (pin 11 centronics) est a +5V. En forma similar, elbit 2 (IRQ negado) si muestra un 1 entonces no ha ocurrido una interrupcin.

    El puerto o registro de control (Base+2) esta definido como puerto de solo escritura.Cuando la impresora es conectada al Puerto Paralelo, cuatro controles sonutilizados. Estos son STROBE, AUTO LINEFEED, INITIALIZE y SELECTPRINTER, todos ellos invertidos, con excepcin de INITIALIZE. En algunasvariantes del Puerto Paralelo, estas lneas pueden usarse con lectura. Si lacomputadora coloca estas lneas a estado alto (+5V) y el dispositivo conectado buscaenviar esas lneas a estado bajo (0V), podr efectivamente, enviar a corto el puerto,causando conflicto en el bus. Dado que estas lneas son del tipo colector abierto,poseen resistencias depull up, permitiendo as leer el estado del dispositivo de salida,con lneas de escritura. Se debe aclarar que esta caracterstica no esta contempladaen todos los diseos de puerto, as que si desea probarla, asegrese primero del tipode diseo que tiene su puerto, o de lo contrario podr crearle daos permanentes.

    Una posible manera de usar un puerto no diseado para lectura es colocarexternamente las resistencias de pull-up (de 4.7K como mnimo, pero no ms de68K), permitiendo de esta manera usar este registro en modo bi-direccional sin daarlas lneas. Para efectuar la lectura, se debe escribir en este puerto el valor xxxx0100para poder habilitar todos los pines de salida a 1.

    Finalmente, los bits 4 y 5 son de control interno. El bit 4 habilitara las IRQ delpuerto, y el bit 5 habilitara el modo bi-direccional del registro de datos, siempre ycuando el diseo del puerto soporte dicha caracterstica. Las escrituras hacia estos bitsno tendrn efecto en los bits de salida de este registro.

    Usando el puerto paralelo para leer 8 bitsSi su puerto paralelo no soporta el modo bi-direccional, no se preocupe. Se puedeleer un mximo de 9 bits en cualquier momento dado. Esto puede hacerlo usando las5 lneas de entrada del Puerto de Status y las 4 lneas entradas (en modo colectorabierto) del Puerto de Control. Normalmente se leern 4 bits (nibble) u 8bits (byte)

    en cualquier momento. Leer 8 bits dejara una lnea vacante. Para estos casos, sesugiere dejar el pin 10 (ACK) vacante, ya que puede usarse para generar peticiones deinterrupcin. Recurdese que debe escribirse xxxx0100 en el puerto de control paraque sea habilitado como puerto de lectura.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    6/18

    138 Microprocesadores de 16 bits y tecnologa PC

    Usando la IRQ del puerto paraleloLas peticiones de interrupcin de puerto paralelo no son usadas para imprimir bajoDOS, pero si bajo Windows. Esta lnea de interrupcin es til para monitoreardispositivos en los cuales no se sabe cuando van a generar algn evento que requiera

    por parte de ellos atencin del procesador.

    La lnea de peticin de interrupcin (IRQ) del puerto paralelo normalmente es laIRQ7 o la IRQ5, segn la direccin base. Existe la posibilidad de que las IRQ estntotalmente deshabilitadas en la tarjeta de puerto paralelo, ya que esta es solo usadapara imprimir sin control sobre el dispositivo, y no tiene el hardware necesario paraapoyar esta funcin.

    Para poder usar esta caracterstica, la lnea de IRQ asignada debe ser habilitada en elPIC (Programmable Interrupt controller) 8259. Este punto lo veremos con mayordetalle ms adelante, cuando se toque el tema de la programacin del 8259.

    Programacin del puerto paraleloAl contrario de lo que podra pensarse, programar el puerto paralelo es una tareabastante simple. Lo primero que debemos tener en claro es la direccin base delpuerto. Supongamos que la direccin base es 0378H, entonces, si deseamos escribiren el registro de datos, simplemente hacemos lo siguiente:

    MOV DX, 0378H ;Almacena en DX la direccin del registro de datosMOV AL, DATO ;Almacena en AL el dato a escribirOUT DX, AL ;Escribe el dato en registro de datos

    Si deseamos leer del registro de status:

    MOV DX, 0379H ;Almacena en DX la direccin del registro de statusIN AL, DX ;Lee el dato del registro de statusMOV DATO, AL ;Almacena el dato ledo en una variable de memoria

    Si deseamos escribir en el registro de control

    MOV DX, 037AH ;Almacena en DX la direccin del registro de controlMOV AL, DATO ;Almacena en AL el dato a escribir

    OUT DX, AL ;Escribe el dato en registro de control

    Se puede concluir que el Puerto Paralelo no solo es til para usar impresoras. Este esun dispositivo muy flexible de usar, que permite controlar de una manera sencillacualquier tipo de equipo o dispositivo externo que pueda adaptarse a losrequerimientos de operacin del puerto, con un esquema de programacin bastantesencillo.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    7/18

    Puerto Paralelo 139

    La evolucin del puerto paraleloLa definicin original del puerto paralelo se le conoce hoy da como SPP (singlePararell Port) y es el estndar base. A pesar de su sencillez, esta configuracinoriginal no es apta para transferencias masivas de datos, en parte, por necesitar que el

    procesador este continuamente interactuando con el, y por otro lado, por eldesafortunado esquema de lneas no totalmente bidireccional. En vista de ello, y dadoactualmente el gran auge que tiene los nuevos dispositivos de impresin a color, loscuales necesitan transferir como mnimo tres veces la cantidad de datos desde elcomputador, adems de requerir un control mas sofisticado, fue la razn por la cual sehizo necesario revisar la norma y expandirla.

    Puerto Paralelo Expandido (EPP)Este puerto fue diseado en conjunto con Intel, Xircom y Zenith. Esta incluido en laespecificacin de al IEEE 1284 como EPP 1.7 estndar y EPP 1.9 estndar. Lasdiferencias entre estos ser discutida posteriormente.

    El EPP posee una capacidad de transferencia tpica del orden de los 500 Kbyte/seghasta los 2Mbytes/seg. Esto se logra con electrnica adicional que permite generar lasseales de handshaking, strobing etc, en vez de delegar esas funciones al software.

    Propiedades hardware del EPPCuando se usa el modo EPP, un conjunto diferente de funciones y nombres sonasignados a cada lnea del mismo.

    Pin SPP EPP E/S FUNCION

    1 Strobe Write S Esta bajo: EscrituraEstado Alto: Lectura

    2-9 Data 0-7 Data 0-7 E/S Bus de datos, bidireccional10 ACK Interrupt E Linea de interrupcion. Valida en flanco positivo

    (rising edge)11 Busy Write E Usada por handshaking. El ciclo EPP puede

    empezar en bajo, y terminar en alto.12 Paper Out/End Spare E Libre No usada en EPP Handshake13 Select Spare E Libre No usada en EPP Handshake14 Auto LF Data Strobe S En nivel bajo, transferencia de datos

    15 Error Spare E Libre No usada en EPP Handshake16 Initialize Reset O Reset, activo bajo17 Select Printer Address Strobe O En nivel bajo, transferencia de direcciones

    18-25 Ground Ground GND Tierra (Ground)Tabla 6.5 - Asignacin de pines del puerto EPP

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    8/18

    140 Microprocesadores de 16 bits y tecnologa PC

    Manejo del EPPEl manejo, o handshake del puerto EPP, permite un control y manejo validos delintercambio de datos. Esto lo hace totalmente el hardware, y no por software como espor lo general en SPP. Para inicializar un ciclo EPP, es necesario que el software

    realice algunas operaciones en los registros software de EPP.

    Registros software del EPPEl puerto EPP posee un nuevo juego de registros, adicionales al SPP, de los cualeshereda los tres originales de este ultimo

    DIRECCION PUERTO LECTURA/ESCRITURA

    Base+0 Puerto de datos (SPP) EscrituraBase+1 Puerto de estatus (SPP) Lectura

    Base+2 Puerto de control (SPP) EscrituraBase+3 Puerto de direcciones (EPP) Lectura/EscrituraBase+4 Puerto de datos (EPP) Lectura/EscrituraBase+5 No definido (Transf. 16/32 bits) -Base+6 No definido (Transf.. 32 bits) -Base+7 No definido (Transf. 32 bits) -

    Tabla 6.6 - Registros EPP

    Puede observar que las tres primeras direcciones son exactamente los mismosregistros del puerto SPP y poseen el mismo comportamiento. Esto permite usar elpuerto 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 quehay que hacer es colocar los datos a enviar en el Puerto de Datos (Base+4) y el puertogenerara los pulso de control (handshake) necesarios. Por otro lado, si lo que desea esenviar 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 laslneas Address Strobe y Data Strobe, y su dispositivo puede hacer solicitudes delectura usando interrupciones.

    El Puerto de estatus tiene una pequea modificacin. El bit 0, fue reservado para eljuego de registros de SPP, en EPP se usa como Time-Out (Tiempo Agotado). Estoocurre por lo general cuando la lnea Wait (Espera) no es validada en un tiempo deaproximadamente 10uS. Tmese en cuenta que el puerto EPP depende mucho de latemporizacin del bus ISA.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    9/18

    Puerto Paralelo 141

    Finalmente, los tres registros, Base+5, Base+6 y Base+7, pueden ser utilizados paraoperaciones de lectura y escritura de 16 y 32 bits, solo si su puerto las soporta. Elpuerto paralelo puede transportar solamente 8 bits a la vez, por lo que cualquieracceso 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 EPPEn la siguiente tabla se puede observar los ciclos de lectura y escritura del puertoEPP, tanto para datos como para direcciones.

    Ciclo de escritura de datos 1. Escritura en Puerto de datos (Base + 4).2. Se coloca pulso de escritura (nivel bajo).3. El dato se coloca en las lneas 0-7.4.Data Strobees colocado si Wait esta a nivel bajo.5. Anfitrin espera por respuesta (Wait pasa a nivel alto)

    6.Data Strobese descoloca (nivel alto)7. Ciclo de escritura de datos terminado

    Ciclo de escritura de direcciones 1. Escritura en Puerto de direcciones (Base + 3).2. Se coloca pulso de escritura (nivel bajo).3. El dato se coloca en las lneas 0-7.4.Addr Strobees colocado si Wait esta a nivel bajo.5. Anfitrin espera por respuesta (Wait pasa a nivel alto)6.Addr Strobese descoloca (nivel alto)7. Ciclo de escritura de direcciones terminado

    Ciclo de lectura de datos

    Lectura de datos

    1. Lectura en Puerto de datos (Base + 4).2.Data Strobees colocado si Wait esta a nivel bajo.3. Anfitrin espera por respuesta (Wait pasa a nivel alto)4. El dato es ledo desde el puerto paralelo5.Data Strobese descoloca (nivel alto)6. Ciclo de lectura de datos terminado

    Ciclo de lectura de direcciones

    Lectura de direcciones

    1. Lectura en Puerto de direcciones (Base + 3).2.Addr Strobees 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 paralelo5.Addr Strobese descoloca (nivel alto)6. Ciclo de lectura de direcciones terminado

    Figura 6.1

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    10/18

    142 Microprocesadores de 16 bits y tecnologa PC

    Consideraciones de programacin del EPPAntes de proceder a utilizar el puerto EPP, este debe ser configurado correctamente.Es estado ocioso, el puerto EPP puede no tener activas las lneas Address Strobe,Data Strobe, Write y Reset. Algunos puertos necesitan que estas lneas sean

    inicializadas antes de proceder a los ciclos de lectura y escritura.Entonces, nuestra primera tarea ser la inicializacin manual de estas lneas, usandolos registros SPP. Escribiendo en el puerto de control el valor XXXX0100, seinicializaran las lneas anteriormente mencionadas. En algunas tarjetas, el puerto EPPesta colocado en modo reverso, lo cual no permitir ciclos de escritura. Para colocarel puerto EPP es modo directo, es necesario poner a cero el bit 5 del puerto decontrol.

    Puerto de Capacidad Expandida (ECP)

    El protocolo de puerto de capacidad extendida o ECP, fue propuesto por HewlettPackard y Microsoft como un modo avanzado para la comunicacin de perifricos deltipo de los scanners y las impresoras. Como el protocolo EPP, el ECP proporcionauna alta resolucin en la comunicacin bi-direccional entre el adaptador delcomputador y el dispositivo perifrico.

    El protocolo ECP proporciona los siguientes ciclos, en ambas direcciones :

    Ciclos de Datos Ciclos de Comandos

    Las caractersticas principales del ECP incluyen la RLE (Run Length Encoding) ocompresin de datos en los computadores, FIFO para los canales directo e inverso yDMA. La caracterstica RLE mejora la compresin de datos en tiempo real y puedelograr una compresin de datos superior 64:1. Esto es particularmente til para lasimpresoras y scanners que transfieren gran cantidad de imgenes y tienen largascadenas de datos idnticos.

    El canal de direcciones contiene una pequea diferencia con el del EPP. El canal dedireccin se intenta que se use para sistemas lgicos mltiples de direccin con unsistema fsico nico. Piense en esta idea como un nuevo sistema multi-funcin comopor 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 asignadiferentes tareas a cada uno de los pines, la igual que EPP. Esto significa que existeun mtodo de manejo (o handshake) diferente.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    11/18

    Puerto Paralelo 143

    El puerto ECP es compatible hacia atrs con las normas SPP y EPP. Cuando opera enel modo SPP, las lneas individuales operan exactamente igual a la norma original, ytodas conservan sus respectivos nombres. Cuando opera en la modalidad EPP, lafunciona de los pines es acorde al protocolo EPP anteriormente descrito. Cuando el

    puerto funciona en la modalidad ECP, las siguientes denominaciones son asignadas acada pin.

    Pin SPP ECP E/S Funcin

    1 Strobe HostCLK S

    En estado bajo indidca que hay un dato validodel anfitrion. Cuando el pin es deseleccionado, elflanco positivo del reloj es usado para almacenarel dato en el dispositivo perifrico.

    2-9 Data 0-7 Data 0-7 E/S Bus de datos. Bi-direccional

    10 Ack PeriphCLK E

    En estado bajo indica que hay un dato valido deldispositivo perifrico. Cuando el pin es

    deseleccionado, el flanco positivo del reloj seusa para almacenar el dato en el anfitrin.

    11 Busy Periph Ack E

    En modo reverso, el estado alto indica datos,mientras que el estado bajo indica ciclo decomandos. En modo directo, funciona comoPeriphAck (Reconocimiento de dispositivo).

    12 Paper Out /End _Ack Reverse E

    En estado bajo, el dispositivo reconoce peticininversa.

    13 Select X-Flag E Banderas de extensin.

    14 AutoLinefeed Host Ack S

    En modo directo, el estado alto indica datos,mientras que en estado bajo indica ciclo decomandos. En modo reverso funciona comoHost Ack (Reconocimiento de anfitrin).

    15 Error /Fault Periph Request E

    Si el dispositivo lo ajusta a nivel bajo, indica queel modo reverso hay datos disponibles

    16 Initialize _Reverse Request S Un estado bajo indica datos en modo reverso.

    17 SelectPrinter 1284 Active S

    En modo alto indica que el anfitrin esta enmodo de transferencia 1284. Tomndola enmodo bajo termina la operacin

    18-25 Ground Ground GND Tiera (Ground)Tabla 6.7 - Asignacin de pines puerto ECP

    Las lneas HostAck y PeriphAck indican si las seales en las lneas de datos son datoso 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 lalnea 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 lneaPeriphAck ser baja.

    Un ciclo de comandos puede hacer una de dos cosas, hace un conteo RLE o unadireccin. Esto lo determina el bit 7 (MSB) de las lneas de datos, por ejemplo, el pin

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    12/18

    144 Microprocesadores de 16 bits y tecnologa PC

    9. Si el bit 7 es 0, entonces el resto de los datos (bits 0-6) es un conteo RLEutilizado junto un esquema para compresin de datos. Por otro lado, si el bit 7 es 1,entonces los datos presentes en los bits 0 al 6 es un canal de direcciones. Con un bitmenos, esto permite valores desde 0 al 127.

    Temporizacin del ECP

    El manejo en ECP es muy diferente al de SPP. La diferencia mas obvia es que ECPtiene la habilidad de, en cualquier momento, transmitir datos en cualquier direccin,adems de la sealizacin requerida.

    Ciclo de datos directo1. Dato colocado por el anfitrin en las lneas de datos.2. Anfitrin indica que procede un ciclo de datos pasando a nivelalto HostAck.3. Anfitrin indica datos valido pasando a nivel bajo HostClk.4. Dispositivo enva reconocimiento de dato valido pasando a

    nivel alto PeriphAck.5. Anfitrin pasa a nivel alto, usando el flanco para enviar eldato al dispositivo.

    6. Dispositivo enva reconocimiento del dato recibido pasando anivel bajo PeriphAck.

    Ciclo de comandos directo1. El dato es colocado por el anfitrin en las lneas de datos.2. Anfitrin indica un ciclo de comandos pasando a nivel bajoHostAck.3. Anfitrin indica datos valido pasando a nivel bajo HostClk.4. Dispositivo enva reconocimiento de dato valido pasando anivel alto PeriphAck.5. Anfitrin pasa a nivel alto HostClk y usa flanco positivo para

    enviar dato al dispositivo.6. Dispositivo enva reconocimiento del dato pasando a nivel

    bajo PeriphAck.

    Ciclo de datos reverso1. Anfitrin coloca nReverseRequest en nivel bajo para peticinde canal reverso.2. Dispositivo reconoce peticin de canal reverso pasandonAckReverse a nivel bajo.3. Dato es colocado en la lneas de datos por el dispositivo..4. Ciclo de datos es seleccionado por el dispositivo pasandoPeriphAck a nivel alto.5. El dispositivo indica dato valido ajustando a nivel bajoPeriphClk.6. Anfitrin enva reconocimiento de dato valido pasandoHostAck a nivel alto.7. Dispositivo ajusta PeriphClk a nivel alto, usando flanco

    positivo para recibir dato desde el anfitrin.8. Anfitrin envia reconocimiento del dato enviado pasandoHostAck a nivel bajo.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    13/18

    Puerto Paralelo 145

    Ciclo de comandos reverso

    1. Anfitrin ajusta nReverseRequest a nivel bajo para peticin decanal reverso.2. Dispositivo reconoce peticin de canal reverso pasando anivel bajo nAckReverse low.

    3. Dato es colocado en las lneas de datos por el dispositivo..4. Ciclo de comandos es seleccionado por el dispositivo pasandoa nivel bajo PeriphAck.5. Dispositivo indica dato valido pasando PeriphClk a nivel bajo.6. Anfitrin enva reconocimiento de dato valido pasandoHostAck a nivel alto.7. Dispositivo ajusta PeriphClk a nivel alto, usando flanco

    positivo para enviar dato hacia el anfitrin.8. anfitrion envia reconocimiento del dato pasando HostAck anivel bajo.

    Figura 6.2

    Manejo EPC Vs. Manejo SPP

    Si volvemos atras y miramos el manejo usado en la modalidad SPP, podemos ver queesta se hace en 5 pasos

    1. Escribe el byte en el puerto de datos2. Verifica si la impresora esta ocupada. Si la impresora esta ocupada, no

    aceptara ningn dato, entonces cualquier otro dato escrito se perder.3. Pasa Strobe(pin 1) a nivel bajo. Esto le dice a la impresora que hay un dato

    correcto en las lneas de datos (pines 2-9)4. Coloca Strobe a nivel alto nuevamente despus de esperar 5 uS

    aproximadamente despus de haberlo colocado en estado bajo (paso 3)5. Verifica por peticiones (Ack) del dispositivo

    Puede verse que el manejo de ECP posee muchos pasos mas. Esto podra sugerir queECP podra ser mas lento que SPP. Por supuesto, este no es el caso. Todos los pasosefectuados por ECP son controlados por hardware. Si este manejo se hiciera porsoftware, tal como lo hace SPP, el control de ECP efectivamente seria muy lentocomparado con SPP.

    Registros de software ECP

    La siguiente tabla muestra los registros del puerto ECP. Los tres primeros registrosson exactamente los mismos del puerto SPP. Note que puede ser tomado el bit 5 delpuerto de control para habilitar los puertos bidireccionales. Este bit refleja ladireccin de datos seleccionada por ECP, puede afectar los bits de cola FIFO llena ocola FIFO vaca, del registro ECR, el cual ser explicado posteriormente.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    14/18

    146 Microprocesadores de 16 bits y tecnologa PC

    Direccin Nombre de puerto R/W

    Puerto de datos (SPP) RBase + 0Direccin de cola FIFO ECP (MODO ECP) R/W

    Base + 1 Puerto de estatus (todos los modos) R/WBase + 2 Puerto de control (todos los modos) R/WDatos cola FIFO (Modo FIFO Puerto Paralelo) R/W

    Datos FIFO (Modo ECP) RWTest FIFO (Modo Test) R/W

    Base + 400h

    Registro configuracin A (Modo configuracin) R/WBase + 401h Registro configuracin B (Modo configuracin) R/WBase + 402h Registro control extendido (Usado por todas las modalidades) R/W

    Tabla 6.8 - Registros ECP

    Registro de control extendido (ECR)

    Este es el registro mas importante del puerto ECP. Este registro es el primero a usarantes de efectuar cualquier operacin, ya que permite ajustar la modalidad de trabajodel puerto, proporciona los estatus de las colas FIFO, entre otras cosas.

    Bit FuncionSelecciona el modo de operacin

    000 Modo Estandard001 Modo Byte010 Modo FIFO Puerto Paralelo011 Modo FIFO ECP100 Modo EPP101 Reservado110 Modo Test FIFO

    7:5

    111 Modo Configuracion4 Bit de interrupcin ECP3 Bit habilitacin DMA2 Bit Servicio ECP1 Cola FIFO llena0 Cola FIFO vaca

    Tabla 6.9 - Registros de control extendido

    Los tres bits mas significativos del ECR seleccionan el modo de operacin. Existen 7posibles modos de operacin, pero no todos los puertos pueden soportar todos losmodos. El modo EPP es uno de ellos, por ejemplo, no esta disponible en algunospuertos.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    15/18

    Puerto Paralelo 147

    Modos de Operacin

    ModoEstandar

    Seleccionando este modo permitir que el puerto ECP se comporte como unpuerto SPP estndar, sin la funcionalidad bidireccional.

    Modo Byte /Modo PS/2 Se comporta como un puerto SPP en modo bidireccional (Reverso)

    Modo FIFOPuertoParalelo

    En este modo, cualquier dato escrito en la cola de datos FIFO ser enviado adispositivo usando el manejo (handshake) SPP. El hardware generara lasseales de manejo requeridas. Es til con dispositivos no-ECP. Puede teneralgunas de las caractersticas de ECP, tales como los buffers FIFO y elhardware generador de seales de manejo y control, pero solo las existentes

    para SPP.Modo FIFOECP

    Modo estndar para uso de ECP. Se usa el manejo (Handshake) ECPanteriormente descrito.

    Modo EPP /Reservado

    En algunos chipsets, este modo permite usar EPP, mientras que en otros, estemodo es reservado.

    Reservado Normalmente reservadoModo TestFIFO

    En este modo, cualquier dato escrito al registro Test FIFO ser colocado en lacola 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.

    ModoConfiguracin

    En este modo, los dos registros de configuracin, cnfgA y cnfgB estarndisponibles para el registro de direcciones designado.

    Tabla 6.10

    Cuando el puerto es ajustado a operar en Modo Estndar, este se comportaraexactamente como un puerto SPP, si transferencia de datos bidireccional. Si senecesita esta caracterstica, entonces debe habilitar el Modo Byte. Las modalidades

    FIFO Puerto Paralelo y FIFO ECP usan hardware para generar las seales de controlnecesarias. La nica diferencia entre cada modo es que la primera modalidad usacontrol SPP, permitiendo as usar impresoras. La otra modalidad usa control ECP.

    El Modo Test FIFO puede ser usado para comprobar la capacidad de los buffers FIFOy verificar si hacen correctamente su funcin. En este modo, cualquier byte que seaescrito a TEST FIFO (Base+400H) es colocado en el buffer FIFO y cualquier byteque sea ledo de este registro ser tomado de dicho buffer. Puede usarse en conjuntocon FIFO lleno/vaci para determinar la capacidad del buffer, que normalmente es de16 bytes.

    Los otros bits del ECR pueden jugar un rol importante en la operacin del puerto

    ECP. El Bit de Interrupcin ECP (bit 4) habilita el uso de interrupciones, mientrasque el Bit Habilitar DMA (bit 3) permite el uso del acceso directo a la memoria. ElServicio ECP (bit 2) muestra si una peticin de interrupcin ha sido iniciada. Si esas, este bit ser activado.

    El bit FIFO lleno (bit 1) y FIFO vaci (bit 0) muestran el estatus del buffer FIFO.Estos bit son dependientes de la direccin, ya que son tomados del bit 5 del Puerto de

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    16/18

    148 Microprocesadores de 16 bits y tecnologa PC

    Control. Si el bit 0 (FIFO vaci) esta activo, entonces el buffer FIFO estacompletamente 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 esteultimo no esta lleno. Estos bits pueden ser usados por el Modo Test FIFO para

    determinar la capacidad del buffer.

    Registro de configuracin A (cnfgA)

    El registro de configuracin A es uno de los dos registros de configuracin del puertoECP. Dichos registros son solamente accesibles cuando el Puerto ECP esta en Modoconfiguracin. CnfgA puede ser accedido en Base+400H.

    Bit Funcin

    1 Interrupciones disparadas por nivel70 Interrupciones disparadas por flanco

    00h Acepta mximo palabras de 16 bit de ancho01h Acepta mximo palabras de 8 bit de ancho02h Acepta mximo palabras de 32 bit de ancho

    6:4

    03h:07h Reservado para expansin futura3 Reservado

    Recuperacin de Anfitrin: Byte por transmitir esta en la cola FIFO?

    0 En modo directo, 1 byte en la cola de transmisin no afecta a lacola FIFO lleno.

    2

    1

    En modo directo, 1 byte en la cola de transmisin es incluido

    como parte de la cola FIFO llena.Recuperacin de Anfitrin: Byte no enviados en la cola FIFO

    00 Completar Port Word01 1 byte valido10 2 bytes validos

    1:0

    11 3 bytes validosTabla 6.11 - Configuracin del Registro A

    El registro de configuracin A puede ser ledo para conocer un poco mas del PuertoECP. 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 estosbits para obtener la mxima eficiencia del puerto.

    Los 3 LSBs son usados para la recuperacin del Anfitrin. Con el fin de recuperarsede un error, el software deber saber cuantos bytes fueron enviados, determinando siquedan algunos de estos bytes en la cola FIFO.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    17/18

    Puerto Paralelo 149

    Otro problema es que la salida del Puerto Paralelo es solo de 8 bits de ancho, y esposible que se necesiten usar instrucciones de E/S de 16 o 32 bit de ancho. Si ese esel caso, entonces parte del Port Word puede ser enviado. Los bits 0 y 1 dan indicacindel numero de bytes validos que permanecen en la cola FIFO, y cuales pueden

    retransmitirse.

    Registro de configuracin B (cnfgB)

    Este registro, al igual que el anterior, solamente esta disponible cuando el Puerto ECPesta en Modo Configuracin. Cuando esta en ese modo, cnfgB reside en Base+401H.

    Bit(s) Funcin1 Comprime datos de salida usando RLE7

    0 No comprima datos6 Estatus de Interrupcin: Muestra el estatus del pin IRQ

    Selecciona o muestra el estatus de la lnea de peticin deinterrupcin.

    000 Interrupcin seleccionada va puente (jumper)001 IRQ 7010 IRQ 9011 IRQ 10100 IRQ 11101 IRQ 14110 IRQ 15

    5:3

    111 IRQ 5Selecciona o muestra el estatus del canal DMA usado

    000 Usa canal DMA de 8 bits puenteado (jumpered)001 Canal DMA #1010 Canal DMA #2011 Canal DMA #3100 Usa canal DMA de 16 bits puenteado101 Canal DMA #5110 Canal DMA #6

    2:0

    111 Canal DMA #7

    Tabla 6.12 - Configuracin del registro B

    Este registro puede ser una combinacin de acceso lectura/escritura. Algunos puertospueden ser configurados por software, permitiendo la posibilidad de seleccionar losrecursos IRQ y DMA desde el registro. Otros pueden ser ajustados desde el BIOS ousando puentes (jumpers) en la tarjeta madre (motherboard).

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ

  • 7/23/2019 Tema 06 - Puerto Paralelo

    18/18

    150 Microprocesadores de 16 bits y tecnologa PC

    El bit 7 selecciona si se usa o no compresin RLE (Run Length Encoding). Cuandoesta seleccionado, el anfitrin comprime los datos antes de enviarlos. Cuando no estaactivo, los datos se envan al dispositivo sin comprimir. El bit 6 retorna el estatus delpin de IRQ. Esto puede ser usado como diagnostico de conflictos y puede que no

    refleje el estatus del IRQ del Puerto Paralelo, pero si el de otros dispositivos que usenesta IRQ.

    Los bits 5 a 3 proporcionan el estatus de las asignaciones de IRQ a los puertos.Igualmente, los bits 2 al 0 proporcionan el estatus de las asignaciones de los canalesDMA . Hay que mencionar que estos campos son de lectura y escritura.

    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 maslenta hasta que al cabo de 30 segundos se detenga completamente. Solo utiliceel puerto paralelo en modo SPP y con la cantidad mnima de componentes.

    Disee un interfaz hardware que conectndose al puerto paralelo, permitaemular un procesador bsico de 8 bit de bus E/S y 16 bits de direcciones.Haga un diseo hardware que se adapte a las modalidades SPP y ECP, y surespectivo software de control. Este software usara un macro lenguaje deinstrucciones bsicas, tales como: LEER_DATO, ESCRIBIR_DATO,ESCRIBIR_DIRECCIN.

    Haga un diseo hardware y software que permita accionar un conjunto de 8reles, de acuerdo al estado de un sensor de entrada digital de 8 bits.

    Usando un DAC, disee el hardware y software necesarios para hacer ungenerador de seales que permita obtener formas de onda triangular, diente desierra, senoidal, cuadrada y ancho de pulso variable. La frecuencia mximadebe ser 5KHz.

    Disee el hardware y software necesarios para hacer un ADC/DAC, quepermita capturar 30 segundos de una seal de audio y permita reproducir lamisma. El diseo debe ser capaz de hacer 10000 muestras por segundo.

    Utilice la modalidad ECP.

    Ing. Antonio Romn V. UNEXPO PUERTO ORDAZ