ESCUELA DE INGENIERÍA Y ARQUITECTURA Dpto. Ingeniería Eléctrica “SISTEMA DE SEGURIDAD PARA LA SUPERVISIÓN DE VIVIENDAS MEDIANTE MICROCONTROLADOR PIC Y RED SMS” PROYECTO FIN DE CARRERA INGENIERÍA TÉCNICA INDUSTRIAL: ELECTRÓNICA INDUSTRIAL AUTOR: Rubén Morón Uche DIRECTOR DE PROYECTO: Pedro Abad Martín CONVOCATORIA: Septiembre 2013
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS RESUMEN En el presente documento se justifica el trabajo que se ha ido efectuando durante la realización del proyecto titulado SISTEMA DE SEGURIDAD PARA LA SUPERVISION DE VIVIENDAS MEDIANTE MICROCONTROLADOR PIC Y RED SMS. Este prototipo de control domótico, que brinda un sistema de seguridad y un simulador de presencia mediante un sistema de comunicación vía SMS, está basado en los pilares básicos de la domótica como son: seguridad, comunicaciones, confort, bienestar y control energético. Todo esto hace que este proyecto sea de gran interés para muchos constructores para mejorar y elevar de nivel sus obras. El primer capítulo del proyecto da una breve descripción de lo que significa domótica, dando características generales tanto del simulador de presencia como del panel de control a ser diseñado e implementado. El segundo capítulo muestra los diferentes tipos de sistemas de comunicación que han existido e indica el módem que se escogería para la realización de este proyecto, dando sus características. En el tercer capítulo se muestra todo el diseño del hardware del sistema, indicando paso a paso los estudios realizados y la selección de elementos para la elaboración del mismo. El software del programa principal se encuentra descrito de una manera concisa y representado a través de diagramas de flujo y sus partes de código correspondientes. El cuarto capítulo indica las pruebas y resultados realizados al proyecto, con sus respectivas observaciones. En el quinto capítulo se encuentran las conclusiones y recomendaciones se que han podido extraer sobre la realización de este proyecto y algunos planteamientos para posibles líneas futuras. En el sexto capítulo se detallan las siglas, abreviaciones y términos utilizados a lo largo de todo el documento. En el séptimo capítulo se detallan los trabajos de normalización de la domótica que se están realizando tanto en organismos europeos, internacionales y nacionales. Además, se encuentran los anexos, que incluyen el código completo en lenguaje C del programa, un manual de usuario del prototipo y los datasheet de los componentes del sistema y de los sensores elegidos que por problemas económicos no se han podido comprar. 2 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS ÍNDICE CAPÍTULO I. INTRODUCCIÓN……………………………………………………..6 1.1 SISTEMAS DOMÓTICOS………………………………………………………..6 1.1.1 Características de los sistemas domóticos…………………………………6 1.1.2 Tipos de sistemas de control…………………………………………………8 1.1.3 Descripción de un sistema domótico……………………………………….10 1.1.4 Valoración de sistemas domóticos…………………………………………15 1.2 DESCRIPCIÓN DEL PROYECTO…………………………………………….17 1.2.1 Características de los sistemas de alarma………………………………..17 1.2.2 Características de los simuladores de presencia………………………...17 1.3 CARACTERÍSTICAS GENERALES DEL SISTEMA………………………...17 CAPÍTULO II. SISTEMAS DE COMUNICACIÓN………………………………..19 2.1 SISTEMAS MOVILES CELULARES………………………………………….19 2.1.1 Sistemas GSM………………………………………………………………..21 2.2 MODEMS DE DATOS………………………………………………………….24 2.2.1 Funcionamiento………………………………………………………….…...24 2.2.2 Estándares de modulación………………………………………….………24 2.2.3 Tipos de modulación………………………………………………………...25 2.2.4 Comandos Hayes………………………………………………………….…26 2.3 MODEM GSM Y PROGRAMACIÓN DEL MICROCONTROLADOR……..28 2.3.1 Módem GSM………………………………………………………………….28 2.3.2 Programación del microcontrolador………………………………………..29 3 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPÍTULO III. DISEÑO DEL HARDWARE DEL SISTEMA……………………33 3.1 DESARROLLO DE ESPECIFICACIONES…………………………………...33 3.1.1 Medios de transmisión………………………………………………………33 3.1.2 Elementos…………………………………………………………………….34 3.2 ESTUDIO DE LOS PLANOS DE LA VIVIENDA…………………………….49 3.2.1 Determinación del número de circuitos de iluminación………….………50 3.2.2 Determinación de la ubicación de sensores de movimiento y contactos magnéticos……………………………………………………………………………51 3.2.3 Estudio de planos eléctricos y otras instalaciones de interés a instalar en la vivienda……………………………………………………………………………..53 3.3. DISEÑO DEL HARDWARE DE CONTROL………………………………….54 3.3.1 Herramientas de desarrollo…………………………………………………54 3.3.2 Requerimientos de desarrollo………………………………………………56 3.4 PROGRAMACIÓN DEL CONTROLADOR…………………………………...56 3.4.1 Lógica de programación……………………………………………………59 3.4.2 Hardware de programación………………………………………………..77 CAPITULO IV. PRUEBAS AL SISTEMA Y RESULTADOS……………….…..79 4.1 PRUEBAS AL SISTEMA………………………………………………….….....79 4.2 RESULTADOS…………………………………………………………….….....79 CAPITULO V. CONCLUSIONES, RECOMENDACIONES Y FUTUROS DESARROLLOS…………………………………………………………….……....85 5.1 CONCLUSIONES……………………………………………………….……....85 5.2 RECOMENDACIONES……………………………………………….….……..85 5.3 FUTUROS DESARROLLOS……………………..…………………………….86 4 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPITULO VI. DEFINICIONES Y ABREVIATURAS……………………………87 6.1 DEFINICIONES………………………………………………………………….87 6.2 ABREVIATURAS……………………………………………………………....100 CAPITULO VII. NORMATIVA…………………………………………………….101 7.1 CENELEC……………………………………………………………………....101 7.1.1 Comité técnico 205………………………………………………………...101 7.1.2 Normas publicadas…………………………………………………….…...101 7.2 CEN……………………………………………………………………….……..102 7.2.1 Comité técnico 247………………………………………………….……...102 7.2.2 Normas publicadas……………………………………………….……….102 7.3 ISO/IEC………………………………………………………………….………102 7.3.1 Subcomité 25………………………………………………….…………...102 7.3.2 Normas publicadas………………………………………….…………….102 7.4 AENOR………………………………………………………………………….103 7.4.1 Subcomité 205…………………………………………………….……….103 7.4.2 Norma EA 0026…………………………………………………….……...103 CAPITULO VIII. BIBLIOGRAFÍA…………………………………………………104 8.1 Páginas web……………………………………………………………….104 8.2 Libros……………………………………………………………………….105 CAPITULO IX. ANEXOS………………………………………….……………….106 9.1 Código del programa……………………………………………………….106 9.2 Manual de usuario del sistema de alarma……………………………….117 9.3 Datasheets y catálogos…………………………………………………….124 5 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPÍTULO I INTRODUCCIÓN 1.1 SISTEMAS DOMÓTICOS 1.1.1 Características de los sistemas domóticos La domótica se conoce y se aplica desde los años 80 y su desarrollo más importante ha tenido lugar en países como Estados Unidos y Japón, aunque de manera diferente. En los últimos años a esta corriente se han unido países europeos y especialmente los nórdicos, impulsados por las nuevas tecnologías en comunicaciones. En países en vías de desarrollo, hasta ahora, la situación ha sido bastante diferente y, aunque también se conoce desde hace unos años, nunca ha acabado de alzar el vuelo. El término domótica proviene de la unión de las palabras domus (que significa casa en latín) y robótica (de robota, que significa esclavo, sirviente en checo). Se entiende por domótica al conjunto de sistemas capaces de automatizar una vivienda, aportando servicios de gestión energética, seguridad, bienestar y comunicación, y que pueden estar integrados por medio de redes interiores y exteriores de comunicación, cableadas o inalámbricas, y cuyo control goza de cierta ubicuidad, desde dentro y fuera del hogar. Se podría definir como la integración de la tecnología en el diseño inteligente de un recinto. Una de las funciones de la Domótica es la de crear un entorno más amigable, según sean las capacidades del individuo. Además de crear diversos sistemas que mejoran la calidad de vida, da la posibilidad de su monitorización y control a distancia, gracias al bus domótico. De esta manera, se habla de un control local que permite estar al tanto del funcionamiento de la gran parte de los servicios que se tienen al alcance de la mano (como pueden ser: la temperatura del termostato, en que ciclo se encuentra la lavadora, el estado del horno microondas entre otros) y a su vez modificarlos (cambiar la temperatura, acelerar el proceso de lavado). Pero por otro lado también existe un control remoto, mediante el cual se puede obtener información, y modificarla si es requerido, mediante otras interfaces, y controlar los dispositivos también desde interfaces diferentes. Para que un sistema pueda ser considerado inteligente ha de incorporar sistemas basados en las Nuevas Tecnologías de la Información (NTI). El uso de las NTI en la vivienda genera nuevas aplicaciones y tendencias basadas en la capacidad de proceso de información y en la integración y comunicación 6 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS entre los equipos e instalaciones. Así concebida, una vivienda inteligente puede ofrecer una amplia gama de aplicaciones en áreas tales como: • Monitorización de salud • Seguridad • Gestión de la energía • Automatización de tareas domésticas • Formación, cultura y entretenimiento • Teletrabajo • Operación y mantenimiento de las instalaciones Estas aplicaciones, junto con las consecuencias inmediatas emanadas de su uso, son las siguientes: • Control remoto desde dentro de la vivienda: A través de un esquema de comunicación con los distintos equipos (mando a distancia, bus de comunicación, etc.). Reduce la necesidad de moverse dentro de la vivienda, este hecho puede ser particularmente importante en el caso de personas de la tercera edad o minusválidos. • Control remoto desde fuera de la vivienda: Presupone un cambio en los horarios en los que se realizan las tareas domésticas (por ejemplo: la posibilidad de que el usuario pueda activar la cocina desde el exterior de su vivienda, implica que previamente ha de preparar los alimentos) y como consecuencia permite al usuario un mejor aprovechamiento de su tiempo. • Programabilidad: El hecho de que los sistemas de la vivienda se pueden programar ya sea para que realicen ciertas funciones con sólo tocar un botón o que las lleven a cabo en función de otras condiciones del entorno (hora, temperatura interior o exterior) produce un aumento del confort y un ahorro de tiempo. • Acceso a servicios externos: Servicios de información, telecompra, telebanco. Para ciertos colectivos estos servicios pueden ser de gran utilidad ya que producen un ahorro de tiempo. La esencia que debe caracterizar a todos los sistemas domóticos, es la INTEGRACIÓN. Asimismo, todas las mejoras, ventajas y posibilidades se pueden agrupar en torno a cuatro grupos o pilares básicos, que son los siguientes: 1. Seguridad o protección patrimonial 2. Control energético 3. Confort, bienestar y calidad de vida 4. Unificación de las comunicaciones 7 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS En el pilar de la protección patrimonial se encuentran: • Simulación de presencia. • Detección de conatos de incendio, fugas de gas, escapes de agua. • Alerta médica. Teleasistencia. • Cerramiento de persianas puntual y seguro. • Acceso a cámaras IP. En el pilar de la eficiencia y ahorro energético se encuentran: • Climatización: programación y zonificación. • Gestión eléctrica. • Racionalización de cargas eléctricas: desconexión de equipos de uso no prioritario en función del consumo eléctrico en un momento dado. Reduce la potencia contratada. • Gestión de tarifas, derivando el funcionamiento de algunos aparatos a horas de tarifa reducida. • Uso de energías renovables. En el pilar del nivel de confort, bienestar y calidad de vida se encuentran: • Iluminación. • Apagado general de todas las luces de la vivienda. • Automatización del apagado/ encendido en cada punto de luz. • Regulación de la iluminación según el nivel de luminosidad ambiente. • Automatización de todos los distintos sistemas, instalaciones y equipos dotándolos de control eficiente y de fácil manejo. • Integración del portero al teléfono, o del videoportero al televisor. • Control vía Internet. • Gestión multimedia y del ocio electrónico. • Generación de macros y programas de forma sencilla por parte del usuario. En el pilar de la unificación de las comunicaciones se encuentran: • Ubicuidad en el control tanto externo como interno, control remoto desde Internet, PC, mandos inalámbricos. • Transmisión de alarmas. • Intercomunicaciones. 1.1.2 Tipos de sistemas de control 1.1.2.1 Sistema de lazo abierto Son los sistemas en los cuales la salida no afecta la acción de control. En un sistema en lazo abierto no se mide la salida ni se realimenta para compararla con la entrada. 8 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS En cualquier sistema de control en lazo abierto, la salida no se compara con la entrada de referencia. Por tanto a cada entrada de referencia le corresponde una condición operativa fija; como resultado, la precisión del sistema depende de la calibración. Ante la presencia de perturbaciones, un sistema de control en lazo abierto no realiza la tarea deseada. En la práctica, el control en lazo abierto sólo se utiliza si se conoce la relación entre la entrada y la salida y si no hay perturbaciones internas ni externas. Es evidente que estos sistemas no son de control realimentado. Ilustración 1. Sistema lazo abierto 1.1.2.2 Sistema de lazo cerrado Los sistemas de control realimentados se denominan también sistemas de control de lazo cerrado. En la práctica, los términos control realimentado y control en lazo cerrado se usan indistintamente. En un sistema de control en lazo cerrado, se alimenta al controlador mediante la señal de error de actuación, que es la diferencia entre la señal de entrada y la salida de realimentación (que puede ser la señal de salida misma o una función de la señal de salida y sus derivadas o/y integrales) a fin de reducir el error y llevar la salida del sistema a un valor conveniente. El término control en lazo cerrado siempre implica el uso de una acción de control realimentando para reducir el error del sistema. Ilustración 2. Sistema lazo cerrado 9 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 1.1.4.2 Potencia del sistema Para evaluar la potencia de un sistema se han de tener en cuenta las siguientes variables: - Facilidad de ampliación (FA). [0, 10] - Facilidad de incorporar nuevas funciones (INF). [0...10] - Velocidad de transmisión (VT). [0...10] - Protocolo estándar (PE). [0, 5] - Capacidad de multimedio (CM). [0...5] - Preinstalación compatible con la instalación tradicional (PC). [0, 10] Las variables con valores [0, X] sólo pueden tomar los valores ‘0’ o con ‘X’. Las variables con valores [0...X] pueden tomar los valores de ‘0’ a ‘10’. Una vez ponderadas las variables anteriores se insertarían en la siguiente ecuación: Potencia del sistema = FA + INF + VT + PE + CM + PC Dando un valor que a medida que sea más alto el sistema es más potente. 1.1.4.3 Fiabilidad del sistema Para evaluar la fiabilidad de un sistema se han de tener en cuenta las siguientes variables: - Control distribuido (CD). [0, 5, 10] - Fuentes de Alimentación redundantes (FAR). [0, 10] Las variables con valores [0, X] sólo pueden tomar los valores ‘0’ o con ‘X’. Las variables con valores [0...X] pueden tomar los valores de ‘0’ a ‘10’. Una vez ponderadas las variables anteriores se insertarían en la siguiente ecuación: Fiabilidad del sistema = CD + FAR Dando un valor que a medida que sea más alto el sistema es más fiable. 16 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 1.2 DESCRIPCIÓN DEL PROYECTO 1.2.1 Características de los sistemas de alarma Los sistemas de alarma consisten en una red de sensores distribuidos por una vivienda, instalación,… conectados a un panel de control central que los controla y responde con un sistema de alarma cuando alguno de los sensores detecta la presencia de algún intruso. El panel de control está programado con un sistema de contraseñas grabadas en la memoria EEPROM del microcontrolador para que después de un número determinado de intentos erróneos de desactivar la alarma, se active la sirena durante un tiempo determinado. 1.2.2 Características de los simuladores de presencia Los simuladores de presencia consisten en encender y apagar luces y/o electrodomésticos dentro del hogar en horarios pre programados o aleatorios, simulando que el lugar está realmente habitado cuando no hay residentes en el mismo. El encendido de las luces se realiza únicamente en la noche por un tiempo predeterminado, es decir que se programa el encendido y apagado de las mismas para así dar apariencia de que realmente alguien se encuentra en la vivienda. Este concepto brinda mayor seguridad al hogar, evitando que posibles intrusos opten por irrumpir en el mismo ya que tiene la apariencia de estar habitado. En este caso solo procederemos al encendido de luces. 1.3 CARACTERÍSTICAS GENERALES DEL PROYECTO El sistema a desarrollar comprende básicamente de dos servicios; el primero es un sistema de alarma y el segundo un simulador de presencia. Tanto el sistema de alarma como el simulador de presencia están pensados para la seguridad del hogar, teniendo en cuenta que son sistemas preventivos, haciendo que las personas que habitan en el mismo se sientan tranquilos al momento de abandonar su vivienda, ya sea por trabajo, viaje o cualquier otro motivo. Lo que hace que este sistema se base en el ámbito de la protección patrimonial. El sistema de alarma, mediante la red de sensores de movimiento, de contactos magnéticos en puertas y ventanas y el panel de control, previene la entrada a la vivienda de posibles intrusos cuando los usuarios no están en ella. El panel de control actuará, a través de su sistema de claves, en caso de que los intrusos quisieran entrar a la vivienda desactivando la alarma desde el 17 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS panel de control. El sistema está programado para que después de tres intentos erróneos de ingreso de la clave de seguridad se active la alarma. Mientras que los contactos magnéticos detectarán la entrada en la vivienda por alguna de las puertas o ventanas y los sensores de movimiento la presencia de intrusos en la casa en caso de que el panel de control o los contactos magnéticos no hayan sido efectivos. Por otra parte, el simulador de presencia, como su nombre indica, permite simular la presencia de usuarios en una vivienda mediante la activación de luces durante un determinado horario. Este prototipo es diseñado mediante el uso de un controlador, el cual actúa con las señales de entrada de los distintos sensores y manipula los diferentes dispositivos electrónicos a encender. El sistema se basa en soporte metálico, lo que quiere decir que cada sensor, actuador, panel de control, entre otros, es cableado hacia el panel de control, teniendo cada dispositivo su propio cableado. También la conexión hacia el panel se podría hacer de manera inalámbrica mediante diversos protocolos como posteriormente explicaré. La activación del sistema de alarma se realiza mediante el ingreso de una clave personal en el panel de control. Cuando se activa por primera vez se usa una clave por defecto, la cual se puede cambiar por otra que el usuario desee en cualquier momento. En el caso de que saltara la alarma se encendería una sirena y al usuario le llegaría un SMS avisándole de este hecho. Por motivos económicos y logísticos no ha sido posible comprar los sensores y montarlos en una vivienda o instalación. Por lo que se he optado por simular los sensores con un interruptor y simular la sirena y las luminarias de la vivienda con diodos LED. 18 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPÍTULO II SISTEMAS DE COMUNICACIÓN En el presente capítulo se analizarán los distintos tipos de módems, ya que con éste dispositivo se realizará la comunicación entre el microcontrolador y el usuario. Además se tratarán las tecnologías móviles celulares, debido a que se podría utilizar un teléfono móvil como módem para la realización del proyecto. Por último se muestra el módem GSM que elegiría para este proyecto y un ejemplo de lo que podría ser una comunicación entre el microcontrolador y un teléfono móvil en caso de que se produjera una alarma. 2.1. SISTEMAS MÓVILES CELULARES A los sistemas móviles celulares se los puede dividir en tres distintas generaciones, teniendo cada una diferentes características y protocolos. Estas generaciones son las siguientes: Primera generación (1G) Es la más antigua, también conocida como TACS (Total Access Communications System), y engloba a todas aquellas tecnologías de comunicaciones móviles analógicas. El sistema TACS es un sistema de comunicaciones para telefonía móvil celular dúplex en la banda de 900 MHz, con capacidad para transmitir voz pero no datos. Dado que el estándar TACS sólo define el protocolo de acceso radio entre una estación móvil y su correspondiente estación base, y no cubre aspectos relativos a la gestión de la movilidad, surgieron toda una serie de estándares diferentes en diversos países: NTT-MTS (Japón), MNT (Escandinavia) y C450 (Alemania), con los correspondientes problemas de incompatibilidades. En la actualidad esta generación está en desuso y pronto se la dejará de utilizar definitivamente. Segunda generación (2G) Las limitaciones de la primera generación de telefonía móvil condujeron al desarrollo del sistema GSM (Global System for Mobile Communications). GSM es una tecnología digital cuya primera funcionalidad es la transmisión de voz, pero que también permite la transmisión de datos a baja velocidad: 9,6 kbit/s. Esta velocidad es baja pero permite el servicio de envío de mensajes cortos (SMS), superando con creces las mejores expectativas que podían imaginar los operadores. El sistema europeo GSM opera en torno a los 900 MHz, si bien surgió también una variante conocida como DCS (Digital Cellular System) que trabaja a 1800 MHz y cuyo objetivo es proporcionar mayor capacidad en zonas urbanas. A diferencia del sistema TACS, GSM define un sistema completo que incluye no sólo la interfaz radio, sino también una 19 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS completa arquitectura de red, lo que permite el desarrollo de multitud de nuevos servicios sobre el estándar GSM. Segunda generación y media (2.5G) Aquí se incluyen todas aquellas tecnologías de comunicaciones móviles digitales que permiten una mayor capacidad de transmisión de datos y que surgieron como paso previo a las tecnologías 3G. Una de estas tecnologías 2.5G es GPRS (General Packet Radio System), basada en la transmisión de paquetes y donde los canales de comunicación se comparten entre los distintos usuarios de forma dinámica. La velocidad teórica máxima que puede alcanzar GPRS es de 171,2 kbit/s. Las principales ventajas que aporta GPRS respecto a GSM son, además de una mayor velocidad de transmisión, la conexión permanente y la tarificación por tráfico, convirtiéndolo en el portador ideal para los servicios WAP (Wireless Application Protocol), el acceso a Internet (web browsing, ftp, e-mail) y el acceso a intranets de empresas. Por otro lado, el HSCSD (High Speed Circuit Switched Data) es una especificación de la fase 2+ de GSM homologada por el ETSI. Con esta tecnología, el número de canales equivalentes de GSM utilizados en cada instante por una comunicación de datos es variable, permitiendo velocidades de transmisión de hasta 57,6 kbit/s. La ventaja de HSCSD es que la inversión para ser implantado es mínima, aunque tiene como desventaja un mayor coste para los usuarios, pues pagan por el uso de cada canal. Por último, la tecnología EDGE (Enhanced Data Rates for Global Evolution) es otro de los desarrollos de las redes GSM, permitiendo teóricamente velocidades de datos de hasta 384 kbit/s. Se trata de una tecnología que mejora el ancho de banda de la transmisión de los datos en GSM y GPRS. Tercera generación (3G) Las tecnologías 3G se encuentran contenidas dentro del IMT-2000 (International Mobile Telecommunications-2000) de la ITU, el cual puede considerarse como la guía que marca los puntos en común que deben cumplirse para conseguir el objetivo de la itinerancia global, es decir, que un terminal de usuario de 3G pueda comunicarse con cualquier red 3G del mundo. Los servicios que ofrecen las tecnologías 3G son básicamente: acceso a Internet, servicios de banda ancha, roaming internacional e interoperabilidad. Pero fundamentalmente, estos sistemas permiten el desarrollo de entornos multimedia para la transmisión de vídeo e imágenes en tiempo real, fomentando la aparición de nuevas aplicaciones y servicios tales como videoconferencia o comercio electrónico. 20 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Criterio Primera Generación Segunda Generación Tercera Generación Servicios Voz Voz y mensajería corta Voz y datos Calidad de servicio (QoS) Baja Alta Alta Nivel estandarización Bajo Fuerte Fuerte Velocidad de transmisión Baja Baja Alta Tipo de conmutación Circuitos Circuitos Paquetes (IP) Tabla 1. Comparativa entre diferentes generaciones de servicios móviles 2.1.1. Sistemas GSM El sistema de comunicaciones móviles GSM (Global System for Mobile Communications) es un sistema ampliamente utilizado que representa el estándar europeo de comunicaciones móviles de segunda generación. Aunque el enorme incremento en el número de usuarios de comunicaciones móviles ha venido de la mano de este sistema, todavía existe cierta preocupación por dos aspectos fundamentales; esto es, la privacidad y la autenticación, que son la pieza fundamental en la seguridad de las comunicaciones, pero que en el caso de GSM se ha demostrado poco robusta con respecto a lo indicado anteriormente. A pesar de ello, la considerable mejora en la calidad del servicio ofrecido a los usuarios y el abaratamiento de los costes de los terminales no ha impedido la masiva utilización del sistema. GSM es un sistema de conmutación de circuitos, diseñado originalmente para voz al que posteriormente se le adicionaron algunos servicios de datos: servicio de mensajes cortos, un servicio de entrega de mensajes de texto de hasta 160 caracteres y un servicio de datos GSM, que permite una tasa de transferencia a 2.4, 4.8 y 9.6 kbp/s. En España el sistema GSM tiene frecuencias reservadas en las bandas de 900 y 1800 MHz Utiliza la división de frecuencia para obtener comunicación full-dúplex, con dos portadoras separadas 45 MHz entre sí para ambos sentidos de transmisión por canal. Dichas portadoras se encuentran en el rango entre 890 y 915 y 1710 y 1785 MHz para el enlace ascendente entre móvil y base, y entre 935 y 960 y 1805 y 1880 para un enlace descendente entre base y móvil. 21 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS La infraestructura proporcionada por la red GSM le permite la prestación de los siguientes servicios: • Localización de los terminales. • Autentificación y cifrado. • Establecimiento y liberación de llamadas de voz, datos y fax entre otros tipos. • Transmisión de mensajes cortos. • Tarificación. • Itinerancia de las llamadas al cambiar de estación controladora. • Servicios avanzados como el desvío de llamadas, o el grupo cerrado de usuarios. Por otro lado, GPRS coexiste con GSM, compartiendo gran parte de la infraestructura desplegada en el mismo, pero ofreciendo al usuario un servicio portador más eficiente para las comunicaciones de datos, especialmente en el caso de los servicios de acceso a redes IP como Internet. La arquitectura del sistema se compone de cuatro bloques o subsistemas que engloban el conjunto de elementos de la jerarquía del sistema. Cada uno de estos subsistemas desempeña funciones específicas para ofrecer el servicio de telefonía móvil al usuario final. Estos son: • Estación móvil (MS) • Estación base (BSS) • Subsistema de conmutación y de red (NSS) • Subsistema de operación y mantenimiento (OMC) Ilustración 4. Arquitectura del sistema GSM 22 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS La estación móvil comprende todos los elementos utilizados por el abonado del servicio. La estación base engloba los elementos que desempeñan las funciones de interconexión entre la radio con la estación móvil. El subsistema de conmutación y de red realiza las operaciones de interconexión con otras redes de telefonía y de gestión de la información del abonado. Finalmente el subsistema de operación y mantenimiento se encarga de supervisar el funcionamiento del resto de bloques. El módem telefónico posee dos modos de funcionamiento: • Modo comando: Es cuando el módem responde a los comandos que le envía la terminal local, es decir, que la información que recibe el módem la procesa sin transmitirla por la línea y le envía su respuesta a la terminal. En este modo es posible configurar el módem o realizar operaciones de marcado y conexión. Antes de que se pueda enviar un comando al módem, este debe estar en el presente modo. Ilustración 5. Modo comando • Modo en línea: Es cuando el módem se conecta con otro. Aquí, cualquier información que envíe el terminal local al módem será transmitida al módem remoto. En este caso el módem no procesa ningún tipo de información y simplemente la transmite a través de la línea. Lo que si puede hacer es añadir a los datos información adicional para la corrección de errores y verificar si los datos que recibe del otro módem no han sido adulterados. Ilustración 6. Modo en línea 23 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 2.2. MODEMS DE DATOS Un módem es un equipo que sirve para modular y demodular (en amplitud, frecuencia, fase u otro sistema) una señal llamada portadora mediante otra señal de entrada llamada moduladora. 2.2.1. Funcionamiento El modulador emite una señal denominada portadora, que, generalmente, se trata de una simple señal eléctrica sinusoidal de mucha mayor frecuencia que la señal moduladora. La señal moduladora constituye la información que se prepara para una transmisión (un módem prepara la información para ser transmitida, pero no realiza la transmisión). La moduladora modifica alguna característica de la portadora (que es la acción de modular), de manera que se obtiene una señal, que incluye la información de la moduladora. Así el demodulador puede recuperar la señal moduladora original, quitando la portadora. Las características que se pueden modificar de la señal portadora son: • Amplitud, dando lugar a una modulación de amplitud (AM/ASK). • Frecuencia, dando lugar a una modulación de frecuencia (FM/FSK). • Fase, dando lugar a una modulación de fase (PM/PSK). También es posible una combinación de demodulaciones o modulaciones más complejas como la modulación de amplitud en cuadratura. 2.2.2. Estándares de modulación Dos módems para comunicarse necesitan emplear la misma técnica de modulación. La mayoría de los módem son full-dúplex, lo cual significa que pueden transferir datos en ambas direcciones. Hay otros módems que son halfduplex y pueden transmitir en una sola dirección al mismo tiempo. Algunos estándares permiten sólo operaciones asíncronas y otros síncronas o asíncronas con el mismo módem. A continuación se enlistan los tipos de modulación más frecuentes: TIPO CARACTERISTICAS Bell 103 Especificación del Sistema Bell para un módem de 300 baudios, asíncrono y full-dúplex Bell 201 Especificación del Sistema Bell para un módem de 2400 BPS, síncrono y full-dúplex Bell 212 Especificación del Sistema Bell para un módem de 2400 BPS, asíncrono y full-dúplex 24 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS V.22 bis Módem de 2400 BPS, síncrono/asíncrono y full-dúplex V.29 Módem de 4800/7200/9600 BPS, síncrono y full-dúplex V.32 Módem de 4800/9600 BPS, síncrono/asíncrono y fulldúplex V.32 bis Módem de 4800/7200/9600/12000/14400 BPS, síncrono/asíncrono y full-dúplex Hayes Express Módem de 4800/9600 BPS, síncrono/asíncrono y halfdúplex USR-HST Módem de USRobotics de 9600/14400 BPS. Sólo compatibles con los del mismo modelo aunque los más modernos soportan V.32 Vfast Es una recomendación de los fabricantes de la industria de módems. La norma Vfast permite velocidades de transferencia de hasta 28800 BPS. V34 Estándar del CCITT para comunicaciones de módem de en velocidades de hasta 28800 BPS Tabla 2. Estándares de modulación 2.2.3. Tipos de modulación Dependiendo de si el módem es digital o analógico se usa una modulación de la misma naturaleza. Para una modulación digital, por ejemplo, se emplean los siguientes tipos de modulación: • ASK, (Amplitude Shift Keying, Modulación en Amplitud): la amplitud de la portadora se modula a niveles correspondientes a los dígitos binarios de entrada 1 ó 0. • FSK, (Frecuency Shift Keying, Modulación por Desplazamiento de Frecuencia): la frecuencia portadora se modula sumándole o restándole una frecuencia de desplazamiento que representa los dígitos binarios 1 ó 0. Es el tipo de modulación común en módems de baja velocidad en la que los dos estados de la señal binaria se transmiten como dos frecuencias distintas. • PSK, (Phase Shift Keying, Modulación de Fase): tipo de modulación donde la portadora transmitida se desplaza cierto número de grados en respuesta a la configuración de los datos. En el canal telefónico existen perturbaciones que el módem debe enfrentar para poder transmitir la información. Estos trastornos se pueden enumerar en: • Distorsiones • Deformaciones • Ecos 25 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS { if (flag==1) // si se produce alarma envío mensajes { Envio_SMS(); flag=0; } } } 32 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPÍTULO III DISEÑO DEL HARDWARE DEL SISTEMA 3.1 DESARROLLO DE ESPECIFICACIONES En el siguiente capítulo se exponen las especificaciones definitivas y detalladas que tendría el hardware del prototipo de simulador domótico y el diseño que le correspondería en el caso de que hubiera sido posible comprar todos los elementos y montarlos. En primer lugar se realizaría una preinstalación domótica, con lo que se dota a la vivienda con los elementos necesarios (tuberías, cables, cajas, entre otros) para posteriormente poder instalar los servicios avanzados de control y seguridad. Para poder realizar esta preinstalación, se debe haber definido el lugar exacto de cada componente dentro de la vivienda, es decir, saber la ubicación de cada sensor, controlador y otros elementos en la casa. 3.1.1 Medios de transmisión Para este prototipo de simulador; cada componente del sistema de control domótico desarrollado, tendría como medio de transmisión líneas de cobre. Por otro lado, el vertiginoso avance en las tecnologías inalámbricas está haciendo que los dispositivos, cada vez, mejoren sus características y disminuyan su precio. De esta forma, dichos dispositivos han reducido su consumo energético para posibilitar una mayor autonomía, en el caso de tener que instalarlos en lugares donde deban ser alimentados con baterías. Tecnologías como Wi-Fi, Bluetooth entre otras, nos rodean hoy en día proporcionándonos servicios digitales avanzados. Además los grandes estándares domóticos (EIB-KNX y LonWorks) actualmente disponen de la posibilidad de implantar su protocolo por medio de transmisión inalámbrica, permitiendo realizar instalaciones sin tener que hacer obras. La tecnología inalámbrica en la actualidad es una realidad y cada vez está más extendida, este hecho junto con los avances de la electrónica embebida, han propiciado una reducción en los costes de fabricación que se ha traducido en una implantación masiva de todo tipo de comunicaciones inalámbricas, que además sigue creciendo. 33 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS La tendencia de las tecnologías inalámbricas en el ámbito de los edificios terciarios ha dado lugar en la última década a la aparición de un nuevo protocolo de comunicaciones, optimizado para adaptarse perfectamente a las prestaciones necesarias para soportar los servicios digitales necesarios. ZigBee comunica una serie de dispositivos haciendo que trabajen de forma más eficiente entre sí. Es un transmisor y un receptor que usa baja potencia para trabajar y tiene como objetivo las aplicaciones que requieren comunicaciones seguras con baja tasa de envío de datos y maximización de la vida útil de sus baterías. Es ideal para conexiones con diversos tipos de topología, lo que a su vez lo hace más seguro, barato y que no haya ninguna dificultad a la hora de su construcción porque es muy sencilla. Esta tecnología no tiene competencia fuerte con las tecnologías existentes debido a que sus aplicaciones son de automatización de edificios, residenciales e industriales, especialmente para aplicaciones con usos de sensores. Es el protocolo principal de las redes de sensores. Por otro lado, los edificios cada vez tienen una necesidad más fuerte en lo que se refiere a equipamiento informático y el correspondiente cableado estructurado para distribuir la red local necesaria para suministrar una conexión a internet y compartir archivos. Por ello, la tarea de diseñar la red de comunicaciones interna del edificio para soportar los servicios necesarios, es cada vez más, una labor previa a la utilización del edificio. La instalación y utilización de redes tiende a estructurarse según una jerarquía, en la cual, existen niveles en los que se sitúan cada uno de los servicios instalados. La planificación, instalación y utilización de todas estas redes, se realiza hoy en día según unas normas y unos estándares que intentan facilitar la implantación de todas las tecnologías necesarias en el edificio en cuestión. Las redes de sensores, se encuentran hoy en día en período de inserción dentro de todas las redes comentadas anteriormente. Están ideadas para participar en la gestión del edificio recogiendo los parámetros necesarios para participar en cada uno de los cuatro pilares básicos de la domótica e inmótica hoy en día: eficiencia energética, confort, seguridad y telecomunicaciones. 3.1.2 Elementos A continuación detallo los elementos necesarios para montar este prototipo con sus correspondientes características y modelos elegidos. Como anteriormente he citado, ha sido imposible comprar los sensores de movimiento, rotura de cristales y contactos magnéticos por motivos económicos y la imposibilidad de montarlos en una vivienda. Por lo que han sido sustituidos por un interruptor. 34 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS • Alimentación: Debido a que por problemas económicos no se va a poder montar el dispositivo, para alimentar el prototipo utilizaría una fuente de alimentación. En electrónica, una fuente de alimentación es un dispositivo que convierte la tensión alterna, en una o varias tensiones, prácticamente continuas, que alimentan los distintos circuitos del aparato electrónico al que se conecta (ordenador, televisor, impresora, router, etc.). Estudié una serie de posibilidades para la elección de la fuente de alimentación. Me decanté por las de banco por su sencillez. Entre las fuentes estudiadas estaban: la fuente PSU-A400-010 del fabricante Laboratory PSU, la fuente ALF2902M del fabricante ELC y la fuente digital KAT 10VD del fabricante Kert. Dado que el prototipo sólo necesita tensiones de 5 voltios, tampoco es necesaria una fuente de alimentación muy potente y compleja. Por sus características, porque permite una tensión de salida ajustable de 5 a 29 V en incrementos de 2 V, y ajuste preciso de ±1 V y por su precio, el modelo elegido sería el modelo ALF2902M del fabricante ELC. Ilustración 9. Fuente de alimentación A continuación detallo las características de la fuente de alimentación con la cual realizaría el proyecto: 35 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Fuente de alimentación Tensión de salida De 5 a 29V Corriente de salida De 2,1 a 4A Rizado <3mV ef. Tensión de entrada 230 Vac a 5060Hz Potencia nominal 60W Dimensiones 106 x 92 x 58mm Tabla 4. Especificaciones técnicas de la fuente de alimentación • Sensor de movimiento: Los sensores de movimiento son uno de los tipos de sensores más usados en viviendas y edificios. Permiten controlar la iluminación, la climatización y el sistema de seguridad. Estos sensores no deben activarse por sí solos con señales falsas como pueden ser variaciones en la luminosidad natural, presencia de animales o variaciones bruscas de temperatura. Los sensores de movimiento deben ser seleccionados según el área que se desee supervisar, el tipo de movimiento que se desee sensar y el tipo de carga que se desee comandar. Muchos sensores de movimiento tienen integrados dispositivos como por ejemplo sensores de luminosidad, receptores de IR, temporizadores y controladores horarios. Los sensores de movimiento utilizados serían de tipo PIR (Passive Infra Red), los cuales son los más adecuados en cuanto a un sistema de seguridad se refiere, ya que ofrecen una garantía en la detección de intrusiones gracias a su amplio radio de acción. Analicé diversos modelos de sensor de presencia como son: el sensor de movimiento 821917017 de la compañía Kopp, el modelo MX+ & QX+ de Gardtec y el sensor Xevox 360° PIR Motion Detector de Abus Security Center. El modelo elegido sería el Gardtec MX+ & QX+, por su relación calidadprecio y características que se adaptan a nuestras necesidades ya que no son necesarios ángulos de cobertura tan amplios como los posibles en los otros dos modelos. 36 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Ilustración 10. Sensor de movimiento A continuación se muestran los lóbulos de detección del sensor de movimiento Gardtec MX+ & QX+, a ser utilizado en este prototipo de simulador de control domótico: Ilustración 11. Ángulo de detección de la lente del sensor de movimiento 37 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Ilustración 12. Cobertura del alcance del sensor de movimiento A continuación detallo las características del sensor de movimiento con el cual voy a realizar el proyecto: Sensor de movimiento Modelo Gardtec MX+ & QX+ Tipo PIR (Passive Infrared Sensor) Alimentación 9.5 a 16 VDC Corriente 13mA Tipo de lazo Normalmente cerrado Alcance 15m Ángulo 110º Tabla 5. Especificaciones técnicas de los sensores de movimiento • Contactos magnéticos (sensores de puertas y ventanas): Un contacto magnético es un dispositivo que se utiliza para indicar el estado abierto o cerrado de un punto de acceso. Normalmente, es un dispositivo sin contacto que contiene un imán posicionado en la puerta o ventana y un receptor magnético posicionado en el marco que activa un interruptor interno. El controlador es capaz de interpretar la situación de la puerta mediante el cambio de estado del dispositivo. El contacto magnético es el más común de los contactos de puerta y ventana y puede adquirirse en múltiples formatos (montaje en superficie, empotrado, y otros). Este dispositivo no determina si la puerta está bloqueada o no, sino solamente si está abierta o cerrada. En el control de accesos, se usa para comprobar si un punto de acceso ha sido forzado o ha sido mantenido abierto durante más tiempo del necesario. A continuación se muestran distintos tipos de sensores de puertas y ventanas, siendo la primera imagen desde la izquierda de la Ilustración 13, el tipo de sensor que sería utilizado en este proyecto. 38 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Ilustración 13. Contactos magnéticos Ilustración 14. Contacto magnético Se escogió este tipo de sensores debido a su facilidad para la instalación, su funcionamiento, y la distancia a la que pueden ser colocados con respecto a la central. Dentro de este tipo de sensores estudié una serie de ellos para decantarme por el cual más se ajustara a mis necesidades. Entre los estudiados se encuentran: el contacto 337-396 de RS, el interruptor de proximidad 190-1011 de RS y por ultimo el MK4200 de Abus Security Center. A pesar de que el modelo elegido no sea el más barato ni sencillo, el modelo concreto elegido sería el 190-1011 de RS por ser un interruptor normalmente cerrado que es el tipo de interruptor que necesito. A continuación detallo las características del contacto magnético con el cual voy a realizar el proyecto: 39 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Contactos de puertas y ventanas Dimensiones 58 mm x 20 mm x 15 mm Contacto magnético Normalmente cerrado Corriente de conmutación 20mA Tensión de conmutación 30V d.c. Espacio de funcionamiento máximo 20 mm Tipo de activación Interruptor de proximidad Tabla 6. Especificaciones técnicas de los contactos magnéticos • Sensor de rotura de cristales: Un sensor de rotura de cristales es un dispositivo sensor de fractura, con componente sónico de impacto, quiebre y caída de un paño vidriado, integrado por varias unidades o modelos con diferentes principios de funcionamiento. Es muy sensible a ciertas frecuencias de sonido, particularmente la de rotura de cristales y astillado de madera. Hay dos tipos principales de sensores de rotura de cristales: los de choque y los acústicos. Los primeros detectan vibraciones generadas por vidrios rotos, mientras que los acústicos se activan por ondas de sonido. Cuando el cristal se rompe, la información llega a los sensores de maneras distintas. En los de choque, reciben una alerta en forma de vibración de la ventana misma. Cuando el dispositivo detecta el choque generado por el cristal rompiéndose, se activa. Los sensores acústicos se diseñan específicamente para detectar la frecuencia sonora de los cristales rompiéndose y la madera astillándose. Se activan tan pronto como los sensores cuando la alarma detecta el cristal destrozándose. Protegen un área más grande que los de choque, pero también pueden ser activados por ruidos que confunden con cristales rompiéndose. Ambos tipos de sensores de rotura de cristales están diseñados para detectar una intrusión antes de que el intruso tenga tiempo de entrar a la estructura. Para la elección del sensor que necesito analicé tres sensores distintos que fueron: el sensor RG71FM-RS de Rokonet, el modelo GB2000 de Abus Security Center y por último el sensor FU7300B de la compañía ABUS. El dispositivo elegido sería el FU7300B de la compañía ABUS ya que de los tres anteriormente citados es el único sensor de choque. Por su simpleza y para evitar que la alarma se dispare en casos de vibración alta sin ruptura como podría ser el paso de un avión rompiendo o acercándose a la barrera del sonido, es el que mejor se adapta a mis necesidades. Además de ser el más económico de los tres, que para una vivienda con tantas ventanas como ésta es un factor a tener en cuenta. 40 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Ilustración 15. Sensor de rotura de cristales Las características del sensor elegido son las que muestro a continuación: Sensor de rotura de cristales Modelo FU7300B Dimensiones 18mm x 18mm x 9mm Tipo de contacto Normalmente Cerrado Tensión de activación máxima 15V DC Corriente de activación máxima 15mA Temperatura máxima de operación 55ºC Longitud de cable 2m Peso 40g Tipo de sensor Piezoeléctrico Tabla 7. Especificaciones técnicas de los sensores de rotura de cristales • Microcontrolador: El campo de los microcontroladores es muy amplio en cuanto a compañías, tipos y plataformas que los desarrollan y fabrican. A grandes rasgos podemos definir un microcontrolador como un circuito integrado programable para desempeñar funciones completamente personalizadas, según lo que el usuario desee; es como un pequeño ordenador. Para programarlo, suele ser necesario adquirir también una tarjeta de evaluación o una placa de desarrollo la cual se conecta al ordenador. 41 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Corriente nominal 20mA Voltaje máximo 24V Voltaje mínimo 500mV Corriente mínima 10mA Tabla 11. Especificaciones técnicas del teclado • Sirena: Para el aviso de la entrada de intrusos cuando los sensores detecten su presencia o cuando el número de intentos de ingreso de la clave de seguridad supere los permitidos, es necesario el uso de una sirena o avisador. Las posibilidades para ello son infinitas pero, una vez estudiadas las posibilidades como: uso de una luz rotativa, uso de un zumbador o avisador acústico, la combinación de la luz rotativa y el zumbador,… Al final optaría por la combinación de ambos tipos de aviso por ser el más completo y por la posibilidad de encontrarlo por un precio económico. Dentro de la opción de combinación de avisador acústico y luminoso existe una amplia gama modelos dependiendo del tipo de luz, avisador luminoso continuo o intermitente, número de decibelios,… Analicé tres modelos distintos que son: PSC-0002 del fabricante Klaxon, el modelo 85710R0/HB del fabricante Hosiden Besson y para finalizar el SYAV/RL/R de la compañía Fulleon. La sirena elegida sería la baliza acústica destellante 85710R0/HB del fabricante Hosiden Besson ya que se adapta a los requisitos que buscamos, ofrece 32 tipos distintos de tonos y por su económico precio. Ilustración 20. Sirena 48 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Las características de la sirena elegida son las siguientes: Sirena Velocidad 1 destello/seg Corriente a 12V 90mA Corriente a 24V 40mA Volumen máximo 112 dB Tabla 12. Especificaciones técnicas de la sirena 3.2 ESTUDIO DE LOS PLANOS DE LA VIVIENDA En función del nivel de automatización y sus futuras ampliaciones el proyecto domótico cambia, así como las diferentes instalaciones a integrar. Es por esto que para cada sistema se tiene que realizar un estudio previo de las características de la vivienda en donde se va a instalar el proyecto, teniendo en cuenta las necesidades del usuario y la topología física de la casa. Por lo tanto, el prototipo desarrollado sería un sistema centralizado, con servicio domótico básico, el cual brinda una gestión y control de alarmas técnicas y de seguridad básico, que cuenta con: • Gestión de seguridad • Gestión de las comunicaciones • Interfaces de usuario. Si por ejemplo el plano de la vivienda fuera el siguiente, estudiaríamos el número de habitaciones con ventana al exterior, el número de puertas al exterior también, la cantidad de luminarias exteriores, el lugar donde iría el panel de control y los sensores de movimiento y los posibles puntos sensibles por los que podrían entrar los intrusos. 49 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Ilustración 21. Plano de la vivienda He elegido el plano de una vivienda de una planta con porche exterior ya que ofrece más posibilidades de diseño y la necesidad de un sistema de alarma es mayor que en el caso de una vivienda de un bloque de pisos. En este tipo de viviendas hay ventanas que dan al exterior a baja altura y un mayor número de puertas por las que acceder a la vivienda. 3.2.1 Determinación del número de circuitos de iluminación Para determinar el número de luminarias a encender para el simulador de presencia, se tomarían en cuenta las luminarias que dan a los exteriores, es decir, todas aquellas luminarias que se pueden observar desde fuera de la vivienda, esto es para ahorrar energía, y que personas ajenas a la vivienda puedan percibir que se encuentra alguien en la misma. Dichas luminarias se encenderán a una hora determinada del día, generalmente cuando anochezca y se apagaran a otra hora que fijemos al amanecer. Por lo tanto, en este caso, se escogerían cuatro luminarias, las cuales están situadas en la parte exterior de la casa (dos en el porche 1 y las otras dos en el porche 2). 50 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Luminarias Ilustración 22. Distribución de luminarias en la vivienda 3.2.2 Determinación de la ubicación de sensores de movimiento, contactos magnéticos y sensores de rotura de cristales. Los sensores de movimiento se instalan normalmente en todas las habitaciones, el salón y la cocina. Su ubicación depende de la tipología de la habitación, pero una vez estudiados los planos de la vivienda, los sensores se colocarían tal y como se muestran en la Ilustración 23. El sensor de movimiento del salón se colocaría de tal forma que cuando alguien entrara por la puerta principal, pueda manejar el panel de control sin que se active ya que dicha persona puede ser un habitante de la vivienda. Los contactos magnéticos de ventanas y los sensores de rotura de cristales los colocaríamos en todas las ventanas que dieran al exterior. Los contactos magnéticos de puertas serían colocados uno en la puerta que une el garaje con la cocina, otro en la puerta que une el garaje con la despensa y el último en la puerta que del porche 2. La puerta del porche 2 suponemos que es de cristal ya que une el porche con el salón por lo que también llevaría un sensor de rotura de cristales. 51 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Cuando uno de los sensores se activara, ya sea porque se haya abierto una puerta o ventana o se haya detectado movimiento dentro de la vivienda, saltaría la alarma y se encendería la sirena durante el tiempo fijado. Este tiempo no puede ser elevado para no molestar a los vecinos. Para la ubicación de estos sensores, se tomarían en cuenta las siguientes especificaciones: • Evitar la ubicación en superficies donde reciban directamente la luz solar. • Evitar ubicarlos en áreas donde puedan existir cambios bruscos de temperatura. • Evitar la ubicación de los sensores en áreas con conductos de aire. • Elegir una ubicación donde se pueda interceptar rápidamente una intrusión. • Tener en cuenta que los sensores de movimiento reaccionan mejor ante un ambiente estable. Sensor de movimiento Contacto magnético ventana y sensor de rotura de cristales Contacto magnético puerta Ilustración 23. Distribución de sensores dentro de la vivienda. 52 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 3.2.3 Estudio de planos eléctricos y otras instalaciones de interés a instalar en la vivienda El estudio de los planos eléctricos sirve para tener en cuenta donde realizar las conexiones y poder ubicar los elementos. Con esto, se ubicarían los siguientes elementos: • Dos paneles de control: uno cerca de la puerta principal de entrada, para que de esta forma el usuario tenga la facilidad de activar o desactivar el sistema al momento de abandonar o llegar a su residencia sin que se active el sensor de movimiento del salón y otro situado en el garaje. • Una sirena; cuya ubicación habitual es en la fachada principal de la vivienda, en un lugar visible y de difícil acceso desde la calle. Panel de control Sirena Ilustración 24. Distribución del panel de control y de las sirenas. 53 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 3.3 DISEÑO DEL HARDWARE DE CONTROL 3.3.1 Herramientas de desarrollo Se utilizan varias herramientas de desarrollo para la elaboración de este proyecto, las cuales intervienen en diferentes aspectos del mismo. Todas las herramientas a continuación mencionadas se aplican en este prototipo, pero se utilizan dependiendo de las características que cada una posee. Cabe destacar la diferencia entre un compilador y un IDE. Un IDE es un entorno de desarrollo integrado (siglas en inglés, Integrated Development Environment). Es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Un compilador traduce el lenguaje o código fuente original a código de máquina. Compilador: • PCW CCS Las características que presenta el compilador PCW CCS y que hacen de él una buena opción para elegirlo como compilador de C para programar Microcontroladores PIC son: al compilar genera un código máquina muy compacto y eficiente, se integra perfectamente con MPLAB y otros simuladores/emuladores como PROTEUS para el proceso de depuración, incluye una biblioteca muy completa de funciones pre compiladas para el acceso al hardware de los dispositivos (entrada/salida, temporizaciones, conversor A/D, transmisión RS-232,bus I2C….,etc.) , incorpora drivers para dispositivos externos, tales como pantallas LCD, teclados numéricos, memorias EEPROM, conversores A/D, relojes en tiempo real, etc.(los drivers son pequeños programas que sirven de interfaz entre los dispositivos hardware y nuestro programa) y permite insertar partes de código directamente en Ensamblador, manteniendo otras partes del programa en C. Grabador del microcontrolador: • MikroProg Suite for PIC MikroProg Suite for PIC es el software que requiere el programador MikroProg que va incluido en la placa de desarrollo EasyPic v7 con la que vamos a programar el microcontrolador. Este software nos permite programar todos los microcontroladores de la familia Microchip, incluyendo los PIC10, PIC12, PIC16, PIC18, dsPIC30/33, PIC24 y PIC32. Dispone de una interfaz muy intuitiva y tecnología SingleClick de programación. 54 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Simulador: • Proteus Proteus es una compilación de programas de diseño y simulación electrónica, desarrollado por Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los módulos VSM y Electra. El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente) permite diseñar el plano eléctrico del circuito que se desea realizar con componentes muy variados, desde simples resistencias, hasta alguno que otro microprocesador o microcontrolador, incluyendo fuentes de alimentación, generadores de señales y muchos otros componentes con prestaciones diferentes. Los diseños realizados en Isis pueden ser simulados en tiempo real, mediante el módulo VSM, asociado directamente con ISIS. Una de las prestaciones de Proteus, integrada con ISIS, es VSM, el Virtual System Modeling (Sistema Virtual de Modelado), una extensión integrada con ISIS, con la cual se puede simular, en tiempo real, con posibilidad de más rapidez; todas las características de varias familias de microcontroladores, introduciendo nosotros mismos el programa que controlará el microcontrolador y cada una de sus salidas, y a la vez, simulando las tareas que queramos que lleve a cabo con el programa. Se pueden simular circuitos con microcontroladores conectados a distintos dispositivos, como motores, displays LCD, teclados en matriz, etc. Incluye, entre otras, las familias de PIC's PIC10, PIC12, PIC16, PIC18, PIC24 y dsPIC33. ISIS es el corazón del entorno integrado PROTEUS. Combina un entorno de diseño de una potencia excepcional con una enorme capacidad de controlar la apariencia final de los dibujos. ARES, o Advanced Routing and Editing Software (Software de Edición y Ruteo Avanzado); es la herramienta de enrutado, ubicación y edición de componentes, se utiliza para la fabricación de placas de circuito impreso, permitiendo editar generalmente, las capas superficial (Top Copper), y de soldadura (Bottom Copper). Ejecutando ARES directamente de forma manual ubicando cada componente en el circuito. Tener cuidado al DRC, Design Rules Checker (Verificador de Reglas de Diseño) Proteus es una potente herramienta usada por los mecatrónicos. El propio programa puede trazar las pistas de manera automática, si se guarda previamente el circuito en ISIS, y haciendo clic en el ícono de ARES, en el programa, el programa compone la Netlist. Método 1 (Autorouter) 1. Poner SOLO los componentes en la board 2. Especificar el área de la placa (con un rectángulo, tipo "Board Edge") 3. Hacer clic en "Autorouter", en la barra de botones superior 1. Editar la estrategia de ruteo en "Edit Strategies" 4. Hacer clic en "OK" 55 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Método 2 (Electra Autorouter) Utilizando el módulo Electra (Electra Auto Router), el cual, una vez colocados los componentes trazará automáticamente las pistas realizando varias pasadas para optimizar el resultado. Con Ares además se puede tener una visualización en 3D del PCB que se ha diseñado, al haber terminado de realizar la ubicación de piezas, capas y ruteo, con la herramienta "3D Visualization", en el menú output, la cual se puede demorar, solo haciendo los trazos un periodo de tiempo un poco más largo que el de los componentes, los cuales salen al empezar la visualización en 3D. 3.3.2 Requerimientos de funcionamiento Los diferentes tipos de sistemas domóticos ofrecen distintas características de funcionamiento. La variedad de sensores y las características propias del sistema, hacen que cada uno tenga requerimientos diferentes. Por cual, este sistema cumple con los siguientes requerimientos: • Posee una central, la cual es la encargada de controlar todo el sistema en general, como: la activación, programación, encendido de luces y control del panel. O Debe controlar los periféricos, tanto los de entrada (sensores) como los de salida (sirena, iluminación). O Una vez que esté activado el sistema, empezar el simulador de presencia, el cual es el encargado de encender las luces a partir de una hora establecida. O Activar la sirena, una vez que ha habido intrusión dentro de la vivienda y el envío de un SMS al propietario de la vivienda. • Poseer dos paneles de control, desde los cuales se pueda activar / desactivar el sistema, cambiar la clave y otros. Por lo general, cada sensor de movimiento pertenece a una zona diferente, asimismo la sirena también pertenece a otra zona ya que tiene una función específica muy distinta a las demás. • Se deben instalar sensores de movimiento y sensores de puertas y ventanas en los lugares necesarios para la seguridad de la vivienda, para que estos sensores sean los encargados de determinar alguna intrusión en la misma. 3.4 PROGRAMACIÓN DEL CONTROLADOR Programar es hacer una lista de instrucciones en un lenguaje que nos permita indicarle al PIC lo que deseamos que haga. Existen varios lenguajes como: Ensamblador, Basic, C, etc. Todos ellos pretenden acercarse a nuestra manera de pensar y de hablar. Sin embargo los PIC no conocen más que unos y ceros. Por eso es necesario un compilador. 56 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Compilar es traducir el programa al lenguaje de máquina que si “entiende” el PIC. Para realizar esta traducción hacemos uso de un software que transforma el “Programa Fuente”, en otro que si podemos comunicarle al PIC. Existen compiladores “especiales” en los que se puede editar en el lenguaje Basic o C y obtener un archivo .hex listo para que su grabador de PIC’s lo utilice. Dentro del amplio abanico de lenguajes de programación, analicé los dos más conocidos y utilizados, mas una variante de uno de ellos, para posteriormente decantarme por uno de ellos: • BASIC La sintaxis mínima de BASIC sólo necesita los comandos LET, INPUT, PRINT, IF y GOTO. Un intérprete que ejecuta programas con esta sintaxis mínima no necesita una pila. Algunas de las primeras implementaciones eran así de simples. Si se le agrega una pila, se pueden agregar también ciclos FOR anidados y el comando GOSUB. BASIC no tiene una biblioteca externa estándar como otros lenguajes como C. En cambio, el intérprete (o compilador) contiene una biblioteca incorporada de procedimientos intrínsecos. Estos procedimientos incluyen la mayoría de las herramientas que un programador necesita para aprender a programar y escribir aplicaciones sencillas, así como funciones para realizar cálculos matemáticos, manejar cadenas, entrada desde la consola, gráficos y manipulación de archivos. BASIC, como Pascal, hace una distinción entre un procedimiento que no devuelve un valor (llamado subrutina) y un procedimiento que lo hace (llamado función). Muchos otros lenguajes (como C) no hacen esa distinción y consideran todo como una función (algunas que devuelven un valor “void” [vacío]). BASIC es reconocido por tener muy buenas funciones para manipular cadenas de caracteres. En BASIC las variables no necesitan forzosamente ser declaradas antes de usarse, excepto los arreglos de más de 10 elementos; aunque versiones BASIC relativamente modernas poseen la opción (considerada buena práctica de programación) para obligar al programador a declarar toda variable antes de su uso (una directiva como OPTION EXPLICIT). La declaración de variables en BASIC se hace usando la palabra clave DIM. Muchos lenguajes también soportan tipos numéricos adicionales, como enteros de 16 y 32 bits (simple y long, respectivamente), además de sus números de coma flotante. Adicionalmente algunos permiten la utilización de tipos de datos definidos por el usuario, similar a los "records" de Pascal, o las "structs" de C. 57 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Una vez inicializado el sistema iremos al menú principal. En la Ilustración 27, se detalla el diagrama de flujo del Menú Principal. En él se muestra un menú con dos opciones. Si se presiona la tecla ‘0’ nos lleva a la parte del programa que activa la alarma y si presionamos la tecla ‘1’ nos lleva a la rutina de cambio de la clave administrativa. En el supuesto de presionar cualquier otra tecla, el menú permanecerá inalterado. SI NO SI NO Ilustración 27. Diagrama de flujo del menú principal ///////FUNCION MENU PRINCIPAL void menu_principal (void) //función que muestra el menú principal { d=0; switch (tecla) { case '0': //si '0' va a activar la alarma activar_alarma(); break; case '1': //si '1' va a comprobar clave para después cambiar la clave cambiar_clave(); break; } } TEXTO EN LA PANTALLA ¿TECLA =”1”? ¿TECLA =”0”? ACTIVAR ALARMA CAMBIAR CLAVE MENU PRINCIPAL 64 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Se recomienda lo primero cambiar la contraseña por defecto con la que el sistema de alarma viene programado, grabada en la memoria EEPROM del microcontrolador, la cual podemos cambiar por otra que sea más del gusto del usuario. Por lo tanto, en el Menú Principal se pulsaría la tecla ‘1’ para entrar en la subrutina “Cambio de clave” cuyo funcionamiento nos explica el diagrama de flujo de la Ilustración 28. En esta subrutina se escribe la clave administrativa y se compara con la grabada en la memoria EEPROM del microcontrolador, que en este caso, la clave por defecto sería '1','2','3'. Si no son iguales, nos llevara el programa a la subrutina de “Conteo de intentos” y a los tres intentos fallidos saltará la alarma. Si son iguales, iremos a la subrutina de “Nueva clave administrativa” para realizar el cambio de clave. SI Ilustración 28. Diagrama de flujo de la rutina “Cambiar clave” CAMBIAR CLAVE ¿CLAVE CORRECTA? ESCRIBIR CLAVE NUEVA CLAVE ADMIN. CONTEO INTENTOS LEER CLAVE EN EEPROM LIMPIAR CLAVE LIMPIAR CLAVE 65 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS //////////FUNCION CAMBIAR CLAVE void cambiar_clave(void) //función que cambia clave administrativa { int p; tecla=0; d=0; int aux=0; leer_clave_en_eeprom(d); limpiar_clave(); lcd_putc("\fEscribir clave:\n"); delay_ms(500); for(aux=0;aux<3;aux++) { while(tecla==0 && bandera==0); { flag_teclado=0; lcd_putc("*"); clave[d]=tecla; d++; if (d==3) //Si ya se han introducido todos los valores de la clave { p=comparar_claves(d); //compara ambas claves if (p==0) //si son iguales... {lcd_putc("\fClave Correcta"); delay_ms(2000); alarm_cont = 0; limpiar_clave(); //pongo a '0' la variable clave nueva_clave_admin(); //introduzco la nueva clave } if (p!=0) //si son distintas... {lcd_putc("\fClave Incorrecta"); delay_ms(2000); limpiar_clave(); //pongo a '0' la variable clave conteo_intentos(); } } else { tecla=0; } } } } //////////FUNCION COMPARAR CLAVES int comparar_claves(int) //función que compara la clave administrativa y la introducida { d=0; int s=0; for (d=0;d<3;d++) //comparo carácter a carácter las claves { if (clave[d]==clave_eeprom_admin[d]) //si el carácter es igual en las dos claves s++; //paso al siguiente carácter 66 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS else //si es distinto la contraseña es incorrecta {s=0; lcd_putc("\fClave Incorrecta"); break; } } if (s==3) //si todos los tres caracteres son iguales return 0; //devuelvo un '0' } //////////LEER_CLAVE_EN_EEPROM void leer_clave_en_eeprom(int d) //función que lee las claves y las guarda en su correspondiente variable { for (d=0;d<3;d++) { clave_eeprom_admin[d] = read_eeprom(d); //guardamos cada valor de la direccion i + 0 (para no pisar datos) delay_ms(20); //de la eeprom en la variable global correspondiente } } Mediante la función limpiar clave ponemos a cero la clave tecleada una vez que hemos trabajado con ella para tenerla disponible para próximos usos. En la Ilustración 29 tenemos el diagrama de flujo que explica su funcionamiento. SI NO Ilustración 29. Diagrama de flujo de la rutina “Limpiar clave” ¿TECLA =3? BORRA TECLA FIN LIMPIAR CLAVE 67 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS //////////LIMPIAR CLAVE void limpiar_clave() //función que pone a '0' la variable clave { int k; for(k=0;k<3;k++) //limpiamos uno a uno cada valor de la variable { clave[k]=0x00; } } A continuación, en la Ilustración 30, se muestra el diagrama de flujo de la rutina “Conteo intentos” anteriormente mencionada. Se dispone de 3 intentos para introducir la contraseña. Si los superamos se activará la alarma de la vivienda para alertar que ha habido una intrusión y el intruso está intentando desactivar el sistema de alarma. SI NO Ilustración 30. Diagrama de flujo de la rutina “Conteo intentos” ////////////FUNCION CONTEO INTENTOS void conteo_intentos(void) //función que cuenta el numero de intentos de ingreso de contraseña { if (alarm_cont==2) { ¿INTENTOS =3? ALARMA GENERAL INTENTOS +1 FIN CONTEO INTENTOS 68 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS alarm_cont = 0; //pongo a cero el contador de errores alarma_general(); } else { alarm_cont++; tecla=0; //limpio las variables d=0; } } Si se llegase a los tres intentos fallidos, se enciende la sirena y se muestra en la pantalla un mensaje de alarma. Una vez transcurridos 10 segundos, la sirena se apaga y desaparece el mensaje de alarma. No se deja todo el tiempo encendida la sirena hasta que alguien desactive el sistema ya que esto perturba a los vecinos debido al elevado sonido que la misma emite. En la Ilustración 31 se muestra el diagrama de flujo explicativo. Ilustración 31. Diagrama de flujo de la rutina “Alarma general” ALARMA GENERAL MENSAJE DE ALARMA Y SIRENA ENCENDIDA ¿t=10seg? APAGAR SIRENA Y MENSAJE DE ALARMA FIN LIMPIAR PANTALLA 69 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS //////////FUNCION ALARMA GENERAL void alarma_general (void) //función que enciende la sirena { set_tris_a(0b11110111); //pin A3 como salida lcd_putc("\f" ) ; //borra pantalla delay_ms(100); output_high(pin_A3); //enciende la sirena durante 10 seg y muestra mensaje lcd_putc("\f ALARMA "); delay_ms(10000); output_low(pin_A3); //apaga la sirena alarm_cont = 0; } En la Ilustración 32, se muestra el diagrama de flujo de la rutina “Nueva clave administrativa” con la que activaremos y desactivaremos la alarma y realizaremos los futuros cambios de clave administrativa. En esta rutina escribimos la nueva contraseña y la vamos grabando número a número en la memoria EEPROM del microcontrolador. Ilustración 32. Diagrama de flujo de la rutina “Limpiar clave” //////////FUNCION NUEVA CLAVE void nueva_clave_admin(void) //función que añade la nueva clave administrativa { tecla=0; //limpio las variables int aux=0; d=0; lcd_putc("\fNueva clave:\n"); //presentación ESCRIBIR CLAVE NUEVA CLAVE ADMIN. ESCRIBIR CLAVE EN EEPROM 70 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS delay_ms(500); for(aux=0;aux<3;aux++) { while(tecla==0 && bandera==0); { flag_teclado=0; lcd_putc("*"); clave[d]=tecla; if(d<3) { escribir_clave_en_eeprom(d); //guardamos la nueva clave en la memoria EEPROM tecla=0; d++; } else { d=0; limpiar_clave(); } } } } //////////ESCRIBIR_CLAVE_EN_EEPROM void escribir_clave_en_eeprom(int d) //función que escribe las claves en la memoria eeprom { write_eeprom (d,tecla); //guardamos cada valor de la variable global correspondiente delay_ms(20); //en la dirección d + 0 (para no pisar datos) de la eeprom d++; //en una palabra escribe de la posición 0 a la 2 (3 lugares) } Si en el Menú Principal se ha presionado la tecla ‘0’, entraremos en la subrutina de “Activar la alarma” cuyo diagrama de flujo (Ilustración 33) tenemos a continuación. Su funcionamiento es muy similar a la de “Cambio de clave”. Primero introducimos nuestra clave administrativa y la comprara con la grabada en la memoria EEPROM. Si son iguales iremos a la subrutina de “Desactivar alarma” y si son distintas a la de “Conteo de intentos” para controlar el numero de intentos realizados. 71 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS NO SI Ilustración 33. Diagrama de flujo de la rutina “Activar alarma” //////////ACTIVAR ALARMA void activar_alarma(void) //función que activa la alarma { int p; tecla=0; d=0; int aux=0; leer_clave_en_eeprom(d); lcd_putc("\fEscribir clave:\n"); delay_ms(500); for(aux=0;aux<3;aux++) { while(tecla==0 && bandera==0); { lcd_putc("*"); clave[d]=tecla; d++; if (d==3) //Si ya se han introducido todos los valores de la clave LEER CLAVE EN EEPROM ¿CLAVE CORRECTA? ESCRIBIR CLAVE DESACTIVAR ALARMA CONTEO INTENTOS ACTIVAR ALARMA LIMPIAR CLAVE LIMPIAR CLAVE 72 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS { p=comparar_claves(d); //compara ambas claves if (p==0) //si son iguales... {lcd_putc("\fAlarma Activada"); delay_ms(2000); alarm_cont = 0; limpiar_clave(); //pongo a '0' la variable clave desactivar_alarma(); //vamos a la rutina para desactivar la alarma } if (p!=0) //si son distintas... {lcd_putc("\fClave Incorrecta"); delay_ms(2000); limpiar_clave(); //pongo a '0' la variable clave conteo_intentos(); } } else { tecla=0; } } } } En la figura Ilustración 34, se muestra el diagrama de flujo de la subrutina “Desactivar alarma” cuyo funcionamiento es similar al de las dos anteriores. Introducimos la clave administrativa y la compara con la grabada en la memoria EEPROM. Si son iguales iremos de vuelta al Menú Principal y si son distintas a la subrutina “Conteo de intentos” para controlar el numero de intentos realizados. La diferencia radica en que mientras estemos en esta función la interrupción externa estará activada y por tanto los contactos magnéticos y los sensores de movimiento estarían en funcionamiento para detectar si algún intruso entra en la vivienda. 73 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Ilustración 37. Verificación funcionamiento del display - Verificar el funcionamiento del teclado. Ilustración 38. Verificación funcionamiento del teclado 80 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS • Activación / desactivación del sistema. Ilustración 39. Activación de la alarma Ilustración 40. Desactivación de la alarma 81 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS • Cambios de clave. Ilustración 41. Cambio de clave - Alarma. Ilustración 42. Activación de la sirena. (Simulación mediante un LED) 82 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS - Simulador de presencia. Ilustración 43. Puesta en marcha del simulador de presencia Sensores: • Verificar la activación / desactivación de sensores tanto de movimiento como de puertas y ventanas. En este caso, ante la imposibilidad de compra de los sensores, la prueba sería la simulación de ellos mediante un interruptor. En la Ilustración 44 se muestra como saltaría la alarma al activar el interruptor. 83 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Ilustración 44. Activación de los sensores 84 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPITULO V CONCLUSIONES, RECOMENDACIONES Y FUTUROS DESARROLLOS 5.1 CONCLUSIONES • La utilización de un LCD en el panel de control es de mayor comodidad y facilidad para el usuario, ya que los tradicionales paneles de control únicamente muestran mediante diodos LED la configuración del sistema y ésto hace que sea confuso para el usuario. • El uso de SMS hace que el sistema sea de confort para el usuario, ya que tendrá conocimiento de que se ha activado la alarma sin importar el lugar en el que se encuentre el propietario de la vivienda. • La implementación del reloj en tiempo real como simulador de presencia es de gran utilidad porque previene la intrusión de ladrones evitando daños y molestias en la vivienda si se da el caso de que intentaran entrar en ella 5.2 RECOMENDACIONES • Realizar un sistema distribuido en lugar de un sistema centralizado, esto reduce el cableado, ya que en un sistema distribuido no se necesita que todos los componentes del sistema estén cableados hacia la central. Además en un sistema distribuido no existe un punto único de fallo, lo que hace un sistema más confiable y rápido. • No olvidar de poner un reinicio en el sistema y en cada placa, para evitar el tener que desconectar el sistema completo al momento de una fallo, prueba, o cambio de componentes en el mismo. • Si se requiere que los sensores de puertas y ventanas no se vean, se puede utilizar sensores empotrados, los cuales se insertan en el interior del marco de la puerta o ventana, lo que hace que los mismos no se observen. • Es importante familiarizar al usuario con el sistema, para que no tenga inconvenientes con el uso del mismo, y así evitar posibles daños que se puedan generar por el mal manejo del sistema. 85 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 5.3 FUTUROS DESARROLLOS • Posibilidad de modificar mediante el panel de control la hora de activación y desactivación del simulador de presencia o establecer un sistema para que se fijen dichas horas de manera aleatoria. • Dotar al sistema de sensores de otro tipo, por ejemplo: humedad, humo, incendio,… para completar y mejorar el sistema de alarma y de esta manera abarcar mas campos. • Profundizar en el desarrollo del programa de envío de SMS por parte del microcontrolador y del módem • Envío de un SMS en caso de fallo de la red eléctrica o de ruptura del cableado por parte de intrusos. • Poder activar y desactivar el sistema de alarma mediante el envío de un SMS o que el SMS de alarma indique también la causa de la misma: robo, incendio, inundación,… • Dado que el modem que elegiría es capaz de realizar y recibir llamadas, se podría completar el sistema con un demoportero que esté conectado con el portero automático de la vivienda y de ésta forma, en el caso de que alguien timbrara, simular la presencia de personas en la vivienda. • Utilizar un teléfono móvil como modem en lugar de un modem GSM para realizar la comunicación entre el sistema de alarma y el usuario. 86 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPITULO VI DEFINICIONES Y ABREVIATURAS 6.1 DEFINICIONES • Array En programación, una matriz o vector (llamados en inglés arrays) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico, una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). En principio, se puede considerar que todas las matrices son de una dimensión, la dimensión principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multidimensionales, aunque las más fáciles de imaginar son los de una, dos y tres dimensiones. Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista, ya que esta estructura puede cambiar de tamaño fácilmente durante la ejecución de un programa. • ASCII ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estándar Estadounidense para el Intercambio de Información), pronunciado generalmente [áski] o [ásci] , es un código de caracteres basado en el alfabeto latino, tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII. El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español. ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 32 87 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio). Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto como el teclado. No deben confundirse los códigos ALT+número de teclado con los códigos ASCII. • BCD En sistemas de computación, Binary-Coded Decimal (BCD) o Decimal Codificado en binario es un estándar para representar números decimales en el sistema binario, en donde cada dígito decimal es codificado con una secuencia de 4 bits. Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden realizar operaciones aritméticas como suma, resta, multiplicación y división de números en representación decimal, sin perder en los cálculos la precisión ni tener las inexactitudes en que normalmente se incurre con las conversiones de decimal a binario puro y de binario puro a decimal. La conversión de los números decimales a BCD y viceversa es muy sencilla pero los cálculos en BCD se llevan más tiempo y son algo más complicados que con números binarios puros. • Bit Es el acrónimo de Binary digit (dígito binario). Un bit es un dígito del sistema de numeración binario. Mientras que en el sistema de numeración decimal se usan diez dígitos, en el binario se usan sólo dos dígitos, el 0 y el 1. Un bit o dígito puede representar uno de esos dos valores, 0 o 1. El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cuales quiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, rojo o azul, etc. Basta con asignar uno de esos valores al estado de “apagado” (0) y otro al estado de “encendido” (1). • Byte Es una secuencia de bits contiguos, cuyo tamaño depende del código de información o código de caracteres en que sea definido. Se usa comúnmente como unidad básica de almacenamiento de datos en combinación con los prefijos de cantidad. Originalmente el byte fue elegido para ser un submúltiplo del tamaño de la palabra de un ordenador, desde cinco a doce bits. Aunque la popularidad de las microcomputadoras y los microprocesadores de 8 bits en los años 1980 ha hecho obsoleta la utilización de otra cantidad que no sean 8 bits. El término octeto se utiliza ampliamente como un sinónimo preciso donde la ambigüedad es indeseable (por ejemplo, en definiciones de protocolos). 88 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS La unidad byte no tiene símbolo establecido internacionalmente, aunque en países anglosajones es frecuente la “B” mayúscula, mientras que en los francófonos es la “o” minúscula (de octet); la ISO y la IEC recomiendan restringir el empleo de esta unidad a los octetos (bytes de 8 bits). • Comandos AT Instrucciones codificadas que conforman un lenguaje de comunicación entre el hombre y un terminal módem/GSM. • Corriente alterna AC Se denomina corriente alterna (abreviada CA en español y AC en inglés, de alternating current) a la corriente eléctrica en la que la magnitud y el sentido varían cíclicamente. La forma de oscilación de la corriente alterna más comúnmente utilizada es la de una oscilación sinusoidal, puesto que se consigue una transmisión más eficiente de la energía. Sin embargo, en ciertas aplicaciones se utilizan otras formas de oscilación periódicas, tales como la triangular o la cuadrada. Ilustración 45. Corriente alterna AC Utilizada genéricamente, la CA se refiere a la forma en la cual la electricidad llega a los hogares y a las empresas. Sin embargo, las señales de audio y de radio transmitidas por los cables eléctricos, son también ejemplos de corriente alterna. En estos usos, el fin más importante suele ser la transmisión y recuperación de la información codificada (o modulada) sobre la señal de la CA. • Corriente continua DC La corriente continua o corriente directa (CC en español, en inglés DC, de Direct Current) es el flujo continuo de electrones a través de un conductor entre dos puntos de distinto potencial. A diferencia de la corriente alterna (CA en español, AC en inglés), en la corriente continua las cargas eléctricas circulan siempre en la misma dirección (es decir, los terminales de mayor y de menor potencial son siempre los mismos). Aunque comúnmente se identifica la corriente continua con la corriente constante (por ejemplo la suministrada por una batería), es corriente continua toda corriente que mantenga siempre la 89 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS • ROM ROM es la sigla de Read Only Memory, que significa “Memoria de Solo Lectura”: Una memoria de semiconductor destinada a ser leída y no destructible, es decir, que no se puede escribir sobre ella y que conserva intacta la información almacenada, incluso en el caso de que se interrumpa la corriente(memoria no volátil). La ROM suele almacenar la configuración del sistema o el programa de arranque de la computadora. Las memorias de sólo lectura o ROM son utilizadas como medio de almacenamiento de datos en las computadoras. Debido a que no se puede escribir fácilmente, su uso principal reside en la distribución de programas que están estrechamente ligados al soporte físico de la computadora, y que seguramente no necesitarán actualización. Por ejemplo una tarjeta gráfica puede realizar algunas funciones básicas a través de los programas contenidos en la ROM. • RS-232 RS232 (Recommended Standard 232, también conocido como Electronic Industries Alliance RS-232C) es una interfaz que designa una norma para el intercambio de una serie de datos binarios entre un DTE (Equipo terminal de datos) y un DCE (Data Communication Equipment, Equipo de Comunicación de datos), aunque existen otras en las que también se utiliza la interfaz RS-232. En particular, existen ocasiones en que interesa conectar otro tipo de equipamientos, como pueden ser computadores. Evidentemente, en el caso de interconexión entre los mismos, se requerirá la conexión de un DTE (Data Terminal Equipment) con otro DTE. Para ello se utiliza una conexión entre los dos DTE sin usar módem, por ello se llama: null módem ó módem nulo. El RS-232 consiste en un conector tipo DB-25 (de 25 pines), aunque es normal encontrar la versión de 9 pines (DE-9, o popularmente también denominados DB-9), más barato e incluso más extendido para cierto tipo de periféricos (como el ratón serie del PC). • Rutina En informática, una subrutina o subprograma (también llamada procedimiento, función o rutina), como idea general se presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica. Una subrutina al ser llamada dentro de un programa hace que el código principal se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se llama a una macro, el compilador toma el código de la macro y lo implanta donde fue llamado, aumentando así el código fuente y por consiguiente el objeto. 96 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Las declaraciones de subrutinas generalmente son especificadas por: • Un nombre único en el ámbito: nombre de la función con el que se identifica y se distingue de otras. No podrá haber otra función ni procedimiento con ese nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos). • Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolverá al terminar su ejecución. • Una lista de parámetros: especificación del conjunto de argumentos (pueden ser cero, uno o más) que la función debe recibir para realizar su tarea. • El código u órdenes de procesamiento: conjunto de órdenes y sentencias que debe ejecutar la subrutina. • Sensor Un sensor es un dispositivo que detecta manifestaciones de cualidades o fenómenos físicos, como la energía, velocidad, aceleración, tamaño, cantidad, temperatura, etc. y convierte estos fenómenos físicos en un cambio de alguna de las siguientes variables, por ejemplo: resistencia eléctrica (como una RTD), capacidad eléctrica (como un sensor de humedad), tensión eléctrica (como un termopar), corriente eléctrica (como un fototransistor), etc. Es un dispositivo que aprovecha una de sus propiedades con el fin de adaptar la señal que mide para que la pueda interpretar otro elemento. Un sensor es un tipo de transductor que transforma la magnitud que se quiere medir, en otra, que facilita su medida. • Señal analógica Una señal analógica es un tipo de señal generado por algún tipo de fenómeno electromagnético y que es representable por una función matemática continua en la que es variable su amplitud y período (representando un dato de información) en función del tiempo. Algunas magnitudes físicas comúnmente portadoras de una señal de este tipo son eléctricas como la intensidad, la tensión y la potencia pero también pueden ser hidráulicas como la presión, térmicas como la temperatura, mecánicas, etc. La magnitud también puede ser cualquier objeto medible como los beneficios o pérdidas de un negocio. En la naturaleza, el conjunto de señales que percibimos son analógicas, así la luz, el sonido, la energía etc., son señales que tienen una variación continua. Incluso la descomposición de la luz en el arco iris vemos como se realiza de una forma suave y continúa. Una onda senoidal es una señal analógica de una sola frecuencia. Los voltajes de la voz y del vídeo son señales analógicas que varían de acuerdo con el sonido o variaciones de luz que corresponden a la información que se está transmitiendo. • Señal digital La señal digital es un tipo de señal generada por algún tipo de fenómeno electromagnético en que cada signo que codifica el contenido de la misma puede ser analizado en término de algunas magnitudes que representen 97 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS valores discretos, en lugar de valores dentro de un cierto rango. Por ejemplo, el interruptor de la luz sólo puede tomar dos valores o estados: abierto o cerrado, o la misma lámpara: encendida o apagada. Esto no significa que la señal físicamente sea discreta ya que los campos electromagnéticos suelen ser continuos, sino que en general existe una forma de discretizarla unívocamente. Los sistemas digitales, como por ejemplo el ordenador, usan lógica de los dos estados representados por dos niveles de tensión eléctrica, uno alto, H y otro bajo, L (de High y Low, respectivamente, en inglés). Por abstracción, dichos estados se sustituyen por ceros y unos, lo que facilita la aplicación de la lógica y la aritmética binaria. Si el nivel alto se representa por 1 y el bajo por 0, se habla de lógica positiva y en caso contrario de lógica negativa. Cabe mencionar que, además de los niveles, en una señal digital están las transiciones de alto a bajo y de bajo a alto, denominadas flanco de bajada y de subida, respectivamente. En la ilustración se muestra una señal digital donde se identifican los niveles y flancos. Ilustración 47. Señal digital • Software Se denomina software, programática, equipamiento lógico o soporte lógico a todos los componentes intangibles de una computadora o microcontrolador, es decir, al conjunto de programas y procedimientos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware). • Tolerancia Se aplica a los sensores como componente electrónico (no a los instrumentos), y se relaciona con la dispersión en los parámetros del sensor debidos a su proceso de fabricación. • UART Su misión principal es convertir los datos recibidos del bus del PC/μC en formato paralelo, a un formato serie que será utilizado en la transmisión hacia el exterior. También realiza el proceso contrario: transformar los datos serie recibidos del exterior en un formato paralelo entendible por el bus. Universal 98 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS indica que el formato de los datos y la velocidad de transmisión son configurables y los niveles de tensión son adaptados por un circuito externo. • USB El Universal Serial Bus (Bus Universal en Serie) es un estándar industrial desarrollado en los años 1990 que define los cables conectores y protocolos usados en un bus para conectar, comunicar y proveer de alimentación eléctrica entre ordenadores, periféricos y dispositivos electrónicos. La iniciativa del desarrollo partió de Intel, en conjunto con una decena de compañías, pero actualmente agrupa más de 685. USB fue diseñado para estandarizar la conexión de periféricos. Su éxito ha sido total y ha desplazado a conectores como el puerto serie, puerto paralelo, puerto de juegos, Apple Desktop Bus o PS/2 a la consideración de dispositivos obsoletos a eliminar de los modernos ordenadores. En la siguiente ilustración podemos ver los distintos tipos y su patillaje: Ilustración 48. Tipos de USB y su patillaje 99 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 6.2 ABREVIATURAS • LED: Light-Emitting Diode. • DC: Discontinuous Current. • AC: Alternating Current. • BCD: Binary-Coded Decimal. • V, mV, uV: Voltios, milivoltios, microvoltios. • A, mA, uA: Amperios, miliamperios, microamperios. • s, ms, us, ns: Segundos, milisegundos, microsegundos, nanosegundos. • M, cm, mm: Metros, centímetros, milímetros. • I2C: Inter-Integrated Circuit. • IDE: Development Environment • RTC: Real-Time Clock • UART: Universal Asynchronous Receiver/Transmitte. • SMS: Short Message Service 100 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPITULO VII NORMATIVA En la actualidad se están desarrollando trabajos de normalización relacionados con la domótica tanto en organismos europeos (CENELEC, CEN), en organismos internacionales (ISO/IEC) como en organismos nacionales (AENOR). A continuación se resumen estos trabajos. 7.1 CENELEC 7.1.1 Comité técnico 205 El Comité Técnico 205 “Sistemas electrónicos para viviendas y edificios”, se encarga de preparar normas para todos los aspectos de sistemas electrónicos domésticos y en edificios en relación a la sociedad de la información. En más detalle, preparar normas para asegurar la integración de un espectro amplio de aplicaciones y aspectos de control y gestión de otras aplicaciones en y entorno a viviendas y edificios, incluyendo las pasarelas residenciales a diferentes medios de transmisión y redes públicas, teniendo en cuenta todo lo relativo a EMC y seguridad eléctrica y funcional. TC 205 no preparará normas de producto sino los requisitos de actuación necesarios y los interfaces de hardware y software necesarios. Las normas deberán especificar ensayos de conformidad. 7.1.2 Normas publicadas La estructura normativa del TC 205 se basa en dos series de normas, la EN 50491, que especifica los requisitos generales comunes para todos los sistemas domóticos, y la EN 50090, que especifica los requisitos para el protocolo Konnex, dicho protocolo trata comunicaciones estándar, multimedio y abierto, Normalizado en Europa cuyo ámbito actuación se reduce a viviendas y, en menor medida, edificios. 101 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 7.2 CEN 7.2.1 Comité técnico 247 El Comité Técnico 247 “Automatización de Edificios, Controles y Gestión de Edificios”, se encarga de la normalización de automatización de edificios, controles y gestión de edificios y servicios para edificios residenciales y no residenciales. Estas normas incluyen definiciones, requisitos, funciones y métodos de ensayo de los productos de automatización de edificios y sistemas para control automático de instalaciones de servicios en edificios. Las medidas de integración primarias incluyen interfaces de aplicación, sistemas y servicios para asegurar una gestión técnica de edificios eficiente en cooperación con la gestión comercial y de infraestructuras del edificio. Se excluyen de su campo de aplicación las áreas de automatización de edificios bajo la responsabilidad de otros comités de CEN/CENELEC. 7.2.2 Normas publicadas La estructura normativa del TC 247 se basa en dos series de normas, la EN 14908, que trata sobre la comunicación abierta de datos para automatización, control y gestión de edificios, y la EN 13321, que especifica la comunicación de datos en automatización de edificios, los controles y la construcción de sistemas de gestión. 7.3 ISO/IEC 7.3.1 Subcomité 25 El Subcomité 25 “interconexión en la tecnología de la información” es el responsable de la interconexión en la tecnología de la información. Dentro de su campo de aplicación está la normalización de sistemas microprocesadores, así como de interfaces, protocolos y medios de interconexión asociados para equipos de tecnología de la información, generalmente para entornos comerciales y residenciales. Se excluye el desarrollo de normas para redes de telecomunicaciones e interfaces a redes de comunicación. 7.3.2 Normas publicadas La estructura normativa del subcomité 25 trabaja las normativas: ISO/IEC 15045, ISO/IEC 14762, ISO/IEC 15067 y ISO/IEC 14543. Todas estas normativas tratan los sistemas electrónicos en casas domóticas. 102 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 7.4 AENOR 7.4.1 Subcomité 205 El Subcomité 205 es el encargado de la instalación y evaluación de las instalaciones domóticas. Tiene como objetivos: impulsar el desarrollo del mercado, aclarar la confusión en el mercado (un detector de gas por si solo no es un sistema domótico), establecer unos requisitos mínimos que debe cumplir un sistema domótico y la posible certificación de instalaciones domóticas. 7.4.2 Norma EA 0026 El subcomité 205 trabaja la norma EA 0026 que tiene como objeto establecer los requisitos mínimos que deben cumplir las instalaciones de sistemas domóticos para su correcto funcionamiento y las prescripciones generales para la evaluación de aptitud en viviendas. Esta norma es la base para la Certificación de Sistemas Domóticos en Viviendas (AEN/CTC030 de AENOR) La norma EA 0026 va dirigida tanto al usuario, como al instalador del sistema domótico y al promotor de la vivienda. Al usuario le sirve para: definir sus necesidades permitiendo escoger la opción más adecuada a su realidad, valorar presupuestos que le permitirá conocer y comparar las opciones del mercado y como herramienta para la comparación de las distintas ofertas domóticas. Al instalador le será útil como: proceso de certificación voluntario que le permite una diferenciación respecto al resto de instaladores; optimización de instalaciones tradicionales y como diversificación de sus actividades: apuesta por nuevas oportunidades de negocio. Finalmente el promotor podrá utilizar esta norma para: satisfacer al usuario, reducir el período de venta y evolucionar hacia la sostenibilidad en el sector residencial. 103 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS CAPITULO VIII BIBLIOGRAFÍA 8.1 PÁGINAS WEB Información sobre domótica. Historia, desarrollo, conceptos básicos: www.upcommons.upc.edu, Sistemas Domóticos www.theslogan.es, Domótica, la Revolución del Bienestar www.monografias.com/trabajos5/edin/edin.shtml, Edificios Inteligentes y Casa Domóticas. www.webdehogar.com/decoracion/domotica-hogar-casa-inteligente.htm Información acerca de sensores de movimiento y contactos magnéticos. Tipo de sensores, características, precios,…: www.homesecuritystore.com Páginas web para la compra de los distintos componentes y sensores con información acerca de los mismos a través de sus datasheets: www.es.rs-online.com/web/ www.microchip.com/ www.cooking-hacks.com www.diotronic.com www.arduino.cc Página web en la cual encontrar el datasheet de los componentes: www.alldatasheet.es Consultas sobre programación y placa de desarrollo. Páginas web con foros donde poder resolver dudas sobre programación: www.foro.elhacker.net/electronica www.todopic.com.ar/foros/ 104 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS www.mikroe.com www.ccsinfo.com/forum www.ucontrol.com.ar/forosmf/ www.forosdeelectronica.com Información sobre normativa y normalización de domótica en organismos nacionales, europeos e internacionales : www.cedom.es/normativa.php Información en general: www.es.wikipedia.org 8.2 LIBROS Conocimientos básicos para manejar el compilador CCS y el programa de simulación Proteus y ayuda sobre lenguaje C: García Breijo, Eduardo. “Compilador C CCS Y Simulador Proteus Para Microcontroladores Pic”. Alfaomega, 2008. Manual de funcionamiento del compilador PCW de CCS. Explicación de las distintas funciones, declaración de variables,…: Cánovas López, Andrés. “Manual de usuario del compilador PCW de CCS”. Información sobre los microcontroladores PIC. Funcionamiento, estructura, posibles usos y ejemplos explicativos: Tavernier, Christian. “Microcontroladores PIC”. Paraninfo, 1997. Lenguaje Basic. Desarrollo de las funciones, declaración de variables, etc. en este lenguaje de programación: Ibrahim, Dogan. “Programación de microcontroladores PIC. Desarrollo de 30 proyectos con PIC BASIC y PIC BASIC Profesional”. Marcombo, 2007. Programación de microcontroladores. Funcionamiento, estructura, posibles usos y ejemplos explicativos: Carretero Pérez, Jesús; García Carballeira, Félix; Pérez Lobato, José Manuel; Fernández Muñoz, Javier; Calderón Mateos, Alejandro. “Fundamentos de Programación”. Thompson Paraninfo 105 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS //////////FUNCION NUEVA CLAVE void nueva_clave_admin(void) //función que añade la nueva clave administrativa { tecla=0; //limpio las variables int aux=0; d=0; lcd_putc("\fNueva clave:\n"); //presentación delay_ms(500); for(aux=0;aux<3;aux++) { while(tecla==0 && bandera==0); { flag_teclado=0; lcd_putc("*"); clave[d]=tecla; if(d<3) { escribir_clave_en_eeprom(d); //guardamos la nueva clave en la memoria EEPROM tecla=0; d++; } else { d=0; limpiar_clave(); } } } } //////////ACTIVAR ALARMA void activar_alarma(void) //función que activa la alarma { int p; tecla=0; d=0; int aux=0; leer_clave_en_eeprom(d); lcd_putc("\fEscribir clave:\n"); delay_ms(500); for(aux=0;aux<3;aux++) { while(tecla==0 && bandera==0); { lcd_putc("*"); clave[d]=tecla; d++; if (d==3) //Si ya se han introducido todos los valores de la clave { p=comparar_claves(d); //compara ambas claves 112 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS if (p==0) //si son iguales... {lcd_putc("\fAlarma Activada"); delay_ms(2000); alarm_cont = 0; limpiar_clave(); //pongo a '0' la variable clave desactivar_alarma(); //vamos a la rutina para desactivar la alarma } if (p!=0) //si son distintas... {lcd_putc("\fClave Incorrecta"); delay_ms(2000); limpiar_clave(); //pongo a '0' la variable clave conteo_intentos(); } } else { tecla=0; } } } } //////////DESACTIVAR ALARMA void desactivar_alarma(void) //función que desactiva la alarma { int p; tecla=0; d=0; int aux=0; enable_interrupts(INT_EXT); lcd_putc("\fEscribir clave:\n"); delay_ms(500); for(aux=0;aux<3;aux++) { while(tecla==0 && bandera==0); { lcd_putc("*"); clave[d]=tecla; d++; if (d==3) //Si ya se han introducido todos los valores de la clave { leer_clave_en_eeprom(d); //lee la contraseña que antes hemos cambiado p=comparar_claves(d); //compara ambas claves if (p==0) //si son iguales... {lcd_putc("\fAlarma\nDesactivada"); delay_ms(2000); alarm_cont = 0; limpiar_clave(); //pongo a '0' la variable clave disable_interrupts(INT_EXT); } if (p!=0) //si son distintas... {lcd_putc("\fClave Incorrecta"); delay_ms(2000); 113 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS limpiar_clave(); //pongo a '0' la variable clave conteo_intentos(); } } else { tecla=0; } } } } //////////ESCRIBIR_CLAVE_EN_EEPROM void escribir_clave_en_eeprom(int d) //función que escribe las claves en la memoria eeprom { write_eeprom (d,tecla); //guardamos cada valor de la variable global delay_ms(20); //en la dirección d + 0 (para no pisar datos) de la eeprom d++; //en una palabra escribe de la posición 0 a la 2 (3 lugares) } //////////LEER_CLAVE_EN_EEPROM void leer_clave_en_eeprom(int d) //función que lee las claves y las guarda en su correspondiente variable { for (d=0;d<3;d++) { clave_eeprom_admin[d] = read_eeprom(d); //guardamos cada valor de la direccion i + 0 (para no pisar datos) delay_ms(20); //de la eeprom en la variable global correspondiente } } /******************************************************************************* FUNCIONES ESCRITURA Y LECTURA EEPROM INTERNA *******************************************************************************/ void write_string_eeprom(int address,char *data) { while(*data!=0) { write_eeprom(address++,*data); data++; } write_eeprom(address,0); } void read_string_eeprom(int address,char *sl) { sl--; do { 114 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS sl++; *sl=read_eeprom(address++); }while(*sl!=0); } ////////////FUNCION CONTEO INTENTOS void conteo_intentos(void) //función que cuenta el numero de intentos de ingreso de contraseña { if (alarm_cont==2) { alarm_cont = 0; //pongo a cero el contador de errores alarma_general(); } else { alarm_cont++; tecla=0; //limpio las variables d=0; } } //////////FUNCION ALARMA GENERAL void alarma_general (void) //función que enciende la sirena { set_tris_a(0b11110111); //pin A3 como salida lcd_putc("\f" ) ; //borra pantalla delay_ms(100); output_high(pin_A3); //enciende la sirena durante 10 seg y muestra mensaje lcd_putc("\f ALARMA "); delay_ms(10000); output_low(pin_A3); //apaga la sirena alarm_cont = 0; } ///////////FUNCION REGRESO MENU void regreso_menu(void) { int p; tecla=0; d=0; int aux=0; limpiar_clave(); lcd_putc("\fEscribir clave:\n"); delay_ms(500); for(aux=0;aux<3;aux++) { while(tecla==0 && bandera==0); { 115 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS flag_teclado=0; lcd_putc("*"); clave[d]=tecla; d++; if (d==3) //Si ya se han introducido todos los valores de la clave { p=comparar_claves(d); //compara ambas claves if (p==0) //si son iguales... {lcd_putc("\fClave Correcta"); delay_ms(2000); limpiar_clave(); //pongo a '0' la variable clave disable_interrupts(INT_EXT); } if (p!=0) //si son distintas... {lcd_putc("\fClave Incorrecta"); delay_ms(2000); limpiar_clave(); //pongo a '0' la variable clave alarma_general(); } } else { tecla=0; } } } } 116 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS 9.2 MANUAL DE USUARIO DEL SISTEMA DE ALARMA Este manual explica todo lo que se necesita saber acerca del sistema de alarma y explica paso a paso las instrucciones para todas las funciones del sistema. El sistema de seguridad está compuesto de un display, un interruptor que simula los sensores, un interruptor de reset y un teclado para la introducción de las contraseñas y navegación por el menú. A continuación se muestra una imagen del sistema de alarma. Ilustración 49. Sistema de alarma 117 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Una vez encendido el sistema de alarma mediante la fuente de alimentación lo primero que se visualiza es un mensaje de bienvenida. Ilustración 50. Mensaje de bienvenida A continuación el sistema nos lleva al menú principal en el que aparece las dos opciones principales del sistema de alarma: activar alarma y cambiar clave. Ilustración 51. Menú principal 118 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS El sistema por defecto viene con la contraseña de seguridad “123” por lo que se recomienda al usuario cambiarla por otra para mayor seguridad. La contraseña de seguridad se utiliza tanto para cambiar de contraseña como para activar y desactivar la alarma por lo que tiene una gran importancia. Para cambiar la contraseña primero pulsaríamos la tecla “1” para entrar en el submenú “Cambiar clave”. Después introduciríamos la contraseña de seguridad (“123” en el caso de que se realice la primera vez). Este procedimiento es el mismo tanto se cambie la contraseña por primera vez como en posteriores cambios. Ilustración 52. Cambio de clave Si la clave introducida es la correcta aparece un mensaje confirmándolo y si no, aparecerá un mensaje avisándonos de que la clave es incorrecta y se retornara al menú principal sumando un intento de los tres que se disponen antes de que salte la alarma. 119 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Ilustración 53. Mensaje de “Clave correcta” Ilustración 54. Mensaje de “Clave incorrecta” 120 Rubén Morón Uche
Sistema de seguridad para la supervisión de viviendas mediante microcontrolador PIC y red SMS Cuando se introduce la clave correcta, aparece un mensaje “Nueva clave:” e introduciríamos la nueva contraseña de seguridad. Ilustración 55. Nueva clave Para activar y desactivar la alarma, el procedimiento es muy similar al del cambio de clave. Primero se pulsaría la tecla “0” cuando se estuviera en el menú principal. De esta manera se entra en el submenú “Activar alarma”. Para activarla se tiene que introducir la contraseña de seguridad. Si la clave introducida es la correcta aparece un mensaje confirmándolo y si no, aparecerá un mensaje avisándonos de que la clave es incorrecta y se retornara al menú principal sumando un intento de los tres que se disponen antes de que salte la alarma, al igual que ocurría en el caso del cambio de clave. 121 Rubén Morón Uche
PIC16F87X DS30292C-page 2 2001 Microchip Technology Inc. Pin Diagrams PIC16F876/873 10 11 2 3 4 5 6 1 8 7 9 12 13 14 15 16 17 18 19 20 23 24 25 26 27 28 22 21 MCLR/VPP RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CKI RA5/AN4/SS VSS OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2 RB1 RB0/INT VDD VSS RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 44 8 7 6 5 4 3 2 1 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 9 PIC16F877 RA4/T0CKI RA5/AN4/SS RE0/RD/AN5 OSC1/CLKIN OSC2/CLKOUT RC0/T1OSO/T1CK1 NC RE1/WR/AN6 RE2/CS/AN7 VDD VSS RB3/PGM RB2 RB1 RB0/INT VDD VSS RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT RA3/AN3/VREF+ RA2/AN2/VREFRA1/AN1 RA0/AN0 MCLR/VPP NC RB7/PGD RB6/PGC RB5 RB4 NC NC RC6/TX/CK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2 RD1/PSP1 RD0/PSP0 RC3/SCK/SCL RC2/CCP1 RC1/T1OSI/CCP2 10 11 2 3 4 5 6 1 18 19 20 21 22 12 13 14 15 38 8 7 44 43 42 41 40 39 16 17 29 30 31 32 33 23 24 25 26 27 28 36 34 35 9 PIC16F877 37 RA3/AN3/VREF+ RA2/AN2/VREFRA1/AN1 RA0/AN0 MCLR/VPP NC RB7/PGD RB6/PGC RB5 RB4 NC RC6/TX/CK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2 RD1/PSP1 RD0/PSP0 RC3/SCK/SCL RC2/CCP1 RC1/T1OSI/CCP2 NC NC RC0/T1OSO/T1CKI OSC2/CLKOUT OSC1/CLKIN VSS VDD RE2/AN7/CS RE1/AN6/WR RE0/AN5/RD RA5/AN4/SS RA4/T0CKI RC7/RX/DT RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 VSS VDD RB0/INT RB1 RB2 RB3/PGM PLCC QFP PDIP, SOIC PIC16F874 PIC16F874
2001 Microchip Technology Inc. DS30292C-page 3 PIC16F87X Key Features PICmicro™ Mid-Range Reference Manual (DS33023) PIC16F873 PIC16F874 PIC16F876 PIC16F877 Operating Frequency DC - 20 MHz DC - 20 MHz DC - 20 MHz DC - 20 MHz RESETS (and Delays) POR, BOR (PWRT, OST) POR, BOR (PWRT, OST) POR, BOR (PWRT, OST) POR, BOR (PWRT, OST) FLASH Program Memory (14-bit words) 4K 4K 8K 8K Data Memory (bytes) 192 192 368 368 EEPROM Data Memory 128 128 256 256 Interrupts 13 14 13 14 I/O Ports Ports A,B,C Ports A,B,C,D,E Ports A,B,C Ports A,B,C,D,E Timers 3333 Capture/Compare/PWM Modules 2 2 2 2 Serial Communications MSSP, USART MSSP, USART MSSP, USART MSSP, USART Parallel Communications —PSP —PSP 10-bit Analog-to-Digital Module 5 input channels 8 input channels 5 input channels 8 input channels Instruction Set 35 instructions 35 instructions 35 instructions 35 instructions
PIC16F87X DS30292C-page 4 2001 Microchip Technology Inc. Table of Contents 1.0 Device Overview................................................................................................................................................... 5 2.0 Memory Organization.......................................................................................................................................... 11 3.0 I/O Ports.............................................................................................................................................................. 29 4.0 Data EEPROM and FLASH Program Memory.................................................................................................... 41 5.0 Timer0 Module.................................................................................................................................................... 47 6.0 Timer1 Module.................................................................................................................................................... 51 7.0 Timer2 Module.................................................................................................................................................... 55 8.0 Capture/Compare/PWM Modules....................................................................................................................... 57 9.0 Master Synchronous Serial Port (MSSP) Module............................................................................................... 65 10.0 Addressable Universal Synchronous Asynchronous Receiver Transmitter (USART) ........................................ 95 11.0 Analog-to-Digital Converter (A/D) Module......................................................................................................... 111 12.0 Special Features of the CPU............................................................................................................................. 119 13.0 Instruction Set Summary................................................................................................................................... 135 14.0 Development Support ....................................................................................................................................... 143 15.0 Electrical Characteristics................................................................................................................................... 149 16.0 DC and AC Characteristics Graphs and Tables................................................................................................ 177 17.0 Packaging Information ...................................................................................................................................... 189 Appendix A: Revision History .................................................................................................................................... 197 Appendix B: Device Differences ................................................................................................................................ 197 Appendix C: Conversion Considerations ................................................................................................................... 198 Index .......................................................................................................................................................................... 199 On-Line Support......................................................................................................................................................... 207 Reader Response...................................................................................................................................................... 208 PIC16F87X Product Identification System................................................................................................................. 209 TO OUR VALUED CUSTOMERS It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and enhanced as new volumes and updates are introduced. If you have any questions or comments regarding this publication, please contact the Marketing Communications Department via E-mail at
[email protected] or fax the Reader Response Form in the back of this data sheet to (480) 792-4150. We welcome your feedback. Most Current Data Sheet To obtain the most up-to-date version of this data sheet, please register at our Worldwide Web site at: http://www.microchip.com You can determine the version of a data sheet by examining its literature number found on the bottom outside corner of any page. The last character of the literature number is the version number, (e.g., DS30000A is version A of document DS30000). Errata An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for current devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the revision of silicon and revision of document to which it applies. To determine if an errata sheet exists for a particular device, please check with one of the following: •Microchip’s Worldwide Web site; http://www.microchip.com •Your local Microchip sales office (see last page) •The Microchip Corporate Literature Center; U.S. FAX: (480) 792-7277 When contacting a sales office or the literature center, please specify which device, revision of silicon and data sheet (include literature number) you are using. Customer Notification System Register on our web site at www.microchip.com/cn to receive the most current information on all of our products.
2001 Microchip Technology Inc. DS30292C-page 5 PIC16F87X 1.0 DEVICE OVERVIEW This document contains device specific information. Additional information may be found in the PICmicro™ Mid-Range Reference Manual (DS33023), which may be obtained from your local Microchip Sales Representative or downloaded from the Microchip website. The Reference Manual should be considered a complementary document to this data sheet, and is highly recommended reading for a better understanding of the device architecture and operation of the peripheral modules. There are four devices (PIC16F873, PIC16F874, PIC16F876 and PIC16F877) covered by this data sheet. The PIC16F876/873 devices come in 28-pin packages and the PIC16F877/874 devices come in 40-pin packages. The Parallel Slave Port is not implemented on the 28-pin devices. The following device block diagrams are sorted by pin number; 28-pin for Figure 1-1 and 40-pin for Figure 1-2. The 28-pin and 40-pin pinouts are listed in Table 1-1 and Table 1-2, respectively. FIGURE 1-1: PIC16F873 AND PIC16F876 BLOCK DIAGRAM FLASH Program Memory 13 Data Bus 8 14 Program Bus Instruction reg Program Counter 8 Level Stack (13-bit) RAM File Registers Direct Addr 7 RAM Addr(1) 9 Addr MUX Indirect Addr FSR reg STATUS reg MUX ALU W reg Power-up Timer Oscillator Start-up Timer Power-on Reset Watchdog Timer Instruction Decode & Control Timing Generation OSC1/CLKIN OSC2/CLKOUT MCLR VDD, VSS PORTA PORTB PORTC RA4/T0CKI RA5/AN4/SS RB0/INT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT 8 8 Brown-out Reset Note 1: Higher order bits are from the STATUS register. USART CCP1,2 Synchronous 10-bit A/DTimer0 Timer1 Timer2 Serial Port RA3/AN3/VREF+ RA2/AN2/VREFRA1/AN1 RA0/AN0 8 3 Data EEPROM RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD Device Program FLASH Data Memory Data EEPROM PIC16F873 4K 192 Bytes 128 Bytes PIC16F876 8K 368 Bytes 256 Bytes In-Circuit Debugger Low Voltage Programming
PIC16F87X DS30292C-page 6 2001 Microchip Technology Inc. FIGURE 1-2: PIC16F874 AND PIC16F877 BLOCK DIAGRAM FLASH Program Memory 13 Data Bus 8 14 Program Bus Instruction reg Program Counter 8 Level Stack (13-bit) RAM File Registers Direct Addr 7 RAM Addr(1) 9 Addr MUX Indirect Addr FSR reg STATUS reg MUX ALU W reg Power-up Timer Oscillator Start-up Timer Power-on Reset Watchdog Timer Instruction Decode & Control Timing Generation OSC1/CLKIN OSC2/CLKOUT MCLR VDD, VSS PORTA PORTB PORTC PORTD PORTE RA4/T0CKI RA5/AN4/SS RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RE0/AN5/RD RE1/AN6/WR RE2/AN7/CS 8 8 Brown-out Reset Note 1: Higher order bits are from the STATUS register. USART CCP1,2 Synchronous 10-bit A/DTimer0 Timer1 Timer2 Serial Port RA3/AN3/VREF+ RA2/AN2/VREFRA1/AN1 RA0/AN0 Parallel Slave Port 8 3 Data EEPROM RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD Device Program FLASH Data Memory Data EEPROM PIC16F874 4K 192 Bytes 128 Bytes PIC16F877 8K 368 Bytes 256 Bytes In-Circuit Debugger Low-Voltage Programming RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
2001 Microchip Technology Inc. DS30292C-page 7 PIC16F87X TABLE 1-1: PIC16F873 AND PIC16F876 PINOUT DESCRIPTION Pin Name DIP Pin# SOIC Pin# I/O/P Type Buffer Type Description OSC1/CLKIN 9 9 I ST/CMOS(3) Oscillator crystal input/external clock source input. OSC2/CLKOUT 10 10 O —Oscillator crystal output. Connects to crystal or resonator in crystal oscillator mode. In RC mode, the OSC2 pin outputs CLKOUT which has 1/4 the frequency of OSC1, and denotes the instruction cycle rate. MCLR/VPP 1 1 I/P ST Master Clear (Reset) input or programming voltage input. This pin is an active low RESET to the device. PORTA is a bi-directional I/O port. RA0/AN0 2 2 I/O TTL RA0 can also be analog input0. RA1/AN1 3 3 I/O TTL RA1 can also be analog input1. RA2/AN2/VREF4 4 I/O TTL RA2 can also be analog input2 or negative analog reference voltage. RA3/AN3/VREF+ 5 5 I/O TTL RA3 can also be analog input3 or positive analog reference voltage. RA4/T0CKI 6 6 I/O ST RA4 can also be the clock input to the Timer0 module. Output is open drain type. RA5/SS/AN4 7 7 I/O TTL RA5 can also be analog input4 or the slave select for the synchronous serial port. PORTB is a bi-directional I/O port. PORTB can be software programmed for internal weak pull-up on all inputs. RB0/INT 21 21 I/O TTL/ST(1) RB0 can also be the external interrupt pin. RB1 22 22 I/O TTL RB2 23 23 I/O TTL RB3/PGM 24 24 I/O TTL RB3 can also be the low voltage programming input. RB4 25 25 I/O TTL Interrupt-on-change pin. RB5 26 26 I/O TTL Interrupt-on-change pin. RB6/PGC 27 27 I/O TTL/ST(2) Interrupt-on-change pin or In-Circuit Debugger pin. Serial programming clock. RB7/PGD 28 28 I/O TTL/ST(2) Interrupt-on-change pin or In-Circuit Debugger pin. Serial programming data. PORTC is a bi-directional I/O port. RC0/T1OSO/T1CKI 11 11 I/O ST RC0 can also be the Timer1 oscillator output or Timer1 clock input. RC1/T1OSI/CCP2 12 12 I/O ST RC1 can also be the Timer1 oscillator input or Capture2 input/Compare2 output/PWM2 output. RC2/CCP1 13 13 I/O ST RC2 can also be the Capture1 input/Compare1 output/ PWM1 output. RC3/SCK/SCL 14 14 I/O ST RC3 can also be the synchronous serial clock input/output for both SPI and I2C modes. RC4/SDI/SDA 15 15 I/O ST RC4 can also be the SPI Data In (SPI mode) or data I/O (I2C mode). RC5/SDO 16 16 I/O ST RC5 can also be the SPI Data Out (SPI mode). RC6/TX/CK 17 17 I/O ST RC6 can also be the USART Asynchronous Transmit or Synchronous Clock. RC7/RX/DT 18 18 I/O ST RC7 can also be the USART Asynchronous Receive or Synchronous Data. VSS 8, 19 8, 19 P —Ground reference for logic and I/O pins. VDD 20 20 P —Positive supply for logic and I/O pins. Legend: I = input O = output I/O = input/output P = power — = Not used TTL = TTL input ST = Schmitt Trigger input Note 1: This buffer is a Schmitt Trigger input when configured as the external interrupt. 2: This buffer is a Schmitt Trigger input when used in Serial Programming mode. 3: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
PIC16F87X DS30292C-page 8 2001 Microchip Technology Inc. TABLE 1-2: PIC16F874 AND PIC16F877 PINOUT DESCRIPTION Pin Name DIP Pin# PLCC Pin# QFP Pin# I/O/P Type Buffer Type Description OSC1/CLKIN 13 14 30 I ST/CMOS(4) Oscillator crystal input/external clock source input. OSC2/CLKOUT 14 15 31 O —Oscillator crystal output. Connects to crystal or resonator in crystal oscillator mode. In RC mode, OSC2 pin outputs CLKOUT which has 1/4 the frequency of OSC1, and denotes the instruction cycle rate. MCLR/VPP 1 2 18 I/P ST Master Clear (Reset) input or programming voltage input. This pin is an active low RESET to the device. PORTA is a bi-directional I/O port. RA0/AN0 2 3 19 I/O TTL RA0 can also be analog input0. RA1/AN1 3 4 20 I/O TTL RA1 can also be analog input1. RA2/AN2/VREF4 5 21 I/O TTL RA2 can also be analog input2 or negative analog reference voltage. RA3/AN3/VREF+ 5 6 22 I/O TTL RA3 can also be analog input3 or positive analog reference voltage. RA4/T0CKI 6 7 23 I/O ST RA4 can also be the clock input to the Timer0 timer/ counter. Output is open drain type. RA5/SS/AN4 7 8 24 I/O TTL RA5 can also be analog input4 or the slave select for the synchronous serial port. PORTB is a bi-directional I/O port. PORTB can be software programmed for internal weak pull-up on all inputs. RB0/INT 33 36 8 I/O TTL/ST(1) RB0 can also be the external interrupt pin. RB1 34 37 9 I/O TTL RB2 35 38 10 I/O TTL RB3/PGM 36 39 11 I/O TTL RB3 can also be the low voltage programming input. RB4 37 41 14 I/O TTL Interrupt-on-change pin. RB5 38 42 15 I/O TTL Interrupt-on-change pin. RB6/PGC 39 43 16 I/O TTL/ST(2) Interrupt-on-change pin or In-Circuit Debugger pin. Serial programming clock. RB7/PGD 40 44 17 I/O TTL/ST(2) Interrupt-on-change pin or In-Circuit Debugger pin. Serial programming data. Legend: I = input O = output I/O = input/output P = power — = Not used TTL = TTL input ST = Schmitt Trigger input Note 1: This buffer is a Schmitt Trigger input when configured as an external interrupt. 2: This buffer is a Schmitt Trigger input when used in Serial Programming mode. 3: This buffer is a Schmitt Trigger input when configured as general purpose I/O and a TTL input when used in the Parallel Slave Port mode (for interfacing to a microprocessor bus). 4: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
2001 Microchip Technology Inc. DS30292C-page 9 PIC16F87X PORTC is a bi-directional I/O port. RC0/T1OSO/T1CKI 15 16 32 I/O ST RC0 can also be the Timer1 oscillator output or a Timer1 clock input. RC1/T1OSI/CCP2 16 18 35 I/O ST RC1 can also be the Timer1 oscillator input or Capture2 input/Compare2 output/PWM2 output. RC2/CCP1 17 19 36 I/O ST RC2 can also be the Capture1 input/Compare1 output/PWM1 output. RC3/SCK/SCL 18 20 37 I/O ST RC3 can also be the synchronous serial clock input/ output for both SPI and I2C modes. RC4/SDI/SDA 23 25 42 I/O ST RC4 can also be the SPI Data In (SPI mode) or data I/O (I2C mode). RC5/SDO 24 26 43 I/O ST RC5 can also be the SPI Data Out (SPI mode). RC6/TX/CK 25 27 44 I/O ST RC6 can also be the USART Asynchronous Transmit or Synchronous Clock. RC7/RX/DT 26 29 1 I/O ST RC7 can also be the USART Asynchronous Receive or Synchronous Data. PORTD is a bi-directional I/O port or parallel slave port when interfacing to a microprocessor bus. RD0/PSP0 19 21 38 I/O ST/TTL(3) RD1/PSP1 20 22 39 I/O ST/TTL(3) RD2/PSP2 21 23 40 I/O ST/TTL(3) RD3/PSP3 22 24 41 I/O ST/TTL(3) RD4/PSP4 27 30 2 I/O ST/TTL(3) RD5/PSP5 28 31 3 I/O ST/TTL(3) RD6/PSP6 29 32 4 I/O ST/TTL(3) RD7/PSP7 30 33 5 I/O ST/TTL(3) PORTE is a bi-directional I/O port. RE0/RD/AN5 8 9 25 I/O ST/TTL(3) RE0 can also be read control for the parallel slave port, or analog input5. RE1/WR/AN6 9 10 26 I/O ST/TTL(3) RE1 can also be write control for the parallel slave port, or analog input6. RE2/CS/AN7 10 11 27 I/O ST/TTL(3) RE2 can also be select control for the parallel slave port, or analog input7. VSS 12,31 13,34 6,29 P —Ground reference for logic and I/O pins. VDD 11,32 12,35 7,28 P —Positive supply for logic and I/O pins. NC —1,17,28, 40 12,13, 33,34 —These pins are not internally connected. These pins should be left unconnected. TABLE 1-2: PIC16F874 AND PIC16F877 PINOUT DESCRIPTION (CONTINUED) Pin Name DIP Pin# PLCC Pin# QFP Pin# I/O/P Type Buffer Type Description Legend: I = input O = output I/O = input/output P = power — = Not used TTL = TTL input ST = Schmitt Trigger input Note 1: This buffer is a Schmitt Trigger input when configured as an external interrupt. 2: This buffer is a Schmitt Trigger input when used in Serial Programming mode. 3: This buffer is a Schmitt Trigger input when configured as general purpose I/O and a TTL input when used in the Parallel Slave Port mode (for interfacing to a microprocessor bus). 4: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
PIC16F87X DS30292C-page 10 2001 Microchip Technology Inc. NOTES:
2001 Microchip Technology Inc. DS30292C-page 11 PIC16F87X 2.0 MEMORY ORGANIZATION There are three memory blocks in each of the PIC16F87X MCUs. The Program Memory and Data Memory have separate buses so that concurrent access can occur and is detailed in this section. The EEPROM data memory block is detailed in Section 4.0. Additional information on device memory may be found in the PICmicro Mid-Range Reference Manual, (DS33023). FIGURE 2-1: PIC16F877/876 PROGRAM MEMORY MAP AND STACK 2.1 Program Memory Organization The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. The PIC16F877/876 devices have 8K x 14 words of FLASH program memory, and the PIC16F873/874 devices have 4K x 14. Accessing a location above the physically implemented address will cause a wraparound. The RESET vector is at 0000h and the interrupt vector is at 0004h. FIGURE 2-2: PIC16F874/873 PROGRAM MEMORY MAP AND STACK PC<12:0> 13 0000h 0004h 0005h Stack Level 1 Stack Level 8 RESET Vector Interrupt Vector On-Chip CALL, RETURN RETFIE, RETLW 1FFFh Stack Level 2 Program Memory Page 0 Page 1 Page 2 Page 3 07FFh 0800h 0FFFh 1000h 17FFh 1800h PC<12:0> 13 0000h 0004h 0005h Stack Level 1 Stack Level 8 RESET Vector Interrupt Vector On-Chip CALL, RETURN RETFIE, RETLW 1FFFh Stack Level 2 Program Memory Page 0 Page 1 07FFh 0800h 0FFFh 1000h
PIC16F87X DS30292C-page 18 2001 Microchip Technology Inc. 2.2.2.1 STATUS Register The STATUS register contains the arithmetic status of the ALU, the RESET status and the bank select bits for data memory. The STATUS register can be the destination for any instruction, as with any other register. If the STATUS register is the destination for an instruction that affects the Z, DC or C bits, then the write to these three bits is disabled. These bits are set or cleared according to the device logic. Furthermore, the TO and PD bits are not writable, therefore, the result of an instruction with the STATUS register as destination may be different than intended. For example, CLRF STATUS will clear the upper three bits and set the Z bit. This leaves the STATUS register as 000u u1uu (where u = unchanged). It is recommended, therefore, that only BCF, BSF, SWAPF and MOVWF instructions are used to alter the STATUS register, because these instructions do not affect the Z, C or DC bits from the STATUS register. For other instructions not affecting any status bits, see the “Instruction Set Summary." REGISTER 2-1: STATUS REGISTER (ADDRESS 03h, 83h, 103h, 183h) Note: The C and DC bits operate as a borrow and digit borrow bit, respectively, in subtraction. See the SUBLW and SUBWF instructions for examples. R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x IRP RP1 RP0 TO PD ZDCC bit 7 bit 0 bit 7 IRP: Register Bank Select bit (used for indirect addressing) 1 = Bank 2, 3 (100h - 1FFh) 0 = Bank 0, 1 (00h - FFh) bit 6-5 RP1:RP0: Register Bank Select bits (used for direct addressing) 11 = Bank 3 (180h - 1FFh) 10 = Bank 2 (100h - 17Fh) 01 = Bank 1 (80h - FFh) 00 = Bank 0 (00h - 7Fh) Each bank is 128 bytes bit 4 TO: Time-out bit 1 = After power-up, CLRWDT instruction, or SLEEP instruction 0 = A WDT time-out occurred bit 3 PD: Power-down bit 1 = After power-up or by the CLRWDT instruction 0 = By execution of the SLEEP instruction bit 2 Z: Zero bit 1 = The result of an arithmetic or logic operation is zero 0 = The result of an arithmetic or logic operation is not zero bit 1 DC: Digit carry/borrow bit (ADDWF, ADDLW,SUBLW,SUBWF instructions) (for borrow, the polarity is reversed) 1 = A carry-out from the 4th low order bit of the result occurred 0 = No carry-out from the 4th low order bit of the result bit 0 C: Carry/borrow bit (ADDWF, ADDLW,SUBLW,SUBWF instructions) 1 = A carry-out from the Most Significant bit of the result occurred 0 = No carry-out from the Most Significant bit of the result occurred Note: For borrow, the polarity is reversed. A subtraction is executed by adding the two’s complement of the second operand. For rotate (RRF, RLF) instructions, this bit is loaded with either the high, or low order bit of the source register. Legend: R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’ - n = Value at POR ’1’ = Bit is set ’0’ = Bit is cleared x = Bit is unknown
2001 Microchip Technology Inc. DS30292C-page 19 PIC16F87X 2.2.2.2 OPTION_REG Register The OPTION_REG Register is a readable and writable register, which contains various control bits to configure the TMR0 prescaler/WDT postscaler (single assignable register known also as the prescaler), the External INT Interrupt, TMR0 and the weak pull-ups on PORTB. REGISTER 2-2: OPTION_REG REGISTER (ADDRESS 81h, 181h) Note: To achieve a 1:1 prescaler assignment for the TMR0 register, assign the prescaler to the Watchdog Timer. R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 bit 7 bit 0 bit 7 RBPU: PORTB Pull-up Enable bit 1 = PORTB pull-ups are disabled 0 = PORTB pull-ups are enabled by individual port latch values bit 6 INTEDG: Interrupt Edge Select bit 1 = Interrupt on rising edge of RB0/INT pin 0 = Interrupt on falling edge of RB0/INT pin bit 5 T0CS: TMR0 Clock Source Select bit 1 = Transition on RA4/T0CKI pin 0 = Internal instruction cycle clock (CLKOUT) bit 4 T0SE: TMR0 Source Edge Select bit 1 = Increment on high-to-low transition on RA4/T0CKI pin 0 = Increment on low-to-high transition on RA4/T0CKI pin bit 3 PSA: Prescaler Assignment bit 1 = Prescaler is assigned to the WDT 0 = Prescaler is assigned to the Timer0 module bit 2-0 PS2:PS0: Prescaler Rate Select bits Legend: R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’ - n = Value at POR ’1’ = Bit is set ’0’ = Bit is cleared x = Bit is unknown Note: When using low voltage ICSP programming (LVP) and the pull-ups on PORTB are enabled, bit 3 in the TRISB register must be cleared to disable the pull-up on RB3 and ensure the proper operation of the device 000 001 010 011 100 101 110 111 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256 1 : 1 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 Bit Value TMR0 Rate WDT Rate
PIC16F87X DS30292C-page 20 2001 Microchip Technology Inc. 2.2.2.3 INTCON Register The INTCON Register is a readable and writable register, which contains various enable and flag bits for the TMR0 register overflow, RB Port change and External RB0/INT pin interrupts. REGISTER 2-3: INTCON REGISTER (ADDRESS 0Bh, 8Bh, 10Bh, 18Bh) Note: Interrupt flag bits are set when an interrupt condition occurs, regardless of the state of its corresponding enable bit or the global enable bit, GIE (INTCON<7>). User software should ensure the appropriate interrupt flag bits are clear prior to enabling an interrupt. R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x GIE PEIE T0IE INTE RBIE T0IF INTF RBIF bit 7 bit 0 bit 7 GIE: Global Interrupt Enable bit 1 = Enables all unmasked interrupts 0 = Disables all interrupts bit 6 PEIE: Peripheral Interrupt Enable bit 1 = Enables all unmasked peripheral interrupts 0 = Disables all peripheral interrupts bit 5 T0IE: TMR0 Overflow Interrupt Enable bit 1 = Enables the TMR0 interrupt 0 = Disables the TMR0 interrupt bit 4 INTE: RB0/INT External Interrupt Enable bit 1 = Enables the RB0/INT external interrupt 0 = Disables the RB0/INT external interrupt bit 3 RBIE: RB Port Change Interrupt Enable bit 1 = Enables the RB port change interrupt 0 = Disables the RB port change interrupt bit 2 T0IF: TMR0 Overflow Interrupt Flag bit 1 = TMR0 register has overflowed (must be cleared in software) 0 = TMR0 register did not overflow bit 1 INTF: RB0/INT External Interrupt Flag bit 1 = The RB0/INT external interrupt occurred (must be cleared in software) 0 = The RB0/INT external interrupt did not occur bit 0 RBIF: RB Port Change Interrupt Flag bit 1 = At least one of the RB7:RB4 pins changed state; a mismatch condition will continue to set the bit. Reading PORTB will end the mismatch condition and allow the bit to be cleared (must be cleared in software). 0 = None of the RB7:RB4 pins have changed state Legend: R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’ - n = Value at POR ’1’ = Bit is set ’0’ = Bit is cleared x = Bit is unknown
DS1307 64 x 8, Serial, I2C Real-Time Clock GENERAL DESCRIPTION The DS1307 serial real-time clock (RTC) is a low-power, full binary-coded decimal (BCD) clock/calendar plus 56 bytes of NV SRAM. Address and data are transferred serially through an I2C, bidirectional bus. The clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The end of the month date is automatically adjusted for months with fewer than 31 days, including corrections for leap year. The clock operates in either the 24hour or 12-hour format with AM/PM indicator. The DS1307 has a built-in power-sense circuit that detects power failures and automatically switches to the backup supply. Timekeeping operation continues while the part operates from the backup supply. FEATURES Real-Time Clock (RTC) Counts Seconds, Minutes, Hours, Date of the Month, Month, Day of the week, and Year with Leap-Year Compensation Valid Up to 2100 56-Byte, Battery-Backed, Nonvolatile (NV) RAM for Data Storage I2C Serial Interface Programmable Square-Wave Output Signal Automatic Power-Fail Detect and Switch Circuitry Consumes Less than 500nA in BatteryBackup Mode with Oscillator Running Optional Industrial Temperature Range: -40°C to +85°C Available in 8-Pin Plastic DIP or SO Underwriters Laboratory (UL) Recognized Typical Operating Circuit and Pin Configurations appear at end of data sheet. ORDERING INFORMATION PART TEMP RANGE VOLTAGE PIN-PACKAGE TOP MARK* (V) DS1307 0°C to +70°C 5.0 8 PDIP (300 mils) DS1307 DS1307+ 0°C to +70°C 5.0 8 PDIP (300 mils) DS1307 DS1307N -40°C to +85°C 5.0 8 PDIP (300 mils) DS1307N DS1307N+ -40°C to +85°C 5.0 8 PDIP (300 mils) DS1307N DS1307Z 0°C to +70°C 5.0 8 SO (150 mils) DS1307 DS1307Z+ 0°C to +70°C 5.0 8 SO (150 mils) DS1307 DS1307ZN -40°C to +85°C 5.0 8 SO (150 mils) DS1307N DS1307ZN+ -40°C to +85°C 5.0 8 SO (150 mils) DS1307N DS1307Z/T&R 0°C to +70°C 5.0 8 SO (150 mils) Tape and Reel DS1307 DS1307Z+T&R 0°C to +70°C 5.0 8 SO (150 mils) Tape and Reel DS1307 DS1307ZN/T&R -40°C to +85°C 5.0 8 SO (150 mils) Tape and Reel DS1307N DS1307ZN+T&R -40°C to +85°C 5.0 8 SO (150 mils) Tape and Reel DS1307N + Denotes a lead-free/RoHS-compliant device. * A “+” anywhere on the top mark indicates a lead-free device. Note: Some revisions of this device may incorporate deviations from published specifications known as errata. Multiple revisions of any device may be simultaneously available through various sales channels. For information about device errata, click here: www.maxim-ic.com/errata. 1 of 15 REV: 121906
DS1307 64 x 8, Serial, I2C Real-Time Clock ABSOLUTE MAXIMUM RATINGS Voltage Range on Any Pin Relative to Ground……….……………………….…………....-0.5V to +7.0V Operating Temperature Range (Noncondensing) Commercial…………………….……………………………….………………………..0°C to +70°C Industrial………………………………………………………………………………-40°C to +85°C Storage Temperature Range………………………………………...…………..…………-55°C to +125°C Soldering Temperature (DIP, leads)..…………………………………………….....+260°C for 10 seconds Soldering Temperature (surface mount)…..…………………………See JPC/JEDEC Standard J-STD-020 Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to the absolute maximum rating conditions for extended periods may affect device reliability. RECOMMENDED DC OPERATING CONDITIONS (TA = 0°C to +70°C, TA = -40°C to +85°C.) (Notes 1, 2) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS Supply Voltage V CC 4.5 5.0 5.5 V Logic 1 Input V IH 2.2 VCC + 0.3 V Logic 0 Input V IL -0.3 +0.8 V VBAT Battery Voltage V BAT 2.0 3 3.5 V DC ELECTRICAL CHARACTERISTICS (VCC = 4.5V to 5.5V; TA = 0°C to +70°C, TA = -40°C to +85°C.) (Notes 1, 2) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS Input Leakage (SCL) I LI -1 1 µA I/O Leakage (SDA, SQW/OUT) I LO -1 1 µA Logic 0 Output (IOL = 5mA) V OL 0.4 V Active Supply Current (fSCL = 100kHz) I CCA 1.5 mA Standby Current I CCS (Note 3) 200 µA VBAT Leakage Current IBATLKG 5 50 nA Power-Fail Voltage (VBAT = 3.0V) V PF 1.216 x 1.25 x 1.284 x VBAT VBAT V BAT V DC ELECTRICAL CHARACTERISTICS (VCC = 0V, VBAT = 3.0V; TA = 0°C to +70°C, TA = -40°C to +85°C.) (Notes 1, 2) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS V BAT Current (OSC ON); SQW/OUT OFF I BAT1 300 500 nA V BAT Current (OSC ON); SQW/OUT ON (32kHz) I BAT2 480 800 nA V BAT Data-Retention Current (Oscillator Off) IBATDR 10 100 nA WARNING: Negative undershoots below -0.3V while the part is in battery-backed mode may cause loss of data. 2 of 15
DS1307 64 x 8, Serial, I2C Real-Time Clock AC ELECTRICAL CHARACTERISTICS (VCC = 4.5V to 5.5V; TA = 0°C to +70°C, TA = -40°C to +85°C.) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS SCL Clock Frequency f SCL 0 100 kHz Bus Free Time Between a STOP and START Condition tBUF 4.7 µs Hold Time (Repeated) START Condition tHD:STA (Note 4) 4.0 µs LOW Period of SCL Clock tLOW 4.7 µs HIGH Period of SCL Clock tHIGH 4.0 µs Setup Time for a Repeated START Condition tSU:STA 4.7 µs Data Hold Time tHD:DAT 0 µs Data Setup Time tSU:DAT (Notes 5, 6) 250 ns Rise Time of Both SDA and SCL Signals tR 1000 ns Fall Time of Both SDA and SCL Signals tF 300 ns Setup Time for STOP Condition tSU:STO 4.7 µs CAPACITANCE (TA = +25°C) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS Pin Capacitance (SDA, SCL) C I/O 10 pF Capacitance Load for Each Bus Line C B (Note 7) 400 pF Note 1: All voltages are referenced to ground. Note 2: Limits at -40°C are guaranteed by design and are not production tested. Note 3: ICCS specified with VCC = 5.0V and SDA, SCL = 5.0V. Note 4: After this period, the first clock pulse is generated. Note 5: A device must internally provide a hold time of at least 300ns for the SDA signal (referred to the VIH(MIN) of the SCL signal) to bridge the undefined region of the falling edge of SCL. Note 6: The maximum tHD:DAT only has to be met if the device does not stretch the LOW period (tLOW) of the SCL signal. Note 7: CB—total capacitance of one bus line in pF. 3 of 15
DS1307 64 x 8, Serial, I2C Real-Time Clock TIMING DIAGRAM SDA tBUF tLOW tR tF tHD:STA SCL STOP START tHD:STA tHD:DAT tHIGH SU:DAT tSU:STA REPEATED START tSU:STO Figure 1. Block Diagram X1 1Hz/4.096kHz/8.192kHz/32.768kHz MUX/ CL BUFFER SQW/OUT X2 V CC CL POWER Oscillator and divider 1Hz CONTROL LOGIC RAM (56 X 8) GND V BAT SCL SDA CONTROL SERIAL BUS INTERFACE AND ADDRESS REGISTER Dallas Semiconductor DS1307 CLOCK, CALENDAR, AND CONTROL REGISTERS USER BUFFER (7 BYTES) 4 of 15
V (V) SUPPLY CURRENT (nA) SUPPLY CURRENT (uA) FREQUENCY (Hz) SUPPLY CURRENT (nA) DS1307 64 x 8, Serial, I2C Real-Time Clock TYPICAL OPERATING CHARACTERISTICS (VCC = 5.0V, TA = +25°C, unless otherwise noted.) 120 110 100 90 80 70 60 50 40 30 20 10 0 ICCS vs. VCC VBAT=3.0V 400 350 300 250 200 150 100 IBAT vs. VBAT VCC = 0V SQW=32kHz SQW of f 1.0 2.0 3.0 4.0 5.0 VCC (V) 2.0 2.5 3.0 3.5 BACKUP 325.0 IBAT vs. Temperature VCC=0V, VBAT=3.0 SQW=32kHz 32769 32768.9 SQW/OUT vs. Supply Voltage 32768.8 275.0 32768.7 32768.6 32768.5 225.0 32768.4 32768.3 175.0 -40 -20 0 20 40 60 80 TEMPERATURE (°C) SQW of f 32768.2 32768.1 32768 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 Supply (V) 5 of 15
DS1307 64 x 8, Serial, I2C Real-Time Clock PIN DESCRIPTION PIN NAME FUNCTION 1 X1 Connections for Standard 32.768kHz Quartz Crystal. The internal oscillator circuitry is designed for operation with a crystal having a specified load capacitance (CL) of 12.5pF. X1 is the input to the oscillator and can optionally be connected to an external 32.768kHz oscillator. The output of the internal oscillator, X2, is floated if an external oscillator is connected to X1. Note: For more information on crystal selection and crystal layout considerations, refer to Application Note 58: Crystal Considerations with Dallas Real-Time Clocks. 2 X2 3 VBAT Backup Supply Input for Any Standard 3V Lithium Cell or Other Energy Source. Battery voltage must be held between the minimum and maximum limits for proper operation. Diodes in series between the battery and the VBAT pin may prevent proper operation. If a backup supply is not required, VBAT must be grounded. The nominal power-fail trip point (VPF) voltage at which access to the RTC and user RAM is denied is set by the internal circuitry as 1.25 x VBAT nominal. A lithium battery with 48mAhr or greater will back up the DS1307 for more than 10 years in the absence of power at +25°C. UL recognized to ensure against reverse charging current when used with a lithium battery. Go to: www.maxim-ic.com/qa/info/ul/. 4 GND Ground 5 SDA Serial Data Input/Output. SDA is the data input/output for the I 2 C serial interface. The SDA pin is open drain and requires an external pullup resistor. 6 SCL Serial Clock Input. SCL is the clock input for the I 2 C interface and is used to synchronize data movement on the serial interface. 7 SWQ/OUT Square Wave/Output Driver. When enabled, the SQWE bit set to 1, the SQW/OUT pin outputs one of four square-wave frequencies (1Hz, 4kHz, 8kHz, 32kHz). The SQW/OUT pin is open drain and requires an external pullup resistor. SQW/OUT operates with either VCC or VBAT applied. 8 V CC Primary Power Supply. When voltage is applied within normal limits, the device is fully accessible and data can be written and read. When a backup supply is connected to the device and VCC is below VTP, read and writes are inhibited. However, the timekeeping function continues unaffected by the lower input voltage. DETAILED DESCRIPTION The DS1307 is a low-power clock/calendar with 56 bytes of battery-backed SRAM. The clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The date at the end of the month is automatically adjusted for months with fewer than 31 days, including corrections for leap year. The DS1307 operates as a slave device on the I 2 C bus. Access is obtained by implementing a START condition and providing a device identification code followed by a register address. Subsequent registers can be accessed sequentially until a STOP condition is executed. When VCC falls below 1.25 x VBAT, the device terminates an access in progress and resets the device address counter. Inputs to the device will not be recognized at this time to prevent erroneous data from being written to the device from an out-oftolerance system. When VCC falls below VBAT, the device switches into a low-current battery-backup mode. Upon power-up, the device switches from battery to VCC when VCC is greater than VBAT +0.2V and recognizes inputs when VCC is greater than 1.25 x VBAT. The block diagram in Figure 1 shows the main elements of the serial RTC. 6 of 15
DS1307 64 x 8, Serial, I2C Real-Time Clock OSCILLATOR CIRCUIT The DS1307 uses an external 32.768kHz crystal. The oscillator circuit does not require any external resistors or capacitors to operate. Table 1 specifies several crystal parameters for the external crystal. Figure 1. shows a functional schematic of the oscillator circuit. If using a crystal with the specified characteristics, the startup time is usually less than one second. CLOCK ACCURACY The accuracy of the clock is dependent upon the accuracy of the crystal and the accuracy of the match between the capacitive load of the oscillator circuit and the capacitive load for which the crystal was trimmed. Additional error will be added by crystal frequency drift caused by temperature shifts. External circuit noise coupled into the oscillator circuit may result in the clock running fast. Refer to Application Note 58: Crystal Considerations with Dallas Real-Time Clocks for detailed information. Table 1. Crystal Specifications* PARAMETER SYMBOL MIN TYP MAX UNITS Nominal Frequency f O 32.768 kHz Series Resistance ESR 45 kΩ Load Capacitance C L 12.5 pF *The crystal, traces, and crystal input pins should be isolated from RF generating signals. Refer to Application Note 58: Crystal Considerations for Dallas Real-Time Clocks for additional specifications. Figure 2. Recommended Layout for Crystal LOCAL GROUND PLANE (LAYER 2) CRYSTAL X1 X2 GND NOTE: AVOID ROUTING SIGNAL LINES IN THE CROSSHATCHED AREA (UPPER LEFT QUADRANT) OF THE PACKAGE UNLESS THERE IS A GROUND PLANE BETWEEN THE SIGNAL LINE AND THE DEVICE PACKAGE. RTC AND RAM ADDRESS MAP Table 2 shows the address map for the DS1307 RTC and RAM registers. The RTC registers are located in address locations 00h to 07h. The RAM registers are located in address locations 08h to 3Fh. During a multibyte access, when the address pointer reaches 3Fh, the end of RAM space, it wraps around to location 00h, the beginning of the clock space. 7 of 15