2014/01/24

Puerto paralelo, Linux y C.


El puerto paralelo es una interfaz ya ausente en la mayoría de las computadoras modernas, para los que todavía disponemos de él, podemos usarlo para realizar algunas tareas o en mi caso para practicar C en Gnu/Linux.



Me basare en el típico ejemplo muy difundido en la red, que mediante algunos LED podamos ver el estado del puerto de datos.



Especificaciones.

El puerto paralelo usa tensiones TTL (0V a 5V) de voltaje continuo.

Dispone de 25 pines.




Se puede resumir en los siguientes:
  • Puerto de control.
  • Puerto de estados.
  • Puerto de datos que originalmente solo era salida pero en las ultimas versiones la comunicación es en ambos sentidos.



En algunos computadores se tenia mas de un puerto paralelo.




Circuito de pruebas.

Se puede usar el puerto de control y estado, pero para el ejemplo solo se usara el puerto de dato como salida.


Los materiales son:
  • 8 Diodos LED.
  • 8 Resistencia de 460 ohm de 1/4 de vatio.
  • Puede reciclar un cable paralelo o comprar el adaptador en una tienda electrónica.


El circuito es el siguiente.



En mi caso solde los pines del 18 al 25 para la tierra, ya que en algunos modelos el pin 25 esta abierto.



Para mas precaución se puede usar un buffer o un transeirver y así proteger el puerto de malas conexiones.


74245




Programación.

Usaremos el compilador gcc y un editor de texto en mi caso kate.

Las librerías a usar:
  • sys/io.h para el manejo de los puertos, el cual sustituyo a asm/io.h
  • unistd.h para el manejo de retardos en segundo sleep y usleep en micros segundos.

Creamos un archivo prueba.C y copiamos el siguiente ejemplo.




Compilamos:
$ gcc -Wall prueba.C


Genera el archivo a.out el cual es necesario ejecutarlo con privilegio de root para abrir y trabajar con el puerto paralelo.
$ sudo ./a.out


Consideraciones:
  • Se debe abrir el puerto paralelo para usarlo, igualmente cerrarlo al terminal esto se hace con ioperm.
  • El manejo del puerto se hace mediante outb.
  • Para que nos avise sobre el error cuando lo ejecutamos sin privilegios, se usa perror como en el siguiente ejemplo.






El ejemplo del video es este [UO] [MF].


Si quieres saber mas, como por ejemplo la lectura de datos o el uso del puerto de status, visite las siguiente fuentes.



Fuentes:


5 22XD: Puerto paralelo, Linux y C. El puerto paralelo es una interfaz ya ausente en la mayoría de las computadoras modernas, para los que todavía disponemos de él, podemos u...
< >