Sei sulla pagina 1di 10

El puerto paralelo adapta la velocidad del ordenador a la del perifrico (es ms lento), y establece un control de flujo hardware para

que el ordenador no inunde de informacin al perifrico. Mediante el puerto paralelo se puede establecer un mayor control por parte del ordenador sobre el perifrico. En cambio, en el puerto serie la velocidad esta preestablecida y no existe tanto control como con el puerto paralelo. Conexin fsica del puerto El interfaz puerto paralelo se basa en un conector hembra de 25 pines. La tabla 1 muestra las lneas del puerto paralelo y su significado lgico en una conexin PC-impresora: Pin del ordenador 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18-25 Nombre Lnea STROBE D0 D1 D2 D3 D4 D5 D6 D7 ACK BUSY PE SLCT AUTO FEED ERROR INIT SLCT IN GND Significado Indica Transmisin Lnea de datos Bit 0 Lnea de datos Bit 1 Lnea de datos Bit 2 Lnea de datos Bit 3 Lnea de datos Bit 4 Lnea de datos Bit 5 Lnea de datos Bit 6 Lnea de datos Bit 7 Ultimo carcter aceptado Impresora ocupada Impresora sin papel Impresora en ON LINE CR Automtico despus de LF Error en la transmisin de datos Realizar reset de la impresora Activar ON LINE en la imp. Masa

Como se puede observar en la tabla existen una serie de lneas de datos las cuales son unidireccionales, es decir, solo son de salida del ordenador hacia la impresora, y una serie de lneas de control que nos permiten un intercambio de informacin entre el ordenador y el perifrico, pero las lneas de control impresora-ordenador son slo cinco. Aqu se nos presenta un problema, el intercambio de informacin entre ordenadores a travs del puerto paralelo, el cual resolveremos en el siguiente artculo. Programacin del puerto El puerto paralelo se puede programar mediante un acceso a la BIOS del PC o mediante la programacin directa del puerto. Cualquiera de las dos opciones es totalmente correcta pero nosotros nos hemos decantado por la de ms fcil implementacin, la programacin directa. En la programacin directa del puerto, lo nico que realizamos es un acceso a las direcciones de dicho puerto. Estas direcciones son las siguientes : Direccin 3BCh - 3BFh Puerto Puerto paralelo en la tarjeta MDA *

378h - 37Fh 278h - 27Fh

Primer puerto paralelo Segundo puerto paralelo

(*) La tarjeta MDA es una tarjeta de vdeo monocroma en la cual la lgica de vdeo posea tambin un puerto paralelo. Este tipo de tarjetas prcticamente, ya no se utiliza. El acceso a las direcciones del puerto se puede realizar, por ejemplo, mediante la instruccin outportb u outport del lenguaje C. Una vez realizado el acceso a un registro del puerto podremos leerlo y/o escribirlo dependiendo lo que nos permita realizar cada puerto como se puede observar mas adelante. Los registros del puerto El puerto paralelo presenta 3 registros accesibles por el programador : Primer registro del puerto paralelo. Este primer registro es el registro de datos, solo de escritura, en el cual introducimos el byte que queremos que aparezca en las lneas de datos D0-D7 (pies 2-9).

Segundo registro del puerto paralelo. Este registro corresponde al que nosotros podemos llamar registro de control de entrada, debido a que en este registro se activan los bits de ERROR, SCLT, PE, ACK y BUSY, si alguno de los pines a los cuales estn ligados esta en nivel alto (o nivel bajo dependiendo si es o no negado), esto se puede observar en la figura 2. Este registro es solo de lectura, es decir, no se puede variar este registro por software.

Tercer registro del puerto paralelo. Este registro al igual que el anterior corresponde a un registro de control, pero este registro es de salida, es decir, al variar uno de estos bits, tambin se vara el nivel del pin del conector, un ejemplo estara en la seal de -STROBE, si en el registro ponemos este bit a 0, en el pin 1 del conector el nivel ser de 1 (5 V) ( pasa lo mismo en el caso del registro de datos). Este registro se puede leer y variar por Software.

EL PUERTO SERIE

Introduccin El puerto serie de un ordenador es un adaptador asncrono utilizado para poder intercomunicar varios ordenadores entre s. Un puerto serie recibe y enva informacin fuera del ordenador mediante un determinado software de comunicacin o un driver del puerto serie. El software enva la informacin al puerto carcter a carcter, convirtindolo en una seal que puede ser enviada por un cable serie o un mdem. Cuando se ha recibido un carcter, el puerto serie enva una seal por medio de una interrupcin indicando que el carcter est listo. Cuando el ordenador ve la seal, los servicios del puerto serie leen el carcter. Conectores En nuestros PC's, se emplea como conector del interfase serie un terminal macho al que llamaremos DTE (Data Terminal Equipment) que, a travs de un cable conectamos a un perifrico que posee un conector hembra al que llamaremos DCE (Data Comumunications Equipment). En nuestro terminal DTE, tenemos las siguientes conexiones (para un conector DB25): PIN 1 2 3 4 5 6 7 8 20 23 Direcciones El puerto serie utiliza direcciones y una lnea de seales, un IRQ para llamar la atencin del procesador. Adems el software de control debe conocer la direccin. La mayora de los puertos series utilizan direcciones standard predefinidas. stas estn descritas normalmente en base hexadecimal. Cuando se instala un nuevo puerto, normalmente se mueve un jumper o switch para seleccionar un puerto (COM1, COM2, COM3, etc., con lo que se asigna una direccin y una interrupcin usada por la tarjeta del puerto. Las direcciones e IRQ usadas por los puertos serie fueron definidas al disear el ordenador originalmente ; sin embargo, las del COM3 y COM4 no se han definido oficialmente, aunque estn aceptadas por convenios. Las seales son: Direccin COM1 COM2 Interrupcin (IRQ) 3F8 4 2F8 3 Nombre P.G. TD RD RTS CTS DSR GND DCD DTR DSRD Direccin --->DCE -->DTE -->DCE -->DTE -->DTE --->DTE -->DCE <--> Funcin Tierra de seguridad Salida datos DTE Entrada de datos DTE Peticin de emisin DTE Listo para trasmitir DCE CE listo para com. con DTE Masa comn del circuito Deteccin de portadora Seal de terminal disponible Indicador de velocidad de Tx.

COM3 COM4

3E8 2E8

4 3

Se pueden aadir gran cantidad de puertos serie a un PC, ya que existe gran flexibilidad a la hora de definir direcciones no standard, siempre que se encuentren entre el rango 100 y 3FF hexadecimal y siempre que no entren en conflicto con otros dispositivos. Los ordenadores IBM PS/2 usan la Microchannel Architecture, que define las direcciones e IRQs para los puertos desde COM1 a COM8: Direccin COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 Interrupcin 3F8 2F8 3E8 2E8 4220 4228 5220 5228 (IRQ) 4 3 4 3 3 3 3 3

Tipos de puertos serie Hay muchos tipos de puertos serie, que estn definidos normalmente por el tipo de UART (Universal Asynchronous Receiver / Transmitter, Receptor/Transmisor Asncrono Universal) usado por el puerto serie. El UART es un chip del puerto serie que convierte los datos de formato paralelo utilizados por el PC en datos de formato serie para su envo. A continuacin se enumeran los diferentes tipos de UARTs existentes : UART's sin buffer:

Los UARTs sin buffer fueron diseados cuando los mdem ms rpidos transmitan a 1200 bps. No tienen buffer de carcter extra en el UART, por lo que dependen del procesador para borrar cada carcter enviado por el mdem antes de que el siguiente carcter sea enviado. Los UARTs sin buffer comprenden las series 8250, el 16450 y el original 16550. UART's con buffer: Los UARTs con buffer han sido diseados como apoyo a los mdem rpidos de la actualidad. El UART original con buffer es el 16550A, que puede acumular 16 caracteres en un buffer antes de que el procesador lea el dato. Esto hace que el software del PC tenga una mayor facilidad para comunicarse con el mdem, crendose menos errores y una mayor velocidad de transmisin. Otros tipos Pequeos puertos serie Existen algunas tarjetas diseadas especficamente para dotar de un puerto serie de alta velocidad para comunicaciones. Estas tarjetas tienen un microprocesador en su interior que asiste al PC en las comunicaciones. Adems, disponen de un modo de transferencia de datos de alta velocidad que es mucho ms eficiente que el interfase de puerto serie normal. Estas tarjetas necesitan unos drivers especiales para su uso, pero tambin disponen de un interfase standard de puerto serie por motivos de compatibilidades. Hayes ESP-I y ESP-II Hayes ha introducido tres diferentes tipos de "Enhanced Serial Ports", o tarjeta ESP. La original tarjeta ESP (ESP-I) es una tarjeta "full-length 8-bit" con dos 16550A puertos serie y un procesador que tiene en cuenta las transmisiones entre el puerto original y el procesador. Esta tarjeta no es soportada por Windows ni OS/2, por lo que se hace necesario el uso del puerto standard. La tarjeta ESP-II est disponible con un o dos puertos serie. Este producto reemplaz al modelo original y dispone de drivers para diferentes entornos al mismo tiempo,, e incluso reciente Hayes ha introducido un driver para Windows 95. Practical Peripherals High Speed Serial Port HSSP Un Practical Peripheral High Speed Serial Port (HSSP) es una versin mejorada de la tarjeta Hayes ESP-II, y es idntica en su construccin a la ESP-II. Tiene los drivers que la ESP-II. El T/Port El T/Port de Telcor Systems, Inc. es una tarjeta especial que incluye un microprocesador y es utilizada para la comunicacin con un host durante un tiempo elevado. El T/Port mejora el funcionamiento del ordenador, especialmente cuando opera bajo Windows u OS/2. Presenta una emulacin del interfase 16450. Otros tipo de puertos serie Algunos mdem internos utilizan chips con la apariencia de un 16450 UART, pero realmente son procesadores simulando ese UART.

Otros mdem, tambin disponen de un segundo buffer que aumenta la capacidad del principal y ofrece una considerable proteccin ante caracteres perdidos (overrun errors). Definicin de interrupcin Una interrupcin es un estado en el cual el microprocesador detiene la ejecucin de un programa para atender una peticin especial solicitada por el propio programa o por un dispositivo fsico conectado al microprocesador externamente. Las interrupciones fueron creadas para facilitar al programador el acceso a los diferentes dispositivos de la computadora (puertos de comunicaciones, terminales, impresoras, etc.). Ejecucin de una interrupcin Cuando durante la ejecucin de un programa se produce una interrupcin, el microprocesador realiza los siguientes pasos: 1.- Detiene la ejecucin del programa 2.- Almacena los registros CS, IP y Banderas en la pila 3.- Modifica el CS y el IP para que apunten a la direccin donde se encuentra la rutina de interrupcin. 4.- Ejecuta las instrucciones de la rutina de interrupcin. 5.- Restablece usando la instruccin RETI los valores originales de los registros CS, IP y Banderas. 6.- Continua con la ejecucin del programa en el punto donde fue interrumpido. Las rutinas se almacenan en la memoria de la computadora cada vez que sta es inicializada, a esto se le conoce como vector de interrupciones. Tipos de interrupciones El microprocesador puede atender dos tipos de interrupciones: interrupciones por software e interrupciones por hardware. Las interrupciones por software son llamadas desde los programas y son proporcionadas por el sistema operativo (MS-DOS). Existen dos tipos de estas: las interrupciones del DOS y las interrupciones del BIOS (Basic Input Output System o Sistema Bsico de Entrada/Salida). Estas interrupciones son invocadas con la instruccin INT del ensamblador. Por otro lado, las interrupciones por Hardware son proporcionadas por el propio microprocesador y tambin existen dos tipos: interrupciones por hardware internas y las interrupciones por hardware externas. Las interrupciones internas son invocadas por el microprocesador cuando se produce alguna operacin incorrecta, como por ejemplo, un intento de dividir por cero o una transferencia de datos entre registros de diferentes longitudes. Las interrupciones externas son provocadas por los dispositivos perifricos conectados al microprocesador. Para lograr esto, a cada dispositivo perifrico se le asigna una lnea fsica de interrupcin que lo comunica con el microprocesador por medio de un circuito integrado auxiliar, el cual se conoce como controlador programable de interrupciones (PIC). Las computadoras basadas en el microprocesador 8086/8088 cuentan solamente con un PIC, con lo cual pueden proporcionar hasta 8 lneas de interrupcin (IRQ), las cuales son llamadas IRQ0 a IRQ7, por otro lado, las computadoras basadas en el microprocesador 80286 y posteriores cuentan con dos chips controladores, con los cuales pueden proporcionar hasta un mximo de 16 lneas IRQ, las cuales son llamadas IRQ0 a IRQ15. La siguiente es una lista de las interrupciones por software disponibles por el sistema operativo. Interrupciones del BIOS Manejo de dispositivos perifricos

INT INT INT INT INT INT

10H 13H 14H 15H 16H 17H

Manejo Manejo Manejo Manejo Manejo Manejo

de la pantalla. de unidades de disco. de los puertos de comunicaciones(RS232). de cinta magntica. del teclado. de la impresora.

Manejo del estado del equipo

INT 11H Servicios de la lista de elementos de la computadora. INT 12H Servicios para el clculo del tamao de la memoria. Servicios de fecha y hora

INT 1AH Manejo del reloj. Impresin de pantalla

INT 5H Impresin de la informacin contenida en la pantalla. Servicios especiales

INT 18H Activacin del lenguaje Interprete Basic de la ROM. INT 19H Activacin de la rutina de arranque de la computadora. Interrupciones del DOS

INT 20H Termina la ejecucin de un programa. INT 22H Direccin de terminacin. Guarda la direccin donde se transfiere el control cuando termina la ejecucin del programa. INT 23H Direccin de la interrupcin que se ejecuta cuando se presiona Ctrl-Break. INT 24H Manejo de errores crticos. INT 25H Lectura directa de sectores del disco. INT 26H Escritura directa de sectores del disco. INT 27H Terminar un programa y devolver el control al DOS sin borrar el programa de la memoria. INT 21H Esta interrupcin proporciona una gran cantidad de funciones, las cuales deben ser invocadas en conjunto con el registro AH. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Terminacin de un programa. Entrada de carcter con eco. Salida a pantalla. Entrada por el puerto serie. Salida por el puerto serie. Salida a la impresora. E/S directa por pantalla. Entrada directa de carcter sin eco. Entrada de carcter sin eco. Visualizar cadenas de caracteres. Entrada desde el teclado. Comprobacin del estado de entrada. Borrar registro de entrada. Inicializar unidad de disco.

A continuacin se mostrarn algunos programas que utilizan llamadas a diferentes interrupciones por software tanto del BIOS como del DOS. El siguiente programa utiliza la funcin 09h de la interrupcin 21 del DOS para mostrar en la pantalla un mensaje. .COMMENT

* Programa: Int1.ASM Autor: Juan Carlos Guzmn C. Descripcin: Imprime una cadena de caracteres en la pantalla por medio de la funcin 09h de la interrupcin 21h del DOS. * .MODEL tiny .DATA Mensaje db 'Interrupciones 21h del DOS',13,10,'$' .CODE Inicio: Lea DX,Mensaje Mov Ah,09h Int 21h Mov ax,4C00h Int 21h END Inicio END El siguiente programa exhibe dos cadenas de caracteres en la pantalla, pero a diferencia del anterior ste no regresa al DOS inmediatamente, espera a que cualquier tecla sea presionada y entonces termina, para ello se utiliza la funcin 10h de la interrupcin 16h del BIOS. .COMMENT * Programa: Int2.ASM Autor: Juan Carlos Guzmn C. Descripcin: Imprime dos cadenas de caracteres en la pantalla por medio de la funcin 09h de la interrupcin 21h del DOS y despus espera a que una tecla sea presionada, esto por medio de la interrupcin 16h del BIOS con la funcin 10h. * .MODEL tiny .DATA Mensaje db 'Mas interrupciones',13,10,'$' Mensaje2 db 'Presione cualquier tecla...',13,10,'$' .CODE Inicio: Lea DX,Mensaje Mov Ah,09h Int 21h Lea DX,Mensaje2 Mov Ah,09h Int 21h Mov Ah,10h Int 16h Mov ax,4C00h Int 21h END Inicio END Como ltimo ejemplo de esta seccin, se mostrar un programa que utiliza otra funcin del BIOS, pero esta vez para posicionar el cursor en diferentes coordenadas de la pantalla, esto con el fin de tener mejor control sobre el lugar en el que los mensajes son visualizados. .COMMENT * Programa: Int3.ASM Autor: Juan Carlos Guzmn C. Descripcin: Imprime dos cadenas de caracteres en la pantalla, controlando su posicin por medio de la funcin 02h de la Int 10h del BIOS. * .MODEL tiny .DATA

Mensaje db 'Mas interrupciones',13,10,'$' Mensaje2 db 'Presione cualquier tecla...','$' .CODE Inicio: Mov Bh,0 ;Pagina de video 0 Mov dl,30 ;X=30 Mov dh,5 ;Y=5 Mov Ah,02h ;Posicionar cursor Int 10h ; Lea DX,Mensaje ; Mov Ah,09h ;Imprime Mensaje Int 21h ; Mov Bh,0 ;Pagina de video Mov dl,40 ;X=40 Mov dh,24 ;Y=24 Mov Ah,02h ;Colocar cursor Int 10h ; Lea DX,Mensaje2 ; Mov Ah,09h ;Imprimir Mensaje2 Int 21h ; Mov Ah,10h ;Esperar tecla Int 16h ; Mov ax,4C00h ;Terminar programa y salir al DOS Int 21h ; END Inicio END

BIBLIOGRAFIA: http://webcache.googleusercontent.com/search?q=cache:zF1me9rAmO8J:mimosa.pntic.mec.es/~ flarrosa/puerto.pdf+&cd=1&hl=es&ct=clnk&gl=mx http://www.ilustrados.com/tema/3805/Programacion-lenguaje-ensamblador.html http://www.profesormolina.com.ar/tecnologia/control_pc/puertos.htm

Potrebbero piacerti anche