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 y dispone de 25 pines.




Se puede resumir en tres tipos:
  • 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 usaran los puertos de datos, 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 y usar un cable de red.


El circuito es el siguiente.



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



Para mayor 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 son:
  • 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
[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...
< >