NA036 – Alarma Antirrobo Inalámbrica ZigBee Nota de aplicación NA036 Título: Alarma Antirrobo Inalámbrica ZigBee con transceiver MC13192. Autores: CAMBERA VAQUERA, Elizabeth (flacaely@gmail.com) COHEN, Andrea (andrelapotra@hotmail.com) COHEN, Eduardo Daniel (dcohen@arnet.com.ar) CORIA, Rodrigo (coria_rodrigo@hotmail.com) DÉCIMA, Agustín (aprdecima@gmail.com) ESTRADA, Maximiliano (maxie_ar@hotmail.com) GIORI, Julio César (jcgiori@gmail.com) HERNANDEZ, Ivana María (ivs.maria.her@gmail.com) MAJOREL PADILLA, Nicolás (nickmpad@yahoo.com.ar) MALDONADO, José Facundo (facundomaldonado@hotmail.com) MEZA, Ariel (armole70@hotmail.com) ORAZI, Lautaro (raistlin_fup@hotmail.com) VOLENTINI, Esteban (evolentini@equiser.com.ar) Laboratorio de Microprocesadores Departamento de Electricidad, Electrónica y Computación Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán. DESCRIPCION BREVE En la presente nota de aplicación se desarrolla el diseño y la implementación de una alarma antirrobo inalámbrica utilizando el transceiver MC13192. A diferencia de otras alarmas, tanto cableadas como inalámbricas, la misma presenta las siguientes características: Fácil instalación, minimizando costos de la misma. Hasta 62 nodos de los cuales 6 pueden ser controladores (paneles y/o teclados). Bajísimo consumo de baterías con una autonomía de, por los menos, dos años. Interfaces amigables e intuitivas. Comunicación con central de monitoreo a través de telefonía fija o GSM. Tolerancia a fallas a través de redundancia a nivel de controladores de la red y dos vías de comunicación con la central de monitoreo. Altísima seguridad a nivel de comunicaciones entre nodos a través de encriptación y autenticación. Adicionalmente, la estructura modular del proyecto y la utilización de un esquema basado en capas, permiten la implementación de modificaciones con gran facilidad. El diseñador encontrará en esta nota no sólo un sistema sofisticado de alarma, sino también una serie de conceptos que le resultarán muy útiles a la hora de encarar nuevos proyectos. 1 NA036 – Alarma Antirrobo Inalámbrica ZigBee TABLA DE CONTENIDOS DESCRIPCION BREVE ................................................................................................................................ 1 TABLA DE CONTENIDOS ........................................................................................................................... 2 1. INTRODUCCIÓN ................................................................................................................................. 3 1.1. 2. DESCRIPCIÓN GENERAL DEL SISTEMA DE ALARMA ........................................................... 6 2.1. 2.2. 3. DIAGRAMA DE COMPONENTES ........................................................................................................ 6 DESCRIPCIÓN DE LOS COMPONENTES .............................................................................................. 8 DESCRIPCIÓN DEL PROTOCOLO UTILIZADO (IROCO) ....................................................... 11 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 4. CARACTERÍSTICAS GENERALES ....................................................................................................... 4 INTRODUCCIÓN ............................................................................................................................. 11 DIAGRAMA DE BLOQUES DEL STACK IROCO ................................................................................. 11 POLÍTICAS DE ACCESO AL MEDIO .................................................................................................. 12 TIPOS DE DISPOSITIVOS ................................................................................................................. 12 DISPONIBILIDAD DEL COORDINADOR DE RED ................................................................................ 12 POLÍTICAS PARA BAJO CONSUMO .................................................................................................. 13 POLÍTICAS DE SEGURIDAD ............................................................................................................. 13 SEGURIDAD Y TOLERANCIA A FALLOS ................................................................................... 14 4.1. 4.2. 4.3. 4.4. INTRODUCCIÓN ............................................................................................................................. 14 ENCRIPTACIÓN Y AUTENTICACIÓN................................................................................................ 14 REDUNDANCIA .............................................................................................................................. 15 OTROS POSIBLES PROBLEMAS ....................................................................................................... 18 5. ANÁLISIS DE CONSUMO ................................................................................................................ 18 6. CONCLUSIONES ............................................................................................................................... 19 6.1. 6.2. 6.3. 6.4. 6.5. A. COMUNICACIÓN INALÁMBRICA. .................................................................................................... 19 DISPONIBILIDAD............................................................................................................................ 19 BAJO CONSUMO. ........................................................................................................................... 20 SEGURIDAD. .................................................................................................................................. 20 COORDINACIÓN DE SUBSISTEMAS. ................................................................................................ 20 FUNCIONAMIENTO DE LA ALARMA INALÁMBRICA ........................................................... 21 A.1. A.2. A.3. A.4. A.5. A.6. A.7. A.8. INTRODUCCIÓN ............................................................................................................................. 21 MODOS DE FUNCIONAMIENTO....................................................................................................... 21 OTRAS CARACTERÍSTICAS ............................................................................................................ 21 TIPOS DE ZONAS: PROPIEDADES ................................................................................................... 22 NODOS: PROPIEDADES .................................................................................................................. 24 DESCRIPCIÓN DE EVENTOS............................................................................................................ 26 DESCRIPCIÓN LÓGICA DEL LAZO DE CONTROL PRINCIPAL ............................................................ 29 DIAGRAMAS DE FLUJO GENERALES DE EVENTOS VARIOS .............................................................. 40 B. CÓDIGO COMPLETO ....................................................................................................................... 51 C. STACK DE PROTOCOLOS IROCO ................................................................................................ 52 C.1. C.2. C.3. C.4. C.5. C.6. D. INTRODUCCIÓN ............................................................................................................................. 52 DIAGRAMA DE BLOQUES DEL STACK IROCO ................................................................................. 52 CAPA DE SEGURIDAD..................................................................................................................... 53 SUBCAPA LLC (LINK LAYER CONTROL) ....................................................................................... 55 SUBCAPA BEACON ........................................................................................................................ 57 ESTRUCTURA DE TRAMAS ............................................................................................................. 63 PRIMITIVAS Y VARIABLES DEL STACK IROCO ..................................................................... 65 D.1. CAPA SEGURIDAD ......................................................................................................................... 65 2 NA036 – Alarma Antirrobo Inalámbrica ZigBee D.2. D.3. D.4. D.5. D.6. E. COMUNICACIÓN ENTRE CONTROLADORES .......................................................................... 78 E.1. E.2. E.3. E.4. E.5. E.6. F. DEFINICIÓN DE VARIABLES ........................................................................................................... 87 CONSUMO DEL MC13192 ............................................................................................................. 87 CONSUMO DEL MC9S08QG8 ....................................................................................................... 88 ECUACIÓN DE CONSUMO GENERAL................................................................................................ 88 CÁLCULOS ESTIMATIVOS .............................................................................................................. 88 MANUAL DEL INSTALADOR DE LA ALARMA ......................................................................... 90 G.1. G.2. G.3. G.4. G.5. G.6. H. INTRODUCCIÓN ............................................................................................................................. 78 CODIFICACIÓN .............................................................................................................................. 78 COMUNICACIÓN MULTICAST ........................................................................................................ 78 COMUNICACIÓN TECLADO-PANEL ................................................................................................ 83 COMUNICACIÓN PANEL-TECLADO ................................................................................................ 84 COMUNICACIÓN CONTROLADOR-CONTROLADOR ......................................................................... 86 ANÁLISIS DETALLADO DE CONSUMO ...................................................................................... 87 F.1. F.2. F.3. F.4. F.5. G. SERVIDOR BEACON ....................................................................................................................... 72 VARIABLES ADICIONALES ............................................................................................................. 74 ANEXO A: INGRESO DE NODOS A LA RED ...................................................................................... 75 ANEXO B: CAMBIO DE COORDINADOR DE RED .............................................................................. 75 ANEXO C: DIAGRAMA DE PRIMITIVAS Y VARIABLES ..................................................................... 76 INTERFAZ CON EL USUARIO ........................................................................................................... 90 ADMINISTRACIÓN DE USUARIOS .................................................................................................... 91 MENÚ ............................................................................................................................................ 91 CLAVE SILENCIOSA ..................................................................................................................... 102 BLOQUEO DE TECLADOS ............................................................................................................. 102 CONDICIONES DE ERROR ............................................................................................................. 102 MANUAL DE USUARIO DE LA ALARMA .................................................................................. 104 H.1. H.2. H.3. H.4. H.5. H.6. H.7. H.8. H.9. H.10. H.11. H.12. H.13. H.14. DISCLAIMER ................................................................................................................................ 104 INTRODUCCIÓN ........................................................................................................................... 104 DEFINICIONES Y TÉRMINOS ......................................................................................................... 105 NODOS ........................................................................................................................................ 105 PANELES ..................................................................................................................................... 106 TECLADOS ................................................................................................................................... 106 MAPA DE MENÚ .......................................................................................................................... 107 ¿COMO ACTIVAR LA ALARMA? .................................................................................................... 107 DESARMAR ................................................................................................................................. 111 FORZADO DE LA ALARMA ........................................................................................................... 112 INHIBICIÓN DE NODOS ................................................................................................................ 112 USUARIOS ................................................................................................................................... 112 FUNCIONES AVANZADAS ............................................................................................................ 114 MENSAJES ................................................................................................................................... 118 1. INTRODUCCIÓN Esta nota de aplicación tiene como propósito el desarrollo de un sistema de alarma cuya conectividad entre sus elementos se realiza en forma inalámbrica. El objetivo principal de este sistema es brindar al cliente la mayor seguridad posible en forma simple y eficiente ante casos de robo, asalto, incendios, situaciones de pánico y emergencias. La utilización de conectividad inalámbrica permite una rápida instalación debido a que no requiere reformas en el hogar. Además, como ventaja adicional, permite la instalación en situaciones o lugares donde la colocación de una alarma cableada es muy costosa o de difícil implementación. El hecho de que los nodos se encuentren alimentados por baterías ofrece una gran flexibilidad y, debido a su muy bajo consumo, el costo de reemplazo de baterías resulta despreciable frente a la duración de las mismas. 3 NA036 – Alarma Antirrobo Inalámbrica ZigBee El uso de tecnología ZigBee y microcontroladores Freescale permiten una gran autonomía de batería, con una duración de hasta dos años a través de sólo dos baterías AA. Este período de duración de las baterías es configurable por el diseñador, limitado por un compromiso entre consumo de baterías y tiempo de reacción del sistema a eventos de disparo del mismo. Dado que las comunicaciones inalámbricas se propagan en el aire, cualquier persona, con el equipamiento adecuado y los conocimientos suficientes, puede interceptar una transmisión y observar su contenido. En el caso particular de este sistema de alarma, la privacidad del usuario está garantizada a través del uso de tecnologías de encriptación de datos y autenticación de nuevas componentes. En caso de que se desee aún más seguridad, a través de algoritmos de encriptación más robustos, la estructura modular del proyecto y la utilización de un esquema basado en capas, permiten la implementación de modificaciones con gran facilidad. El sistema está pensado para que funcione monitoreado por una central de alarma que actuará ante situaciones preestablecidas, brindando tranquilidad al usuario aún cuando éste no se encuentre presente en su hogar. La central funciona como coordinadora de todo el sistema de alarma y de las comunicaciones entre sus dispositivos. Este esquema presenta ventajas y desventajas. Por un lado, se presenta como un único punto de falla, por lo que está claramente definido dónde debe ponerse énfasis para lograr que funcione en un régimen 24/7. Si este dispositivo opera en ese régimen, el funcionamiento del sistema de alarma está garantizado. Por otro lado, su mayor ventaja es también su peor falencia, con la caída de este dispositivo, la red, es decir, el sistema completo, queda inoperable. En el caso particular del sistema de alarma desarrollado en esta nota de aplicación, esta desventaja queda saldada a través de un esquema de tolerancia a fallas por redundancia. Esto se debe a que cualquier dispositivo controlador conectado a la red puede tomar las funciones de central en caso de falla del controlador principal de la red. De esta manera el usuario puede sentirse seguro de que el sistema seguirá funcionando con un alto nivel de tolerancia a fallas. Este esquema de redundancia del sistema presenta grandes ventajas sobre sistemas convencionales de alarma cableados permitiendo su utilización en situaciones donde se requieren sistemas de alarma muy seguros y de alta disponibilidad. 1.1. Características generales A continuación se detallan algunas de las características más sobresalientes de este sistema de alarma. El sistema está compuesto por nodos de muy bajo consumo que controlan el estado de los sensores y, en forma inalámbrica, envían la información al panel central de la red. El mismo administra las funciones del sistema y controla las comunicaciones entre los dispositivos de la red. La utilización de tecnología de comunicaciones inalámbricas permite una fácil instalación ya que no requiere rotura de paredes para cableado de señal ni para cableado eléctrico, debido a la alimentación propia. Las interfaces con el usuario están compuestas por teclado y display lo que permite administrar la totalidad de las funciones del sistema de alarma de manera fácil, rápida y muy intuitiva. Los nodos que informan el estado de los sensores son alimentados por dos baterías de tipo AA. La eficiencia en el manejo de energía tanto en el protocolo de comunicación como en la implementación de cada nodo garantizan una duración de por lo menos dos años. Las baterías de respaldo, incluidas en paneles principales y teclados, permite asegurar la continuidad del funcionamiento del sistema ante cortes de energía eléctrica. 4 NA036 – Alarma Antirrobo Inalámbrica ZigBee El cargador de baterías, incluido en paneles principales, permite hacer un uso óptimo de cada conjunto de celdas utilizado en los mismos, maximizando vida útil y nivel de carga. El estado de alarma silenciosa permite disminuir el riesgo de integridad física del usuario frente a situaciones de asalto. El sistema funciona tanto como alama antirrobo como así también como alarma contra incendios. El sistema permite crear hasta 30 zonas diferentes. Una zona permite agrupar un conjunto de nodos. De esta manera, se evita administrar por separado cada uno de los sensores. Además, los mismos pueden administrarse, por ejemplo, por zona geográfica dentro de la vivienda. El uso de este concepto permite una administración más amigable y más eficiente al usuario. El protocolo de comunicación utilizado brinda la posibilidad de agregar hasta 62 nodos de los cuales 6 pueden ser controladores (paneles y/o teclados). Los botones de pánico permiten la notificación rápida a la central de monitoreo frente a situaciones de riesgo. Se provee una función de control de estado de la línea telefónica que permite saber, en el momento, si se ha producido un corte indeseado del servicio. La comunicación instantánea con la central de monitoreo vía telefónica, las 24 horas, permite conocer muy rápidamente y en forma remota el estado completo de la alarma. El sistema estandarizado de reportes permite gran compatibilidad con sistemas actuales de monitoreo. Por la naturaleza del protocolo de comunicación, se realiza continuamente un testeo permanente de la red, por lo que está garantizado que la central conoce el estado completo del sistema. Los estados de armado tanto en Modo Presente como Ausente, permiten activar el sistema incluso si el usuario se encuentra presente en el domicilio. Se implementa la posibilidad de múltiples usuarios a través de distintas claves. La falta de batería como de comunicación o fallas de nodos no impiden la posibilidad de forzar el armado con los nodos que funcionen adecuadamente. Este procedimiento se realiza de forma rápida e intuitiva a través de cualquier teclado perteneciente al sistema. Además de comunicarse a través de un sistema de reportes, el sistema permite notificar tanto a emergencias médicas como bomberos. Se brinda la posibilidad de establecer una clave secundaria que activa la alarma silenciosa y engaña al usuario de que el sistema se encuentra inactivo. Además de las comunicaciones a través de telefonía fija, el sistema permite implementar comunicaciones a través de la red de telefonía celular GSM. De esta manera, se provee tolerancia a fallas a nivel de comunicaciones con la central de monitoreo. Dado que el sistema permite redundancia a nivel de controladores de la red, los nodos redundantes pueden estar equipados tanto con sirenas como por sistemas de comunicación adicionales proveyendo tolerancia a fallas en un sistema de alta seguridad y confiabilidad. El protocolo de comunicaciones implementado entre miembros de la red del sistema de alarma presenta un alto grado de seguridad garantizando la privacidad del usuario. Este protocolo protege el sistema, por ejemplo, de escuchas indeseadas en las comunicaciones. 5 NA036 – Alarma Antirrobo Inalámbrica ZigBee Adicionalmente, el protocolo de comunicaciones autentica a los dispositivos miembros de la red. De esta manera, se evita la posibilidad que un intruso introduzca tanto nodos como centrales ajenas a la red, “confundiendo” al sistema. 2. DESCRIPCIÓN GENERAL DEL SISTEMA DE ALARMA 2.1. Diagrama de Componentes El sistema de alarma esta compuesto por tres componentes básicos: Teclado Sirena Interior - ENTER - 1 2 3 4 5 6 7 8 9 Estación de Monitoreo Puerta de Entrada Red Telefonica 9 AA AP PP Red Celular GSM Red Inalámbrica ZigBee Teclado - ENTER - 1 2 3 4 5 6 7 8 9 Nodo Nodo Sirena Exterior 9 AA AP PP Ventana Panel Puerta Figura 1: Diagrama de los componentes del sistema de alarma inalámbrica Paneles: Son los encargados de detectar una situación de alarma y tomar las acciones adecuadas. Sus funciones principales son la supervisión de los nodos y teclados, el accionamiento de la sirena principal del sistema y el envío de reportes a la estación de monitoreo vía telefónica fija y redundancia de vía celular. Teclados: Conforman la interfaz con el usuario para el armado, desarmado y control general del sistema de alarma. Adicionalmente tienen una entrada para un sensor, en general la puerta de ingreso principal, y puede manejar una sirena interior de menor potencia. Nodos: Se ocupan de monitorear una variable física que puede desencadenar una situación de alarma. En general controlan la apertura de puertas y ventanas, detección de humo, detección de rotura de vidrios y detección de movimientos. En una instalación en particular pueden coexistir distintas cantidades de estos componentes. En general se tendrán uno, dos o tres paneles principales, quedando esta cantidad definida en función del nivel de tolerancia a fallas que se quiera dar al sistema. Además se dispondrá de uno o más teclados, definidos por los posibles puntos de accesos, pudiéndose agregar teclados en puntos que resulten cómodos para gestionar el estado de la alarma. Finalmente se colocarán tantos nodos como sensores se deseen, en general uno en cada puerta y ventana, además de sensores de incendio 6 NA036 – Alarma Antirrobo Inalámbrica ZigBee en cocina y habitaciones, como así también sensores de movimiento en áreas con acceso directo al exterior. Nodo Apertura Nodo Incendio Teclado Nodo Apertura Nodo Incendio Nodo Apertura Nodo Apertura Nodo Movimiento Teclado Nodo Incendio Nodo Apertura Nodo Apertura Nodo Apertura Nodo Movimiento Nodo Apertura Teclado Nodo Apertura Nodo Apertura Figura 2: Ejemplo de la instalación de alarma en una vivienda tipo 7 NA036 – Alarma Antirrobo Inalámbrica ZigBee 2.2. Descripción de los componentes 2.2.1. Panel Principal Los paneles principales están destinados a coordinar y supervisar los componentes del sistema, detectar una condición de alarma y comunicarla al mundo exterior. Por esta razón disponen de una batería para respaldo de alimentación, conexión a la línea telefónica, conexión a la red celular de GSM y conexión a una sirena exterior a fin de emitir distintos tipos de alertas. Modem GSM Procesador Sirena Discado Telefónico Transceptor Zigbee Figura 3: Diagrama de bloques del panel principal Las principales partes que componen un panel pueden verse en el diagrama en bloques de la Figura 3. Estas son: Transceptor: Es el elemento encargado de enviar y recibir los paquetes de información mediante ondas de radio utilizando el protocolo físico de conexión del estándar IEEE 802.15.4. Las principales funciones del transceptor son: emitir un paquete de sincronización a los elementos de la red y recibir los paquetes de estado de los teclados y nodos, como así también permitir el intercambio de información entre los distintos paneles del sistema. En el panel, el transceptor está integrado en la placa de desarrollo ZigBee, el cual consiste en el MC13192 de Freescale. Procesador: Es el elemento encargado de recuperar y procesar la información recibida por el transceptor, generando acciones sobre la sirena, la comunicación y los otros paneles y teclados del sistema. Su principal función es analizar la información recibida, interpretar la información de estado de cada uno de los nodos como así también generar mensajes a los otros paneles y teclados. En el panel se utilizó como procesador una placa de desarrollo de ZigBee de la empresa Electrocomponentes, la cual incluye un microcontrolador MC9S08GT32 de Freescale. Sirena: Es el elemento encargado de generar una alerta en los habitantes del domicilio como así también de disuadir al intruso para que desista de su accionar. Su principal función es generar un sonido fuerte cuando el panel determina una condición de alarma que requiera del uso de la misma. Discador Telefónico: Es un elemento destinado a comunicar el panel con la estación de monitoreo remoto. Su principal función es permitir al panel sistema informar su estado y una situación de alarma a un lugar externo al área controlada. En los paneles, el discador fue desarrollado utilizando un integrado de discado multifrecuente (DTMF) con electrónica analógica para cumplir con las especificaciones de un aparato telefónico 8 NA036 – Alarma Antirrobo Inalámbrica ZigBee Módem GSM: Es el elemento destinado a comunicar el panel con la estación de monitoreo remoto en caso de no disponer de una línea telefónica normal. Su principal función es aumentar la tolerancia a fallas del sistema, permitiendo la comunicación entre el panel y la estación de monitoreo aún en caso de sabotaje de la línea telefónica. En el desarrollo del panel se utilizó un kit de la empresa Electrocomponentes basado en el módulo de transmisión G24 de Freescale. 2.2.2. Teclados Los teclados interactúan muy frecuentemente con el usuario. Por esta razón incluyen un display LCD alfanumérico capaz de presentar mensajes de texto de una longitud razonable, presentando así una interfaz amigable de fácil empleo. Display LCD Procesador Transceptor Teclado Sirena Sensor Figura 4: Diagrama de bloques del Teclado Las principales partes que componen un teclado pueden verse en el diagrama de bloques de la Figura 4, y son: Transceptor: Es el elemento encargado de enviar y recibir los paquetes de información mediante ondas de radio utilizando el protocolo físico de conexión del estándar IEEE 802.15.4. La principal función del transceptor es recibir un paquete de sincronización enviado por el coordinador de la red y, basado en la información de dicho paquete, enviar y recibir información del panel controlador del sistema. En el teclado, el transceptor está integrado en la placa de desarrollo ZigBee que contiene al procesador principal, y está basado en el integrado MC13192 de Freescale. Procesador: Es el elemento encargado de recuperar y procesar la información recibida por el transceptor, por el teclado y por el sensor. Su principal función es analizar la información recibida, contestar los mensajes del panel principal, y mantener actualizada la información que se muestra al usuario en el display LCD. En el teclado se utilizó como procesador una placa de desarrollo de ZigBee de la empresa Electrocomponentes, la cual incluye un microcontrolador MC9S08GT32 de Freescale. Teclado: Es el elemento encargado de recibir las opciones del usuario e informarlas al procesador. Está conformado por dieciséis teclas acomodadas en un arreglo de cuatro filas por cuatro columnas. Display LCD: Es el elemento encargado de mostrar las opciones y estado del sistema al usuario. En este proyecto se utilizó un display alfanumérico de cuatro líneas por veinte caracteres basado en el controlador inteligente compatible con el Hitachi HD44780. 9 NA036 – Alarma Antirrobo Inalámbrica ZigBee Sensor: Es el elemento encargado de detectar un cambio en una variable física, y cuando este cambio supera una determinada magnitud, generar una señal digital indicando que se produjo una variación superior al límite predefinido. Esta señal digital es tomada por el procesador, quien es el encargado de informar de la situación al sistema de alarma. El teclado permite la opción de monitorear un sensor ya que en general está colocado en las proximidades de una puerta de acceso, ahorrándonos de esta forma un nodo para dicha puerta. Sirena: A fin de aumentar la seguridad en una instalación básica donde se cuente con un solo panel, el teclado agrega la posibilidad de controlar una sirena de bajo consumo, destinada a “aturdir” al intruso. Esto permite un refuerzo además de un nivel mayor de seguridad al disponer de más de un elemento de alerta. 2.2.3. Nodos Los nodos están diseñados para tener un muy bajo consumo, lo que les permite operar con dos pilas de tipo AA. Los mismos poseen una entrada digital la cual se acopla a cualquiera de los sensores de alarma existentes en el mercado. Sensor Procesador Transceptor Figura 5: Diagrama de bloques del Nodo Las principales partes que componente al nodo pueden verse en el diagrama de bloques de la Figura 5, y son: Transceptor: Es el elemento encargado de enviar y recibir los paquetes de información mediante ondas de radio utilizando el protocolo físico de conexión del estándar IEEE 802.15.4. La principal función del transceptor es recibir un paquete de sincronización enviado por el coordinador de la red y, basado en la información de dicho paquete, enviar el estado del nodo en el momento designado. En el nodo se utilizó como transceptor una placa Antena de la empresa Electrocomponentes, la cual está basada en el MC13192 de Freescale. Procesador: Es el elemento encargado de recuperar y procesar la información recibida por el transceptor y por el sensor. Su principal función es generar los mensajes al panel controlador, en los cuales informa el estado del sensor, el estado de las pilas de alimentación, y también su propio estado. Para el desarrollo del nodo se utilizó como procesador un microcontrolador de bajo consumo MC9S08QG8 de la empresa Freescale. Sensor: Es el elemento encargado de detectar un cambio en una variable física, y cuando este cambio supera una determinada magnitud, generar una señal digital indicando que se produjo una variación superior al límite predefinido. Esta señal digital es tomada por el procesador, quien es el encargado de informar esta situación al sistema de alarma. En los nodos se utilizaron distintos sensores de alarma existentes para conectarlos al procesador. 10 NA036 – Alarma Antirrobo Inalámbrica ZigBee 3. DESCRIPCIÓN DEL PROTOCOLO UTILIZADO (IROCO) 3.1. Introducción El stack iRoco es un conjunto de protocolos orientado a la comunicación de dispositivos inalámbricos de un sistema de alarma. El mismo está implementado sobre la capa física del estándar IEEE 802.15.4. En forma general, este protocolo presenta las siguientes características: Baja carga de procesamiento, alta seguridad y bajo consumo. Emplea un modo de direccionamiento corto, permitiendo hasta 63 dispositivos en la red. Usa una estructura de trama simple, que combinada con el reconocimiento de comunicación (mecanismo de acknowledgement), resulta en una entrega de datos muy confiable. Soporta la Asociación/Disociación/Readmisión de dispositivos a la red, así como la autenticación de los mismos, obteniendo así una red muy segura. Permite un acceso al medio libre de contención bajo condiciones normales, gracias a la asignación de turnos. Todas estas características, y la descripción completa del protocolo pueden encontrarse en el Apéndice C. A continuación, mencionaremos los aspectos principales del mismo. 3.2. Diagrama de bloques del Stack iRoco El stack de protocolos iRoco sigue un modelo jerárquico por capas que se ilustra en la Figura 6: Figura 6: Estructura de Capas del stack iRoco El protocolo está implementado sobre la capa física (PHY) del Standard IEEE 802.15.4 y sobre la capa SMAC (Simple Medium Access Control) desarrollada por Freescale. Las características más importantes del estándar IEEE 802.15.4 son la flexibilidad de la red, bajo costo y bajo consumo de energía. Este estándar se puede utilizar para muchas aplicaciones industriales y de domótica, donde se requiere una baja tasa de transmisión de datos. La capa PHY, en conjunto con SMAC, proveen el soporte necesario para el control del transceiver y poseen la ventaja de ser gratuitos. La capa PHY se encuentra programada en el transceiver, mientras que el código fuente de la SMAC debe incluirse en el MCU junto con el resto del stack iRoco. A continuación se presenta una breve descripción de cada una de las capas. Una descripción más detallada de las mismas puede encontrarse en el Apéndice C. 11 NA036 – Alarma Antirrobo Inalámbrica ZigBee 3.2.1. Capa de Aplicación Esta capa da soporte para las aplicaciones tanto de panel principal, teclados, y nodos sensores de la red de alarma domiciliaria. 3.2.2. Capa de seguridad La capa de seguridad esta abocada a la tarea de asegurar que los mensajes recibidos provengan de una fuente segura y de que el contenido de los mismos no pueda ser interpretado por un dispositivo externo a la red. 3.2.3. Capa de enlace de datos La capa de enlace está dividida en 3 subcapas: LLC (Link Layer Control): se encarga del direccionamiento y la entrega confiable de los mensajes, implementando un sistema de ACK y retransmisiones. BL (Beacon Layer): es la capa encargada del sincronismo necesario para la multiplexión temporal del medio de transmisión, lo que permite que el acceso al medio sea libre de contención. SMAC (Simple Medium Access Control): es la capa encargada de efectuar las funciones básicas del transmisor-receptor. 3.2.4. Capa Física (PHY) Definida en el estándar IEEE 802.15.4, encargada básicamente de activar y desactivar el transceiver, así como de la transmisión y recepción de paquetes a través del medio físico, entre otras cosas. 3.3. Políticas de acceso al medio El stack de protocolos iRoco impone un acceso ordenado y libre de contención a la red, logrado mediante una multiplexión en el tiempo del canal de transmisión. Esta multiplexión del medio se logra asignando turnos a cada uno de los dispositivos de la red. Esta asignación de turnos se realiza a través de una señal guía -denominada señal beacon- que se emite periódicamente. De esta manera, cada dispositivo de la red sólo podrá transmitir en los turnos que le sean asignados, evitando así la competencia por el medio de transmisión y asegurando un acceso equitativo al mismo. En cada red existe un único dispositivo, denominado coordinador de red, encargado de realizar la asignación de turnos de los demás dispositivos de la red y de emitir la señal beacon. 3.4. Tipos de dispositivos En la red pueden identificarse 2 tipos de dispositivos: FFD (Full Function Device): Es un dispositivo de función completa. El mismo es un coordinador de red potencial. Son dispositivos sin requerimientos específicos de consumo y con una alta capacidad de procesamiento; en el caso de esta alarma, el Panel principal y todos los posibles teclados. RFD (Reduced Function Device): Es un dispositivo de función reducida. No puede ser coordinador de red, y sólo puede hablar con un FFD. Suele ser un dispositivo de bajo consumo alimentado por una batería; en el caso de esta alarma, un nodo sensor alimentado por 2 pilas de tipo AA. 3.5. Disponibilidad del coordinador de red Existe un FFD principal (típicamente el panel principal de la alarma) configurado como el coordinador de red. Sin embargo, tal como se explicó previamente, todos los FFD 12 NA036 – Alarma Antirrobo Inalámbrica ZigBee son coordinadores potenciales, de manera que tienen la capacidad de hacerse cargo de la coordinación de la misma en cualquier momento dado. Cuando un FFD detecta la ausencia de señales beacon en el medio de transmisión, considera que el coordinador de red (que es quien emite dichas señales) está fuera de servicio y asume él la coordinación de la red. Se explica este punto con más detalle en el capítulo siguiente. 3.6. Políticas para bajo consumo Con el fin disminuir el consumo de los dispositivos RFD, éstos se mantienen en un estado de hibernación en los turnos asignados a otros dispositivos. De esta manera el mayor consumo de energía se produce durante sus turnos asignados, teniendo un consumo prácticamente despreciable el resto del tiempo. Tomando esto en consideración, el protocolo permite implementar una política de bajo consumo, proporcionando diversos modos de asignar turnos a los dispositivos de la red, de manera de reducir al máximo el consumo de los dispositivos RFD en ciertas circunstancias particulares (por ejemplo, al estar la alarma desarmada). Existen 3 modos de asignación de turnos: Modo crítico: Al dispositivo que se encuentre en este modo, se le asigna un turno por cada ronda. Este modo se utiliza cuando el dispositivo necesita enviar poca información, pero con una frecuencia alta. En la alarma, cuando ésta se encuentra armada, los dispositivos se encuentran en este modo, ya que necesitan mandar de una manera veloz el estado de su sensor. Modo keep-alive: Al dispositivo que se encuentre en este modo, se le asigna un turno cada cierta cantidad de rondas. Este modo se utiliza cuando el dispositivo sólo desea informar que el mismo sigue en servicio. En la alarma, cuando ésta se encuentra desarmada, los RFD se encuentran en este modo con el objetivo de bajar su consumo al mínimo. Modo de Transferencia de datos: Al dispositivo que se encuentre en este modo, se le asigna más de un turno por ronda. Este modo se utiliza cuando el dispositivo desea transferir un gran volumen de datos. En la alarma, cuando ésta se encuentra desarmada, los FFD se encuentran en este modo con el fin de intercambiar información de la alarma entre ellos. 3.7. Políticas de seguridad Con el fin de evitar la suplantación de alguno de los dispositivos de la red y la intercepción de los mensajes de la misma, el protocolo implementa una política de seguridad basado en la autenticación y encriptación de mensajes. La autenticación de mensajes impide el ingreso de dispositivos ajenos a la red, mientras que la encriptación evita la lectura por parte de terceros de los mensajes transmitidos en la red. La necesidad de este tipo de políticas viene dado por el hecho de usar un medio de transmisión inalámbrico, el cual es mucho más vulnerable que un medio de transmisión cableado. En el capítulo siguiente se analizan las distintas vulnerabilidades a las que está sujeta una alarma inalámbrica, y cómo el uso de estas dos técnicas (autenticación y encriptación) ayuda a combatirlas. 13 NA036 – Alarma Antirrobo Inalámbrica ZigBee 4. SEGURIDAD Y TOLERANCIA A FALLOS 4.1. Introducción En este capítulo se describen en detalle dos de las características más importantes de esta alarma, la seguridad y la disponibilidad (tolerancia a fallos), muy necesarias a la hora de realizar un sistema lo más seguro e inmune a fallos posible. Esta alarma implementa dos técnicas fundamentales para proveer de seguridad y disponibilidad al sistema: la autenticación y encriptación de mensajes y la redundancia. A continuación se describirán en detalle estas dos técnicas, junto con un análisis de los riesgos a los que está sometida la alarma, y cómo estas técnicas ayudan a resolverlos. Finalmente, se describirán otros problemas de origen diverso, también relacionados con la seguridad y la inmunidad a fallos, y los mecanismos mediante los cuales la alarma los detecta y los soluciona. 4.2. Encriptación y Autenticación Tal como se explicó previamente, el stack de protocolos iRoco implementa una política de seguridad basada en la autenticación y encriptación de mensajes. El objetivo de estas políticas es evitar ciertos riesgos propios de una red de comunicación inalámbrica, que resultan críticos al tratarse de una alarma domiciliaria. La autenticación consiste en la generación de códigos que son adjuntados a cada mensaje. El objetivo de este código es permitir al destinatario de un mensaje verificar que el remitente del mismo es un dispositivo perteneciente al sistema. Estos códigos de autenticación se generan a partir de una semilla, que es conocida solamente por el destinatario y por el remitente del mensaje, como también del código usado por estos dispositivos en el mensaje anterior. De esta manera, el código de un mensaje no coincide con el código de mensajes anteriores. En el caso del primer mensaje, posterior a la puesta en marcha o reinicio de uno de los dispositivos, el código de autenticación se genera sólo a partir de la semilla. El objetivo de esto es automatizar el reingreso a la red de un dispositivo que se haya reiniciado, y que por lo tanto haya perdido registro de sus últimos códigos de autenticación usados. Ante la recepción de un mensaje, el destinatario verifica si el código de autenticación es el esperado. Si el código es incorrecto, el mensaje se descarta y se toman acciones según el estado en que se encuentre el sistema (de encontrarse desarmada la alarma se limita a informar la situación, mientras que en el caso de encontrarse armada, la alarma se dispara). En el caso de la señal beacon se utiliza un algoritmo similar, que difiere sólo por el hecho que este tipo de mensaje posee un remitente pero varios destinatarios. La encriptación consiste en codificar el cuerpo de los mensajes, a fin de evitar su lectura por parte de cualquier dispositivo que no sea el destinatario. El algoritmo de encriptación utiliza los códigos usados en la autenticación, de esta manera la codificación puede realizarse con un número cambiante y conocido por los dos dispositivos involucrados en la comunicación. Los algoritmos implementados fueron elegidos en función de los requerimientos de bajo consumo, poca carga de procesamiento y disponibilidad limitada de memoria. Sin embargo, bajo otros requerimientos menos restrictivos, sería factible implementar algoritmos más seguros sin necesidad de realizar cambios significativos en el protocolo. A continuación se realiza el análisis de los riesgos detectados que son solucionados por estas técnicas. 14 NA036 – Alarma Antirrobo Inalámbrica ZigBee 4.2.1. Suplantación de dispositivos Uno de los riesgos consiste en que un dispositivo sea desactivado y reemplazado por un agente malicioso, de manera que no se note la ausencia de dicho dispositivo a pesar de estar fuera de servicio. Se pueden producir las siguientes situaciones: El agente malicioso se limita a repetir el último mensaje transmitido por el dispositivo suplantado, repitiendo en cada transmisión el código de autenticación del mismo, o bien reemplazándolo por el usado por algún dispositivo auténtico que aún esté funcionando en la red. En este caso, el destinatario del mensaje detecta que el código de autenticación es inválido, ya que el código varía entre mensaje y mensaje. El agente malicioso se limita a repetir la secuencia original de mensajes, simulando que el dispositivo se ha reiniciado. En este caso, el destinatario acepta el primer mensaje pero no los mensajes siguientes, detectando la suplantación. Esto se debe a que el protocolo modifica la semilla luego de cada reinicio, evitando que se repitan los códigos de autenticación. El agente malicioso intenta romper por fuerza bruta el algoritmo de autenticación de la alarma (esto es, interceptar y analizar todos los paquetes enviados hasta encontrar un patrón de repetición en los códigos). Si bien esto es posible, los códigos de autenticación se generan de manera diferente por cada relación destinatario/remitente (ya que existe una semilla por cada una de estas relaciones), por lo que demandaría un tiempo considerable conseguir la información necesaria para encontrar un patrón. El agente malicioso intenta suplantar al dispositivo al momento de su ingreso a la red. En este caso, el agente intenta sacar provecho de la vulnerabilidad de esta operación, puesto que la misma se realiza sin los mecanismos de autenticación ni de encriptación (dado que el dispositivo ingresarte no posee ninguna semilla). Esta situación se evita ya que el ingreso de un nuevo nodo sólo se permite mediante un mecanismo especial de ingreso de nodos a la red, descripto en el Manual del Instalador, ubicado en el Apéndice G. 4.2.2. Lectura de mensajes por terceros Otro riesgo consiste en que un agente malicioso escuche todos los mensajes transmitidos por la red, a fin de conocer el estado de la alarma. Esta información se puede utilizar, por ejemplo, para encontrar alguna entrada que no sea controlada por la alarma (caso de activación forzada y algún nodo no funciona) o bien para conocer la actividad humana en las distintas áreas de la residencia. Esto se previene gracias a la encriptación de mensajes, que evita que un dispositivo ajeno a la red pueda interpretar los mensajes de la misma. 4.3. Redundancia Esta alarma presenta redundancia con el objetivo de incrementar la disponibilidad del sistema de alarma, de manera que la caída del controlador principal no conlleve a la falla de todo el sistema. Esto es posible ya que cualquier dispositivo controlador conectado a la red puede tomar el control en caso de fallar el controlador principal de la red. A continuación se explica el mecanismo que se emplea para implementar redundancia en este sistema a fin de facilitar la comprensión de las soluciones implementadas para cada uno de los riesgos mencionados posteriormente. Para lograr redundancia en este sistema de alarma se debe asegurar que: Cuente con dos o más FFD (paneles o teclados) posibles. Se defina un Coordinador. Los restantes serán controladores “FFD”. 15 NA036 – Alarma Antirrobo Inalámbrica ZigBee Los FFD deben corren la misma versión (o versión compatible) de software del Coordinador en caso de que asuman cuando falle el Coordinador actual. Cada Coordinador posee un nivel de prioridad que permite que se seleccione automáticamente como controlador al FFD cuya prioridad es la mayor que le siga al controlador defectuoso en la red; dicho dispositivo controla todo el sistema de alarma. Esta selección sólo se realiza si existe un FFD de mayor prioridad al Coordinador actual de la red. En este caso, el cambio se hace cuando el sistema está desarmado para prevenir que algún FFD con una configuración desactualizada tome el control. A su vez, al entrar en modo desarmado todos los FFD reciben una actualización de su configuración. De esta manera se asegura un buen funcionamiento global del sistema. El sistema de alarma funciona según un diagrama de estados, donde a cada estado corresponde una secuencia de funciones y las transiciones de uno al otro se producen mediante eventos. Cada evento es informado por el Coordinador a los FFD por medio de un sistema de Multicast y ACK: Un Multicast es un mensaje dirigido a un grupo en la red, mientras que un Unicast es un mensaje dirigido a un nodo en particular. Un ACK es la respuesta a un determinado mensaje. El Coordinador informa de las transiciones de estados a través de los Multicast. Adicionalmente los utiliza para actualizar la configuración de los FFD. Para aprovechar los servicios de Unicast-ACK provistos en capas inferiores, el Sistema de Multicast y ACK esta implementado de la siguiente manera: Cuando se necesita enviar un “Multicast” se genera un Unicast a cada FFD. Si algún Unicast no recibe su ACK, la capa inferior lo notifica, y el Coordinador deshabilita dicho FFD hasta que se reactive y actualice. Un diagrama de estados simplificado que sigue el sistema se muestra en la Figura 7: Figura 7: Estructura de Capas del stack iRoco 16 NA036 – Alarma Antirrobo Inalámbrica ZigBee Todos los FFD corren el mismo sistema y realizarán las mismas transiciones (por medio de los Multicast recibidos). De esta manera si el Coordinador desaparece, cualquiera de los FFD podrá asumir como Coordinador y continuar desde un punto seguro. En este punto, se tuvieron en cuenta las siguientes consideraciones de diseño: Una situación de alarma o incendio no causa un cambio de modo Si en alguno de los estados se recibe un mensaje no esperado, el sistema propaga un mensaje de “Error” y una actualización del estado del sistema. De esta manera se evita que existan controladores con una configuración errónea. Los cambios en el estado de inhibición de los nodos también son propagados a los FFD. El estado de inhibición de un nodo indica si los mensajes emitidos por el mismo están siendo ignorados por la alarma o no. Por este motivo, su propagación es de vital importancia para el funcionamiento general del sistema. En el estado “Instalador” (estado en el que se puede realizar la configuración completa de la alarma, para más detalles ver el Apéndice A), la red es actualizada en tiempo real. De esta manera el instalador puede realizar pruebas y comprobar el funcionamiento de la red. A continuación se realiza el análisis de los riesgos detectados que son solucionados por estas técnicas. 4.3.1. Desaparición del Coordinador Este riesgo puede surgir ante las siguientes causas: Ruptura del dispositivo Batería agotada Falla de Software Ante esta situación el sistema de alarma puede quedar fuera de funcionamiento. Este problema se previene empleando el esquema de redundancia explicado anteriormente. Todos los FFD son potenciales coordinadores de la red. Si el Coordinador actual desaparece, automáticamente asume el control de la red el FFD que le siga en prioridad. 4.3.2. Controlador FFD desactualizado Este riesgo puede darse cuando el Coordinador no recibió el ACK correspondiente de un FFD. Si un FFD en ésta condición asume como Coordinador, puede ocasionar inconsistencias en el funcionamiento del sistema. Como solución a este problema el Coordinador detecta la falta de ACK del FFD e informa al mismo que se encuentra desactualizado. De esta manera, si debe asumir el control de la red cederá su función de Coordinador a otro FFD a menos que sea el último disponible. 4.3.3. Falla de Reporte Este riesgo se origina cuando un Panel Principal, Coordinador de la red, no puede mediante ninguna de las líneas habilitadas enviar el reporte correspondiente a un evento determinado. Esto provoca la falta de comunicación del Sistema con la Central de monitoreo. Para solucionar este problema es necesario contar con más de un Panel Principal o FFD en la red. Si el Coordinador falla en su reporte, los Paneles Principales adicionales intentarán establecer la comunicación, ya que tienen la capacidad de realizar reportes telefónicos. 17 NA036 – Alarma Antirrobo Inalámbrica ZigBee 4.4. Otros posibles problemas 4.4.1. Falta de respuesta de un nodo Se considera que un nodo no responde cuando el Coordinador no recibe las transmisiones de estado del mismo. Esto puede ser causado por: Interferencias electromagnéticas Ruptura Batería agotada Mal funcionamiento Para solucionar este problema el Coordinador establece que un nodo no responde, cuando durante el transcurso de 3 beacons consecutivos, el mismo no envía sus mensajes de estado. De acuerdo al Modo y Estado del Sistema, y a la configuración del nodo que presenta la falla, el Coordinador de la red actuará según corresponda, enviando el reporte correspondiente y/o activando la sirena. 4.4.2. Interferencia al Coordinador Este tipo de riesgo puede producirse por: Interferencia electromagnética imprevista o por Interferencia producida por un agente externo. Si la interferencia afecta la señal beacon, los nodos no podrán transmitir su informe de estado. En esta situación, el Coordinador detecta que hay una falta de respuesta por parte del nodo y actúa en consecuencia. 4.4.3. Corte de energía eléctrica Como el Coordinador y los FFD se conectan a la red eléctrica, un corte en el suministro de la misma puede significar un cese en el funcionamiento del Sistema de Alarma. Como solución a este problema, todos los controladores poseen batería recargable y un cargador de batería. Ante esta situación, los FFD funcionan con su batería sin interrupción del funcionamiento. 4.4.4. Corte de línea telefónica Si se produce el corte de la línea telefónica, el Coordinador de la red no puede realizar los reportes correspondientes por este medio, de manera que queda incomunicado con la Central de Monitoreo. Ante esta situación el Sistema ofrece de forma opcional un módulo GSM para la transmisión de mensajes a través de una conexión celular. 5. ANÁLISIS DE CONSUMO Para analizar el consumo del dispositivo, debemos considerar tanto el consumo del microcontrolador MC9S08QG8 como del transceiver MC13192. Por el lado del transceiver, su consumo total será igual al consumo cuando está transmitiendo datos, más el consumo cuando está recibiendo datos, más el consumo cuando está en estado de hibernación. El consumo cuando está transmitiendo dependerá fuertemente del tiempo en que se esté transmitiendo informes, y lo mismo ocurre con el consumo en recepción. A su vez, definimos que el transceiver está en estado de hibernación todo el tiempo que no esté ni transmitiendo ni recibiendo datos. El tiempo de transmisión dependerá de diversos factores, como ser la longitud en bits del mensaje a transmitir, la velocidad de transmisión del transceiver, y la frecuencia 18 NA036 – Alarma Antirrobo Inalámbrica ZigBee con la que se emiten los mensajes. Parámetros análogos se establecen para los tiempos de recepción. Por el lado del microcontrolador, su consumo total estará dado por el consumo cuando está ejecutando algún programa más el consumo cuando está en estado de hibernación. Como no es posible establecer exactamente el tiempo en el que el microcontrolador se encuentra en cada estado, suponemos que se encuentra ejecutando algún programa cuando el transceiver está transmitiendo o recibiendo datos, y que se encuentra en estado de hibernación cuando el transceiver también lo está. De esta manera, luego de un extenso análisis que se presenta en el Apéndice F, considerando que la alarma en promedio se encuentra 8 horas armada y 16 horas desarmada, y que el dispositivo es encuestado con frecuencia alta cuando la alarma está armada y con frecuencia baja cuando la alarma está desarmada, podemos establecer que la ecuación de consumo es igual a: mAhporDia fb * 1,797 mAh s 0,864 mAh Donde fb es la frecuencia con la que se emiten las señales beacon. Teniendo en cuenta que la energía acumulada en una pila AA es de 2850 mAh, la duración de la misma (en días) puede establecerse como: Duración en días = Capacidad de una pila AA Consumo en un día 2850 mAh mAhporDia Bajo las consideraciones mencionadas anteriormente, si la frecuencia de emisión de beacons es de 1 Hz, la duración estimada es de 1071 días (2.9 años), y si la frecuencia es de 2 Hz, la duración estimada es de 639 días (1.7 años), por lo que podemos comprobar que efectivamente se cumplen los requerimientos de bajo consumo que aseguran al menos una duración de pilas superior a los dos años. 6. CONCLUSIONES La presente Nota de Aplicación y sus Apéndices, si bien tratan del desarrollo de un sistema específico de alarma, presenta conceptos generales que trascienden al mismo y que pasan a formar parte de lo que podríamos llamar “caja de herramientas para el desarrollo de Sistemas de Propósito Específico”. A modo de conclusiones se detallará cada uno de los conceptos involucrados. 6.1. Comunicación Inalámbrica. El panel principal se comunica con los nodos, en una topología Estrella, mediante un protocolo especialmente desarrollado sobre las capas básicas del protocolo Zig-Bee. Este protocolo se desarrolló para que el panel principal pueda encuestar a cada uno de los nodos, uno por uno. El diseñador podrá emplear este protocolo de encuestas para toda aplicación inalámbrica que requiera un control periódico y seguro de sus nodos. 6.2. Disponibilidad. Uno de los principales problemas de las redes tipo Estrella es su gran dependencia del panel principal, que resulta ser un verdadero “talón de Aquiles” de todo el sistema. Para evitar este problema, se emplea un método que permite que otros nodos puedan chequear el estado del nodo principal y en caso de que el mismo no funcione, asumir su papel como nuevo centro de la red. El diseñador podrá emplear este método para asegurar la disponibilidad de su nodo central en cualquier red estrella que diseñe. 19 NA036 – Alarma Antirrobo Inalámbrica ZigBee 6.3. Bajo Consumo. La idea principal de lograr el bajo consumo en los nodos está incorporada en el diseño mismo del protocolo de comunicación por encuestas. La idea consiste en que cada uno de los nodos pase a un estado de bajo consumo entre encuesta y encuesta. Por otro lado la frecuencia con que se realizan las encuestas varía de acuerdo a las necesidades del sistema (armado/desarmado). Por último se fija una tolerancia máxima de tiempo entre encuestas que aseguren la reacción adecuada del mismo. Se presenta una ecuación de consumo que permite cuantificar y asegurar que los valores establecidos cumplan con el requisito de consumo prefijado. Esta ecuación constituye una herramienta que puede ser aplicada en otros casos que requieran bajo consumo, con las modificaciones del caso. Gran parte de las aplicaciones son de tipo mecánicas, lo que brinda suficiente margen de tiempo para que la frecuencia máxima de estímulos externos sea relativamente baja. El diseñador podrá manejar la frecuencia de las encuestas en consonancia con las necesidades del sistema, pasando a un estado de bajo consumo entre las mismas. Se logra así un nivel de consumo adaptado a los requerimientos de la aplicación y no sobredimensionado como generalmente se desarrolla cuando se piensa que el consumo no es importante para el proyecto. Los costos crecientes de la energía, las necesidades de conservar el planeta libre de polución, las aplicaciones portátiles cada vez mayores, todo ello requerirá que el diseñador encare sus proyectos con un gran cuidado en minimizar el consumo. Esta nota de aplicación le brinda los principales criterios para cumplir con este cometido. 6.4. Seguridad. El protocolo que se ha implementado incorpora una capa de seguridad que permite brindar dos importantes características: Confidencialidad del Sistema: Mediante un algoritmo simple y rápido de encriptación se impide que un usuario externo pueda ver el estado del sistema y sus sensores. Evidentemente todo método de encriptación puede ser violado, lo importante es que el costo de violarlo sea superior al beneficio que se logra mediante esta acción, lo que sin duda se cumple en el caso de alarmas domiciliarias. El diseño en capas permite al diseñador modificar el algoritmo de encriptación por uno que considere más seguro, si el sistema a proteger así lo requiere. Autenticación: El sistema impide que un nuevo nodo pueda colocarse en la red sin haber sido instalado por personal autorizado. La idea es impedir la sustitución de nodos por nodos no seguros que puedan ser alterados para permitir el ingreso de intrusos. Este sistema de autenticación puede ser empleado por un diseñador en toda aplicación en la que se deba asegurar la validez de los elementos interconectados. 6.5. Coordinación de Subsistemas. El sistema de red permite coordinar el desarrollo de subsistemas independientes que se intercomuniquen entre sí para generar una prestación conjunta de un servicio. Esta coordinación, una vez establecida, permite que diversos grupos de trabajo desarrollen los subsistemas y requiere los mismos desarrollen un sentido de responsabilidad compartida, como así también mejores sus habilidades de intercomunicación personal. La presente Nota de Aplicación fue desarrollada por tres grupos, cada uno de los integrantes obtuvo una experiencia muy enriquecedora no sólo en la faz técnica sino principalmente en el desarrollo de las habilidades previamente mencionadas. Consideramos que este aprendizaje es perfectamente trasladable a grupos de desarrolladores que trabajen conjuntamente en proyectos similares al presente. 20 NA036 – Alarma Antirrobo Inalámbrica ZigBee A. FUNCIONAMIENTO DE LA ALARMA INALÁMBRICA A.1. Introducción Este apéndice detallará el funcionamiento del Sistema de Alarma y las características y propiedades de los elementos básicos empleados en el mismo. Así, detallaremos las propiedades de los nodos que la componen, de los tipos de zonas que pueden crearse, modos de funcionamiento y otras características en general que ayudan al entendimiento del sistema. Como se trata de un sistema en tiempo real, el mismo funciona en base a eventos. Por lo tanto, debe responder a las peticiones de todos los dispositivos que componen la red y que se comunican o informan constantemente al Coordinador de la misma y actuar en consecuencia. El Software que contiene la lógica general para el funcionamiento del Sistema de Alarma reside en los Controladores FFD. Los Teclados cuentan con una versión reducida del mismo como según lo explicado en el Capítulo 4.3 de “Seguridad y Tolerancia a Fallos: Redundancia”. Para mayor entendimiento se hará en base a diagramas de flujo y una breve descripción de lo que se realiza en cada uno. A continuación se detalla lo expresado anteriormente: A.2. Modos de Funcionamiento El sistema presenta los siguientes modos de funcionamiento: Modo Desarmado: El sistema solo controla sensores críticos (incendio, pánico, antidesarme). Modo Armado/Presente: solo las zonas perimetrales se encuentran armadas. Este modo está pensado para ser utilizado cuando hay personas dentro del hogar o empresa pero no ocurren ingresos o egresos, por ejemplo en horarios nocturnos. Modo Armado/Ausente: el sistema completo se encuentra armado. Este modo está pensado para ser utilizado cuando no hay personas dentro del hogar o empresa. A.3. Otras Características Para poder ser armado, el sistema exige que todos los sensores se encuentren inactivos, por ejemplo para el caso de puertas y ventanas las mismas deben estar cerradas. Al solicitar el usuario el armado del sistema se realiza una comprobación del estado del sistema, testeando uno por uno los sensores e informando al usuario qué nodos no cumplen con la condición de inactivos. El sistema permite al usuario marcar (inhibir) ciertos sensores para que no sean tomados en cuenta en los controles principales. A pesar de estar inhibidos, estos nodos continúan enviando información al controlador de la red. En cualquiera de los dos modos de “Armado” se permite una activación forzada del sistema, ignorando los nodos activos, ya sea por fallas o activación de nodos. Esto nodos son inhibidos y no dispararán una condición de alarma una vez armado el sistema. Se brinda la posibilidad de armar el sistema en Modo Presente con diferido. Esto es útil en los casos en que el usuario debe retirarse del domicilio por un tiempo breve y retornar. Se evita así que al tratar de ingresar, la alarma se active por su causa. 21 NA036 – Alarma Antirrobo Inalámbrica ZigBee Independiente del modo en que se encuentre funcionando la alarma, el sistema monitorea constantemente el estado de batería de los nodos, la falta de comunicación o las posibles fallas de los mismos. Tanto los teclado/s como los paneles principales pueden controlar sensores o alarmas (normalmente el sensor que se encuentre en la puerta cercana a él y los nodos antidesarme respectivamente). De esta manera se logra economizar la cantidad total de nodos. Para brindar una mayor flexibilidad al sistema se definen distintos estados de funcionamiento: Estado Instalador: En modo desarmado, el sistema puede ingresar en estado “Instalador” a través de una petición por medio del teclado. De esta manera el Instalador puede realizar toda la configuración del sistema de forma rápida y segura. En este estado los teclados se encuentran bloqueados y solo se registran los eventos principales. Estado Silencioso: En cualquier modo de Armado, el sistema puede entrar en un estado “Silencioso” cuando se ingresa una claveparticular. En este caso la sirena antirrobo no es disparada pero los reportes telefónicos se activan para informar este suceso anormal. En este estado el sistema aparenta estar Desarmado; de esta manera se protege al usuario ante un caso de asalto al mismo tiempo que se informa sobre la situación. Estado Diferido: En los casos en que se debe esperar un tiempo de salida o entrada del usuario, el sistema ingresa en un estado “Diferido”. En el caso de entrada del usuario, el sistema debe esperar el ingreso de la clave de desarmado, mientras que en el caso de salida, el sistema debe esperar un tiempo fijo antes de armar el sistema completamente. A.4. Tipos de Zonas: Propiedades Se agruparán los sensores en zonas para mayor facilidad al instalador en el momento de instalar el sistema. Es más sencillo configurar los diferentes tipos de nodos por zonas que de forma individual. Antes de detallar los tipos de zonas se definiran 2 zonas denominadas “Zonas Virtuales”. Todos los nodos de la red pueden producir eventos en alguna de estas zonas ante fallas o falta de respuesta aunque no pertenezcan físicamente a ellas. Zona 32: Alta Seguridad Nodos Perimetrales Si no responde, entonces se debe disparar sirena y enviar reporte. Pueden inhibirse ante falla o falta de respuesta. Zona 33: Baja Seguridad. Nodos Interiores. Si no responde, entonces se debe reportar. Pueden inhibirse ante fallas o falta de respuesta. De esta manera, mientras la alarma está en modo Armado, la falla o falta de respuesta de un nodo marcado como de “Alta Seguridad” producirá una alarma 22 NA036 – Alarma Antirrobo Inalámbrica ZigBee general, mientras que un nodo de “Baja Seguridad” solo generará un reporte telefónico. Los tipos de zonas son las siguientes: 24 HORAS: Este tipo de zona contiene a todos aquellos nodos que deben ser testeados permanentemente, es decir, aún si el sistema se hallara desarmado. Este tipo de zona está pensada para sensores que protegen los dispositivos fundamentales del sistema. Sus características son: Siempre armada En condición de alarma, sonar sirena antirrobo. No redisparable por el mismo nodo. Es decir, si una vez que la sirena dejo de sonar, el nodo sigue activo, éste no provoca un nuevo disparo de la sirena. Los nodos no pueden inhibirse. Ejemplo: Sensores anti-desarme. Incendio: Esta zona contiene solo a los sensores detectores de incendio. Estos sensores también deben testearse las 24 hs. del día. Si bien es similar a la Zona 24 HORAS, se diferencia de esta en que, al activarse un sensor de humo, se hace sonar una sirena especial para casos de incendio. De esta manera la evidencia de un incendio puede saberse con rapidez para actuar con mayor prontitud. Por lo que, sus características son: Siempre armada. En condición de alarma sonar sirena diferenciada de incendio. No redisparable por el mismo nodo. Nodos pueden inhibirse. Ejemplo: Sensores de humo. Diferida: Esta zona contiene aquellos nodos controlados por los teclados o los ubicados en las puertas de salida del domicilio. En este tipo de zona los nodos no producen una situación de alarma inmediata sino que proveen un tiempo al usuario para ingresar o salir del hogar o lugar de trabajo. Sus características son: Nodos armados en modo presente y modo ausente. Los nodos pueden inhibirse. Timers configurables. Uno para salida y otro para entrada. Poseen dos modos de configuración: 1º modo: Salida: En este modo el sensor controlado por un teclado solo es armado al expirar un temporizador de salida. El resto de los nodos de esta zona se activan inmediatamente al momento de marcar la clave de activación. Entrada: Dos sensores de la misma zona diferida no pueden activarse en el mismo lapso de tiempo. Este modo proporciona gran seguridad al sistema debido a que impide que intrusos logren entrar sin ser detectados. 2º modo: Todos los nodos de las zonas diferidas esperan un lapso de tiempo tanto en la entrada como en la salida. Este modo contempla la situación en que la salida del domicilio sea a través de dos puertas consecutivas. Nodos redisparables. 23 NA036 – Alarma Antirrobo Inalámbrica ZigBee Interna: Esta zona contiene solo a aquellos nodos que se disponen dentro del domicilio, es decir, en pasillos, puertas internas, etc. Sus características son: Nodos armados solo en modo ausente. Nodos pueden inhibirse. Redisparable. Ejemplo: Infrarrojo. Perimetral: Esta zona contiene a los nodos ubicados en todo el perímetro del domicilio, como ser puertas, ventanas, etc. que dan al exterior. Sus características son: Nodos armados en todos los modos. Nodos pueden inhibirse. Redisparable sólo sirena externa. Ejemplo: Sensor de rotura de cristales. Silenciosa: Esta zona está destinada para aquellos nodos que no deben o no necesitan disparar la sirena, pero sí generan los reportes correspondientes: En condición de alarma sólo se debe reportar, no se dispara ninguna alarma. Redisparable. Siempre armada. Nodos pueden inhibirse. Ejemplo: Botón de pánico y botón de emergencias. A.5. Nodos: Propiedades A continuación se detallan los diversos nodos y la cantidad de información requerida para identificar sus características. Tipo: Esta propiedad distingue los diferentes tipos de dispositivos que pueden ser conectados a la red. Panel: Dispositivo que controla el sistema de alarma y toma la decisión de disparar la sirena y avisar a la central. Teclado: Interfaz de usuario que permite la activación, desactivación y configuración del sistema. Pánico: Botón inalámbrico que permite realizar llamadas de emergencia al ser pulsado. Tamper(sensor anti desarme): sensor adherido a un panel principal que detectan intentos de sabotaje. Cualquier violación a éste, como intentar arrancar el panel principal, provoca una alarma y el reporte correspondiente a la central de control, aún si el sistema se encuentra desarmado. Sensor Humo: sensor que permite detectar humo por posibles incendios. Sensor Movimiento: Dispositivo infrarrojo que detecta cambios de temperatura y movimiento. Sensor puerta o ventana: sensor que forma un circuito cerrado por un imán y un contacto muy sensible que al separarse, cambia el estado detectando la apertura de puertas y ventanas. 24 NA036 – Alarma Antirrobo Inalámbrica ZigBee Sensor de rotura de cristales: Sensor que se activa al detectar la frecuencia aguda del sonido de una rotura de vidrio. Sensor Gas: Sensor que detecta fugas de gas natural y envasado. Estado: Propiedad del nodo que puede generar o no una condición de alarma en el sistema: Activo: Estado del nodo que en modo armado puede ocasionar condición de alarma. Inactivo: Estado normal del nodo. Falla/No responde: Caso en que el nodo no responde al panel en un tiempo determinado. Con este estado se considera que el mismo puede estar defectuoso. Puede ocasionar una condición de alarma. El nodo presente en el estado “No responde” cuando por alguna razón ha perdido comunicación. Esto pude significar una condición de alarma. Estado Batería: Los diferentes estados de batería indican si el valor de carga de la misma es el adecuado, según un valor nominal, para un correcto funcionamiento: Alta Media Baja Crítica Los casos de estado de batería baja y crítica son similares, solo que en estado crítico, el valor de carga de la batería se encuentra muy por debajo del valor nominal, por lo que no se garantiza una correcta respuesta por parte del nodo. Puede provocar fallas innecesarias del sistema si no se corrige este estado. Prioridad: 0-7 (en orden decreciente): esta propiedad determina la importancia que tiene el nodo en el momento de la selección del controlador principal de la red. Se reserva la prioridad 7 para dispositivos que no pueden controlar la red. Campo inhibición: con este se indica si el nodo será testeado o no en el lazo de control. Existen cuatro posibilidades: Permanente (con aviso): El panel ignorará al nodo en el lazo de control principal, pero en este caso se recordará al usuario cada cierto tiempo que el mismo esta inhibido. Temporal (sin aviso): Mientras el sistema se encuentre armado el nodo es ignorado por el panel. Cuando el sistema esta desarmado, el nodo se desinhibe automáticamente. No inhibido: El nodo es controlado tanto en modo armado como desarmado. Eliminado: El panel entenderá que este nodo no existe y por lo tanto lo ignorará todo el tiempo. Ante la posibilidad de agregar un nuevo nodo, este puede tomar el lugar de un nodo eliminado. Las propiedades del mismo son reconfiguradas y guardadas por el instalador. Zona Virtual: Esta propiedad indica a cuál de las dos zonas (zona 32 o 33) reporta el nodo en caso de mal funcionamiento o falta de comunicación. Número de Zona: Indica la zona a la cual pertenece el nodo. Frecuencia: Indica la frecuencia con la que se encuestará al nodo. Descripción: Texto que describe al nodo para facilitar al usuario su identificación. 25 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.6. Descripción de Eventos A.6.1. Armado Ausente Este evento ocurre cuando el usuario decide armar el sistema seleccionando este modo. El teclado envía la petición al panel principal quien inmediatamente realiza un testeo de control para saber en qué estado se encuentra cada nodo. Si por alguna razón alguno de ellos se encuentra activo se notifica al usuario de la situación para que éste decida si desea forzar el armado o no. Mientras el usuario se decide a forzar, puede ocurrir que se activen nuevos nodos, los cuales son notificados al teclado cuando el usuario intenta forzar el armado. Si todos los nodos se encuentran inactivos, entonces se procede a activar las zonas no diferidas. Para que el usuario pueda retirarse de la vivienda sin provocar una situación de alarma se activa un temporizador que esperará un determinado tiempo antes de activar las zonas diferidas. Si el tiempo se acaba y todavía hay nodos de las zonas diferidas que se encuentran activos, se debe disparar la sirena. Caso se activan las zonas diferidas y el sistema en Modo Ausente. A continuación se detallan los pasos mencionados previamente. 1. Teclado envía petición de Armado Ausente al Activo. 2. Cambiar modo de comunicación 3. Test de nodos a. Nodos ok: i. Activar zonas no diferidas ii. Enviar multicast “Modo Diferido” iii. Empezar a contar b. Repetir mientras nodos activos: i. Respuesta: “Forzar” 1. Inhibir nodos activos 2. Activa zonas no diferidas 3. Enviar multicast “Modo diferido + inhibidos” 4. Empezar a contar ii. Respuesta:”Abortar” 1. Cambiar modo de comunicación 2. Reporte 4. Tiempo expirado -> Testear zona diferida a. Hay nodos activos i. Multicast “alarma” ii. Activar sirena iii. Intentar reporte -> Éxito: Enviar “Reporte OK” a paneles. b. Nodos inactivos: i. Activar zonas diferidas ii. Multicast “Armado Ausente” iii. Reporte “Armado” 5. Lazo principal de control de alarma. A.6.2. Armado Presente Al armar el sistema en este modo se envía una petición al panel el cual activará todas las zonas a excepción de las internas. Se realiza antes un testeo de nodos indicando en teclado si encuentra nodos activos. Mientras el usuario decide forzar, puede ocurrir que se activen nuevos nodos, los cuales son notificados al teclado cuando el usuario intenta forzar el armado. En este caso el usuario puede armar el sistema excluyendo estos nodos o bien cancela la operación. 1. Teclado envía petición de Armado Ausente al Activo. 2. Cambiar modo de comunicación 3. Test de nodos 26 NA036 – Alarma Antirrobo Inalámbrica ZigBee a. Nodos ok: i. Activar zonas (excluir interiores) ii. Enviar Multicast “Armado Presente” iii. Reporte b. Nodos Activos: Informar a teclado de nodos activos i. Inhibir nodos activos ii. Activar zonas(excluir interiores) iii. Enviar Multicast “Armado Presente + Inhibidos” iv. Reporte c. Respuesta: “Abortar” i. Cambiar modo de comunicación ii. Reporte 4. Lazo principal de control de alarma A.6.3. Desarmado Modo Presente El evento ocurre cuando el usuario desea desactivar el sistema armado en modo Presente, excluyendo aquellas zonas que se encuentran siempre activas como ser las zonas de 24hs e incendio que aun pueden disparar condiciones de alarma en este modo. 1. 2. 3. 4. 5. 6. 7. Teclado envía petición de Desarmado al Coordinador Apagar sirenas Desarmar zonas (excluir zona 24 horas e incendio) Multicast “Desarmado” Reporte Cambiar modo de comunicación Lazo de control principal de alarma A.6.4. Desarmado diferido en modo presente/ausente Cuando el usuario ingresa al domicilio se dispara el sistema de alarma. Ante esta situación, el sistema entiende que ha entrado en estado diferido, es decir, debe esperar un cierto tiempo hasta que el usuario ingrese la clave para desactivar el sistema antes de provocar una condición de alarma. Si pasado este tiempo no se confirmó desde el teclado que puede desarmarse el sistema (ya sea porque ingresó mal la clave o falló todos los intentos permitidos), entonces se produce una situación de alarma y se hace dispara la sirena. Pero antes de esto, debe considerarse si el modo en que se ingresó la clave no fue por una condición de asalto. En caso de ser así, el sistema se encontrará en Estado Silencioso y se deberá armar en Modo Presente. Es decir, el sistema no se desarma, sólo se establece que ante la activación de cualquier nodo no se debe disparar la sirena sino solamente reportar la situación. 1. Detección puerta abierta 2. Multicast “Estado diferido” (Controladores FFD y Teclados comienzan a contar) 3. Contar 4. a. Si tiempo expirado: i. Multicast “Alarma” ii. Sonar sirena iii. Reporte b. Si llega “Desarmado OK” desde Teclado: i. Multicast “Desarmado” ii. Desarmar sistema iii. Reporte c. Si llega “Estado Silencioso”: i. Multicast “Estado Silencioso” ii. Modo de funcionamiento: Presente iii. Reporte d. Si llega “Exceso de claves erróneas” 27 NA036 – Alarma Antirrobo Inalámbrica ZigBee i. Multicast “Alarma” ii. Sonar sirena iii. Reporte 5. Lazo principal de control de alarma A.6.5. Nodo Activo Dentro del lazo principal se detecta un nodo activo. Se actuará en base al tipo de zona a la cual pertenece y el modo en el que se encuentre el sistema. 1. Se detecta nodo activo 2. Según tipo de zona: a. 24 horas: i. Multicast “Alarma” ii. Reporte 1. Si estado de funcionamiento no silencioso a. Sonar sirena b. Incendio: i. Multicast “Incendio” ii. Reporte iii. Sonar sirena de incendio c. Diferida: i. Si modo Armado Presente o Armado Ausente 1. Si modo Presente sin diferido a. Sonar sirena b. Multicast “Alarma” c. Reporte 2. Si no a. Si estado de funcionamiento diferido i. Si modo 1: 1. Si nodo distinto al nodo activado anteriormente a. Sonar sirena b. Multicast alarma c. Reporte ii. Si modo 2: 1. Si nodo pertenece a una zona distinta a la zona de nodo activado anteriormente a. Sonar sirena b. Multicast “Alarma” c. Reporte 2. Sino a. Desarmado diferido d. Interna: i. Si modo Armado ausente 1. Multicast “Alarma” 2. Reporte 3. Si estado Normal a. Sonar sirena e. Perimetral: i. Si modo Armado ausente o Armado presente 1. Multicast “Alarma” 2. Reporte 3. Si estado de funcionamiento Normal a. Sonar sirena f. Silenciosa: i. Si modo Armado presente o Desarmado 1. Multicast “Alarma” 2. Reporte 3. Lazo principal de control de alarma 28 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.6.6. Nodo no responde El Panel testea los nodos permanentemente basándose principalmente en el campo edad (quien determinaba si un nodo posee comunicación o no). Se establece un máximo de ocasiones en que el nodo puede fallar o no responder de manera consecutiva estipulado en tres por disposiciones del protocolo de comunicación empleado. Cuando se cumple esa condición límite se informa al teclado de la situación para que notifique al usuario. Si el nodo pertenece a una zona 24 HORAS, entonces se debe notificar a todos los teclados y paneles y efectuar el reporte correspondiente de condición de alarma y disparar la sirena. Si en ese momento el sistema se encuentra en estado silencioso entonces sólo se debe dar el reporte correspondiente sin sonar la sirena. Caso contrario se debe verificar si el sistema esta desarmado para solo notificar al teclado, sino chequear a qué zona virtual está asociado para saber de qué manera notificar. 1. Si no hay comunicacion del nodo en 3 oportunidades, entonces el nodo falla a. Si estado de funcionamiento es Instalador i. Logear evento ii. Retornar al lazo de control principal b. Si nodo pertenece a Zona 24 horas i. Multicast “Alarma” ii. Si estado de funcionamiento no es silencioso 1. Sonar sirena iii. Reporte c. Si modo Desarmado i. Notificar a teclado nodo con falla d. Si zona virtual asociada al nodo es la Zona 32 i. Multicast “Alarma” ii. Rutina Alarma iii. Reporte e. Si no i. Reporte 2. Lazo principal de control de alarma A.6.7. Batería baja o crítica en nodo En la encuesta periódica de los nodos, el panel detecta que el campo Estado de Batería está BAJA (o CRITICA). En este caso se debe notificar al teclado de la situación para que éste informe al usuario. Esta notificación se realiza sólo una vez para dicho nodo. El usuario deberá decidir si desea que el sistema inhiba o no el nodo, decisión que luego el teclado notificará al panel para que éste lo lleve a cabo. 1. Panel testea nodos 2. Campo EstadoBateria = baja/crítica 3. Envíar Multicast notificando “número de nodo con batería baja/crítica a teclado/s” 4. Desde aquí será función del teclado notificar al usuario de la situación para que este tome las medidas que crea conveniente: inhibirlo o no. 5. Según la respuesta de Teclado: Inhibir o no el nodo 6. Lazo principal de control de alarma A.7. Descripción lógica del Lazo de Control Principal El lazo de Control Principal del Sistema se divide en diferentes módulos, es decir su característica es la modularidad. Esto facilita la necesidad de futuras modificaciones o la incorporación de mayores funcionalidades al sistema. A continuación se muestra el diagrama de flujo correspondiente: 29 NA036 – Alarma Antirrobo Inalámbrica ZigBee LAZO PRINCIPAL DE CONTROL Inicialización Hacer Control Nodos Recepción Envio Autoridad Timers Alarma Varios Diagrama 1: Lazo de Control Principal A.7.1. Bloque Inicialización En este bloque el sistema se encarga de inicializar todos los puertos y terminales empleados del microcontrolador para la conexión de los diversos componentes del dispositivo FFD o Panel Principal de un modo seguro. Esto significa asignar los valores adecuados para evitar que se produzca alguna anomalía inicial en cuanto al funcionamiento o alguna incoherencia. También se contempla el caso en que el Coordinador actual deba ceder su Autoridad como tal a otro FFD, para lo cual se debe tener otro tipo de consideraciones que sólo corresponden a software y no al hardware empleado. Esto se diferencia en base a una pregunta inicial al comenzar el módulo de Inicialización. La Autoridad de un Coordinador se explicará más adelante cuando se haga referencia al bloque correspondiente. A continuación se muestra el diagrama de funcionamiento de este módulo: 30 NA036 – Alarma Antirrobo Inalámbrica ZigBee Inicio Init Inicio o Cambio de Autoridad? INICIALIZACIÓN Autoridad ModoSistema=Armado? Si Multicast(código) EstadoSistema= Silencioso? No SonarSirena(Antirrobo) Reporte(Código) Reporte(Código) PrepararParaObtener Datos Diagrama 2: Inicialización La rutina PrepararParaObtenerDatos se encarga de asignar con valores adecuados las variables que se modifican de las características de un nodo para que el lazo de control principal pueda continuar su testeo de modo satisfactorio. Esto puede observarse en el siguiente diagrama: PrepararPara ObtenerDatos Para todos los nodos Edad=Mi Edad RTS EstadoNodo= Activo EstadoBateria= Crítico Actualizado=Si Diagrama 4: Rutina PrepararParaObtenerDatos 31 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.7.2. Bloque Control de Nodos Este bloque se encarga de testear el campo Edad (o Versión) de cada nodo de la red. De esta forma si alguno de ellos no responde o falla, puede saberse por medio de este control. Por ejemplo: si en el estado actual del Coordinador su campo Edad = 9 y uno de los nodos tiene Edad = 6, podemos decir que han pasado 3 vueltas en las cuales el nodo no contesta. La cantidad máxima tolerable de veces en que el nodo puede no contestar se limita a 3 por cuestiones de tiempo de respuesta del sistema. Por lo tanto, esto lleva a una Rutina de Fallo en la que, dependiendo del nodo que falló, se tendrán diferentes situaciones de alarma, pudiendo ser silenciosa o no (solo se genera el reporte correspondiente). En caso de ser menor la diferencia, se marca a ese nodo como desactualizado, sólo si es FFD. También se controla si el nodo se encuentra inhibido permanentemente, en cuyo caso no debe ser atendido por el Coordinador actual. A continuación se muestra el diagrama correspondiente: CONTROL NODOS Soy el Activo? Si No Numero Nodo <63? Sí Numero Nodo=Mi ID No Numero Nodo=1 Nodo Eliminado o inhibido permanente? Es controlador y EdadActual-EdadNodo =1 EdadActualEdadNodo < 3 No Sí Desactualizar Nodo Rutina Falla Numero Nodo=Siguiente Nodo Diagrama 5: Módulo Control de Nodos La Rutina Falla se encarga de actuar según las características del nodo que falló y el estado/modo en que se encuentre el sistema, por lo que puede o no significar una condición de alarma. Si el sistema se halla desarmado, sólo notifica al Teclado para que pueda mostrar al usuario el nodo que se encuentra con fallas. Dependiendo del 32 NA036 – Alarma Antirrobo Inalámbrica ZigBee tipo y zona a la que corresponda, se disparará la sirena o no (sirena antirrobo o incendio). Si el sistema se encuentra en estado silencioso solo se efectúa el reporte. A continuación podemos observar el diagrama correspondiente: Rutina Falla Estado =Instalador Si Log RTS TipoZona=24hs Si Multicast (Codigo) Si Modo=Desarmado Estado= Silencioso Si Sonar Sirena (Antirrobo) Zona =32 Si Reporte (Codigo) Multicast (Codigo) Reporte(Codigo) RTS Sonar Sirena (Antirrobo) Reporte (Codigo) Avisar a Teclado RTS Diagrama 6: Rutina Falla A.7.3. Bloque Recepción Este bloque se encarga de atender dos posibles tipos de paquetes. Para ello, el Panel Principal cuenta con dos buffers de recepción diferentes encuestando si hay o no algún paquete en espera de ser procesado. Según de donde provengan, puede recibir paquetes desde Teclado (sería el Teclado con el cual se ha iniciado una conversación), o desde la capa inferior (paquetes proporcionados por la capa de Seguridad). En el primer caso, los paquetes se deben procesar sin necesidad de enviarlo a capas inferiores, ya que se trata de paquetes que van dirigidos hacia él, directamente desde 33 NA036 – Alarma Antirrobo Inalámbrica ZigBee el Teclado con el que ha iniciado una conversación (se encuentran en la misma capa de Aplicación). En el segundo caso, se trata de paquetes que envían los nodos cada Time Slot, proporcionando sus características de Estado, Estado de Batería, Id y Edad para la actualización de tablas que mantiene el Panel Principal con dichas características. A continuación se puede observar el diagrama correspondiente: RECEPCIÓN DE PAQUETES Hay Trama en Buffer Aplicación? Si Atender Trama Confirmar Trama Recibida Hay Trama en Buffer Seguridad? Si Actualizar Tabla Atender Trama Confirmar Trama Recibida Overrun < N No AcOverrun Trama Falsa Recibida? Si AcTramaFalsa Confirmar Detección de Trama Falsa Diagrama 7: Bloque Recepción La Rutina Actualizar Tabla se encarga de tomar esos datos del paquete para, además de actualizar la tabla de nodos, compara cada uno de estos con los valores que poseían. Si se produjo algún cambio importante, se realiza la acción correspondiente. Esto contempla el caso en que el nodo se haya activado, haya sucedido un cambio significativo en cuanto al estado de su batería, para las cuales se ejecutan las rutinas que correspondan. 34 NA036 – Alarma Antirrobo Inalámbrica ZigBee A continuación se observa el diagrama correspondiente: Actualizar Tabla Identificar nodo en la Tabla CampoInhibido=NoInhibido? SI Estado anterior=Inactivo Y Estado actual =Activo? SI Rutina Activo Actualizar campo Estado EstadoBateriaAnterior=baja Y´ EstadoBateriaActual = crítica Si No Si EstadoBateriaAnterior=media Y´ EstadoBateriaActual = baja No NO Si EstadoBateriaAnterior=baja Y´ EstadoBateriaActual = alta No EstadoBateriaAnterior=crítica Y´ EstadoBateriaActual = alta No Si Ya se notificó para ese nodo? Si No Bateria=TRUE Actualizar campo EstadoBateria Actualizar campo Edad Bateria = TRUE? Si Rutina BateriaCrítica No Lazo Principal de Control Diagrama 8: Rutina Actualizar Tabla 35 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.7.4. Bloque Envío Cuando el Panel Principal desea transmitir algún mensaje, ya sea multicast o unicast, los coloca previamente en una cola de envío propia. De este modo, los paquetes se enviarán en la medida que la capa inferior pueda hacerlo, sin necesidad de permanecer bloqueado. Esto se controla mediante la rutina Esperando Evento de Paquete”, es decir, se pregunta si el paquete pudo transmitirse satisfactoriamente (ya puede descartarse de la cola de envío propia y preparar el siguiente paquete a enviar) o no (se llama a una rutina de fallo en la que se trata de determinar la causa del mismo y actuar en consecuencia). A continuación se observa el diagrama correspondiente: ENVIO DE PAQUETES Cola de Envío Vacia? No Enviar Esperando evento de paquete? Si Envio en Progreso? Si No Falla? EnvioFallo Diagrama 9: Bloque Envío A.7.5. Bloque Autoridad Este bloque contempla el caso en que un nodo controlador deba asumir como Activo (cuando anteriormente no lo era) y no permita, que, al pasar a ser Reserva, ejecute bloques o realice cambios que no le corresponden como tal. Así, solo cuando se llegue a este bloque, se producirá el cambio de Autoridad, de modo seguro, para que pueda continuar con la ejecución del Lazo Principal de Control en forma correcta. A continuación se observa el diagrama correspondiente: 36 NA036 – Alarma Antirrobo Inalámbrica ZigBee AUTORIDAD Si no era activo y debo asumir Si Asumir y activar bandera de Cambio Controlador Actualizado? Soy el Activo? Si Prioridad Baja? Si Si Subir Prioridad Puede Asumir otro? No Perder Autoridad y desactivar bandera de Cambio Actualizado = Si Subir Prioridad Prioridad Baja? No Mi Prioridad >Prioridad del Activo Si Enviar Petición de Cambio de Autoridad Bajar Prioridad Bandera de Cambio Activa? Si Inicialización Diagrama 10: Bloque Autoridad A.7.6. Bloque Timers Este bloque se encarga de controlar si el temporizador; que fue iniciado cuando se activó un nodo diferido ha alcanzado su valor límite. Si este tiempo expiró sin recibir respuesta del teclado (si se ingresó la clave correspondiente), se debe disparar la alarma o armar el sistema según corresponda. Esto depende del tipo de temporizador, si es de entrada o salida. Sólo cuando se trate de salida se debe armar el sistema, siempre que no se encuentren nodos activos, cualquier otro caso es una condición de alarma. A continuación se observa el diagrama correspondiente: 37 NA036 – Alarma Antirrobo Inalámbrica ZigBee TIMERS Timer Funcionando? Si Tiempo Timer >= Limite Si No Entrada Timer Entrada o Salida? Atender Timer Entrada Salida Atender Timer Salida Diagrama 11: Bloque Timers A.7.7. Bloque Alarma Este bloque controla el tiempo que debe estar sonando la sirena. Si mientras la misma se encuentra sonando se activa otro nodo, se debe incrementar este tiempo. Si al cumplirse el mismo el nodo sigue activo y no hubo cambios en el sistema, la sirena debe dispararse nuevamente el tiempo correspondiente (sólo si el nodo tiene la característica de ser redisparable). A continuación se puede observar el diagrama correspondiente: ALARMA Sirena sonando? Si No ContadorSirena>= Tiempo Max Si Apagar Sirena Diagrama 12: Bloque Alarma 38 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.7.8. Bloque Varios Este bloque se encarga del testeo de variables que la capa de Aplicación comparte con la Capa de Seguridad. Pueden darse casos de alarma dependiendo de cuál de ellas se encuentre activada. Un ejemplo es cuando se reciben tramas falsas. A continuación se puede observar el diagrama correspondiente: VARIOS Señal Falsa de Beacon? Si Accion Time Slot Asignado>=M? Si Accion Retransmisión de Beacon>=Max Si Accion Diagrama 13: Bloque Varios 39 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8. Diagramas de flujo generales de eventos varios A.8.1. Rutina para el Evento: Armado Ausente y funciones relacionadas Armado Ausente CambioModoComunicación(ausente) Test Nodos Hay Activos? No Actualizar Modo Ausente, Estado Diferido Notificar Nodos Activos a Teclado RTS Multicast(código) TimerSalida() RTS TimerSalida() Configurar Timer Salida RUN() RTS 40 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8.2. Rutina para el Evento: Forzar el armado Para este caso, consideramos también la posibilidad de que, mientras se espera la respuesta del Teclado de forzar el armado, se controle la posibilidad de que nuevos nodos pueden llegar a activarse. Este caso sirve tanto para el armado ausente o presente con diferido. FORZAR Para Cada Nodo Notificado Multicast Inhibidos Inhibir Temporal Test Nodos Hay Activos? Si Nuevos_activos = 0? Si No Cantidad Activos excedió? Notificar Nuevos Activos a Teclado Nuevos_activos=0 Ausente Modo Elegido? Presente Si Notificar a Teclado Exceso de Nodos Activos Notificar Activos a Teclado Nuevos_activos=1 RTS Con Diferido? Actualizar Modo Ausente Si Activar Diferido Multicast(código) TimerSalida() No Actualizar Modo Presente Multicast(código) RTS Reporte(código) RTS 41 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8.3. Rutina para el Evento: Atender Timer de Salida y Abortar o Cancelar Operación Este tipo de temporizador se activa cuando el usuario desea armar el Sistema en modo Ausente o Presente con Diferido. Si mientras el usuario se retira de su domicilio, se activan ciertos nodos, la sirena debe dispararse. Esto se debe a que puede estar siendo saboteado desde otra posición. AtenderTimerSalida Test Nodos Hay Activos? Multicast(código) No Actualizar Modo Ausente RutinaSirena() Multicast(código) Reporte(código) Reporte(código) RTS RTS Abortar CambioModoComunicación(desarmado) Reporte(código) RTS Cuando llegue esta instrucción, simplemente se debe cambiar el modo de comunicación en el que se encontraba antes de recibir la misma. 42 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8.4. Rutina para el Evento: Armado Presente Armado Presente CambioModoComunicación(ausente) Test Nodos Hay Activos? Si Notificar Nodos Activos a Teclado Con Diferido? Si No RTS Activar Diferido Actualizar Modo Presente Multicast(código) Reporte(código) RTS 43 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8.5. Rutina para el Evento: Cambiar modo de comunicación CambioModoComunicación(modo) Modo=desarmado? SI Hacer para cada nodo TipoZona=Interior? NO SI Frecuencia Baja TipoZona=Diferida? SI Frecuencia Baja TipoZona=Perimetral? SI Frecuencia Baja RTS Modo=Presente SI Hacer para cada nodo RTS TipoZona=Interior? NO No Frecuencia Alta Modo=Ausente? SI Hacer para cada nodo Frecuencia Alta NO RTS 44 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8.6. Rutinas para el Evento: Desarmado y funciones relacionadas Desarmado Diferido TimerEntrada() Multicast (Código) Configurar Timer Run() TimerEntrada RTS RTS Timer Entrada expiro Multicast (Código) SonarSirena(antirrobo) Reporte (Código) RTS 45 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8.7. Rutinas para los Eventos: Desarmado Normal, Estado Silencioso y Batería baja o crítica Desarmado ok Estado Silencioso Desarmar Multicast (Código) Multicast (Código) Reporte (Código) Repote (Código) RTS RTS Batería Baja / Crítica Generar paquete con las características del nodo en ese estado Enviar a teclados RTS 46 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8.8. Rutina para los Eventos: Claves Excedidas y Desinhibir Temporales Claves Excedidas Modo=Desarmado O Estado de funcionamiento=Silencioso? SI NO Reporte (Código) Multicast (Código) SonarSirena(antirrobo) Reporte(Código) RTS Desinhibir Temporales Hacer para cada nodo CampoInhibido= Temporal? CampoInhibido=NoInhibido RTS 47 NA036 – Alarma Antirrobo Inalámbrica ZigBee A.8.9. Rutina para el Evento: Nodo Activo Activo SI Est. Funcionamiento = Instalador Log NO TipoZona = 24hs RTS SI Multicast (Codigo) Reporte (Codigo) Est. Funcionamiento = No Silencioso SI Sonar Sirena (Antirrobo) RTS TipoZona = 24hs SI Multicast (Codigo) Reporte (Codigo) Sonar Sirena (Incendio) 1 RTS 48 NA036 – Alarma Antirrobo Inalámbrica ZigBee 1 Ti`poZona = Diferido SI SI Modo = Armado Presente o Modo=Armado Ausente Modo=Presente Diferido SI Multicast (Codigo) Estado Sistema = diferido? Desarmado Diferido Diferido Modo1? Modo2 Nodo Activo distinto al anterior? Reporte (Codigo) Si Sonar Sirena (Antirrobo) Sonar Sirena (Antirrobo) Sonar Sirena (Antirrobo) Multicast (Codigo) Multicast (Codigo) Reporte (Codigo) Reporte (Codigo) RTS TipoZona =Interno Modo =Armado Ausente SI SI Multicast (Codigo) Reporte (Codigo) Est. Funcionamiento =Normal? SI Sonar Sirena (Antirrobo) 2 RTS 49 NA036 – Alarma Antirrobo Inalámbrica ZigBee 2 TipoZona =Perimetral SI Modo= Armado Ausente o Modo = Armado Presente SI Multicast (Codigo) Est. Funcionamiento= Normal? SI Sonar Sirena (Antirrobo) Reporte (Codigo) RTS TipoZona=Silenciosa SI Modo =Armado Presente o Modo = Desarmado SI Multicast (Codigo) Reporte (Codigo) RTS 50 NA036 – Alarma Antirrobo Inalámbrica ZigBee B. CÓDIGO COMPLETO El software del Sistema de Alarma Inalámbrica ZigBee fue desarrollado íntegramente en lenguaje C utilizando la versión 6.2 de CodeWarrior, la herramienta de programación proporcionada por Freescale para la familia HCS08. Adjunto al presente documento, se incluye un archivo comprimido en formato ZIP, el cual contiene las siguientes tres carpetas: Nodo: Contiene todo el proyecto necesario para compilar el software que controla un nodo. Este proyecto está formado en su mayoría por el código del protocolo de comunicación, el cual se encuentra separado en una subcarpeta Protocolo dentro de la carpeta Nodo\Sources, la cual se utiliza en los proyectos del Panel y del Teclado. Panel: Contiene el proyecto necesario para compilar el software que controla un Panel. Este software utiliza el protocolo desarrollado en el nodo, por esta razón requiere la presencia de la subcarpeta Nodo\Sources\Protocolo. Este proyecto agrega al protocolo existente una nueva capa de software que permite la comunicación y sincronización entre paneles. Todo el código que implementa específicamente esta comunicación se encuentra separado en la subcarpeta Panel dentro de la carpeta Panel\Sources, la cual se utiliza en el proyecto del teclado. Teclado: Contiene el proyecto necesario para compilar el software que controla un Teclado. Este software se apoya en el protocolo desarrollado por el nodo y en la comunicación entre paneles, ya que el mismo se puede comportar como un panel reducido. Por esta razón requiere la presencia de las subcarpetas Nodo\Sources\Protocolo y Panel\Sources\Panel. El software desarrollado en este proyecto no es compartido, por lo que se encuentra en su totalidad en la carpeta Teclado\Sources. La forma más simple de compilar los proyectos de software es descomprimiendo el archivo adjunto en cualquier carpeta manteniendo la estructura de carpetas. Dado que los archivos del proyecto se encuentran referidos en forma relativa a la carpeta raíz del proyecto, la estructura de carpetas puede ser ubicada en cualquier carpeta de cualquier unidad. 51 NA036 – Alarma Antirrobo Inalámbrica ZigBee C. STACK DE PROTOCOLOS IROCO C.1. Introducción El stack iRoco es un conjunto de protocolos orientado a la comunicación de dispositivos inalámbricos de un sistema de alarmas. La misma esta implementada sobre la capa física del estándar IEEE 802.15.4. En forma general este protocolo presenta las siguientes características: Baja carga de procesamiento, alta seguridad y bajo consumo. Emplea un campo de direccionamiento corto, permitiendo hasta 63 dispositivos en la red. Usa una estructura de trama simple. Esta estructura, combinada con el reconocimiento de comunicación (mecanismo de acknowledgement), resulta en una entrega de datos confiable. Soporta la Asociación/Disociación/Readmisión a la red, así como la autenticación de los dispositivos asociados a la misma, resultando en una red segura. Permite un acceso al medio libre de contención bajo condiciones normales gracias a la asignación de turnos. C.2. Diagrama de bloques del Stack iRoco El stack de protocolos iRoco sigue un modelo jerárquico por capas que se ilustra en la siguiente figura: El protocolo está implementado sobre la capa física (PHY) del Standard IEEE 802.15.4 y sobre la capa SMAC (Simple Medium Access Control) desarrollada por Freescale. Las características más importantes del estándar IEEE 802.15.4 son la flexibilidad de la red, bajo costo y bajo consumo de energía; este estándar se puede utilizar para muchas aplicaciones industriales y de domótica, donde se requieren una baja tasa de transmisión de datos. La capa PHY, en conjunto con SMAC, proveen el soporte necesario para el control del transceiver y poseen la ventaja de ser gratuitos. La capa PHY se encuentra programada en el transceiver, mientras que el código fuente de la SMAC debe incluirse en el MCU junto con el resto del stack iRoco. A continuación se presenta una breve descripción de cada una de las capas. 52 NA036 – Alarma Antirrobo Inalámbrica ZigBee C.2.1. Capa de Aplicación Esta capa da soporte para las aplicaciones de comunicación, tanto del panel principal, teclados, y nodos sensores de la red de alarma domiciliaria. C.2.2. Capa de seguridad La capa de seguridad esta abocada a la tarea de lograr que los mensajes recibidos provengan de una fuente segura y de que el contenido de los mismos no pueda ser interpretado por un dispositivo externo a la red. C.2.3. Capa de enlace de datos La capa de enlace está dividida en 3 subcapas: LLC (Link Layer Control): se encarga del direccionamiento y la entrega confiable de los mensajes, implementando un sistema de ACK y retransmisiones. BL (Beacon Layer): es la capa encargada del sincronismo necesario para la multiplexión temporal del medio de transmisión, lo que permite un acceso al medio libre de contención. SMAC (Simple Medium Access Control): es la capa encargada de efectuar las funciones básicas del transmisor-receptor. C.2.4. Capa Física (PHY) Definida en el estándar IEEE 802.15.4, encargada básicamente de activar y desactivar el transceiver, así como de la transmisión y recepción de paquetes a través del medio físico, entre otras cosas. C.3. Capa de seguridad Esta capa se dedica a verificar que los mensajes recibidos provengan de una fuente segura y de que el contenido de los mismos no pueda ser interpretado por un dispositivo externo a la red. Las funciones que debe cumplir la capa de seguridad son: Generar un código de autenticación para todo mensaje que se quiera transmitir, con el fin de validar la fuente. Verificar el código de autenticación de los mensajes que lleguen, para controlar que el mensaje proviene de una fuente segura. Encriptar y desencriptar el cuerpo de los mensajes. Manejar la admisión de nodos dentro de la red. C.3.1. Generación y verificación del código de autenticación. Este proceso consiste en la generación de un código de autenticación, el cual se agrega al mensaje original para su transmisión. El código de autenticación no es más que un número calculado a partir del último código generado y de una semilla. Todos los códigos generados son siempre diferentes. En la comunicación entre dos dispositivos se va generando una serie de códigos, de manera que si uno de ellos se reinicia, deben arrancar desde el comienzo la sucesión de códigos generados, pero a partir de una semilla diferente. Esto quiere decir que existe una sucesión única para cada comunicación entre dos dispositivos y que debe estar actualizada en ambos dispositivos. Por esta razón es que cada relación RFD/FFD o FFD/FFD posee su propia semilla y ésta, además, puede cambiar. Consecuentemente, cada RFD posee una semilla por cada FFD presente en la red, de manera que utilizará una semilla diferente dependiendo de con cuál FFD quiera comunicarse. 53 NA036 – Alarma Antirrobo Inalámbrica ZigBee Los FFDs, dado que (a diferencia de los RFDs) pueden comunicarse con cualquier dispositivo de la red y no sólo con los FFDs, poseen una semilla por cada RFD y por cada FFD presente en la red. Las semillas se almacenan en la memoria Flash de los dispositivos. Ante la recepción de un mensaje, la capa de seguridad verifica el campo de autenticación (que fue incorporado al mensaje por la capa de seguridad del transmisor). Un mensaje es aceptado o verificado cuando el código de autenticación del mensaje es igual al próximo código esperado en el receptor (el próximo en la sucesión). Si el mensaje supera esta primera verificación, la capa de seguridad remueve los campos propios de esta capa y pasa el mensaje a la capa de aplicación. En el caso de que esta primera revisión arroje un resultado incorrecto, el código es sometido a una nueva prueba que no contempla el conocimiento del estado anterior. En otras palabras, el código recibido se compara con el primer código de la sucesión (se supone que el receptor ha sido reiniciado) pero utilizando una semilla diferente, cuya generación se verá más adelante. Si ahora pasa la prueba, se considera que esta nueva semilla será la que se utilizará en lo sucesivo para la autenticación de mensajes. Esto se realiza para dar a un nodo caído la posibilidad de reincorporarse a la red automáticamente, pero minimizando la posibilidad de romper el código de autenticación mediante reinicios sucesivos. Todo componente emplea su semilla cuando la usa para transmitir por primera vez. Esta semilla se cambia por una nueva semilla, la que corresponde al código que se genera con la recepción del primer mensaje. A su vez el receptor al que le llega un mensaje con un código proveniente de una nueva semilla, genera el código para su respuesta, el que reemplaza a la semilla anterior. Las semillas, así obtenidas, se guardan en FLASH para cada par de interlocutores y varían con cada puesta en funcionamiento de uno de ellos. Así, los componentes guardan nuevas semillas que se usarán si uno de los dos debe reiniciarse nuevamente y se evita que mediante sucesivos reinicios, un intruso pudiera ubicar una única semilla. Para que tanto RFD como FFD sepan cuándo modificar la semilla, se implementará siempre la siguiente política: Cuando un RFD o un FFD recibe un mensaje que no pasa la primera verificación pero sí la segunda, cambia su semilla por la semilla generada para la segunda verificación. Cuando un RFD o un FFD genera el primer código de la sucesión, pues acaba de ser encendido, inmediatamente luego de mandar el primer mensaje, cambia su semilla por el próximo código esperado. Si el mensaje recibido no supera la segunda prueba, se descarta el mensaje y se informa a la capa superior que llegó un mensaje inválido. C.3.2. Encriptado y Desencriptado Este proceso consiste en encriptar el cuerpo de los mensajes (payload), antes de transmitirlos, y en desencriptarlos al recibirlos. El algoritmo de encriptación utiliza los mismos códigos generados por el algoritmo de autenticación para cifrar la información. De esta manera el cifrado puede realizarse con un número cambiante y conocido por los dos dispositivos involucrados en la comunicación. El algoritmo de encriptación implementado es un algoritmo simétrico que realiza una operación xor, byte a byte, entre el mensaje que se quiere encriptar y la clave generada a partir de los códigos del algoritmo de autenticación. La elección de este algoritmo se basa en sus bajos requerimientos de memoria RAM y en su corto tiempo de procesamiento. Si el diseñador requiriera un algoritmo más sofisticado, podrá modificar la Capa Seguridad, alterando sólo la función encargada de la encriptación.- 54 NA036 – Alarma Antirrobo Inalámbrica ZigBee C.3.3. Admisión Durante el proceso de admisión de un nodo a la red los mecanismos de autenticación y encriptación se encuentran deshabilitados para ese nodo, dado que él mismo no posee las semillas necesarias para ejecutarlos. Por esta razón, el proceso de admisión requiere que se sigan de manera estricta los pasos detallados en el Manual del Instalador (Apéndice G) para evitar vulnerabilidades en la red. Para más información consultar el anexo A de la sección „Primitivas y variables del stack iRoco‟. Sucintamente, este proceso sólo puede ser realizado por un instalador a quien un usuario autorice mediante una clave que tenga la suficiente capacidad para esta actividad. Se asegura así que el Instalador que realice el proceso será supervisado personalmente por un usuario de perfil importante – seguramente el dueño de los bienes a proteger. Durante este proceso, la Capa Seguridad se encarga de transmitir un mensaje, al nodo ingresante, con todos los parámetros necesarios –esto es, las semillas necesarias para comunicarse con los FFDs existentes y potenciales- para poder formar parte de la red y ser reconocido por los demás dispositivos de la misma. Una vez finalizado el proceso, se puede decir que el nodo pertenece a la red y puede comunicarse con cualquier FFD de la misma, utilizando los mecanismos de autenticación y encriptación. C.3.4. Trama A los mensajes provenientes de la capa superior (marcado en blanco en la figura siguiente), la capa de seguridad agrega los siguientes campos: 3 bits 13 bits MT AC 80 bytes Application Data 2 Bytes MT: Tipo de Mensaje AC: Código de Autentificación Mensaje de Aplicación encriptado C.4. Subcapa LLC (Link Layer Control) Esta capa, se encarga del correcto direccionamiento de mensajes y la entrega confiable de los mismos. Esta capa realiza diferentes acciones según se presente uno de los siguientes casos: Caso mensajes salientes: Cuando la subcapa LLC recibe un mensaje de la capa superior, debe agregarle los siguientes campos: Dirección origen: es conocida por la subcapa LLC del transmisor. Permite al receptor identificar de dónde proviene el mensaje. Dirección destino: Debe ser provista por la aplicación. Permite al receptor reconocer que el mensaje está dirigido a él. Número de secuencia: Identifica al mensaje saliente a modo de reconocer si los ACKs recibidos confirman este mensaje y no una retransmisión pasada. En otras 55 NA036 – Alarma Antirrobo Inalámbrica ZigBee palabras, cuando el receptor confirma la correcta recepción del mensaje, debe hacerlo con este número de secuencia. Este número comienza en 0. Luego de agregar estos campos, deben realizarse las siguientes acciones: Enviar el mensaje a la capa inferior (capa beacon). LLC debe recibir una confirmación de slot de la BL. Una vez recibida la confirmación, se inicia un timer. Si el timer llega a cero (timeout) se reenvía el mensaje a la capa inferior, incrementando el número de secuencia y reiniciando nuevamente el timer. Si este paso se repite 3 veces, se suspende la retransmisión y se avisa a la capa superior (capa Seguridad) el error de envío. Caso mensajes entrantes: Cuando LLC del receptor recibe un mensaje de la capa inferior, lo primero que hace es revisar la dirección destino del mensaje para ver si es para él. En caso afirmativo, existen ciertas acciones que debe realizar según el tipo de mensaje que llegue. Se pueden presentar los siguientes casos: Primer caso: Es el más simple de todos. Ocurre cuando se recibe un ACK para un mensaje previamente enviado. En este caso se debe detener el timer que se había iniciado en la transmisión del mensaje (como se explicó en el punto anterior), suspendiendo la retransmisión; por otro lado, se debe dar un aviso de envío exitoso a la capa de seguridad. Segundo caso: Es el caso más general. Se presenta cuando llega un mensaje propiamente dicho (con información para una capa superior). Los pasos que se siguen son los siguientes: Un mensaje proveniente de la capa inferior llega a la subcapa LLC. Se lee el número de secuencia para comprobar que no es un mensaje repetido. Si se verifica que es un mensaje nuevo, es enviado a la capa superior. Si se trata de un mensaje recibido previamente, se descarta. En ambos casos (mensaje repetido o no), se genera un ACK con el número de secuencia recibido, el cual llevará como dirección destino la dirección origen del mensaje que se desea confirmar. En caso de que el mensaje arribado tenga otro destinatario, se descarta el mensaje. C.4.1. Dirección Todo nodo lleva la dirección 63 grabada en su Flash en forma previa a su alta en el sistema (dirección por defecto para nodos nuevos). Ningún nodo perteneciente a la red puede tener esta dirección. Cuando el nodo ingresa a la red, el coordinador de red le asigna una nueva dirección (entre 1 y 62 en principio; puesto que la dirección 0 es una dirección reservada), la cual el nodo guardará en flash. Esta dirección no cambiará hasta la asociación del nodo a otra red. C.4.2. Trama Los campos agregados al mensaje por la Subcapa LLC son: 56 NA036 – Alarma Antirrobo Inalámbrica ZigBee 1 bit MT 6 bits 2 bits 6 bits DO SN DD 82 bytes Payload Data 15 bits C.5. Dirección Destino - Dirección Origen MT: Tipo de mensaje SN: Número de secuencia Mensaje de capa superior Subcapa Beacon Es la subcapa encargada del sincronismo necesario para el acceso ordenado y libre de contención a la red. Las funciones más importantes de esta capa son: Dividir el tiempo en turnos o time-slots en los cuales los dispositivos de la red pueden dialogar con el Coordinador. El principal uso de los turnos es para encuestar a cada uno de los nodos dentro del sistema de alarma. Transmisión de superframes de guía (denominados señales Beacon) cada 32 timeslots para permitir la sincronización de la red. Asignación de cada uno de estos time-slots a un dispositivo de la red (incluyendo tanto RFDs como FFDs y el coordinador mismo). Transmisión de mensajes sólo en los time-slots asignados. La subcapa Beacon se divide en dos partes: El Cliente Beacon: debe implementarse en todos los dispositivos de la red. Se encarga de: La transmisión de tramas provenientes de capas superiores en el time-slot correspondiente a través de la subcapa SMAC. La recepción de tramas desde la subcapa SMAC. El manejo de los timers que producen todos los eventos internos que serán enumerados más adelante en el documento. Cabe aclarar que la transmisión y la recepción de mensajes son mutuamente excluyentes. En otras palabras, no se puede transmitir y recibir mensajes al mismo tiempo, esto es así para evitar condiciones de competencia, puesto que el medio es el mismo tanto para la transmisión como para la recepción. El Servidor Beacon: debe implementarse sólo en los dispositivos que puedan llegar a ser coordinadores de red, es decir, en los FFD. Cabe destacar que no debe implementarse en los RFD. El servidor se encarga de: La asignación de un nuevo coordinador de red en caso de caída del coordinador actual. La asignación de time-slots para la comunicación con cada dispositivo. La emisión de las señales beacon en caso de haber asumido la coordinación de la red. Es claro que en los dispositivos FFD debe implementarse la capa Beacon completa (tanto cliente como servidor). Sin embargo, mientras el dispositivo no se comporte como coordinador de red, la parte servidor no se utilizará. 57 NA036 – Alarma Antirrobo Inalámbrica ZigBee C.5.1. La señal Beacon La señal beacon es un mensaje cuya funcionalidad es: Sincronizar a los dispositivos de la red, ya que toda la inicialización de los timers utilizados se realiza con la llegada de un beacon. Definir la distribución de los 32 slots de esa subronda beacon. En otras palabras, el coordinador de red debe transmitir la señal beacon cada 32 timeslots de duración fija, la cual se calcula más adelante de acuerdo a los requisitos de consumo de los RFD. Los dispositivos de la red esperan la recepción del beacon. Una vez recibido, lo analizan para conocer su turno de transmisión. Pasados los 32 time-slots (entre los cuales un dispositivo determinado puede o no haber tenido su turno de transmisión), los dispositivos esperan nuevamente la llegada de un beacon. Si éste no llegara, los dispositivos no pueden realizar ningún tipo de comunicación, de manera que la red depende de la señal beacon para mantenerse sincronizada y activa. La llegada de un beacon puede retrasarse por los siguientes motivos: Pérdida del mismo debido a interferencias. Caída del coordinador de red. Para evitar que la pérdida de un beacon por interferencias ocasione la inactividad prolongada de la red, el coordinador de red retransmite el beacon un número definido máximo de veces (lo llamaremos k) cada vez que luego de un tiempo no recibiera respuesta de los dispositivos a los que se asignaron los primeros time-slots. Para solucionar el problema de la caída del coordinador de red (caso b.), existe un mecanismo de cambio de autoridad, que será explicado en detalle en la sección “Cambio de Autoridad” (ver más adelante), que permite que otro FFD asuma como coordinador de red. La señal beacon debe poseer la siguiente información: Un campo para diferenciar si es una señal beacon o un mensaje de capa superior (lo llamaremos Subprotocolo Encapsulado) Dirección del dispositivo que emitió el beacon. Prioridad del dispositivo que emitió el beacon. Número de beacon: identifica al beacon de manera tal que los dispositivos de la red puedan saber si se perdió un beacon y conocer en qué ronda o subronda se encuentran. Un campo de autenticación para verificar si la trama ha sido emitida por un dispositivo válido. Un campo que indica el tiempo en que será emitida la próxima señal beacon. La frecuencia con que se emiten las señales beacon es configurable por el usuario y su elección se debería hacer a partir del consumo deseado, el tiempo de respuesta deseado y la cantidad de dispositivos que posea la red. Asignación de time-slots. 58 NA036 – Alarma Antirrobo Inalámbrica ZigBee Autenticación de la señal beacon La señal beacon posee un campo de autenticación que permite a los dispositivos verificar que la misma haya sido emitida por un FFD perteneciente a la red. Este mecanismo de autenticación usará una sola clave o semilla común a todos los dispositivos de la misma red. El cálculo del código de autenticación se realiza en base al código anterior y a la semilla, generándose una sucesión de códigos de manera similar a lo visto en Capa de Seguridad. El hecho de que la clave para verificar el campo de autenticación sea común a todos los dispositivos produce el inconveniente de que si un dispositivo no recibe una trama beacon, o la recibe con error, será incapaz de autentificar la siguiente. Un dispositivo podrá detectar que no ha escuchado un beacon gracias al campo „Número de beacon‟ de la misma. En esta situación, un dispositivo realiza las siguientes acciones: A partir del número actual beacon y el número del último beacon recibido el dispositivo invoca a una función de predicción que le permite conocer el código actual. La función de predicción -restando el número actual de beacon y el número del último beacon recibido- calcula la cantidad de señales beacon que no han sido recibidas, con este número, y con el código de autenticación del último beacon recibido, generará todos los códigos de las señales que no recibió hasta generar el código que debería tener beacon actual. Si dicho código coincide con el código del beacon actual, entonces se actualizan los campos relacionados a la autenticación y el proceso termina, si el código no coincide, eso implica que el dispositivo no posee la información necesaria para autenticar la señal, por lo que se pasa a la siguiente acción. El dispositivo realiza un pedido de readmisión a la red, a la cual el coordinador responde mandando el código necesario para poder autentificar nuevamente las tramas beacon. La readmisión es transparente al usuario, ya que se puede garantizar una comunicación segura a partir de la autenticación de los mensajes realizada por la capa de seguridad. C.5.2. Servidor beacon El servidor beacon se encarga de: La emisión de las señales beacon en caso de haber asumido la coordinación de la red. La asignación de time-slots para la comunicación con cada dispositivo. La asunción de un nuevo coordinador de red en caso de caída del coordinador actual. Eventos manejos por el Servidor Beacon 59 NA036 – Alarma Antirrobo Inalámbrica ZigBee Para cumplir con las funciones nombradas, el servidor beacon hace uso de varios timers, cuya expiración genera la siguiente serie de eventos internos: Fin de la subronda beacon: este evento se produce al final del slot treinta y dos gracias a un timer que se activa con la llegada de cada beacon y expira luego de contar el tiempo de duración de 32 time-slots. Indica al dispositivo a cargo del servidor que debe emitir la próxima señal beacon. Timeout de la espera de la próxima señal beacon: este evento es lanzado cuando ha pasado cierto tiempo (controlado por un timer que se reinicia con la llegada de cada beacon) desde que fue enviada la última señal beacon. Este evento está fuertemente relacionado con el cambio de autoridad (ver sección “Cambio de autoridad”, página 15) A su vez, el servidor beacon notifica a la capa de aplicación los siguientes eventos: Retransmisiones de la señal Beacon: Cada vez que se retransmita la señal beacon, se incrementara en uno una variable compartida con aplicación. Aplicación debe leer esta variable cada cierto tiempo y decidir que acciones tomar en cada situación. Por ejemplo si la alarma se encontrara armada y se retransmitió el beacon un numero elevado de veces, podría disparar una condición de alarma. El servidor beacon sólo se implementa en dispositivos FFD. Emisión de la señal beacon La señal beacon es emitida periódicamente por el coordinador de red. En caso de que la señal beacon deje de ser emitida, algún otro FFD asumirá la coordinación de la red de acuerdo con el mecanismo descrito en la sección siguiente. Al estar la subcapa beacon por debajo de la subcapa LLC, las señales beacon no reciben ACK. Sin embargo, el coordinador implementa un mecanismo de retransmisiones que funciona de la siguiente manera: Si durante los 16 primeros slots no hay actividad en la red, puede suponerse que la señal beacon no fue recibida por ningún dispositivo, por lo que debe ser retransmitida. Cada vez que se realiza la retransmisión del beacon se incrementa en uno una variable compartida entre el servidor beacon y la aplicación. Esta variable debe ser leída periódicamente por la aplicación, la que podrá decidir que, por ejemplo, si se superó una cierta cantidad de retransmisiones, se dispare una condición de alarma. Asignación de time-slots La asignación de time-slots es una información contenida en el Beacon, de manera que es dinámica, es decir, cada dispositivo transmite en el slot asignado para esa ronda y no bajo una asignación fija. Debido a que la red posee un máximo de 63 dispositivos, y teniendo en cuenta que la asignación es dinámica, para completar una ronda de turnos puede requerirse entre uno y dos beacons como máximo, según la cantidad de dispositivos activos en la red. Se denominará subronda al tiempo que transcurre entre 2 beacons consecutivos (32 time-slots). Se denominará ronda al conjunto de time-slots necesarios para que todos los dispositivos de la red sean encuestados en frecuencia alta (tiempo de 2 beacons completos para redes con más de 32 dispositivos). Un RFD puede ser encuestado con una frecuencia alta (una vez por ronda) o con una frecuencia baja (se encuesta un solo dispositivo por ronda) dependiendo del estado de la alarma. Cuando la alarma está desactivada, se encuesta con frecuencia baja 60 NA036 – Alarma Antirrobo Inalámbrica ZigBee mientras que cuando está activada se pasa a la frecuencia alta. Por otro lado, cuando la mayoría de los RFD son encuestados con baja frecuencia, es posible que el coordinador desee asignar un mayor número de time-slots por subronda (un ciclo beacon) a los FFD para la transmisión de información concerniente al funcionamiento del sistema de alarma. Debido a que todos estos casos presentados son controlados por la aplicación, es necesario que exista una forma fácil en la cual la aplicación pueda informar al servidor Beacon cuáles dispositivos se encuestan con qué frecuencia. Esta tarea se realiza gracias al mantenimiento, por parte de la aplicación, de una tabla que posee una entrada por cada dispositivo de la red. Cada una de estas entradas posee la dirección del dispositivo y la frecuencia de encuestado. El servidor beacon accede a esta tabla para poder realizar la asignación de time-slots de manera coherente con lo deseado por la aplicación. El servidor beacon accede continuamente a esta tabla para realizar la asignación, de modo que no será necesario que existan eventos de cambio de frecuencia de encuestado, o de alta (o baja) de un nuevo nodo, pues todos estos cambios se reflejan en la tabla. La asignación en sí se realiza a través de la señal beacon, que posee un campo de asignación de time-slots. Este campo se implementa a través de un vector de 32 entradas, donde la entrada i posee la dirección del dispositivo al cual se le asigna el slot i de esa subronda. Cambio de Autoridad En los dispositivos FFD, el evento “Timeout de la espera de la próxima señal beacon” iniciará el mecanismo de negociación de un nuevo coordinador de red, el cual funciona de la siguiente manera: Cada FFD tiene asignada una prioridad, dada por un número de 0 a 7. 1 corresponde al primer candidato a hacerse cargo de la red, es decir, el más prioritario, el 7 corresponde al ultimo candidato a hacerse cargo, mientras que si un dispositivo posee prioridad 0, no podrá hacerse cargo de la red en ningún momento. De acuerdo a su prioridad, el evento “Timeout de la espera de la próxima señal beacon” será lanzado antes o después en el FFD. Esto significa que el FFD más prioritario marcará un timeout antes que los FFDs de menor prioridad. Cuando un FFD reciba el evento “Timeout de la espera de la próxima señal de beacon”, inmediatamente se hará cargo de la red emitiendo un beacon, pues si este evento ocurrió, significa que no existe ningún FFD de mayor prioridad en condiciones de asumir la coordinación de la red. El FFD manda su dirección en el beacon para que el resto de los dispositivos reconozcan quién es el nuevo coordinador. Un FFD que detecte que el coordinador de red es un dispositivo menos prioritario que él mismo, podrá solicitar el cambio emitiendo, en su slot de tiempo correspondiente, un mensaje (desde capa Aplicación) de solicitud de autoridad. Este caso se presentaría usualmente cuando el antiguo coordinador se recupere. Existe la posibilidad de que un FFD no se encuentre en condiciones de asumir la autoridad (por ejemplo si tiene las tablas de nodos desactualizadas). En este caso, la aplicación puede bajar su prioridad momentáneamente para que, en caso de que exista un FFD de menor prioridad que si este en condiciones de asumir, asuma la autoridad de la red. Esto no significa que al bajar su prioridad el FFD no pueda asumir, sino que no esta en condiciones óptimas para hacerlo; llegado el caso que aun con prioridad baja, no exista ningún FFD mas prioritario que el, el FFD asumirá la coordinación de la red. 61 NA036 – Alarma Antirrobo Inalámbrica ZigBee C.5.3. Cliente beacon La parte cliente de la capa beacon se encarga de: La transmisión de tramas provenientes de capas superiores en el time-slot correspondiente a través de la subcapa SMAC. La recepción de tramas desde la subcapa SMAC. El manejo de los timers que producen todos los eventos internos Eventos manejados por el Cliente Beacon El cliente beacon hace uso de varios timers, cuya expiración genera la siguiente serie de eventos internos: Inicio de la espera de la próxima señal beacon: este evento se produce al final del slot treinta y dos gracias a un timer que se activa con la llegada de cada beacon y expira luego de contar el tiempo de duración de 32 time-slots. Indica al dispositivo que debe esperar la llegada de la próxima señal beacon. Inicio del slot asignado: indica a partir de qué momento el dispositivo puede empezar a transmitir. Cuando se realiza la asignación del time-slot (con la llegada de un beacon), se activa un timer. Cuando el timer llega a cero, se produce este evento. Fin del slot asignado: Cuando se produce el evento de “Inicio de slot asignado”, se activa un timer que cuenta la duración del slot. A su fin, se produce este evento que indica al dispositivo que debe abortar o suspender todo intento de transmisión dado que su slot ha finalizado. El cliente beacon recibe notificaciones provenientes de otras capas. Estos eventos son: Llegada de una trama desde SMAC: evento disparado por la subcapa SMAC cuando ésta recibe una trama. Indicación de reset: evento disparado por la subcapa SMAC cuando se detectó un reset, provocado por el microcontrolador, del transceiver. Hay dos eventos que el cliente Beacon emite hacia una capa superior: Llegada de una trama desde Beacon: este evento se lanza hacia la subcapa LLC cuando el cliente beacon recibe una trama desde SMAC que encapsula un mensaje LLC. Necesidad de ingreso o reingreso a la red: como ya se explicó previamente, el beacon posee un campo de autenticación. Cuando el cliente beacon vea que no posee los medios necesarios para verificar este campo, generará este evento, avisando que es necesario que se pida una admisión o una readmisión a la red. Transmisión de tramas El cliente beacon se encarga de transmitir las tramas en el slot apropiado. Antes de transmitir cualquier trama, el cliente beacon le agrega el campo „Subprotocolo encapsulado‟. Este campo puede tomar dos valores: LLC o Servidor Beacon. Recepción de tramas El cliente beacon captura todos los eventos “Llegada de una trama desde SMAC”. Al recibir una trama primero verifica su campo „Subprotocolo encapsulado‟. Si este dice LLC, lanza un evento “Llegada de una trama desde Beacon” y pasa la trama a la 62 NA036 – Alarma Antirrobo Inalámbrica ZigBee subcapa LLC. Si, por el contrario, dice Servidor Beacon, es una señal beacon: la procesa, hace todas las verificaciones y actualiza todos los datos necesarios. Manejo de timers Todo el manejo y actualización de timers se realiza procesando las señales beacon que son recibidas o enviadas (en el caso de que el dispositivo sea el coordinador de red). Modo de bajo consumo En este modo, el cliente beacon, para disminuir el consumo eléctrico, activa al transceiver sólo cuando se espera recibir una nueva señal beacon y cuando está transcurriendo el slot asignado al dispositivo. Los eventos “Inicio de la espera de la próxima señal beacon” e “Inicio del slot asignado” provocarían el activado del transceiver mientras que los eventos “Llegada de una trama” (en el caso de que esta sea una señal beacon) y “Fin del slot asignado” lo pondrían en hibernación. C.6. Estructura de tramas A modo de referencia rápida, se muestra el siguiente gráfico, el cual muestra los headers y trailers –descriptos detalladamente en las secciones anteriores- agregados por el stack de protocolos iRoco en cada una de sus capas, detallándose el nombre de cada uno de los campos y su utilidad. Capa Física (PHY) Preamble: preámbulo de 4 bytes, usado para sincronización SFD: Starting Frame Delimeter, de 1 byte, delimita la trama FLI: Frame Length Indicator, de 1 byte, indica el tamaño de la trama. FCS: Frame Check Sequence, para control de errores (2 bytes) Simple Media Access Control (SMAC) No añade overhead Beacon Layer (BL) 63 NA036 – Alarma Antirrobo Inalámbrica ZigBee SP: Subprotocolo Encapsulado: permite diferenciar un mensaje de servidor beacon de un mensaje de capa superior (0 si es un beacon, 1 si es un mensaje LLC) Layer Link Control (LLC) DD: Dirección Destino, de 6 bits (hasta 64 nodos) DO: Dirección Origen, análogo a DD. SN: Sequence Number. Permite diferencia una trama de otra para hacer la correspondencia con el ACK (2 bits) MT: Message Type. Diferencia un mensaje de ACK (sin payload) de un mensaje de capa superior. (1 bit) Capa Seguridad (SEC) Message Type, permite diferenciar los mensajes de capa Aplicación (100) de los mensajes de capa Seguridad: pedido de admisión (000), respuesta de readmisión (001), pedido de readmisión (010) y respuesta de readmisión (011). 3 bits AC: Authentication Code, de 13 bits, permite autentificar los mensajes de dispositivos pertenecientes a la red. 64 NA036 – Alarma Antirrobo Inalámbrica ZigBee D. PRIMITIVAS Y VARIABLES DEL STACK IROCO D.1. Capa Seguridad D.1.1. SE_S_Send() Esta primitiva es usada para transmitir un mensaje encriptado a través de la red. Cuando se invoca a esta función el mensaje sólo es encolado, se transmite recién cuando se produce el evento „Inicio del slot asignado‟. Prototipo UINT8 SE_S_Send(UINT8 destinationAddress) *buffer, UINT8 longBuffer, UINT8 Argumentos *buffer: puntero al buffer en donde se encuentra la información que se quiere transmitir. Los primeros 4 bytes de este buffer deben estar libres, dado que en ellos se agregará el header requerido por el stack iRoco. longBuffer: tamaño del buffer en donde se encuentra la información. El valor esperando de este argumento es un número entre 5 (el espacio necesario para transmitir un byte) y 84 (el tamaño máximo de un paquete). destinationAddress: dirección del dispositivo destino del mensaje. El valor esperado de este argumento es un número entre 0 y 62. Valores de retorno „0‟: El mensaje fue encolado de forma satisfactoria. „1‟: El mensaje no se puedo encolar debido a que hay otra transmisión pendiente. „2‟: El mensaje no se puedo encolar dado que el argumento longBuffer tenia un valor inválido. „3‟: El mensaje no se puedo encolar dado que el argumento destinationAddress tenia un valor inválido. Uso Cargar la información que se quiere transmitir en un buffer. Verificar que no haya ninguna transmisión pendiente, consultando la variable SE_AP_SentFrame. Invocar a SE_S_Send() con los argumentos apropiados y verificar que su valor de retorno sea „0‟. Verificar, periódicamente, el valor de la variable SE_AP_SentFrame para ver si la transmisión fue exitosa o no. Notas Esta primitiva no realiza una copia del buffer en donde se encuentra la información que se desea transmitir, por lo tanto este no debe ser alterado hasta que la transmisión haya finalizado (ya sea de manera exitosa, como de manera fallida). Una vez que la variable SE_AP_SentFrame tome el valor „1‟ la información en el buffer tampoco deberá ser leída, ya que a partir de ese momento la misma se encontrará encriptada. D.1.2. SE_S_Initialiaze() Esta primitiva es usada para inicializar al stack de protocolos iRoco. 65 NA036 – Alarma Antirrobo Inalámbrica ZigBee Prototipo UINT8 SE_S_Initialize(UINT8 channel); Argumentos channel: si este valor es 0, el dispositivo escaneará los 16 canales definidos por el IEEE 802.15.4 en busca de una red iRoco, si es distinto de 0, el dispositivo creará una red iRoco en el canal cuyo número esté dado por channel. El valor esperado de este argumento es un número entre 0 y 16. Valores de retorno „0‟: La operación se pudo realizar con éxito. „1‟: La operación no pudo realizarse debido a que se pasó como parámetro un valor inválido. Uso Si el dispositivo se debe unir a una red ya creada, invocar a SE_S_Initialize() pasándole „0‟ como parámetro. Si el dispositivo debe crear la read, invocar a SE_S_Initialize() pasándole como parámetro el canal en el cual debe crearla, después asignar a las variables ALL_MyAddress y ALL_MyPriority los valores que se desee y, por último, invocar a SB_S_SlotAssignment() para configurar de que manera se hará la distribución de slots en los beacon emitidos. D.1.3. SE_AP_SentFrame Esta variable indica el estado del último mensaje que se encoló a través de la función SE_S_Send(). Valores posibles „0‟: „1‟: „2‟: „3‟: El mensaje se encuentra encolado. La transmisión del mensaje se encuentra en progreso. El mensaje se transmitió exitosamente. El mensaje no se pudo transmitir. Permisos Capa Aplicación sólo posee permiso de lectura sobre esta variable. Notas Cuando se encola un mensaje a través de SE_S_Send(), esta variable toma el valor „0‟. Cuando el mensaje se transmite por primera vez, adquiere el valor „1‟. Cuando la recepción del mensaje es confirmada (a través de un mensaje de ACK), la variable se pone en „2‟ pero si el mensaje es transmitido tres veces, sin que su recepción sea confirmada, la variable tomará el valor „3‟. D.1.4. SE_AP_ReceivedFrame Este flag indica si se recibió algún mensaje para capa Aplicación desde la última vez que se verificó este flag. Los mensajes que llegan para capa Aplicación se ubican en la estructura de datos SE_AP_ReceptionBuffer Valores posibles „0‟: No se recibió ninguna trama. „1‟: Trama recibida. 66 NA036 – Alarma Antirrobo Inalámbrica ZigBee Permisos Capa Aplicación posee permisos de lectura y de escritura sobre este flag. Notas Este flag debe ser reseteado en „0‟ luego de que el mensaje ubicado en SE_AP_ReceptionBuffer sea procesado. En el caso de que este flag se encuentre en „1‟ cuando se reciba un nuevo mensaje, este será descartado y se incrementará en uno a la variable SE_AP_Overrun. D.1.5. SE_AP_ReceptionBuffer En esta estructura de datos se ubican todos los mensajes de capa Aplicación que llegan al dispositivo. Esta estructura se define de la siguiente manera en el archivo security.h: struct SecurityReceptionBuffer { UINT8 sender; UINT8 age; UINT8 data[80]; UINT8 longData; }; struct SecurityReceptionBuffer SE_AP_ReceptionBuffer; Miembros sender: age: data[]: longData: Este campo indica la dirección del dispositivo que envió el mensaje, es decir la dirección origen. Este campo indica el número de subronda Beacon que estaba transcurriendo cuando se recibió el mensaje. En este vector se almacena el payload del mensaje, es decir su cuerpo. Este campo indica el tamaño, en bytes, del payload del mensaje. Permisos Capa Aplicación sólo posee permiso de lectura sobre esta estructura. Notas Luego de procesarse un mensaje, el flag SE_AP_ReceivedFrame debe ser reseteado en „0‟ para indicar que esta estructura se encuentra disponible y, de esa manera, permitir la llegada de mensajes nuevos. D.1.6. SE_AP_Overrun Esta variable indica la cantidad de mensajes que llegaron a la red y que debieron ser descartados como consecuencia de que la estructura SE_AP_ReceptionBuffer, tal como lo indicaba el flag SE_AP_ReceivedFrame, no se encontraba disponible. Valores posibles „0‟: No se descartó ningún mensaje. „1-255‟: Se descartaron mensajes. Permisos Capa Aplicación posee permisos de lectura y de escritura sobre esta variable. 67 NA036 – Alarma Antirrobo Inalámbrica ZigBee Notas Esta variable debe ser reseteada en „0‟ luego de haber sido leída. D.1.7. SE_AP_FalseFrameReceived Este flag indica si se recibió algún mensaje cuyo campo de autenticación no tenía el valor esperado, es decir un mensaje falso, desde la última vez que se verificó este flag. Valores posibles „0‟: No se recibió ningún mensaje falso. „1‟: Se recibió un mensaje falso. Permisos Capa Aplicación posee permisos de lectura y de escritura sobre este flag. Notas Este flag debe ser reseteado en „0‟ luego de haber sido leído. La llegada de un mensaje falso solo ocurriría en el caso de que un dispositivo malicioso esté intentando suplantar a alguno de los dispositivos de la red. D.1.8. SE_AP_AllowEntrance Este flag permite indicar si capa Seguridad debe responder o no los pedidos de admisión de red que lleguen. Valores posibles „0‟: No permitir ingresos a la red. „1‟: Permitir ingresos a la red. Permisos Capa Aplicación posee permisos de lectura y de escritura sobre este flag. Notas Para más información, sobre el uso de este flag, consultar el Anexo A. D.1.9. SE_AP_NextAddress2Assign Esta variable permite indicar a capa Seguridad cuál es la dirección que debe asignársele al próximo nodo que pida una admisión a la red. Valores posibles „0-62‟: se asignará esta dirección al nodo. „63-255‟: se considera que no hay ninguna dirección disponible para asignar. Permisos Capa Aplicación posee permisos de lectura y de escritura sobre esta variable. Notas Para más información, sobre el uso de esta variable, consultar el Anexo A. D.1.10. SE_AP_FailedEntrance 68 NA036 – Alarma Antirrobo Inalámbrica ZigBee Este flag indica si, desde la última vez que se lo verificó, se recibió un pedido de admisión a la red pero este no pudo ser atendido debido a que no había ninguna dirección cargada en la variable SE_AP_NextAddress2Assign. Valores posibles „0‟: No hubo un ingreso a la red fallido. „1‟: Hubo un ingreso a la red fallido. Permisos Capa Aplicación posee permisos de lectura y de escritura sobre este flag. Notas Este flag debe ser reseteado en „0‟ luego de haber sido leído. Para más información, sobre el uso de este flag, consultar el Anexo A. D.1.11. SE_AP_InvalidEntrance Este flag indica si, desde la última vez que se lo verificó, se recibió un pedido de admisión a la red pero este no pudo ser atendido debido a que, según el valor del flag SE_AP_AllowEntrance, no se estaban permitiendo ingresos a la red. Valores posibles „0‟: No hubo un ingreso a la red inválido. „1‟: Hubo un ingreso a la red inválido. Permisos Capa Aplicación posee permisos de lectura y de escritura sobre este flag. Notas Este flag debe ser reseteado en „0‟ luego de haber sido leído. Para más información, sobre el uso de este flag, consultar el Anexo A. D.1.12. SE_AP_ValidEntrance Este flag indica si, desde la última vez que se lo verificó, se recibió un pedido de admisión a la red y este fue atendido satisfactoriamente. Valores posibles „0‟: No hubo un ingreso a la red válido. „1‟: Hubo un ingreso a la red válido. Permisos Capa Aplicación posee permisos de lectura y de escritura sobre este flag. Notas Este flag debe ser reseteado en „0‟ luego de haber sido leído. Para más información, sobre el uso de este flag, consultar el Anexo A. Capa Aplicación posee permisos de lectura y de escritura sobre este flag. Notas Este flag debe ser reseteado en „0‟ luego de haber sido leído. La llegada de una señal beacon falsa solo ocurriría en el caso de que un dispositivo malicioso esté intentando suplantar al coordinador de la red. 69 NA036 – Alarma Antirrobo Inalámbrica ZigBee D.1.13. CB_AP_SaveEnergy Este flag permite indicar si se desea que el transceiver se apague durante los slots de los demás dispositivos, con el fin de para ahorrar energía. Es decir, este flag permite indicar si se desea activar el modo de bajo consumo. Valores posibles „0‟: Modo normal. „1‟: Modo de bajo consumo. Permisos Capa Aplicación posee permisos de lectura y de escritura sobre este flag. D.1.14. CB_AP_AsigTimeSlotTimeout Esta variable indica la cantidad de señales beacons que se recibieron desde la última vez que se le asignó un time-slot al dispositivo. Valores posibles „0‟: Se recibió un time-slot en la última subronda beacon „1-255‟: Han transcurrido de „1‟ a „255‟ subrondas beacons desde la última vez que se recibió un time-slot. Permisos Capa Aplicación sólo posee permiso de lectura sobre esta variable. Notas Un valor muy alto en esta variable indicaría que el dispositivo se encuentra incomunicado. D.1.15. CB_AP_BeaconNumber Esta variable indica el valor que tenía el campo “Número de beacon” de la última señal beacon recibida. Valores posibles „0-255‟ Permisos Capa Aplicación sólo posee permiso de lectura sobre esta variable. D.1.16. CB_AP_BeaconAuthority En esta estructura de datos se guardan los valores de los campos “Prioridad” y “Dirección del coordinador” de la última señal beacon recibida. Esta estructura se define de la siguiente manera en el archivo beaconClient.h: typedef struct { UINT8 address; UINT8 priority; }authority; authority CB_AP_BeaconAuthority; #define CB_AP_BeaconAddress #define CB_AP_BeaconPriority CB_AP_BeaconAuthority.address CB_AP_BeaconAuthority.priority 70 NA036 – Alarma Antirrobo Inalámbrica ZigBee Miembros address: priority: Este campo indica la dirección del dispositivo que de la red. Este campo podría tener un valor entre 0 Este campo indica la prioridad del dispositivo que de la red. Este campo podría tener un valor entre 0 es el coordinador y 6. es el coordinador y 15. Permisos Capa Aplicación sólo posee permiso de lectura sobre esta estructura. Notas Para más información, sobre el uso de esta variable, consultar el Anexo B. D.1.17. CB_AP_BeaconRetransmissions En el caso de que el dispositivo sea el coordinador de la red, esta variable indica la cantidad de veces que se tuvo que retransmitir la última señal beacon como consecuencia de que no se detectó actividad en la red luego de haberla transmitido. En el caso de que el dispositivo no sea el coordinador de la red, esta variable indica la cantidad de veces que se recibió la misma señal beacon en forma repetida. Valores posibles „0-255‟ Permisos Capa Aplicación sólo posee permiso de lectura sobre esta variable. Notas Un valor muy alto en esta variable podría indicar que uno o más dispositivos (incluido el dispositivo que está consultando esta variable) de la red se encuentran incomunicados o que algún dispositivo malicioso a asumido la coordinación de la red. D.1.18. CB_AP_BeaconFreq Esta variable indica la frecuencia con la que se están transmitiendo las señales beacon. Valores posibles „0‟: „1‟: „2‟: „3‟: Las Las Las Las señales señales señales señales beacon beacon beacon beacon se se se se emiten emiten emiten emiten a a a a una una una una frecuencia frecuencia frecuencia frecuencia de de de de 1 Hz. 1.2 Hz. 1.5 Hz. 2 Hz. Permisos Capa Aplicación sólo posee permiso de lectura sobre esta variable. Notas Haciendo uso de la siguiente ecuación, esta variable puede usarse para calcular el tiempo, en milisegundos, entre dos señales beacons consecutivas: (305*CB_AP_BeaconFreq)*32+20 71 NA036 – Alarma Antirrobo Inalámbrica ZigBee D.2. Servidor Beacon D.2.1. SB_S_SlotAssignment() Esta primitiva es usada para cambiar la frecuencia con que a un dispositivo se le asignan time-slots. Solo tiene sentido invocar a esta primitiva en el caso de que el dispositivo en cuestión sea el coordinador de la red. Prototipo UINT8 SB_S_SlotAssignment(UINT8 address, UINT8 freq) Argumentos address: indica la dirección del dispositivo cuya frecuencia de asignación de timeslots se está por alterar. El valor esperado para este argumento es un número entre 0 y 63. freq: frecuencia con que al dispositivo identificado por address se le asignarán time-slots. Los valores esperados son: „0‟: no se asignarán time-slots a este dispositivo. „1‟: se le asignará un time-slot cada uno o dos beacons, dependiendo de la cantidad de dispositivos que tenga la red. „2‟: se le asignará un time-slot cada 64 beacons, dependiendo de la cantidad de dispositivos que tenga la red. „3‟: los nodos con esta frecuencia recibirán todos los slots que queden disponibles después de asignar los slots necesarios para los dispositivos con frecuencia „1‟ y „2‟, aproximadamente entre 1 y 16 slots por cada dos beacon, dependiendo de la cantidad de dispositivos que tenga la red y de la frecuencia de estos. Valores de retorno „0‟: La operación se pudo realizar con éxito. „1‟: La operación no se pudo realizar como consecuencia de que se recibió uno o más parámetros con valores inválidos. Uso A los términos prácticos, la aplicación del coordinador de la red deberá usar esta primitiva de la siguiente manera: Asignar la frecuencia „0‟ a todas aquellas direcciones que no hayan sido asignadas a ningún dispositivos (es decir, las direcciones sin uso). Cuando la alarma se encuentre armada, todas las filas pertenecientes a nodos activos en la red deberán tener asignada una frecuencia de valor „1‟. Cuando la alarma se encuentre desarmada, las filas pertenecientes a nodos comunes deberán tener frecuencia igual a „2‟, las filas pertenecientes a nodos de 24 horas deberán tener una frecuencia igual a „1‟, y las filas pertenecientes a dispositivos FFD deberán tener una frecuencia igual a „3‟. D.2.2. SB_S_ChangeBeaconFreq() Esta primitiva es usada para cambiar la frecuencia con que el dispositivo emite las señales beacons. Solo tiene sentido invocar a esta primitiva en el caso de que el dispositivo en cuestión sea el coordinador de la red. Prototipo UINT8 SB_S_ChangeBeaconFreq(UINT8 newfreq) Argumentos 72 NA036 – Alarma Antirrobo Inalámbrica ZigBee newfreq: frecuencia con que se emitirán las señales beacon. Los valores esperados son: „0‟ (las señales beacons se emitirán a una frecuencia de 1 Hz), „1‟ (1.2 Hz), „2‟ (1.5 Hz) o „3‟ (2 Hz) Valores de retorno „0‟: La operación se pudo realizar con éxito. „1‟: La operación no pudo realizarse debido a que se pasó como parámetro un valor inválido. Notas Existe una estrecha relación entre la frecuencia de emisión de las señales beacon, el tiempo de respuesta de la alarma y el consumo de los RFD. D.2.3. SB_S_LoseAuthority() Esta primitiva es usada para que el dispositivo, en caso de que sea el coordinador de la red, deje de emitir las señales beacon. Prototipo void SB_S_LoseAuthority() Argumentos Ninguno Valores de retorno Ninguno Notas Para más información, sobre el uso de esta primitiva, consultar el Anexo B. D.2.4. SB_S_PriorityDown() Esta primitiva es usada para que el dispositivo, en caso de que no se encuentre en condiciones de asumir la coordinación de la red, baje su prioridad, dándole la posibilidad de asumir la coordinación de la red a otros dispositivos menos prioritarios. Prototipo void SB_S_PriorityDown() Argumentos Ninguno Valores de retorno Ninguno Notas Para más información, sobre el uso de esta primitiva, consultar el Anexo B. D.2.5. SB_S_PriorityUp() Esta primitiva es usada para que un dispositivo recupera su prioridad regular, en caso de que anteriormente la haya bajado invocando a SB_S_PriorityDown(). Prototipo 73 NA036 – Alarma Antirrobo Inalámbrica ZigBee void SB_S_PriorityUP() Argumentos Ninguno Valores de retorno Ninguno Notas Para más información, sobre el uso de esta primitiva, consultar el Anexo B. D.3. Variables adicionales D.3.1. ALL_MyAddress Esta variable indica la dirección del dispositivo. Por defecto, este campo toma el valor 63 hasta que ingresa a la red, a partir de donde toma un valor entre 0 y 62. Valores posibles „0-63‟ Permisos Capa Aplicación sólo posee permiso de lectura sobre esta variable. D.3.2. ALL_MyPriority Esta variable indica la prioridad del dispositivo. Por defecto, este campo toma el valor 0 hasta que ingresa a la red, a partir de donde toma un valor entre 0 y 15. Valores posibles „0-15‟ Permisos Capa Aplicación sólo posee permiso de lectura sobre esta variable. Notas Aunque sólo posee permisos de lectura, capa Aplicación puede cambiar el valor esta variable a través de las funciones SB_S_PriorityUp() y SB_S_PriorityDown(). D.3.3. ALL_FirstRun Este flag indica si es la primera vez, desde que fue construido, que el dispositivo se prende. Valores posibles „0‟: No es la primera vez que el dispositivo se prende. „1‟: Es la primera vez que el dispositivo se prende. Permisos Capa Aplicación solo posee permiso de lectura sobre este flag. D.3.4. ALL_NetworkFound 74 NA036 – Alarma Antirrobo Inalámbrica ZigBee Este flag indica si el dispositivo ya conoce cual es el canal en el cual se encuentra trabajando la red. Valores posibles „0‟: El dispositivo no sabe cual es el canal de la red. „1‟: El dispositivo sabe cual es el canal de la red. Permisos Capa Aplicación solo posee permiso de lectura sobre este flag. D.4. Anexo A: Ingreso de nodos a la red Para permitir el ingreso de nodos nuevos a la red, el programa ejecutando en la capa Aplicación deberá seguir los siguientes pasos: Utilizando la función SB_S_SlotAssignement(), abrir el canal 63 y verificar que la bandera SE_AP_AllowEntrance esté en „0‟. Antes de prender cualquiera de los nodos nuevos, verificar, a través de SE_AP_InvalidEntrance, que no haya ningún dispositivo (externo o malicioso) intentando ingresar a la red. Ingresar en la variable SE_AP_NextAddress2Assign la dirección a asignar al nodo nuevo y poner el flag SE_AP_AllowEntrance en „1‟. Prender el nodo que quiere introducirse a la red. Verificar periódicamente el estado de la bandera SE_AP_ValidEntrance hasta que su valor sea „1‟. En caso de que se quiera ingresar otro nodo, volver tres pasos atrás. En el caso de que se prenda un nodo antes de poner una dirección en SE_AP_NextAddress2Assign, se ignorará el pedido de admisión de dicho nodo y se informará esta situación mediante el flag SE_AP_FailedEntrance. Cerrar el canal 63 y poner SE_AP_AllowEntrance en „false‟. D.5. Anexo B: Cambio de coordinador de red Pueden producirse dos situaciones que provoquen el cambio del coordinador de la red: Caso 1: el actual coordinador de red deja de transmitir las señales beacon necesarias para el funcionamiento de la red. Cuando esto sucede, el FFD más prioritario que esté en funcionamiento en la red detectará esta ausencia y asumirá la coordinación de la red automáticamente, empezando a generar las señales de beacon. Capa Aplicación sabrá que se ha convertido en el nuevo coordinador al leer la variable CB_AP_BeaconAuthority y ver que el campo address posee el mismo valor que el campo address de la variable ALL_MyAuthority. Caso 2: el actual coordinador de red (al cual llamaremos FFD A) tiene menor prioridad que otro FFD (FFD B). Esta situación se da normalmente cuando un FFD de alta prioridad se cae y luego se levanta, y al hacerlo descubre que quien asumió la coordinación es un FFD con una prioridad menor que la suya. Explicaremos a continuación cuáles son los pasos que se siguen, en primera instancia para el dispositivo de mayor prioridad (FFD A) y luego para el caso de el de menor prioridad (FFD B). FFD A: este dispositivo, al consultar la variable CB_AP_BeaconAuthority, descubre que su prioridad es mayor que la del coordinador actual de red. Al descubrir esto, Aplicación genera un mensaje de Cambio de autoridad, a ser transmitido en su correspondiente Time-slot. Este mensaje es básicamente 75 NA036 – Alarma Antirrobo Inalámbrica ZigBee un paquete en donde se pide al actual coordinador de red que abandone la coordinación de red, indicando también la prioridad y la dirección propias. Si el coordinador obedece, el mismo dejará de generar señales beacon y se repetirá el escenario del caso 1. FFD B: este dispositivo, al recibir un paquete de cambio de autoridad, debe verificar dos cosas. Primero debe controlar que quien le mandó el mensaje de cambio de autoridad es realmente un dispositivo de mayor prioridad que él, y acto seguido, debe controlar que la alarma no se encuentre en estado de armado. Si este fuera el caso, FFD B ignorará el paquete, ya que no se podrá hacer un cambio de autoridad si la alarma se encuentra armada. Si la alarma se encuentra desarmada y la prioridad de FFD A (quien mandó el mensaje) es mayor, FFD B llamará a la primitiva SB_S_LoseAuthority(). Al invocarse esta primitiva, el Servidor Beacon dejará de generar señales Beacon, abandonando la coordinación de la red y repitiéndose el escenario del caso 1, que resultará en que FFD A tomará la coordinación de la red. Observación: En el caso de que un FFD detecte que no se encuentra en las condiciones necesarias para tomar la coordinación de la red, puede bajar su prioridad, dándole la posibilidad a otros FFD menos prioritarios de que asuman la coordinación de la red. Para bajar su autoridad, Capa Aplicación puede llamar a la función SB_S_PriorityDown(). Una vez que el dispositivo detecte que ya está en condiciones de asumir la coordinación de la red, puede volver a su prioridad original, invocando a la función SB_S_PriorityUp(). Si alguna de estas funciones es llamada 2 veces seguidas (por ejemplo, la prioridad se bajó y se invoca a SB_S_PriorityDown() nuevamente), la prioridad del dispositivo no se modifica. D.6. Anexo C: Diagrama de primitivas y variables A continuación se muestra un diagrama, a fin de mejorar la comprensión global del protocolo, a que capa corresponde cada una de las primitivas y variables compartidas del stack de protocolos iRoco: 76 NA036 – Alarma Antirrobo Inalámbrica ZigBee 77 NA036 – Alarma Antirrobo Inalámbrica ZigBee E. COMUNICACIÓN ENTRE CONTROLADORES E.1. Introducción Este Apéndice resume la forma de comunicación entre los diferentes controladores de la red del Sistema de Alarma. Se presenta un informe detallado de las tramas involucradas y sus formatos. Este Protocolo utiliza como base las primitivas de envío de tramas provistas por la capa de Seguridad y permite la implementación del esquema de redundancia propuesto para el sistema. E.2. Codificación Para diferenciar los tipos de tramas necesarias para el funcionamiento del sistema se utilizará un código de 8 bits con el siguiente formato: 1 Byte 7 6 5 4 Grupo 3 2 1 0 Código Se diferencian cuatro grupos diferentes de tramas: Tramas Multicast. Tramas Panel-Teclado. Tramas Teclado-Panel. Tramas Controlador-Controlador. La siguiente tabla presenta la codificación utilizada para estos grupos: BIT 7 0 0 1 1 E.3. BIT 6 0 1 0 1 Grupo Multicast Panel-Teclado Teclado-Panel Controlador-Controlador Comunicación Multicast Las tramas Multicast permiten al Coordinador de la red enviar información a todos los controladores conectados. De esta manera todos los FFD mantienen su configuración actualizada y pueden actuar frente a situaciones de alarma. A continuación se explican brevemente las tramas Multicast utilizadas por el sistema de alarma: E.3.1. Multicasts de Estado Este tipo de tramas Multicast se utilizan para realizar las transiciones en el diagrama de estados con el que se implementa la redundancia en el sistema. Las tramas utilizadas son: M-0: Estado Instalador M-1: Estado Silencioso M-2: Desarmado Normal M-3: Armado Ausente 78 NA036 – Alarma Antirrobo Inalámbrica ZigBee M-4: Armado Presente con Diferido M-5: Armado Presente sin Diferido Formato: Código 1 Byte M-6: Armado Ausente + Diferido M-7: Armado Presente + Diferido Formato: Código ID Nodo 1 Byte 1 Byte A continuación se presenta el diagrama de estados completo del Sistema de Alarma y las transiciones provocadas por los Multicast de Estado: Modo Desarmado Estado Instalador M-2 M-2 M-0 M-6 Modo Desarmado Estado Normal Modo Armado Presente Estado Diferido Modo Armado Ausente Estado Diferido M-2 M-7 Modo Armado Presente Estado Normal M-3 M-4, M-5 Modo Armado Ausente Estado Normal M-2 M-2 M-2 M-1 Modo Armado Presente Estado Silencioso M-1 79 NA036 – Alarma Antirrobo Inalámbrica ZigBee Las transiciones de estados sólo pueden realizarse a través de los Multicast descriptos. Los Multicast restantes no producen cambios de estados y se presentan como autolazos en el diagrama. E.3.2. Multicasts de Control de Nodos Este tipo de tramas son utilizadas para mantener actualizada, en los controladores, la información referente a los nodos conectados a la red. Las tramas utilizadas son: Transferencia de Tabla Nodos: se envía información de todos los nodos de la red dividido en dos tramas de 65 bytes. Parte 1 Código ID Nodo 0 Bateria Nodo 0 Status Nodo 0 1 Byte 1 Byte 1 Byte 1 Byte Código ID Nodo 32 Bateria Nodo 32 Status Nodo 32 1 Byte 1 Byte 1 Byte 1 Byte ... ID Nodo 31 Bateria Nodo 31 Status Nodo 0 1 Byte 1 Byte 1 Byte ID Nodo 63 Bateria Nodo 63 Status Nodo 63 1 Byte 1 Byte 1 Byte Parte 2 Nodo Falla: se notifica a los controladores una falla en un nodo específico. Código 1 bit 7 bits Bit Límite ID 1 Byte Nota: El bit Limite es utilizado por el Coordinador para indicar si el Nodo llegó al límite de fallas y debe ser inhibido obligatoriamente, o si se puede dar opcion de ignorar. Valores: 1: Obligatorio 0: Con Opción. 1 Byte Batería Nodo: este paquete se envía cuando un nodo presenta un cambio en su nivel de batería. Código Nodo Estado Batería 1 Byte 1 Byte 1 Byte Inhibir Nodos: se utiliza para informar a los controladores cuáles nodos fueron inhibidos por el sistema o el usuario. 4 bits ... 4 bits Código Modo Cantidad Inhibición Nodo 1 ... Nodo 8 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte Nota: Modo Inhibición 1: Temporal 0: Permanente. Desinhibir Nodos: se utiliza para informar a los controladores cuáles nodos fueron desinhibidos por el sistema o el usuario. 80 NA036 – Alarma Antirrobo Inalámbrica ZigBee Código Cantidad Nodo 1 ... Nodo 8 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte E.3.3. Multicasts de Control de Usuarios Este tipo de tramas son utilizadas para mantener actualizada, en los controladores, la información referente a los usuarios del sistema y sus claves de acceso. Las tramas utilizadas son: Nuevo Usuario: se utiliza para comunicar la adición de un nuevo usuario al sistema Código 4 bits 4 bits Jerarquía Usuario 1 Byte 1 Byte 6 Bytes Cambiar Clave: se utiliza para notificar el cambio de clave de acceso de un usuario determinado. Código 4 bits 4 bits Jerarquía Usuario 1 Byte Clave 1 Byte Clave Vieja Clave Nueva 6 Bytes 6 Bytes Eliminar Usuario: a través de este Multicast se comunica la eliminación de un usuario del sistema. Código 1 Byte 4 bits 4 bits Jerarquía Usuario 1 Byte E.3.4. Multicasts de Alarma y Reporte Este tipo de tramas son utilizadas para informar a los controladores de situaciones de alarma y estado de los reportes. Las tramas utilizadas son: Alarma Antirrobo: indica a los controladores que se ingresó en una situación de alarma y deben activar su sirena antirrobo. Código ID Nodo 1 Byte 1 Byte 81 NA036 – Alarma Antirrobo Inalámbrica ZigBee Alarma Incendio: indica a los controladores que se ingresó en una situación de alarma y deben activar su sirena de incendio. Código ID Nodo 1 Byte 1 Byte Reporte OK: indica a los controladores que el Coordinador envió con éxito el reporte a la central de monitoreo. Código 1 Byte E.3.5. Multicasts Adicionales Este tipo de tramas son utilizadas para informar, a los controladores, información adicional necesaria para el buen funcionamiento del sistema. Las tramas utilizadas son: Desactualizado: es utilizado por el Coordinador para informar, a otro controlador, que su información está desactualizada. Código Código 1 Byte 1 Byte 4 bits Modo Sistema Estado Sistema 1 Byte Modo Batería: indica a controladores y teclados que el Coordinador está funcionando en modo batería y cuál es el nivel de carga de la misma. Código Estado 1 Byte 1 Byte ERROR: es utilizado por el Coordinador cuando recibe tramas inconsistentes con el Modo y Estado de funcionamiento del sistema. Código 1 Byte 4 bits 4 bits 4 bits Modo Sistema Estado Sistema 1 Byte Limpiar Display: este Multicast es utilizado para forzar a los teclados a borrar la información mostrada en su display. 82 NA036 – Alarma Antirrobo Inalámbrica ZigBee Código 1 Byte E.4. Comunicación Teclado-Panel Las tramas Teclado-Panel permiten a los Teclados comenzar una comunicación con el Coordinador de la red a través de las primitivas que le ofrece el controlador. A continuación se explican brevemente las tramas Teclado-Panel utilizadas por el sistema de alarma: E.4.1. Funciones comunes de Alarma Este tipo de tramas permiten realizar acciones comunes en un sistema de alarma. Las tramas utilizadas son: Desarmar Armar Presente Armar Ausente Estado Silencioso Armar Presente + Diferido Forzar Armado Cancelar Operación Test de Sirena Test de Línea Telefónica Test de Nodos A continuación se muestra el formato utilizado para estas tramas: Código 1 Byte E.4.2. Control de Usuarios y Nodos Este tipo de acciones permite, al Usuario del sistema, controlar ciertas propiedades de los usuarios y nodos de la red. Las tramas utilizadas son: Inhibir Nodos: se utiliza para inhibir permanentemente uno o más nodos de la red. Código Cantidad Nodo 1 ... Nodo 8 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte Desinhibir Nodos: se utiliza para desinhibir uno o más nodos de la red. 83 NA036 – Alarma Antirrobo Inalámbrica ZigBee Código Cantidad Nodo 1 ... Nodo 8 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte Nuevo Usuario: se utiliza para agregar un nuevo usuario a la red Código 4 bits 4 bits Jerarquía Usuario 1 Byte 1 Byte 4 bits 4 bits Jerarquía Usuario 1 Byte 1 Byte Clave Vieja Clave Nueva 6 Bytes 6 Bytes Eliminar Usuario: a través de este paquete se elimina un usuario de la red. Código 1 Byte 6 Bytes Cambiar Clave: se utiliza para cambiar la clave de acceso de un usuario determinado. Código Clave 4 bits 4 bits Jerarquía Usuario 1 Byte Claves Excedidas: a través de este paquete un teclado informa al Coordinador de la red que se excedió la cantidad de fallos permitidos en el ingreso de la clave de acceso. Código 1 Byte E.5. Comunicación Panel-Teclado Las tramas Panel-Teclado permiten al Coordinador mantener una comunicación con los teclados de la red. A continuación se explican brevemente las tramas Panel-Teclado utilizadas por el sistema de alarma: E.5.1. Funciones comunes de Alarma Este tipo de tramas permiten al Coordinador responder ante funciones comunes del funcionamiento de un sistema de alarma. Las tramas utilizadas son: 84 NA036 – Alarma Antirrobo Inalámbrica ZigBee Nodos Activos: indica al usuario que hay nodos activos en la red y no se pudo realizar la acción de Armado del sistema. Código Cantidad Nodo 1 ... Nodo 8 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte Nuevos Activos: indica al usuario que luego de una acción de Forzado del sistema, nuevos nodos se activaron en la red. Código Cantidad Nodo 1 ... Nodo 8 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte Exceso Nodos Activos: indica al usuario que se excedió la cantidad permitida de nodos activos para Armar el sistema. Código 1 Byte Clave inexistente: indica al usuario que la clave que desea modificar no existe. Código 1 Byte Test Ok: indica al usuario que el test solicitado tuvo éxito. Código 1 Byte Falla Test: indica al usuario que el test solicitado presentó una falla. Código 1 Byte E.5.2. Funciones Auxiliares Estas tramas son utilizadas por el Coordinador como información adicional para el buen funcionamiento del sistema Las tramas utilizadas son: 85 NA036 – Alarma Antirrobo Inalámbrica ZigBee Bloqueado: indica a un teclado que el Coordinador está manteniendo una comunicación con otro teclado y no puede ser atendido hasta que termine dicha comunicación. Código 1 Byte LOG: información que brinda el Coordinador al teclado sobre el funcionamiento del sistema. Código Entrada 1 Entrada 2 ... Entrada N 1 Byte 1 Byte 1 Byte 1 Byte 1 Byte E.6. Comunicación Controlador-Controlador Este grupo cuenta con una única trama utilizada para funciones de cambio de autoridad ante la caída del Coordinador de la red. Cambio Autoridad: es utilizada por un dispositivo FFD de mayor prioridad del Coordinador actual. A través de esta trama puede asumir como nuevo Coordinador de la red. Código 1 Byte 86 NA036 – Alarma Antirrobo Inalámbrica ZigBee F. ANÁLISIS DETALLADO DE CONSUMO F.1. Definición de variables Ta = Tiempo que la alarma está armada. Td = Tiempo que la alarma está desarmada. fb = Frecuencia con que se emiten los beacon. fna = Frecuencia con que se le asigna un slot a un nodo (alarma armada). fnd = Frecuencia con que se le asigna un slot a un nodo (alarma desarmada). Kb fb x 24 horas = Cantidad de beacons emitidos en un día. Ks Ta fna Tdfnd = Cantidad de slots asignados a un nodo en un día. Vt = Velocidad de transmisión del transceiver = 250 Kbps. L b = Longitud, en bits, de un mensaje beacon. Lack = Longitud, en bits, de un mensaje ACK. Li = Longitud, en bits, de un informe de nodo. Lb / Vt = Tiempo de transmisión/recepción de un beacon. Ttrb Lack / Vt = Tiempo de transmisión/recepción de un ACK. Ttrack Ttri Li / Vt = Tiempo de transmisión/recepción de un informe de nodo. Teb = Tiempo medio de la espera por la llegada de un beacon. Teack = Tiempo medio de la espera por la llegada de un mensaje ACK. Tmr = Tiempo que el micro se encuentra en estado running. Tmh = Tiempo que el micro se encuentra en estado de hibernación. K sTtri = Tiempo necesario para enviar todos los informes. K s (Teack Ttrack ) = Tiempo necesario para recibir todos los ACK. K b (Teb Ttrb ) = Tiempo necesario para recibir todos los beacons. Cmr = Consumo del micro en estado de running = 3,5 mA. Cmh = Consumo del micro en estado de hibernación = 700 nA. Cth = Consumo del transceiver apagado/hibernando = 35 uA. C tr = Consumo del transceiver recibiendo = 37 mA. C tt = Consumo del transceiver transmitiendo = 30 mA. F.2. mAhtransceiver Consumo del MC13192 mAhtransmitiendo mAhrecibiendo mAhoff /hibernate mAhtransmitiendo = Tiempo transmitiendo informes * Consumo en transmisión. mAhtransmitiendo K sTtriCtt mAhrecibiendo = Tiempo recibiendo beacons y ACK * Consumo en recepción. mAhrecibiendo Ks (Teack Ttrack ) Kb (Teb Ttrb ) Ctr mAhoff /hibernate = Tiempo en estado de hibernación * Consumo en hibernación 87 NA036 – Alarma Antirrobo Inalámbrica ZigBee Tiempo en hibernación = 24 horas – Tiempo transmitiendo – Tiempo recibiendo mAhoff /hibernate 24 horas K s (Teack mAhtransceiver Ttrack Ttrb ) Cth K sTtriCtt K s (Teack Ttrack ) K b (Teb 24 horas K s (Teack F.3. mAhmicro Ttri ) Kb (Teb Ttrb ) Ctr Ttrack Ttri ) K b (Teb Ttrb ) Cth Consumo del MC9S08QG8 mAhrunning mAhhibernate Tmr Cmr TmhCmh Dado que todavía no se puede calcular el tiempo en que el micro se encuentra en cada estado, suponemos que se encuentra en estado running cuando el transceiver está recibiendo o transmitiendo y en hibernación cuando el transceiver está en hibernación: Tmr K s (Teack Tmh 24 horas K s (Teack F.4. Ttrack Ttri ) K b (Teb Ttrack Ttri ) Kb (Teb Ttrb ) Ecuación de consumo general Duración en días Capacidad de una pila AA Consumo en un día = mAhporDia mAhmicro mAhtransceiver mAhporDia K s Ttri (Ctt Cmr ) K s (Teack Ttrack ) K b (Teb 24 horas K s (Teack F.5. Ttrb ) Ttrb ) (C tr Ttrack 2850 mAh mAhporDia Cmr ) Ttri ) K b (Teb Ttrb ) (C th Cmh ) Cálculos estimativos Considerando: Ta = 8 horas = 28.800 s, Td = 16 horas = 57.600 s fna = fb / 2 , fnd = fb / 64 Ks Ta fna Tdfnd = fb (Ta / 2 Td / 64) fb * 15.300s Teb = 0,5 ms, Teack = 0,5 ms L b = 28 bytes (datos) + 8 bytes (overhead físico) = 36 bytes = 288 bits Lack = 2 bytes (overhead LLC) + 8 bytes (overhead físico) = 80 bits Li = 1 bytes (datos) + 4 (overhead iRoco) + 8 bytes (overhead físico) = 104 bits 88 NA036 – Alarma Antirrobo Inalámbrica ZigBee Lb / Vt = 1,152 ms Ttrb Lack / Vt = 0,32 ms Ttrack Ttri Li / Vt = 0,416 ms mAhporDia K s Ttri (Ctt K s (Teack Cmr ) Ttrack ) K b (Teb 24 horas K s (Teack mAhporDia Ttrack Ttrb ) (C tr Cmr ) Ttri ) K b (Teb Ttrb ) (C th Cmh ) fb * 15.300s * 0.368ms * (30mA 3,5mA) fb * 15.300s * (0.5ms 0.32ms) fb * 86.400s * (0.5ms 1.152ms) (37mA 3.5mA) 86.400s K s (Teack mAhporDia Ttrack Ttri ) K b (Teb Ttrb ) (35uA 1uA) fb * 5,630 s2 * 33,5 mA fb * 12,546 s2 fb * 142,732 s 2 * 40,5 mA 86.400 s (fb * 15.300 s) * (1,236 ms) (fb * 86.400 s) * (1,652 ms) * 36 uA mAhporDia fb * 5,630 s2 * 33,5 mA fb * 12,546 s2 fb * 142,732 s2 * 40,5 mA 86.400 s fb * 18,91 s2 fb * 142,732 s2 * 36 uA mAhporDia fb *188,605 mAs2 fb * 6.288,759 mAs2 (3.110,4 mAs fb 5,792 mAs2 ) mAhporDia fb * 6.471,572 mAs2 3.110,4 mAs mAhporDia fb * 1,797 mAh s 0,864 mAh Se define el tiempo de respuesta de un nodo como el tiempo entre dos informes consecutivos del nodo – el que está determinado por el protocolo. Con todos esos datos, podemos construir la siguiente tabla, donde se detallan la duración estimada en días y años, y el tiempo de respuesta de un nodo para una red de 32 nodos, todo en función de la frecuencia de emisión de beacons. fb Duración (en días) Duración (en años) 1 Hz 1.2 Hz 1.5 Hz 2 Hz 1071 943 800 639 2.9 2.5 2.1 1.7 Tiempo de respuesta de un nodo 1s 0.83 s 0.66 s 0.5 s 89 NA036 – Alarma Antirrobo Inalámbrica ZigBee G. MANUAL DEL INSTALADOR DE LA ALARMA G.1. Interfaz con el usuario El teclado en un Sistema de alarma es la interfaz con el usuario. La interacción con el Teclado se realiza cuando se desea activar o desactivar el Sistema de Alarma como así también cuando se muestran mensajes al usuario sobre el estado del mismo, permitiendo al usuario decidir realizar una determinada acción cuando sea necesario o recomendable. El teclado está compuesto por 16 teclas las cuales tienen asignadas las siguientes funciones: Estructura del teclado de la alarma. Teclas del 0 al 9, utilizadas generalmente para el ingreso de claves para armado/desarmado de la alarma y siempre que se solicite la misma. Tecla ENTER, utilizada para poder ingresar al Menú y seleccionar opciones del mismo, siempre y cuando el usuario esté habilitado para realizar esta acción. Tecla Superior Izquierda, usualmente tiene la opción SALIR asignada. Permite salir del Menú o de alguna opción del mismo. Tecla Superior Derecha. La función que realiza varía de acuerdo a: En el Menú, representa una flecha ( ) indicando que al presionarla se muestran las siguientes opciones del Menú. También permite moverse sobre los listados de Nodos. Si se está ingresando una clave, esta tecla tiene la opción de BORRAR, que elimina el último dígito ingresado por el usuario. Tecla Inferior Derecha, o DESARMAR. Presionando esta tecla se produce el desarmado de la alarma solicitando al usuario que ingrese la contraseña correcta. 90 NA036 – Alarma Antirrobo Inalámbrica ZigBee Tecla Inferior Izquierda, o ARMADO AUSENTE. Presionando esta tecla se solicita al usuario el ingreso de Clave para realizar el Armado en Modo Ausente de la alarma. Tecla Inferior Central, o ARMADO PRESENTE. Presionando esta tecla se solicita al usuario el ingreso de la Clave para realizar el Armado en Modo Presente de la alarma, activándose todos los sensores, a excepción de los interiores. G.2. Administración de usuarios G.2.1. Número de Usuario Es un número que se asigna a cada nuevo Usuario del sistema, es decir, al agregar una clave, se agrega un Usuario y éste se identifica en el sistema no sólo por su clave sino también por su número de Usuario. Éste número es indispensable para el proceso de eliminación de claves. G.2.2. Jerarquía de claves La Jerarquía de Claves permite definir distintos permisos para diferentes usuarios del sistema. Los permisos definen las distintas funciones disponibles de acuerdo a la jerarquía de claves. La Jerarquía es la siguiente: Jerarquía Superior: Permite al Usuario realizar TODO tipo de operación sobre la Alarma, es decir con el ingreso de su Clave puede ejecutar todas las opciones presentadas en el Menú del teclado. Sólo puede existir una sola Clave de Jerarquía Superior. Cabe destacar que es el único autorizado para solicitar al sistema el paso a modo instalador, y también el único que puede administrar los usuarios del sistema. Jerarquía Media: Permite al Usuario realizar TODO tipo de operación sobre la Alarma, es decir con el ingreso de su Clave puede ejecutar todas las opciones presentadas en el Menú del teclado, exceptuando las siguientes opciones: Cambiar estado de la alarma a Modo Instalador, ni tampoco gestionar claves de los demás usuarios, sólo se le permite modificar su clave, con el ingreso de la misma. Jerarquía Inferior: Permite al Usuario realizas sólo las operaciones de Armar y Desarmar el sistema, lo que implica también realizar el armado forzado del mismo. Pero no podrá realizar operaciones como: Inhibir Nodo, Eliminar Nodo, Desinhibir Nodos, Agregar Claves, Modificar Claves, Borrar Claves, ingresar al Modo Instalador, etc. G.3. Menú El teclado presenta un Menú con opciones que el usuario puede elegir para realizar la acción deseada. El Menú esta compuesto por las siguientes opciones: Armar Ausente. Armar Presente, dentro del cual se encuentra un submenú con las siguientes opciones: Modo Instantáneo. Modo Diferido. Configuración, dentro del cual se encuentra un submenú con las siguientes opciones: Agregar Clave de Acceso. Cambiar Clave de Acceso. Borrar Clave de Acceso. Inhibir Nodo. 91 NA036 – Alarma Antirrobo Inalámbrica ZigBee Desinhibir Nodo. Test, dentro del cual se halla un submenú con las siguientes opciones: Probar Alarma. Probar Línea. Ver estado de Sensores. Modo Instalador. LOG. A continuación se describirán cada una de estas opciones: G.3.1. Menú Armar Ausente Esta opción se utiliza cuando los habitantes de la vivienda se retiran de la misma, quedando así deshabitada. Esta opción puede ser seleccionada desde el Menú o desde la Tecla Directa AA. Proceso de Armado Ausente: Al seleccionar la opción de armado ausente se muestra al usuario un mensaje indicando el ingreso de la clave, para así corroborar los permisos de armado de la misma. Por lo tanto se realiza lo siguiente: Una vez presionado ENTER en la opción del Menú, o la tecla de Armado Ausente del teclado: 1) Muestra un mensaje indicando al usuario el ingreso de su de Clave. 2) Si la Clave ingresada es correcta, continua en el paso (6) 3) Si la Clave es incorrecta, muestra un mensaje indicando que la clave ingresada no es correcta, al tiempo que aumenta la cuenta de intentos erróneos. 4) Si la cantidad de intentos erróneos no supera el límite preestablecido, repite nuevamente el ciclo comenzando por el estado (1). 5) En caso de que la cantidad de intentos erróneos sea superior al límite, se informa al Panel principal de dicha situación enviando un mensaje de "EXCC ERRORES" y éste producirá el disparo de la alarma. 6) Según sea la Jerarquía de la Clave ingresada (definidas posteriormente): a. Jerarquía Superior: El Teclado chequea en la tabla correspondiente a los Nodos si existe algún Nodo inhibido permanente. Se muestra al Usuario el listado y da la posibilidad de desinhibirlos. i. Si el Usuario decide Desinhibir algún Nodo, esto se informa al Panel Principal enviando un mensaje de “Desinhibir” + Nodo. ii. Si la respuesta del Panel Principal es “OK”, se muestra al Usuario un mensaje de “Nodo Desinhibido”. Si la respuesta del Panel Principal es “ERROR”, se muestra al Usuario un mensaje de “Error, no se pudo desinhibir”. iii. Si el Usuario desea desinhibir otro Nodo, repite el ciclo comenzando desde el paso (a). iv. Si no hay Nodos Inhibidos Permanentes, continua en paso (7). b. Jerarquía Media: Ídem a Jerarquía Superior. 92 NA036 – Alarma Antirrobo Inalámbrica ZigBee c. Jerarquía Inferior: No muestra ni solicita el listado de los Nodos Inhibidos Permanentes, ya que este Usuario no cuenta con los permisos para realizar esta acción. 7) Realiza petición de Armado Ausente al Panel Principal. 8) Si la respuesta del Panel Principal es “Nodo activo”. a. Muestra al Usuario un listado de nodos (recibidos del Panel Principal) y pregunta si se desea efectivamente armar el sistema (activándose en Modo Forzado). b. Si la respuesta es positiva por parte del usuario, entonces se envía un mensaje al Panel Principal de solicitud de Armado Forzado (el cual consta de una inhibición Temporal de todos los Nodos que forman parte del Forzado). Si la respuesta del Panel Principal es “Modo diferido”, continúa en el paso (9.a) c. En caso de no realizarse el armado en Modo Forzado, se cancela enviando un mensaje de “Abortar” al Panel Principal. Vuelve al Menú. 9) Si la respuesta del Panel Principal es “Modo Diferido”. a. Comienza la cuenta regresiva del Modo Diferido (mostrando por display el tiempo restante). b. Una vez finalizada la cuenta se espera por respuesta del Panel Principal de “Armado Ausente” y, una vez recibida, se muestra por Display “Alarma Activada”. 10) Vuelve a Menú bloqueando antes el Teclado (el cual impide navegar en el Menú de opciones). NOTA: En el armado forzado se produce la Inhibición Temporal: Esta inhibición dura solo mientras la alarma está armada, una vez desarmada los nodos que formaban parte del armado forzado se desinhiben. G.3.2. Menú Armar Presente Esta opción se utiliza cuando los habitantes de la vivienda se hallan en la misma, es decir, está habitada. Esta opción está disponible en el Menú y presenta dos modos de armado: Armado Presente Diferido y Armado Presente Instantáneo, o desde la Tecla Directa AP la cual activa sólo el Modo Instantáneo. Proceso de Armado Presente Instantáneo o Desde Teclado: Al seleccionar esta opción se muestra al Usuario un mensaje indicando el ingreso de su clave, para corroborar los permisos de armado de la misma. El proceso se detalla a continuación: Una vez presionado ENTER en la opción del Menú, o la tecla de Armado Presente del teclado: 1) Muestra un mensaje indicando al usuario el ingreso de su Clave. 2) Si la Clave ingresada es correcta, continua en el paso (6) 3) Si la Clave es incorrecta, muestra un mensaje indicando que la clave ingresada no es correcta, al tiempo que aumenta la cuenta de intentos erróneos. 4) Si la cantidad de intentos erróneos no supera el límite preestablecido, repite nuevamente el ciclo comenzando por el paso (1). 93 NA036 – Alarma Antirrobo Inalámbrica ZigBee 5) En caso de que la cantidad de intentos erróneos sea superior al límite, se informa al Panel principal de dicha situación enviando un mensaje de "EXCC ERRORES" y éste produce el disparo de la alarma. 6) Según sea la Jerarquía de la Clave ingresada (definidas más adelante): a. Jerarquía Superior: El Teclado chequea en la tabla correspondiente a los Nodos si existe algún Nodo inhibido permanente. Se muestra al Usuario el listado y da la posibilidad de desinhibirlos. i. Si el Usuario decide Desinhibir algún Nodo, esto se informa al Panel Principal enviando un mensaje de “Desinhibir” + Nodo. ii. Si la respuesta del Panel Principal es “OK”, se muestra al Usuario un mensaje de “Nodo Desinhibido”. Si la respuesta del Panel Principal es “ERROR”, se muestra al Usuario un mensaje de “Error, no se pudo desinhibir”. iii. Si el Usuario desea desinhibir otro Nodo, repite el ciclo comenzando desde el paso (a). iv. Si no hay Nodos Inhibidos Permanentes, continua en el paso (7). b. Jerarquía Media: Ídem a Jerarquía Superior. c. Jerarquía Inferior: No muestra ni solicita el listado de los Nodos Inhibidos Permanentes, ya que este Usuario no cuenta con los permisos para realizar esta acción. 7) Realiza petición de Armado Presente Instantáneo al Panel Principal. 8) Si la respuesta del Panel Principal es “Nodo Activo” a. Muestra al Usuario el listado de nodos (recibidos del Panel Principal) y pregunta si se desea igualmente realizar el armado del sistema (activándose en Modo Forzado). b. Si la respuesta es positiva por parte del usuario, entonces se envía un mensaje al Panel Principal de solicitud de Armado Forzado (el cual consta de una inhibición Temporal de todos los Nodos que forman parte del armado Forzado). Si la respuesta del Panel Principal es “Armado P”, continúa en el paso (9.a) c. En caso de no realizarse el armado en Modo Forzado, se cancela y se envía un mensaje de “Abortar” al Panel Principal. Vuelve al Menú. 9) Si la respuesta del Panel Principal es “Armado P”. a. Se produce el armado instantáneo del sistema. b. Se muestra por Display “Alarma Activada”. 10) Vuelve a pantalla inicial bloqueando antes el Teclado (el cual impide navegar en el Menú de opciones). NOTA: En el armado forzado se produce la Inhibición Temporal: Esta inhibición dura solo mientras la alarma está armada, una vez desarmada los nodos que formaban parte del armado forzado se desinhiben. Proceso de Armado Presente Diferido: Al seleccionar esta opción se muestra al Usuario un mensaje solicitando el ingreso de su clave, para corroborar los permisos de armado de la misma. El proceso se detalla a continuación: Una vez presionado ENTER en la opción del Menú: 94 NA036 – Alarma Antirrobo Inalámbrica ZigBee 1) Muestra un mensaje solicitando al usuario el ingreso de su de Clave. 2) Si la Clave ingresada es correcta, continua en el paso (6) 3) Si la Clave es incorrecta, muestra un mensaje indicando que la clave ingresada no es correcta, al tiempo que aumenta la cuenta de intentos erróneos. 4) Si la cantidad de intentos erróneos no supera el límite preestablecido, repite nuevamente el ciclo comenzando por el paso (1). 5) En caso de que la cantidad de intentos erróneos sea superior al límite, se informa al Panel principal dicha situación enviando un mensaje de "EXCC ERRORES" provocando el disparo del sistema. 6) Según sea la Jerarquía de la Clave ingresada (definidas más adelante): a. Jerarquía Superior: El Teclado chequea en la tabla correspondiente a los Nodos si existe algún Nodo inhibido permanente. Se muestra al Usuario el listado y da la posibilidad de desinhibirlos. i. Si el Usuario decide Desinhibir algún Nodo, se informa al Panel Principal enviando un mensaje de “Desinhibir” + Nodo. ii. Si la respuesta del Panel Principal es “OK”, se muestra al Usuario un mensaje de “Nodo Desinhibido”. Si la respuesta del Panel Principal es “ERROR”, se muestra al Usuario un mensaje de “Error, no se pudo desinhibir”. iii. Si el Usuario desea desinhibir otro Nodo, repite el ciclo comenzando desde el paso (a). iv. Si no hay Nodos Inhibidos Permanentes, continua en el paso (7). b. Jerarquía Media: Ídem a Jerarquía Superior. c. Jerarquía Inferior: No muestra ni solicita el listado de los Nodos Inhibidos Permanentes, ya que este Usuario no cuenta con los permisos necesarios para realizar esta acción. 7) Realiza petición de Armado Presente Diferido al Panel Principal. 8) Si la respuesta del Panel Principal es “Nodo Activo” a. Muestra al Usuario el listado de nodos (recibidos del Panel Principal) y pregunta si se desea de igual manera realizar el armado del sistema (activándose en Modo Forzado). b. Si la respuesta es positiva por parte del usuario, entonces se envía un mensaje al Panel Principal de solicitud de Armado Forzado (el cual consta de una inhibición Temporal de todos los Nodos que forman parte del armado Forzado). Si la respuesta del Panel Principal es “Modo Diferido”, continúa en el estado (9.a) c. En caso de no realizarse el armado en Modo Forzado, se cancela y se envía un mensaje de “Abortar” al Panel Principal. Vuelve al Menú. 9) Si la respuesta del Panel Principal es “Modo Diferido”. a. Comienza la cuenta regresiva del Modo Diferido (mostrando por display el tiempo restante). b. Una vez finalizada la cuenta se espera por respuesta del Panel Principal de “Armado Ausente” y, una vez recibida, muestra por Display “Alarma Activada”. 95 NA036 – Alarma Antirrobo Inalámbrica ZigBee 10) Vuelve a pantalla inicial bloqueando antes el Teclado (el cual impide navegar en el Menú de opciones). NOTA: En el armado forzado se produce la Inhibición Temporal: Esta inhibición dura sólo mientras la alarma está armada, una vez desarmada los nodos que formaban parte del forzado se desinhiben G.3.3. Menú Desarmar Para desarmar la alarma es importante el uso de Claves para corroborar si el Usuario que intenta desarmarla es el dueño de la misma. Cabe destacar que existen dos tipos de Claves: Clave de Acceso y Clave Silenciosa. La Clave de Acceso se solicita al Usuario cada vez que quiere desarmar el sistema sin realizar reporte alguno a la Central y generalmente la que se ingresa cuando se solicita una clave para la ejecución de alguna de las opciones del Menú. La Clave Silenciosa es aquella que se utiliza cuando se desea notificar a la central de monitoreo que esta ocurriendo un asalto pero el sistema se comporta como si se encontrara en un estado desarmado. En este Modo Silencioso el teclado no estará bloqueado permitiendo así el ingreso al Menú, pero no ejecutará ninguna función de las opciones. Actuará como si lo hiciera pero, en cambio, no lo hará. Esto se realiza de manera que el asaltante crea verdaderamente que se desarmó la alarma. Se consideran dos situaciones: Desarmado Presente y Desarmado Ausente. Desarmado Presente Modo Instantáneo: Esta situación se da cuando persona que se encuentra dentro de la vivienda desea desarmar el sistema. Desarmado Presente Modo Diferido: Esta situación se da cuando una persona ingresa a la vivienda y desea realizar un desarmado del sistema que previamente se encontraba armado en modo presente. Desde el teclado: Caso de Modo Instantáneo, si un Nodo se activa, se produce el disparo del sistema. Caso de Modo Diferido, si un Nodo se activa, el Panel Principal envía al teclado un mensaje de “Estado Diferido” y comienza cuenta regresiva. Al finalizar la cuenta regresiva, si no se ingreso la clave o no se la ingresó correctamente, entonces se produce el disparo de la Alarma. Los pasos para desarmar son los siguientes: 1) Se presiona el botón de Desarmar. 2) El teclado muestra un mensaje al usuario indicando el ingreso de su clave. 3) Se ingresa la Clave. 4) Si la Clave ingresada es correcta, entonces envía petición de Desarmado al Panel Principal (la cual inhibe un supuesto disparo de la alarma). a. Si la clave ingresada es errónea, se muestra un mensaje al Usuario solicitando nuevamente el ingreso de la clave. b. Si la cantidad de ingresos de la clave es superior al límite preestablecido, se informa al Panel Principal enviando un mensaje “Exce Errores”, el cual produce el disparo del sistema. 96 NA036 – Alarma Antirrobo Inalámbrica ZigBee c. Si la Clave ingresada es la Clave de Modo Silencioso, se informa al Panel Principal mediante un mensaje de “Modo Silencioso”. Al recibirse la respuesta del Panel Principal de “Modo Silencioso”, el teclado muestra por display “Alarma Desactivada”, aunque en realidad no lo esté. Continua en el paso (6) 5) Si la respuesta del Panel Principal es “Desarmado”, se muestra al usuario un mensaje de “Alarma Desactivada”. 6) Vuelve a pantalla inicial y desbloquea el teclado. Desarmado Ausente: Esta situación se produce cuando una persona fuera de la vivienda desea realizar el desarmado del sistema que previamente se encontraba armado en modo ausente. Al ingresar a la vivienda se produce un disparo diferido del sistema, el cual comienza una cuenta regresiva. La misma se muestra en el display. El usuario: 1) Al activarse un Nodo se muestra al Usuario un mensaje indicando el ingreso de su clave. 2) El usuario ingresa la clave. 3) De acuerdo a lo ingresado: a. Si la clave ingresada es correcta, envía un mensaje de petición de Desarmado al Panel Principal. b. Si la clave ingresada es errónea, se muestra al usuario un mensaje indicando de reingreso de la clave. c. Si la cantidad de ingresos erróneos de la clave es superior al límite preestablecido, esto es informado al Panel Principal enviando un mensaje “Exce Errores”, el cual produce el disparo de la alarma. d. Si la clave ingresada corresponde al Modo Silencioso, se envía un mensaje al Panel Principal de “Modo Silencioso”. Al recibir la respuesta, se por display “Alarma Desactivada”, aunque efectivamente no lo esté. 4) Si la respuesta del Panel Principal es “Desarmado”, se muestra al usuario un mensaje de “Alarma Desactivada”. 5) Vuelve a pantalla inicial y desbloquea el teclado. NOTA: No existe la opción de Desarmado (tanto Presente como Ausente) en el Menú, debido a que el Teclado se bloquea al producirse el armado del sistema. G.3.4. Menú Configuración Agregar Clave de Acceso Ésta opción permite al usuario el ingreso de nuevas claves. De esta manera se tienen en cuenta, por ejemplo, familias o empresas con muchos integrantes. Permite así que cada persona pueda tener su propia clave, brindando mayor seguridad, facilidad de uso y trazabilidad frente a las funciones ejecutadas por el sistema. Para hacer uso de esta opción debe seguirse el siguiente procedimiento: Una vez presionado ENTER en la opción: 1) Muestra un mensaje indicando al usuario el ingreso de su clave. (Usuario de Jerarquía Superior) 97 NA036 – Alarma Antirrobo Inalámbrica ZigBee 2) Si la clave no existe o su Jerarquía no lo permite, pedir ingreso nuevamente. 3) Si la cantidad de intentos erróneos no supera el límite preestablecido, repite nuevamente el ciclo comenzando por el paso (1). 4) En caso de que la cantidad de intentos erróneos sea superior al límite, se informa al Panel principal de dicha situación enviando un mensaje de "EXCC ERRORES" y por lo cual se producirá el disparo del sistema. 5) Si la clave existe: a. Muestra un mensaje indicando al usuario el ingreso de la nueva clave. b. Pide confirmación de la nueva clave ingresada. c. Si ambas coinciden se agrega al nuevo usuario, sino, se repite el ciclo desde el paso (a). d. Muestra un mensaje solicitando al usuario el ingreso del Nivel de Jerarquía para el nuevo Usuario. Si el Nivel de Jerarquía elegido es el Superior, y éste ya existe, entonces muestra mensaje de “ERROR”, y pide el ingreso nuevamente del Nivel de Jerarquía. e. Solicita al usuario el ingreso del Número de Usuario para el nuevo usuario. Si el número ingresado ya existe, se solicita nuevamente. 6) Se envía un mensaje al Panel Principal de “Clave Agregada” + Nueva clave + Jerarquía + Número de Usuario. El Panel Principal se encargará de avisar a los restantes Paneles de la existencia de esta nueva clave. 7) Si la respuesta del Panel Principal es “OK”, se muestra por Display “Clave Agregada”. 8) Vuelve a pantalla inicial. G.3.5. Menú Configuración Cambiar Clave de Acceso Ésta opción permite al usuario modificar su Clave. Se recomienda al usuario la modificación periódica para mayor seguridad. Una vez presionado ENTER en la opción: 1) Muestra un mensaje solicitando al usuario el ingreso de la clave. 2) Si la clave no existe o su Jerarquía de Claves no lo permite, se solicita el ingreso nuevamente. 3) Si la cantidad de intentos erróneos no supera el límite preestablecido, repite nuevamente el ciclo comenzando por el paso (1). 4) En caso de que la cantidad de intentos erróneos sea superior al límite preestablecido, se informa al Panel principal de dicha situación enviando un mensaje de "EXCC ERRORES" y este producirá el disparo del sistema. 5) Si la clave existe: a. Muestra un mensaje indicando al usuario el ingreso de la nueva clave. b. Pide confirmación de la nueva clave ingresada. c. Si ambas coinciden se realiza el cambio, sino repite el ciclo desde el paso (a). 6) Se envía un mensaje al Panel Principal de “Clave Modificada” + Nueva clave + Vieja clave. 7) Si la respuesta del Panel Principal es “OK”, se muestra por Display “Clave Modificada”. 98 NA036 – Alarma Antirrobo Inalámbrica ZigBee 8) Vuelve a Menú. G.3.6. Menú Configuración Borrar Clave de Acceso Esta opción podrá ser ejecutada sólo por aquel Usuario que tenga Clave de Jerarquía Superior. Una vez presionada la tecla ENTER en la opción: 1) Solicita clave actual del Usuario. 2) Si la clave no existe o su Jerarquía de Claves no lo permite volver a solicitarla hasta que se supere la cantidad de ingresos permitidos. Si se da ese caso, se notifica al Panel Principal el cual produce el disparo del sistema. 3) Si la clave existe y es de jerarquía superior: a. Muestra un mensaje indicando al usuario el ingreso del Número de Usuario a eliminar. b. Pide confirmación del Número de Usuario a eliminar. En caso afirmativo continúa en paso (4); caso contrario en paso (1). 4) Se envía un mensaje al Panel Principal de “Clave a Eliminar” + Número de Usuario el cual comunica a los demás paneles el cambio de clave. 5) Si la respuesta del Panel Principal es afirmativa, se muestra por Display “Clave Eliminada”. 6) Vuelve a pantalla inicial. G.3.7. Menú Configuración Inhibir Nodo La inhibición de un Nodo produce que el mismo no sea considerado en el Sistema de Alarma, excluyéndolo del conjunto de sensores al momento de realizar el armado. Si se inhibe permanentemente un nodo, se le recordara al usuario de esta condición al realizar el armado del sistema. 1) Al elegir esta opción se solicita al Usuario el ingreso de su Clave. Se procede a verificar que la clave corresponda a la jerarquía media o superior. 2) Si la clave ingresada es errónea o su Jerarquía de Claves no lo permite, se solicita el reingreso de la misma. 3) Si cantidad de reingresos es superior al límite preestablecido, se informa al Panel Principal enviando un mensaje “Exce Errores”, el cual produce el disparo del sistema. 4) Si la Clave se ingresó correctamente: a. Se envía un mensaje al Panel Principal de “Inhibir Nodo”. b. Se recibirá del Panel Principal un listado de todos los Nodos existentes que pueden ser inhibidos. El listado es mostrado por display. c. Al seleccionar alguno y presionar “Inhibir”, se envía un mensaje al Panel Principal de “Inhibir”+ Id del Nodo. d. Si la respuesta del Panel Principal es afirmativa entonces se muestra por display “Nodo Inhibido”. e. Caso contrario se muestra por display “Inhibición Negada”. f. Si se desea inhibir otros Nodos, repetir ciclo desde el paso (3). 99 NA036 – Alarma Antirrobo Inalámbrica ZigBee g. Si no se desean inhibir más Nodos, continuo en paso (5). 5) Vuelve a pantalla inicial. G.3.8. Menú Configuración Desinhibir Nodo Con esta opción se quita un Nodo del estado de inhibición, es decir, es tenido en cuenta al realizar el armado del sistema. 1) Al elegir esta opción se solicita al Usuario que ingrese su clave, comprobando que el mismo cuente con permisos, por lo menos, de jerarquía media. 2) Si la clave ingresada es errónea o su Jerarquía de Claves no lo permite, se solicita el reingreso de la misma. 3) Si la cantidad de reingresos supera el límite preestablecido, se informa al Panel Principal enviando un mensaje “Exce Errores”, produciéndose el disparo del sistema. 4) Si la Clave se ingresó correctamente: a. Se envía un mensaje al Panel Principal de “Inhibir Nodo”. b. Se recibirá del Panel Principal un listado de todos los Nodos existentes que pueden ser inhibidos. Este listado es mostrado por display. c. Al seleccionar alguno y oprimir “Inhibir”, se envía un mensaje al Panel Principal de “Inhibir”+ Id del Nodo. d. Si la respuesta del Panel Principal es afirmativa entonces se muestra por display “Nodo Inhibido”. e. Caso contrario se muestra por display “Inhibición Negada”. f. 5) Si se desea inhibir otros Nodos, repetir el proceso desde el paso (4). Vuelve a pantalla inicial. G.3.9. Menú Test Probar Alarma Una vez presionada la tecla ENTER en la opción: 1) El teclado envía un mensaje al Panel Principal de “Probar Alarma”. 2) El Panel Principal dispara la (aproximadamente 5 segundos). 3) Si la repuesta del Panel Principal es “Test Ok”, se muestra por Display “La Sirena funciona correctamente”. 4) Si la respuesta del Panel Principal es “Test Fallido”, se muestra por Display “La sirena no está funcionando correctamente”. 5) Vuelve a pantalla inicial. G.3.10. sirena por un tiempo determinado Menú Test Probar Línea Una vez presionada la tecla ENTER en la opción: 1) El teclado envía mensaje al Panel Principal de “Probar Línea”. 100 NA036 – Alarma Antirrobo Inalámbrica ZigBee 2) El Panel Principal realiza una prueba de la línea telefónica. 3) Si la repuesta del Panel Principal es “Test Ok”, se muestra por Display “La Línea funciona correctamente”. 4) Si la respuesta del Panel Principal es “Test Fallido”, se muestra por Display “La línea no está funcionando correctamente”. 5) Vuelve a pantalla inicial. G.3.11. Menú Ver Estado de Sensores Una vez presionado ENTER en la opción: 1) El teclado envía un mensaje al Panel Principal de “Estado de Sensores”. 2) El teclado recibe información del Panel Principal referida al estado de batería y condición de cada uno de los nodos. 3) El teclado muestra la información recibida por display. 4) Se presiona Salir y retorna a pantalla inicial. G.3.12. Menú Modo Instalador Este Modo permite al Instalador ingresar al sistema y revisar y/o modificar la configuración completa de la alarma. Al elegir esta opción, el teclado solicita el ingreso de una Clave (ya que debe estar bajo el consentimiento del dueño). Esta opción solo esta disponible para usuarios de jerarquía superior. Una vez ingresada correctamente la clave, se envía un mensaje al Panel Principal de “Modo Instalador” y se bloquean por completo todos los teclados. Si la Clave es ingresada incorrectamente, se contabiliza la cantidad de ingresos erróneos, si se supera el límite preestablecido, se envía mensaje al Panel Principal de “EXCC ERRORES” y produce el disparo del sistema. Para salir de este modo el Panel Principal envía un mensaje de “Salir del Modo Instalador”. En el modo instalador se pueden configurar, entre otras cosas, las Zonas a las que pertenecerán los Nodos. Las Zonas son las siguientes: Zona de 24 horas, Zona de Incendio, Zona Diferida, Zona Interna, Zona Perimetral y Zona Silenciosa. La pertenencia de los Nodos a las respectivas Zonas dependerá de las características y funcionalidades de los Nodos. Al incorporarse un nuevo Nodo a la red, es necesario que el mismo sea reconocido por todos los dispositivos controladores y admitido por el usuario. Los pasos necesarios para la admisión de un nuevo Nodo son los siguientes: 1) Desde PC se avisa explícitamente al panel principal que se está por ingresar un nuevo Nodo a la red. 2) Aplicación asigna una dirección para el próximo Nodo a admitir e informa a seguridad que las admisiones están habilitadas. 3) Se habilita un time-slot para el nuevo Nodo. 101 NA036 – Alarma Antirrobo Inalámbrica ZigBee 4) Llega a seguridad un mensaje de pedido de admisión, el cual es generado por el nuevo Nodo, mediante una acción explícita del usuario. 5) El sistema prepara un mensaje especial de habilitación de Nodo que contendrá, entre otras cosas, la dirección asignada. 6) Este mensaje deberá ser transmitido al nuevo Nodo y además a los demás controladores, informándoles que existe un nuevo nodo, cuáles son sus semillas de verificación y toda la información relevante a ellos. Cuando un Nodo de la red se reinicia o se apaga por un tiempo (por falta de batería, por ejemplo), es necesario que pida, al Panel Principal, una readmisión a la red. A diferencia de la admisión, la readmisión en la red se realiza de manera transparente al usuario. Esto es posible dado que el dispositivo, como fue admitido a la red, ya tiene un time-slot asignado y posee los medios necesarios para autenticarse ante el Panel Principal. G.4. Clave Silenciosa La clave silenciosa se utiliza ante situaciones donde la integridad física del usuario corre riesgos, El ingreso de esta clave produce un llamado a la central de monitoreo, aunque la sirena no es disparada. La Clave Silenciosa esta relacionada con la Clave de Acceso: se considera que la, misma esta compuesta Clave de Acceso con un orden invertido. Para desactivar el estado silencio presionar el botón “DD” de teclado, ingresando alguna clave de acceso. G.5. Bloqueo de Teclados Puede ocurrir que existan dos teclados en un Sistema de Alarma y que ambos estén siendo navegados y por lo tanto puede existir inconsistencia entre solicitudes simultáneas de ambos teclados. Para evitar este tipo de situaciones, el teclado que se esta utilizando produce la inhibición del resto de los teclados. El bloqueo de los teclados comienza cuando uno de los teclados solicita una acción al Panel Principal. Se envía un mensaje de “Bloquearse” a los restantes teclados. El teclado se bloquea impidiendo que el Usuario navegue en ellos hasta que no se termine de ejecutar la acción solicitada. Una vez finalizada la acción, el Panel Principal envía un mensaje de “Desbloquearse” a los Teclados, permitiendo, así, al Usuario navegar nuevamente en ellos. G.6. Condiciones de error G.6.1. Batería Baja en Nodo Si un nodo cuenta con batería baja, el Panel Principal le informa al teclado de dicha situación enviando un mensaje de “Batería baja” especificando el Id del Nodo. El teclado recibe la información y la muestra al usuario. Se cuenta con la opción de inhibir el nodo con batería baja, en este caso envía un mensaje de “Inhibir” al Panel Principal (esta inhibición será Permanente). G.6.2. Nodo Activo En caso de ser activado un nodo, el Panel Principal envía mensaje de “Alarma”. Si la alarma está activada en Modo Diferido comienza la cuenta regresiva. El usuario deberá desarmar la alarma antes de que este tiempo caduque, caso contrario, se deberá ingresar la clave correctamente para detener la condición de alarma. Si la alarma se encuentra en Modo Instantáneo, el disparo de la alarma se extiende hasta ingresar la clave correctamente. 102 NA036 – Alarma Antirrobo Inalámbrica ZigBee G.6.3. Nodo No Responde Si un nodo no responde y el sistema está Desarmado, el Panel Principal notifica al teclado de dicha situación enviando un mensaje al Teclado identificando el nodo y la zona a la que corresponde. Se muestra por display los datos del nodo y realiza un “Beep” para que el usuario se percate de la situación. En caso de que el sistema se encuentre armado, se produce el disparo del sistema. G.6.4. Modo Batería Cuando ocurre un corte de electricidad, el Panel Principal es alimentado por sus respectivas baterías. El usuario es informado notificándole de una potencial condición de falta de alimentación. Los cambios en el estado de batería serán notificados a través de un mensaje de “Batería Media, Baja o Crítica”. 103 NA036 – Alarma Antirrobo Inalámbrica ZigBee H. MANUAL DE USUARIO DE LA ALARMA H.1. Disclaimer El objetivo de este manual es ayudarlo a entender su sistema de seguridad y enseñarle su operación. Todos los usuarios de su sistema de seguridad deberían leer y seguir las indicaciones y precauciones de este manual. De no hacerlo, podría resultar en el mal funcionamiento del sistema. Este manual debería mantenerse en un lugar accesible durante toda la vida de su sistema de seguridad. Si usted no comprende alguna parte de este manual, deberá notificarlo a su compañía de instalación y solicitar la explicación completa de dicha parte. Recuerde leer el manual y, si es posible, practicar con el teclado de control mientras que su instalador se encuentre en el lugar. Si usted tiene alguna duda, realice la pregunta a su empresa instaladora. Usted debería tener en cuenta los siguientes puntos y utilizarlos en la preparación de un plan de seguridad y protección para su hogar o negocio: Su sistema funcionará sin alimentación eléctrica, ya que posee una batería de resguardo conectada, pero no debe olvidar que la autonomía de la misma es limitada. Los dispositivos de advertencia deben ser suficientemente audibles, estar conectados correctamente y en el lugar adecuado para notificar un evento de alarma. Solicite siempre profesionales de seguridad calificados para seleccionar, instalar y mantener su sistema de seguridad. H.2. Introducción Este sistema de alarma inalámbrico tiene como objetivo principal brindar al cliente la mayor seguridad posible en forma simple y eficiente ante casos de robo, asalto, incendios y cualquier otra situación de peligro. Para obtener el la máxima seguridad el sistema debe ser monitoreado por una central de alarma que actuará con presencia física en el lugar cuando la situación así lo requiera, otorgándole tranquilidad al usuario aún cuando no se encuentre presente en su hogar. Por tratarse de un sistema inalámbrico la instalación del sistema de alarma requiere reformas mínimas en el hogar. H.2.1. Características Los paneles principales y teclados operan conectados a la Red eléctrica domiciliaría de 220 Volts, con respaldo de baterías recargables ante posibles cortes de energía. Modo Bajo consumo en teclado en casos de corte de energía a fin de maximixar la autonomía de los mismos. Los nodos operan con pilas alcalinas AA. Su bajo consumo permite una duración de las pilas de alrededor de los dos años. Manejo de hasta 62 nodos, de los cuales 8 pueden ser controladores (Paneles o teclados). Los nodos pueden agruparse en hasta 30 zonas independientes. Configuración del sistema a través de una PC que provee una interfaz simple y amigable tanto al usuario como al instalador. Posibilidad de disparar una Alarma silenciosa para situaciones de asalto a mano armada mediante botón de pánico y/o clave falsa. 104 NA036 – Alarma Antirrobo Inalámbrica ZigBee Sonidos diferenciados en las Sirenas para distinción de situaciones de robo y de incendio. Comunicación con central de monitoreo mediante estándar de CONTACT-ID. Control de estado de la línea telefónica y respaldo por red celular GSM. Armados en Modo Presente/Ausente, con manejo de zonas activas en forma permanente para anti desarme e incendio. Interfaz de Teclado amigable, con soporte para múltiples usuarios con distintas claves. Posibilidad de disparar una llamada de emergencia médica o a bomberos. H.3. Definiciones y Términos Armar la Alarma: Activar el sistema de alarma para monitorear el estado de las zonas de control optativo. Desarmar la Alarma: Desactivar el monitoreo de las zonas de control optativo. Forzar la alarma: Normalmente para poder armar la alarma es necesario que todos los nodos de las zonas a controlar se encuentren inactivos. El forzado permite el armado de la alarma ignorando a los Nodos que se encuentran activos. Tiempo de Diferido: Es el tiempo que tiene el Usuario para salir del hogar antes que se arme por completo la alarma. También define al tiempo del cual dispone el Usuario al entrar al hogar para ingresar la clave antes de que suene la sirena. Clave de acceso: Es la clave utilizada para poder armar y desarmar la alarma, y para ingresar cada vez que se la solicite al intentar ejecutar alguna opción del Menú. Clave Silenciosa: Es la clave que sirve para casos de asaltos en el hogar o negocio. Al introducir esta clave el sistema este actuará como si hubiera sido desarmado, pero en realidad informará una situación de alarma a la central de monitoreo, a la cual seguirá enviando reportes hasta su desarmado con una clave de acceso valida. Número de Usuario: Es el numero solicitado al ingresar un nuevo Usuario que identifica a cada Usuario y sirve para ejecutar determinadas opciones del Menú, el cual debe ingresarse cuando se lo solicite. Jerarquía de acceso: Las claves de acceso pueden tener distintos privilegios, los cuales están organizados en varios niveles. De esta forma al aumentar sea el nivel de la jerarquía permite el acceso a mayor cantidad de opciones del Menú. Nodo: Se refiere a cualquiera de los sensores del sistema de alarma, tales como botones de pánico, anti-desarme, de humo, de movimiento, de apertura puerta, de Rotura de Cristales, de presencia de Gas, etc. Inhibir Nodo: Esta acción implica no considerar en el testeo de los Nodos mientras está armado o desarmado, inhibiéndolo de disparar una alarma en el sistema. Desinhibir Nodo: Hacer que un Nodo que estaba Inhibido vuelva a ser testeado por el sistema de alarma tanto en armado como desarmado. H.4. Nodos Se ocupan de monitorear una si se cumple una condición que puede desencadenar una situación de alarma. En general controlan la apertura de puertas y ventanas, detección de humo, detección de rotura de vidrios y detección de movimientos. Las principales características de los nodos de este sistema son las siguientes: Utilizan dos pilas alcalinas AA, lo que les da una autonomía de entre 1.5 y 3 años, dependiendo de la cantidad de dispositivos de la red, el tiempo de respuesta deseado y el tipo de nodo. 105 NA036 – Alarma Antirrobo Inalámbrica ZigBee Cada nodo puede tiene conectado un sensor, que puede ser un detector de humo, un botón de pánico o un sensor para controlar la apertura y cierre de puertas y ventanas. H.5. Paneles Son los encargados de controlar tanto a los nodos como a los teclados. Su función principal es la detectar una situación de alarma y tomar las acciones adecuadas. Este componente es la principal conexión con el medio, controlando la sirena principal del sistema y el enviando los reportes de estado a la estación de monitoreo, ya sea vía telefónica fija o mediante el uso de la red celular si la línea telefónica no estuviera disponible. Por tratarse del punto más vulnerable del sistema, y a fin de aumentar la seguridad podrá instalarse más de un panel, permitiendo de esta forma disponer de más de una sirena, como así también de más vías de comunicación. H.6. Teclados Permiten al Usuario para el armado, desarmado y control general del sistema de alarma. Adicionalmente se comportan como un nodo permitiendo el manejo de un sensor, en general la puerta de ingreso principal. También puede controlar una sirena interior de menor potencia. También pueden instalarse más de un teclado, en este caso por razones de comodidad. En general la cantidad máxima de paneles y teclados será de seis en total, permitiéndose cualquier combinación de estos para alcanzar ese valor máximo. Tecla Izquierda: Cambia de función según el menú mostrado. La función actual se muestra en la ultima línea de la pantalla Tecla Derecha: Cambia de función según el menú mostrado. La función actual se muestra en la ultima línea de la pantalla ENTER: Confirma la opción seleccionada del menú o ingresa a un submenú Teclas Numericas: Permiten el ingreso de las claves Teclas AA: Permite activar la alarma rápidamente en modo Armado Ausente Teclas DD: Permite desactivar la alarma Teclas AP: Permite activar la alarma rápidamente en modo Armado Presente 106 NA036 – Alarma Antirrobo Inalámbrica ZigBee H.7. Mapa de Menú Opciones del Menú Armar Ausente Armar Presente Configuración Diagnósticos Opciones del Sub-Menú Modo Instantáneo Modo Diferido Agregar Clave de Acceso Cambiar Clave de Acceso Borrar Clave de Acceso Inhibir Nodo Desinhibir Nodo Probar Sirena Probar Línea Ver Estado de Sensores Modo Instalador Historial Las opciones del Menú son aquellas a las que se accede presionando la tecla ENTER. Las opciones del Sub-Menú son aquellas a las que se accede presionando ENTER en las opciones del Menú indicadas en la columna izquierda. H.8. ¿Como activar la alarma? Existen dos modos de activación de la alarma, o cual define el comportamiento del sistema: Armado Ausente: Son controladas todas las zonas del sistema. Este modo esta pensado para ser utilizado cuando no hay personas dentro del hogar o empresa. Armado Presente: Solo son controladas las zonas perimetrales, permaneciendo inactivas las zonas interiores. Este modo esta pensado para ser utilizado cuando hay personas dentro del hogar o empresa pero no ocurren ingresos o egresos, por ejemplo en horarios nocturnos. H.8.1. Armar Ausente Para activar la alarma en Modo Ausente hay que seguir los siguientes pasos: Armado Ausente utilizando el Menú: Acceder al Menú presionando la tecla ENTER. Recuerde que la alarma debe estar desarmada para poder ingresar al Menú. Buscar en el Menú la opción “Armar Ausente” utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones de Menú. Con la opción “Armar Ausente” seleccionada se presionar la tecla ENTER para confirmar la opción. El teclado solicitará una Clave de Acceso valida, la cual se ingresará utilizando las teclas numéricas. Al completar el ingreso de la clave el sistema de alarma realizará la comprobación de la existencia de dicha clave. Si la clave ingresada es errónea se solicitará nuevamente al usuario el ingreso de la clave. 107 NA036 – Alarma Antirrobo Inalámbrica ZigBee Al ingresar una clave errónea por tercera vez el sistema desencadenará una condición de alarma, haciendo sonar la sirena e informando la misma a la estación de monitoreo. Una vez ingresada correctamente la Clave de Acceso, el sistema de alarma controlará que no haya Nodos activos, es decir que no hay puertas ni ventanas abiertas. En caso de estar alguna abierta, el teclado avisará al usuario de dicha situación y dará la opción de Forzar la alarma. Si hubiera más de un nodo activo se mostrara un listado, el cual se podrá recorrer con la tecla derecha. En caso de no querer Forzar se deberá salir de la opción presionando SALIR (botón superior izquierdo del teclado), cerrar la ventana o puerta y volver a armar la alarma. En caso de querer Forzar, se presionará la tecla ENTER con lo cual la alarma se armará ignorando a los nodos que se encontraron activos al momento del forzado. Al armase la alarma se muestra por pantalla la cuenta regresiva que indica el tiempo que dispone el Usuario para retirarse del hogar antes que las zonas demoradas sean activadas por completo. Recuerde que el Armado Ausente se realiza siempre en modo diferido. Si al terminarse el tiempo el usuario no se retiró del hogar o la puerta no se cerró, se desencadenará una condición de alarma, haciendo sonar la sirena e informando la misma a la estación de monitoreo. En este caso se deberá Desarmar la alarma. El panel mostrará en la pantalla un mensaje de confirmación indicando que la alarma se encuentra armada. Armado Ausente utilizando la Tecla rápida AA: Presionar la tecla de inferior izquierda rotulada como AA para el iniciar el Armado Ausente. Recuerde que la alarma debe estar desarmada para aceptar un armado. El teclado solicitará una Clave de Acceso valida, la cual se ingresará utilizando las teclas numéricas. Al completar el ingreso de la clave el sistema de alarma realizará la comprobación de la existencia de dicha clave. Si la clave ingresada es errónea se solicitará nuevamente al usuario el ingreso de la clave. Al ingresar una clave errónea por tercera vez el sistema desencadenará una condición de alarma, haciendo sonar la sirena e informando la misma a la estación de monitoreo. Una vez ingresada correctamente la Clave de Acceso, el sistema de alarma controlará que no haya Nodos activos, es decir que no hay puertas ni ventanas abiertas. En caso de estar alguna abierta, el teclado avisará al usuario de dicha situación y dará la opción de Forzar la alarma. Si hubiera más de un nodo activo se mostrara un listado, el cual se podrá recorrer con la tecla derecha. En caso de no querer Forzar se deberá salir de la opción presionando SALIR (botón superior izquierdo del teclado), cerrar la ventana o puerta y volver a armar la alarma. En caso de querer Forzar, se presionará la tecla ENTER con lo cual la alarma se armará ignorando a los nodos que se encontraron activos al momento del forzado. Al armase la alarma se muestra por pantalla la cuenta regresiva que indica el tiempo que dispone el Usuario para retirarse del hogar antes que las zonas 108 NA036 – Alarma Antirrobo Inalámbrica ZigBee demoradas sean activadas por completo. Recuerde que el Armado Ausente se realiza siempre en modo diferido. Si al terminarse el tiempo el usuario no se retiró del hogar o la puerta no se cerró, se desencadenará una condición de alarma, haciendo sonar la sirena e informando la misma a la estación de monitoreo. En este caso se deberá Desarmar la alarma. El panel mostrará en la pantalla un mensaje de confirmación indicando que la alarma se encuentra armada. H.8.2. Armar Presente En el caso del Armado Presente existen dos variantes: el modo diferido donde existe un tiempo para poder ingresar al hogar desde el exterior, y el modo instantáneo donde no existe posibilidad de ingreso sin generar una condición de alarma. Para acceder a ambos modos de armado es necesario acceder al Menú, ya que la tecla rápida AP arma el sistema solo en modo instantáneo Armado Presente Instantáneo utilizando el Menú: Acceder al Menú presionando la tecla ENTER. Recuerde que la alarma debe estar desarmada para poder ingresar al Menú. Buscar en el Menú la opción “Armar Presente” utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones de Menú. Con la opción “Armar Presente” seleccionada se presionar la tecla ENTER para acceder al submenú de armado. Buscar en el submenú la opción “Modo Instantáneo” utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones del submenú. Con la opción “Modo Instantáneo” seleccionada se presionar la tecla ENTER para confirmar la opción. El teclado solicitará una Clave de Acceso valida, la cual se ingresará utilizando las teclas numéricas. Al completar el ingreso de la clave el sistema de alarma realizará la comprobación de la existencia de dicha clave. Si la clave ingresada es errónea se solicitará nuevamente al usuario el ingreso de la clave. Al ingresar una clave errónea por tercera vez el sistema desencadenará una condición de alarma, haciendo sonar la sirena e informando la misma a la estación de monitoreo. Una vez ingresada correctamente la Clave de Acceso, el sistema de alarma controlará que no haya Nodos activos, es decir que no hay puertas ni ventanas abiertas. En caso de estar alguna abierta, el teclado avisará al usuario de dicha situación y dará la opción de Forzar la alarma. Si hubiera más de un nodo activo se mostrara un listado, el cual se podrá recorrer con la tecla derecha. En caso de no querer Forzar se deberá salir de la opción presionando SALIR (botón superior izquierdo del teclado), cerrar la ventana o puerta y volver a armar la alarma. En caso de querer Forzar, se presionará la tecla ENTER con lo cual la alarma se armará ignorando a los nodos que se encontraron activos al momento del forzado. 109 NA036 – Alarma Antirrobo Inalámbrica ZigBee El panel mostrará en la pantalla un mensaje de confirmación indicando que la alarma se encuentra armada. Armado Presente Diferido utilizando el Menú: Acceder al Menú presionando la tecla ENTER. Recuerde que la alarma debe estar desarmada para poder ingresar al Menú. Buscar en el Menú la opción “Armar Presente” utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones de Menú. Con la opción “Armar Presente” seleccionada se presionar la tecla ENTER para acceder al submenú de armado. Buscar en el submenú la opción “Modo Diferido” utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones del submenú. Con la opción “Modo Diferido” seleccionada se presionar la tecla ENTER para confirmar la opción. El teclado solicitará una Clave de Acceso valida, la cual se ingresará utilizando las teclas numéricas. Al completar el ingreso de la clave el sistema de alarma realizará la comprobación de la existencia de dicha clave. Si la clave ingresada es errónea se solicitará nuevamente al usuario el ingreso de la clave. Al ingresar una clave errónea por tercera vez el sistema desencadenará una condición de alarma, haciendo sonar la sirena e informando la misma a la estación de monitoreo. Una vez ingresada correctamente la Clave de Acceso, el sistema de alarma controlará que no haya Nodos activos, es decir que no hay puertas ni ventanas abiertas. En caso de estar alguna abierta, el teclado avisará al usuario de dicha situación y dará la opción de Forzar la alarma. Si hubiera más de un nodo activo se mostrara un listado, el cual se podrá recorrer con la tecla derecha. En caso de no querer Forzar se deberá salir de la opción presionando SALIR (botón superior izquierdo del teclado), cerrar la ventana o puerta y volver a armar la alarma. En caso de querer Forzar, se presionará la tecla ENTER con lo cual la alarma se armará ignorando a los nodos que se encontraron activos al momento del forzado. El panel mostrará en la pantalla un mensaje de confirmación indicando que la alarma se encuentra armada. Armado Ausente utilizando la Tecla rápida AP: Presionar la tecla de inferior central rotulada como AP para el iniciar el Armado Presente. Recuerde que la alarma debe estar desarmada para aceptar un armado. El teclado solicitará una Clave de Acceso valida, la cual se ingresará utilizando las teclas numéricas. Al completar el ingreso de la clave el sistema de alarma realizará la comprobación de la existencia de dicha clave. 110 NA036 – Alarma Antirrobo Inalámbrica ZigBee Si la clave ingresada es errónea se solicitará nuevamente al usuario el ingreso de la clave. Al ingresar una clave errónea por tercera vez el sistema desencadenará una condición de alarma, haciendo sonar la sirena e informando la misma a la estación de monitoreo. Una vez ingresada correctamente la Clave de Acceso, el sistema de alarma controlará que no haya Nodos activos, es decir que no hay puertas ni ventanas abiertas. En caso de estar alguna abierta, el teclado avisará al usuario de dicha situación y dará la opción de Forzar la alarma. Si hubiera más de un nodo activo se mostrara un listado, el cual se podrá recorrer con la tecla derecha. En caso de no querer Forzar se deberá salir de la opción presionando SALIR (botón superior izquierdo del teclado), cerrar la ventana o puerta y volver a armar la alarma. En caso de querer Forzar, se presionará la tecla ENTER con lo cual la alarma se armará ignorando a los nodos que se encontraron activos al momento del forzado. El panel mostrará en la pantalla un mensaje de confirmación indicando que la alarma se encuentra armada. H.9. Desarmar El desarmado del sistema puede iniciarse en tres posibles situaciones: El sistema fue armado en modo Ausente o en modo Presente Diferido y se abre la puerta principal. En este caso se mostrar una cuenta regresiva indicando el tiempo que el usuario dispone para completar el desarmado antes de que se produzca una situación de alarma. El sistema fue armado en modo Presente Diferido o Presente Instantáneo y se desea desarmar el sistema. En este caso se mostrará en pantalla el mensaje indicando que la alarma esta armada. Por cualquier razón se produjo una situación de alarma y se desea terminar la misma. En este caso estará sonando la sirena. En cualquiera de los casos el desarmado se realiza utilizando la tecla rápida DD, siguiendo la secuencia que se describe a continuación: Presionar la tecla de inferior derecha rotulada como DD para el iniciar el Desarmado. Si el sistema no esta en una de las tres situaciones antes descriptas ignorará esta tecla. El teclado solicitará una Clave de Acceso valida, la cual se ingresará utilizando las teclas numéricas. Al completar el ingreso de la clave el sistema de alarma realizará la comprobación de la existencia de dicha clave. Si la clave ingresada es errónea se solicitará nuevamente al usuario el ingreso de la clave. Al ingresar una clave errónea por tercera vez el sistema desencadenará una condición de alarma, haciendo sonar la sirena e informando la misma a la estación de monitoreo. El panel mostrará en la pantalla un mensaje de confirmación indicando que la alarma se encuentra desarmada. Si el desarmado se produce durante una situación de alarma se dará por terminada la misma apagando la sirena. En cualquier caso se reportará el desarmado a la estación de monitoreo. 111 NA036 – Alarma Antirrobo Inalámbrica ZigBee H.10. Forzado de la Alarma El forzado de la alarma se produce cuando por ejemplo se quiere realizar el armado de la alarma y algún Nodo se halla activo, es decir, alguna puerta o ventana se halla abierta, y el usuario desea que dicha puerta o ventana quede abierta y armar aun así la alarma. En el momento de armar la alarma el sistema realiza un chequeo de los Nodos para verificar que ninguno se halle activo, si alguno estuviera activo, antes de armar la alarma el sistema le comunica al Usuario de dicha situación, mostrando un listado de todos los nodos que pueden estar activos en ese momento, para que éste cierre la puerta o ventana que se halla abierta, si es que lo desea. En caso contrario, tiene la opción de dejar abierta alguna puerta o ventana y para ello lo que realiza es el Forzado de la alarma. Esto consiste en Inhibir los Nodos correspondientes al listado de Nodos activos, es decir, no los considera en el chequeo de los Nodos cuando la alarma se arma. NOTA: La inhibición que se produce en este caso es Inhibición Temporal, es decir, al desarmarse la alarma los Nodos pertenecientes al Forzado se desinhibirán y volverán a formar parte del Sistema de Alarma. H.11. Inhibición de Nodos La inhibición de Nodos permite eliminar armar el sistema con uno o más nodos activos, eliminándolos del control de estado e impidiendo que los mismos provoquen una condición de alarma. Esta inhibición podrá ser temporal o permanente. Inhibición Temporal: esta inhibición deriva de un armado forzado, el cual automáticamente inhibe en forma temporal los Nodos activos al momento del armado. Esta inhibición tiene vigencia únicamente por un armado se elimina automáticamente en el siguiente desarmado del sistema. Inhibición Permanente: esta inhibición es solicitada explícitamente por el usuario a través del Menú y tiene duración indefinida. Por razones de seguridad antes de cada armado se recordará al usuario la existe de estos Nodos inhibidos, permitiendo la opción mantener o eliminar la inhibición. La desinhibición también podrá ser realizada utilizando una opción específica del Menú. H.12. Usuarios El sistema de alarma permite definir hasta diez Usuarios, permitiendo que cada uno disponga de una Clave de Acceso, una jerarquía, y una Clave Silenciosa destinada a desencadenar una alarma silenciosa en caso de asalta a mano armada. La siguiente tabla muestra la organización de la información de cada usuario. Número de Usuario 1 2 ……….. 10 H.12.1. Clave de Acceso ****** ****** ………… ****** Jerarquía Sup, Inf o Media Sup, Inf o Media ……….. Sup, Inf o Media Clave Silenciosa ****** ****** ………… ****** Número de Usuario Un Usuario se identifica en el sistema de alarma no por su Clave de Acceso sino por su número de Usuario, el cual se especifica durante el alta del mismo y debe ser un número del 1 al 10 que no haya sido utilizado previamente. Este Número es indispensable para que el Usuario de Jerarquía Superior pueda Eliminar Claves de dicho usuario en caso de olvido y así no ocupar lugar en la Tabla de Claves la cual tiene una cantidad la cantidad máxima de diez usuarios. Una vez alcanzada esta cantidad no se permitirá más el ingreso de Usuarios, es decir, no permitirá Agregar Claves. 112 NA036 – Alarma Antirrobo Inalámbrica ZigBee H.12.2. Claves de Acceso Las claves están formadas por números de 6 dígitos y cada vez que se agrega un Usuario se introduce la nueva clave desde el teclado numérico. Esta clave es la que permitirá al Usuario armar o desarmar el sistema. H.12.3. Jerarquía de Claves La Jerarquía de Claves se establece para que no todo Usuario realice cualquier operación sobre la alarma, es decir que restringe las opción del Menú diponibles. Por ejemplo, el personal encargado de la limpieza sólo necesitaría armar y desarmar la alarma y no ejecutar otras acciones sobre ella, como ser inhibir nodos, agregar claves, etc. Las Jerarquías definidas son las siguientes: Jerarquía Superior: Permite al Usuario realizar todo tipo de operación sobre la Alarma. Con el ingreso de su Clave puede ejecutar todas las opciones presentadas en el Menú del teclado. Sólo puede existir UNA SOLA Clave de Jerarquía Superior. También es importante destacar que es el único que podrá hacer que la Alarma entre en Modo Instalador (que sirve para la configuración de la Alarma), y también el único que podrá Agregar Claves de Acceso y Borrar todas las claves de Acceso que él desee. Por ejemplo: si un integrante se olvida la clave que posee, éste puede borrarla y volver a ingresarla pero sólo con la ayuda del Usuario cuya Clave sea de Jerarquía Superior. Jerarquía Media: Elimina tres opciones del Menú: Cambiar estado de la alarma a Modo Instalador, Borrar Claves de aquellos Usuarios que se olvidaron de la misma, y Agregar Claves de Acceso. El resto de opciones permanece disponible, permitiéndose operaciones como: Inhibir y Desinhibir Nodos, Cambiar claves, etc. Jerarquía Inferior: Permite realizar al Usuario sólo las operaciones de Armar y Desarmar la Alarma, lo que implica también realizar el Forzado de la misma. Ninguna otra opción del Menú estará disponible, por lo que no podrá realizar operaciones como: Inhibir Nodo, Desinhibir Nodos, Agregar Claves, Modificar Claves, Borrar Claves, ingresar al Modo Instalador, etc. Al dar de alta una clave la jerarquía se ingresará mediante un número del uno al tres según la siguiente tabla: Número a Ingresar 1 2 3 H.12.4. Nivel de Jerarquía Inferior Media Superior Clave Silenciosa La Clave Silenciosa permite simular el desarmado del sistema de alarma enviando en realidad un reporte al la estación de monitoreo que indica que el usuario esta siendo forzado a desarmar el sistema. Esto permite solicitar ayuda en caso de asalto a mano armada y/o toma de rehenes sin poner en peligro a los mismos. Al ingresar una Clave Silenciosa para Desarmar la alarma el sistema de alarma entra en un estado especial del sistema llamado donde se realiza un llamado a la Central pero no hace sonar la sirena en caso que se active algún Nodo. En este Modo no se desarma la alarma, pero las indicaciones en los paneles informan que la misma esta desarmada. En este Modo el teclado no estará bloqueado (se desbloquea al ingresar bien la clave, ya sea de acceso o silenciosa) permitiendo así el ingreso al Menú, y la selección de cualquiera de las opciones, las cuales no se tendrán en cuenta aun cuando se informe al usuario lo contrario, deforma tal que aun cuando el asaltante conozca el funcionamiento del sistema de alarma al detalle no pueda distinguir si el mismo esta en modo silencioso o desarmado realmente. La Clave Silenciosa no se define sino que esta relacionada con la Clave de Acceso, se tomando como la Clave Silenciosa como a la Clave de Acceso invertida. Por esta razón 113 NA036 – Alarma Antirrobo Inalámbrica ZigBee para evitar confusiones no esta permitido el así el ingreso de claves que resulten iguales al ser leídas desde la derecha o la izquierda. Para salir de este Modo Silencioso hay que desarmar la alarma utilizando una de Clave de Acceso valida. H.13. Funciones Avanzadas Cuando el sistema esta desarmado permite el ingreso al Menú presionando la tecla ENTER. A continuación se describen las opciones disponibles para la Clave de Acceso de la Jerarquía Superior, recordando que algunas de estas opciones no están disponibles para el resto de las jerarquías. En todos los casos es posible recorrer las opciones del Menú utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones de disponibles. De igual forma al presionar la tecla ENTER tomamos la opción seleccionada en ese momento, o si se trata de un submenú ingresamos al mismo, visualizando las opciones disponibles. En los siguientes párrafos se describen en detalle cada una de las opciones disponibles el Menú. H.13.1. Armar Ausente Esta opción ya se describió previamente y al presionar ENTER permite el armado del sistema en Modo Ausente. Al completar el armado de la alarma no se podrá ingresar al Menú hasta desarmar la misma. H.13.2. Armar Presente Esta opción ya se describió previamente y al presionar ENTER permite ingresar el submenú para seleccionar entre el modo de armado presente Las opciones para este submenú son las siguientes: MODO INSTANTÁNEO: Presionando ENTER en esta opción se producirá el armado de la alarma en este modo Presente Instantáneo, el cual no permite el ingreso o egreso de personas sin un desarmado previo. MODO DIFERIDO: Presionando ENTER en esta opción se producirá el armado de la alarma en este modo Presente Diferido, el cual permite el ingreso o egreso de personas por una zona diferida, otorgándole un tiempo de gracia para el desarmado después de la activación del sensor de puerta. H.13.3. Configuración Presionando ENTER en esta opción del Menú ingresamos a un submenú que nos permite cambiar distintas opciones de configuración del sistema: H.13.3.1. Agregar Clave de Acceso Al presionar ENTER en esta opción se inicia el alta de un nuevo Usuario. Para ello se pide el ingreso de la Clave de jerarquía superior. Solo se permite el ingreso de Nuevos Usuarios a la clave de Jerarquía Superior. No se permitirá el ingreso de claves de menor Jerarquía. Si al cabo de tres intentos no se puede completar el ingreso de la Clave de Jerarquía Superior en forma correcta se desencadenará una situación de alarma, haciendo sonar la sirena y reportando dicha situación a la estación de monitoreo. Una vez realizado el ingreso correcto de la clave y al presionar ENTER se solicita el ingreso de la nueva clave indicando cada digito ingresado con un asterisco. Una vez completada la misma y al presionar ENTER y se solicita la confirmación de la Clave ingresada. Al presionar ENTER nuevamente se verifica la coincidencia de las claves ingresadas, pidiendo repetir el ingreso en caso de error Si ambas coinciden se solicita el ingreso de un número del uno al diez que corresponderá al número de Usuario a agregar. Al presionar ENTER se verifica que 114 NA036 – Alarma Antirrobo Inalámbrica ZigBee el número ingresado corresponda a un lugar vacante y en caso de estar utilizado se solicita nuevamente el ingreso. Una vez ingresado el número de Usuario se pide el ingreso de un número del uno al tres para indicar la Jerarquía de Clave del nuevo Usuario, recordando que uno corresponde al menor nivel de acceso y tres al máximo. Al presionar ENTER el nuevo usuario es aceptado se muestra por la pantalla que la Clave fue agregada. Al presionar SALIR se retorna al Menú. Es importante recordar las condiciones que se deben cumplir para poder completar el alta de un nuevo Usuario No se pueden ingresar más de diez usuarios. La clave debe poseer 6 dígitos obligatoriamente, no se permiten menos dígitos ni tampoco más de ellos. Por cada Clave de Acceso generada se define automáticamente una Clave Silenciosa. No se permite el ingreso de Claves que sean iguales a leerlas desde la izquierda o desde la derecha a fin de evitar confusiones con la Clave Silenciosa asociada. H.13.3.2. Cambiar Clave de Acceso Al presionar ENTER en esta opción, se pide al Usuario el ingreso de una Clave de Acceso válida, la cual podrá ser de Jerarquía Superior o Media. Si al cabo de tres intentos no se puede completar el ingreso de la Clave de Jerarquía Superior o Media en forma correcta se desencadenará una situación de alarma, haciendo sonar la sirena y reportando dicha situación a la estación de monitoreo. Una vez completado el ingreso correcto de la Clave de Acceso, al presionar ENTER se solicita el ingreso de la Clave de Acceso que se desea modificar. Si al cabo de tres intentos no se puede completar el ingreso de la Clave de Jerarquía valida para modificar se desencadenará una situación de alarma, haciendo sonar la sirena y reportando dicha situación a la estación de monitoreo. Una vez completado el ingreso correcto de la Clave a modificar, al presionar ENTER se solicita el ingreso de la nueva Clave para el usuario al cual se le esta modificando la clave. Una vez completado el ingreso correcto de la nueva Clave, al presionar ENTER se solicita el nuevamente el ingreso de la nueva Clave par verificar que la misma se ingreso correctamente. Una vez completado el ingreso correcto de la nueva clave por segunda vez, al presionar ENTER y si ambas coinciden aparecerá en pantalla un mensaje indicando que la clave fue cambiada con éxito. Al presionar SALIR se retorna al Menú. H.13.3.3. Borrar Clave de Acceso Al presionar ENTER en esta opción se inicia la baja de un Usuario existente. Para ello se pide el ingreso de la Clave de jerarquía superior. Solo se permite el borrado de Usuarios a la clave de Jerarquía Superior. No se permitirá el ingreso de claves de menor Jerarquía. 115 NA036 – Alarma Antirrobo Inalámbrica ZigBee Si al cabo de tres intentos no se puede completar el ingreso de la Clave de Jerarquía Superior en forma correcta se desencadenará una situación de alarma, haciendo sonar la sirena y reportando dicha situación a la estación de monitoreo. Una vez realizado el ingreso correcto de la clave y al presionar ENTER se solicita el ingreso de un número del uno al diez, el cual corresponde al número del Usuario borrar. Al presionar ENTER se verifica si el usuario ingresado esta activo y en esta activo y se muestra un mensaje de confirmación indicando que se procederá a borrado del mismo. AL presionar ENTER se confirma el borrado, pudiendo cancelar el mismo presionando SALIR. No se podrá eliminar la clave de Jerarquía Superior, sólo se permitirá el Cambio de la misma, ya que si esto sucediera no se podría agregar Usuarios, ingresar al Modo Instalador ni Borrar Claves. H.13.3.4. Inhibir Nodo Al presionar ENTER en esta opción, se pide al Usuario el ingreso de una Clave de Acceso válida, la cual podrá ser de Jerarquía Superior o Media. Si al cabo de tres intentos no se puede completar el ingreso de la Clave de Jerarquía Superior o Media en forma correcta se desencadenará una situación de alarma, haciendo sonar la sirena y reportando dicha situación a la estación de monitoreo. Una vez realizado el ingreso correcto de la clave y al presionar ENTER se muestra una lista de los nodos definidos el sistema que no se hallan inhibidos, indicando nombre del Nodo y de la zona a la cual corresponde. Esta lista se podrá recorrer utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones de disponibles. Al presionar ENTER se mostrará un mensaje de confirmación indicando si se desea inhibir el Nodo seleccionado. AL presionar ENTER se confirma la inhibición, pudiendo cancelar la misma presionando SALIR. En ambos casos se retorna a la lista de Nodos para permitir una nueva selección A presionar SALIR en la lista de Nodos se retorna al Menú. H.13.3.5. Desinhibir Nodo Al presionar ENTER en esta opción, se pide al Usuario el ingreso de una Clave de Acceso válida, la cual podrá ser de Jerarquía Superior o Media. Si al cabo de tres intentos no se puede completar el ingreso de la Clave de Jerarquía Superior o Media en forma correcta se desencadenará una situación de alarma, haciendo sonar la sirena y reportando dicha situación a la estación de monitoreo. Una vez realizado el ingreso correcto de la clave y al presionar ENTER se muestra una lista de los nodos definidos el sistema que se hallan inhibidos, indicando el nombre del Nodo y de la zona a la cual corresponde. Esta lista podrá recorrer utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones de disponibles. Al presionar ENTER se mostrará un mensaje de confirmación indicando si se desea desinhibir el Nodo seleccionado. 116 NA036 – Alarma Antirrobo Inalámbrica ZigBee Al presionar ENTER se confirma la desinhibición, pudiendo cancelar la misma presionando SALIR. En ambos casos se retorna a la lista de Nodos para permitir una nueva selección Al presionar SALIR en la lista de Nodos se retorna al Menú. H.13.4. Diagnósticos Presionando ENTER en esta opción del Menú ingresamos a un submenú que nos permite distintas pruebas de diagnostico para verificar el correcto funcionamiento del sistema: H.13.4.1. Probar Sirena Al presionar ENTER en esta opción lo que se realiza es una prueba de la sirena haciendo sonar la misma durante 5 segundos a fin de corroborar el correcto funcionamiento de la misma. Pasados esos 5 segundos vuelve automáticamente al submenú. Al presionar SALIR se retorna al Menú. H.13.4.2. Probar Línea Al presionar ENTER en esta opción se realiza es una prueba de la Línea Telefónica. El resultado de la prueba en informado al usuario mediante un mensaje en la pantalla. Al presionar ENTER o SALIR el mensaje es borrado y se retorna al submenú. H.13.5. Ver Estado de Sensores Al presionar ENTER en esta opción, se muestra una lista de los nodos definidos el sistema que no se hallan inhibidos, indicando el nombre del Nodo y de la zona a la cual corresponde, el estado de la batería del mismo y si se halla activo o inactivo. Esta lista se podrá recorrer utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones de disponibles. No se puede realizar ninguna acción sobre esta lista, la cual es meramente informativa y solo sirve para verificar el estado de los nodos. A presionar SALIR en la lista de Nodos se retorna al Menú. H.13.6. Modo Instalador Al presionar ENTER en esta opción se inicia el alta de un nuevo Usuario. Para ello se pide el ingreso de la Clave de jerarquía superior. Solo se permite el ingreso en Modo Instalador a la clave de Jerarquía Superior. No se permitirá el ingreso de claves de menor Jerarquía. Si al cabo de tres intentos no se puede completar el ingreso de la Clave de Jerarquía Superior o Media en forma correcta se desencadenará una situación de alarma, haciendo sonar la sirena y reportando dicha situación a la estación de monitoreo. Una vez realizado el ingreso correcto de la clave y al presionar ENTER se ingresa al Modo Instalador, el cual permite la reconfiguración de todo el sistema mediante una computadora personal. Al entrar en Modo Instalador el teclado retorna a la pantalla inicial pero permanece bloqueado ignorando cualquier ingreso del teclado hasta tanto se termina la configuración y retorne al modo de operación normal. Solo se puede salir del Modo Instalador mediante un comando desde la computadora que se halla configurando el sistema. 117 NA036 – Alarma Antirrobo Inalámbrica ZigBee H.13.7. Historial Al presionar ENTER, se muestra por pantalla un listado de todos los sucesos ocurridos recientemente en el Sistema de Alarma, indicando la fecha y hora en que ocurrió el mismo y un código numérico que describe el suceso Esta lista se podrá recorrer utilizando la tecla derecha para avanzar o la tecla izquierda para retroceder la selección en entre las opciones de disponibles. No se puede realizar ninguna acción sobre esta lista, la cual es meramente informativa. A presionar SALIR se retorna al Menú. H.14. Mensajes La pantalla del teclado puede mostrar una serie de mensajes a fin de informar del estado del sistema de alarma como así también para requerir la intervención de usuario. Los mensajes que pueden verse en son los siguientes: “Batería Baja”: Informa al usuario que un Nodo tiene batería baja y que la misma debe ser cambiada. Para facilitar la identificación del Nodo se muestra el nombre del nodo y el nombre la zona, ambos definidos por el instalador durante la configuración del sistema. Al mostrar este aviso existe la posibilidad inmediata de inhibir al Nodo con batería baja a fin de evitar falsas alarmas. Para completar la inhibición basta con presionar la tecla ENTER que corresponde a “inhibir”. Esta inhibición será Permanente. En caso de ser el teclado el Nodo con batería baja, el mismo entrada en modo bajo consumo apagando las luces a fin de maximizar el funcionamiento del mismo. “Nodo no Responde”: Informa que no se esta recibiendo información de estado de un Nodo, lo cual implica que el mismo no está funcionando adecuadamente. Para facilitar la identificación del Nodo se muestra el nombre del nodo y el nombre la zona, ambos definidos por el instalador durante la configuración del sistema. Adicionalmente al mostrar este mensaje se emite una señal sonora en forma periódica para llamar la atención del usuario y que este note el problema lo antes posible. Esto mensaje solo puede mostrarse cuando la alarma está desarmada, ya que si un Nodo no responde cuando está armada generará una situación de alarma. Al aparecer el mensaje el usuario puede presionar la tecla SALIR, pero el mensaje volverá a aparecer en caso de que el Nodo siga sin contestar. Para eliminar definitivamente el mensaje se deberá inhibir el Nodo en forma Permanente. “Existencia de Nodo Inhibidos Permanentes”: En caso de existir Nodos con una inhibición permanente se recuerda al usuario dicha situación antes de cada armado de la alarma. Al mostrar este aviso existe la posibilidad inmediata de desinhibir los Nodos que considere necesario. En caso de querer mantener las inhibiciones basta presionar SALIR para continuar con el armado de la alarma. “Modo Batería”: Cuando se produce un corte de la energía se comunica al usuario que uno o más paneles principales está trabajando con batería de respaldo y que de continuar esta situación por un tiempo prolongado el sistema puede dejar de funcionar en por el agotamiento de dicha batería. Este mensaje es puramente informativo y presionando SALIR se retorna a la pantalla inicial. 118