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.