PROBADOR DE REDES DE COMPUTADORA

En este artículo vamos a "estrenar" el PonyQuark. Explicaremos cómo se construye un programa para cargar en un PIC haciendo referencia al circuito de un probador de instalaciones de redes de computadoras o de cualquier otro tipo de "conjuntos" de cables.

INTRODUCCION
Cuando se realizan instalaciones de PC por multipar telefónico es muy común cometer errores al observar los colores del multipar. Por esa razón todos los instaladores utilizan un probador de instalaciones con un conjunto de 4 leds rojos que se encienden en secuencia y envían esa secuencia de encendidos por el multipar. En el otro lado se coloca un conector que simula a la PC (con cargas resistivas) y que devuelve la señal por el cable de retorno para encender otros 4 leds verdes en la misma secuencia si las conexiones están bien hechas.

Este proyecto se puede realizar perfectamente con compuertas lógicas pero nuestra idea es construirlo utilizando un PIC y aprovechar el proyecto para aprender a programarlo de una forma práctica es decir construyendo algo que sirva.

Yo le aseguro que sirve para algo más que para aquello para lo cual fue creado. En efecto, el uso más masivo es el que tomamos como ejemplo.

Pero como cree que se prueban los cables en una empresa que fabrica mazos de cables para automóviles o como cree que se prueba una instalación de una centralita telefónica privada y como cree que funciona una guirnalda para un arbolito de Navidad, etc., etc.. No sigo, porque ya sé que dentro de su cabecita revolotea un proyecto que nunca construyó por temor a que se lo roben o porque requiere una programación flexible y no lo quiere hacer con compuertas u otros motivos tan valederos como estos.

¿Desde dónde vamos a empezar?
No tendría sentido empezar desde cero porque el autor trató el tema de la programación en diferentes, variados y muy interesantes artículos que aparecieron desde hace mucho tiempo en nuestra revista. Pero no puedo dejar de pensar en que seguramente en los últimos años fueron muchos los lectores que descubrieron a nuestra querida revista y no todos coleccionan los ejemplares que me tienen como autor (todos los números desde hace algo así como 8 años). El autor promete que va a tratar el tema con el director de la revista, para encontrar una solución adecuada que no sea onerosa para el lector y que sea justa para los derechos del autor.

El problema es que la información que necesitamos no está volcada en un libro ni en un CD, solo existe como artículos de la revista. En fin que el que tiene la colección completa vaya releyendo mi serie “Educando al Rey Micro” y todo lo concerniente a la serie sobre el MPLAB (el simulador de microchip para probar y depurar los programas antes de cargarlos en el micro).

No quiero que los lectores crean que esta serie será incomprensible sin esa ayuda. No, de ningún modo. Creo que Ud. la va a entender, solo que no vamos a perder el tiempo explicando lo que ya está adecuadamente explicado. Vamos a ir rápido pero sin dejar de explicar las cosas. Seguramente que no le vamos a enseñar a encender la PC ni a cargar un programa para Windows en el rígido.

¿A quiénes está dirigida esta serie?
Al que quiera aprender a programar teniendo un conocimiento mínimo de programación o sepa programar en otros lenguajes y quiera aprender a programar un PIC. Y a qué nivel pretendemos llegar. No lo sé, todo depende de Ud. amigo lector.

Solo piense que un programador es un profesional universitario de una carrera de las llamadas largas (el ciclo básico más 6 años). Yo no pretendo tanto y además no sé lo suficiente como para encarar semejante desafío.

Pero me animo a sacarlo un programador práctico que quizás no sabe muy bien porque utiliza cierta sentencia pero la usa y el programa funciona.

Por otro lado cuando un reparador trabaja en un equipo convencional no siempre sabe con exactitud cómo funciona un equipo y sin embargo lo arregla.

¿Y qué vamos a programar?
Hay mucho y no vale la pena hacer volar la imaginación aquí. Por ahora vamos a empezar con el probador de instalaciones de PC y luego de ver la reacción de los lectores a través de los email pidiendo algún tema en especial, trataremos de realizar algún listado de prioridades. Los email los debe enviar al director de la revista con copia al autor:

  • Ing. Vallejo: hvquark@ar.inter.net
  • Ing. Picerno: picernoa@fullzero.com.ar
CIRCUITO DE APLICACION
Al diseñar con un PIC, lo primero que se debe tener en cuenta es qué PIC se va a utilizar. La primer pregunta a responder es cuántas patas de los puertos de I/O necesita el proyecto.

Esto implica el uso de un PIC de 8, de 18, de 29 o de 40 patas. Nuestro proyecto debe ser económico y por lo tanto debe funcionar con un PIC de 8 o de 18 patas. El PIC de ocho patas utiliza una pata para el clock otra para fuente y masa y el resto pueden ser entradas y salidas es decir que quedan 5 patas de I/O. Nuestro proyecto, si sólo se lo va a utilizar para probar redes de PC, requiere sólo 4 patas de salida como mínimo, pero nos quedaría un diseño muy específico.

Si se pretende un diseño más flexible debemos pasar a un PIC de 18 patas. Dentro del grupo de 18 patas, se encuentran diferentes tipos de PICs. Existen algunos con entradas analógicas (con conversor A/D) y otros con entradas digitales. Nosotros requerimos sólo entradas digitales.

Luego se pueden elegir micros con memoria regrabable o con memoria permanente. Realmente se debería tener dos micros. Uno regrabable para el trabajo de optimización del programa y otro permanente para el dispositivo final. La opción es por lo tanto evidente: para el trabajo de diseño optamos por el 16F84A y para el dispositivo final su equivalente con memoria de microfusibles el PIC-16C621A.

Luego de elegir el PIC debemos optar por el dispositivo de “clock” y el tipo de “reset”. Para una función de prueba de un par telefónico, parecería que no se requiere precisión en el clock. Y en efecto el modelo básico de probador trabaja a muy baja frecuencia para que se puedan observar los destellos de los leds. Sin embargo es probable que mas adelante se modifique el dispositivo para realizar una prueba de atenuación del par telefónico y entonces se requiera una frecuencia más alta y más estable. Por esa razón optamos por elegir un clock a cristal y una división interna para llegar a la frecuencia correcta de los pulsos de salida. De cualquier modo, si el lector lo desea, puede utilizar un clock a RC modificando el divisor de frecuencia por uso de un programa modificado para RC. Recuerde que en el momento de grabar el PIC debe indicarle al Ponyprog qué tipo de oscilador va a utilizar.

Ahora podemos crear nuestro circuito, que en principio tendrá un conector del tipo telefónico que se puede observar en la figura 1 y un cable multipar como el mostrado en la figura 2.

Observe los colores de los pares normalizados: marrón y blanco; naranja y blanco; verde y blanco y por último azul y blanco. Estos cables se terminan en ambas puntas con los conectores telefónicos machos. A la salida de nuestro dispositivo se colocará un conector hembra que puede ser recuperado de una placa de red en desuso y en la otra punta otro conector hembra con resistores de carga.

En la figura 3 se puede observar un posible circuito de prueba realizado en Workbench Multisim para que Ud. lo pueda probar en su computadora.

El archivo se puede bajar desde nuestra página web con el password “sin189” y el nombre de archivo new0623.msm

Este es un circuito muy simple pero efectivo. En principio posee componentes que sólo son imprescindibles en la simulación. Observe al lado de cada led la existencia de un voltímetro pasa no pasa, representado con círculos. Este círculo se iluminará cuando la tensión sobre el LED supere un voltio. En el circuito real basta con observar el LED encendido. Los resistores R17 y equivalentes son necesarios porque los voltímetros pasa no tienen impedancia infinita y el sistema opera inadecuadamente cuando el voltímetro queda descargado.

El generador de palabras XWG1, los transistores Q1 al Q4 y los resistores R4, R14, R15 y R16 forman parte del PIC. Los resistores R1, R6, R9 y R12 que son los resistores de pull-up del puerto de salida, no son necesarios porque el PIC tiene salida Push- Pull.

Esto significa que el circuito básico sólo requiere a R3, D1 y D2 en la sección local y R2 en el tapón de prueba remoto. Sólo mencionamos una de las ramas del circuito porque las otras son totalmente similares.

Nuestro probador contiene dos secciones bien definidas. Un pequeño gabinete con una batería de 9V que excita a un PIC y un display de 8 LEDS con forma de matriz de 4x2 es decir cuatro filas por dos columnas y un tapón con resistores que se conecta en la otra punta del cable multipar.

El dispositivo básico enciende el led d11 y de inmediato contesta el d12 con otro encendido. Luego enciende el d21 y contesta el d22 y así sucesivamente si todo está bien conectado. Si hay entrecruzamientos de pares las respuestas no ocurren en secuencia y si hay un cable cortado falta una o más respuestas.

El funcionamiento se explica porque en que las salida del PIC se presentan pulsos en una secuencia de un quinto de segundo aproximadamente por paso, cosa que puede observarse encendiendo la simulación y prestando atención a los voltímetros de la izquierda. La corriente que indica la excitación de un determinado par (en nuestro caso el superior) circula por R1, R3 y D2 a masa. Si el para está correctamente conectado también se produce una corriente por R2 y D1 que se presenta al mismo tiempo que por R3 D2. La simultaneidad de los encendidos de una fila nos indica que los cables no están cruzados.

La existencia de un cable cruzado hace que se encienda un LED de la primer columna en una determinada fila y un led en la segunda columna pero de otra fila. Es decir que se debe encender cada led con su compañero de la derecha. Un hilo cortado de ida o de retorno se presenta como un led de la fila de la derecha que no se enciende y un cortocircuito en un par significa que el led de la derecha se enciende excesivamente y el de la izquierda se apaga.

Si el lector siente curiosidad de saber por qué los resistores de carga y el de excitación son de diferente valor para cada par, le aclaramos que se trata de una inteligencia extra que tiene nuestro circuito con respecto a los de la competencia. En nuestro circuito las filas se iluminan de mayor a menor a medida que bajamos en altura.

La primer fila se ilumina mucho, la segunda menos la tercera menos aun y la última tiene el brillo menor si los pares están correctamente conectados.

Pero si los dos cables de un par están confundidos con los dos pares de otro, esta variación gradual se pierde y se produce un salto de brillo que nos avisa del error.

El proyecto didáctico está encarado para que en una versión futura sea el PIC el que tome la decisión de indicar si la instalación está correctamente realizada. Es decir, que debemos pensar todo como para que el dispositivo haga una lectura e indique bien o mal de algún modo (visual o acústico).

Si indica mal, entonces si se debe realizar una medición más laboriosa informándose de que cosa está mal para poder corregirla.

¿Cómo hace el PIC para comparar el brillo de los leds?
Como no puede medir el brillo, le hacemos medir la corriente por el diodo de la primer columna y compararla con la corriente por el led de la segunda columna. Si las corrientes son iguales la instalación está correctamente realizada. Por lo tanto se debe preveer un dispositivo comparador, cuya información de salida se realimente a una futura entrada del PIC.

Del mismo modo el PIC deberá analizar si los leds de columna se encienden en la secuencia correcta por realimentación de señales a otras entradas.

Si el lector desea entender todo este funcionamiento sin ninguna duda le aconsejamos que pruebe el circuito en un Workbench Multisim cortando o cambiando de lugar algún cable. Tenga en cuenta que el brillo del indicador de los voltímetros no cambia en la simulación, pero se puede observar la detección de pares cortados y con un cable intercambiado tal como ocurre en la realidad. Si no posee un Workbench Multisim póngase en contacto con el autor y si lo posee, pero no lo sabe usar, recuerde que el autor escribió una serie de artículos explicando su uso. También puede utilizar un CD y un video sobre el manejo del Workbench 5.1 cuyo autor es el Ing. Vallejo que si bien no es la última versión se utiliza de un modo muy similar a ella.

Ahora que tenemos una idea concreta de que lo debe hacer nuestro circuito básico pasaremos a la etapa de diseño del programa. Es decir un programa siempre se genera luego que el programador captó la realidad.

Una vez que realizó la prueba a mano sin automatización (conectando tensiones y observando el encendido de los leds o realizando una adecuada simulación) se debe encargar de plasmar ese trabajo en un programa para que el PIC lo realice automáticamente con la menor intervención del operador.

El programa se puede realizar en cualquier editor de texto porque sólo se trata de un archivo de texto puro (sin señales ocultas de cambio de renglón o de cambio de página como por ejemplo el “edit” del DOS) pero nosotros preferimos utilizar las herramientas provistas gratuitamente por Microchip, por ejemplo el MPLAB que contiene un editor de texto especializado dentro de un sistema de creación de un proyecto completo.

El MPLAB nos permitirá editar nuestro programa, depurarlo y compilarlo en un archivo del tipo .hex que es el único tipo de archivo que entiende un cargador de PICs. Si lo desea también puede probar el programa en forma simulada, antes de cargarlo realmente en forma física. Puede corregir el modelo simulado y terminar las correcciones luego en la realidad.

Y aunque Ud. no lo crea todo esto es gratuito y si tiene la paciencia de acompañarme durante unos meses Ud. aprenderá a hacerlo con ejemplos simples y entendibles del tipo paso a paso.

Si no tiene instalado el MPLAB puede obtenerlo gratuitamente en www.microchip.com y si no entiende cómo instalarlo consiga uno de mis viejos artículos sobre el tema, en donde le indicamos cómo hacerlo paso por paso. Nosotros vamos a suponer aquí que lo tiene instalado correctamente.

 
EDICION DEL PROGRAMA
Invoque al MPLAB. Aparecerá su pantalla principal. Pique en FILE aparecerá un cartel indicando que no está abierto ningún proyecto e invitándolo a abrir uno. Conteste que quiere abrir un nuevo proyecto y aparecerá una nueva ventana invitándolo a darle un nombre a ese nuevo proyecto.

Nómbrelo como dida01, la extensión la pone automáticamente el MPLAB y es .pjt. Luego de esta pequeña ceremonia aparecerá una inmaculada pantalla que nosotros iremos garabateando de a poco.

Lo primero que se hace es colocarle el nombre al programa recordando que los comentarios deben ser antecedidos de “;” para que el compilador no los lea y los confunda con una sentencia operativa, emitiendo el consiguiente mensaje de error. Posteriormente se coloca el encabezamiento que es una serie de indicaciones con las posiciones de memoria a utilizar y la asignación de variables y literales. Es decir que luego en el programa se deberán cargar valores, esta carga se puede realizar directamente pero se prefiere colocar un nombre en el encabezado y realizar las modificaciones allí primero porque es mas fácil de encontrar y segundo porque así nos aseguramos que realmente el cambio se dirija a todo el programa. Aunque luego le daremos el programa completo le conviene ir escribiendo a mano su propia versión, a modo de excelente práctica. El encabezado y la asignación de puertos se puede observar en la figura 4.

En la primer línea, se define que el puerto B se ubica en la posición de memoria 06; es decir que los valores a salir del PIC se toman de esta posición de memoria. Luego se define la variable ROT que se guarda en 0d y las variables reg1 y reg2 que se guardan en 0e y 0f respectivamente. Por último se definen las constantes o literales Grueso Medio y Fino y se le asignan valores. El programa propiamente dicho comienza después con una sentencia de rigor que consiste en definir la posición de memoria reservada para el reset del dispositivo.

En la siguiente línea se manda el control del programa a la parte del programa con la etiqueta COMENZ. Cada vez que se produzca un reset forzado o automático, el programa comenzará por la posición de memoria 00. Luego nos queda por definir el puerto utilizado como salida. Para hacerlo se hace 0 al registro w (registro de trabajo) y se coloca la sentencia TRIS PTOB. Con esto sabemos que las patas del puerto B son todas seleccionadas como de salida (si el registro w se hubiera cargado con unos sería integramente de entrada). Por el momento estamos definiendo el sistema básico que no requiere puerto de entrada, así que en este punto se terminaron de definir los puertos.

En el próximo artículo completaremos el programa.

 
CONCLUSIONES
En este artículo el autor presenta un dispositivo probador de instalaciones de red. Por supuesto sabemos que el lector seguramente puede tener otras apetencias. Estoy seguro que si presentara de entrada algún dispositivo robotizado, seguramente mi sección sería mejor considerada.

Pero no sería didáctico; probablemente el lector armaría el dispositivo, le cargaría el programa, lo vería funcionar y nada más. Yo pretendo algo más, quiero que aprenda a programar o por lo menos que aprenda a modificar un programa y para eso tengo que ir avanzando lentamente para que el lector no se pierda.

El tema de la programación no es sencillo. Es muy complejo. Si Ud. es un viejo analógico que siempre le escondió al bulto o un joven que no tiene experiencia en programación aquí encontrará la horma de su zapato.

Solo que me tiene que aguantar, porque lo voy a hacer pensar. En principio le pido que no sólo lea los artículos; la experiencia no se transmite por ósmosis. Para aprender a programar tiene que sufrir armando los dispositivos.

Por esa razón es que el director de la revista me pidió: artículos que enseñen a armar más simple a lo más complicado.

Si me siguen posiblemente lleguemos a construir algunos dispositivos robóticos sencillos construidos con motores recuperados de videos y otras yerbas. No tire nada, recuerde que los que vivimos en los llamados países emergentes no podemos darnos el lujo de comprar un kit para armar un robot; tenemos que construirlo con restos.

¿Pero cómo cree que se aprende más?
Revise su taller porque para más adelante vamos a necesitar dos drivers de capstan (en lo posible iguales) para la tracción del robot, un mecanismo de CD para la dirección y dos cilindros de video para las ruedas traseras.

 
Autor: Ing. Alberto H. Picerno
FIGURA 1
 
FIGURA 2
 
FIGURA 3
 
FIGURA 4
 
 
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
 
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
 
 
PROMOCIONES