Está en la página 1de 4

PUERTO PARALELO

Qu es el puerto paralelo?. Tal vez esta pregunta no sea muy difcil de responder para cualquiera que haya usado una computadora alguna vez. Es la ficha o conector que usualmente se sita en la parte trasera del gabinete de la PC, y en donde se conecta la impresora u otros dispositivos, como escneres y dems. Sin embargo, y en especial en aplicaciones electrnicas, se le puede extraer mucho provecho a este medio de comunicacin entre le PC y el exterior, aprovechando con esto las grandes prestaciones de la misma. En primer lugar, conviene aclarar que esta nota est dirigida a todos aquellos cuyos puertos paralelos sean IBM-compatibles, es decir, que poseen un conector DB-25. Esto es extrao, puesto que este conector es el de serie que se utiliza para los interfaces serie. El conector es normalmente hembra (tiene orificios en lugar de patitas) para distinguirlo de los conectores serie que son habitualmente machos y que puede tener tambin la computadora. La Amiga I 000, sin embargo, utiliza un conector DB-25 macho para su interfaz paralelo (por ser algo diferente). A continuacin se muestra una ficha del tipo DB-25, indicndose en ella las diferentes funciones de los distintos pines. Notar que algunas de las lneas tienen una abreviatura convencional que se indica entre parntesis

Las tierras cumplen dos funciones: la primera es que vinculan las tierras de seal de los dos dispositivos que se interconectan de modo que puedan compartir una tierra comn como referencia para la seal. La otra es que, puesto que, la conexin entre los dos dispositivos se realiza a menudo mediante un cable tipo cinta, las tierras (llamadas muchas veces retornos de tierra en este contexto) actan como blindajes de las lneas mas importantes. Como su nombre lo indica, la salida de datos transfiere informacin desde la computadora a un perifrico en paralelo. Esto se hace con ocho bits (un byte) por vez utilizando los terminales 2-9. DO se considera el bit menos significativo (LSB) y D7 el mas significativo (MSB). A este conjunto de lneas se las denomina "salidas de datos". A las otras cuatro lneas de salida (STB, AUTOFD, SLCT IN, IF)) se las denomina "salidas de dilogo" y envan seales especficas al dispositivo, interrogndolo para cumplir su labor. El funcionamiento detallado de este procedimiento escapa a los alcances de este artculo. Finalmente a las cinco lneas de entrada (SEL, PE, OCUPADO, ACK, FAULT), se las denomina "entrada de dilogo" y, junto con las salidas de dilogo, complementan el procedimiento de comunicacin entre la PC y el dispositivo en cuestin. Un detalle importante de las lneas de entrada es que el pin ACK (patilla 10) trabaja con pulso negativo (es decir est negado).

CONTROL Y MANEJO DEL PUERTO PARALELO En definitiva y, en base a lo expuesto arriba, disponemos de 12 salidas y 5 entradas, una de las cuales est negada. Veamos ahora cmo controlarlas y manejarlas. Para tener pleno acceso al puerto paralelo es necesario, en primera instancia, algn compilador, cualquiera es vlido desde ensamblador hasta visual basic o visual C++ pasando por "C" y basic. Sin embargo, y a pesar de la gran diversidad de lenguajes, la sintaxis de las respectivas instrucciones para enviar (escribir) y recibir (leer) datos del puerto es similar. En lo que respecta a escribir la instruccin se compone de dos parmetros que son la direccin y el dato. La direccin es el lugar en dnde va a ser escrito el dato. Existen tres direcciones posibles en los sistemas IBM compatible, en dnde ubicar al puerto paralelo estas son 0x378 (888), el 0x278 y el 0x3BC. La ms frecuentemente utilizada es la primera. Una aclaracin importante es que las direcciones corresponden a las alidas de datos, es decir, en la direccin 0x378 (o cualquiera de las otras), se tiene acceso a los ocho bits denotados desde D0 a D7. Para acceder a los otro cuatro bits de salida se le debe sumar dos unidades a la direccin original 0x37Apor ejemplo) y se tiene acceso a los cuatro bits ms significativos. La segunda parte de la instruccin, es decir, el dato; corresponde a la combinacin de unos y ceros lgicos que se enviarn al puerto. Conviene aclarar que los unos se presentan como + 5 a 3,8 voltios y los ceros como una tensin inferior a los 0,8 V. Adems es conveniente no extraer de cada lnea ms de 5mA, por lo que se hace imprescindible el uso de algn buffer para aislar el puerto. Habitualmente el dato a escribir es representado en hexadecimal por la comodidad que esto conlleva. As, por ejemplo, para poner todos unos en los datos deberamos escribir un 0xFF. Anlogamente para poner todos los bits en cero el nmero sera 0x00. La sintaxis de las instrucciones para la escritura en el puerto en los diversos lenguajes es similar aunque, obviamente, existen ciertas diferencias. Veamos cmo se procede en cada lenguaje. Lenguaje C En "C" se utiliza la instruccin outport, o bien outportb, ambas incluidas en la cabecera "dos.h". Un ejemplo muy simple de cmo escribir un 0xFF en el puerto es el siguiente: #include <dos.h> void main(void) { outport(0x378,0xFF); exit(1); } En este ejemplo simplemente colocamos las salidas D0 a D7 en uno. Esto lo podemos comprobar si dimos dichas salidas con un multmetro, observando que el valor de tensin respecto de masa es de 5V aproximadamente. Lenguaje ENSAMBLADOR Para realizar esta misma tarea en ensamblador utilizamos la instruccin out. El dato a escribir se encuentra en el registro AX (AL, AH) y la direccin en el DX (DL, DH). Mov Mov Out DX,0378h AL,0ffh DX, AL

Lenguaje BASIC En BASIC la instruccin recibe el mismo nombre, es decir, out. la sintaxis es similar que en "C", osea, direccin y dato en ese orden. En este caso se omiten los parntesis y el punto y coma final, propios del lenguaje "C".

Lenguaje VISUAL BASIC Finalmente, veamos cmo controlar el puerto a travs de Visual Basic (cualquier versin de 32 bits). Para ello, necesitaremos tener en nuestro directorio de sistema ("C\windows\system") una librera especial llamada INPOUT32.DLL. Si no la tens pulsa aqu para bajarla. Adems de la mencionada librera se incluye un mdulo (denominado "inpout32.bas") con las correspondientes llamadas a la DLL. Una vez descargada la librera basta agregar el mdulo al proyecto para disponer entonces de la instruccin out, similar a BASIC. CIRCUITO BASICO DE PRUEBA En este momento estamos en condiciones de desarrollar un primer circuito bsico de prueba. ste va a consistir en prender o apagar 8 Leds conectado cada uno a los pines D0 a D7. El diagrama esquemtico es el siguiente:

En donde J1 es la ficha DB-25 del puerto paralelo, R1 a R8 son resistencias de 1/8W de 330 ohms. D1 a D8 son leds. Finalmente IC1 es un SN74AC541 o similar. Una vez montado, este circuito ser de gran utilidad para probar cualquier programa que utilice el puerto paralelo. Las distintas aplicaciones de ste son inmensas. Para leer datos desde el puerto se utiliza otra instruccin que, como la anterior, posee una sintaxis similar en los diversos leguajes. Para BASIC y VISUAL BASIC, se escribe como inp. En "C" este comando recibe el nombre de inport o bien inportb (ambas en la cabecera "dos.h"). Finalmente en ensamblador la intruccin es inp. En todos los casos el nico argumento de la instruccin es la direccin que, en este caso, corresponde con la del puerto ms uno. Recordemos que se disponen 5 lneas de entrada y que una de ellas se encuentra negada. Un circuito tpico para probar la lectura del puerto paralelo es el siguiente: Nuevamente J1 es la ficha DB-25. R1 A R5 son resistencias de 1/8 W 10 kiloohms. S1 a S5 son pulsadores o llaves. Ntese que el circuito tiene en cuenta la lnea negada, lo que "normaliza" la lectura. Tomando como referencia a estos circuitos se puede disear y construir un sin nmero de circuitos y aplicaciones utilizando el puerto paralelo y cualquier lenguaje de programacin. Muchos de estos circuitos los puedes encontrar en la seccin miscelnea. Algunas aplicaciones son: Control de motores paso a paso, sistemas de alarma, generador de seales digital, fuente digital, efectos de luces, efectos sonoros,... y muchos ms.

Como ves la lista es enorme y las posibilidades de este nuevo uso del puerto son infinitas.

También podría gustarte