El Puerto Paralelo IBM-PC para Control


INTRODUCCION:
Desde comienzos del reinado de las PC's el puerto paralelo de comunicaciones se ha encargado de llevar datos hacia la impresora con el fin de generar información escrita. Lo anterior asociado a la facilidad que ofrece a conectar desarrollos externos lo han vuelto la forma preferida de desarrolladores aficionados para conectar sus trabajos.

Básicamente el puerto paralelo original de una IBM-PC puede enviar información a través de los pines de datos y los de control y puede recibir información desde el exterior por medio de los pines de estado. Se emplea una ficha DB25 hembra en la computadora, mientras que al cable le corresponde una DB25 macho. En la impresora hay un conector ligeramente mas grande en tamaño, denominado CENTRONIX cuya hembra se coloca en el equipo y el macho en el cable. 

Originalmente el puerto paralelo sólo permitía el flujo de información en forma unidireccional. Esto quiere decir que los pines conectados como salidas (el caso de los de datos y los de control) sólo podían enviar información hacia el exterior; mientras que los diseñados como entradas (los de estado) sólo podían ingresar información hacia la computadora. 

Con el paso del tiempo nuevos dispositivos, que nada tienen que ver con impresoras, comenzaron a emplear el puerto paralelo como vía de acceso a la computadora. Algunos eran simples dispositivos de paso, que posibilitaban conectar la computadora y la impresora por ese puerto, logrando así "compartir" el conector. Las llaves electrónicas ó HardLock's y las unidades de discos ZIP son sólo un par de ejemplos. Otros, en cambio, requerían que el puerto quedase exclusivamente dedicado a ellos, entre los que se encontraban sistemas de control de potencia, control industrial e interconexión de computadoras ó LapLink. Es por ello que se comenzaron a fabricar plaquetas de expansión capaces de agregar mas puertos paralelos a una misma computadora, hasta un límite inicial de tres.

Con la llegada de las impresoras láser y de los scanners económicos llegaron las nuevas versiones del puerto paralelo. Nos referimos a EPP (o puerto paralelo mejorado) y ECP (o puerto de computadora mejorado). Ambos puertos son bi-direccionales, pero entre el primero y el segundo la diferencia radica en dos puntos: El segundo es capaz de transmitir información a mayor velocidad y es capaz de acceder a la memoria directamente (o DMA). Hubo un intento de IBM por seguir marcando el estándar creando el puerto paralelo PS/2 el cual, como era de esperarse, era bi-direccional, pero el EPP y el ECP lo superaron rápidamente y sin complicaciones. 


Conector DB25 / Asignación de pines

Como la mayoría de los puertos del PC, el paralelo es accesible a nivel software por medio de la BIOS, la cual asigna a éste una dirección de memoria base y dos direcciones suplementarias. La dirección base corresponde al bus de datos del puerto, esto quiere decir que lo que enviemos a esta dirección será exteriorizado por los terminales D0 a D7. El bus de estado se encuentra en la posición base + 1. Cabe aclarar que este bus sólo tiene implementadas cinco posiciones S3 a S7, esta última con estado lógico invertido (cuando no presenta voltaje el estado del bit es uno, mientras que cuando presenta voltaje el estado del bit es cero) y que las posiciones inferiores S0, S1 y S2 no tienen función alguna. Por último, el bus de control dispone de cuatro señales implementadas, en este caso las mas bajas C0 a C3 de las cuales sólo C2 está en estado lógico normal. Las tres restantes (C0, C1 y C3) presentan estados lógicos invertidos, lo que implica que si se pone a uno el bit correspondiente a C0 el terminal no presentará tensión alguna, mientras que si se pone el bit a cero el terminal presentará tensión. 

En el gráfico de arriba los terminales 2 al 9 (simbolizados por el color verde) representan el canal de datos. Los azules el de control y los rojos el de estados. 

Para detectar si un puerto es bi-direccional o no hay una prueba infalible y extremadamente simple: Enviar a la dirección base del puerto paralelo el dato 255. Esto hace que todos los terminales del canal de datos sea energizados. Seguidamente habrá que llevar a masa el terminal 9 del conector por medio de una resistencia de 4.7K. Dejando la resistencia en ese lugar leer el dato presente en el puerto. Si la lectura entrega 255 quiere decir que el puerto es unidireccional, en cambio, si la lectura entrega 127 es señal que el puerto es bi-direccional. En los puertos modernos es posible efectuar esta prueba sin la resistencia limitadora de corriente, pero en los antiguos esto puede causar daños a la electrónica de la placa  de expansión. 

En las placas de vídeo MGP, HGC ó Hércules el puerto paralelo es unidireccional. En la mayoría de las placas multifunción (muy famosas en la época del 386) también predominaban los puertos unidireccionales. En cambio, en la mayoría de los mainbord's modernos que incluyen de base el puerto, éste es bi-direccional y se puede seleccionar si se quiere uni-direcional, bi-direccional, EPP ó ECP; todo esto con cómodos menús desde la utilidad de configuración de la BIOS.

La dirección del puerto paralelo depende en gran medida de donde está alojado. En las placas de vídeo hércules el puerto disponible venía configurado con la dirección 3BC y no era posible asignar otra. En las placas multifunción el puerto comenzó a venir en la dirección 378 y se podía seleccionar como dirección alternativa la 278. En las placas de expansión cuya única misión es agregar puertos paralelos la dirección es seleccionable entre 378, 278 y 3BC. En las placas bases con el puerto incluido de fábrica las direcciones posibles son 378 y 278. Algunos sistemas operativos alternativos presentan dificultades cuando un puerto paralelo es bi-direccional y, a su vez, se encuentra en la posición de memoria 3BC. Por ello, las placas base y las placas de expansión de puertos paralelos bi-direccionales omiten la posibilidad de asignar esa dirección.

A continuación utilizaremos como ejemplo el puerto direccionado en 378, dado que en la mayoría de los casos está allí.

Los niveles de tensión y corriente presentes en el puerto paralelo del PC responden a los estándares de la familia lógica TTL, siendo un estado alto representado por 5V de corriente continua y un estado bajo indicado por la ausencia de tensión (0V). Hablando de corriente, cada pin del puerto paralelo puede proporcionar hasta 10mA en forma segura y 20mA como límite por breves períodos de tiempo. Para ingresar en circuitos integrados lógicos TTL ó CMOS no es necesario "potenciar" la señal, incluso es posible encender un diodo LED. Pero para manejar elementos como relays, motores, lámparas o cargas mayores se hace preciso reforzar la señal y, de ser posible, aislar el sistema. 

RELES:
Una forma de poder manejar cargas potentes y de tensiones distintas a las presentes en la computadora es utilizando relés, similares en su desempeño a los relays que se emplean en los automóviles. Un relé dispone de una o mas llaves mecánicas capaces de cerrar o abrir circuitos eléctricos partiendo de un campo magnético generado por un solenoide o bobina. Nada mejor que gráficos para explicar esto:

En esta escena de la película nuestro reparto está formado por: El relé (ubicado en el centro y formado por la bobina y el interruptor grande), la batería (que no tiene mas de 12V y su corriente no llega al amperio), un interruptor pequeño (que controla la circulación eléctrica entre la batería y la bobina), el generador (el cual provee de 220V y mucha corriente) y una lámpara apagada. Asumimos que el generador se encuentra en marcha, lo que implica que por los cables gruesos (líneas gruesas) disponemos de tensión y corriente en abundancia. También asumimos que la pequeña batería dispone de carga, por lo que en los cables delgados (líneas finas) disponemos de baja tensión y algo de corriente. Aprovechamos el espacio vacío (o aire) que hay entre la bobina y el interruptor grande para trazar una línea imaginaria la cual, del lado izquierdo delimita la circuitería de "control" y, por el lado derecho la de "potencia".

Ahora, un "miembro del público" acciona el interruptor que controla el paso de la corriente entre la batería y la bobina del relé dejándola circular por el circuito. Esto provoca que electrones comiencen a circular por las espiras de la bobina produciendo un campo magnético. Ese campo magnético llega hasta el interruptor de potencia del telé atrayéndolo. Entonces se produce la escena de abajo:

Aquí, los actores son los mismos, pero de alguna forma la lámpara está encendida y el relé está funcionando. Sucede que, al ser atraído por la fuerza magnética el interruptor del relé cerró el circuito formado por la lámpara y el generador, permitiendo la circulación de la electricidad y haciendo que la lámpara brille. La flecha indica la dirección en la que el interruptor se desplazó al ser atraído por la fuerza magnética, pero esa flecha no es mas que aire, siendo imposible que la tensión y la corriente presentes en el interruptor lleguen a la bobina e inversamente que la tensión y corriente presentes en la bobina alcancen el interruptor. De esta forma logramos controlar una carga realmente pesada por medio de baja tensión y baja corriente. Y como el aire que separa la bobina del interruptor en el relé no es conductor logramos, además, aislar los sistemas de control y de potencia.

Sabemos que no se puede conectar un velador o una máquina de café a la computadora, porque no hay suficiente tensión y corriente para hacerlos funcionar. Con el circuito mostrado arriba tenemos un paso hacia lograr eso. Si reemplazamos la lámpara por el velador y la máquina de café y el generador lo sustituimos por un tomacorrientes lograremos controlar el encendido de estos electrodomésticos por medio del relé. Entonces no necesitamos accionar sobre la alta tensión y corriente sino que lo hacemos en la bobina del relé, la cual sólo requiere de algunos voltios y muy poca corriente. Pero esos pocos voltios y esa mínima corriente siguen siendo valores muy altos para el puerto de una computadora. No podemos hacer que los 5 voltios y los 10mA presentes en cada pin del puerto paralelo hagan funcionar la bobina del relé y que esta genere el campo magnético suficiente para atraer el interruptor. Necesitamos hacer un "casting" y que un nuevo "actor" entre en escena.

Analizando el problema determinamos que es exactamente igual que el anterior, o sea que si colocamos un relé mas pequeño que accione el relé grande lograremos solucionarlo.

Error, el mas pequeños de los relés requiere demasiada corriente, por lo que debemos descartar la idea. Entonces recurrimos al uso del transistor.

Dado que explicar el funcionamiento del transistor en detalle excedería los alcances de este informe sólo diremos que usaremos el componente en configuración corte / saturación. Esto implica que cuando está inactivo presenta una alta resistencia entre el emisor y el colector lo que impide que la corriente circule entre la batería y la bobina del relé. Pero cuando está activo (saturando) presenta una muy baja resistencia actuando como un interruptor cerrado que permite el paso de la corriente. El transistor es un elemento de estado sólido, esto implica que su funcionamiento no está ligado a partes mecánicas móviles como sucede con el relé. Gracias a esto el transistor es mucho mas rápido que el relé. Para que el transistor presente un estado de corte (o sea que la corriente no pueda pasar entre emisor y colector) basta con no colocar señal en su base. En cambio, para que el transistor sature (que la corriente fluya a través de su emisor y colector) hay que dar a la base una señal cuya tensión y corriente sean suficientes para colocarlo en ese estado. Afortunadamente un transistor de uso general como el BC548 o el 2N3904 requieren de muy poca corriente en su base para que entre en estado de saturación, por lo que es muy común ver estos componentes asociados a un relé. Pero el diagrama de arriba deja mucho que desear en cuanto al circuito final. La base no se conecta directamente al pin del puerto paralelo, sino que se hace en serie con una resistencia de 10K ohms la cual hace las veces de limitadora de corriente. También hay que tener en cuenta que la bobina del relé, cuando deja de recibir corriente, produce lo que se suele denominar como potencial inverso. Básicamente es una corriente que circula en sentido inverso al que estaba circulando cuando el transistor estaba saturando. Esta corriente inversa es muy peligrosa para el transistor, por lo que se debe colocar un diodo en paralelo con la bobina que deje circular la corriente en un sentido, pero que la cortocircuite en otro. De esta forma el transistor queda protegido contra la corriente inversa producida por el relé al dejar de funcionar. Como el cortocircuito es instantáneo el diodo no corre peligro alguno.

Pero el echo de disponer un transistor no implica de ningún modo poder manejar cualquier relé. Cada transistor tiene sus especificaciones en cuanto a capacidad de tensión y corriente que puede circular a través de su interior. Para manejar relés cuyas bobinas requieran mas corriente de la que un transistor de uso general como los comentados puede manejar hay dos altertativas