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.