Beruflich Dokumente
Kultur Dokumente
INGENIERA DE TELECOMUNICACIN
MLAGA, 2009
Reunido el tribunal examinador en el da de la fecha, constituido por: D./D.__________________________________________________________ D./D.__________________________________________________________ D./D.__________________________________________________________ para juzgar el Proyecto Fin de Carrera titulado:
del alumno/a D. Gonzalo Campos Garrido dirigido por D. Eduardo Casilari Prez ACORD POR ______________________________________ OTORGAR LA CALIFICACIN DE _______________________________________________
Y, para que conste, se extiende firmada por los componentes del tribunal, la presente diligencia
El/La Presidente/a
El/La Vocal
El/La Secretario/a
DEPARTAMENTO DE: Tecnologa Electrnica TITULACIN: Ingeniera de Telecomunicacin PALABRAS CLAVE: Consumo, ZigBee, 802.15.4, CC2480
RESUMEN: En este proyecto se realiza una caracterizacin del consumo de corriente de nodos ZigBee/802.15.4. Se particularizarn los resultados atendiendo a los distintos tipos de nodos que forman una red ZigBee as como a la tarea que realiza cada uno.
Agradecimientos
Quisiera agradecer a mis padres, Bartolom y Celia, el apoyo constante que siempre me han ofrecido. Sin su ayuda, consejo y motivacin, jams habra conseguido llegar hasta aqu. Tambin me gustara dar las gracias a mi tutor, Eduardo Casilari. Su ecaz y rpida ayuda, el inters por este proyecto y, en general, su simpata mostrada hacia mi, han facilitado enormemente mi trabajo durante estos ltimos meses.
ii
Acrnimos
ACLK Auxiliary Clock ADC AF APS Analog to Digital Converter Application Framework Application Support Sub-Layer
AREQ Asynchronous Request BI BO CAP CCA CCM CFP DCO FCS FHSS GPIB GTS HAL IEEE IR ISM ISR Beacon Interval macBeaconOrder Contention Access Period Clear Channel Assessment Counter with CBC-MAC Contention Free Period Digitally-Controlled Oscillator Frame Check Sequence Frequency Hop Spread Spectrum General Purpose Interface Bus Guarantee Time Slots Hardware Abstraction Layer Institute of Electrical and Electronics Engineers Infra Red Industrial, Scientic and Medical Interrupt Service Routine
iii
iv
International Telecommunication Union Light-Emitting Diode Low Power Mode Link Quality Indicator Medium Access Control
OFDM Orthogonal Frequency Division Multiplexing PAN PDU Personal Area Network Protocol Data Unit
PPDU Physical Protocol Data Unit RAM RF RISC SD SIG Random Access Memory Radio Frequency Reduced Instruction Set Computer Superframe Duration Special Interest Group
SMCLK Submain Clock SO SOF SPI mac Superframe Order Start of Frame Indicator Serial Peripheral Interface
WPAN Wireless Personal Area Network ZASA ZDO ZigBee Accelerator Sample Application ZigBee Device Object
ndice general
1. Introduccin
1.1. Ubicacin tecnolgica 1.1.1. 1.1.2. 1.1.3. 1.2. 1.3. 1.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1 4 5 6 6 8 8
Ultra-WideBand
2. ZigBee/802.15.4
2.1. 2.2. Introduccin a ZigBee/802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologa 2.2.1. 2.2.2. 2.2.3. 2.3. 2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
11 12 12 12 13 13 16 16 16 18 20 21 23 23 24 27 28 28 29 30 31 33
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.
Capa de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1. 2.5.2. 2.5.3. Descripcin general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formato de trama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.
Formato de trama
2.7. 2.8.
Seguridad
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Implementaciones comerciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
NDICE GENERAL
37
37 37 39 54 57 59 64 64 65 65 66 67 67 67 69 69 70 71 71 73 73
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Herramientas de instrumentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. 3.2.2. 3.2.3. 3.2.4. Osciloscopio Tektronix TDS 3012B . . . . . . . . . . . . . . . . . . . . . . . . . . . Fuente de alimentacin Tektronix PS2520G . . . . . . . . . . . . . . . . . . . . . . Multmetro HP34401A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CC2520 Evaluation Module Kit y SmartRF05 Evaluation Board . . . . . . . . . .
3.3.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.
77
77 80 80 84 88 90 90 92 93 106 106 107 109
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.
Prdida de conexin con el dispositivo padre . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1. 4.4.2. Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dispositivo nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.
111
111 112
NDICE GENERAL
vii
115 119
viii
NDICE GENERAL
ndice de guras
1.1. 1.2. 1.3. 1.4. 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 2.9. Espectro electromagntico. Fuente: [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 4 6 11 13 14 15 15 17 20 22 27 27 28 30 32 38 38 39 40 41 42 42 44 45 46 53 55 56 Algunas de las frecuencias ISM para distintas localizaciones. Fuente: [2]
Rango respecto a tasa de transferencia para diferentes tecnologas inalmbricas. . . . . . . Espectros de UWB y Wi-Fi 802.11a. Fuente: [7] . . . . . . . . . . . . . . . . . . . . . . .
Pila de protocolos ZigBee/802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Topologas de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Canales radio 802.15.4. Fuente: [11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PDU (
. . . . . . . . . . . . . . .
Tratamiento de la PPDU
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Estructura de supertrama. Fuente: [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de bloques del algoritmo CSMA-CA. Fuente: [10] . . . . . . . . . . . . . . . . . Distintos formatos de tramas MAC. Fuente: [11] . . . . . . . . . . . . . . . . . . . . . . .
2.10. Formato general de trama de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11. Capa de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12. Formato general de trama de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.13. Formato de trama con seguridad habilitada 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9.
kit
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
kit
Conexin entre el integrado CC2480 y un microprocesador . . . . . . . . . . . . . . . . . . Distribucin de pines en CC2480. Fuente: [13] . . . . . . . . . . . . . . . . . . . . . . . . . Formato de trama de comunicacin entre microprocesador y CC2480 . . . . . . . . . . . . Bits de comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10. POLL. Fuente: [12] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11. Ejemplo de asignacin de direcciones en una red de 6 nodos formada con el CC2480 3.12. Arquitectura interna del MSP430. Fuente: [19] . . .
. . . . . . . . . . . . . . . . . . . . . . . .
ix
NDICE DE FIGURAS
3.14. Esquemtico de conexin entre CC2480 y MSP430. Fuente: [21] . . . . . . . . . . . . . . . 3.15. Mquina de estados de la aplicacin de ejempolo ZASA. Fuente: [22] . . . . . . . . . . . . 3.16. Red formada por un coordinador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.17. Coordinador y
58 61 62 62 63 64 65 65 66 67 68 69 70 71 71 72 73 74 74 76 78 78 79 80 81 82 83 83 84 85 85 86 86 87 88 89 89 90 91 92 93
router
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.18. Red compuesta por 3 dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.19. Tektronix TDS 3012B. Fuente: [23] 3.20. Tektronix PS2520G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.23. Monitorizacin de una red de 6 dispositivos ejecutando ZASA . . . . . . . . . . . . . . . . 3.24. Z-Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.25.
Packet Snier
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.27. Representacin de una medida de corriente con MATLAB . . . . . . . . . . . . . . . . . . 3.28. Esquema general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.30. Amplicador INA195 de Texas Instruments. Fuente: [33] . . . . . . . . . . . . . . . . . . . 3.31. INA 195 conectado a un ltro paso bajo. Fuente: [33] . . . . . . . . . . . . . . . . . . . . . 3.32. Filtro Paso Bajo de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.33. Esquema completo del circuito medida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 4.9. Consumo de corriente al conectar la alimentacin . . . . . . . . . . . . . . . . . . . . . . . Consumo de corriente del dispositivo en espera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inicio del coordinador con bsqueda en varios canales Escaneo activo sobre dos canales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Visin en detalle del escaneo activo sobre dos canales . . . . . . . . . . . . . . . . . . . . . Baliza emitida por el nodo para determinar si ya existe un coordinador . . . . . . . . . . . Consumo durante el inicio de un
4.10. Inicio de un
router
router
. . . . . . . . . . .
router
router
al coordinador
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.15. Consumo durante el inicio de un dispositivo nal con escaneo sobre un canal
4.16. Inicio de un dispositivo nal con escaneo sobre dos canales . . . . . . . . . . . . . . . . . . 4.17. Desglose del paso 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.18. Consumo de corriente durante el funcionamiento regular del coordinador de red . . . . . . 4.19. Consumo de corriente del coordinador de red 4.20. Pasos 4 y 5 y desglose del paso 5 . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NDICE DE FIGURAS
xi
4.22. Consumo de corriente durante la transmisin de un paquete de datos . . . . . . . . . . . . 4.23. Paquete de datos enviado por un dispositivo nal . . . . . . . . . . . . . . . . . . . . . . . 4.24. Conrmacin
94 95 96 97 98 99 99 100 101 102 102 103 104 104 104 105 105 105 106 107 107 108 108 116 117 118
ack
a nivel MAC
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.25. Consumo de corriente durante una secuencia activa . . . . . . . . . . . . . . . . . . . . . . 4.26. Corriente media consumida y vida til de las bateras en funcin de
. . . . . . . . . . .
4.27. Consumo de corriente durante una secuencia activa . . . . . . . . . . . . . . . . . . . . . . 4.28. Paquete de datos de 5 bytes de carga til . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.29. Duracin del intervalo de transmisin (TX) para distintos tamaos de paquete
4.30. Consumo durante una secuencia activa por partes . . . . . . . . . . . . . . . . . . . . . . . 4.31. Consumo de corriente y vida til de las bateras en funcin del tamao de paquete (n) . . 4.32. Envo de 2 bytes utilizando seguridad 4.33. Consumo durante el envo de datos con . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ack
. . . . . . . . . . . .
4.34. Consumo debido a la recepcin del mensaje 4.35. Peticin de 4.36. 4.37.
ack
ack
a nivel de aplicacin
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a nivel MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.40. Corriente media consumida y vida til con y sin error de funcionamiento en el CC2480 . . 4.41. Mensajes de reconexin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1. Formato de trama de comunicacin entre microprocesador y CC2480 . . . . . . . . . . . . A.2. Diagrama de ujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3. Aplicacin desarrollada para PC en funcionamiento . . . . . . . . . . . . . . . . . . . . . .
xii
NDICE DE FIGURAS
ndice de tablas
1.1. 2.1. 2.2. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. Comparativa entre los protocolos Wi-Fi, Bluetooth, ZigBee y UWB. Fuente: [3] . . . . . . Caractersticas de las frecuencias 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 14 26 41 43 47 48 48 49 50 51 51 52 57 60 75 81 84 88 91 92 101 108
Ejemplo de tamao de subgrupos de direcciones . . . . . . . . . . . . . . . . . . . . . . . . Descripcin de los principales pines del CC2480 . . . . . . . . . . . . . . . . . . . . . . . . Valores posibles para los campos tipo y subsistema de comando . . . . . . . . . . . . . . . Comandos de la interfaz SYS Comandos de la interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simple
Comandos de la interfaz AF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comandos de la interfaz ZDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros especcos de un dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parmetros especcos de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Consumo de corriente en el CC2480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13. Velocidad de muestreo del osciloscopio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. Consumo en funcin del nmero de canales escaneados durante el inicio de red Consumo en funcin del nmero de canales escaneados durante el inicio de un Consumo mximo y mnimo durante el inicio de un dispositivo nal Consumo medio de corriente en el coordinador de red Consumo medio de corriente en el coordinador de red . . . . . .
router
. . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Consumo de corriente en los diferentes intervalos de una secuencia activa Consumo mximo y mnimo durante la reasociacin a la red
. . . . . . . . . . . . . . . .
xiii
xiv
NDICE DE TABLAS
Captulo 1
Introduccin
1.1. Ubicacin tecnolgica
Durante muchos aos, la comunicacin mediante cables ha sido la forma ms habitual de intercambiar informacin entre dos puntos. No obstante, y a pesar de sus evidentes ventajas, este tipo de comunicaciones presenta las siguientes limitaciones: Geogrcas: Dependiendo de la geografa del terreno donde queramos realizar las comunicaciones, la instalacin y el mantenimiento de la infraestructura necesaria pueden resultar complicados. Esto sucede especialmente en reas rurales, donde la orografa y la extensin del terreno son variables a tener en cuenta. Econmicas: El coste de una red es proporcional a la longitud de cable requerido, as como al nmero de repetidores necesarios para contrarrestar los efectos de la atenuacin. Esto signica que un aumento en la envergadura de nuestra red implica un aumento considerable en su coste. Comodidad: Teniendo en cuenta las necesidades de portabilidad de los usuarios de hoy en da, el uso de cables para el intercambio de informacin entre aparatos electrnicos se hace extremadamente inadecuado. Estas tres principales limitaciones de las comunicaciones por cable explican el auge que estn viviendo las tecnologas inalmbricas en los ltimos aos. Dentro del espectro electromagntico, que podemos ver en la gura 1.1, se usan principalmente las bandas infrarrojos (IR) y de radiofrecuencia (RF) para transmitir seales de forma inalmbrica. Las comunicaciones por IR pueden alcanzar tasas de transferencia de hasta 4 Mbps o ms, pero presentan el inconveniente de que slo permiten las comunicaciones para pequeas distancias y siempre que el transmisor y el receptor tengan lnea directa de visin. Su uso se centra principalmente en las comunicaciones de perifricos electrnicos como telfonos mviles. Por contra, las comunicaciones por radiofrecuencia a la vez que poseen altas tasas de transferencia, tambin permiten la comunicacin entre dos puntos muy alejados y sin lnea directa de visin. Dentro del espectro de RF podemos encontrar la banda ISM (
es una parte del espectro electromagntico de propsito general, que puede ser usada sin necesidad de 1
CAPTULO 1: INTRODUCCIN
licencia siempre que se respeten unos ciertos lmites de potencia emitida. La banda ISM fue denida por el sector de radiocomunicaciones de la Unin Internacional de Telecomunicaciones (ITU-R). El nico requerimiento para desarrollar un producto que use la banda ISM es adaptarse a diversas normas especicadas por los organismos que regulan el espectro electromagntico en diversas zonas geogrcas. En concreto, si nos encontramos en Europa tendremos que seguir las normas de la ETSI (
Los sistemas diseados para trabajar en la banda ISM se caracterizan por un bajo consumo y, en principio, tasas de transmisin no muy altas. No obstante, en los ltimos aos se ha venido trabajando intensamente para aumentar dichas tasas de transmisin de datos. La mayor parte de los sistemas que trabajan en la banda ISM lo hacen bien a 2,4 GHz o bien en la banda por debajo de 1 GHz. Mientras la banda a 2,4 GHz es universal, por debajo de 1 GHz las frecuencias estandarizadas varan de un pas a otro. Por ejemplo, mientras en Europa la frecuencia estndar por debajo de 1 GHz es 868 MHz, en Estados Unidos se usa aquella centrada en los 915 MHz. En la gura 1.2 podemos ver las frecuencias usadas en diferentes partes del globo. A la hora de elegir una determinada frecuencia de trabajo, los diseadores deben tener muy en cuenta las ventajas y desventajas asociadas a dicha eleccin. En concreto: La banda de 2,4 GHz es recomendable cuando la interoperabilidad es un requerimiento para nuestro dispositivo. Adems, si necesitamos que dicho dispositivo funcione correctamente en distintas zonas geogrcas, 2,4 GHz es la mejor eleccin. Por otro lado, puesto que a esta frecuencia trabajan un gran nmero de tecnologas (Wi-Fi, Bluetooth, ZigBee, etc) e incluso algunos hornos microondas, los
altos niveles de interferencia son un problema a superar. Por ltimo, una frecuencia mayor implica que la seal ser absorbida ms fcilmente por el entorno y los objetos circundantes, con lo que el rango de alcance disminuir respecto al caso de usar frecuencias menores.
Usando el rango de frecuencias por debajo de 1 GHz mejoramos algunas de las caractersticas que presentaban problemas para el caso de los 2,4 GHz, en concreto aquellas relacionados con las interferencias y con el rango de alcance. No obstante, y como ya sabemos, trabajar con una frecuencia menor hace que disminuya el ciclo de trabajo y, en consecuencia, el ancho de banda. Adems la interoperabilidad y la movilidad geogrca de nuestro dispositivo tambin se ven ampliamente mermandas.
Para el caso de nuestro proyecto nos centraremos en dispositivos que trabajan en la banda de los 2,4 GHz puesto que damos prioridad a la interoperabilidad, la movilidad geogrca y una tasa de bits aceptable.
Figura 1.2: Algunas de las frecuencias ISM para distintas localizaciones. Fuente: [2]
En los ltimos aos hemos asistido al desarrollo de diversos estndares inalmbricos que operan en la banda ISM. En consecuencia, un gran nmero de productos basados en tecnologa inalmbrica han visto la luz. Dichos estndares se diferencian unos de otros por su tasa de transferencia, rango de alcance, sus dominios de aplicacin, tcnicas de modulacin usadas, etc. A da de hoy, los ms usados y con mayor proyeccin de futuro son Wi-Fi, Bluetooth, ZigBee y Ultra-WideBand (UWB). En la tabla 1.1 podemos ver una comparativa de dichos estndares y en la gura 1.3 vemos representado de forma aproximada su rango de alcance respecto a la tasa de transferencia.
Estndar IEEE Banda de frecuencia Mxima tasa de transmisin Rango de alcance Nmero de canales RF Ancho de banda de canal
ZigBee/802.15.4 802.15.4 868/915 MHz ; 2,4 GHz 250 Kbps 10 - 20 m 1/10 ; 16 0,3/0,6 MHz ; 2 MHz
Wi-Fi 802.11 a/b/g 2,4 GHz ; 5 GHz 54 Mbps 100 m 14 (2,4 GHz) 22 MHz
UWB 802.15.3a 3,1 - 10,6 GHz 110 Mbps 10 m 1-15 500 MHz - 7,5 GHz
Cuadro 1.1: Comparativa entre los protocolos Wi-Fi, Bluetooth, ZigBee y UWB. Fuente: [3]
CAPTULO 1: INTRODUCCIN
Figura 1.3: Rango respecto a tasa de transferencia para diferentes tecnologas inalmbricas.
A continuacin explicaremos de forma resumida los fundamentos de estas tecnologas. No obstante, ya que este texto se centra en la tecnologa ZigBee 802.15.4, sta ser explicada en profundidad en el prximo captulo.
1.1.1. Bluetooth
En 1994 la compaa sueca Ericsson comienza un estudio para desarrollar una interfaz radio de bajo coste y bajo consumo para la interconexin de dispositivos electrnicos, principalmente telfonos mviles. En 1997 se forma el
con el objetivo de promover el uso de este nuevo estndar. Para 1999 ms de 400 empresas forman ya parte del SIG, asegurando el futuro del nuevo estndar. Bluetooth trabaja en la banda ISM a una frecuencia de 2,4 GHz con 79 canales de 1 MHz entre 2402 y 2480 MHz. Esto hace muy alta la probabilidad de interferencia debido la proximidad de redes 802.11, hornos microondas, mandos de garaje, etc. Para evitar en lo posible las interferencias, Bluetooth usa un sistema llamado
por segundo entre los 79 canales radio. El rango de alcance de Bluetooth es de 10 metros con un consumo de 1 mW, aunque dicho rango puede alcanzar los 100 metros si aumentamos la potencia de transmisin hasta los 100 mW. La tasa de transmisin es de 1 Mbps cuando utilizamos modulacin GFSK (
para versiones ms avanzadas del estndar (Bluetooth 2.0) se pueden alcanzar velocidades de hasta 2 Mbps gracias a la combinacin de GFSK con PSK. Una red Bluetooth (comnmente conocida como
uno de los cuales asume el papel de maestro y el resto el de esclavo. Con objeto de reducir el consumo, Bluetooth dene cinco estados diferentes:
Sni :
slots
temporales (que previamente han acordado). As, el esclavo slo estar activo una fraccin del tiempo, ahorrando energa.
Hold : En este modo, un nodo apaga el sistema de radio para ahorrar energa. Antes de entrar en el modo hold tanto el maestro como el esclavo acuerdan cuando deben volver al modo activo. Park : Este estado se utiliza cuando un nodo no quiere tomar parte activa en la piconet pero tampoco
quiere perder la sincronizacin con el maestro. Podemos ver un estudio muy interesante sobre el consumo de potencia para los distintos estados Bluetooth en [5].
1.1.2. Wi-Fi
Wi-Fi es una marca usada por la Alianza Wi-Fi. Esta tecnologa se basa en el estndar IEEE 802.11 y pretende ser la alternativa inalmbrica a las redes de rea local (LAN), as, tambin se la conoce como WLAN (
Wireless
LAN).
a la red Ethernet y por otro a los dems dispositivos Wi-Fi a los que pretende dar cobertura. El alcance es de hasta 100 metros aproximadamente y el consumo es mayor que el de Bluetooth pero, a cambio, Wi-Fi puede alcanzar velocidades de hasta 54 Mbps. Como hemos visto en la primera seccin de este captulo esta tecnologa tambin trabaja en la banda ISM pero, al contrario que Bluetooth, existen varios estndares Wi-Fi, los principales son: 802.11b: Al igual que Bluetooth trabaja a 2,4 GHz por lo cual sufre las mismas interferencias que ste (adems de la interferencia entre Bluetooth y Wi-Fi [6]). Su rango de alcance es de aproximadamente 100 metros con una tasa de transferencia de 11 Mbps. Esta vez, en lugar de FHSS se utiliza DSSS
(Direct Sequence Spread Spectrum) para evitar las interferencias, de forma que se envan varios bits
redundantes por cada bit que compone la seal. Mientras Bluetooth saltaba de una frecuencia a otra para evitar interferencias, Wi-Fi disminuye la tasa de transmisin. En el estndar 802.11b slo se utilizan 3 canales radio de una anchura de 22 MHz y centrados en los 2412, 2437 y 2462 MHz. De esta manera, slo 3 redes W-Fi pueden operar simultneamente en una misma localizacin. La principal ventaja de los dispositivos Wi-Fi basados en 802.11b es su bajo coste. 802.11a: Este estndar surgi en paralelo a 802.11b. Trabaja a una frecuencia de 5 GHz con lo que su tasa de transferencia puede alcanzar los 54 Mbps. Una ventaja es que al trabajar en una frecuencia menos usada, no se dan tantas interferencias. No obstante tiene un rango de unos 30 metros y su coste es mayor. Emplea modulacin OFDM (Orthogonal Frequency Division Multiplexing ). Es incompatible con 802.11b. 802.11g: Es el ms reciente de los tres estndares y, al igual que 802.11b, trabaja a 2,4 GHz. De hecho, la compatibilidad con 802.11b es una de sus principales ventajas. Al igual que 802.11a, utiliza modulacin OFDM pudiendo alcanzar velocidades de hasta 54 Mbps y, al igual que 802.11b, tiene un rango de alcance de unos 100 metros. Por contra, su coste y consumo de potencia son mayores.
CAPTULO 1: INTRODUCCIN
1.1.3. Ultra-WideBand
Basado en los trabajos del IEEE Task Group 802.15.3a, Ultra-WideBand es una tecnologa que pretende saciar la necesidad del intercambio de datos con una alta tasa de transferencia, como pueden ser las videocmaras digitales, sistemas home cinema, etc. De los estndares vistos hasta ahora, UWB es el menos desarrollado y con un futuro ms incierto. UWB hace uso de un espectro muy ancho de frecuencias: desde los 3,1 hasta los 10,6 GHz. Pero, al contrario que Bluetooth y Wi-Fi, no realiza el envo de informacin de forma continua sino en determinados instantes temporales, utilizando gran parte de ese ancho de banda y emitiendo con menos potencia. As, el consumo de los dispositivos basados en este estndar es relativamente bajo. En la gura 1.4 podemos ver una comparacin entre los espectros de UWB y Wi-Fi 802.11a.
Con UWB se pueden alcanzar tasas de transmisin de 110 Mbps con un rango de alcance de 10 metros aproximadamente. No obstante, y de acuerdo con publicaciones como [8], UWB no est alcanzando el xito que a principios de esta dcada algunos auguraban. En parte porque no se estn cumpliendo las expectativas respecto a su capacidad y en parte por el alto coste de fabricacin de los dispositivos basados en este estndar.
1.2.
Como hemos visto en los apartados anteriores, Bluetooth es ideal para la transmisin de datos a distancias cortas; Wi-Fi aumenta tanto la tasa de transmisin como el rango de alcance, con un mayor consumo, lo que nos permite formar redes inalmbricas equiparables en prestaciones a Ethernet; UWB suple las necesidades de transmisin de grandes cantidades de informacin punto a punto y dentro de un corto rango de alcance, perfecto para el uso de dispositivos multimedia de ltima generacin dentro del entorno domstico. Pero todava hay un campo de aplicacin donde las tecnologas inalmbricas tienen una gran variedad de usos y por el que todava no nos hemos preguntado: el control automatizado de hogares, edicios y plantas industriales. A continuacin se muestran algunos de los requerimientos que una tecnologa inalmbrica debera cubrir para desempear un buen papel en este campo de aplicacin: Puesto que el objetivo es cubrir no solo pequeas distancias (como el hogar) sino tambin medias distancias (como fbricas o naves industriales), el rango de alcance es una caracterstica a tener en
cuenta. As, UWB no parece apta puesto que su alcance es del orden de 10 metros. Dichas redes inalmbricas de control industrial y del hogar no necesitaran grandes tasas de transferencia. Por contra, bastara con el envo de pequeas cantidades de datos, como pueden ser comandos con instrucciones, valores discretos ledos por sensores, etc. Wi-Fi y UWB quedan claramente fuera de lugar puesto que se centran en el envo de grandes cantidades de informacin. Larga vida de las bateras. Puesto que los sensores o controles repartidos por la hipottica instalacin podran no tener acceso a la red elctrica, sera idneo que dicha tecnologa inalmbrica presentase un muy bajo consumo, haciendo independientes por un largo tiempo a los diferentes dispositivos que compongan la red. Wi-Fi es claramente inadecuado debido a su alto consumo energtico. En el escenario que estamos proponiendo, los diferentes dispositivos inalmbricos no tendran necesidad de estar el 100 % del tiempo activos. Por contra, bastara con que slo estuvieran activos a instantes peridicos, aprovechando esos momentos para enviar la informacin acumulada. Sera muy deseable poder formar subredes con los distintos dispositivos de la red. Por ejemplo, una subred podra ser la encargada del control de la calefaccin, mientras otra lo sera del control de iluminacin. Como ya hemos dicho, Bluetooth puede formar nicamente de un maestro y siete esclavos. Por todo lo visto en los puntos anteriores, una tecnologa inalmbrica que funcionase en un escenario de control de dispositivos en la industria o dentro del hogar debera estar centrada en: Bajo consumo energtico. Posibilidad de formar subredes. Dispositivos en modo de ahorro energtico cuando no estn siendo usados. Varios estndares han sido diseados para cumplir dichos requerimientos. ZigBee es el estndar con ms proyeccin en este sector puesto que cumple todos los requerimientos anteriores. En el siguiente captulo veremos un estudio en profundidad de dicha tecnologa. Adems de ZigBee, otras tecnologas estn compitiendo por abrirse un hueco en este mercado, ejemplos son Z-Wave o Wibree. Posibles usos de estas tecnologas inalmbricas son: Control de sistemas de iluminacin, sonido o calefaccin. Centralizacin de datos enviados por sensores remotos (temperatura, presin, humedad, movimiento, etc). Recepcin de alarmas. Control remoto de puertas, persianas, etc. Estas funciones ofrecen una inmensa gama de posibilidades a empresas centradas en domtica, inmtica (edicios) o control industrial.
piconets
CAPTULO 1: INTRODUCCIN
1.3.
Este proyecto se centra en las redes inalmbricas de bajo consumo, en concreto estudiaremos el estndar ZigBee 802.15.4. Nuestro objetivo es realizar una caracterizacin del consumo energtico de dichas redes. En nuestra opinin, el estudio de redes ZigBee tiene un inters enorme. Esto se debe a que es una tecnologa emergente, en parte desconocida y en la cual un gran nmero de empresas estn centrando su atencin. Bsicamente lo que haremos ser medir la corriente que consume un nodo ZigBee/802.15.4 mientras realiza diferentes tareas. Para la realizacin de dicho estudio debemos tener en cuenta los siguientes parmetros: Tipo de nodo que estamos estudiando. Como veremos en el siguiente captulo, dentro de una red ZigBee/802.15.4, un nodo puede desempear tareas de coordinador, nal, siendo su consumo diferente para cada uno de los casos. Tarea que realiza: inicio de una red, conexin a una red, transmisin de datos, etc. Conguracin del nodo: frecuencia de envo de informacin, requerimiento de conrmacin, permisos de conexin, longitud del paquete de datos a enviar, etc. Casos extremos como la prdida de conexin con el padre (nodo inmediatamente por encima en la jerarqua de red), intento de conexin a una red inexistente, etc. Aparte de estos objetivos, la realizacin de este proyecto tambin tiene por meta asentar y mejorar el conocimiento sobre herramientas de instrumentacin, as como sobre el
software
hardware
necesarios
1.4.
Estructuracin de la memoria
El presente texto pretende mostrar de forma ordenada y clara los pasos seguidos para la realizacin del proyecto. Para ello explicaremos los fundamentos de la tecnologa ZigBee, describiremos el sistema de medida usado, expondremos los resultados de las medidas de consumo y sacaremos unas conclusiones. Ms concretamente la estructura de esta memoria es:
Se comenzar
describiendo el sistema sobre el que se realizar el estudio. A continuacin hablaremos sobre las tecnologas involucradas en dicho estudio: herramientas de instrumentacin y herramientas
software.
Captulo 4: Estudio del consumo. En este captulo expondremos los resultados obtenidos tras
realizar el estudio del consumo de corriente.
siones a las que hemos llegado y plantearemos posibles lneas de trabajo por las que ampliar nuestro
Apndice A:
dispositivo ZigBee/802.15.4 va el puerto serie. La aplicacin en cuestin se ha programado utilizando Visual Basic .NET.
10
CAPTULO 1: INTRODUCCIN
Captulo 2
ZigBee/802.15.4
2.1. Introduccin a ZigBee/802.15.4
Como ya hemos visto en el captulo 1, ZigBee/802.15.4 es una tecnologa inalmbrica de bajo consumo, baja tasa de transmisin y coste reducido. Se engloba dentro del grupo de las tecnologas WPAN (Wireless Personal Area Network ). El estndar ha sido denido por la ZigBee Alliance, de la que forman parte ms de 300 empresas, y por el IEEE Task Group 4. En concreto, la ZigBee Alliance se encarga de la denicin de las capas de red y aplicacin mediante el estndar ZigBee [9] mientras que el Task Group 4 se centra en la denicin de las capas fsica y MAC (Medium Access Control ) mediante estndar 802.15.4 [10]. Estos trminos, ZigBee y 802.15.4, son a veces utilizados como sinnimos cuando en realidad denen partes diferentes de la pila de protocolos. En la gura 2.1 podemos ver una simplicacin de dicha pila de protocolos.
Esta tecnologa es idnea para formar redes de sensores. Los posibles usos de ZigBee/802.15.4, como principal exponente de las redes inalmbricas de bajo consumo, han sido expuestos en la seccin 1.2. Dentro del estndar ZigBee encontramos dos versiones: ZigBee-2006 y ZigBee PRO (2007). En las siguientes secciones utilizaremos el trmino ZigBee para referirnos a ZigBee PRO. La mayora de los fabricantes comercializan dispositivos compatibles con ambas versiones. 11
12
CAPTULO 2: ZIGBEE/802.15.4
2.2.
Topologa
Antes de describir los distintos tipos de redes ZigBee es necesario denir los 3 tipos distintos de dispositivos que la componen. Estos son:
Coordinador.
Router .
tareas de seguridad. Para poder formar una red ZigBee debe existir un coordinador. Estos dispositivos son los encargados de extender la cobertura de la red, gestionando
nuevos caminos en el caso de que la red experimente congestin o se produzca la cada de algn nodo. Pueden conectarse directamente al coordinador o a otros
Dispositivo nal.
hijo.
Este tipo de dispositivo puede enviar y recibir datos pero no realizar tareas de
router
FFD (Full Function Device). Este dispositivo tiene una funcionalidad completa. Puede funcionar como Coordinador, router o dispositivo nal. RFD
(Reduced Function Device) .
Tiene una implementacin mnima del protocolo 802.15.4. Est pensado para realizar tareas extremadamente simples en las que se enven pequeas cantidades de datos. Ejemplos de esto pueden ser interruptores de luz, sensores de infrarrojos u otros dispositivos con una funcionalidad bsica. Slo pueden estar conectados a un FFD. nicamente pueden funcionar como dispositivos nales. Como podemos ver en la especicacin de ZigBee [9], el estndar soporta 3 tipos de topologas de red: estrella, malla y rbol (gura 2.2). Una red se caracteriza por su identicador PAN (PAN ID), que la distingue de otras posibles redes funcionando en la misma zona.
routers
de la red; de hecho, la
13
router
dispositivo para gestionar la red, la abilidad de esta conguracin es mayor. En la topologa en malla ganamos en exibilidad a costa de aumentar la complejidad. Esto se debe a que para comunicar cualquier par de dispositivos hay ms de un camino posible. La eleccin de dicho camino conlleva un aumento de computacin que debe realizarse a nivel de red. Por lo tanto, estas consideraciones no se tienen en cuenta en la especicacin del IEEE 802.15.4 si no que se denen en la especicacin de ZigBee.
de gestionar el encaminamiento, pueden tener dispositivos hijos. Estos dispositivos hijos pueden ser otros
routers
o dispositivos nales. La topologa en rbol, al igual que la mallada, es idnea para expandir la
red de forma dinmica. Al igual que en el caso anterior se recomienda que el coordinador y los estn alimentados de forma cableada.
(a) Estrella
(b) Malla
Figura 2.2: Topologas de red
(c) rbol
2.3.
Capa Fsica
La capa fsica gestiona la transmisin y recepcin de datos usando determinados canales radio. En 802.15.4 tenemos tres posibles bandas de frecuencia en las que poder trabajar: 868 MHz, 915 MHz y 2,4 GHz. En la primera banda nicamente tenemos un canal entre 868 y 868,6 MHz. En la siguiente banda tenemos 10 canales entre 902 y 928 MHz. Por ltimo, 16 canales ms estn localizados entre 2,405 y 2,48 GHz. El protocolo permite una seleccin dinmica del canal, de forma que se elija el menos ruidoso de entre aquellos posibles. Lgicamente, la tasa de transferencia es distinta para cada una de las bandas de frecuencia. Para 868 MHz la tasa de transferencia es de 20 Kbps, para 915 MHz es de 40 kbps y para 2,4
14
CAPTULO 2: ZIGBEE/802.15.4
GHz es de 250 kbps. Por supuesto, las bandas de 868 y 915 MHz tienen un rango de alcance mayor que la de 2,4 GHz a cambio de una menor tasa de transferencia. Otra diferencia es que, como vimos en la seccin 1.1, la banda de 868 MHz est disponible slo en Europa mientras que la de 915 MHz slo en Estados Unidos y Australia. Sin embargo la banda a 2,4 GHz es universal, por lo que su uso est permitido en la mayora de pases del mundo. En la gura 2.3 podemos ver una representacin de los canales radio 802.15.4.
tro. En la tabla 2.1 mostramos la tasa de transferencia y el tipo de modulacin usada para las distintas frecuencias de transmisin. Banda de frecuencia 868 MHz 915 MHz 2,4 GHz Tasa de transferencia 20 kbps 40 kbps 250 kbps Modulacin BPSK BPSK O-QPSK
Para congurar la capa fsica se emplean una serie de constantes y atributos. Podemos ver un listado exhaustivo a partir de la pgina 45 de [10]. Ejemplos de dichas constantes y atributos son
aMaxPHY-
Activar y desactivar el transceptor radio. El transceptor radio tiene tres modos de funcionamiento: transmisin, recepcin y sleeping (descanso). Bajo peticin de la capa MAC la capa
fsica debe conmutar entre estos tres estados. El estndar exige que la conmutacin entre transmisin y recepcin, o viceversa, se haga en menos de 12 smbolos (
aTurnaroundTime
de 2,4 GHz y teniendo en cuenta que cada smbolo corresponde a 4 bits, se puede calcular el tiempo mximo de conmutacin entre los estados de transmisin y recepcin:
15
12
250
(2.1) (2.2)
encargada de comprobar qu nivel de potencia tiene un determinado canal. Esta medida es utilizada por la capa de red como parte de su algoritmo para la eleccin de canal.
Indicacin de la calidad de enlace (LQI, Link Quality Indicator ). Mide la potencia en dBm
de la seal que ha transmitido el ltimo paquete.
Evaluacin de canal libre (CCA, Clear Channel Assessment ). Este indicador ser utilizado Carrier Sense Multiple Access with Collision Avoidance ) como se ver Seleccin de frecuencia. Dentro de los 27 canales posibles de ZigBee, la capa fsica debe ser capaz
de seleccionar aquel que le especiquen las capas superiores.
Una vez generada la PPDU, y de acuerdo con el estndar 802.15.4 [10], los bits se convierten en smbolos. Puesto que cada smbolo est formado por 4 bits, se tienen 16 posibles smbolos. Para cada uno de ellos existe una secuencia de chips (formada por 32 bits cada una) que ser la que denitivamente se module y enve gracias al sistema de radio. El proceso se esquematiza en la gura 2.5.
16
CAPTULO 2: ZIGBEE/802.15.4
2.4.
Capa MAC
Generar balizas (
Al igual que ocurre con la capa fsica, para congurar la capa MAC se utilizan una serie de constantes y atributos. Podemos ver un listado exhaustivo en la pgina 159 de [10]. Ejemplos de dichas constantes y atributos son
macBeaconOrder, macSuperframeOrder
sern utilizados en las siguientes secciones para profundizar en la descripcin de la capa de acceso al medio.
Modo balizado. La baliza es generada peridicamente por el coordinador y distribuida por toda la red gracias a los routers. Dicha baliza sirve para sincronizar todos los nodos de la red, de modo
que estos puedan despertarse en un momento determinado (conocido por todos), enviar los datos almacenados y volver al modo de ahorro energtico (
routers
sleep ).
y los dispositivos nales pueden pasar gran parte del tiempo en modo de bajo consumo. La
topologa en malla no admite el modo balizado debido a la complejidad que ello conllevara (a un mismo dispositivo podran llegarle balizas provenientes de distintos
routers ). routers
Modo no balizado.
En este modo los dispositivos no estn sincronizados unos con otros. As,
sleep
y el
coordinador deben estar continuamente con el sistema radio en modo recepcin y as estar preparados para recibir datos en cualquier momento. Este modo es ms simple pero hace que gran parte de sus nodos (el coordinador y los
routers )
17
Modo balizado
El coordinador es el que determina si trabajamos o no en este modo. En caso positivo, l ser el encargado de distribuir la baliza a todos los elementos de la red. Cuando se trabaja en el modo balizado se utiliza una estructura de envo de datos conocida como supertrama. Una supertrama est delimitada por dos balizas consecutivas y se compone por una parte activa y otra inactiva (gura 2.6). Durante la parte activa el coordinador interacta con la red mientras que en la inactiva entra en modo BO (
del BI ( y
macBeaconOrder ). Determina el intervalo de transmisin de las balizas. El valor del BO y Beacon Interval ) estn relacionados segn la siguiente expresin, donde 0 BO 14
representa el nmero de smbolos que forman una supertrama de
aBaseSuperf rameDuration
del SO y del SD (
macSuperframeOrder ). Determina el tamao de la parte activa de la supertrama. El valor Superframe Duration ) estn relacionados segn la siguiente expresin, donde
SD = aBaseSuperf rameDuration 2SO smbolos
0 SO BO 14:
Si los valores de BI y SD coinciden la supertrama carecer de periodo inactivo. Por otra parte, de acuerdo con el estndar 802.15.4, si SO y BO valen 15 el coordinador congurar la red para trabajar en modo no balizado.
slots temporales, el primero de los cuales contiene la baliza. Estos slots se dividen en dos grupos: el Contention Access Period (CAP) y el Contention Free Period (CFP). A continuacin los detallamos:
La parte activa de la supertrama se divide en 16
CAP. Un dispositivo que desee comunicarse con su nodo padre debe competir por el canal utilizando el algoritmo CSMA-CA. Si consigue transmitir lo har utilizando uno de los slots del CAP. CFP. Bajo peticin de un nodo, el coordinador puede asignarle uno o varios slots
temporales del CFP de forma que no tenga que competir con otros nodos de la red por el envo de informacin. Un
18
CAPTULO 2: ZIGBEE/802.15.4
grupo de
slots
(GTS). Mediante esta caracterstica, el protocolo 802.15.4 puede ofrecer cierta calidad de servicio a ciertas aplicaciones con requerimientos especiales.
Modo no balizado
Como hemos dicho en el punto anterior, si se asigna el valor de 15 a las variables BO y SO activaremos el modo no balizado. En l no existen los conceptos de
disputa el acceso al canal mediante el algoritmo CSMA-CA y, si lo consigue, los dems dispositivos tendrn que esperar su turno. nicamente los mensajes de reconocimiento de mensaje recibido ( o
ack
en ingls) podrn ser enviados inmediatamente y sin necesidad de competir por acceder al medio
routers
consumo de los dispositivos nales s se mantiene prcticamente igual en ambos modos puesto que siempre pueden pasar al modo de bajo consumo una vez transmitidos los datos. Vindolo de otra forma podemos decir que en una red con balizas todos los dispositivos estn dormidos la mayor parte del tiempo, gracias a la sincronizacin entre ellos que les permite despertarse a la vez. En una red sin balizas el coordinador y los
routers
no tienen manera de saber cundo se despertarn los dispositivos nales, por lo que tienen
que estar el 100 % del tiempo con el sistema radio activado. El modo no balizado nos ofrece simplicidad a cambio de un consumo mayor y una menor eciencia.
backo
debe estar sincronizado con la baliza. Para el caso del CSMA-CA no ranurado, cada
backo.
Number of Backos ). Es el nmero intentos de acceso al canal que un dispositivo lleva acumu-
lados. Cada vez que un dispositivo quiere enviar un nuevo paquete esta variable debe ser inicializada a 0.
Contention Window ). Es la longitud de la ventana de contienda. Representa el nmero de periodos de backo que el canal debe estar sin actividad para que se considere libre y, en consecuencia,
CW ( poder ser asignado a un dispositivo.
19
BE (
que el dispositivo debe esperar para intentar acceder al canal despus de un acceso fallido. A continuacin explicaremos de forma detallada ambos algoritmos. En la gura 2.7 podemos ver su diagrama de bloques.
CSMA-CA ranurado
Este algoritmo se divide en cinco pasos: 1. Inicializacin de NB, CW y BE.
macBattLifExt. Si sta es FALSE entonces BE = macM inBe, que por defecto vale 3. Si macBattLifExt = TRUE (extensin de vida de la batera) entonces BE = mnimo(2, macM inBE).
NB = 0
y
CW = 2.
2. Tiempo de espera aleatorio para intentar acceder al canal. Este tiempo de espera valdr como mximo
2BE 1
periodos de
backo.
Si
BE = 1
backo.
resulta estar ocupado pasamos al paso 4. 4. CW es reiniciado a su valor original (2). NB se incrementa en 1. BE tambin se incrementa en 1 siempre que no sobrepasemos el valor de
macMaxBE
5. El canal no est siendo usado. Se disminuye en 1 el parmetro CW. Si CW es 0 entonces se ha superado la ventana de contienda y el canal se considera libre. La transmisin puede comenzar. Si CW no es 0 todava no hemos superado la ventana de contienda con lo que se vuelve al paso 3.
CSMA-CA no ranurado
Este algoritmo es muy similar al visto en el punto anterior. Los pasos a seguir son: 1. Inicializacin de NB, CW y BE. Al igual que en el caso anterior
N B = 0.
CW = 0
con lo que no existe ventana de contienda: si se detecta una nica vez que el canal no est
siendo usado se considera que est libre. Por otro lado, el modo no balizado no soporta el modo
20
CAPTULO 2: ZIGBEE/802.15.4
Deteccin de energa de canal. Mediante este procedimiento, y a peticin de las capas superiores,
la capa MAC mide la energa de un canal o lista de canales determinados. Para ello indica a la capa fsica realizar una deteccin de energa de canal (ED) para cada uno de los canales elegidos. Mediante este procedimiento el coordinador puede elegir, entre varios, canales aquel con menos trco e iniciar la red PAN en l.
21
Escaneo activo de canal. Permite a un dispositivo localizar a un coordinador que transmita balizas y est dentro de su rango de alcance. Los routers y los dispositivos nales usan este procedimiento
a la hora de asociarse a la red. Si el dispositivo se trata de un coordinador, este mtodo se puede usar para detectar las redes PAN dentro de un canal y as seleccionar un identicador distinto a los ya existentes para la nueva red. Un dispositivo que realice un escaneo activo de canal transmitir peridicamente balizas. Si la red trabaja en modo no balizado, el coordinador responder a cada una de estas balizas con una nueva baliza. Si la red trabaja en modo balizado, el coordinador ignorar estas balizas y seguir transmitiendo de forma regular las suyas. As, en cualquier caso, el dispositivo que realiza el escaneo recibir una serie de balizas como respuesta a su peticin de asociacin.
Escaneo pasivo de canal. La nica diferencia con el caso anterior es que el dispositivo que realiza
el escaneo no transmite baliza alguna. Lo nico que har ser escuchar el canal en busca de balizas emitidas por el coordinador. Obviamente, este modo no es adecuado para el modo no balizado.
ack. Header ):
Carga til. Este campo vara para cada uno de los cuatro tipos de tramas. Las tramas de contienen este campo.
ack
no
Control de trama: 16 bits para indicar el tipo de trama, si la trama utiliza un cdigo de seguridad, si se requiere de
ack
22
CAPTULO 2: ZIGBEE/802.15.4
(d) Trama de
ack
Identicador de PAN destino: 16 bits para identicar el nmero de PAN con el que nos estamos comunicando. Usamos el valor hexadecimal FFFF para indicar cualquier PAN.
Direccin destino (16 64 bits). Identicador de PAN origen (16 bits). Direccin origen (16 64 bits).
Carga til.
MFR.
23
Tramas de baliza
El MHR y el MFR son exactamente iguales que en el caso anterior. En este caso el campo de carga til tiene el siguiente formato: Especicacin de supertrama: 16 bits para especicar los parmetros BO, SO, miso de asociacin, etc. Informacin sobre los campos GTS. Direcciones pendientes de ser atendidas (
macBattLifExt, per-
Tramas de datos
El MHR y el MFR son exactamente iguales a los casos anteriores. El campo de carga til contiene la informacin pasada por las capas superiores.
Tramas de
ack
El MHR est compuesto nicamente por los campos de control de trama y de nmero de secuencia. Este tipo de trama no posee carga til. El campo MFR es igual que en los casos anteriores.
2.5.
Capa de red
routing ).
Las constantes y atributos utilizadas para congurar la capa de red son listadas en la denicin del
24
CAPTULO 2: ZIGBEE/802.15.4
A nivel de red, existen dos tipos de direcciones: direcciones cortas (16 bits) y direcciones largas o direcciones IEEE (64 bits). Cada dispositivo debe tener asignada una direccin IEEE nica. No puede haber dos dispositivos que cumplan con la especicacin ZigBee y que posean la misma direccin IEEE. As, esta direccin es asignada en el momento de la fabricacin del dispositivo. Por contra, la direccin corta es asignada por la capa de red de forma dinmica. Dentro de una red ZigBee no puede haber ms de un dispositivo con igual direccin corta.
2.5.2. Funciones
A continuacin explicamos de forma ms detallada las funciones principales que realiza la capa de red ZigBee.
Capable
nwkcCoordinator-
igual a 1) y no estn actualmente asociados a una red pueden realizar este procedimiento.
El primer paso para establecer una nueva red es indicar a la capa MAC que realice una deteccin de energa de canal para un determinado conjunto de canales o, en su defecto, para todos. Si estamos obligados a trabajar nicamente en un canal, no es necesario realizar dicha deteccin de energa. Una vez realizada la deteccin de energa de los canales, se ordenan de mayor a menor calidad, descartando aquellos con un nivel de interferencia demasiado elevado. A continuacin se realiza un escaneo activo de canal para cada uno de ellos. Finalmente se elige aquel canal con menor interferencia y en el que trabaje un menor nmero de redes ZigBee. Una vez seleccionado el canal se elige un identicador de red menor que el valor hexadecimal 0xFFFF (ya que ste signica cualquier red) y se indica a la capa MAC dicho valor. A continuacin el dispositivo que ha iniciado la red, el coordinador, se autoasigna la direccin corta 0x0000. Por ltimo se indica a la capa MAC que la red ha sido establecida con xito.
routers
acAssociationPermit
l. La capa de red puede modicar dicho valor de forma indenida o simplemente durante una cantidad de tiempo determinada.
Descubrimiento de red
Mediante este procedimiento la capa de red indica a la capa superior qu redes ZigBee estn operando dentro del rango de alcance del dispositivo en cuestin. La capa de red solicita a la capa MAC realizar un escaneo activo de canal para un determinado grupo de canales. Una vez realizado la capa MAC responder indicando en qu canales lgicos estn trabajando las redes encontradas, cules son sus identicadores (PAN ID) y si permiten o no a otros dispositivos unirse a ellas.
25
routers
de alcance del dispositivo en cuestin). Lgicamente descartaremos aquellos que no tengan activado el permiso para unirse ellos. Entre los candidatos restantes seleccionaremos aquellos con menor profundidad (mnima distancia hasta el coordinador); esto quiere decir que el coordinador siempre ser prioritario, a continuacin los
routers
mismas condiciones el dispositivo que intenta unirse a la red puede elegir libremente entre ellos. Durante el procedimiento de unin a la red, el dispositivo debe enviar su direccin IEEE al candidato a dispositivo. El dispositivo padre guardar en su lista de direcciones dicha direccin IEEE, le asociar una direccin corta y, acto seguido, enviar esta direccin corta al dispositivo. En adelante ambos dispositivos, padre e hijo, utilizarn esta direccin corta para comunicarse. Cuando un dispositivo hijo pierde la conexin con su dispositivo padre, puede solicitar una reasociacin con ste. El procedimiento es idntico al que acabamos de describir excepto por el detalle de que, aunque el dispositivo padre haya cambiado su conguracin y ya no acepte a otros dispositivos unirse a l, permitir asociarse al dispositivo hijo puesto que no se trata de una nueva asociacin. Otra opcin cuando el dispositivo hijo ha perdido la conexin con el dispositivo padre es solicitar a la capa MAC realizar un escaneo de canal por dispositivo hurfano. Cuando la capa MAC de un dispositivo hurfano realiza este procedimiento enva su direccin IEEE. Cuando el padre recibe dicha direccin comprueba que dicho dispositivo era su hijo y le responde indicando su antigua direccin corta, con lo que se considera que la conexin se ha recuperado.
Tablas de vecindad
Un dispositivo debe guardar informacin de cada uno de los dispositivos dentro de su rango de alcance. Esta informacin es almacenada en la tabla de vecindad. Dicha tabla es de utilidad en diferentes contextos. Primero, cuando un dispositivo intenta unirse a la red utiliza esta tabla para realizar el listado de candidatos a dispositivos padre, como hemos visto en el punto anterior. Segundo, una vez asociado, esta tabla se utiliza para almacenar parmetros relacionados con la calidad del enlace, tipo de relacin y dems informacin referente a los dispositivos dentro de nuestro rango de alcance. La tabla de vecindad debe ser actualizada cada vez que recibimos una trama proveniente del otro dispositivo. Los parmetros que se almacenan en esta tabla para cada uno de los distintos dispositivos son: direccin IEEE, direccin corta, tipo de dispositivo, relacin con dicho dispositivo (el dispositivo es el padre, hijo, hijo asociado a un padre comn, antiguo hijo, etc), LQI, nmero de saltos hasta dicho dispositivo, permiso de asociacin, si ha sido seleccionado como candidato a padre, etc.
dispositivo (candidato a dispositivo hijo), el dispositivo padre debe asignarle una direccin corta. Este algoritmo se basa en la generacin de subgrupos de direcciones. El coordinador elige la primera
26
CAPTULO 2: ZIGBEE/802.15.4
direccin libre, 0x0000. A continuacin, asigna un subgrupo de las direcciones restantes a cada uno de sus hijos con capacidades de
router. Cada uno de esos hijos tendr como direccin propia la primera del
subgrupo que le ha sido asignado, teniendo las restantes direcciones disponibles para repetir el proceso con los dispositivos hijos que se conecten a l. Una vez asignados estos subgrupos de direcciones a los
routers, se asignan las direcciones a los dispositivos nales, comenzando por la primera direccin libre.
Para calcular el tamao de estos subgrupos de direcciones se tienen en cuenta ciertos parmetros de
nwkMaxChildren o Cm ), mxima profundidad de la red (nwkMaxDepth o Lm ) y mximo nmero de routers que un padre puede tener como hijos (nwkMaxRouters o Rm ). Teniendo en cuenta que d es la profundidad de un deterla red denidos por el coordinador: mximo nmero de hijos que un padre puede tener ( minado dispositivo [9] (nmero de saltos necesarios por el camino ms corto hasta llegar al coordinador,
0 d Lm )
denimos la funcin
Cskip(d)
como sigue:
Cskip(d) =
1 + Cm (Lm d 1) 1 + Cm
L Rm Cm Rmm d1 1 Rm
si Rm = 1
(2.3)
en otro caso
Cskip(d)
Cskip(d) = 0,
no puede tener dispositivos hijo. Formalmente, las direcciones asignadas a los dispositivos nales vienen dadas por la siguiente expresin, donde la direccin de su dispositivo padre:
Direcn
Direcpadre
es
Direcn
Direcpadre + Cskip(d) Rm + n
(2.4)
En la denicin del estndar ZigBee [9] podemos ver un ejemplo de dicho algoritmo. En l, para todos los dispositivos de la red: subgrupos de direcciones,
Cm = 8, Rm = 4 Cskip(d),
Lm = 3.
Profundidad en la red, d 0 1 2 3 (=
Cskip(d)
31 7 1 0
Lm )
Adems de este, es importante mencionar que existe otro mecanismo de asignacin de direcciones. Su nombre es mecanismo estocstico de asignacin de direccin [9]. En l, todas las direcciones (excepto la del coordinador, que sigue siendo la 0x0000) se asignan de manera aleatoria. nicamente ZigBee PRO soporta el mecanismo estocstico de asignacin de direccin.
27
Encaminamiento
El coordinador de red y los
routers
contienen datos como la direccin corta del destino, el estatus de la ruta, o la direccin corta del siguiente dispositivo en la ruta. Para calcular la mejor ruta posible se usa un algoritmo que se basa en el coste de un camino determinado. El coste se puede calcular teniendo en cuenta el nmero de saltos necesario y la calidad de los enlaces (usando el indicador LQI).
28
CAPTULO 2: ZIGBEE/802.15.4
Campo de control de trama. Est compuesto por 16 bits que indican el tipo de trama, la versin
del protocolo y si se est empleando seguridad en la transmisin, principalmente.
Direccin IEEE destino. Su uso es opcional y es indicado en el campo de control de trama. Direccin IEEE origen. Su uso es opcional y es indicado en el campo de control de trama. Campo de control Multicast . Su uso es opcional y es indicado en el campo de control de trama. Dene parmetros necesarios para la transmisin multicast. Subtrama de ruta origen. Su uso es opcional y es indicado en el campo de control de trama. Carga til.
2.6. Capa de aplicacin
application framework )
o ZDO).
En la gura 2.11 podemos ver una representacin de la capa de aplicacin y sus diferentes partes.
29
En el siguiente subapartardo explicaremos cada una de las partes que componen la capa de aplicacin ZigBee. No obstante, antes es necesario explicar el signicado de varios trminos bastante recurrentes a la hora de hablar de la capa de aplicacin:
cluster
para el control
Punto de acceso (endpoint ). Dentro de un mismo dispositivo, se pueden denir varios puntos de
acceso. Cada uno de estos puntos de acceso gestiona el funcionamiento de una aplicacin diferente. Siguiendo con el ejemplo del sistema de domtica, un
router
puede tener un punto de acceso para el manejo del sistema de alarmas, otro para el control de luces, otro para el de temperatura, etc.
Vnculo (binding ).
destino. Slo se puede realizar un vnculo entre puntos de acceso que compartan el mismo
cluster.
Ya que un dispositivo puede poseer varios puntos de acceso, tambin puede soportar varios vnculos.
2.6.2. Subcapas
Subcapa de soporte de aplicacin (APS o Application
la capa de aplicacin. Las tareas que realiza esta capa son: Genera la PDU a nivel de aplicacin. Una vez los puntos de acceso de dos dispositivos estn vinculados, la capa APS es la encargada de gestionar el intercambio de mensajes. Mejorar la abilidad de la capa de red. Por ejemplo, se puede denir una conrmacin de aplicacin. Rechaza mensajes recibidos por duplicado.
Sublayer )
La subcapa de soporte de aplicacin proporciona una interfaz de comunicacin entre la capa de red y
ack
a nivel
Framework )
El marco de aplicacin es el entorno en el cual se gestionan las diferentes aplicaciones. Cada una de dichas aplicaciones est relacionada a un punto de acceso distinto. Se permiten hasta 240 aplicaciones distintas dentro de un mismo dispositivo. El punto de acceso 0 est asignado al nivel ZDO. El rango de 241-254 est reservado para uso futuro. Por ltimo, el punto de acceso 255 es usado para la comunicacin
broadcast
Esta capa es la encargada de denir tanto el perl de aplicacin como los diferentes
cluster
cluster
clusters.
Cada
ID).
30
CAPTULO 2: ZIGBEE/802.15.4
Este nivel satisface necesidades comunes a todas las aplicaciones dentro del marco de aplicacin. Las
Denir el rol del dispositivo dentro de la red (coordinador, Gestiona los vnculos entre puntos de acceso. Asegura una comunicacin segura entre dispositivos.
router
o dispositivo nal).
Campo de control de trama. Est formado por 8 bits que indican el tipo de trama, si se utiliza seguridad, si estamos empleando la extensin de cabecera y si se requiere conrmacin ack a nivel
de aplicacin.
Direccin del punto de acceso destino. Direccin de grupo. Si se usa direccionamiento de grupo la trama no debe incluir la direccin del
punto de acceso destino. Todos los puntos de acceso asociados a la direccin de grupo en cuestin recibirn esta trama.
Cluster
Perl ID. Identicador del perl de aplicacin. Direccin del punto de acceso origen. Contador APS. Se usa para evitar la recepcin de tramas duplicadas. Extensin de cabecera. Extiende la funcionalidad de la cabecera. Carga til.
2.7: SEGURIDAD
31
2.7.
Seguridad
Desde el punto de vista de la seguridad, las redes inalmbricas son altamente vulnerables debido a que no se requiere tener acceso a un medio cableado para participar en las comunicaciones. ZigBee/802.15.4 est orientado hacia un mercado en el que el bajo consumo y el bajo coste son requisitos esenciales. Debido a la restriccin en lo que al coste se reere, los dispositivos que trabajan con esta tecnologa se enfrentan a una limitacin computacional evidente. Esto quiere decir que los sistemas de seguridad son mas difciles de implementar en sistemas que trabajan bajo ZigBee/802.15.4. Adems, a la hora de implementar mecanismos de seguridad para ZigBee/802.15.4 se ha tenido en cuenta que los dispositivos no tienen por qu tener acceso a una base de datos de forma continua. De esta forma, los distintos dispositivos deben ser capaces de gestionar los mecanismos de seguridad por s mismos. Por ltimo, es importante destacar que ZigBee/802.15.4 est orientado hacia en envo de pequeos paquetes de informacin, por lo que los mecanismo de seguridad utilizados no deberan aumentar en exceso el tamao de la cabecera En los estndares ZigBee [9] y 802.15.4 [10] se denen mecanismos de seguridad para las capas MAC, de red y de aplicacin. El mecanismo criptogrco utilizado se basa en el uso de claves simtricas. La clave en cuestin debe ser generada por las capas superiores. El mecanismo criptogrco debe ser capaz de asegurar: Condencialidad de los datos o privacidad. Esto quiere decir que la informacin transmitida slo de llegar a los dispositivos asociados a la red. Autenticacin de los datos. Se debe asegurar que la informacin recibida proviene de un dispositivo vlido (en otras palabras, no ha habido intromisin en las comunicaciones). Deteccin de informacin duplicada. Los paquetes de informacin deben de ser recibidos nicamente una vez. De acuerdo al estndar [10] la clave utilizada puede ser conocida por los dos dispositivos que participan en la comunicacin o por un grupo de dispositivos. Si utilizamos una nica clave para un grupo de dispositivos ganamos en simplicidad pero, por contra, estamos desprotegidos ante el ataque de un dispositivo de la propia red. ZigBee/802.15.4 usa el modo CCM*, una variante del modo CCM ( usa bloques de encriptacin basados en el algoritmo AES-128 (
un modo simtrico, lo que quiere decir que tanto el dispositivo que transmite como el que recibe usan la misma clave para descifrar el mensaje. En caso de que la seguridad est habilitada, el coordinador es normalmente el que realiza las funciones de centro de seguridad, permitiendo o no la asociacin de un nuevo dispositivo. El centro de seguridad debe actualizar peridicamente la clave utilizada, cambindola por una nueva si lo estima necesario. Para ello, distribuye la nueva clave encriptada con la antigua. Despus comunica a todos los dispositivos que a partir de ese momento deben usar la nueva clave. El centro de seguridad, que como hemos dicho suele ser el coordinador pero que tambin puede ser un dispositivo expresamente dedicado a ello, realiza las siguientes funciones: Autenticar dispositivos que quieren unirse a la red.
32
CAPTULO 2: ZIGBEE/802.15.4
Generar y distribuir nuevas claves. Habilitar el uso de seguridad punto a punto entre dispositivos. ZigBee/802.15.4 usa tres tipos de claves:
Claves de enlace.
aplicacin. Slo lo dos dispositivos que participan en la comunicacin conocen esta clave.
Claves de red. Esta clave se usa para la seguridad a nivel de red. Todos los dispositivos dentro de
una misma red deben compartir esta clave.
Claves maestro. Esta clave es utilizada por dos dispositivos en el inicio de la comunicacin para
generar la clave de enlace. La clave maestro no se usa para encriptar tramas. Se denen dos tipos de seguridad:
las diferentes claves pueden estar almacenadas dentro de cada uno de los distintos dispositivos. El centro de seguridad solamente se encarga de mantener una clave de red comn y de controlar las polticas de admisin. As, el centro de seguridad no necesita una gran memoria para almacenar los datos relacionados con la seguridad de la red.
Modo de seguridad avanzado. En este caso el centro debe almacenar tanto las claves como el
listado de dispositivos, as como de controlar las polticas de admisin. Conforme crezca el nmero de dispositivos asociados a la red, aumentarn los requerimientos de memoria del centro de seguridad. Solamente ZigBee PRO soporta este modo de seguridad. Las diferentes capas aadirn una cabecera auxiliar en el caso de que utilicemos un modo seguro de transmisin. Adems, se debe incluir un cdigo de integridad (MIC o de la carga til. Figura 2.13.
33
2.8.
Implementaciones comerciales
Atmel (www.atmel.com)
Esta empresa ofrece dispositivos basados en la combinacin de su serie de microcontroladores conocida como AVR y un sistema radio especialmente diseado para 802.15.4. Atmel ofrece dos gamas de dispositivos: Series AT86RF230 y AT86RF231. Ambas trabajan a 2,4 GHz. Serie AT86RF212. Esta serie trabaja en las frecuencias de 868 y 915 MHz y cumple con el estndar 802.15.4c. Dicho estndar es una variante del 802.15.4 que especica el uso de la banda ISM en China. Con la comercializacin de esta serie Atmel pretende expandir su cuota de mercado en dicho pas. El entorno de desarrollo utilizado para la programacin de los microcontroladores es AVR Studio. Atmel tambin dispone de
kits
Ember (www.ember.com)
Ember se centra casi exclusivamente en la fabricacin de dispositivos relacionados con ZigBee/802.15.4. Los productos bsicos que ofrece son: EM250 EM260
SoC. Sistema que engloba tanto el microprocesador como el transceptor. Trabaja a 2,4 GHz. Co-Processor.
Este chip combina un transceptor, que tambin trabaja a 2,4 GHz, con un
dicho sistema. De esta forma se permite al diseador implementar de forma independiente la parte ms alta de la capa de aplicacin (marco de aplicacin). Las capas de red y de aplicacin de dichos dispositivos trabajan usando EmberZNet PRO, una versin propia del estndar ZigBee. Ember tambin ofrece
kits
Freescale (www.freescale.com)
En relacin con ZigBee/802.15.4, Freescale ofrece las siguientes gamas de productos: MC1320X
RF Transceiver.
(MC9S08GT).
34
CAPTULO 2: ZIGBEE/802.15.4
MC13224
en la optimizacin energtica del transceptor. La versin ZigBee de Freescale es conocida como BeeStack. Respecto a la capa MAC, Freescale ofrece la posibilidad de usar el protocolo SMAC (simple MAC), una versin propia y simplicada de la capa MAC 802.15.4. Los
kits
Jennic (www.jennic.com)
Jennic oferta los siguientes chips: JN5148. JN5139. JN5121. Los tres estn compuestos por un transceptor y un microprocesador. JN5148 es el producto ms reciente y el que ofrece unas mejores caractersticas. Jennic tiene una versin propia de la capa de red conocida como JenNet.
JN5139 IEEE802.15.4/JenNet Starter Kit, una versin ms profesional, JN5139 IEEE802.15.4/JenNet Evaluation Kit.
Dispone de un de desarrollo para principiantes,
kit
y de
Kits
CC2480. Coprocesador ZigBee con conexin SPI/UART. Est pensado para trabajar conectado a un microprocesador. El coprocesador ZigBee maneja el sistema radio y en l se integran las capas fsica, MAC, de red y parte de la de aplicacin. El
Kit
CC2420 y CC2520. Transceptor 802.15.4 pensado para trabajar conectado a un microprocesador MSP430 de TI. El
Kit
TI tambin brinda la oportunidad de trabajar con una capa MAC propia conocida como TIMAC. El entorno de desarrollo utilizado para la programacin de los microcontroladores es IAR
Workbench
Embedded
[31].
El listado de empresas expuesto no es exhaustivo y slo pretende servir como visin general del mercado de componentes electrnicos ZigBee/802.15.4. Por supuesto, otras muchas empresas dedican sus esfuerzos al desarrollo y comercializacin de este tipo de dispositivos. Ejemplos de ello son Microchip Technology, STMicroelectronics, Uniband Electric Corporation, ZMD, etc.
35
kit
de desarrollo eZ430-RF2480 de
TI para la realizacin de nuestro proyecto. En primer lugar TI es una empresa con gran proyeccin de futuro dentro del campo de los componentes electrnicos orientados a ZigBee/802.15.4. En segundo lugar, eZ430-RF2480 nos ofrece todo lo necesario para realizar nuestro estudio sobre el consumo de corriente en nodos 802.15.4 de forma ms simple y rpida que utilizando otros
kits
de desarrollo.
hardware
software
del
kit
36
CAPTULO 2: ZIGBEE/802.15.4
Captulo 3
kit
compuesto por una serie de dispositivos congurables que nos permitirn formar una red ZigBee/802.15.4. A continuacin daremos un repaso a todas las herramientas de instrumentacin y el
software
que hemos
utilizado. Por ltimo, expondremos el circuito de medida empleado para realizar nuestras medidas.
3.1.
3.1.1. Introduccin
Para la realizacin de nuestro estudio del consumo de potencia en redes ZigBee/802.15.4 usaremos el
kit
de desarrollo eZ430-RF2480 de Texas Instruments. Antes de entrar en detalles deniremos los tres
hardware
se reere:
Arquitectura basada en un transceptor 802.15.4 y un Microprocesador. En este tipo de dispositivos el transceptor se ocupa de la parte radio (capa fsica 802.15.4) mientras que el microprocesador se encarga de gestionar la capa MAC, de red y de aplicacin. Arquitectura basada en un procesador ZigBee/802.15.4 y un Microprocesador. Ahora, el procesador ZigBee/802.15.4 gestiona tanto la capa fsica como las capas MAC y de red, dejando al microprocesador encargado nicamente de la parte de aplicacin. Estos sistemas son ms simples, pero menos exibles, de cara al desarrollador puesto que ste slo se debe ocupar de la aplicacin, dejando que el procesador ZigBee/802.15.4 gestione el resto de capas. Arquitectura basada en un dispositivo completamente integrado (
System-on-chip
o SoC). En este
ltimo caso, tanto el transceptor como el microprocesador estn integrados en un nico chip. El
kit
38
hemos dicho, realiza las tareas de la capa fsica, MAC y de red. El microprocesador es un MSP430. Ambos dispositivos estn conectados por un bus SPI. En la gura 3.1 podemos ver una representacin de la distribucin de las capas del protocolo ZigBee/802.15.4 entre CC2480 y MSP430. La versin propia del estndar ZigBee que ha realizado TI se denomina Z-Stack. As, se puede decir que en este tipo de dispositivo el procesador CC2480 se encarga del protocolo Z-Stack. A esta combinacin de procesador ZigBee/802.15.4 y del protocolo Z-Stack, TI la denomina Z-Accel. El objetivo es hacer que el desarrollador se centre en la creacin de su aplicacin dejando que el dispositivo Z-Accel se encargue de la parte ZigBee/802.15.4.
Sample Application ) y pretende ser un ejemplo simple de una aplicacin ZigBee. El kit eZ430-RF2480 est compuesto por tres tabletas iguales (gura 3.2c), un conector USB (gura
ZigBee Accelerator
3.2a) y dos conectores para bateras AAA (gura 3.2b). La tableta, aparte de contener el procesador CC2480 y el microprocesador MSP430 tambin est compuesta por un sensor de luz, un botn, dos diodos LED (uno verde y otro rojo) y, lgicamente, por una antena que, para este caso particular y para ahorrar en tamao y consumo, es de tipo chip.
kit
39
En la gura 3.3 vemos como las diferentes partes se conectan entre s. Como vemos, con un
kit
disponemos de hasta tres nodos ZigBee/802.15.4 para formar nuestra red. Estos nodos son de tipo FFD puesto que pueden funcionar como coordinador,
router
tados por bateras y un tercero lo est a travs de la conexin USB a un PC. Gracias al dispositivo conectado al PC, podemos visualizar diferentes parmetros de la red.
kit
Cuando utilizamos los dispositivos con ZASA como aplicacin, es en el momento de la inicializacin cuando denimos la funcionalidad del dispositivo. As, una conguracin bsica sera congurar el primer dispositivo como coordinador, el siguiente como
router,
vez los dispositivos han sido congurados, todos ellos comienzan a enviar de forma peridica datos al coordinador. La idea es que el coordinador sea el que est conectado al PC de forma que podamos visualizar los paquetes de datos recibidos mediante alguna aplicacin. Esta es simplemente una visin general de la aplicacin ZASA. En la seccin 3.1.5 describiremos su funcionamiento en profundidad y propondremos posibles modicaciones de dicha aplicacin.
3.1.2. CC2480
Como hemos dicho, el CC2480 es un procesador ZigBee/802.15.4 que abarca las capas fsica, MAC y de red. Posee una conexin SPI/UART para poder conectarse con cualquier microprocesador. La implementacin ZigBee de TI, Z-Stack, est cargada en el CC2480. CC2480 cumple con el estndar ZigBee-2006 [9]. Por ltimo es importante destacar que el procesador CC2480 trabaja en modo no balizado. Para una comprensin en profundidad de las caractersticas tcnicas del procesador CC2480 aconsejamos acudir a su hoja de caractersticas en [13].
Arquitectura
En la gura 3.4, realizada basndonos en [12], se muestra un esquema de la arquitectura de conexin entre el CC2480 y un microprocesador funcionando como
host
40
Interfaz SPI/UART. Es el bus que permite el intercambio de datos entre CC2480 y el microprocesador. SPI es un bus serie de transmisin sncrono. UART es un bus asncrono que convierte los bits de paralelo a serie antes de enviarlos. Esta interfaz requiere 4 pines. Ms adelante profundizaremos en su funcionamiento.
Control de activacin. Esta interfaz est compuesta por 2 seales: SRDY (slave ready ) y MRDY (master ready ). SRDY es activada por el CC2480 cuando ste est listo para recibir datos, se activa
a nivel bajo. MRDY es activada a nivel bajo por el microprocesador para indicar que tiene datos listos que enviar al CC2480.
Reset. El microprocesador puede inicializar, mediante esta interfaz, el chip CC2480. Est compuesto por un pin. Aparte de este reseteo hardware, tambin existe la posibilidad de realizar un reseteo software a travs de la interfaz SPI/UART. Conguracin.
Compuesta por dos pines, denominados CFG0 y CFG1. CFG0 indica si el oscilador de cristal opcional de 32,768 kHz est instalado. CFG1 est activo cuando seleccionamos comunicacin por SPI e inactivo cuando lo hacemos por UART.
GPIO.
Est compuesto por 4 pines. El microprocesador puede leer y escribir en dichos pines a
Entrada ADC. El CC2480 posee un conversor analgico digital. La entrada ADC (Analog to Digital Converter ) est compuesta por dos pines que pueden ser utilizados como entrada a este conversor.
En la gura 3.5 mostramos los diferentes pines del CC2480 y en la tabla 3.1 describimos los ms signicativos.
41
Pin 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18
Nombre GPIO3 GPIO2 SRDY MRDY GPIO1 GPIO0 RESET_N CFG0 CFG1 SO/RX SI/TX SS/CT C/RT A0 A1
Direccin Congurable Congurable Salida Entrada Congurable Congurable Entrada Entrada Entrada Salida/Entrada Entrada/Salida Entrada/Salida Entrada Entrada Entrada
Conexin Opcional Opcional Obligatoria para SPI Obligatoria para SPI Opcional Opcional Recomendada Opcional Opcional Obligatoria Obligatoria Obligatoria Obligatoria Opcional Opcional
Descripcin Pin congurable Pin congurable Esclavo listo (SPI) Maestro listo (SPI) Pin congurable Pin congurable Reset (activo a nivel bajo) Pin de conguracin Pin de conguracin Salida SPI o RX UART Entrada SPI o TX UART (SPI) o
Slave Select
42
Vemos que el CC2480 est concectado a dos relojes de cristal: XTAL1, de 32 MHz y XTAL2, de 32,768 kHz. Como hemos mencionado ms arriba, el reloj de 32,768 kHz es opcional y su instalacin la indicaremos activando el pin CFG0. En eZ430-RF2480 tenemos instalado el reloj de 32,768 kHz luego CFG0 est activo por defecto. Aparte de estos relojes de cristal externos, el dispositivo CC2480 tiene dos relojes RC internos de valores 32 kHz y 16 MHz que son calibrados usando el reloj de cristar externo XTAL1. Respecto a la antena podemos mejorar las caracteristicas de transmisin utilizando un dipolo o una antena impresa en lugar de una antena tipo chip. El
kit
de forma que tanto el consumo como su coste, como ya hemos dicho antes, sean menores. Por supuesto, el alcance con una antena chip es menor que utilizando otro tipo de antena ms sosticado. En eZ430-RF2480, el microprocesador (MSP430 en este caso) y el CC2480 estn conectos a travs de un bus SPI. Esto lo indicamos de cara al CC2480 activando el pin CFG0. El conversor ADC interno del CC2480 est conectado a los pines de entrada A0 y A1 que, para el caso particular del modelo eZ430-RF2480, no son utilizados. A continuacin, veremos con ms profundidad el formato de trama que se intercambian microprocesador y CC2480 y cmo funcionan las comunicaciones entre ellos.
Start Of Frame indicator ) que indica el comienzo de trama. Frame Check Sequence ), que no
En ZASA, por defecto, SOF tiene el valor de 0xFE. El siguiente byte indica la longitud del campo de datos. Los dos siguientes bytes sirven para indicar el comando. A continuacin se transmiten los datos (este campo puede estar vaco). Por ltimo se transmite el campo FCS ( es ms que un
checksum
Los bits del comando se distribuyen tal y como vemos en la gura 3.7.
Los comandos intercambiados entre microprocesador y CC2480 pueden ser de tres tipos. El caso ms
43
simple es cuando el microprocesador enva una peticin al CC2480 de la que no espera respuesta. Este tipo de peticin se denomina asncrona (AREQ o
Asynchronous Request
el microprocesador necesita recibir una repuesta por parte del CC2480, se dice que la peticin es sncrona
Synchronous Request ). La repuesta por parte del CC2480 debe ser inmediata y se denomina SRSP (Synchronous Response ). Por ltimo, el CC2480 tiene la posibilidad de enviar tambin peticiones al
(SREQ o microprocesador. Como el microprocesador es siempre quien lleva la iniciativa, deber enviar un comando POLL (sondeo) al CC2480 para ver si ste tiene una peticin para l. Los bits que indican el tipo de comando toman los valores que vemos en la tabla 3.2a.
Valor 0 1 2 3 Resto
Valor 1 4 5 6 Resto
Simple
API
Reservado
Cuadro 3.2: Valores posibles para los campos tipo y subsistema de comando
Como vimos en la seccin 2.6.2, la parte ms alta de la capa de aplicacin ZigBee est formada por las subcapas Marco de aplicacin (AF) y Objeto de dispositivo ZigBee (ZDO). Los bits de subsistema dentro del campo comando sirven para indicar a qu subcapa de aplicacin va destinado el comando (tabla 3.2b). Las interfaces SYS y
Simple
API (
Por ltimo, el subcampo ID, formado por 8 bits, sirve como identicador para cada uno de los comandos.
kit
de desarrollo eZ430-RF2480 se utiliza el bus SPI para las comunicaciones por lo que ser este
procedimiento el que explicaremos a continuacin. Tambin es importante sealar que las comunicaciones por SPI se sirven del uso de los pines SRDY y MRDY gestionados respectivamente por CC2480 (esclavo) y MSP430 (maestro) para indicar que estn listos para realizar las comunicaciones. Puesto que SPI es un bus de transferencia sncrono, es necesario transmitir una seal de reloj. El pin C/RT sirve para transmitir dicha seal de reloj como vemos en la tabla 3.1. El pin SS (
slave select ),
activo a nivel bajo, se usa cuando hay ms de un esclavo conectado a un maestro. En ese caso, el esclavo seleccionado debe activar este pin. Puesto que en nuestro caso slo tenemos un esclavo, el valor de SS y de MRDY siempre deben coincidir. Cuando SS y MRDY estn activos (0 lgico) quiere decir que el CC2480 es elegido como destinatario y que el MSP430 est listo para enviar informacin. El pin SI se utiliza para el envo serie en el sentido maestro a esclavo mientras que el pin SO funciona en sentido inverso, del
44
esclavo hacia el maestro. Cuando el microprocesador quiera enviar una peticin al CC2480 activar MRDY y SS y esperar a que SRDY se active indicando que ste est listo para recibirla. Repetimos que MRDY, SRDY y SS se activan a nivel bajo (0 lgico). El microprocesador nunca deber desactivar MRDY sin antes haber transmitido todos los bytes de la trama. A continuacin mostramos las variaciones de las distintas seales para los casos de envo de AREQ, SREQ con SRSP como respuesta y POLL con respuesta:
AREQ
1. El microprocesador tiene una trama AREQ por transmitir. Activa MRDY a nivel bajo y espera a SRDY.
2. CC2480 detecta el anco de bajada de MRDY. Cuando est listo para recibir la trama activa SRDY a nivel bajo.
8. El microprocesador detecta que SRDY est a nivel alto y pone MRDY a nivel alto tambin.
45
SREQ
Es importante sealar que, en este caso, cuando el CC2480 est listo para enviar su respuesta sncrona (SRSP) al microprocesador, pone SRDY a nivel alto indicando que ya no est listo para recibir sino para transmitir (paso 8). Los pasos ahora seguiran la siguiente secuencia:
1. El microprocesador tiene una trama SREQ por transmitir. Activa MRDY a nivel bajo y espera a SRDY.
2. CC2480 detecta el anco de bajada de MRDY. Cuando est listo para recibir la trama activa SRDY a nivel bajo.
8. Una vez ejecutada la funcin el CC2480 prepara la trama SRSP y pone SRDY a nivel alto indicando que ya no est listo para recibir sino para transmitir.
12. El microprocesador ha recibido todos los bytes y desactiva MRDY ponindolo a nivel alto.
46
POLL
Al igual que en el caso anterior, el CC2480 pondr SRDY a nivel alto para indicar que tiene los datos listos para transmitir hacia el microprocesador (paso 6). 1. CC2480 est listo para enviar una trama AREQ hacia el microprocesador. Como es necesario que el microprocesador le solicite primero dicha trama, el CC2480 coloca SRDY a nivel bajo a la espera de un comando POLL por parte del microprocesador. 2. El microprocesador detecta SRDY a nivel bajo y coloca MRDY a nivel bajo tambin. Prepara el comando POLL y comienza la transmisin de la trama. 3. El microprocesador transmite la trama al completo. 4. El CC2480 recibe la trama al completo. 5. El microprocesador espera hasta que SRDY se ponga a nivel alto. 6. El CC2480 prepara la trama AREQ a enviar y, cuando est listo, coloca SRDY a nivel alto. 7. El microprocesador detecta SRDY a nivel alto y comienzan las comunicaciones. 8. El microprocesador recibe la trama al completo. 9. El CC2480 transmite la trama al completo. 10. El microprocesador ha recibido todos los bytes y desactiva MRDY ponindolo a nivel alto.
Interfaz de aplicacin
En este apartado explicaremos la funcin de las cuatro interfaces que se utilizan para las comunicaciones entre microprocesador y CC2480. Para cada una de ellas daremos un listado con los comandos que la componen. En este documento no entramos en detalles respecto a cmo utilizar cada comando ni de qu partes est compuesto su campo de datos. Para ello se propone la consula del documento
Specication
CC2480 Interface
47
de la aplicacin ZASA, mencionaremos ahora cules de los comandos expuestos son utilizados por esta aplicacin. Las diferentes interfaces son:
que tambin incorporta el CC2480. En la tabla 3.3 podemos ver todos los compandos que pertenecen a esta interfaz. Todos los comandos tipo SREQ llevan asociada una respuesta SRSP que no se muestra ni en esta tabla ni en las siguientes por simplicidad. En ZASA el nico comando de la interfaz SYS que se utiliza es
sys_reset_ind.
Comando 0x4100 0x4180 0x2102 0x2109 0x2108 0x210A 0x210B 0x4181 0x210C 0x210D 0x210E 0x4140 0x2141
Tipo AREQ AREQ SREQ SREQ SREQ SREQ SREQ AREQ SREQ SREQ SREQ AREQ SREQ
Nombre sys_reset_req sys_reset_ind sys_version sys_osal_nv_write sys_osal_nv_read sys_osal_start_timer sys_osal_stop_timer sys_osal_timer_expired sys_random sys_ADC_read sys_GPIO sys_test_RF sys_test_loopback
Simple
API [14].
Esta es una versin reducida de la interfaz API [15] que proporciona Texas Instrument para Z-Stack. La interfaz Z-Stack API est pensada para dispositivos en los que la pila de protocolos est cargada en el procesador (seccin 3.1.1). Entre otras, Z-Stack API est compuesta por una serie de primitivas con las que manejar tanto la capa de red como la subcapa APS. Como hemos dicho, CC2480 abarca las capas fsica, MAC y de red. Por lo tanto no es necesario disponer de todas las primitivas de las que est compuesta Z-Stack API. La solucin es esta versin reducida conocida como
simple
API.
Los comandos de esta interfaz simplicada nos permitirn cambiar la conguracin del dispositivo, formar una red, realizar vnculos entre puntos de acceso y transferir la informacin. En la tabla 3.4 podemos ver todos los comandos que pertenecen a esta interfaz. ZASA utiliza todos los comandos que ofrece
Simple
API.
48
Comando 0x4609 0x2604 0x2605 0x260A 0x2600 0x4680 0x2608 0x2601 0x4681 0x2602 0x4682 0x2603 0x4683 0x4687 0x2606 0x2607 0x4685
Tipo AREQ SREQ SREQ SREQ SREQ AREQ SREQ SREQ AREQ SREQ AREQ SREQ AREQ AREQ SREQ SREQ AREQ
Nombre zb_systemreset zb_read_conguration zb_write_conguration zb_app_register_req zb_start_req zb_start_conf zb_permit_joining_req zb_bind_device zb_bind_conf zb_allow_bind zb_allow_bind_conf zb_send_data_req zb_send_data_conf zb_receive_data_ind zb_get_device_info zb_nd_device_req zb_nd_device_conf
Simple
API
Interfaz AF.
Nos proporciona una interfaz con el Marco de aplicacin (seccin 2.6.2). Bsicamente lo que podemos hacer con las primitivas que nos proporciona esta interfaz es registar la aplicacin en el CC2480 y, al igual que con la interfaz
Simple
la tabla 3.5 podemos ver todos los comandos que pertenecen a esta interfaz. La aplicacin de ejemplo ZASA emplea los cuatro comandos AF.
Interfaz ZDO.
Es una interfaz con el Objeto de dispositivo ZigBee (seccin 2.6.2). Es necesaria para manejar la funcionalidad del coordinador,
y asociacin a una red ZigBee y la vinculacin de puntos de acceso. En la tabla 3.6 podemos ver todos los comandos que pertenecen a esta interfaz. ZASA slo hace uso de los comandos y
49
Comando 0x2500 0x4580 0x2501 0x4581 0x2502 0x4582 0x2504 0x4584 0x2505 0x4585 0x2506 0x4586 0x45C2 0x2508 0x4588 0x250B 0x4589 0x250A 0x45C1 0x2520 0x45A0 0x2521 0x45A1 0x2522 0x45A2 0x2531 0x45B1 0x2534 0x45B4 0x2536 0x45B6 0x45C0
Tipo SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ SREQ AREQ AREQ
Nombre zdo_nwk_addr_req zdo_nwk_addr_rsp zdo_ieee_addr_req zdo_ieee_addr_rsp zdo_node_desc_req zdo_node_des_rsp zdo_simple_desc_req zdo_simple_desc_rsp zdo_active_ep_req zdo_active_ep_rsp zdo_match_desc_req zdo_match_desc_rsp zdo_match_desc_resp_sent zdo_user_desc_req zdo_user_desc_rsp zdo_user_desc_set zdo_user_desc_conf zdo_end_device_annce zdo_end_device_annce_ind zdo_end_device_bind_req zdo_end_device_bind_rsp zdo_bind_req zdo_bind_rsp zdo_unbind_req zdo_unbind_rsp zdo_mgmt_LQI_req zdo_mgmt_LQI_rsp zdo_mgmt_leave_req zdo_mgmt_leave_rsp zdo_mgmt_permit_join_req zdo_mgmt_permit_join_rsp zdo_state_change_ind
Parmetros de conguracin
El integrado CC2480 tiene varios parmetros que pueden ser modicados por el microprocesador. Estos parmetros son almacenados en una memoria
ash
voltil (NV) por lo que estos parmetros permanecen en ella aun cuando el dispositivo no est alimentado. Para leer o escribir dichos parmetros de conguracin usamos los comandos
zb_write_conguration
de la interfaz
Simple
zb_read_conguration
API.
Estos parmetros de conguracin se dividen en dos grupos: los especcos de un dispositivo y los especcos de la red. Para un correcto funcionamiento, los parmetros especcos de la red deben ser compartidos por todos los dispositivos que pertenezcan a una determinada red ZigBee. Los especcos
50
de un dispositivo pueden variar de un dispositivo a otro. En [12] podemos encontrar una descripcin pormenorizada de cada uno de estos parmetros, tamao en bytes, valor por defecto, etc. Aqu simplemente los nombraremos y daremos una breve descripcin de cada uno (ver tablas 3.7 y 3.8). Algunos de dichos parmetros hacen referencia a los mensajes de tipo POLL (sondeo). Es importante hacer incapi en la diferencia entre un comando POLL que, como hemos visto en las secciones anteriores, es un tipo de comando entre CC2480 y microprocesador, y un mensaje POLL entre dos dispositivos de la red ZigBee. Los mensajes POLL entre dispositivos de la red ZigBee son necesarios en las redes no balizadas. En estas redes, cuando un dispositivo nal debe enviar un paquete a su dispositivo padre no hay ningn problema puesto que ste, bien sea un
encendido. El problema surge cuando el ujo de informacin es en sentido inverso. Como hemos dicho, los dispositivos nales entran en modo de bajo consumo cuando no necesitan enviar informacin. Por lo tanto el dispositivo padre nunca sabr con certeza si un dispositivo nal conectado a l estar activo. La solucin a este problema es el envo de un mensaje POLL del dispositivo nal hacia el padre. Este mensaje sirve para preguntar al padre si hay informacin a la espera de ser transmitida en el sentido padre-hijo. Resumiendo, cuando un dispositivo nal tenga informacin para su dispositivo padre simplemente la enviar. Cuando un dispositivo padre tenga informacin para un dispositivo nal conectado a l, deber esperar que dicho dispositivo nal le enve un mensaje POLL y en ese momento enviar el paquete de informacin.
router
Si el dispositivo es un dispositivo nal se despertar con la frecuencia indicada por este parmetro (en ms) para comprobar si su padre tiene informacin para l.
ZCD_NV_QUEUED_POLL_RATE
Si el dispositivo nal realiza un sondeo a su padre y ste tiene informacin para l, se vuelve a sondear una vez ms con un intervalo menor. Este parmetro, expresado en ms, indica dicho intervalo.
ZCD_NV_RESPONSE_POLL_RATE
Si el dipositivo nal enva un paquete de datos al padre puede comprobar si hay una respuesta pasado un intervalo de tiempo. Este parmetro, expresado en ms, indica dicho intervalo.
Mximo nmero de intentos de reenvo de informacin a un dispositivo padre. Tiempo mximo en ms durante el cual un padre almacenar datos para enviar a un dispositivo hijo. Nmero de veces que se reintentar el envo de un paquete si el
ack
ack
a nivel de aplicacin activado a dicha conrmacin. Tiempo mximo en ms que un dispositivo esperar la respuesta a un intento de vinculacin (
binding ).
51
Descripcin Identicador de la red PAN. Valor menor a 0x3FFF. Para indicar cualquier red se usa 0xFFFF. Listado de canales en los que el dispositivo puede funcionar. 128 bits para la clave de seguridad. Si este parmetro es TRUE se considera que todos los dispositivos de la red conocen la clave de seguridad. Si es FALSE el coordinador debe distribuirla.
broadcast
sin recibir
ack.
Cantidad de tiempo (en unidades de 100 ms) que un dispositivo espera antes de retransmitir un paquete. Tiempo mximo (en unidades de 100 ms) que puede tardar un paquete
broadcast
en propagarse
por toda la red. ZCD_NV_ROUTE_EXPIRY_TIME Tiempo mximo (en segundos) que una ruta puede estar sin trco antes de marcarla como inutilizable. Cuadro 3.8: Parmetros especcos de la red
Consumo
Como ya hemos mencionado, el CC2480 trabaja en modo no balizado. En este modo, los dispositivos nales pueden activar el modo de bajo consumo cuando no estn enviando informacin. Por el contrario, tanto el coordinador como los
routers
deben tener el sistema radio encendido (a la escucha en este caso) y con el procesador CC2480 activo. Para el caso de tratarse de un dispositivo nal, el CC2480 entra en modo de bajo consumo automticamente. En la tabla 3.9, obtenida de la hoja de caractersticas del CC2480 [13], podemos ver el consumo de corriente para los principales modos de funcionamiento, incluyendo los modos de bajo consumo (LPM o
en ingls). Consumo 12,3 mA 26,7 mA 26,9 mA 0,5 0,3 Caractersticas Oscilador de cristal de 32 MHz activo Potencia de entrada -50 dBm Potencia de salida 0 dBm Osc. RC de 16 MHz y Osc. de cristal de 32 MHz inactivos Osc. de cristal de 32,768 kHz activo Todos los osciladores inactivos
CPU activa CPU activa y recibiendo CPU activa y transmitiendo LPM2 LPM3
A A
52
Segn el documento de noticacin de errata [16] de Texas Instruments, el CC2480 puede no entrar en el modo de bajo consumo en momentos en los que s debera hacerlo. Este fallo del procesador CC2480, que ser analizado en profundidad en el captulo 4, aumenta considerablemente el consumo.
s.
Dicho valor
Conrmacin de recibo
de conrmacin de recibo:
Ack
ack
broadcast
ack
a nivel de aplicacin. El
est siempre activo en el CC2480. Esto quiere decir que el bit que indica si se requiere cabecera MAC (seccin 2.4.5) siempre vale 1. El
ack
la subcapa APS y es opcional. Su uso conlleva un aumento en el consumo de corriente. Esta repercusin sobre el consumo ser analizada en el captulo 4.
Asignacin de direcciones
El CC2480 utiliza el mecanismo distribuido de asignacin de direccin corta descrito en la seccin 2.5.2. De acuerdo con el documento [17] el coordinador o los dispositivos hijo (Cm
routers
= 20).
de 14, dispositivos nales. La profundidad mxima de la red o distancia mxima entre un dispositivo y el coordinador es 5 (Lm valores de Cskip(d): Profundidad en la red, d 0 1 2 3 4 5 (=
= 5)1 .
Cskip(d)
5.181 861 141 21 1 0
Lm )
1 Segn este documento de Texas Instruments L = 6. No obstante, tras comprobar en el laboratorio las direcciones m asignadas y el nmero mximo permitido de saltos desde un hijo hasta el coordinador, se ha deducido que dicho documento presenta un error y que Lm = 5.
53
En la gura 3.11 podemos ver, como ejemplo, cules son las direcciones asignadas dentro de una red con seis nodos. Como vimos en la seccin 2.5.2 cada de direcciones (de tamao
router
Cskip(d))
nal se utiliza la expresin 2.4 de la misma seccin. Para el hijo directamente conectado al coordinador (Direcpadre
= 0)
tendramos:
(3.1)
Figura 3.11: Ejemplo de asignacin de direcciones en una red de 6 nodos formada con el CC2480
Seguridad
El integrado CC2480 tiene un bloque de cifrado AES-128 que realiza las tareas de seguridad especicadas en el estndar ZigBee y explicadas en la seccin 2.7. El uso o no de seguridad se indica al procesador CC2480 a travs de uno de sus parmetros de conguracin:
ZCD_NV_SECURITY_MODE.
red, y no especco de un dispositivo, puesto que debe tomar el mismo valor para todos los dispositivos que forman la red ZigBee. Si este parmetro es TRUE la red aplicar el mecanismo de seguridad. Por defecto,
ZCD_NV_SECURITY_MODE
seguridad. Si activamos el uso de seguridad en nuestra red debemos tener en cuenta que existen dos mtodos de distribucin de la clave. El primero asume que todos los dispositivos tienen precongurada la misma clave de seguridad. Esta clave comn debe ser indicada al CC2480 a travs del microprocesador. En el segundo mtodo nicamente el coordinador de red tiene precongurada esta clave de seguridad. As, deber transmitirla a cada uno de los dispositivos conectados a la red para que stos pueden aplicar mecanismos de seguridad. En este segundo mtodo hay un momento de vulnerabilidad justo cuando el coordinador distribuye la clave. En ese momento, un dispositivo que no pertenezca a la red pero que
54
escuche el canal puede obtener dicha clave. Por lo tanto este segundo mtodo de distribucin de clave slo debe ser utilizado si el desarrollador considera que el riesgo de intromisin no es demasiado alto. La eleccin de uno u otro mtodo se indica a los distintos dispositivos a travs de otro parmetro especco de la red,
defecto, se utilizar el primer mtodo por lo que todos los dipositivos utilizarn la clave precongurada indicada por el parmetro especco de la red
En el captulo 4 estudiaremos el efecto sobre el consumo que tiene el uso de seguridad en la red.
3.1.3. MSP430
El
kit
eZ430-RF2480 hace uso de un microprocesador MSP430 como sistema de control del procesador
CC2480. Texas Instruments dispone de varios modelos dentro de la familia MSP430. La diferencia bsica
ash y RAM de que disponen. El modelo exacto de microprocesador que usa este kit es MSP430F2274. Este modelo dispone de 32 Kbytes + 256 bytes de memoria ash y 1
entre ellos es la cantidad de memoria Kbyte de memoria RAM. El MSP430 es un microprocesador RISC (
sadores RISC se basan en un nmero reducido de instrucciones que, para este caso, es de 27. Que el procesador sea de 16 bits implica que todos los registros y buses internos de comunicaciones estn formados por 16 bits. En esta seccin slo daremos un repaso general a las caractersticas del MSP430. Para obtener informacin de manera mas detallada se recomienda acudir a la gua de usuario [19] y a la hoja de caractersticas [20].
sumar dos registros y guardar el resultado en un tercero. El cdigo necesario para hacer que el microprocesador lleve a cabo estas tareas se escribe en ensamblador. No obstante, para agilizar y simplicar el diseo de aplicaciones se suelen usar compiladores que pasan nuestro cdigo de C o C++ a ensamblador de forma que el programador no tenga que involucrarse en procesos de muy bajo nivel. Este es el sistema que utilizamos en nuestro caso. Ms concretamente usamos un entorno de desarrollo conocido como IAR Embedded Workbench especialmente diseado para el trabajo con el microprocesador MSP430 [18]. Este entorno de desarrollo ser expuesto en la seccin 3.3.4 del presente captulo. Una vez compilado nuestro cdigo en C o C++ y, tras pasar de ensamblador a cdigo binario, se carga el resultado en la memoria
ash
de nuestro microprocesador. De esta forma, al encenderlo la CPU ejecuta la primera instruccin que
encuentra en dicha memoria. Para el caso particular de nuestro proyecto la aplicacin que cargamos en el MSP430 se llama ZASA, como ya hemos dicho, y ser explicada en la siguiente seccin.
55
En cualquier aplicacin es muy comn necesitar esperar un tiempo determinado antes de realizar una cierta tarea. Para ello usamos las diferentes seales de reloj del MSP430. Este microprocesador posee una seal de reloj interna conocida como DCO (
digitally-controlled oscillator ).
dentro del microprocesador que generan interrupciones con frecuencias que son divisores de la frecuencia de la seal DCO. As, podemos obtener seales de reloj de 1, 8, 12 y 16 MHz dependiendo de a qu registro accedamos. Cuando queremos comunicarnos con un elemento exterior al microprocesador, como es el caso un botn, un sensor de luz o el propio CC2480, conectamos dicho dispositivo a uno de los pines de entrada/salida de que dispone el MSP430. El MSP430 debe ser programado de forma que un cambio en el valor digital de dicho pin genere una interrupcin y podamos actuar en consecuencia. Cuando generamos una interrupcin el microprocesador detiene la tarea que est realizando en ese momento y ejecuta un tipo de funcin denominada ISR (
con dicha interrupcin. Una vez ejecutada la funcin ISR el microcontrolador puede seguir realizando sus anteriores tareas. El MSP430 tiene 40 pines (gura 3.13) de los cuales 4 realizan funciones de alimentacin del dispositivo, 2 son usados para testeo, 2 para conectar un reloj de cristal externo (no es el caso de eZ430-RF2480) y 32 pines para conexiones digitales con otros dispositivos. Estos 32 pines de entrada salida se agrupan en cuatro puertos de 8 pines cada uno. La nomenclatura es Px.y donde x indica el puerto e y indica la posicin del pin dentro de ese puerto. Para poder trabajar con estos pines se usan los siguientes registros: PxDIR.y dene la direccin del puerto: salida si PxDIR.y vale 1 y entrada si vale 0. Ejemplo: P1DIR = 0b11110000 P1.7 sean de salida.
2 hace que los pines P1.0 a P1.3 sean de entrada y los pines P1.4 a
2 Igual
que la expresin 0xz indica que z est representado en hexadecimal, 0bz indica que z est expresado en binario
56
PxOUT.y da un valor al pin Px.y si ste es de salida. PxIN.y lee el valor del pin Px.y si ste es de entrada. PxIE.y habilita las interrupciones en el puerto Px.y. Por ltimo decir que el MSP430 tambin tiene incorporado un conversor analgico-digital (ADC). Como veremos ms adelante, la aplicacin ZASA har uso de este conversor para digitalizar los valores del voltaje de alimentacin y del sensor interno del MSP430.
Consumo
La familia MSP430 est orientada a conseguir un bajo consumo. Es por ello que resulta idnea para el control de transceptores y procesadores ZigBee/802.15.4. Siempre que el microprocesador est esperando una interrupcin es de vital importancia apagar los relojes que no estemos usando si queremos disminuir el consumo. Para ello se denen cuatro modos de bajo consumo (LPM) que se diferencian en el nmero de relojes de que prescinde cada uno. Podemos ver dichos modos de bajo consumo en la tabla 3.11. El consumo de corriente del microprocesador es proporcional tanto a la frecuencia de trabajo como a la tensin de alimentacin. As, para los valores representados en la tabla, se ha supuesto una tensin de alimentacin de 3 V y una frecuencia de trabajo de 8 MHz en el modo activo, que son los valores con los que trabajaremos en nuestro proyecto. Para unos valores de consumo ms detallados se recomienda acudir a la hoja de caractersticas [20]. MCLK ( (
Submain Clock )
es un reloj secundario
Main Clock ) es el reloj principal usado por la CPU, SMCLK y ACLK (Auxiliary Clock ) es un reloj auxiliar. Podemos ver su
57
En la prctica slo dejando activo el reloj auxiliar ACLK, que despierta el integrado MSP430 despus de un determinado intervalo de tiempo, es suciente. Esto se consigue usando el modo LPM3. Modo Activo LPM0 Consumo 2,8 90 Caractersticas CPU activada Todos los relojes activos CPU desactivada ACLK y SMCLK activos MCLK inactivo LPM1 90A LPM0 + generador de continua de DCO inactivo si DCO no se usa durante el modo activo LPM2 25A CPU desactivada MCLK y SMCLK inactivos generador de continua de DCO activo ACLK activo LPM3 1A CPU desactivada MCLK y SMCLK inactivos generador de continua de DCO inactivo ACLK activo LPM4 0,1A CPU desactivada MCLK, SMCLK y ACLK inactivos generador de continua de DCO inactivo Oscilador de cristal inactivo Cuadro 3.11: Modos de bajo consumo en el microprocesador MSP430
mA A
58
59
cargada por defecto en el microcontrolador MSP430. Su objetivo es demostrar de una manera simple cmo funciona una red basada en tecnologa ZigBee/802.15.4. Bsicamente lo que hace esta aplicacin es centralizar y monitorizar la lectura de unos sensores de temperatura y voltaje. ZASA nos proporciona dos puntos de acceso a nivel de aplicacin: sumidero y fuente. La funcin de sumidero slo la puede realizar el coordinador. Su tarea ser recibir las lecturas de temperatura y voltaje que las fuentes le proporcionan. La funcin de fuente la realizan los
routers
los dispositivos nales. Por defecto, cada 10 segundos la fuente enva los datos al sumidero. Si la fuente, bien sea un
router
debe efectuar un salto. Si por el contrario la fuente est conectada a un datos y encaminarlos hacia el coordinador por la ruta correspondiente.
Como hemos dicho, el procesador CC2480 est preprogramado para realizar las tareas de las capas inferiores del protocolo ZigBee/802.15.4 por lo que no tenemos acceso a l. Por contra, podemos modicar la aplicacin cargada en el MSP430 y situada en lo alto de la pila de protocolos (ZASA en este caso). El mecanismo para modicar dicha aplicacin, como hemos mencionado anteriormente, es a travs del entorno de desarrollo IAR Embedded Workbench. En los apartados siguientes comenzaremos explicando el funcionamiento de ZASA. Respecto a los perifricos, ZASA hace uso del pulsador conectado al MSP430. Como veremos en el siguiente punto, lo utiliza como mecanismo de conguracin del dispositivo. Tambin hace uso de los dos diodos LED, uno verde y otro rojo, de que se dispone. Mediante ellos sabremos si el dispositivo ha sido congurado como un dispositivo nal, paquete de datos.
router
Funcionamiento
El
kit
router
una aplicacin ZigBee podemos denir de antemano de qu tipo ser nuestro dispositivo. Sin embargo ZASA nos da la oportunidad de elegir si un dispositivo ser coordinador,
router
o dispositivo nal en
pleno proceso de ejecucin. Esto se consigue gracias al uso del pulsador que incorpora la tableta. Cuando encendemos un dipositivo ste queda a la espera. El usuario puede reconocer este estado porque ambos LED, tanto el rojo como el verde, parpadean una vez por segundo. En el momento que el usuario presiona una vez el botn se inicia una ventana de espera que dura dos segundos. Si se vuelve a pulsar una segunda vez el botn dentro de ese margen de tiempo, ZASA interpretar que el dispositivo debe comportarse como un dispositivo nal. Si dentro de esos dos segundos no volvemos a presionar el botn, el dispositivo se congurar como
router
propio dispositivo funcionar como coordinador e inicializar la red. Cuando un dispositivo funciona como coordinador tendr siempre encendido el diodo LED rojo, cuando funciona como
router
tendr siempre
encendido el verde y cuando lo hace como dispositivo nal har parpadear el LED verde una vez por segundo. Como hemos explicado en la seccin 2.5.2 un coordinador o
router
60
dispositivos se asocien a l. La manera que ZASA proporciona para modicar esta opcin es utilizando de nuevo el botn. Cuando un dispositivo se congura como coordinador o como
router
tiene activado el
permiso de asociacin por defecto. Si pulsamos el botn de nuevo desactivaremos dicho permiso por lo que un dispositivo que intente conectarse a l ser rechazado. Si pulsamos el botn otra vez se volver a activar el permiso de asociacin. Los diodos LED nos darn informacin de cmo est congurado dicho permiso. Cuando el permiso de asociacin est desactivado, el LED (rojo para el coordinador y verde para el
router
como hemos dicho) pasar de estar continuamente encendido a parpadear una vez por segundo.
Una vez que un dispositivo que funcione como fuente se ha conectado correctamente al coordinador, bien directamente o a travs de un padre, comienza a enviar datos de forma peridica cada 10 segundos. Los datos que enva son la temperatura del sensor interno del MSP430 y el valor de la tensin de alimentacin. El tamao es de un byte para la temperatura y otro para el voltaje. Cuando un dispositivo nal o un
router
envan un paquete de datos hacia el coordinador, el LED verde del dispositivo parpadea una vez.
Cuando el coordinador recibe el paquete de datos parpadea una vez su LED rojo. En la tabla 3.12 podemos ver un resumen del estado de los diodos LED para los distintos casos de funcionamiento. Tipo de dispositivo Sin congurar Coordinador (sumidero) LED rojo Parpadeando Permiso de conexin: Encendido Sin permiso de conexin: Parpadeando Envo de datos: Un parpadeo Envo de datos: Un parpadeo Permiso de conexin: Encendido Sin permiso de conexin: Parpadeando Parpadeando LED verde Parpadeando Datos recibidos: Un parpadeo
Router
Cuadro 3.12: Estado de los diodos LED de acuerdo con el programa ZASA
Un dispositivo nal pasar la mayor parte de su tiempo en modo de bajo consumo, despertando nicamente para enviar los datos hacia el cordinador cada 10 segundos. El coordinador y los
routers
deben estar siempre activos y con el sistema radio encendido puesto que en cualquier momento puede llegarles un paquete de datos o una solicitud de asociacin. En la gura 3.15 podemos ver la mquina de estados de ZASA. Como ya sabemos, el
kit
proporciona una conexin UART entre el MSP430 y un PC. Idealmente el coordinador debe ir conectado a este adaptador lo que permitir la monitorizacin en un PC los datos enviados por todos los dispositivos que funcionen como fuente. El programa utilizado para dicha monitorizacin que nos proporciona Texas Instuments se llama
esta conexin UART para comunicarnos de forma ms general con el microprocesador en tiempo de ejecucin. De hecho, cuando un dispositivo est conectado al adaptador USB, ZASA enva por el puerto serie UART una copia de todos los comandos intercambiados entre los integrados MSP430 y CC2480. Adems, tambin podremos hacer que el MSP430 enve un comando determinado hacia el CC2480. La aplicacin que se emplea para este propsito se llama Z-Tool. Tanto
Sensor Monitor
expuestos en la seccin 3.3 de este captulo. Por otra parte, en el apndice que se incluye al nal de este texto explicaremos cmo podemos utilizar Visual Basic .NET para desarrollar una aplicacin propia que
61
Sensor Monitor
y Z-Tool
Ejemplo del funcionamiento de una red ZigBee con dispositivos ejecutando ZASA
A continuacin veremos un ejemplo de inicializacin de red, asociacin de dispositivos y funcionamiento general de una red cuyos dispositivos estn ejecutando ZASA. Puesto que el
kit
proporciona tres unidades, nos limitaremos a mostrar una red con tres nodos. La manera de aadir ms dispositivos puede inferirse a partir de este ejemplo. Conectamos la tableta con el adaptador USB a nuestro PC. Ambos diodos comenzarn a parpadear indicando que el dispositivo debe ser congurado. Pulsamos una vez el botn y esperamos primero a que se agote la ventana de dos segundos y luego a que el CC2480 realice un escaneo activo a la bsqueda de una red existente. Puesto que no encuentra ninguna dentro de un tiempo determinado
62
por la constante APP_JOIN_TIME (que ser expuesta ms adelante), ZASA congura el dispositivo como coordinador de red y el LED rojo se enciende. Nuestra red est ahora formada nicamente por un coordinador. Este dispositivo tiene siempre el sistema radio a la escucha, preparado para recibir peticiones de asociacin y datos. Su consumo es mayor que el de un dispositivo nal pero, al estar alimentado a travs del puerto USB, esto no supone un gran problema.
Conectamos otra tableta a la batera y pulsamos el botn una nica vez. Pasada la ventana de dos segundos el CC2480 realiza un escaneo activo y encuentra que ya existe una red. El dispositivo toma entonces la funcionalidad de
router,
Este proceso se realiza exitosamente puesto que el coordinador acepta peticiones de asociacin. Es necesario destacar que aqu tambin se realiza la vinculacin entre los puntos de acceso de ambos dispositivos (
binding ).
misma aplicacin (ZASA en este caso). Puesto que todo es correcto, se realiza la vinculacin entre el sumidero (coordinador) y fuente (
router ).
A partir de ahora, el
router
temperatura y otra de voltaje hacia el coordinador cada 10 segundos. Cada vez que el
router
enve
un paquete de datos parpader su LED rojo. Cuando el coordinador los reciba parpadear su LED verde. Aqu es necesario sealar que el
router
radio conectado por si otro dispositivo intenta asociarse a l. En esta conguracin la batera no aguantara mucho tiempo por lo que se recomienda alimentar el dispositivo de forma cableada.
router
Conectamos ahora la tercera tableta a la batera y pulsamos el botn dos veces. El dispositivo se congura como dispositivo nal e intenta conectarse a la red. Si el coordinador tiene activado el permiso de conexin el dispositivo nal se conectar a l (gura 3.18a). Si antes de conectar el dispositivo nal pulsamos una vez el botn del coordinador, este desactivar el permiso de conexin y el dispositivo nal no tendr ms remedio que conectarse al
router
de los dos casos el dispositivo nal envir los datos cada 10 segundos hacia el sumidero, haciendo parpadear el LED rojo. Puesto que el dispositivo nal apaga el sistema radio cuando no est enviando datos, su consumo es muy bajo y la batera presentar una larga vida til.
63
APP (Aplicacin).
HAL (Hardware Abstraction Layer ). Esta parte del cdigo se encarga de controlar al MSP430. Gestiona las conexiones SPI y UART, los relojes software, modos de funcionamiento (activo, LPM)
y dispositivos externos conectados al MSP430 como el pulsador o los LED.
MT
(Monitor Test ).
PC a travs de una conexin UART. MT enva una copia de todos los comandos intercambiados entre MSP430 y CC2480 a travs de la conexin UART. As, podremos ver en nuestro PC todos los comandos que se intercambian dichos dispositivos. Adems de esto el mdulo MT tambin nos permite ordenar al MSP430, desde el PC, el envo de un comando determinado al CC2480. Los programas cdigo.
Sensor Monitor
Gestiona la interfaz
Simple
ZACCEL (Z-Accel).
64
3.2.
Herramientas de instrumentacin
A continuacin resumimos las principales particularidades del modelo utilizado, el Tektronix TDS 3012B, obtenidas a partir de su hoja de caractersticas [23]: Ancho de banda de 100 MHz. Frecuencia de muestreo mxima: 2 canales. Resolucin vertical: 9 bits. Sensibilidad vertical: 10 mV/div a 10 V/div. Precisin vertical:
Gmuestras/s.
2 %.
Rango de la base de tiempos: 4 ns/div a 10 s/div. Impedancia de entrada a elegir entre 1 Conexin Ethernet. Pantalla a color.
y 50
65
kit
es conveniente reemplazarlos por una fuente de alimentacin indendiente para asegurar la estabilidad y continuidad de dicha alimentacin. En la realizacin de nuestro proyecto hemos usado la fuente Tektronix PS2520G.
Sus principales propiedades, obtenidas a partir de su hoja de caractersticas [24], son: Dos salidas con un rango de 0 a 26 V y 0 a 1,5 A. Una salida con un rango de 0 a 6 V y 0 a 3 A. Precisin de voltaje: 0,05 % + 25 mV. Precisin de corriente: 0,2 % + 10 mA. Conexin GPIB (
66
En la hoja de caractersticas [25] podemos ver todas las propiedades de este multmetro. Aqu nos centraremos en aquellas que lo caracterizan en su funcionamiento como voltmetro en DC. Caractersticas:
Resistencia de entrada: 10
Conexin GPIB.
kit
eZ430-RF2480 es de gran
utilidad analizar los paquetes de datos en el momento de ser transmitidos. Para ello utilizaremos un
Snier. Este Snier se compone por una parte hardware (la aqu expuesta) y una parte software. El software nos lo proporciona gratuitamente Texas Instruments y ser descrito en la seccion 3.3. El hardware est compuesto por el modulo de evaluacin CC2520 que est formado bsicamente por
dos transceptores CC2520 ZigBee/802.15.4 de Texas Instruments y por las antenas correspondientes. Estos dispositivos sern los que escuchen e interpreten en tiempo real los paquetes de datos que se intercambian los distintos nodos de nuestro
kit
eZ430-RF2480.
Uno de los transceptores CC2520 estar conectado a la placa SmartRF05EB, que ser la que nos permitir visualizar los datos al estar conectada por USB con el PC. Para ms informacin sobre el sistema CC2520EMK es recomendable acudir a la hoja de caractersticas del transceptor CC2520 [26] y la gua de inicio rpido del
kit
67
3.3.
Herramientas software
kit
eZ430-
RF2480 cuando estos ejecutan ZASA. Esta aplicacin para PC nos permite monitorizar los datos recibidos por el sumidero (coordinador) y procedentes de las fuentes (
routers
y dispositivos nales).
Es una aplicacin gratuita que nos proporciona Texas Instruments como herramienta para la monitorizacin. En [29] vemos los pasos necesarios para instalarla as como una descripcin en profundidad de su funcionamiento.
kit
Sensor Monitor
es una aplicacin muy simple que puede resultar muy til para familiarizarse con el
la red est formada por 6 nodos (hemos utilizado dos en color rojo, los
routers
kits
utiliza el adaptador USB como coordinador de red o sumidero. Este dispositivo ser el que se comunique con
ZASA es el encargado de gestionar el intercambio de informacin entre el microprocesador y el PC. Vemos que nos permite visulizar los datos que recibe el coordinador. As, podemos ver cul es
la temperatura y el voltaje que lee cada nodo, su direccin corta y la topologa general de la red.
3.3.2. Z-Tool
Como hemos explicado en la seccin 3.1.2 de este captulo, MSP430 y CC2480 se intercambian una serie de comandos pertenecientes a cuatro tipos de interfaces (SYS, uso de la conexin UART entre MSP430 y PC para:
68
Visualizar por pantalla los comandos recibidos por el MSP430. Estos comandos siempre sern tipo AREQ (el CC2480 inicia la comunicacin con el MSP430) o tipo SRSP (CC2480 responde a una peticin por parte del MSP430). Hacer que el MSP430 enve un comando determinado hacia el CC2480. Podremos, por ejemplo, enviar el comando resetee. En genearal, Z-Tool est pensado para trabajar con cualquier dispositivo que implemente la pila de protocolos Z-Stack de Texas Instruments. En la imagen 3.24 vemos la aplicacin Z-Tool en ejecucin. Sus distintas partes son:
zb_systemreset
de la interfaz
Simple
Monitorizacin. En la subventana derecha se muestran todos los comandos, AREQ o SRSP, que
recibe el MSP430 por parte del CC2480 (<RX>, en azul). Cuando el usuario hace que el MSP430 enve un comando al CC2480 ste tambin aparece por pantalla (<TX>, en rojo).
Simple
API, AF o ZDO.
Conguracin de comando.
Por ejemplo, imaginemos que queremos leer un parmetro de conguracin del CC2480. Para ello el MSP430 debe enviar el comando
zb_read_conguration
debemos congurarlo para indicar qu parmetro queremos leer (tipo lgico, PAN ID, y dems parmetros vistos en la seccin 3.1.2).
69
Sensor Monitor
coordinador (conectado a travs del adaptador USB), Z-Tool puede comunicarse con cualquier tipo de dispositivo. As, aunque no sea recomendable mantener al coordinador alimentado por bateras, podemos usar esta conguracin y conectar un dispositivo nal al PC a travs del adaptador USB.
Evaluation board
y el SmartRF05
necesitan una aplicacin en nuestro PC para poder visualizar los paquetes interceptados
Packet Snier, un programa gratuito suministrado por Texas Instruments. Packet Snier
diferencia la parte fsica, MAC, de red y de aplicacin.
Gracias a esta aplicacin podemos monitorizar cualquier paquete interceptado por el transceptor CC2520. Dentro de una trama,
Aparte de esto tambin numera todas las tramas, indica el tiempo en ms entre una trama y otra, y, por ltimo, seala la intensidad en dBm con que se recibe la seal. En conjunto, CC2520EMK, SmartRF05EB y
Packet Snier
para el estudio de nuestra red. Como veremos ms adelante, su uso nos aclara muchos aspectos del funcionamiento de nuestra red ZigBee/802.15.4. En la gura 3.25 vemos la pantalla principal de
Packet Snier.
Figura 3.25:
Packet Snier
70
fuente de ZASA de manera gratuita por lo que, usando este entorno de desarrollo, podemos modicarlo y cargarlo en el microprocesador cuantas veces veamos oportuno. Como ya hemos dicho con anterioridad, IAR ofrece una versin gratuita de este producto que limita el cdigo compilado a 4 Kbytes. ZASA fue creado pensando en cumplir con dicha limitacin. Es por ello que su tamao es prcticamente de 4 Kbytes. El Departamento de Tecnologa Electrnica de la Universidad de Mlaga dispone de la versin completa de IAR Embedded Workbench por lo que, afortunadamente, no tenemos ningn lmite ms all del propio espacio de memoria que ofrece el microprocesador MSP430. Como cualquier otro entorno de desarrollo, IAR Embedded Workbench est compuesto principalmente por la ventana donde escribir el cdigo fuente, el espacio de trabajo y la ventana de depuracin (gura 3.26). Para una descripcin detallada del funcionamiento de este entorno de desarrollo se recomienda acudir al tutorial ocial de IAR [31].
3.3.5. MATLAB
A la hora de realizar el estudio sobre el consumo de potencia es necesario analizar las capturas de pantalla del osciloscopio. Utilizamos MATLAB para leer estos datos de forma automtica. En este texto asumiremos que el lector conoce de antemano esta aplicacin por lo que prescindiremos de dar una descripcin ms detallada de ella (que puede encontrar, en cualquier caso, en [32]). El osciloscopio Tektronix TDS 3012B guarda los archivos de captura de pantalla en formato de hoja de clculo (.csv). Usando MATLAB, hemos creado un
script
datos de forma sistemtica. Adems, tambien podemos calcular y representar la media de dicho consumo de corriente para un intervalo dado. En la gura 3.27 vemos un ejemplo de una captura de pantalla y la media asociada. El eje de las abcisas representa el tiempo en ms y el de las ordenadas la corriente en
71
mA. Utilizamos la expresin 3.3 para calcular la corriente media consumida por un dispositivo, donde representa la ensima muestra de corriente y
I[n]
IM edia =
N n=1
I[n]
(3.3)
3.4.
En esta seccin se explicar el esquema del circuito que se ha usado para medir la corriente consumida por los nodos de nuestro
72
Para calcular el consumo de potencia (gura 3.29) utilizaremos la siguiente expresin, por todos conocida:
P = I V V
representa la tensin en bornas del nodo,
(3.4)
Valim
(tensin
proporcionada por la fuente, tal y como se observa en la gura 3.29) sigue la siguiente expresin:
Valim = V + R I
Si hacemos
(3.5)
RI
entonces:
Valim
(3.6)
La alimentacin de la tableta es de 3 V. Por otra parte, y como veremos en el siguiente captulo, toma valores mximos del orden de los 40 mA luego:
R 40 mA
3V
(3.7)
75
(3.8)
Llegamos pues a la conclusin de que un buen valor para la resistencia colocada entre la fuente de alimentacin y el nodo ZigBee/802.15.4 sera:
R=1
(3.9)
As, se podra considerar que la de tensin que cae en nuestro nodo es despreciable frente a la que nos proporciona la fuente de alimentacin. Tomando en cuenta entonces las expresiones 3.4 y 3.6 llegamos a la siguiente relacin lineal entre la potencia consumida por nuestro nodo y la corriente que circula por la resistencia
R: P = I Valim
(3.10)
En conclusin podemos decir que midiendo nicamente la corriente que circula por nuestra resistencia tenemos una medida del consumo de potencia del dispositivo. Para calcular la corriente voltaje que cae en
medimos el
73
3.4.2. Amplicador
Del apartado anterior se puede deducir que si que el osciloscopio debera ser capaz de leer es:
Imax
40
mA y
R=1
Vmax = Imax R = 40 mV
(3.11)
Este valor no es de un orden muy superior a la sensibilidad mxima del osciloscopio, que es de 1 mV/div. Por este motivo y para mejorar adems la relacion seal a ruido, es deseable el uso de un amplicador entre nuestro circuito y el osciloscopio. Se ha elegido para ello el amplicador INA195 de Texas Instruments [33]. Este amplicador est especcamente pensado para ser conectado a una resistencia de un valor pequeo, dando a la salida un voltaje 100 veces mayor al que cae en ella (A amplicador.
= 100
RF ILT ,
CF ILT .
74
Figura 3.31: INA 195 conectado a un ltro paso bajo. Fuente: [33]
RF ILT
CF ILT .
(3.12)
fc =
Resistencia RF ILT .
Por un lado interesa que
RF ILT
R. Por otro lado, segn [33], esta conguracin presenta el problema de que la amplicacin real es menor
a la terica (A
V = 100 V ),
como vemos en la expresin 3.13. Debido a este hecho interesa elegir valores no
75
Llegado a un compromiso entre ambos criterios, hemos elegido para cumple con
RF ILT
el valor de
47 ,
lo que
RF ILT
Areal = 100
5 k V = 99,068 5 k + 47 V
(3.14)
De este modo el error relativo introducido por nuestro ltro, expresin 3.15, resulta ser inferior al 1 %.
Errorrelativo = 1
0,93 % < 1 %
(3.15)
Condensador CF ILT
Una vez conocida ltro. Para hallar dicha frecuencia de corte buscaremos una cota superior y una inferior. La superior viene impuesta por el osciloscopio, como veremos a continuacin. La inferior la calcularemos de forma aproximada mediante medidas en el laboratorio. El osciloscopio, lgicamente, tiene una limitacin a la hora de tomar muestras de la seal a medir. Por otra parte, el teorema de Nyquist nos dice que una seal peridica puede ser perfectamente reconstruida siempre que se utilice una frecuencia de muestreo superior al doble de su ancho de banda. Por lo tanto, la frecuencia de muestreo de nuestro osciloscopio nos determinar la frecuencia mxima (fc ) de la seal de entrada que ste ser capaz de distinguir.
RF ILT
ser el valor de
CF ILT
(3.16)
Para nuestras medidas hemos congurado el osciloscopio de forma que tenga una resolucin horizontal total de 10.000 muestras. Esto da un valor de 1.000 muestras/div. Conociendo este valor de muestras dentro de cada divisin y la resolucin horizontal expresada en segundos/div, podemos calcular la frecuencia de muestreo de nuestro osciloscopio.
F recuencia de muestreo =
(3.17)
En la tabla 3.13 vemos como ejemplo la frecuencia de muestreo de nuestro osciloscopio para algunos valores de resolucin horizontal. Como dijimos en la seccin 3.2.1 la frecuencia de muestreo mxima del osciloscopio Tektronix TDS 3012B es de 1 Gmuestras/s por lo que, a partir de una resolucin de 1 dicha frecuencia se mantiene constante. Resolucin horizontal 10 s/div 1 s/div 200 ms/div 20 ms/div Frecuencia de muestreo 100 muestras/s 1 Kmuestras/s 5 Kmuestras/s 50 Kmuestras/s 1 Gmuestras/s 1 Gmuestras/s
s/div,
s/div 10 ns/div
1
76
Como veremos en el siguiente captulo, la mnima resolucin horizontal que vamos a necesitar es de 20 ms/div. Esto nos da una frecuencia de muestreo mxima de 50 Kmuestras/s. Por lo tanto, y aplicando 3.16, la mxima frecuencia que el osciloscopio ser capaz de distinguir ser:
fc <
(3.18)
Por lo tanto, podemos ltrar la seal con un ltro de pierda parte de la informacin. Respecto a la cota inferior, no podemos hacer
fc
componentes importantes de la seal. As, debemos llegar a un compromiso entre un valor menor de 25 kHz, que nos permita cumplir con el criterio de Nyquist, pero no demasiado pequeo, de forma que no deformemos la seal original. Despus de repetidas pruebas en el laboratorio hemos elegido el valor comercial de 220 nF para nuestro condensador. As pues, para los valores de
RF ILT = 47 fc =
CF ILT = 220 nF
(3.19)
La gura 3.33 muestra el esquema nal de nuestro sistema para la medida del consumo de potencia en nodos ZigBee/802.15.4.
Captulo 4
kit
tarea que realiza el dispositivo: encendido, inicializacin y conexin a la red, envo/recepcin de datos, etc. Adems, dentro de cada seccin distinguiremos entre el consumo que presentan el coordinador, los
routers
Es importante resaltar que el presente estudio slo pretende ser un indicador del consumo en redes ZigBee/802.15.4. Nosotros nos hemos centrado en los dispositivos del
kit
de ejemplo ZASA cargada en el microcontrolador pero, como hemos dicho, existen un gran nmero de otros dispositivos en el mercado (as como aplicaciones), tanto de Texas Instruments como de otros muchos fabricantes. As pues, repetimos que los datos obtenidos en este estudio slo deben ser tenidos en cuenta como un indicador general del reducido consumo que dispositivos basados en esta tecnologa pueden alcanzar.
4.1.
Encendido
kit
alimentacin, quedan a la espera de ser congurados por parte del usuario. ste les indicar, mediante el uso del pulsador conectado al MSP430, si deben congurarse como
nal. En esta seccin estudiaremos el consumo de corriente que presentan los nodos desde que conectamos la alimentacin hasta que el usuario presiona el botn por primera vez.
Consumo
En la gura 4.1 vemos representada la corriente consumida por el dispositivo justo en el momento de la conexin de la fuente de alimentacin. La corriente media, obtenida gracias a la implementacin de la expresin 3.3 en MATLAB, es:
IM edia = 3,9 mA
77
(4.1)
78
Una vez pasado este intervalo de tiempo de 1,3 segundos aproximadamente, el dispositivo queda en espera (gura 4.2) hasta que el usuario presiona el pulsador . En este estado el procesador CC2480 debe estar activo puesto que, en cualquier momento, el microprocesador MSP430 puede enviarle los comandos necesarios para su conguracin. La corriente media en este estado es:
IM edia = 15,5 mA
(4.2)
Llegados a este punto sera muy interesante calcular la vida til de nuestro dispositivo para el caso de que continuara indenidamente en este estado. Para el clculo de la vida til utilizaremos la expresin 4.3. La capacidad de batera, expresada en unidades de
mAh
de bateras tipo AAA los valores tpicos oscilan entre 900 y 1500 de referencia
1200 mAh.
4.1: ENCENDIDO
79
V ida util =
3 das y 5 horas
(4.3)
1. El microprocesador MSP430 puede funcionar a 1, 8, 12 16 MHz. En el caso particular de ZASA la frecuencia de trabajo es de 8 MHz. As pues, nada ms conectar el microprocesador a la alimentacin el reloj del sistema debe sincronizarse con esta frecuencia. El chip MSP430 no puede realizar dicha sincronizacin a no ser que la tensin de alimentacin sea de, al menos, de 2,2 V. Este punto es un margen de tiempo, de aproximadamente 1 segundo, que el MSP430 da a la tensin de alimentacin para asentarse. La corriente consumida es de 1,8 mA aproximadamente.
2. Calibracin del reloj del sistema. En este intervalo, la corriente toma el valor de 4,6 mA.
3. Cuando el reloj se ha calibrado el MSP430 despierta al procesador CC2480. Nos mantenemos indenidamente en este estado en el que el procesador CC2480 se encuentra activo. El valor medio de la corriente en este punto es de 15,4 mA
4. Los picos de corriente que vemos son debidos al parpadeo de los diodos LED que, como hemos explicado, ocurre una vez por segundo para indicar que el dispositivo se encuentra en espera de ser congurado. Los picos de corriente tienen una valor de 3 mA.
80
4.2.
Inicio
4.2.1. Coordinador
En esta seccin analizaremos el consumo desde el momento que el usuario presiona el pulsador hasta que el dispositivo se ha congurado correctamente. Como hemos explicado en la seccin 3.1.5, una vez que el dispositivo est en espera, si el usuario presiona una vez el pulsador, se inicia una ventana de 2 segundos de duracin. Si no volvemos a presionar el pulsador, ZASA congurar el dispositivo como coordinador o como
router. Si el dispositivo encuentra una red a la que poder conectarse se congurar como router
y se conectar a ella. Si por el contrario no encuentra ninguna red, se comportar como coordinador y proceder a la inicializacin de la red. En este apartado estudiaremos el consumo durante el inicio de un dispositivo que se comporta como coordinador. Cuando un dispositivo intenta asociarse a la red, la capa MAC gestiona el nivel fsico de forma que se realice un escaneo para una lista de canales determinada, en busca de algn dispositivo padre. Puesto que el procesador CC2480 trabaja en modo no balizado, el escaneo debe ser activo. Esto signica que el dispositivo que realiza un escaneo de canal enviar una baliza y, justo a continuacin, permanecer a la escucha en busca de una baliza de respuesta por parte del coordinador . Realizar este proceso varias veces para cada uno de los canales seleccionados. Si en alguno de los canales se encuentra un padre que responda a dicha solicitud, nuestro dispositivo se conectar a l. En la gura 4.4 vemos el consumo de corriente de un dispositivo desde que presionamos el pulsador hasta que forma la red.
Para obtener un resultado ms general, no tendremos en cuenta el consumo de corriente durante la ventana de 2 segundos ya que esta es una caracterstica particular de ZASA. As pues, el consumo de corriente desde que transcurre dicha ventana hasta que el dispositivo forma la red es:
IM edia = 28,6 mA
(4.4)
1 Recordamos aqu que en el modo balizado, el escaneo es pasivo (sin envo de balizas) puesto que se sobreentiende que ya existe un coordinador que enva balizas de forma peridica.
4.2: INICIO
81
El dispositivo anterior slo busca la red en un canal. Recordemos que los 26 canales ZigBee se distribuyen de la siguiente manera: 1 canal para la frecuencia 868 MHz (canal 0), 10 canales para 915 MHz (canales de 1 a 10) y 16 canales para 2,4 GHz (canales de 11 a 26). Por defecto, ZASA intenta conectarse nicamente al canal nmero 16. Si pasado un tiempo denido por la variable APP_JOIN_TIME no ha encontrado red alguna, formar la suya propia. Dentro del mdulo APP de ZASA podemos acceder al chero
sample_app.cfg
buscar la red. Conforme aumentamos el nmero de canales de esta lista, es necesario incrementar el tiempo de espera APP_JOIN_TIME, que por defecto vale 6 segundos (variable denida en el chero
sample_app.c
del mdulo APP). De forma prctica hemos comprobado que si elegimos escanear los 16
canales de la banda de 2,4 GHz esta variable debe ser, de al menos, 30 segundos para que d tiempo a enviar y recibir una posible respuesta. Utilizando IAR Embedded Workbench hemos modicado el nmero de canales sobre los que ZASA realiza el escaneo activo. En la gura 4.5, mostramos el consumo de un dispositivo que realiza el escaneo activo sobre ms de un canal
Como hemos dicho, conforme aumentamos el nmero de canales sobre los que se realiza el escaneo activo debemos aumentar el tiempo mximo de asociacin (APP_JOIN_TIME). En la tabla 4.1 mostramos el consumo para el caso de escaneo de 1 y 16 canales, teniendo en cuenta que tambin podemos medir el consumo como el producto de corriente media por tiempo (mA ms).
APP_JOIN_TIME
IM edia (mA)
28,6 34,3
mA ms
(s)
6 30
Cuadro 4.1: Consumo en funcin del nmero de canales escaneados durante el inicio de red
2 En
82
1. El dispositivo se encuentra en espera tal y como se ha visto en la seccin anterior. Los diodos LED parpadean una vez por segundo.
3. Ventana de espera de 2 segundos. En este caso el pulsador no se vuelve a presionar por lo que el dispositivo se comportar como ZigBee.
router /coordinador
4. El MSP430 enva los comandos necesarios al CC2480 para que ste realice el escaneo activo.
5. El CC2480 comienza el escaneo activo para el primer canal, enviando una baliza y permaneciendo a continuacin a la escucha. En la gura 4.7 se muestran ampliados los pasos 5, 6 y 7 as como el paso 5 (que es idntico al 7) en detalle .
3 Las caidas de corriente de la gura 4.7b no se aprecian en la gura 4.7a debido a la gran diferencia en la escala de tiempos de ambas grcas.
4.2: INICIO
83
(a) Pasos 5, 6 y 7
Figura 4.7: Visin en detalle del escaneo activo sobre dos canales
a) b)
En primer lugar el dispositivo escucha el canal segn requiere el algoritmo CSMA-CA explicado en la seccin 2.4.3. A continuacin el dispositivo transmite la baliza, que puede ser visualizada utilizando
Snier
Packet
(gura 4.8). Como vemos, este es un mensaje tipo broadcast (0xFFFF) que no requiere
de conrmacin
ack
a nivel MAC.
Figura 4.8: Baliza emitida por el nodo para determinar si ya existe un coordinador
c)
Por ltimo, el dispositivo vuelve a escuchar el canal a la busca de una baliza de respuesta.
7. Paso idntico al nmero 5. Se transmite una baliza, pero esta vez sobre el segundo canal. Tras realizar el escaneo en todos los canales, el CC2480 espera un intervalo de tiempo de aproximadamente 100 ms antes de comenzar de nuevo.
8. Tras repetir los pasos 5, 6 y 7 tantas veces como es posible dentro de APP_JOIN_TIME, el dispositivo entiende que no existe ninguna red ZigBee y se congura como coordinador de red. El aumento de consumo de unos 3 mA se debe a que, cuando funcionamos como coordinador, el diodo LED rojo permanece encendido, aumentando el consumo de corriente del dispositivo.
84
4.2.2. Router
El inicio de un
router
recibir respuesta por parte de la red antes de que acabe el tiempo APP_JOIN_TIME, por lo que entender que no debe congurarse como coordinador. En lugar de ello simplemente se asociar al coordinador de red ya existente (o a un router si ste tiene el permiso de asociacin desactivado) y comenzar su funcionamiento normal, enviando datos cada cierto periodo de tiempo. En la gura 4.9 podemos observar el consumo de corriente durante el inicio de un
router
No hemos considerado la ventana de espera de 2 segundos por ser una caracterstica particular de ZASA.
router
De nuevo, la corriente media as como el tiempo empleado en el inicio del dispositivo depender del nmero de canales que escaneemos y del valor del tiempo lmite de espera para asociarse a la red (APP_JOIN_TIME). En la tabla 4.2 vemos los valores de corriente para el caso de escaneo de 1 y 16 canales.
APP_JOIN_TIME
IM edia (mA)
26,6 33,8
mA ms
(s)
6 30
Cuadro 4.2: Consumo en funcin del nmero de canales escaneados durante el inicio de un
router
router
que realiza un
4.2: INICIO
85
router
1. Parpadeo de LED durante el modo de espera. 2. El usuario presiona el pulsador. 3. Ventana de espera de 2 segundos. 4. El MSP430 enva los comandos necesarios al CC2480 para que ste realice el escaneo activo. 5. El CC2480 comienza a escanear el primer canal, enviando una baliza y permaneciendo a la escucha. Suponiendo que este sea el canal sobre el cual funciona la red, recibiremos una baliza como respuesta, que podemos visualizar utilizando
Packet Snier
(gura 4.11).
router
El coordinador (direccin corta 0x0000) responde a la baliza del escaneo con otra baliza en la que especica algunos parmetros de la red. Podemos ver en el campo de especicacin de supertrama que SO y BO valen 15 lo que, como explicamos en la seccin 2.4.2, signica que la red funciona en modo no balizado. Tambin podemos ver que el coordinador tiene el permiso de asociacin (campo Assoc) activado. 6. Se cambia al siguiente canal. 7. El CC2480 escanea este canal enviando una baliza. Si suponemos que la red funciona en el primero de los canales, dicha baliza no recibir ninguna respuesta por parte del coordinador. 8. Tras repetir el escaneo activo sobre todos los canales el
router
cual trabaja la red. Si se obtuviera respuesta en ms de un canal, el CC2480 elegira aquel con una
86
mejor calidad de enlace. El siguiente paso es asociarse a un dispositivo padre y realizar la vinculacin (
En la gura 4.12 vemos de forma ampliada el consumo de corriente durante los procesos de asociacin y vinculacin. Utilizando el
router
ack
paquete 9 sirve para reclamar una respuesta por parte del coordinador. Cuando dicho coordinador recibe la peticin calcula una direccin corta para el
router
asignacin visto en la seccin 2.5.2. Una vez calculada esta direccin, es comunicada al
mediante el paquete 10 (conrmado a su vez por el paquete 11). De ahora en adelante ambos dispositivos se comunicarn utilizando dichas direcciones cortas. Una vez asociados, los dispositivos deben vincularse a nivel de aplicacin. Esto sirve para comprobar que ambos dispositivos funcionan con la misma aplicacin (mismo perl de aplicacin), y que sus puntos de acceso son compatibles. Como explicamos en la seccin 2.6.2 la subcapa ZDO (punto de
4.2: INICIO
87
acceso 0) es la encargada de realizar la vinculacin y de inicializar la subcapa APS. En la gura 4.14 vemos los paquetes intercambiados en dicho proceso. Como vemos, todos los puntos de acceso, tanto de origen como de destino, son 0x00 (ZDO). El identicador de perl de aplicacin es 0x0000, lo que quiere decir que todava no hemos registrado nuestra aplicacin. ZASA tiene como identicador 0x0F10. En la carga til de los paquetes 12 y 13 podemos ver como coordinador y
router
El proceso de vinculacin tambin requiere que el padre comunique al hijo su direccin larga IEEE. El paquete 18 (
cluster ID 0x0001) sirve para preguntar al padre dicha direccin. El paquete 20 (cluster
ID 0x8001), que es la respuesta a dicha peticin, adjunta la direccin IEEE en la carga til. Como podemos observar en el campo de control esta trama requiere de conrmacin a nivel de aplicacin. El paquete 22 representa dicha conrmacin. Como vemos, las tramas 20 a 23 representan un buen ejemplo de cmo un paquete puede requerir solamente conrmacin o conrmacin a nivel MAC y a nivel de aplicacin (paquete 20). Una vez realizada la vinculacin, ambos dispositivos comenzarn a comunicarse segn lo denido por la aplicacin ZASA. Utilizando para ello las direcciones de puntos de acceso e identicadores de
ack
cluster
router
router
al coordinador
88
router.
Figura 4.15: Consumo durante el inicio de un dispositivo nal con escaneo sobre un canal
APP_JOIN_TIME
IM edia (mA)
17,2 29,6
mA ms
(s)
6 30
2. El usuario presiona dos veces el pulsador, indicando que el dispositivo debe congurarse como dispositivo nal.
4. El MSP430 enva los comandos necesarios al CC2480 para que ste realice el escaneo activo.
4.2: INICIO
89
Figura 4.16: Inicio de un dispositivo nal con escaneo sobre dos canales
5. Se escanea el primer canal. Este apartado es idntico al paso nmero 5 visto para el caso de un
router.
6. Se cambia al siguiente canal. 7. Escaneo del segundo canal. De nuevo, este apartado es igual al paso 7 para el caso de un
router.
8. Tras repetir los pasos 5, 6 y 7 tres veces el dispositivo nal da por localizado el canal e inicia los procesos de asociacin y vinculacin. Dichos mecanismos son prcticamente iguales al caso de un
router
por lo que no entraremos de nuevo en detalle. En la gura 4.17 podemos ver en detalle el
90
4.3.
En esta seccin analizaremos el consumo de corriente durante la recepcin y el envo de datos, es decir, durante el funcionamiento regular de los dispositivos. Como ya hemos expuesto en diversas ocasiones, el consumo de los dispositivos nales ser mucho menor que el del coordinador y los
routers
puesto que
estos deben tener siempre activado el sistema radio. Por contra, los dispositivos nales slo saldrn del modo de bajo consumo para enviar o recibir datos (en el caso particular de ZASA, slo enviarlos) y, acto seguido, volvern a l. Comenzaremos estudiando el consumo de corriente para el caso del coordinador y los
routers
funcionamiento.
4.3.1. Coordinador
En la gura 4.18a se muestra el consumo de corriente en el coordinador. Con el programa ZASA el coordinador acta como sumidero de la informacin. Esto quiere decir que nunca enviar datos a sus dispositivos hijo, exceptuando el caso de los paquetes
ack
consumo es alto debido a que el sistema radio siempre est conectado en modo de recepcin. Como se ha explicado, ZASA hace que el diodo LED rojo est encendido cuando el dispositivo es el coordinador de red y tiene el permiso de asociacin activado. En la gura 4.18b se muestra el consumo una vez desactivado dicho permiso de asociacin (se ha presionado una vez el pulsador). Como vemos, el consumo de corriente disminuye aproximadamente 3 mA, que es exactamente lo que consume el LED rojo. En dicha gura tambin podemos observar los picos de corriente de periodicidad 1 segundo que son provocados por el parpadeo del LED, indicando que el dispositivo tiene desactivado el permiso de asociacin.
Figura 4.18: Consumo de corriente durante el funcionamiento regular del coordinador de red
La tabla 4.4 muestra el consumo medio de corriente en ambos estados as como la vida media para una batera de capacidad
1200 mAh.
Para hallar la vida til de una batera conocida la corriente media con-
91
sumida remitimos al lector a la expresin 4.3. Como vemos, utilizando una batera de estas caractersticas la vida til es muy baja, por lo que es muy recomendable alimentar al coordinador de red conectndolo a la red de distribucin. Estado Permiso de asociacin activado Permiso de asociacin desactivado
IM edia (mA)
38,45 35,45
ack
a nivel MAC, que es obligatorio, pero no a nivel de aplicacin. Igualmente, en la gura 4.19 se muestra
1. El coordinador est a la escucha y con el permiso de asociacin activado (LED rojo encendido).
2. Se recibe un paquete de datos. El pico de corriente hacia abajo se debe al cambio del sistema radio de recepcin a transmisin (para enviar el
se debe al parpadeo del LED verde que demuestra que el paquete ha sido recibido correctamente. Este paso es idntico al paso 5, que ser desglosado a continuacin.
3. El usuario presiona una vez el pulsador por lo que se desactiva el permiso de asociacin del coordinador y el LED rojo pasa de estar permanentemente encendido a parpadear una vez por segundo.
92
5. De nuevo, el coordinador recibe un paquete de informacin proveniente de una fuente de datos (paso es idntico al nmero 2). En la gura 4.20a vemos en detalle los pasos 4 y 5 . Este ltimo est compuesto por:
a) b) c) d)
ack
a nivel MAC.
El coordinador vuelve a poner el sistema radio en modo de recepcin. Se enciende el LED verde (durante 20 ms) para indicar que se ha recibido correctamente el paquete de informacin.
(a) Pasos 4 y 5
4.3.2. Router
El caso del consumo de un
router
obstante, para la placa de desarrollo que estamos utilizando, su consumo medio de corriente es levemente inferior puesto que el LED verde consume menos que el rojo, aproximadamente 2 mA. En la tabla 4.5 se muestra el consumo medio de corriente para los dos estados posibles, as como la vida til para el caso de utilizar bateras
1200 mAh
de capacidad. Estado
IM edia (mA)
37,28 35,26
Cuando un
router
recibe un paquete de datos el consumo sigue el mismo patrn que para el caso
router
4.19
4 El
paso 4 mostrado en la gura 4.20a corresponde al segundo parpadeo del LED, y no al primero, como seala la gura
93
realiza envo de datos de forma peridica hacia su padre aunque, nuevamente, el impacto sobre el consumo total debido al envo de paquetes no es signicativo. Por todo lo anterior, obviaremos la descripcin detallada del consumo para el caso de un
router.
routers
1200 mAh
no llega
a los dos das de duracin. Por este motivo, tal y como hemos dicho, es muy recomendable alimentar tanto el coordinador como los diferentes
del dispositivo nal cambia radicalmente puesto que pasa la mayor parte del tiempo en modo de bajo consumo, despertando nicamente en el momento de enviar los datos. En este apartado estudiaremos el consumo de corriente en un dispositivo nal que nicamente emplea mensajes de
ack
datos de 2 y 8 segundos (guras 4.21a y 4.21b respectivamente). Se denomina secuencia activa a cada uno de dichos pulsos de corriente. Como se puede ver, un dispositivo nal pasa la mayor parte de su tiempo en modo de bajo consumo.
5 El eje de tiempos tiene unidades de 5 s/div por lo que el ancho de pulso del parpadeo de los LED es comparativamente muy pequeo. Esta es la razn por la cual la mayora de los pulsos debidos al parpadeo de dichos diodos no se representan por pantalla.
94
routers
ha visto. Sin embargo, la corriente media durante el modo de bajo consumo en un dispositivo nal toma valores menores de 1
A,
V.
Como se
oset
a la entrada toma
valores tpicos de 0,5 mV. Llegamos pues a la conclusin de que el error introducido por el amplicador tiene un orden de magnitud mucho mayor que el parmetro que se desea medir. En conclusin, para el estudio del consumo de corriente en un dispositivo nal aplicaremos mtodos ms precisos que nos permitirn calcular el valor medio de corriente con mayor exactitud.
Los puntos sealados en la gura se corresponden con: 1. Este paso representa el consumo (de unos 3 mA) del parpadeo del LED verde que, como se ha explicado, parpadea una vez por segundo para mostrar que el dispositivo est congurado como dispositivo nal. Adems del parpadeo del LED, este pico de corriente tambin es debido a la lectura de temperatura que realiza el MSP430. Tras leer dicho valor de temperatura, el microprocesador espera 20 ms para de digitalizarlo utilizando el conversor ADC. 2. Transcurrida dicha ventana de 20 ms, el MSP430 realiza la lectura de la tensin de alimentacin. De nuevo, se vuelve a esperar 20 ms antes de digitalizar dicho valor. 3. El MSP430 ha terminado de realizar las medidas por lo que despierta al CC2480 y le enva un comando
zb_send_data_req
(comando tipo SREQ) para que ste enve los datos al nodo destino.
Este pico de corriente tambin es debido al inicio del oscilador RC de 16 MHz interno del CC2480 y del oscilador de cristal externo de 32,768 kHz (vistos en la seccin 3.1.2).
95
4. El CC2480 inicia el reloj de cristal externo de 32 MHz, que ser utilizado como reloj principal.
5. El CC2480 se encuentra en estado activo, la corriente en este estado es de 13 mA, valor que coincide con el que se muestra en su hoja de caractersticas [13].
6. El procesador CC2480 despierta al MSP430 y le enva la respuesta sncrona (SRSP) que el comando
zb_send_data_req
envo.
requiere. Adems, este pico de corriente tambin es debido a que el LED rojo
parpadea para indicar que el paquete de datos ha sido entregado al CC2480 para proceder a su
7. El CC2480 activa el sistema radio y lo pone en modo de escucha, conforme requiere el algoritmo CSMA-CA. El ancho de este pulso es variable y depende de lo ocupado que est el canal. El ancho de pulso que se muestra en la gura es un valor tpico. El consumo en este estado es de 32,5 mA, valor levemente superior al que nos especica la hoja de caractersticas [13] (valor tpico de 26,7 mA).
8. El procesador CC2480 cambia el sistema radio de recepcin a transmisin. La duracin de este intervalo es de exactamente 192
9. El CC2480 se encuentra ahora en modo de transmisin, enviando los dos bytes de datos (uno de temperatura y otro de medida de voltaje) a una velocidad de 250 kbps. Utilizando
Packet Snier
podemos ver el paquete de datos conforme es transmitido (gura 4.23). En ella podemos observar que el identicador del perl de aplicacin es 0x0F10, lo que determina que se est usando ZASA. Los puntos de acceso tienen por direcciones 0x01 (fuente) y 0x02 (sumidero). Por ltimo, el identicador de
cluster
es 0x0001, lo que signica que la fuente (dispositivo nal) est enviando informacin al
y 0x1E, que son los bytes que representan la temperatura y la medida de voltaje de alimentacin, respectivamente.
Como veremos ms adelante, este pulso se ensanchar si aumentamos el nmero de bytes que transmitimos, como es lgico. El consumo en este paso es de 30,5 mA, de nuevo levemente por encima del que nos indica la hoja de caractersticas del CC2480 (valor tpico de 26,9 mA).
11. El procesador CC2480 permanece a la escucha para recibir la conrmacin De nuevo, podemos visualizar dicho paquete (gura 4.24).
ack
96
ack
a nivel MAC
De nuevo, el consumo de corriente en este intervalo es 32,5 mA. 12. El CC2480 despierta al MSP430 para enviarle un comando
zb_send_data_conf
dicar que el paquete de datos ha sido correctamente entregado al siguiente nodo. 13. Los dispositivos CC2480 y MSP430 entran en modo de bajo consumo hasta el siguiente envo de datos.
IM edia =
Donde:
d d ISec + (1 ) ISleep P P
(4.5)
d= P =
Duracin de la secuencia activa. Esto es, el tiempo que se tarda en enviar un paquete de datos y
conrmar su recepcin. Periodo de envo de datos. Corriente media consumida durante la secuencia activa. Corriente media consumida durante el modo de bajo consumo.
ISec =
ISleep =
En la gura 4.25
6 se muestra una secuencia activa. Como se puede ver, los valores de la corriente
ISec = 17, 27 mA
(4.6)
d = 17 ms
6 Para
(4.7)
simplicar los clculos se supone que la secuencia activa comienza en el paso 3 de los expuestos anteriormente
97
El siguiente paso es calcular la corriente del modo de bajo consumo (ISleep ). Para ello cambiaremos nuestra resistencia de 1
por una de valor mayor. Este valor debe ser sucientemente grande para que la
tensin que caiga sobre ella sea medible por el multmetro, y sucientemente pequeo para que nuestro dispositivo siga funcionando debidamente. Recordamos que segn la expresin 3.5 la relacin entre el voltaje de alimentacin y el que cae en las bornas de nuestro dispositivo es:
Valim = V + R I
Luego:
(4.8)
R= V
Valim V I
(4.9)
representa la tensin que cae en las bornas de nuestro dispositivo que, segn la hoja de caractersticas
V = Valim R IM ax 2,2 V IM ax
(IM ax
(4.10)
representa el caso en el que nuestro dispositivo ZigBee consume la mayor corriente posible
40 mA V
router ).
lo ms grande
baje de 2,2 V (Vmin ), ya que en ese caso el dispositivo dejara de funcionar. Aplicando
una tensin de alimentacin (Valim ) de 3,6 V y considerando el caso ms desfavorable de consumo de corriente (IM ax ) tenemos:
(4.11)
alimentacin de nuestro dispositivo (V no bajar de 2,2 V) como un valor de tensin sucientemente alto como para que nuestro multmetro lo lea correctamente. El valor que se ha usado es de 32 paralelo dos resistencias de 47 y 100
a partir del
98
Utilizando el multmetro obtenemos el siguiente valor para la tensin que cae sobre la resistencia en el modo de bajo consumo:
(4.12)
ISleep =
(4.13)
As pues, ya hemos encontrado el valor de todos los parmetros necesarios para caracterizar el consumo en un dispositivo nal, a excepcin de
toma
el valor de 10 segundos (caso por defecto en ZASA) la corriente media consumida por un dispositivo nal es
30,1 A. En la gura 4.26a se puede ver la relacin entre corriente media consumida y periodo de envo
de datos (P ). Para su obtencin se ha aplicado la expresin 4.19. Por otra parte, en la gura 4.26b se muestra la vida til que obtendramos con esta corriente media para unas bateras AAA de capacidad 1200 mAh (valores calculados gracias a la expresin 4.3).
(b) Vida til para bateras AAA con capacidad 1200 mAh
Figura 4.26: Corriente media consumida y vida til de las bateras en funcin de
Como vemos, la corriente media consumida por un dispositivo nal toma por lo general valores muy inferiores a 1 mA. Este resultado es considerablemente inferior al obtenido en un coordinador o un
router
que, recordamos, consumen alrededor de 38 mA cuando funcionan de manera regular. Este bajo consumo permite obtener una vida til para las bateras de hasta 5 aos o ms, dependiendo del valor de
P.
99
En la gura 4.27 vemos una imagen ampliada de una secuencia activa en la que se transmite un paquete de 2 bytes de tamao (1,1 ms aproximadamente).
Conforme incrementamos el nmero de bytes que contiene dicho paquete aumentar la duracin del intervalo de transmisin (TX) y, en consecuencia, el de la secuencia activa. Ello tiene como resultado el aumento del consumo medio de corriente de nuestro dispositivo. El procedimiento que se ha seguido es modicar el cdigo de ZASA para aumentar el tamao de paquete a enviar y medir la duracin del intervalo de transmisin asociado. En la gura 4.28 vemos un paquete de datos que transmite 5 bytes (en
APS Payload ), los dos primeros de los cuales siguen siendo las medidas de temperatura y voltaje.
Se ha realizado dicha medida para ciertos valores del tamao del paquete de datos y, aplicando el mtodo de los mnimos cuadrados, se ha extrapolado el resultado (gura 4.29). Como vemos, la recta corta al eje de las ordenadas en el punto 1 mA aproximadamente, esto es debido a que, aun en el hipottico caso de enviar un paquete vaco, es necesario transmitir las cabeceras de las capas fsica, MAC, de red y de aplicacin.
100
Figura 4.29: Duracin del intervalo de transmisin (TX) para distintos tamaos de paquete
Antes de seguir sealaremos que la anterior grca nos permite, adems, comprobar de manera prctica el rgimen binario que presta el estndar 802.15.4 [10]. Como vemos, en ella se relaciona el tamao del paquete de datos (bytes) con la duracin del intervalo de transmisin (segundos). En consecuencia, se puede deducir el rgimen binario como la inversa de la pendiente de la recta representada en dicha grca. Esto es:
P endiente = 0,032
ms byte
(4.14)
Rgimen binario = e
(4.15)
Como vemos, el rgimen binario es exactamente de 250 kbps lo que coincide con la denicin del estndar para la frecuencia de 2,4 GHz. Cuando aumentamos el tamao del paquete de informacin la duracin de una secuencia activa (d) y el valor de corriente media en dicho intervalo (ISec ) aumentarn. Esto hace que el valor de corriente media consumida por nuestro dispositivo (IM edia , expresin 4.19) tambin aumente. Anteriormente vimos que la secuencia activa (d) dura 17 ms, de los cuales 0,1 ms se emplean en transmitir los 2 bytes de datos, 1 ms en transmitir las cabeceras a nivel fsico, MAC, de red y de aplicacin y 15,9 ms en el resto de procesos. Si denimos
d(n)
n: d(n) = 15,9 ms + 1 ms +
El siguiente paso es calcular puede aproximar
(4.16)
ISec
en funcin de
ISec (n)
como:
101
ISec (n) =
i
Siendo
[corriente intervalo(i)
(4.17)
i 1 2 3 4 5 6 7
Estado CC2480 en estado activo CC2480 activo y LED rojo CC2480 en estado activo Recepcin (CSMA-CA) Transmisin Recepcin (
Duracin del intervalo (ms) 7,8 1,2 1,2 1,6 (valor medio)
1 ms +
ack
a nivel MAC)
Cuadro 4.6: Consumo de corriente en los diferentes intervalos de una secuencia activa
IM edia (n) =
(4.18)
As pues, podemos ahora caracterizar el consumo en un nodo para distintos tamaos de paquete. En la gura 4.31 vemos la corriente consumida y la vida til para bateras de 1200 mAh, todo ello en funcin de n. Como vemos, la vida til disminuye en gran medida conforme aumentamos el tamao de paquete. Es por ello que ZigBee/802.15.4 est recomendado para envos de paquetes de datos pequeos, y no para una conexin ja de comunicacin entre dos nodos.
102
Figura 4.31: Consumo de corriente y vida til de las bateras en funcin del tamao de paquete (n)
zb_write_conguration
de la interfaz
Simple
parmetro especco de la red ZCD_NV_SECURITY_MODE. Haciendo que dicho parmetro valga 1, tanto en el dispositivo hijo como en el padre, ambos nodos utilizarn el modo seguro en sus comunicaciones. En la gura 4.32 vemos un paquete de datos enviado desde un dispositivo nal hasta el coordinador. Podemos ver como los dos bytes se codican usando un total de 20 bytes. Como no poda ser de otra manera, en el campo de control de trama a nivel de aplicacin se indica que la seguridad est activada (Sec vale 1).
Se deduce pues, que el uso de seguridad implica un aumento en el tamao de la carga til del nivel de aplicacin. Por lo tanto nos remitimos al punto anterior, en el que se estudia el efecto sobre el consumo cuando enviamos paquetes de tamao variable. De forma prctica hemos comprobado que, al codicar un paquete de tamao
n,
+ 18 bytes.
Para ms informacin respecto a la codicacin a nivel de aplicacin remitimos al lector al estndar ZigBee [9].
103
ack
de conrmacin se realiza extremo a extremo, lo que quiere decir que, para el caso particular de ZASA, el sumidero deber enviar a la fuente un mensaje de conrmacin una vez recibos los datos. Por otra parte, recordamos que un dispositivo nal tiene la opcin de enviar mensajes POLL (sondeo) a su dispositivo padre por si ste tiene informacin para l. Aunque este tipo de mensajes no tienen relacin con el
ack
ack
a nivel de aplicacin, ZASA est congurado de tal forma que cuando activamos el
de aplicacin el dispositivo nal tambin enva mensajes POLL a su padre. En concreto, se enviar
un mensaje POLL despus de cada envo de datos. ZASA est congurado de forma que la fuente nunca reciba datos, es por ello que un dispositivo nal nunca recibir respuesta a un mensaje POLL. Por todo lo anterior es necesario enfatizar que los resultados mostrados a continuacin son meramente orientativos y especcos de la aplicacin de ejemplo ZASA. La gura 4.33a muestra el consumo de corriente durante el envo de un paquete de datos (1), la recepcin del
ack
entre el 2 y el 3, siempre es el mismo y viene denido en ZASA por la variable APP_RESPONSE_POLL (100 ms por defecto). En este punto es importante destacar que, como vemos en dicha grca, entre el paso 1 y el 2 el integrado CC2480 queda en modo activo, consumiendo 13 mA. En dicho intervalo el CC2480 debera estar en modo de bajo consumo pero, por contra, prcticamente la totalidad de las ocasiones el integrado CC2480 se mantiene en modo activo consumiendo como media 13 mA. En la gura 4.33b se muestra un caso de funcionamiento correcto. Este error del dispositivo CC2480 est especicado en el documento Errata Notes CC2480 de Texas Instruments [16]. Dicho problema aumenta en gran medida el consumo de corriente total.
ack
El paso 1 es idntico al caso expuesto con anterioridad, en el cual el dispositivo nal enva un paquete de datos hacia el coordinador. Los pasos 2 y 3, para el caso de funcionamiento incorrecto, se muestran detalladamente en las guras 4.34a y 4.34b respectivamente.
104
(a) Envo de
1. Envo de informacin. Paso idntico al caso expuesto en el apartado Descripcin detallada del consumo del presente captulo. Al igual que antes, y por simplicidad, se considera que la secuencia activa comienza en el momento que el CC2480 comienza a consumir 13 mA (modo activo).
2. Envo de la conrmacin
ack
a) b) c)
El CC2480 se encuentra en modo activo debido al error que presenta dicho integrado. Se escucha el canal segn requiere el algoritmo CSMA-CA. Se transmite una peticin de
ack
a nivel de aplicacin.
ack
a nivel de aplicacin
d)
Se reciben el
ack
ack
a nivel de aplicacin.
Figura 4.36:
Ack
e)
Se enva un
ack
ack
a nivel de aplicacin.
105
Figura 4.37:
Ack
a nivel MAC
f) g)
Se enciende el LED rojo para indicar que se ha enviado correctamente el paquete de datos. El CC2480 entra en modo de bajo consumo.
3. Mensaje tipo POLL. Es importante remarcar que el microprocesador MSP430 no interere en este proceso. nicamente en el caso de que, efectivamente, el dispositivo padre tuviera datos para el hijo, el MSP430 sera despertado por el integrado CC2480.
a) b) c) d)
El CC2480 se despierta. CC2480 pasa a modo activo. Sistema radio en modo recepcin conforme al algoritmo CSMA-CA. Envo del mensaje POLL.
e)
Recepcin de
ack
a nivel MAC.
Figura 4.39:
Ack
a nivel MAC
f)
CC2480 en modo activo. Al nal de este paso se considere que termina la secuencia activa.
De nuevo, utilizaramos la expresin (4.19) para calcular la corriente media consumida por nuestro dispositivo:
IM edia =
d d ISec + (1 ) ISleep P P
(4.19)
d = 235 ms
(4.20)
Para el caso de que ocurra el error, es decir, entre el paso 1 y el 2 el CC2480 sigue en modo activo, la corriente media durante una secuencia activa sera:
ISec = 8,7 mA
(4.21)
106
Teniendo en cuenta que la corriente en modo de bajo consumo toma el valor de 750 el siguiente resultado para la corriente media consumida (con defecto en ZASA):
nA
tendramos
IM edia = 0,2 mA
En el caso de que no se diera el error,
(4.22)
ISec
tomara el valor de
3,64 mA,
86,27 A.
Como vemos, el
consumo aumenta considerablemente debido al error del integrado CC2480. En la gura 4.40 mostramos el consumo de corriente y la vida til de las bateras para el caso de funcionamiento con error y sin l.
Figura 4.40: Corriente media consumida y vida til con y sin error de funcionamiento en el CC2480
4.4.
En este punto estudiaremos el consumo de un dispositivo una vez pierde la conexin con su dispositivo padre. Lgicamente, slo tiene sentido analizar este caso para un
router
4.4.1. Router
Cuando un
router
ack
a nivel
MAC, comenzar un proceso de reconexin. Durante este proceso el dispositivo hijo enva un paquete
broadcast routers
en busca de un nuevo dispositivo padre. En la gura 4.41a podemos ver una captura de dicho
Packet Snier. Puesto que se trata de un mensaje tipo broadcast, la direccin MAC
destino es 0xFFFF; sin embargo, a nivel de red, se utiliza la direccin 0xFFFC, que signica todos los (incluido el coordinador) en el rango de alcance [10]. Esto es as puesto que, como es lgico,
resulta imposible conectarse a un dispositivo nal. En el caso particular de ZASA este mensaje se enva con un periodo igual al de envo de informacin. Si el
router
107
4.41b) por parte de un candidato a padre que pertenezca a la red de la que formaba parte, se conectar a l.
router,
continuamente. Es por ello que el consumo durante este proceso coincide con el caso del funcionamiento regular del
router
(apartado 4.3.2).
Si no recibe respuesta, comenzar un escaneo activo sobre dicha lista de canales. Esto quiere decir que enviar balizas y permanecer a la escucha de forma peridica, tal y como se ha visto en la seccin 4.2.3. Si el dispositivo nal recibe una respuesta a alguna de las balizas que ha transmitido, enviar al candidato a padre un mensaje de reasociacin (para comprobar si pertenece a la red de la que previamente formaba parte). En caso de recibir respuesta, se dar por concluido el proceso de reasociacin. En la gura 4.43 se muestra el proceso de envo de baliza, respuesta y reasociacin. El paquete 54 (P.nbr. = 54) es la baliza emitida por el dispositivo nal. El paquete 55 se trata de la respuesta a dicha baliza por parte del coordinador de red. Acto seguido, el dispositivo nal enva una peticin de reasociacin (paquete 56) que requiere de conrmacin
ack
de reasociacin (paquete 60) conrmando la direccin corta asignada al dispositivo hijo. El paquete 61 se trata de una nueva conrmacin
ack
a nivel MAC.
108
En la gura 4.44 se puede ver el consumo de corriente durante la bsqueda de un dispositivo padre para el caso de escaneo activo sobre un canal. En la tabla 4.7 se resume el consumo para los casos de bsqueda sobre uno y diecisis canales (como vemos, los valores de corriente son muy similares a los obtenidos para el proceso de inicio en la seccin 4.2.3).
Figura 4.44: Consumo de corriente durante la reconexin realizando escaneo sobre un canal
IM edia (mA)
9,34 27,64
109
4.5.
La tabla 4.8 muestra un resumen de la corriente media consumida para cada uno de los casos estudiados. Destacamos aqu que estos resultados son meramente orientativos puesto que han sido obtenidos para el caso particular de un integrado CC2480, un microprocesador MSP430 y la aplicacin de ejemplo ZASA. Adems, dentro del estado de envo y recepcin de datos, se ha tomado el caso bsico de
ack
slo a nivel
MAC, paquetes de datos de tamao 2 bytes, envo cada 10 segundos y modo sin seguridad.
Subestado Conexin de la alimentacin Espera Escaneo sobre 1 canal Escaneo sobre 16 canales Permiso de asociacin activado (LED rojo) Permiso de asociacin desactivado (Parpadeo de LED rojo)
IM edia
(mA)
(a) Coordinador
Estado Proceso de encendido Inicio Recepcin y envo de datos Prdida de conexin Subestado Conexin de la alimentacin Espera Escaneo sobre 1 canal Escaneo sobre 16 canales Permiso de asociacin activado (LED verde) Permiso de asociacin desactivado (Parpadeo de LED verde) Permiso de asociacin activado (LED verde) Permiso de asociacin desactivado (Parpadeo de LED verde) 35,26 Variable 105,8 37,28 Variable 111,8 35,26 Variable 105,8
IM edia
(mA)
(b) Router
Estado Proceso de encendido Inicio Subestado Conexin de la alimentacin Espera Escaneo sobre 1 canal Escaneo sobre 16 canales Secuencia activa Envo de datos Prdida de conexin Modo de bajo consumo Total Escaneo sobre 1 canal Escaneo sobre 16 canales
IM edia
(mA)
Duracin (s) 1,3 Variable 2 27,5 0,017 Variable Variable Variable Variable
Potencia (mW) 11,7 46,5 51,6 88,8 51,8 0,00225 0,09 28 82,9
110
Recordamos adems que la corriente media consumida por un dispositivo nal para paquetes de datos de tamao
IM edia (n) =
Donde:
(4.23)
d(n)
d(n) = 15,9 ms + 1 ms +
Con
(4.24)
ISec (n)
ISec (n) =
i
[corriente intervalo(i)
(4.25)
ISleep
Captulo 5
5.1.
Conclusiones
Tras el estudio que se ha realizado sobre el estndar ZigBee/802.15.4 y su consumo de corriente, podemos resaltar las siguientes ventajas que aportan los dispositivos basados en dicha tecnologa: El bajo consumo de corriente que presentan. Como se ha visto en el captulo anterior, un dispositivo ZigBee/802.15.4, bajo determinadas condiciones y durante su funcionamiento regular, puede alcanzar un consumo medio muy por debajo de 1 mA. Esto permite que las bateras que alimenten dicho dispositivo puedan alcanzar una vida til del orden de aos. Dado el n de esta tecnologa, que no es otro que formar redes de domtica, inmtica o control industrial, que los dispositivos que forman la red tengan una gran independencia energtica se hace altamente deseable. Bajo coste. Tal y como se ha mencionado, los componentes mnimos de un dispositivo basado en este estndar es un microprocesador, un transceptor o procesador ZigBee/802.15.4 y una antena chip. Estos tres componentes pueden alcanzar precios muy bajos en el mercado, convirtiendo este tipo de tecnologa en accesible a gran nmero de desarrolladores. Facilidad de programacin. Como hemos visto con la aplicacin de ejemplo ZASA, no es necesario un gran conocimiento en el campo de la programacin de microcontroladores para ser capaz de desarrollar una aplicacin ZigBee. Por otro lado, tambin hemos comprobado una serie de dicultades que este estndar tendr que salvar en el futuro: Dicultad de desarrollo de aplicaciones basadas en el modo balizado. Como se ha visto en el captulo 4, los dispositivos nales son capaces de alcanzar un consumo mnimo mientras que, el coordinador de red y los
routers tienen un mayor consumo. Esto es as, conforme a lo que se ha explicado, puesto
111
112
que estos ltimos deben estar continuamente escuchando el canal a la espera de informacin de sus dispositivos hijo. Claramente este es un problema que presenta el modo no balizado, en el que no existe una sincronizacin entre los nodos de la red. La dicultad en este punto se encuentra en el hecho de que las distintas compaas estn centradas por ahora en dicho modo de funcionamiento, que ofrece peor rendimiento (en
de Texas Instruments, en lugar de utilizar Z-Stack, existe la posibilidad de trabajar con un protocolo de nivel MAC conocido como TIMAC [34]. ste nos permite formar una red en conguracin de estrella utilizando el modo balizado, aunque su uso no est muy generalizado. El estndar se encuentra en sus primeros pasos. Aunque ya existe un gran nmero de empresas que fabrican tanto
hardware
como
software
para hablar de una completa implantacin. Esto hace que, en ocasiones, encontrar informacin sobre dicha tecnologa, tanto a nivel comercial como tcnico, se haga una tarea difcil. Existencia de otros estndares similares. Dado el amplio mercado existente para este tipo de tecnologa, han aparecido una serie de estndares paralelos que se presentan como una alternativa a ZigBee/802.15.4. Algunos ejemplos son Z-Wave [35] o Bluetooth
[36].
5.2.
ZigBee/802.15.4 es una tecnologa relativamente nueva por lo que se nos abre un amplio abanico de posibilidades en cuanto a su estudio se reere. A continuacin mencionamos algunas opciones que, por su relacin con el presente proyecto, nos resultan muy interesantes: Estudio del efecto de la potencia de transmisin sobre el consumo. El integrado CC2480 transmite con una potencia de 1 mW (0 dBm) que no es congurable [13]. No obstante, otros dispositivos de Texas Instruments, como el CC2520 [37] s nos permiten variar dicha potencia de transmisin. Esto nos da la posibilidad de ampliar el presente estudio atendiendo a la variacin que dicha potencia de transmisin provoca en el consumo de corriente. Mejora del sistema de medidas. Como se ha visto en el captulo anterior, todas las medidas de tensin sobre la resistencia utilizada han sido tomadas utilizando un osciloscopio Tektronix TDS 3012B. Este instrumento nos permite la conexin al PC mediante un cable de red RJ45. Esto hace posible su control (as como el envo de las capturas de pantalla) desde un ordenador. Para ello, se recomienda el uso del entorno LabVIEW de National Instruments [38]. Realizacin una comparativa entre el consumo de ZigBee y Bluetooth. Estudio de las interferencias entre ZigBee, Bluetooth y Wi-Fi. Realizacin de un estudio sobre el consumo de corriente en un dispositivo que utilice el modo balizado comprobando que, aparte de los dispositivos nales, el coordinador de red y los alcanzaran un mnimo consumo. Para ello recomendamos utilizar el [39] de Texas Instruments junto con TIMAC.
kit
routers
tambin
de desarrollo CC2430DK
113
Desarrollo de una aplicacin ZigBee. El presente estudio se ha realizado basado en la aplicacin de ejemplo ZASA. Proponemos aqu el desarrollo de una aplicacin similar, que sirva para demostrar las posibilidades comerciales de dispositivos basados en la tecnologa ZigBee/802.15.4. Desarrollo de una aplicacin para PC. Al igual que, gracias a la aplicacin ejecutable en el ordenador
Sensor Monitor, podemos monitorizar los datos de nuestra red basada en ZASA, proponemos aqu
igualmente el desarrollo de una aplicacin para PC que nos permita monitorizar e interactuar con la supuesta aplicacin ZigBee del punto anterior.
114
Apndice A
Sensor Monitor.
trabajo futuro ya que, adaptando esta aplicacin a nuestros requerimientos, podramos comunicarnos con cualquier microprocesador. La manera que tenemos de comunicar el PC y el microprocesador MSP430 es a travs de la conexin UART que nos proporciona el conector USB del
kit
cargada en dicho microprocesador, tiene un mdulo especialmente diseado para las comunicaciones por el puerto serie: MT (seccin 3.1.5). Bsicamente, lo que hace esta parte del cdigo es enviar una copia por la conexin UART de cualquier comando intercambiado entre los integrados MSP430 y CC2480. As, podremos monitorizar algunos de los parmetros de la red. Adems de enviar esta copia, el mdulo MT tambin hace que el microprocesador MSP430 enve una copia hacia el CC2480 de cualquier comando que reciba por la conexin UART. Esto nos permite controlar, en cierta medida, el CC2480 desde el PC. Respecto a ZASA, podremos monitorizar los datos recibidos por el coordinador, identicar el tipo de dispositivo conectado al PC (coordinador, el dispositivo, etc. El entorno de desarrollo que hemos elegido es Visual Studio y el lenguaje de programacin Visual Basic .NET. Repetimos aqu que, aunque esta aplicacin est especcamente desarrollada para funcionar junto a ZASA, el esquema que deberamos seguir para comunicarnos con cualquier otra aplicacin en un microprocesador sera muy similar. 115
Funcionamiento general
Lo primero que haremos al iniciar nuestra aplicacin es indicar el puerto serie utilizado (COM1, COM2, etc.). Una vez hecho esto se establecer la conexin y leeremos continuamente todos los bytes recibidos por dicho puerto, gracias a la conexin UART entre el PC y el MSP430. Estos bytes forman los comandos que se intercambian los integrados MSP430 y CC2480, enviados a hacia el PC gracias al mdulo MT de ZASA. El formato de estos comandos, que ha sido expuesto la seccin 3.1.2, se muestra de nuevo en la gura A.1.
Cada comando recibido ser identicado gracias al campo Comando, de tamao dos bytes. Para una descripcin detallada de todos los comandos disponibles se recomienda la lectura del documento [12] Para que nuestra aplicacin funcione correctamente debemos conectar el dispositivo al PC antes de que haya sido congurado como coordinador, nuestra aplicacin sern: 1. Leemos todos los comandos recibidos por el puerto serie. Si el comando recibido es
router
zb_start_conf
esto signica que el usuario ha presionado el pulsador y el dispositivo ha sido congurado. En este caso enviamos el comando
zb_read_conguration
en el campo de datos. As, estaremos preguntando al nodo cul es su tipo lgico. 2. Recibimos un comando como respuesta a la anterior solicitud (comando SRSP). Dicho comando nos especicar en su campo de datos el tipo lgico del dispositivo conectado. Mostraremos por pantalla si es un coordinador de red,
router
3. Si el dispositivo conectado es un
router
ninguna tarea ms. Si es un coordinador (sumidero) mostraremos por pantalla los valores de temperatura y voltaje recibidos, as como la direccin corta del nodo que nos enva dichos datos. Esto se consigue ignorando todos los comandos recibidos excepto
la informacin enviada por la fuente como su direccin corta. Bsicamente esta es la funcionalidad de nuestra aplicacin. Aunque es muy simple, como ya hemos dicho, slo pretende ser una muestra de cmo realizar las comunicaciones entre PC y microcontrolador.
117
Diagrama de ujo
En la gura A.2 mostramos el diagrama de ujo de nuestra aplicacin.
Ejemplo de funcionamiento
En la gura A.3a vemos la pantalla inicial de la aplicacin de comunicacin. Lo primero que debemos hacer es introducir el puerto serie al cual hemos conectado nuestro dispositivo. A continuacin presionaremos el pulsador para congurarlo. Si dicho dispositivo es un coordinador de red, la pantalla de eventos se mostrar roja. Conforme el dispositivo, que en este caso funciona como sumidero, reciba datos, se irn mostrando por pantalla (gura A.3b). Cada vez que recibimos un paquete de datos proveniente de una fuente se muestra por pantalla DATOS RECIBIDOS, la direccin corta del dispositivo que nos ha enviado dicho paquete, el valor de la temperatura y el del voltaje. Si por contra, el dispositivo es un
router
o un dispositivo nal, la pantalla se colorear azul o amarillo, respectivamente, y la aplicacin termina su funcionamiento. En la gura A.3c se muestra el caso en el que el dispositivo conectado al puerto serie es un
router.
(a) Inicio
(c) Router
Referencias
[1] Santa Cruz Institute for Particle Physics.
http://scipp.ucsc.edu/ http://focus.ti.com/lit/ml/swrp086a/swrp086a.pdf
[2]
Texas Instrumentas, TI Low Power Wireless, ZigBee Technical Overview, 2007, Documento en formato pdf accesible por internet en la direccin:
[3]
L. Jin-Shyan, S. Yu-Wei, S. Chung-Chou, A Comparative Study of Wireless Protocols: Bluetooth, UWB, ZigBee, and Wi-Fi,
(IECON),
[4]
Taipei (Taiwan), Noviembre, 2007. Documento en formato pdf accesible por internet en
la direccin:
http://eee.guc.edu.eg/Announcements/Comparaitive_Wireless_Standards.pdf http://www.bluetooth.com
[5]
J.C. Cano, J.M. Cano, E. Gonzlez, C. Calafate, P. Manzoni, Evaluation of the Energetic Impact of Bluetooth Low-Power Modes for Ubiquitous Computing Applications, 3rd ACM* International Workshop on Performance Evaluation of Wireless Ad Hoc, Sensor, and Ubiquitous Networks, Octubre, 2006.
[6]
Wi-Fi Enero,
and 2002.
Bluetooth Documento
Interference en formato
Issues, pdf
Revisin por
1,
Informe en
interno, la
HP,
accesible
iternet
direccin:
http://www.hp.com/rnd/library/pdf/WiFi_Bluetooth_coexistance.pdf
[7] K. Mandke, H. Nam, L. Yerramneni, C. Zuniga, The Evolution of UWB and IEEE 802.15.3a for Very High Data Rate WPAN, Informe interno, Mayo, 2003. Documento en formato pdf acesible por internet en la direccin:
http://users.ece.utexas.edu/~mandke/docs/Evolution_of_UWB.pdf
[8]
D. Takahashi, Tzero Technologies shuts down; that's the end of ultrawideband, Publicacin electrnica Venture Beat, Febrero, 2009. Documento accesible por internet en la direccin: http://venturebeat.com/2009/02/12/tzero-technologies-shuts-down-thats-the-end-of-ultrawideband/
[9]
[10] IEEE
Computer Layer
Society, (PHY)
Part
15.4:
Wireless for
Medium
Access
Control
(MAC)
and
Physical
Specications 2006.
Low-Rate accesible
Wireless por
Personal en
Area la
Networks direccin:
(WPANs),
Septiembre,
Documento
internet
http://standards.ieee.org/getieee802/download/802.15.4-2006.pdf
119
120
REFERENCIAS
[11] A. Koubaa, M. Alves, E. Tovar, IEEE 802.15.4 for Wireless Sensor Networks: A Technical Overview, TR-050702,
[12] CC2480 Interface Specication, SWRA175A, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:
http://focus.ti.com/lit/er/swra175a/swra175a.pdf
[13] CC2480 Data Sheet, SWRS074A, Texas Instruments, Mayo, 2008. Documento en formato pdf accesible por internet en la direccin:
[14] Simple API for Z-Stack, SWRA196 versin 1.2, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:
stack.html#Technical Documents
[15] Z-Stack ments, Application Abril, 2008. Programming Documento en formato
Interface, pdf
internet
http://focus.ti.com/docs/toolsw/folders/print/z-stack.html#Technical Documents
[16] Errata Notes CC2480, SWRZ027, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:
[17] CC2480 Developer's Guide, SWRA176, Texas Instruments, Mayo, 2008. Documento en formato pdf accesible por internet en la direccin:
[18] IAR Embedded Workbench for TI MSP430 [19] MSP430x2xx 2008. Family en User's formato
Guide, pdf
Documento
http://focus.ti.com/docs/prod/folders/print/msp430f2274.html
[20] MSP430F22x2, ments, Julio, MSP430F22x4 2007. Documento Mixed en Signal Microcontroller, pdf accesible por SLAS504B, internet en Texas la Instruformato direccin:
http://focus.ti.com/docs/prod/folders/print/msp430f2274.html
[21] CCZACCC06 struments, Target Board Schematics en 1 3, Project pdf No. 02598, por Revisin internet 1.3, en la Texas InMarzo, 2008. Documento formato accesible direccin:
http://focus.ti.com/docs/toolsw/folders/print/ez430-rf2480.html
[22] eZ430-RF2480 Demonstration Kit, SWRU151A, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:
rf2480.html
[23] Digital Documento Phosphor en Oscilloscopes formato pdf
TDS accesible
http://www.valuetronics.com/Details.aspx?ProdID=72&Model=Tektronix_TDS3000B %20Series
[24] PS2520, 1997. PS2520G, Documento en PS2521 formato & PS2521G pdf accesible User por Manual, internet Tektronix, en la Enero, direccin:
http://www.ptc.edu/OnlineLabs/Devices/Manuals/PS2520G_um.pdf
REFERENCIAS
121
34401A
User's en
Guide, formato
Part pdf
Number
34401-90004, por
Hewlett-Packar, en la
Febrero, direccin:
Documento
accesible
internet
http://centrum.feld.cvut.cz/?download=_/hp34401a/hp34401.pdf
[26] CC2520 Datasheet, SWRS068, Texas Instruments, Diciembre, 2007. Documento en formato pdf accesible por internet en la direccin: [27] CC2520-CC2591EMK to 2008. Documento Quick en
http://focus.ti.com/lit/ds/symlink/cc2520.pdf
Guide, pdf SWRU172A, accesible por Texas internet Instruments, en la Agosdireccin:
Start formato
http://focus.ti.com/lit/ml/swru172a/swru172a.pdf
[28] SmartRF05 zo, 2009. Evaluation Documento Board en User's Guide, pdf SWRU210, por Texas internet Instruments, en la Marformato accesible direccin:
http://focus.ti.com/lit/ug/swru210/swru210.pdf
[29] eZ430-RF2480 ments, Abril, Sensor 2008. Monitor User's en Guide, pdf Revisin accesible B, por SWRU157, internet en Texas la InstruDocumento formato direccin:
http://focus.ti.com/lit/ug/swru157b/swru157b.pdf
[30] SmartRF Febrero,
Packet
Snier
User en
Manual
Rev.
1.9,
Texas en
Instruments, la direccin:
2009.
Documento
formato
accesible
http://focus.ti.com/lit/ug/swru187a/swru187a.pdf
[31] MSP430 nio, 2000. IAR EMBEDDED en WORKBENCH pdf
Tutorials, por
IAR en
Systems, la
Ju-
Documento
formato
accesible
internet
direccin:
http://www.eecs.berkeley.edu/~boser/courses/40/labs/docs/IAR %20tutorial.pdf
[32] URL de MATLAB.
http://www.mathworks.com/ http://focus.ti.com/lit/ds/symlink/ina195.pdf
[33] Current Shunt Monitor, SBOS307, revisin E, Texas Instruments, Mayo, 2004. Documento en formato pdf accesible por internet en la direccin: [34] URL de Texas Instruments sobre TIMAC. [35] URL de Z-Wave Alliance. [36] URL de Bluetooth
http://focus.ti.com/docs/toolsw/folders/print/timac.html
http://www.z-wavealliance.org
[37] CC2520 Data Sheet, SWRS074A, Texas Instruments, Abril, 2008. Documento en formato pdf accesible por internet en la direccin:
[38] URL de National Instruments sobre LabVIEW. [39] CC2430DK tubre, 2007. Development Documento Kit en User formato
Manual, pdf
http://focus.ti.com/lit/ug/swru133/swru133.pdf