El problema del cableado en una red casera
Al instalar o mantener una red de ordenadores resulta muy conveniente disponer de una herramienta que permita comprobar la integridad del cableado. Para eso existen equipos especiales, similares al que hoy proponemos construir.
Hoy día es bastante frecuente que en un hogar haya más de un ordenador, y casi siempre es posible conectarlos en red, ya sea para jugar contra un amigo o simplemente para compartir ficheros o la conexión a internet. Sin embargo, armar la red implica trastear con cables, fichas y plaquetas, además de configurar el software. Uno de los puntos donde suelen aparecer problemas es el cableado en sí: instalamos las placas de red, configuramos todo como corresponde, armamos los cables y los tenemos enchufados, pero los ordenadores no se “ven”. En estos casos, es muy probable que el problema esté en el cableado: alguna ficha RJ-45 puede haber quedado mal puesta, algún conductor puede no estar en la posición correcta o, con mala suerte, el cable puede tener un conductor cortado en su interior. Para encontrar estas fallas proponemos el montaje de un tester de cables UTP, sencillo de realizar, muy económico y con prestaciones profesionales.
Qué es un cable UTP
UTP es una sigla que proviene, como tantas otras en informática, del inglés Unshielded Twisted Pair, que significa “par trenzado sin blindaje”. UTP es un tipo de cableado estructurado que consiste en 4 pares de conductores de cobre, utilizado principalmente para el cableado de redes interiores de comunicaciones. En su interior, los pares no poseen blindaje (malla exterior). Cada par es un conjunto de dos conductores aislados con un recubrimiento plástico y trenzados sobre sí mismos, de modo que las señales transportadas por ambos conductores, que son de la misma magnitud y sentido contrario, no generen interferencias en los otros pares ni resulten sensibles a sus emisiones.
El hecho de que no tenga blindaje tiene ventajas y desventajas. Por un lado, el cable es más económico, más flexible, más delgado y más fácil de instalar; además no necesita mantenimiento, ya que ninguno de sus componentes precisa ser puesto a tierra. Pero también ofrece menor protección frente a interferencias electromagnéticas, aunque la protección que brinda es suficiente para la mayoría de las aplicaciones.
En el extremo del cable se coloca una ficha plástica que realiza la conexión eléctrica entre el cable y la placa de red; esa ficha se llama RJ-45. Existen dos formas de armar un cable de red con este tipo de conductor: “normal” o “cruzado”. En la conexión normal, cada pin de una ficha se une al mismo pin de la ficha del otro extremo, como se ve en la imagen de más abajo, y se utiliza para conectar un ordenador a un hub o switch. La conexión cruzada permite conectar dos ordenadores entre sí sin necesidad de hub; el cruzamiento une los pines correspondientes a la transmisión (TX) de un ordenador con los de recepción (RX) del otro, y viceversa. El dispositivo que vamos a construir permite verificar ambos tipos de conexiones.
El proyecto: emisor y receptor
Para nuestro primer proyecto con un microcontrolador hemos elegido al ya veterano PIC 16F84A, del que existen literalmente millones de páginas de información disponibles. Se trata de un microcontrolador con 2K de RAM interna, en la que se alojará el programa que hará funcionar el proyecto, y consta de dos puertos de comunicaciones: uno de 5 E/S (el PORT A) y otro de 8 pines de E/S (PORT B).
El tester constará de dos partes. La primera, equipada con el 16F84A, genera una serie de señales que se introducen por uno de los extremos del cable; la segunda, con una serie de LEDs, se conecta en el otro extremo para recibir los pulsos generados por la primera e indicar el estado del cable. Las fallas que detecta incluyen conductores conectados a pines incorrectos, conductores cortados o cortocircuitos en el interior del cable.
La figura de más abajo muestra el esquema eléctrico del emisor, que se basa casi exclusivamente en las funciones del microcontrolador. Este genera un tren de pulsos que sale al exterior por los pines del puerto B (patas 6 a 13), en un orden determinado. El orden varía según el tipo de cable bajo test: si es un cable normal, donde los conductores no están cruzados, la secuencia es 1, 2, 3, 4, 5, 6, 7 y 8; si queremos comprobar un cable cruzado, los pulsos se introducen en el orden 3, 6, 1, 4, 5, 2, 7 y 8.
Existen dos pulsadores para elegir qué tipo de cable se someterá al test y dos LEDs que indican visualmente si se está probando uno u otro. El programa incorporado en el chip, que veremos más adelante, genera los pulsos para cada caso según el pulsador presionado. Una vez elegido un modo, el programa genera indefinidamente el tren de pulsos correspondiente hasta que se pulse uno de los pulsadores: si es el mismo que estaba seleccionado, la secuencia se detiene; si es el otro, comienza la secuencia para el otro tipo de cable. Un interruptor permite apagar el equipo cuando no se usa. La alimentación proviene de una pila de 9 voltios, con un regulador de voltaje LM7805 para lograr los 5 voltios con los que funciona el microprocesador. Un cristal de cuarzo de 4 MHz y dos pequeños condensadores cerámicos generan los pulsos de reloj necesarios para que el microcontrolador funcione. Una serie de resistencias entre el PIC y el cable bajo test se encarga de proveer la corriente adecuada a los LEDs del circuito receptor.
El receptor consta simplemente de una serie de LEDs con otra resistencia en serie y un diodo de protección en antiparalelo que lo protege de la corriente inversa. Este receptor va encendiendo los LEDs del 1 al 8 con una cadencia de aproximadamente 1 Hz.
El circuito impreso
Para el circuito impreso, seguiremos las indicaciones de la nota mencionada: imprimimos la imagen del circuito impreso que aparece más abajo y lo sometemos a todos los pasos del proceso ya explicado. Una vez que tengamos las placas listas (podemos hacerlas a la vez y cortarlas al terminar todos los pasos), haremos los agujeros con una broca de 0,75 mm, teniendo cuidado de no quebrarla, ya que son sumamente frágiles.
Comenzaremos soldando los puentes; luego seguiremos con las resistencias, los diodos, los pulsadores, el clip de la batería, etc. Debemos tener cuidado de no colocar en forma errónea los componentes que tienen polaridad, como la batería, el regulador de voltaje y los diodos, ya que pueden destruirse. Conviene usar como guía de montaje las fotos que acompañan el artículo para evitar errores. Las fichas RJ-45 hembras, una en cada placa, conviene pegarlas al pertinax con un pegamento de la familia de los cianoacrilatos, para que al enchufar o desenchufar los cables a testear el esfuerzo no recaiga sobre las soldaduras. Por último, se puede aplicar barniz en aerosol del lado de las pistas para proteger el cobre de la corrosión y conseguir una caja plástica para alojar cada placa, cuidando de dejar agujeros para las fichas, los LEDs y los pulsadores.
El programa del microcontrolador
La versión de BASIC utilizada es la correspondiente al PIC Simulator IDE, pero es fácilmente adaptable a otros dialectos BASIC, como PROTON, PROTON+ o MikroBasic, entre otros. Muchos de estos entornos disponen de versiones gratuitas de evaluación que, con algunas limitaciones, servirán para compilar este sencillo programa. Una vez compilado, se generará un archivo con extensión .HEX que deberemos introducir en el microcontrolador mediante un programador como el JDM, cuya construcción es muy simple y ya se explicó en NeoTeo.
El programa en sí no presenta demasiadas complicaciones y se ha intentado comentar el código para que sea fácilmente entendible, e incluso modificable por el lector. El siguiente es el código fuente:
'----- CONFIGURO PUERTOS-----
'Configuro el portA:
TRISA.0 = 0 'Salida (LED 1)
TRISA.1 = 0 'Salida (LED 2)
TRISA.2 = 1 'Entrada (Pulsador 1)
TRISA.3 = 1 'Entrada (Pulsador 2)
TRISA.4 = 0 'Salida (NO USADO)
'Configuro el portB:
TRISB.0 = 0 'Salida
TRISB.1 = 0 'Salida
TRISB.2 = 0 'Salida
TRISB.3 = 0 'Salida
TRISB.4 = 0 'Salida
TRISB.5 = 0 'Salida
TRISB.6 = 0 'Salida
TRISB.7 = 0 'Salida
'------VARIABLES Y CONSTANTES------------------
'Defino constantes:
Symbol led1 = PORTA.0 'LED 1
Symbol led2 = PORTA.1 'LED 2
Symbol p1 = PORTA.2 'Pulsador 1
Symbol p2 = PORTA.3 'Pulsador 2
'Variables
Dim aux As Word
Dim i As Byte
Dim flag As Bit
aux = 0
flag = 0
i = 0
'----COMIENZA EL PROGRAMA EN SI-----
'Apago todos los leds del emisor
led1 = 0
led2 = 0
loop: 'Bucle principal del programa
'Veo si se pulso algun boton
If p1 = 1 Then 'Presionaron el pulsador 1
Gosub cablenormal
Endif
If p2 = 1 Then 'Presionaron el pulsador 2
Gosub cablecruzado
Endif
Goto loop 'Repite eternamente
End
cablenormal: 'Enciende Leds en orden 1-2-3-4-5-6-7-8
led1 = 1 'Enciendo el LED1 (indicador de funcion)
aux = 1 'Led Encendido: el 8
flag = 0 'Asumo el otro boton sin pulsar
While flag = 0 'mientras No se pulse el otro, funciona.
If aux = 1 Then 'Enciendo LED 1
PORTB = %10000000
Endif
If aux = 2 Then 'Enciendo LED 2
PORTB = %01000000
Endif
If aux = 3 Then 'Enciendo LED 3
PORTB = %00100000
Endif
If aux = 4 Then 'Enciendo LED 4
PORTB = %00010000
Endif
If aux = 5 Then 'Enciendo LED 5
PORTB = %00001000
Endif
If aux = 6 Then 'Enciendo LED 6
PORTB = %00000100
Endif
If aux = 7 Then 'Enciendo LED 7
PORTB = %00000010
Endif
If aux = 8 Then 'Enciendo LED 8
PORTB = %00000001
aux = 0 'Pongo a uno para reiniciar la cuenta
Endif
aux = aux + 1
For i = 1 To 255 '255
WaitMs 1 'espera 1/1000 de segundo.
If p2 = 1 Then 'Se pulso el otro boton
flag = 1 'Pongo el flag para salir de la rutina
PORTB = %00000000 'Apago todos los leds
led1 = 0 'Apago el led "piloto"
WaitMs 500 '500 milisegundos para darle tiempo a soltar el boton
i = 255
Endif
Next i
Wend
Return
cablecruzado: 'Enciende Leds en orden 1-2-4-3-6-5-7-8
led2 = 1 'Enciendo el LED2 (indicador de funcion)
aux = 1 'Led Encendido: el 8
flag = 0 'Asumo el otro boton sin pulsar
While flag = 0 'mientras No se pulse el otro, funciona.
If aux = 1 Then 'Enciendo LED 3
PORTB = %00100000
Endif
If aux = 2 Then 'Enciendo LED 6
PORTB = %00000100
Endif
If aux = 3 Then 'Enciendo LED 1
PORTB = %10000000
Endif
If aux = 4 Then 'Enciendo LED 4
PORTB = %00010000
Endif
If aux = 5 Then 'Enciendo LED 5
PORTB = %00001000
Endif
If aux = 6 Then 'Enciendo LED 2
PORTB = %01000000
Endif
If aux = 7 Then 'Enciendo LED 7
PORTB = %00000010
Endif
If aux = 8 Then 'Enciendo LED 8
PORTB = %00000001
aux = 0 'Pongo a uno para reiniciar la cuenta
Endif
aux = aux + 1
For i = 1 To 255 '255
WaitMs 1 'espera 1/1000 de segundo.
If p1 = 1 Then 'Se pulso el otro boton
flag = 1 'Pongo el flag para salir de la rutina
PORTB = %00000000 'Apago todos los leds
led2 = 0 'Apago el led "piloto"
WaitMs 500 '500 milisegundos para darle tiempo a soltar el boton
i = 255
Endif
Next i
Wend
Return
No será difícil para el aficionado adaptar el programa para que los LEDs enciendan más o menos rápidamente, o para que las secuencias de pulsos generadas sean distintas. Esto último es especialmente útil si se quiere utilizar el tester para comprobar otros tipos de cables. De hecho, simplemente cambiando las fichas hembras RJ-45 por RJ-11 se pueden comprobar cables telefónicos. Quizás algún lector se anime a modificar la placa de circuito impreso para incluir ambas fichas y lograr una herramienta multiuso. Por lo pronto, hemos querido mantener este montaje lo más simple posible, de modo que sirva como “primer proyecto” con microcontroladores, pero alentamos a los lectores a introducir los cambios que crean convenientes.
Uso del tester
El funcionamiento del dispositivo no puede ser más sencillo: se toma el cable a probar y se conecta el emisor en un extremo y el receptor en el otro. Mediante los pulsadores del emisor se selecciona el tren de pulsos para el tipo de cable que queremos probar; los LEDs del emisor indican cuál fue la elección para no cometer errores. Una vez puesto en marcha el emisor, hay que mirar los 8 LEDs del receptor. Se pueden dar algunas de estas condiciones:
- Los LEDs se encienden en orden, del 1 al 8, y luego vuelven a comenzar continuamente: el cable es del tipo seleccionado y funciona correctamente, sin conductores cortados ni cortocircuitos. Si la red presentaba problemas, habrá que buscar en otra parte, porque el cable está bien.
- Los LEDs se encienden salteados: hay dos alternativas. O bien el cable bajo test es del tipo incorrecto (situación que se puede comprobar fácilmente cambiando desde los pulsadores del emisor el tren de pulsos generado), o bien alguno o algunos conductores están cableados de forma errónea. En este caso hay que revisar las fichas y buscar dónde está el error.
- Algún o algunos LEDs no se encienden: se produce cuando uno de los conductores está cortado o mal puesto en la ficha y el pulso emitido no llega al LED correspondiente. Revisando las fichas se puede solucionar, o cambiando el tramo de cable.
- Algunos LEDs encienden a la vez: en un cable en perfectas condiciones no puede darse el caso de que dos o más LEDs enciendan simultáneamente. Si ocurre, es porque hay un cortocircuito que ha unido eléctricamente dos o más conductores. Esta falla puede estar en la ficha o en el interior de uno de los cables.
Como se puede ver, el manejo y la interpretación de los estados de los cables testeados no puede ser más sencilla.
Lista de componentes
Receptor
- 8 resistencias de 1K, 1/4 de watt.
- 8 diodos 1N4148.
- 8 LEDs de color a elección.
- 1 ficha UTP hembra para circuito impreso.
Emisor
- 20 resistencias de 1K, 1/4 de watt.
- 2 LEDs de color a elección.
- 2 pulsadores para circuito impreso.
- 1 regulador de tensión 7805.
- 1 ficha UTP hembra para circuito impreso.
- 1 zócalo para integrados de 18 pines.
- 1 PIC16F84A.
- 1 Xtal de 4 MHz.
- 2 condensadores de 22pf.
Conclusión
Toda la teoría vista en las notas sobre componentes, microcontroladores o la explicación de cómo construir un circuito impreso ha servido de base para realizar este proyecto, que es el primero de una serie que nos proponemos publicar. Quizás la parte más compleja, sobre todo para el principiante, sea la programación del microcontrolador; sin embargo, si se construye el programador visto también aquí, esa tarea no reviste ninguna dificultad, y tener el programador a mano será útil para muchos artículos futuros.
Más información
- Más información
- Más información
- Más información
- Más información