jueves, 20 de mayo de 2010

¿Qué es nesC?

nesC (Network Embedded Systems C) es un lenguaje de programación basado en C, enfocado y optimizado para su uso en aplicaciones de redes de sensores. Su origen se debe al deseo de disponer de un lenguaje específico que cumpliese con el modelo de ejecución y los conceptos del sistema operativo TinyOS, el cual se describe a continuación. No fue hasta la versión 1.0 de TinyOS cuando se reescribió todo el código en nesC. En versiones anteriores (por ejemplo, la versión 0.6) de TinyOS todo el sistema operativo y la programación de aplicaciones fue desarrollada en C. Esta necesidad de desarrollar un nuevo lenguaje de programación específico para redes de sensores inalámbricos viene motivada por el tipo de aplicaciones que se desarrolla, que se caracterizan por:

  • Son aplicaciones basadas en recolección, difusión y control de la información obtenida del sensor, es decir, no son aplicaciones de propósito general.
  • Tienen que reaccionar ante cambios en su entorno (eventos).
  • Es preciso optimizar la limitada cantidad de recursos que ofrecen los nodos (memoria,capacidad de computo, consumo de energía)
  • Deben ser aplicaciones estables, puesto que deben correr durante meses/años sin intervención humana.
  • Precisan de control de errores en la manejo de datos.
  • Son aplicaciones en tiempo real (envío de mensajes a la red).
Teniendo en cuenta estos aspectos, nesC aporta como concepto innovador la metodología de lenguaje orientado a componentes. Con respecto al lenguaje C tradicional, en nesC, se precisan restricciones teniendo en cuenta a las limitaciones de los nodos. Estas precondiciones estáticas del lenguaje, son la base de la optimización y permiten al compilador realizar análisis profundos sobre el código. Además nesC permite desarrollar interfaces y componentes y estos últimos pueden ser a su vez módulos o configuraciones.

martes, 18 de mayo de 2010

¿Qué es ZigBee?

Los protocolos de comunicación existentes (WiFi, Bluetooth, etc.) y las características particulares de los nodos sensores no permitían una integración satisfactoria de ambas tecnologías. Por ello, surge un consorcio de empresas (Honeywell, Invensys, Mitsubishi, Motorola, Philips, Samsung, etc.) con el objetivo de definir las especificaciones de un nuevo protocolo de comunicación inalámbrica, basado en la norma IEEE 802.15.4, que se adapte a las necesidades y limitaciones de los motes (fiable, económico y de mínimo consumo).

El consorcio recibiría el nombre de ZigBee Alliance presentando a finales de 2004 la primera especificación del estándar IEEE 802.15.4 que define los protocolos de alto nivel de comunicación para su utilización con radios digitales para redes de área personal inalámbricas (WPAN).

La siguiente tabla muestra una comparativa de los distintos estándares de comunicación existentes en el mercado. Ilustra detalles como la topología, la frecuencia de radio empleada, rango, etc.


Se espera que los módulos ZigBee sean los transmisores inalámbricos más baratos jamás producidos de forma masiva. Disponen de una antena integrada, control de frecuencia y una pequeña batería. Además de ser el estándar aceptado y utilizado por las WSN, ZigBee es un sistema ideal en el uso de redes domóticas y especialmente diseñado para reemplazar la proliferación de sensores y actuadores individuales.

jueves, 13 de mayo de 2010

¿Qué es TinyOS?

TinyOS es un sistema operativo de código abierto (open source) diseñado para responder a las características y necesidades de las redes de sensores, tales como las restricciones de memoria, bajo consumo de energía, operaciones de concurrencia intensiva, diversidad en diseños y usos. Además se encuentra optimizado en términos de uso de memoria y eficiencia de energía. Su arquitectura está pensada para incorporar nuevas funcionalidades de manera rápida y sencilla. Como ya se ha mencionado está escrito en nesC. TinyOS es en definitiva una biblioteca de componentes en el que se incluyen multitud de servicios (control de acceso a medio, protocolos de red, drivers de sensores, herramientas de manejo de datos, etc.) que pueden ser utilizados tal cual o pueden ser modificados para aplicaciones que lo precisen.

TinyOS se ha convertido, por sus características, en el estándar de facto en sistemas operativos para nodos sensores. Fue desarrollado a partir de la Tesis Doctoral de Jason Lester Hill en 2003 por la Universidad de Berkeley en California. Desde entonces ha crecido hasta tener una comunidad extensa e internacional de desarrolladores y usuarios.

jueves, 7 de enero de 2010

¿Qué es una WSN?

Cuando tengo que explicar en qué consiste una WSN a amigos que no tienen nada que ver con el mundo de la ingeniería utilizo el siguiente recurso: “¿Has visto esa película en la que perseguían tornados para tirarle cientos de bolitas y así descubrir como son y cuál es su origen?”. Si tengo suerte y la respuesta es sí, les contesto: “Pues en eso mismo consiste, pero sin tornados”. El título de esa película, que paso por nuestras sobremesas de fin de semana sin pena ni gloria es “Twister” de 1996. Esto, que hace 14 años era ciencia-ficción, hoy en día ya no lo es.

Por ejemplo, en un área extensa de difícil acceso que se encuentre en peligro por el cambio climático y los efectos de los gases invernadero, sería posible esparcir miles de nodos sensores para que analicen variables medioambientales como la temperatura o la humedad y tener una pequeña estación base con un ordenador conectado a Internet que pueda recoger dicha información. Mientras, un científico puede analizar esos datos en su ordenador. Ni siquiera sería necesario que el científico estuviese en dicha zona, podría estar en cualquier punto del globo terráqueo.

Por lo tanto, las redes de sensores inalámbricas son un conjunto de nodos distribuidos por el medio e interconectados entre sí formando una red con el objetivo de medir una variable física o ambiental, esta información se transmite por la red y finalmente es recopilada por una estación base para su posterior estudio.En la siguiente imagen se puede ver un esquema típico de una WSN: