You are on page 1of 5

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

Congreso 2010, Pgina 1




IPreset
Monitoreo y control automtico de equipos IP


Nicols Mariano Morini
UTN Facultad Regional Paran / BM Soluciones S.R.L.
Argentina
Correo-e: nicolasmorini@gmail.com
Abstract. Este proyecto consiste en el diseo e implementacin de un dispositivo capaz de conectarse a
una red TCP/IP mediante Ethernet para monitoreo y control de otros equipos conectados a la misma
red. El objetivo es controlar la fuente de alimentacin de los equipos monitoreados para que ante la
eventual falla o cuelgue de alguno de ellos, se lo pueda, por ejemplo, reiniciar. El monitoreo se
realiza mediante solicitudes de eco a travs del protocolo ICMP y el control de la fuente de
alimentacin se realiza mediante dos relays, uno para corriente continua y otro para corriente
alterna. Tambin cuenta con un registro de eventos (log), notificaciones por e-mail, servidor HTTP,
cliente de DNS dinmico, cliente NTP y cliente TFTP. El servidor HTTP permite alojar pginas web
que muestran informacin de estado y permiten la configuracin del dispositivo. El cliente TFTP
permite la actualizacin del firmware remotamente.

1 Introduccin
Las redes de comunicaciones actuales estn
compuestas por una variedad muy amplia de equipos
electrnicos. Es un problema comn que dichos
equipos en determinados momentos dejen de
funcionar correctamente o como se suele decir, se
cuelguen.
Las dos principales causas de estas fallas
son: problemas relacionados con ruido en la fuente de
alimentacin y sobrecarga computacional.
En dichos casos, los cuelgues no son fallas
permanentes, sino que en la mayora de los casos se
solucionan reiniciando el equipo en cuestin. El
reinicio consiste simplemente en desconectar el
dispositivo de la fuente de alimentacin, esperar unos
segundos y volver a conectarlo.
El reinicio manual significa una prdida de
tiempo y, en algunos casos, econmica inaceptable.
Es ah donde nace este proyecto, que se bautiz como
IPreset.
El objetivo es el diseo e implementacin de
un dispositivo capaz de conectarse a una red TCP/IP
mediante Ethernet para monitorear de forma
permanente los equipos conectados a la red y, ante
una eventual falla, actuar en consecuencia. Con esto
se logra una respuesta casi inmediata en presencia del
problema planteado.
Uno de los requisitos de diseo es la
estabilidad del dispositivo, ya que su principal
funcin es la de detectar y resolver el mal
funcionamiento de otros equipos. Esto se logr
utilizando una fuente de alimentacin en dos etapas,
adecuadamente filtrada. Tambin se colocaron
capacitores de desacople en todos los pines de
alimentacin del microcontrolador y memoria
utilizados. Por ltimo el diseo del firmware es tal
que ante un reinicio inesperado del microcontrolador,
el mismo retoma su ejecucin en el estado previo al
reinicio.
Otras caractersticas importantes son: la
capacidad de actualizar tanto el firmware como la
pgina web remotamente a travs de la red TCP/IP a
la cual est conectado; llevar un registro histrico de
eventos para anlisis posterior; enviar notificaciones
por e-mail ante eventos; utilizar relays en
configuracin normal cerrado, para que en caso de
falla del IPreset no se altere el normal
funcionamiento de los dems equipos de la red.
Cabe destacar que este proyecto se
desarrolla como proyecto final de la carrera
ingeniera en electrnica de la Facultad Regional
Paran de la UTN y en conjunto con la empresa BM
Soluciones S.R.L. [1] de la ciudad de Paran. El
mismo se encuentra en su etapa de prueba final.


2
2 Diseo e implementacin
A continuacin se muestra un diagrama
esquemtico del dispositivo y se describen sus
principales componentes:
2.1 Microcontrolador
El sistema est basado en un
microcontrolador PIC18F67J60 de la empresa
Microchip [2]. Sus caractersticas ms significativas
para este proyecto son las siguientes:
Arquitectura de 8 bits optimizada para
programacin en lenguaje C.
Entorno de desarrollo gratuito.
128KB de memoria de programa (flash).
4KB de memoria de datos (RAM esttica)
Conversor analgico-digital de 10 bits de
resolucin.
Controlador Ethernet compatible con IEEE
802.3, con MAC y 10Base-T PHY integrados y un
buffer de transmisin y recepcin de paquetes de
8KB implementado como memoria RAM esttica.
Microcontrolador
Microcontrolador
Memoria
EEPROM
Memoria
EEPROM
Conector
8P8C (RJ45)
Conector
8P8C (RJ45)
Entrada
AC
Entrada
AC
Entrada
DC
Entrada
DC
Salida
AC
Salida
DC
Relay
AC
Relay
AC
Fuente de
alimentacin
Fuente de
alimentacin
Relay
DC
Relay
DC
ADC

Fig.1: Esquema del IPreset
Se utiliza el conversor analgico-digital del
microcontrolador para medir el nivel de tensin
continua de entrada.
2.2 Firmware
Para el desarrollo del firmware se utiliz el
compilador MPLAB C Compiler for PIC18 MCU [3]
bajo el entorno de desarrollo MPLAB IDE de
Microchip [4]. Tambin se utiliz el Stack TCP/IP
v5.25 el cual forma parte del Microchip Application
Libraries v2010-08-04 [5].
Debido a la flexibilidad del Stack TCP/IP
provisto por Microchip, slo se implementaron los
protocolos que se utilizan, liberando de este modo
memoria de programa para la aplicacin principal.
El Stack implementado es el siguiente:
TFTP
NBNS
SNTP SMTP
DDNS HTTP
DNS
UDP TCP
ICMP
IP
ARP
ETHERNET
Fig.2: Stack TCP/IP implementado.
El protocolo ICMP se utiliza para permitir al
dispositivo responder a solicitudes de eco (ping) y a
su vez enviar solicitudes de eco a los equipos
monitoreados.
El protocolo SNTP se utiliza para
sincronizar la hora del reloj interno con un servidor
NTP a travs de la red.
El protocolo NBNS permite que el equipo
sea accedido a travs de un nombre de host adems
de su direccin IP.
El protocolo TFTP permite actualizar el
firmware remotamente.
El protocolo HTTP permite alojar un sitio
web, donde se muestra informacin de estado y se
permite la configuracin del equipo.
El protocolo SMTP permite enviar
notificaciones por e-mail ante determinados eventos.
Tambin permite las notificaciones va SMS en caso
de que el proveedor de telefona celular cuente con
un Gateway adecuado.
El firmware desarrollado se puede resumir a
travs del diagrama de flujo de la Figura 3. Los
bloques que lo componen son:
Inicializar hardware: se encarga de
configurar el oscilador, los puertos de entrada salida
y los perifricos utilizados del microcontrolador.
Inicializar stack TCP/IP: inicializa la base
de tiempo utilizada por el stack, como as tambin los
diferentes clientes y servidores utilizados. Adems
configura las direcciones MAC, IP, mscara de
subred, puerta de enlace y servidor DNS.
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
Congreso 2010, Pgina 3

Inicializar stack TCP/IP
Inicializar hardware
Tareas del stack
Inicializar aplicacin principal
Tareas de aplicacin principal
Tareas de protocolos

Fig.3: Diagrama de flujo principal
Inicializar aplicacin principal: aqu se
inicializan todas las estructuras y variables utilizadas
por la aplicacin principal.
Tareas del stack: esta es una funcin
provista por el Stack TCP/IP que se debe ejecutar
peridicamente. Se encarga de las caractersticas de
conectividad de bajo nivel, como lo son el manejo de
las capas MAC y fsica del controlador Ethernet.
Tareas de protocolos: es otra funcin
provista por el Stack. Se encarga de realizar todas las
tareas correspondientes a los protocolos utilizados.
Funciona como un nexo entre las tareas de la
aplicacin principal y las tareas del Stack.
Tareas de aplicacin principal: esta
funcin ejecuta las tareas propias de la aplicacin,
como el control de las fuentes de AC y DC y el
monitoreo de los equipos de red configurados.
Se debe remarcar que las funciones que
conforman el Stack TCP/IP estn implementadas
como mquinas de estado, permitiendo una ejecucin
multitarea cooperativa. Es por esto que en cada ciclo
del bucle principal se debe llamar a las funciones
correspondientes a las tareas del Stack y a las tareas
de protocolos para permitir su correcto
funcionamiento.
Las funciones correspondientes a la
aplicacin principal tambin se deben disear de esta
forma, de modo que no bloqueen la ejecucin
peridica de las funciones correspondientes al Stack.
Las tareas que ejecuta la aplicacin principal
se resumen en el diagrama de flujo de la Figura 4.
Tarea de control de DC
Tarea de control de AC
Verificacin de conexin a Internet
Tarea de control de leds
Tarea de monitoreo
Tarea de envo de e-mail

Fig.4: Diagrama de flujo de la aplicacin principal
Tarea de control de AC y DC: son las
funciones que controlan los pines de entrada/salida
conectados a los relays. Su funcin ms importante es
permitir suspender alguna de las fuentes de
alimentacin temporalmente sin bloquear la
ejecucin de las dems tareas.
Tarea de control de leds: controla el
encendido, apagado y parpadeo de los leds
indicadores de estado.
Verificacin de conexin a Internet:
verifica peridicamente que el dispositivo cuenta con
conexin a Internet y lo muestra en la pgina de
estado.
Tarea de envo de e-mail: se encarga de
armar el e-mail correspondiente con los datos del
evento que se est notificando e inicia el envo del
mismo.
Tarea de monitoreo: es la tarea ms
importante de la aplicacin. Se encarga de realizar el
monitoreo de los equipos configurados, actuar en
caso de falla, registrarlo en el log y notificarlo por e-
mail.
La Figura 5 se presenta el diagrama de
estados resumido de la tarea de monitoreo.

Fig.5: Diagrama de estados de la tarea de monitoreo

4
El punto de inicio es el estado retardo
inicial, el cual espera un tiempo determinado antes de
comenzar con el monitoreo. A continuacin se pasa
al estado de seleccin de host a monitorear. Aqu se
verifica la configuracin de los mismos y el estado
general del dispositivo. Luego se enva una solicitud
de eco a la direccin IP correspondiente. El siguiente
estado analiza la respuesta a la solicitud de eco
enviada y en base a esto procede a realizar la accin
configurada en caso de falla o vuelve al estado de
seleccin de host. En caso de que se haya realizado
una accin, se vuelve al estado de retardo inicial.
2.3 Memoria
Se utiliza una memoria EEPROM
25LC1024 de la empresa Microchip [6]. La misma
cuenta con interfaz de comunicacin serie SPI y
1Mbit de capacidad (128KBytes).
Esta memoria no voltil se utiliza para
almacenar la configuracin del equipo, el registro
histrico de eventos (log) y la pgina web.
2.4 Conector 8P8C (RJ45)
Es un conector RJ45 hembra con
encapsulado metlico. Cuenta con los
transformadores de adaptacin y aislacin de lnea y
los leds correspondientes integrados.
2.5 Relays
Se utilizan dos relays electromecnicos
doble inversor para comandar las dos interfaces de
alimentacin disponibles. Se los utiliza en una
configuracin normal cerrado para que en caso de
falla del IPreset no se interrumpa la alimentacin de
los dems equipos.
2.6 Fuente de alimentacin
La fuente de alimentacin consta de dos
etapas. La primera utiliza un regulador conmutado, el
LM2575T-5.0 [7], de la empresa National
Semiconductors. En cascada con el mismo se conecta
un regulador lineal de la empresa Microchip, el
1825S33 [8], el cual provee una tensin de salida
regulada de 3.3V para alimentacin de toda la lgica.
La fuente se encuentra filtrada y estabilizada
segn las sugerencias de los fabricantes.

3 Funcionamiento
3.1 Configuracin inicial
En su configuracin por defecto el equipo
tiene una direccin MAC y una direccin IP
preestablecidas, las cuales deben ser configuradas
apropiadamente en su primer uso.
Para realizar dicha configuracin se debe
ingresar al equipo a travs de la direccin IP por
defecto mediante cualquier navegador web.
Para acceder a la interfaz web se requiere de
un nombre de usuario y de una contrasea. Existen
dos usuarios, admin, el cual posee control total sobre
el equipo, y user, que solamente tiene permitido
visualizar la informacin de estado y el registro
histrico.
Una vez en la interfaz web, se puede realizar
la configuracin de red (MAC, IP, mscara de
subred, puerta de enlace, servidor DNS), la
configuracin de DNS dinmico (soporta los
servidores dyndns, no-ip y dns-o-matic), la
configuracin de notificaciones por email (se requiere
de un servidor SMTP propio), la configuracin de
fecha y hora (en caso de que no se tenga acceso al
servidor NTP para sincronizacin automtica) y el
cambio de contraseas de acceso para los usuarios
admin y user.
Una vez realizadas todas estas
configuraciones, se procede a configurar el monitor.
El mismo permite establecer el tiempo de espera
entre el inicio del sistema y el comienzo del
monitoreo, como as tambin el tiempo que dura un
reset.
Finalmente se puede configurar los equipos
a monitorear. Dicha configuracin permite
especificar:
el estado del dispositivo como habilitado
(se lo monitorea activamente) o deshabilitado (se
almacena la configuracin pero no se lo monitorea);
la direccin IP del equipo a monitorear
(debe pertenecer a la misma subred que el IPreset);
el perodo entre solicitudes de eco en
segundos;
la cantidad de fallas consecutivas que
deben ocurrir antes de realizar la accin configurada;
el tipo de falla que se monitorea, que
puede ser No responde (cuando el equipo no
responde a las solicitudes de eco) o Retardo excesivo
(cuando el equipo no responde o lo hace con un
retardo excesivo a las solicitudes de eco);
el mximo retardo de respuesta permitido
(en milisegundos);
la cantidad de acciones consecutivas
permitidas antes de suspender temporalmente al
equipo en cuestin;
la fuente de alimentacin sobre la que se
actuar (AC, DC o ambas);
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
Congreso 2010, Pgina 5

y el tipo de accin a realizar (reset,
encendido o apagado). Se permite configurar hasta 10
equipos a monitorear.
Una vez realizadas todas las configuraciones
el IPreset las almacena en la memoria EEPROM
externa.
3.2 Monitoreo
La aplicacin principal se encarga de enviar
solicitudes de eco a los equipos monitoreados con la
frecuencia configurada. Cuando algn equipo alcanza
la cantidad de fallas consecutivas mxima, se procede
a realizar la accin configurada, escribir una entrada
en el registro (log) y en caso de estar habilitado,
enviar una notificacin por e-mail del evento.
En caso de que algn equipo falle
repetidamente y provoque un cierto nmero de
acciones consecutivas, se proceder a suspenderlo
temporalmente, lo que significa que se lo deja de
monitorear. Esto se hace para evitar actuar
constantemente sobre las fuentes de alimentacin en
caso de mala configuracin o de que el equipo
monitoreado haya dejado de funcionar
permanentemente. Este estado suspendido se puede
reestablecer al estado de habilitado o deshabilitado
desde la interfaz web o reiniciando el IPreset.
Se cuenta con un botn de reset del equipo.
Al presionar el mismo por un tiempo menor a 5
segundos, se reinicia el microcontrolador. Si se
presiona por un tiempo mayor a 5 segundos, se
reinicia el microcontrolador y se carga la
configuracin por defecto, es decir, se cargan las
direcciones MAC e IP por defecto y se elimina toda
la configuracin de los equipos monitoreados.

4 Comentarios finales
El proyecto se encuentra en su etapa de
prueba final. Durante su desarrollo se armaron dos
prototipos, el ltimo de los cuales se prob en campo
durante dos semanas, obtenindose muy buenos
resultados y permitiendo detectar y corregir algunos
errores presentes en el firmware.
Con esto se logr el objetivo de construir un
dispositivo a medida, que permita resolver una
problemtica existente concreta y a un costo
competitivo en el mercado de equipamiento para
redes.
Agradecimientos
Se agradece al Ingeniero Csar Minni,
docente de la UTN-FRP por su apoyo y gua durante
todo el desarrollo del proyecto, como as tambin al
Ingeniero Pablo Gustavo Barrios de la empresa BM
Soluciones S.R.L. por el apoyo tcnico y la
oportunidad de llevar a cabo este emprendimiento.

Referencias
[1] BM Soluciones S.R.L. Soluciones de Ingeniera.
http://www.bmsolucionessrl.com.ar/
[2] PIC18F97J60 Family Data Sheet (10/22/2009).
http://www.microchip.com/wwwproducts/Devic
es.aspx?dDocName=en026445
[3] MPLAB C Compiler for PIC18 MCUs.
http://www.microchip.com/stellent/idcplg?IdcSe
rvice=SS_GET_PAGE&nodeId=1406&dDocNa
me=en010014
[4] MPLAB Integrated Development Environment.
http://www.microchip.com/stellent/idcplg?IdcSe
rvice=SS_GET_PAGE&nodeId=1406&dDocNa
me=en019469&part=SW007002
[5] Microchip Application Libraries.
http://www.microchip.com/stellent/idcplg?IdcSe
rvice=SS_GET_PAGE&nodeId=2680&dDocNa
me=en547784
[6] 25LC1024 1 Mbit SPI Bus Serial EEPROM.
http://www.microchip.com/wwwproducts/Devic
es.aspx?dDocName=en520389
[7] LM2575 - SIMPLE SWITCHER 1A Step-
Down Voltage Regulator - 08/25/1989.
http://www.national.com/JS/searchDocument.do
?textfield=LM2575T-5.0&x=0&y=0
[8] MCP1825S - 500 mA, Low Voltage, Low
Quiescent Current LDO Regulator.
http://www.microchip.com/wwwproducts/Devic
es.aspx?dDocName=en531456



Copyright 2010. Nicols Mariano Morini: El autor delega a la Organizacin del Segundo Congreso Virtual de
Microcontroladores la licencia para reproducir este documento para los fines del Congreso ya sea que este
artculo se publique en el sitio web del congreso, en un CD o en un documento impreso de las ponencias del
Segundo Congreso Virtual de Microcontroladores.

You might also like