• No se han encontrado resultados

Diseño de una red de sensores inalámbrica con variables de red Edición Única

N/A
N/A
Protected

Academic year: 2020

Share "Diseño de una red de sensores inalámbrica con variables de red Edición Única"

Copied!
73
0
0

Texto completo

(1)INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS MONTERREY División de Tecnologı́as de Información y Electrónica. Diseño de una Red de Sensores Inalámbrica con Variables de Red. Presentada como requisito parcial para obtener el grado de. Maestro en Ciencias con Especialidad en Ingenierı́a Electrónica (Sistemas Electrónicos). Por Margarita Olaya Cabrera Monterrey, N.L., Mayo 2007.

(2) c Margarita Olaya Cabrera, 2007.

(3) Diseño de una Red de Sensores Inalámbrica con Variables de Red por. Ing. Margarita Olaya Cabrera. Tesis Presentada al Programa de Graduados de la Escuela de Tecnologı́as de Información y Electrónica como requisito parcial para obtener el grado académico de. Maestro en Ciencias especialidad en. Sistemas Electrónicos. Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey Mayo de 2007.

(4) Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey Escuela de Tecnologı́as de Información y Electrónica Programa de Graduados. Los miembros del comité de tesis recomendamos que la presente tesis de Margarita Olaya Cabrera sea aceptada como requisito parcial para obtener el grado académico de Maestro en Ciencias, especialidad en: Sistemas Electrónicos. Comité de tesis:. Ing. Luis Ricardo Salgado Garza Asesor de la tesis. Dr. Alfonso Avila Ortega. Dr.Carlos F. Pfeiffer Celaya. Sinodal. Sinodal. Dr.Graciano Dieck Assad Director del Programa de Graduados. Mayo de 2007.

(5) A mi familia. Por todo el amor y apoyo que siempre me han brindado.

(6) Reconocimientos. Agradezco a todas las personas que me brindaron su apoyo y ayuda para llevar a cabo este trabajo de tesis. En primer lugar agradezco a mi asesor el Ing. Ricardo Salgado por su guı́a y apoyo durante este tiempo. Agradezco también a mis sinodales el Dr. Alfonso Ávila y el Dr. Carlos F. Pfeiffer por su contribución a este trabajo. Me gustarı́a agradecer a David Said Martı́nez y la compañı́a BP Electrónica ası́ como al Departamento de Ciencias Computacionales por su interés y apoyo con el equipo para desarrollar este trabajo de tesis. Quiero agradecer a Isai, Tavo, Igmar, Sara, Ulises, Jorge y José Luı́s por su amistad y compañı́a. A mis compañeras de casa, a mis compañeros de la maestrı́a, de la asistencia y a todos los que compartieron un poco de su tiempo conmigo. Finalmente quiero agradecer a mi familia por el apoyo, motivación y cariño que siempre me han dado. Ustedes son lo más valioso en mi vida, muchas gracias por haberme ayudado a cumplir esta meta.. Margarita Olaya Cabrera Instituto Tecnológico y de Estudios Superiores de Monterrey Mayo 2007. vi.

(7) Diseño de una Red de Sensores Inalámbrica con Variables de Red. Margarita Olaya Cabrera, M.C. Instituto Tecnológico y de Estudios Superiores de Monterrey, 2007. Asesor de la tesis: Ing. Luis Ricardo Salgado Garza. El propósito de este trabajo de tesis fue diseñar e implementar un algoritmo para intercambio de información mediante el método de variables de red entre dispositivos con tecnologı́a Zigbee, optimizando y aportando interoperabilidad en el intercambio y procesamiento de información entre nodos de un sistema distribuido de microcontroladores y redes de sensores, planteando un modelo de referencia que permite proveer una infraestructura operativa para aplicaciones futuras sobre este tipo de sistemas. La implementación de la presente tesis se realizó con transceivers Chipcon CC2420 y microcontroladores C8051F121 de Silicon Labs. Se diseñó una red de sensores formada por cuatro nodos con la cual se realizaron pruebas de transmisión y recepción de mensajes, verificando la funcionalidad de los enlaces y funciones de las variables de red. El algoritmo se desarrolló en lenguaje ensamblador sin estar limitado a algún hardware especı́fico..

(8) Índice general. Reconocimientos. VI. Resumen. VII. Índice de cuadros. X. Índice de figuras Capı́tulo 1. Introducción 1.1. Definición del Problema 1.2. Justificación . . . . . . . 1.3. Objetivo . . . . . . . . . 1.4. Hipótesis . . . . . . . . . 1.5. Metodologı́a . . . . . . . 1.6. Organización . . . . . .. XI. . . . . . .. 1 2 3 4 4 4 5. . . . . . .. 6 6 8 10 11 12 14. Capı́tulo 3. Redes de Sensores 3.1. Redes de Sensores Inalámbricas . . . . . . . . . . . . . . . . . . . . . . 3.2. Variables de Red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Hardware en Redes de Sensores . . . . . . . . . . . . . . . . . . . . . .. 16 16 17 19. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. Capı́tulo 2. Comunicaciones Inalámbricas 2.1. Bluetooth . . . . . . . . . . . . . . . . 2.2. IEEE STD 802.15.4 . . . . . . . . . . . 2.2.1. Enlace RF . . . . . . . . . . . . 2.2.2. Capa Fı́sica . . . . . . . . . . . 2.2.3. Capa MAC . . . . . . . . . . . 2.3. Zigbee . . . . . . . . . . . . . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. Capı́tulo 4. Implementación de una Red de Sensores con Variables de Red 26 4.1. Descripción de una variable de red . . . . . . . . . . . . . . . . . . . . 26 4.2. Método de Enlace de las Variables de Red . . . . . . . . . . . . . . . . 27 viii.

(9) 4.3. Direccionamiento y Transmisión . . . . . . . . . 4.3.1. Formato del Paquete de Reconocimiento 4.3.2. Mensajes Nodo-Nodo . . . . . . . . . . . 4.3.3. Mensajes Nodo-Grupo . . . . . . . . . . 4.4. Recepción y procesamiento . . . . . . . . . . . . 4.4.1. Mensajes Nodo-Nodo . . . . . . . . . . . 4.4.2. Mensajes Nodo-Grupo . . . . . . . . . . 4.5. Configuración . . . . . . . . . . . . . . . . . . .. . . . . . . . .. 29 30 31 32 33 34 35 35. Capı́tulo 5. Conclusiones 5.1. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 38 39. Apéndice A. Códigos. 40. Bibliografı́a. 61. ix. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . ..

(10) Índice de cuadros. 2.1. Capas del modelo OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Parámetros de Radio Frecuencia . . . . . . . . . . . . . . . . . . . . . . 2.3. Campos de la trama de control FCF . . . . . . . . . . . . . . . . . . .. 9 11 13. 3.1. Bits de Estado. 25. 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 4.9.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Campos de una variable de red . . . . . . Número de Variable . . . . . . . . . . . . . Tipo . . . . . . . . . . . . . . . . . . . . . Formato de un paquete de transmisión . . Paquete de transmisión . . . . . . . . . . . Formato de la trama de control FCF . . . Paquete tipo Nodo-Grupo . . . . . . . . . Formato del campo Datos . . . . . . . . . Paquete de reconfiguración por transmisión. x. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. 26 27 28 29 30 31 32 34 37.

(11) Índice de figuras. 2.1. Pila de Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Pila de Zigbee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Frame de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8 9 12. 3.1. Interfaz Transceiver-Microcontrolador . . . . . . . . . . . . . . . . . . . 3.2. Actividad de los pines durante la Recepción . . . . . . . . . . . . . . . 3.3. Diagrama de tiempos de SPI durante el acceso a Registros y RAM . . .. 21 22 24. 4.1. Enlace Nodo-Nodo . . . . . . . . . . . . . . 4.2. Enlace Nodo-Grupo . . . . . . . . . . . . . . 4.3. Variable de Red Retroalimentada . . . . . . 4.4. Variables de Salida . . . . . . . . . . . . . . 4.5. Transmisión . . . . . . . . . . . . . . . . . . 4.6. Frame de Acknowledgment . . . . . . . . . . 4.7. Ejemplo de Enlace Nodo-Grupo . . . . . . . 4.8. Variables de Entrada . . . . . . . . . . . . . 4.9. Ejemplo de reconfiguración . . . . . . . . . . 4.10. Ejemplo de reconfiguración por transmisión. 28 28 29 30 31 31 32 33 36 37. xi. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . ..

(12) Capı́tulo 1. Introducción. Uno de los grandes retos tecnológicos actuales y para los próximos años es la integración de diferentes tipos de redes alámbricas e inalámbricas en sistemas que habiliten la intercomunicación entre dispositivos de monitoreo y control, por mencionar algunas aplicaciones[10]. Las redes de sensores son una de las aplicaciones más importantes de las redes inalámbricas. Las redes de sensores están formadas por un conjunto de dispositivos que realizan tareas de medición de variables y supervisión de procesos [3]. Usualmente estos dispositivos son pequeños y cada equipo de monitoreo cuenta con transmisores/receptores, un microcontrolador y una fuente de energı́a. El transmisor/receptor (transceiver) habilita la comunicación y mantiene conexiones entre otros dispositivos de la red de forma segura y confiable. Existen diferentes estándares alámbricos e inalámbricos para enviar y recibir información entre dispositivos de una red de sensores[7]. A diferencia de las redes locales de computadoras, las redes de sensores en sistemas distribuidos transmiten información operativa en tiempo real. Debido al uso de este tipo de sistemas en aplicaciones de respuesta crı́tica se requiere un protocolo de enlace confiable, óptimo y que facilite la interoperabilidad entre dispositivos incluso de diferentes fabricantes. En el año 2004 se propuso un estándar para comunicación inalámbrica denominado Zigbee, el cual nos da la posibilidad de desarrollar redes de sensores inalámbricas con bajo consumo de potencia. Zigbee (IEEE 802.15.4), define la capa fı́sica y la capa de acceso al medio del modelo de interconexión de sistemas abiertos OSI. Entre las principales caracterı́sticas del estándar se encuentra el bajo consumo de potencia y ancho de banda angosto [15]. El ancho de banda angosto es apto para formar redes operativas, dichas redes no necesitan gran velocidad ya que solo transmiten información de procesos.. 1.

(13) Una aplicación de las redes de sensores se encuentra en las redes operativas locales. Una red operativa local, LON por su siglas en ingles (Local Operating Network), esta formada por dispositivos inteligentes o nodos que son conectados por uno o más medios de comunicación. Los nodos se comunican con otros dispositivos de protocolo común y son programados para enviar mensajes a otros nodos en respuesta a algún cambio ocurrido y para realizar alguna acción cuando un mensaje es recibido. Las redes operativas locales (LON ) son ampliamente utilizadas en la industria para el control distribuido de redes de control, sensores y actuadores [17]. Los nodos de una red operativa local pueden ser vistos como objetos que responden a valores dados en las entradas y producen ciertas respuestas a las salidas. El enlace entre las entradas y salidas de los nodos habilita a la red para ejecutar distintas aplicaciones. Aún cuando la función de un nodo en particular puede ser relativamente simple, la función de los nodos en conjunto puede llegar a ser bastante compleja. Un beneficio de las redes operativas locales es que un pequeño número de nodos puede ejecutar un amplio número de funciones dependiendo de cómo son realizados los enlaces en la red. Con el objetivo de facilitar la comunicación entre nodos en una red de sensores alambrada, se ha desarrollado una técnica básica conocida como Variables de Red [6]. Dichas variables son valores que se propagan a través de la red en forma transparente para el programador, de tal forma que un conjunto de nodos puede realizar labores de control y coordinación por medio de ciertas variables que pueden significar tanto valores de medición conocidos como mensajes de control. Si se desea implementar el concepto de variables de red en redes de sensores inalámbricas es necesario diseñar un algoritmo de comunicación que permita manejar la información recibida de manera eficiente y además cumpla con la principal restricción de este tipo de redes la cual es el bajo consumo de potencia. Si se implementan las redes de sensores inalámbricas utilizando variables de red se contará con un método que permitirá el intercambio de información de forma sencilla y confiable e incluso interoperable entre dispositivos cuyo único denominador común sea el uso de este tipo de protocolo.. 1.1.. Definición del Problema. Al elaborar una red de sensores un problema crucial es definir un protocolo de red que pueda manipular un gran número de nodos mientras provee un respuesta rápida y determinı́stica [6]. Adicionalmente cada nodo debe poseer una interfaz con el mundo exterior para controlar motores, luces, etc. y aceptar un amplio rango de entradas. 2.

(14) como interruptores y sensores de luz por mencionar algunos ejemplos. Para realizar esta tarea es necesario diseñar un algoritmo de comunicación que facilite el intercambio y procesamiento de la información que se transmite a través de una red de sensores. Dicho algoritmo unificará el estándar de Zigbee y el estándar de LonTalk, este último expone el concepto de variables de red [12]. Durante este trabajo se presenta el diseño de un coordinador, un dispositivo Zigbee de función completa (FFD), que transmite en al menos a 20kB/s, con operación en la topologı́a de red punto a punto, es decir, que sea capaz de comunicarse con otro dispositivo similar que se encuentre dentro de su rango de operación, máximo 100m, con direccionamiento corto de 16 bits o extendido de 64 bits, trabaje en una banda de frecuencia de 2,400MHz y que posea la facilidad de reconfigurar la de red sin realizar una reprogramación completa de cada dispositivo.. 1.2.. Justificación. Las limitaciones de movilidad de las redes cableadas y el alto costo de la infraestructura para nuevas tecnologı́as han llevado a buscar nuevas alternativas. La integración de protocolos inalámbricos a las redes de sensores propone una alternativa de acceso móvil flexible. En las redes de sensores la minimización en el consumo de potencia es uno de los aspectos fundamentales. Considerando que la red abarca cientos o miles de sensores inalámbricos, la complejidad de los algoritmos de comunicación debe manejar ambos: los requerimientos de hardware y el costo global de la red. Bajo este esquema, Zigbee es una de las alternativas que tienen impacto y futuro en este momento, principalmente por su caracterı́stica de bajo consumo de potencia. La aplicación de las redes de sensores es numerosa e incluye: monitoreo de calidad de los productos, monitoreo de procesos de fábricas, monitoreo de áreas de desastre, monitoreo biomédico y vigilancia. Durante el desarrollo de una aplicación con redes de sensores gran parte del tiempo se pierde en el diseño de las conexiones entre los procesadores y en la programación de rutinas de comunicación, es por ello que se necesita un método que haga transparente para el programador el intercambio de información en la red. En el presente trabajo de tesis se usa como base la idea de variables de red para cumplir con esta tarea y aprovechar las ventajas y expectativas de flexibilidad que las comunicaciones inalámbricas ofrecen. Las variables de red contribuyen con el propósito de ahorro de energı́a puesto que la información llega preprocesada de modo que el microcontrolador ahorra instrucciones para decodificar o interpretar los datos transmitidos o recibidos a través de la red.. 3.

(15) 1.3.. Objetivo. El objetivo de este trabajo de tesis es el diseño e implementación de un algoritmo para intercambio de información mediante el uso de variables de red en una red de sensores que trabaje con el protocolo de comunicación Zigbee, utilizando dispositivos de función completa formados por un microcontrolador y un transceiver. El algoritmo será capaz de establecer comunicación y facilitar el intercambio de información entre los nodos que forman la red.. 1.4.. Hipótesis. Si se implementan variables de red en redes de sensores inalámbricas utilizando el protocolo de comunicación Zigbee será posible realizar el intercambio de información entre los nodos de la red de forma sencilla, confiable y transparente para el programador, apegados a los requerimientos de bajo consumo de energı́a, principal caracterı́stica de este estándar.. 1.5.. Metodologı́a. En la primera etapa se trabajó sobre el diseño de la investigación y el planteamiento formal del trabajo. Se estableció el marco teórico recabando la información necesaria para llevar a cabo la investigación. Posteriormente, como primer paso en la etapa de implementación, se programó y probó el algoritmo que realiza la comunicación tradicional entre el coordinador y la red de sensores, para ello fue necesario implementar parte del stack de Zigbee. Una vez concluida esta etapa se procedió a implementar el algoritmo de comunicación que incluye las variables de red, para ello fue necesario estudiar el protocolo de comunicación de LonTalk ya que este definen la función de las variables de red. Una vez implementada la red, se realizaron pruebas de transmisión-recepción con el objetivo de evaluar: confiabilidad en la transferencia de los datos, en los enlaces de las variables y los nodos y en los mensajes de configuración. Los mensajes transmitidos corresponden a mensajes nodo-nodo o nodo-grupo ası́ como mensajes de configuración. El enlace de los nodos se garantizó mediante la solicitud y envı́o de un mensaje de acknowledgment en cada una de las transmisiones. Se diseño e implemento una red de sensores formada por cuatro nodos con ocho variables de entrada y ocho variables de salida cada uno. En cada nodo se programaron funciones que representan la respuesta a sensores y actuadores. Finalmente se integró el documento de la tesis en donde se muestran los pasos 4.

(16) detallados del desarrollo, los resultados, su respectivo análisis, conclusiones y trabajo futuro.. 1.6.. Organización. El presente documento está organizado de la siguiente manera; en el capı́tulo 2 se presenta una descripción de las comunicaciones inalámbricas, se describen los protocolos más comunes en redes de área personal como lo son Zigbee y Bluetooth. En el capı́tulo 3 se presenta la descripción de las redes de sensores ası́ como de las variables de la red, su concepto y origen en las redes de sensores de LonWorks. Se presenta además una descripción del hardware necesario para la implementación del presente trabajo de tesis. En el capı́tulo 4 se presenta el modelo desarrollado, la descripción de la metodologı́a utilizada ası́ como los resultados obtenidos en el desempeño de la red. Finalmente en el capı́tulo 5 se dan a conocer las conclusiones obtenidas al término de la implementación de este algoritmo y el trabajo futuro para el mismo.. 5.

(17) Capı́tulo 2. Comunicaciones Inalámbricas. La tecnologı́a inalámbrica fue probada por primera vez hace un poco más de cien años por Marconi, con un telégrafo inalámbrico [8]. En años recientes esta tecnologı́a se ha visto reflejada en la telefonı́a y en diversas aplicaciones industriales relacionadas con monitoreo y medición. Aunado al desarrollo de las aplicaciones se encuentran los nuevos estándares y protocolos de comunicación como lo son: Bluetooth, Zigbee y Ethernet inalámbrico. Hoy en dı́a existe un gran interés por las tecnologı́as inalámbricas pues proveen a la industria una herramienta para mejorar su competitividad. Con el afán de mejorar los procesos de operación, su calidad y productividad, las industrias incorporan continuamente nuevas tecnologı́as. Estas industrias se enfocan en aplicaciones como sistemas automáticos de control de procesos, acondicionamiento ambiental en casas, edificios, servicios públicos, etc. Los sistemas inalámbricos han surgido como una opción para resolver problemas de aplicación de procesos o de monitoreo en donde las soluciones parecı́an demasiado costosas, técnicamente no factibles o en donde faltaba confiabilidad en la comunicación entre dispositivos y el equipo anfitrión. Los sistemas inalámbricos ofrecen la ventaja de poder ser configurados y reconfigurados fácilmente, son de bajo consumo de potencia, operan en bandas libres, pueden operar cientos de dispositivos por red ası́ como ofrecen flexibilidad en la topologı́a de red que utilizan, Star, Cluster o Mesh , el tamaño de los dispositivos es pequeño y existen actualmente diferentes estándares de comunicación para implementar redes inalámbricas.. 2.1.. Bluetooth. Bluetooth es respaldado y desarrollado por un grupo de interés especial (SIG Special Interest Group) que se fundó en Septiembre de 1998 [16]; es utilizado en dispo-. 6.

(18) sitivos inteligentes (PDAs, teléfonos celulares, computadoras), dispositivos periféricos (teclados, ratones, cámaras, impresoras), dispositivos de audio (audı́fonos, micrófonos) y aplicaciones en sistemas industriales. Esta tecnologı́a fue diseñada para ser fácil de usar y proveer a los usuarios confiabilidad, versatilidad y seguridad. Al igual que Ethernet inalámbrico opera sobre la frecuencia de 2.4 GHz con una taza de transferencia de 1Mbit en una configuración maestro-esclavo adecuada para transmisiones de voz y datos. Está tecnologı́a ha sido estandarizada por la IEEE como 802.15.1 [4]. Bluetooth esta siendo utilizado en tareas de monitoreo ası́ como en operaciones de carga, descarga y transferencia de datos y ha venido a reemplazar una gran cantidad de cables, razón por la que ha sido reconocido como una prometedora solución sin cables [9], su señal puede viajar a través de paredes y barreras que detienen otras tecnologı́as [2]. Bluetooth proporciona el descubrimiento de los nodos con conexiones punto a punto o multipunto. Las especificaciones de Bluetooth definen como se formaran los grupos con propósitos de comunicación. Una red de área personal de Bluetooth esta formada por piconets. Cada piconet es un cluster de 8 dispositivos de Bluetooth. Un dispositivo es designado como maestro y el resto como esclavos[11]. Dos piconets pueden ser conectados a través de un dispositivo común (gateway o bridge) para formar un scatternet. El protocolo de la pila de Bluetooth se divide en tres grupos que son: transporte, middleware y aplicación. El grupo de protocolos de transporte permite a los dispositivos localizarse y manejar los enlaces fı́sicos y lógicos. Es importante hacer notar que este protocolo de transporte no se refiere a la capa de transporte definida en el sistema abierto de interconexiones OSI. El grupo de protocolos de middleware permite operar a las aplicaciones con enlaces de Bluetooth. Los estándares en la industria incluyen protocolos Punto a Punto (PP), Protocolos de Internet (IP), Protocolos de Control de Transmisiones (TCP), Aplicaciones Inalámbricas (WAP) e Intercambio de Objetos (OBEX) e IrDA (Infrared Data Association). El grupo de aplicación esta formado por todas las aplicaciones que utilizan enlaces de Bluetooth. 7.

(19) Figura 2.1: Pila de Bluetooth. La especificación de Bluetooth define una arquitectura de capas basada en un pila de protocolos como se muestra en la Figura 2.1. La capa fı́sica incluye la interfaz de controlador del anfitrión para comunicarse con la capa de manejo de enlace. La siguiente capa es denominada capa de control de enlace.. 2.2.. IEEE STD 802.15.4. En las redes de sensores el costo, la complejidad y el consumo de potencia han sido algunos de los retos más importantes y hasta hace algún tiempo habı́an impedido el desarrollo y escalamiento de las redes inalámbricas En el 2003, la IEEE ratificó un estándar conocido como 802.15.4 para comunicaciones inalámbricas, el cual fue diseñado para el ahorro de energı́a presentado ası́ una solución a los problemas antes mencionados. La misión del estándar fue proveer a los dispositivos con una tecnologı́a confiable y robusta que pudiera ejecutarse por años con una baterı́a estándar, además de que permitiera al diseñador utilizarlo como base de comunicación en sus proyectos preocupándose únicamente por las capas superiores. El estándar IEEE 802.15.4 especifica las capas fı́sica (PHY) y de acceso al medio (MAC) y una gran variedad de estándares industriales pueden colocarse en las capas superiores para completar el modelo OSI para referencia consulte la Figura 2.2. El estándar sugiere pero no describe métodos ni técnicas de red.. 8.

(20) Figura 2.2: Pila de Zigbee Una vez ratificado el estándar se comenzó con la fabricación de circuitos integrados que permiten la transmisión/recepción con dicho estándar. Los transceivers (transmisores/receptores) son circuitos diseñados para enviar y recibir datos con alta precisión, baja latencia y para trabajar largos periodos de tiempo aprovechando el tiempo de vida de la baterı́a con que se alimentan.. Aplicación Presentación Sesión Transporte Red Enlace de Datos Fı́sica Cuadro 2.1: Capas del modelo OSI El desarrollo del estándar IEEE 802.15.4 fue dirigido a las redes de sensores y a las redes en donde la transferencia de datos se realiza a bajas velocidades, las cuales existı́an sin ninguna estandarización, solamente como un conjunto de protocolos y métodos propios [1]. El estándar define la capa RF y la capa fı́sica PHY con un método de transferencia PSK (Phase shift key) capaz de alcanzar velocidades de transmisión de 250 Kbps (kilobits por segundo), 27 canales de transmisión disponibles en bandas de frecuencia de 800, 900 y 2400MHz dependiendo del paı́s. La atenuación de la transmisión en radio frecuencia es tratada mediante DSSS (Direct-Sequence Spread Spectrum). El acceso a los canales se realiza mediante el método de CSMA-CA (Carrier Squel multiple access with collision avoidance) o mediante el método de TDMA (Time Domain Multiple Access) utilizando paquetes de sincronización (beacons) y segmentos de reserva GTS(Guaranted Time Slots). Existen 4 tipos de paquetes: datos, comandos de MAC, reconocimiento y beacons. Cada paquete contiene 9.

(21) un número de secuencia de sincronización, la longitud del paquete, la dirección fuente, la dirección destino, bits de configuración del paquete, los datos a transferir y un campo de verificación de secuencia. Sobre los mecanismos de transmisión se encuentra la capa de control de acceso al medio (MAC), la cual genera y administra los beacons si el dispositivo es un coordinador, da soporte a la asociación y disociación de nodos, controla el acceso al canal, coordina el mecanismo de GTS y provee un enlace entre las entidades MAC de dos dispositivos. El ahorro de energı́a se logra al mantener dormido al transceiver mientras ninguna transferencia es realizada. El estándar define dos tipos de dispositivos: dispositivo de función completa y dispositivos de función reducida. Los dispositivos de dispositivos de función completa (FFD) pueden establecer comunicación con los dispositivos de función reducida RFD o con otro dispositivo de función completa mientras que un dispositivo de función reducida sólo puede establecer comunicación con un dispositivo de función completa. El objetivo de los dispositivos de función reducida es ser utilizados en aplicaciones simples, ya que solo pueden asociarse a un FFD a la vez se requiere un mı́nimo de recursos y poco capacidad de memoria. Existen tres tipos de dispositivos dentro de la red: el coordinador, el enrutador y el dispositivo final. La función de coordinador la realiza un FFD, su tarea fundamental es formar una red. Dicho dispositivo deberá contar un conocimiento total de la red y es responsable de asignar direcciones. El enrutador es también un FFD, su tarea principal en indicar la ruta que el paquete tomará. El dispositivo de final puede manejar solamente comunicación y transferencia de datos con el mismo.. 2.2.1.. Enlace RF. El estándar IEEE especı́fica los parámetros del enlace RF, incluyendo el tipo de modulación, codificación, distribución, taza de transferencia de bits y canalización. Actualmente, el estándar identifica 27 canales y tres bandas de frecuencia como se especifica en la Tabla 2.2. La potencia nominal de la señal de la salida es de 0.5mW (-3dB) con el objetivo de limitar el consumo de energı́a bajo la suposición de que los dispositivos serán utilizados en aplicaciones de rangos cortos (10-50 metros). Sin embargo es posible amplificar la señal a través de dispositivos externos. La sensibilidad nominal del receptor es especificada por la taza de error del paquete PER (Packet Error Rate). El estándar requiere del 1 % de PER a 85dB como potencia de salida para 2400 MHz. La modulación que se utiliza es PSK (Phase-Shift-Key), 10.

(22) Banda de Frecuencia (MHz) 868.3 902-928 2400-2483.5 Núm de Canales 1 10 16 Ancho de Banda (kHz) 600 2000 5000 Taza de Transferencia Datos (kbps) 20 40 250 Taza de Transferencia Sı́mbolos 20 40 62.5 Paı́s Europa América El mundo Estabilidad de Frecuencia 40 mpp 40 mpp 40mpp Cuadro 2.2: Parámetros de Radio Frecuencia elegida por su habilidad de recuperación en ambientes con interferencia.. 2.2.2.. Capa Fı́sica. El estándar 802.15.4 contiene las especificaciones de las primitivas para el manejo de los radio canales ası́ como el control y flujo de datos. La capa fı́sica utiliza CSMACA como medio de acceso. Esto significa que si un nodo con un dato a transmitir es el primero en ser escuchado y el canal esta libre entonces éste transmitirá el paquete primero. Si el canal esta ocupado debido a que otro nodo está transmitiendo o debido a interferencia como el horno de microondas, un punto de acceso de Wi-Fi, etc, el nodo retendrá el dato por un periodo de tiempo aleatorio antes de realizar otro intento. La estructura de la trama de datos ha sido diseñada de modo que se conserve al mı́nimo la complejidad mientras se mantiene la robustez en la transmisión. Las LR-WPAN definen en la capa fı́sica cuatro tipos de estructuras:. Beacon, utilizada por el coordinador para transmitir beacons. Datos, utilizada para todo tipo de transferencia de datos. Acknowledgment, utilizada para confirmar recepciones exitosas. Comando de capa MAC El formato del paquete de reconocimiento se utiliza para enviar paquetes que confirman que el paquete fue recibido sin error. El beacon es usado para tratar de establecer una nueva red y es muy útil para lograr el objetivo de ahorro de energı́a. Los comandos de MAC sirven para enviar información de configuración entre los nodos.. 11.

(23) Figura 2.3: Frame de Datos Todos los dispositivos IEEE 802.15.4 tienen una dirección única de 64-bits cuando se utiliza formato de dirección larga o 16 bits para dirección corta. En la Figura 2.3 se muestra un ejemplo de un frame de datos. El encabezado de sincronización SHR que contiene una secuencia de preámbulo de 32 bits que permite al receptor adquirir y sincronizar la señal de entrada con el encabezado y el final del frame. La capa fı́sica lleva la información de la longitud, la cual indica el número de bytes que forma la unidad de servicio de la capa fı́sica. La capa fı́sica provee dos servicios: el servicio de dato de PHY y el servicio de manejo de la interfaz a la entidad de manejo de la capa fı́sica (physical layer managment entity PLME). El servicio de dato habilita la transmisión y recepción de la unidades de dato del protocolo de la PHY (PHY protocol data units) a través del radio canal. La subcapa PHY se encarga de la activación y desactivación del radio transceiver, ED, LQI, selección de canal, asignación de canal desocupado y transmisión/recepción a través del medio fı́sico.. 2.2.3.. Capa MAC. La subcapa MAC provee dos servicios: el servicio de dato y el servicio de manejo de la interfaz a la entidad de manejo de la subcapa MAC punto de acceso de servicio (MLME-SAP). Existen tres tipos de transferencias de datos. La primera es transferencia de datos al coordinador en la cual el dispositivo transmite el dato. La segunda el coordinador transmite el dato y el dispositivo lo recibe. La tercera es una transmisión entre dos dispositivos, esta última transacción solamente se realiza en topologı́as punto a punto. Los datos a transferir se encuentran en la subcapa MAC. Cada una de las capas es representada como un segmento en la estructura. La sección correspondiente a la capa 12.

(24) MAC esta formada por la MAC header MHR que contiene la estructura de control, el número de secuencia y la información de direccionamiento, la MSDU ( MAC service data unit ) con los datos y el MAC footer (MFR) el cual contiene los 16 bits de la secuencia de control (frame control field). La MHR, MSDU y MFR forman el MAC data frame (MPDU). La MPDU es enviada a la capa fı́sica, la cual esta formada por un encabezado de sincronización SHR y un byte con la longitud del PDSU y el data frame (PSDU). Synchronisation Header (Encabezado de Sincronización) Consiste de la secuencia de preámbulo seguida del delimitador de inicio de frame (SFD). En el CC2420 la longitud de la secuencia de preámbulo y el SFD son configurables, pero al cambiarlas el paquete puede ya no ser compatible con el estándar 802.15.4. Un encabezado de sincronización siempre es transmitido de manera automática al inicio de una transmisión en cualquier posible modo. Frame Length (Longitud de Frame) Define el número de bytes en el MPDU, el campo de longitud no se incluye a si mismo, pero sı́ incluye el FCS aunque este sea generado automáticamente por el CC2420. El campo de longitud es de 7 bits y tiene un valor máximo de 127, el bit más significativo está reservado y siempre debe ser cero. El transceiver usa este campo tanto para transmisión como para recepción por lo cual siempre debe ser incluido. MAC Protocol Data Unit (MPDU) El FCF, número de secuencia (sequence number) y la información de direcciones (address information) son los siguientes al campo de longitud. Junto con el MAC Payload y Frame Check Sequence forman el MPDU, MAC Protocol Data Unit. El Frame de control sigue el formato que se presenta en la Tabla 2.3.. 0-2 Frame type. 3 4 Security Frame Enable pending. 5 Ack Request. 6 IntraPAN. 7-9 Reserved. 10-11 Destination Address Mode. 12-13 Reserved. 14-15 Source Addressing Mode. Cuadro 2.3: Campos de la trama de control FCF Direccionamiento Cada red deberá seleccionar un identificador de 16 bits PANid. Este identificador permitirá la comunicación entre los dispositivos de la red lo cuales poseen una dirección corta de 16 bits o extendida de 64 bits que permite la comunica13.

(25) ción independiente entre dispositivos a través de la red. Las direcciones fuente y destino de los nodos pueden ser configuradas según la lista que se presenta a continuación:. Sin dirección Reservada Dirección corta de 16 bits Dirección extendida de 64 bits El estándar provee una herramienta básica confiable y robusta para elaborar redes de sensores. La existencia del estándar ha sido acompañada del desarrollo de circuitos integrados que permiten implementar diferentes aplicaciones. Por las caracterı́sticas antes mencionadas el estándar 802.15.4 es uno de los más importantes en el desarrollo de redes de sensores.. 2.3.. Zigbee. Zigbee es el miembro más reciente de la comunidad de comunicaciones inalámbricas. Zigbee tiene sus orı́genes en Motorola y la antigua alianza HomeRF a finales de los años 90, es una nueva tecnologı́a inalámbrica de corto alcance y bajo consumo de potencia. Zigbee y el estándar IEEE 802.15.4 tienen como objetivo especificar los niveles fı́sicos y de acceso al medio (MAC) de redes inalámbricas con dispositivos de muy bajo consumo de energı́a y baja velocidad de transmisión. Con velocidades comprendidas entre 20 kB/s y 250 kB/s y rangos de 10 m a 75 m, ZigBee puede funcionar en las bandas de 2,4 GHz, 868 MHz y 915 MHz [13]. Una red ZigBee puede estar formada por 65.000 nodos, agrupados en subredes de hasta 255 nodos, los cuales tienen la mayor parte del tiempo el transceiver dormido con objeto de reducir el consumo de la baterı́a al mı́nimo. Uno de los objetivos de Zigbee es que un sensor equipado con esta tecnologı́a pueda ser alimentado con dos pilas AA durante al menos 6 meses y hasta 2 años. Hay dos topologı́as de red que pueden ser implementadas con Zigbee: estrella y punto a punto. En la red siempre existe un nodo que asume el papel de coordinador central, el cual es el encargado de concentrar la adquisición de datos y las rutas de comunicación entre dispositivos. Si se aplica el concepto de red de malla, pueden existir coordinadores o routers, alimentados permanentemente en espera de recibir/repetir las 14.

(26) tramas de los dispositivos o sensores. En Zigbee existen tres tipos de dispositivos, el tipo FFD (Full Functionality Device), el dispositivo de funciones reducidas y el dispositivo final[5]. Actualmente existen diferentes compañı́as trabajando en la tecnologı́a Zigbee, entre ellas podemos mencionar, Chipcon, Ember, Mitsubishi, entre otras.. 15.

(27) Capı́tulo 3. Redes de Sensores. 3.1.. Redes de Sensores Inalámbricas. Las redes de sensores inalámbricas pertenecen a un tipo de red conocido como Redes de Área Personal WPAN (Wireless Personal Area Network). Las WPAN son redes formadas por un número limitado de dispositivos enlazados para formar la red. Es posible encontrar ejemplo de ellas en los ambientes de oficina ya que una WPAN sirve para transferir datos entre dispositivos de escritorio y una pc o una impresora o en las casas ya que proveen conexiones libres de cables para alarmas o aplicaciones de entretenimiento. El estándar IEEE 802.15.4, descrito en el capı́tulo 1, es un protocolo que describe las especificaciones para la capa fı́sica y de acceso al medio para redes inalámbricas de área personal (LR-WPAN Low Rate- Wireless Personal Area Network). Una LR-WPAN es una simple red de comunicación de bajo costo que permite conectividad en aplicaciones con bajo consumo de potencia. Los principales objetivos de una LR-WPAN son: fácil instalación, confiabilidad en la transferencia de datos, cortó rango de operación, bajo costo, baterı́a con razonable tiempo de vida mediante el uso de un protocolo de comunicación simple y flexible. La arquitectura de una LR-WPAN esta definida en términos de un número de bloques con el objetivo de simplificar el estándar. Dichos bloques son llamados capas. Cada capa es responsable de una parte del estándar y ofrece sus servicios a las capas superiores. El diseño de los bloques esta basado en el modelo abierto de interconexión de 7 capas OSI. Un dispositivo de LR-WPAN comprende la capa fı́sica PHY, la cual contiene al transceiver de radio frecuencia con su mecanismo de control de bajo nivel y la capa MAC que provee acceso fı́sico a los canales para todo tipo de transferencia.. 16.

(28) Las capas superiores, consisten en la capa de red, la cual provee la configuración de red, manipulación y ruteo de mensajes y una capa de aplicación la cual provee la función del dispositivo. Las redes de sensores inalámbricas son una clase especial de redes Ad Hoc. Son conocidas por sus siglas en ingles como WSN Wireless Sensor Network. En dichas redes la unidades de interconexión son dispositivos formados por sensores operados con baterı́as, un transceiver inalámbrico y la unidad de procesamiento [14]. Esto marca una de las principales diferencias entre los nodos utilizados en WSN y los nodos de una red tradicional. Tı́picamente son dispositivos embebidos con un énfasis especial en el ahorro de energı́a[7].. 3.2.. Variables de Red. Una variable de red es una estructura de datos que contiene información acerca de un dispositivo, cada variable de red puede ser conectada a las variables de red de uno o más dispositivos adicionales. Una variable de red de un dispositivo define sus entradas y salidas desde un punto de vista de red y permite compartir datos en una aplicación de forma distribuida. Siempre que un programa escriba en una variable de salida, el nuevo valor de la variable de red es propagado a través de la red a los dispositivos cuya entrada este conectada a esta salida. Los programas de aplicación no requieren ningún tipo de instrucción explicita para el envı́o, recepción, manejo, administración, reenvı́o, autentificación o reconocimiento de las variables de red cuando el valor de alguna de ellas es actualizado. Al elaborar una red de sensores un problema crucial es definir un protocolo de red que pueda manipular un gran número de nodos mientras provee un respuesta rápida y determinı́stica. Adicionalmente cada nodo debe poseer una interfaz con el mundo exterior para controlar motores, luces, etc. y aceptar un amplio rango de entradas de interruptores y sensores. Para realizar esta tarea es común utilizar los microcontroladores, sin embargo un microcontrolador puede realizar solo el trabajo de interconexión o el trabajo de control. Como solución a esto en lugar de simplemente definir un protocolo de red, la compañı́a Echelon desarrolló un sofisticado microcontrolador, el neuron, con la interconexión e interfaz incluidas [6]. Los conceptos de Echelon están basados en un protocolo conocido como LonTalk, el cual define las reglas de comunicación entre los procesadores neuron en los diferentes medios donde se requiere construir una red.. 17.

(29) La conexión fı́sica entre cada nodo y la red se realiza a través de un transceiver ası́ cada nodo es independiente del medio, por lo que un cambio de éste no implica un cambio de software. Cada nodo de la red es implementado utilizando un Neuron Chip con el cual se implementan las variables de red. La tecnologı́a LonWorks fue desarrollada por la compañı́a Echelon en U.S.A y es una versión completa para implementar control o redes de sensores. La tecnologı́a Lonworks es implementada a través de microcontroladores e incorpora las 7 capas del protocolo LonTalk, el cual esta conformado por las 7 capas del modelo OSI y es implementado en una ROM o algún otro tipo de memoria. Entre las ventajas que ofrece LonWorks, podemos mencionar la inteligencia local en cada punto de la red y que el sistema no tiene un punto central de falla, adicionalmente Lonworks ofrece soporte para distintos medios como los son fibras ópticas, RF y diferentes topologı́as de red como estrella y anillo[12]. LonWorks estable el concepto de variables de red en redes de sensores alambradas. Una red de sensores basada en LonWorks esta formada por una PC la cual es utilizada para supervisar y monitorear el sistema, la interfaz utilizada para la interconexión entre la red LonWorks y la PC, el conector el cual une dos canales de LonWorks que provienen de diferentes medios de comunicación o tienen diferentes velocidades de transmisión. El nodo sensor el cual convierte las variables medidas en señales digitales que son enviadas a través de la red por medio del transceiver. El objetivo al utilizar una aplicación con variables de red es proveer el valor más reciente de una variable escribiéndolo en una variable de red de salida (nvo) y obtener el valor más reciente de un dato de la red leyéndolo en una variable de red de entrada (nvi). El programa de la aplicación no deberá requerir ninguna instrucción explicita para envı́o, recepción, manejo y/o autentificación de la variable cuando esta es actualizada. Una variable de red es un objeto que representa el valor de dato. Las variables de red son utilizadas en dispositivos de escritura los cuales escriben en una variable de red de salida, y en dispositivos de lectura los cuales leen los valores de las variables de red de entrada. Un interruptor es un dispositivo de escritura y un foco es un ejemplo de un dispositivo de entrada. En general una variable de red después de ser declarada puede ser inicializada, evaluada o modificada. Cuando una variable actualiza su valor este es enviado automáticamente a los dispositivos de entrada que este conectados a esa salida. 18.

(30) El envió del valor de la variable es realizado siempre que esta se actualiza, en este caso se tiene una variable sincronizada, sin embargo es posible solicitar el valor de la variable en otro momento al declararla como no sı́ncrona y entonces el envı́o del valor actualizado se realiza mediante scheduling. Las acciones que realiza un dispositivo dependen principalmente de cuatro posibles eventos en las variables de red, estos son: 1. Operación Completa 2. Falla 3. Acontencimiento 4. Acción exitosa Es posible realizar polling en un variable de red, es decir, que un dispositivo de lectura le solicite el último valor de una variable a un dispositivo de escritura. Cuando se realiza este tipo de modificación es necesario agregar otras caracterı́sticas de los dispositivos, para soportar esta función. La propagación en la red de una variable se realiza de forma automática, sin embargo puede ser ejecutada mediante el uso de una instrucción de propagación. La autentificación es una forma especial de reconocimiento entre un dispositivo que escribe. La autentificación es utilizada por los dispositivos de lectura para verificar la identidad del dispositivo de escritura. Esta aumenta al doble el número de mensajes por transacciones pero asegura la confiabilidad de la comunicación.. 3.3.. Hardware en Redes de Sensores. El rango de aplicaciones para las redes de sensores es amplio incluye juegos, aplicaciones ambientales, médicas, monitoreo de instrumentos de medición en edificios ası́ como sensores de temperatura para frı́o y calor entre otras. Dichas aplicaciones son frecuentemente sistemas embebidos con microcontroladores de 8 o 16 bits que operan sin la intervención humana por meses [14]. Los perı́odos de tiempo que permanecen sin intervención ni hardware de alimentación conllevan dos implicaciones para dichos sistemas: el software que corra en dichos dispositivos debe ser simple y correcto y el dispositivo debe ser eficiente en el consumo de energı́a.. 19.

(31) El transceiver y el microcontrolador son los dispositivos principales y también las dos fuentes de mayor consumo de energı́a. Un transceiver es un dispositivo formado por un transmisor y un receptor combinados en un circuito común. El término se originó en la segunda guerra mundial. Técnicamente los transceiver deben combinar una gran cantidad de circuitos para ser capaces de recibir y transmitir la información. Diferentes compañı́as como Motorola y Chipcon han lanzado transceivers compatibles con el estándar 802.15.4. Dichos transceiver necesitan de un microcontrolador para desarrollar sus funciones. Un nodo en una red de sensores esta formado de dichos dispositivos (microcontrolador y transceiver). El CC2420 es un transceiver que trabaja a 2.4 GHz compatible con el estándar IEEE 802.15.4 diseñado para aplicaciones inalámbricas de bajo consumo de potencia y voltaje. El CC2420 provee un extenso soporte en hardware para manipulación de paquetes, manipulación de datos, transmisión, encriptación, autentificación de datos, clear channel assestment (CCA) y LQI.. Caracterı́sticas generales El transceiver CC2420 funciona en un rango de frecuencias que va de los 2400 a los 2483.5 MHz, su tasa de transferencia es más o menos de 250 kbps. Cuenta con dos FIFOs separadas, una exclusiva para transmisión y otra para recepción, cada una es de un tamaño de 128 bytes. Este transceiver está diseñado para operar en rangos bajos de corriente y voltaje. Siendo un transceiver hecho especialmente para el protocolo de comunicación Zigbee cuenta con soporte en hardware para la capa de acceso al medio. Cuenta con un generador automático de preámbulo para identificar paquete; tiene la posibilidad de agregar y detectar una palabra de sincronización; cuenta con un generador de CRC-16 que se aplica a la carga del paquete (payload)y con un indicador de energı́a RSSI (Receive Signal Strength Indicator). En cuestiones de seguridad también brinda soporte en hardware para el protocolo Zigbee; hace operaciones de seguridad en ambas FIFOs; encriptación y decriptación CTR (Counter mode encryption) y encriptación AES (Advanced Encryption Standard). 20.

(32) Figura 3.1: Interfaz Transceiver-Microcontrolador. La interfaz de comunicación con la que cuenta es serial del tipo SPI de 4 hilos, por medio de esta interfaz se tiene acceso a todos los registros y se envı́an comandos al transceiver. El reloj interno con el que cuenta oscila a una frecuencia de hasta 10 MHz. Los cuatros que hilos que forman SPI son: SI, SO, SCLK y CSn. Caracterı́sticas fı́sicas El transceiver viene en un empaquetado del tipo QLP-48 (48 pines) y sus dimensiones son de 7mm de largo por 7mm de ancho, por lo cual podemos darnos cuenta que su tamaño es muy pequeño haciéndolos ideales para aplicaciones móviles y embebidas. El transceiver trabaja en un rango de voltaje de 2.1 a 3.6 V y el consumo de corriente depende de su modo de operación, transmisión o recepción. Interfaz con el microcontrolador Para realizar alguna aplicación con el CC2420 es necesario realizar un interfaz con un microcontrolador. Dicho microcontrolador debe ser capaz de programar al CC2420 en diferentes modos, leer y escribir datos almacenados y leer información del status vı́a SPI. El microcontrolador será una interfaz entre el FIFO transmisor y el FIFO receptor utilizando los pines FIFO y FIFOP, CCA y SFD.. Modo de Recepción En este modo, el pin SFD se pone en estado alto después de haber recibido por completo un delimitador de paquete (SFD). Si el reconocimiento de dirección está deshabilitado o es exitoso, el pin SFD se va a estado bajo solamente cuando el último byte del paquete ha sido recibido. Si el reconocimiento de dirección falla el pin de SFD se. 21.

(33) va a estado bajo automáticamente. El pin FIFO se va a estado alto cuando hay datos en la FIFO de recepción, permanece ası́ hasta que se vacı́a la FIFO de recepción. El pin FIFOP se va a estado alto cuando el número de bytes sin leer en la FIFO de recepción es mayor al umbral programado en el registro IOCFG0.FIFOPTHR. Cuando está habilitado el reconocimiento de direcciones el pin de FIFOP se irá a estado alto hasta que el paquete de datos (MPDU) haya pasado la verificación exitosamente. El pin de FIFOP también se irá a estado alto cuando el último byte de un nuevo paquete ha sido recibido. Los datos no deben ser leı́dos de la FIFO antes de que sea recibida la dirección, dado que el paquete es vaciado automáticamente por el CC2420 si es que no pasa la verificación. La Figura 3.2 muestra de manera más clara la actividad en los pines mientras se está en una recepción.. Figura 3.2: Actividad de los pines durante la Recepción. 22.

(34) Modo de Transmisión En este modo, el pin SFD se pone en estado alto después de haber recibido por completo un delimitador de paquete (SFD). Si el reconocimiento de dirección está deshabilitado o es exitoso, el pin SFD se va a estado bajo solamente cuando el último byte del paquete ha sido recibido. Si el reconocimiento de dirección falla el pin de SFD se va a estado bajo automáticamente. El comportamiento de SFD es similar en transmisión y recepción y en este caso los pines FIFO y FIFOP no tienen actividad.. Acceso a Registros Hay 33 registros de status y configuración de 16 bits, 15 registros de comandos de strobe y registros de 8 bits para acceso a FIFO de recepción y al FIFO de transmisión. Cada uno de los 50 registros es direccionado con 6 bits. El pin RAM/Register, bit 7, debe ser puesto a cero para acceder a los registros. El bit Read/Write, bit 6, selecciona la operación de lectura o escritura y junto con los 6 bits de dirección forman el arreglo de dirección de 8 bits. En cada ciclo de lectura o escritura, son enviados 24 bits a través de la lı́nea de SPI. El pin CSn (Chip Select, activo en bajo) debe conservarse en nivel bajo durante la transferencia. El primer bit enviado es el bit RAM/Register seguido del bit R/W , los siguientes 6 bits corresponden a los bits desde A5 hasta A0 y entonces son enviados los bits de datos D15 a D0, el bit mas significativo es enviado primero. Los registros de configuración pueden ser leı́dos utilizando la configuración anterior colocando el bit R/W en alto para iniciar la lectura del CC2420. El reloj de datos de SI en el CC2420 detecta los flancos positivos de SCLK, cuando el último bit D0 de los 16 bits de datos ha sido escrito el dato es cargado en el registro de configuración interno.. Acceso a la RAM Los 368 bytes de RAM pueden ser accesados vı́a SPI. La dirección de memoria es de 2 bytes, sin embargo solo se envı́a el primer byte y el CC2420 incrementa automáticamente la dirección. Para llevar a cabo cada una de estas operaciones es necesario que el oscilador este funcionando.. 23.

(35) El bit RAM/Register debe ser puesto en nivel alto para tener acceso a RAM. La dirección de la memoria se forma por nueve bits, el B1:B0 seleccionan el banco de memoria y A6:A0 seleccionan la localidad de memoria dentro de ese banco. La RAM esta dividida en tres bancos de memoria: TxFIFO (banco 0), RxFIFO(banco 1) y el de seguridad (banco 3). Los bancos de FIFO son de 128 bytes cada uno y el banco de seguridad es de 112 bytes. Los bits A6:A0 son transmitidos directamente después del bit RAM/Register, para realizar un acceso es necesario enviar un segundo byte, este byte contiene B1:B0 ası́ como los bits 7 y 6, seguidos por el bit R/W (0 para lectura más escritura, 1 para lectura). Los bits 4-0 no se utilizan. Para escritura en RAM, el dato deberá ser colocado en el pin de SPI después del segundo byte de dirección. Para la lectura de RAM el dato se encontrará en el pin SO después de que el segundo byte de dirección es enviado. Los 256 bytes más bajos de la RAM son utilizados para almacenar datos de FIFO, sin embargo, el TXFIFO y el RXFIFO pueden ser accesados solo a través de los registros TxFIFO (0x3E) y RXFIFO (0x3F). Figura 3.3: Diagrama de tiempos de SPI durante el acceso a Registros y RAM. Bits de Estado Durante la transferencia de bytes de acceso a registro, comandos, el primer byte de dirección de RAM y la transferencia de datos a TXFIFO el CC2420 envı́a el byte 24.

(36) Cuadro 3.1: Bits de Estado BIT 7 6 5. NOMBRE. 4 3 2. ENC BUSY TX ACTIVE LOCK. 1 0. RSSI VALID. XOSC16M Estable TX UNDERFLOW. DESCRIPCIÓN Reservado Indica si el oscilador de 16MHz esta corriendo Indica si ha ocurrido algún overflow en el FIFO durante la transmisión Indica si el módulo de encriptación esta ocupado Indica si hay alguna transmisión activa Indica si el sintetizador de frecuencia PLL esta o no bloqueado Indica si el valor de RSSI es o no válido Reservado. de estado a través del pin SO de forma automática. Los bits de status son descritos en la Tabla 3.1. Enviando un comando de SNOP es posible leer el byte de status o durante el acceso a registros tales como FIFO. Los comandos de Strobe pueden ser vistos como instrucciones de un byte para el CC2420. Cuando es direccionado un registro con comando de strobe una secuencia interna en el transceiver es inicializada. Los comandos de strobe son utilizados para activar el oscilador, el modo de recepción y el modo transmisión, entre otras funciones del transceiver.. 25.

(37) Capı́tulo 4. Implementación de una Red de Sensores con Variables de Red. Una red de sensores esta formada por un conjunto de dispositivos que realizan tareas de medición de variables y supervisión de procesos, cada dispositivo esta formado básicamente por un microcontrolador y un transceiver. En este trabajo de tesis se diseño una red de sensores con variables de red que trabaja con el estándar de comunicación Zigbee. Las pruebas se realizaron con una red formada por cuatro nodos, cada nodo posee ocho variables de entrada y ocho variables de salida. Cada uno de los nodos es configurado individualmente para formar parte de la red y establecer los enlaces de las variables. La programación de cada uno de los nodos se realizó en lenguaje ensamblador.. 4.1.. Descripción de una variable de red. Las variables de red y sus enlaces son definidos mediante las tablas de ruteo las cuales contienen la información sobre ellas. Una variable de red es definida por cuatro campos básicos los cuales se presenta en la Tabla 4.1. Cada nodo posee, además, las rutinas de servicio de las variables de entrada y las rutinas de servicio de las variables de salida. En ellas se programa la tarea a realizar cuando una variable es actualizada.. Número de Bytes Campo. 2 Dirección Destino. 1 Numero de Variable. 1 Tipo. 1-N Datos. Cuadro 4.1: Campos de una variable de red La Dirección Destino consiste de dos bytes los cuales indican la dirección del nodo al que será transmitida la información de esa variable.. 26.

(38) Bits. 7-4 3-0 Número de Variable Destino Número de Variable Origen Cuadro 4.2: Número de Variable. El Número de Variable define en los cuatros bits menos significativos el número de variable origen y en los cuatro bits más significativos el número de variable destino. El campo Tipo es utilizado para definir el número de grupo al cual pertenece la variable, en los tres bits mas significativos (7-5) se define un grupo cuyo objetivo es tener la facultad de transmitir el valor de una variable a un grupo de ellas. Los bits 4-0 definen el tipo de variable; en este caso solamente se definen variables de tipo byte, sin embargo, pueden definirse tipo long, string, etc. El campo Datos corresponde a los bytes de información que contiene la variable la red. En el caso de las variables tipo byte, este corresponde a un solo byte, sin embargo, puede extenderse a N bytes con la restricción del tamaño de la memoria.. 4.2.. Método de Enlace de las Variables de Red. El enlace de las variables de red se define en las tablas de ruteo, en las cuales se establece la relación entre las variables de entrada y salida en cada uno de los diferentes nodos que forman la red. Una variable puede ser enlazada a una o varias variables dentro de la red. Cada enlace puede ser modificado mediante un mensaje de reconfiguración enviado por otro nodo o por una rutina de reconfiguración interna (mismo nodo). Los datos del enlace se establecen en el campo número de variable. Los cuatro bits menos significativos representan el número de variable origen y los bits mas significativos indican el número de variable destino, el cuadro 4.2 muestra tal configuración. El nodo al cual se le envı́a el mensaje es seleccionado mediante el campo dirección destino. Este tipo de enlaces se denomina Nodo-Nodo. El caso más simple es realizar el enlace de una variable de salida en el nodo X, con una variable de entrada del nodo Y como se muestra en la Figura 4.1.. 27.

(39) Figura 4.1: Enlace Nodo-Nodo Bits. 7-5 4-0 Grupo Tipo de Variable Cuadro 4.3: Tipo. Cuando el enlace se realiza con varias variables entonces se denomina enlace NodoGrupo. Como se muestra en la Figura 4.2 una variable de salida del nodo X se enlaza con una variable en los nodos Y, Z. Cuando esta operación es realizada además de los campos dirección destino y número de variable se utiliza el campo tipo, en donde los tres bits más significativos indican el grupo al que pertenece dicha variable como se muestra en el cuadro 4.3. Finalmente una variable de salida puede ser retroalimentada a una variable de entrada del mismo nodo lo cual representa su función más básica, de este modo si se actualiza el valor de un interruptor la información de la variable de salida es propagada hacia un led conectado a una variable de entrada como se muestra en la Figura 4.3.. Figura 4.2: Enlace Nodo-Grupo. 28.

(40) Figura 4.3: Variable de Red Retroalimentada. 4.3.. Direccionamiento y Transmisión. Las variables de salida se encargan de mantener actualizada la información en la red; cada vez que una variable de red actualiza su valor este es propagado de forma automática a través de ella. Cada nodo contiene una tabla con la información de cada variable en cuyos campos se define la variable a la que se envı́a la información, con dichos campos se forman los mensajes a transmitir.. Longitud FCF Número de Secuencia 1 2 1. PANid 2. Dirección Destino 2. Dirección Datos Fuente 2 N. FCF 2. Cuadro 4.4: Formato de un paquete de transmisión El estado de cada una de las variables de red es reportado en un byte de banderas, correspondiendo un bit a cada variable, ası́ por ejemplo cuando la variable número 2 es modificada el byte de banderas (FlagsT) toma el valor de 0000 0100. El programa principal verifica el estado del byte de banderas de las variables de salida, cuando una variable es modificada su bandera se enciende y se ejecuta la rutina de atención de las variables de salida, tal proceso se ilustra en la Figura 4.4. El programa principal llama a la rutina de servicio de variables de salida, en tal rutina se verifica el número de variable que requiere atención; una vez identificada se lee la tabla y se elabora el paquete, cuyos campos se presentan en el cuadro 4.4, para ser transmitido. Los mensajes transmitidos pueden ser del tipo Nodo-Nodo o Nodo-Grupo. El objetivo de la rutina de atención a variables de salida es propagar el valor de la variable de red que fue modificada El cuadro 4.5 muestra la información en un paquete a transmitir y se ilustra en la Figura 4.5. El nodo 1 envı́a la información de la variable número 3 a la variable 6 del nodo 2. Ambos nodos pertenecen a la PAN número uno. La longitud del paquete 29.

(41) Figura 4.4: Variables de Salida se obtiene de sumar el número de bytes de los cuales ocho corresponden a bytes de configuración de acuerdo al estándar 802.15.4 y el resto a los bytes de payload (datos). El campo FCF corresponde a la configuración del paquete, su formato se describe en el cuadro 2.3 y su configuración para este caso se muestra en el cuadro 4.6.. Longitud FCF. Número de Secuencia 0x6188 0x01. PANid. 0x0E. 0x0001. Dirección Destino 0x0002. Dirección Datos Fuente 0x0001 63 40 0A. Cuadro 4.5: Paquete de transmisión. 4.3.1.. Formato del Paquete de Reconocimiento. Para asegurar la confiabilidad de la red se realiza una solicitud de acknowledgment al nodo receptor, el programa principal verifica que este sea recibido después de cada transmisión, si es ası́, la transferencia esta completa y se continua con el proceso de monitoreo en el programa principal. En caso contrario se retransmite el mensaje y finalmente se incrementa un contador de errores. La Figura 4.6 muestra la estructura de acknowledgment, el cual se origina en la subcapa MAC. El frame de acknowledgment es enviado de forma automática cuando 30.

(42) Figura 4.5: Transmisión 0-2 Datos. 3. 4. 5 Acknowledgment. 6 Intra-PAN. 7-9 Reservado. 001. 0. 0. 1. 0. –. 10-11 Dirección corta de 16 bits 10. 12-13 Reservado. –. 14-15 Dirección corta de 16 bits 10. Cuadro 4.6: Formato de la trama de control FCF el transceiver recibió un paquete, cuando dicho paquete es recibido se considera que la comunicación fue exitosa y bien establecida.. 4.3.2.. Mensajes Nodo-Nodo. Los mensajes Nodo-Nodo son transmitidos de una variable de red a una variable de red perteneciente a otro nodo. Cuando un paquete es enviado a un único nodo se utiliza el formato del cuadro 4.5, tal caso se ilustra en la Figura 4.5 El paquete a transmitir se forma utilizando la información de la variable que fue recientemente modificada, dicha información se lee de la memoria flash del microcontrolador en donde se encuentra la tabla de ruteo con los datos de cada variable. El paquete final utiliza el formato indicado en el cuadro 4.4, los bytes tomados de la tabla de ruteo corresponden a la dirección destino y al campo datos (número de. Figura 4.6: Frame de Acknowledgment. 31.

(43) Longitud FCF. Número de Secuencia 0x6188 0x01. PANid. 0x0E. 0x0001. Dirección Destino 0xFFFF. Dirección Datos Fuente 0x0001 63 40 05. Cuadro 4.7: Paquete tipo Nodo-Grupo. Figura 4.7: Ejemplo de Enlace Nodo-Grupo variable, tipo y dato). El resto de los bytes son agregados en la rutina de transmisión debido a que corresponden a bytes de configuración.. 4.3.3.. Mensajes Nodo-Grupo. Los mensajes Nodo-Grupo son transmitidos de una variable de red a varias variables de red pertenecientes a otros nodos. Los paquetes Nodo-Grupo son enviados por una variable de red cuando ası́ se programa en la rutina de atención de tal variable o cuando el usuario selecciona dicha opción en el programa principal con el objetivo de actualizar la información en un grupo de variables de red. El paquete a transmitir es elaborado de igual forma que para el caso Nodo-Nodo, con la única diferencia de que la dirección destino es asignada como 0xFFFF, de modo que el mensaje sea transmitido como un broadcast al que sólo responderán las variables pertenecientes al mismo grupo que transmitió la variable. En la Figura 4.7 se ilustra en enlace que se realiza cuando se envı́a el paquete del cuadro 4.9. La variable de red número 3 del nodo 1 envı́a su información a la variable 32.

(44) Figura 4.8: Variables de Entrada 6 del grupo 2 al cual pertenece. En este ejemplo el nodo 2 pertenece al grupo 4 por lo que descartará el mensaje transmitido. Los nodos 3 y 4 recibirán y procesarán la información enviada por el nodo uno.. 4.4.. Recepción y procesamiento. Las variables de entrada poseen el valor más actualizado de algún dispositivo en la red, la información es recibida por medio de un mensaje que transmite otra variable en la red. La recepción de una variable se atiende en una rutina de interrupción del microcontrolador. Cuando la información se recibe es procesada para actualizar la variable de red correspondiente y un bit en el byte de banderas de recepción es puesto a uno. El programa principal verifica constantemente el estado del byte de bandera de variables de entrada (FlagsR), cuando se detecta que una variable de red ha sido actualizada se llama a la rutina de servicio de variables de entrada. Cada variable de red de entrada realiza una actividad diferente la cual es elegida por el programa de aplicación, entre las tareas a realizar es posible mencionar la retransmisión de los datos a una variable en otro nodo, la escritura de la información a un dispositivo o simplemente almacenar la información en algún registro. Los paquetes de información recibidos presentan un formato similar a los paquetes de transmisión mostrado en la Figura 4.4. El transceiver indica que se recibió un paquete mediante un cambio de estado en 33.

(45) Número de Variable 7-4/3-0 Destino/Origen. Tipo 7-5/4-0 Grupo/Tipo. Dato 7-0 Dato. Cuadro 4.8: Formato del campo Datos el bit de FIFOP, dicho bit es conectado a un pin de interrupción en el microcontrolador de forma que si un paquete es recibido el microcontrolador va a una rutina de servicio de interrupción. En la rutina de interrupción el paquete es descargado en un buffer de memoria RAM, una vez almacenado se verifica si corresponde a un paquete de datos o un paquete de configuración. Si la información corresponde a un paquete de configuración los campos requeridos son actualizados según corresponda. Dicho proceso se describe a detalle en la siguiente sección. Cuando se recibe un paquete de datos, se verifica si fue un mensaje de tipo NodoNodo o tipo Nodo-Grupo, el proceso en cada caso de describe en las secciones 4.4.1 y 4.4.2.. 4.4.1.. Mensajes Nodo-Nodo. Los mensajes Nodo-Nodo son transmitidos de una variable de red a una variable de red perteneciente a otro nodo. El paquete recibido es procesado de modo que el usuario posea la información actualizada y pueda utilizarla en su programa de aplicación. Un paquete tipo Nodo-Nodo se muestra en el cuadro 4.5 y se ilustra en la Figura 4.5 Los bytes enviados en el campo Datos se analizan de acuerdo a la asignación que se muestra en el cuadro 4.8. Una vez almacenados los datos en la memoria del microcontrolador se procede a leer los cuatro bits más significativos del byte Número de Variable para conocer a que variable de red ha sido enviada la información. El número de variable se utiliza como offset para localizar a la variable destino en la tabla de enlace y actualizar el dato contenido, adicionalmente se pone a uno bandera correspondiente a dicha variable.. 34.

(46) 4.4.2.. Mensajes Nodo-Grupo. Los mensajes Nodo-Grupo son transmitidos de una variable de red a varias variables de red pertenecientes a otros nodos. El objetivo es actualizar el valor de un grupo de variables en la red realizando solamente un transmisión. Un paquete tipo NodoGrupo se muestra en el cuadro 4.9, la principal diferencia a un paquete Nodo-Nodo radica en la asignación de la dirección destino Los bytes enviados en el campo Datos se analizan de acuerdo a la asignación que se muestra en el cuadro 4.8. Una vez almacenados los datos en la memoria del microcontrolador se procede a leer los cuatro bits más significativos del byte Número de Variable para conocer a que variable de red ha sido enviada la información. El número de variable se utiliza como offset para localizar a la variable destino en la tabla de enlace y obtener la información correspondiente al subcampo Grupo para verificar si la variable debe atender a la recepción o descartar el mensaje. Si el número de grupo coincide entonces la información se procesa como una variable de tipo Nodo-Nodo, en caso de que el grupo sea distinto la subrutina de interrupción finaliza sin realizar cambios en la tabla de enlace.. 4.5.. Configuración. Las variables de red son configuradas con valores por default con los cuales se establecen las conexiones en la red sin embargo, con el objetivo de ofrecer mayor flexibilidad se diseñaron algoritmos para modificar dichos valores y cambiar los enlaces y caracterı́sticas de alguna variable de red. La información de una variable puede ser modificada de forma interna o de forma externa por medio de un paquete transmitido por otro nodo dentro de la red. Para realizar cambios de forma interna el programa principal habilita un opción que permite realizar modificaciones a las variables. Cuando esta opción es habilitada el programa ejecuta una rutina en la que el usuario puede seleccionar la información que desea colocar en la variable de red. De este modo es posible actualizar cada uno de los campos de la variable de red, los pasos a seguir se muestran a continuación. Selección de la variable a modificar (0-7) Selección del nuevo nodo destino (1-4) Selección de la nueva variable de enlace (0-7) Selección del dato a transmitir (0-255) 35.

(47) Una vez seleccionados cada uno de los campos anteriores los datos son actualizados en las tablas de ruteo, las cuales se encuentran almacenadas en la memoria flash del microcontrolador. Los valores mencionados anteriormente cuentan con ciertas restricciones, en este caso la dirección del nodo destino se restringe a valores entre 1 y 4 ya que la red esta formada por los nodos 1, 2, 3 y 4. Un ejemplo de reconfiguración se presenta en la Figura 4.9. A la izquierda se observa que la variable de salida número 3 esta enlazada a la variable de entrada número 6 del nodo 2, después de ejecutar la rutina de configuración el enlace es ahora entre la variable número 3 del nodo 1 y la variable número 5 del nodo 3.. Figura 4.9: Ejemplo de reconfiguración Para realizar cambios de forma externa un nodo puede enviar mensajes de configuración, cada uno de estos mensajes es configurado por el usuario de acuerdo a la lista que se presenta a continuación: Selección del nodo a configurar Selección de la variable a modificar (0-7) Selección del nuevo nodo destino (1-4) Selección de la nueva variable de enlace (0-7) Selección del dato a transmitir (0-255) Cada mensaje es inicializado con el número 0xFF para indicar que se trata de un paquete de configuración, de este modo el nodo destino utiliza la información que recibió para actualizar los valores de la tabla de enlace. En la Figura 4.10 se presenta el cambio que ocurre cuando mensaje de configuración es enviado. La variable 3 del nodo 1 esta enlazada a la variable 6 del nodo 2. El nodo 4 envı́a un mensaje de reconfiguración al nodo 1 el cual procesa la información y modifica el enlace de la variable 3 cuya 36.

(48) Longitud FCF. Número de Secuencia 0x6188 0x01. PANid Dirección Destino. Dirección Datos Fuente. 0x0E. 0x0001. 0x0004. 0x0001. FF 00 02 35 05. Cuadro 4.9: Paquete de reconfiguración por transmisión. Figura 4.10: Ejemplo de reconfiguración por transmisión nueva variable destino será la variable 5 del nodo 3. Cada uno de los nodos posee una dirección destino, la cual puede ser modificada mediante un mensaje de reconfiguración. El nodo solicita la asignación de una dirección y espera hasta que otro nodo le responda, cuando su mensaje es recibido otro nodo le envı́a una nueva dirección destino mediante un mensaje de broadcast. En el apéndice 1 se presenta el código desarrallado en lenguaje ensamblador.. 37.

(49) Capı́tulo 5. Conclusiones. Las redes de sensores son un conjunto de dispositivos que realizan tareas de medición de variables y supervisión de procesos. Los dispositivos que forman la red se comunican mediante el uso de distintos estándares de comunicación, entre los cuales es posible mencionar Zigbee IEEE 802.15.4 el cual fue creado como una opción para la implementación de redes de sensores inalámbricas y debido a su principal caracterı́stica que es el bajo consumo de potencia fue utilizado en la implementación del presente trabajo de tesis. El algoritmo propuesto que utiliza el modelo de variables de red en redes de sensores aunado al uso del estándar de comunicación IEEE 802.15.4 provee una infraestructura que facilita el intercambio de información entre los dispositivos que la forman, microcontroladores y transceivers, con caracterı́sticas que cubren las expectativas de eficiencia en el protocolo y optimización en el consumo eléctrico. Dichas caracterı́sticas se refieren a la implementación de las variables de red cuyo uso hace compacto los programas de aplicación ya que ofrece al usuario la ventaja de contar con la información, que envı́a otro nodo, enfocándose ası́ en utilizar la información que recibe de algún dispositivo invirtiendo un menor tiempo en el método de transmisión de los datos. Esta caracterı́stica repercute directamente en el consumo de energı́a pues se hace un menor y más eficaz uso de los recursos en las aplicaciones. Se definieron los métodos de enlace y las rutinas de atención a variables de entrada y salida, considerando los casos nodo-nodo y nodo-grupo; adicionalmente se diseñaron e implementaron rutinas de configuración que dan mayor flexibilidad y soporte a la red pues permiten manipular los enlaces entre las variables y por lo tanto entre los dispositivos y sus funciones. Cabe mencionar que este trabajo de tesis podrá ser utilizado como referencia pues no existe un antecedente de trabajos similares. El desempeño del algoritmo se probó en una red formada por cuatro dispositivos en los que se establecieron enlaces de tipo nodo-nodo ası́ como nodo-grupo. En las rutinas de atención a variables de entrada y salida se programaron funciones tales como 38.

Figure

Figura 2.1: Pila de Bluetooth
Figura 2.2: Pila de Zigbee
Cuadro 2.2: Par´ ametros de Radio Frecuencia
Figura 2.3: Frame de Datos
+7

Referencias

Documento similar

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2010 representan en todos los aspectos significativos la imagen fiel

En nuestra opinión, las cuentas anuales de la Entidad Pública Empresarial Red.es correspondientes al ejercicio 2012 representan en todos los aspectos

La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo 168

La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de