sistema de monitoreo y control a distancia de un centro de

136
2 Instituto Politécnico Nacional Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Zacatenco Sistema de Monitoreo y Control a Distancia de un Centro de CómputoTesis Que para obtener el Título de Ingeniero en Comunicaciones y Electrónica P r e s e n t a n: Jaime Enrique Becerril Delgado Luis Adrián Cerda García Daniel Nieto Sánchez ASESORADA POR: Ing. Armando Mancilla León M. en C. Roberto Galicia Galicia México a 8 de Diciembre del 2009

Upload: others

Post on 19-Oct-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

2

Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica y Eléctrica

Unidad Zacatenco

“Sistema de Monitoreo y Control a Distancia

de un Centro de Cómputo”

Tesis

Que para obtener el Título de Ingeniero en

Comunicaciones y Electrónica

P r e s e n t a n:

Jaime Enrique Becerril Delgado

Luis Adrián Cerda García

Daniel Nieto Sánchez

ASESORADA POR:

Ing. Armando Mancilla León

M. en C. Roberto Galicia Galicia

México a 8 de Diciembre del 2009

2

i | P á g i n a

Índice

Objetivo General: ..................................................................................................................... iv

Objetivos Particulares: .............................................................................................................. v

Justificación: ............................................................................................................................ vi

Introducción ........................................................................................................................... vii

Antecedentes.......................................................................................................................... vii

Capítulo 1 ................................................................................................................................. 1

Marco Teórico .......................................................................................................................... 1

1.1 Domótica y Edificios Inteligentes .................................................................................... 2

1.1.1 Domótica .................................................................................................................. 2

1.1.2Administración de la Domótica .................................................................................. 3

1.1.3Descripción de un sistema domótico......................................................................... 4

1.2 Clasificación de los Sistemas de Control ........................................................................... 8

1.2.1 Características de un Sistema de Control .................................................................. 8

1.3 Arquitectura de Internet ................................................................................................. 9

1.4 Microcontroladores ....................................................................................................... 10

Capítulo 2 ............................................................................................................................... 24

Tecnología .NET ...................................................................................................................... 24

2.1Tecnología .Net .............................................................................................................. 25

2.1.1 .NET Framework ..................................................................................................... 25

2.1.2 Funcionamiento de .NET ......................................................................................... 26

2.1.3 Bases de la POO ...................................................................................................... 29

2.2 Silverlight ...................................................................................................................... 31

2.2.1 Arquitectura de Silverlight ...................................................................................... 33

2.2.2 Componentes de presentación básicos ................................................................... 34

2.2.3 .NET Framework para Silverlight. ............................................................................ 35

2.2.4 Características de programación adicionales de Silverlight ...................................... 36

Capítulo 3 ............................................................................................................................... 38

Protocolo TCP/IP ..................................................................................................................... 38

3.1 Protocolo TCP/IP ........................................................................................................... 39

3.2 TCP (Transmission Control Protocol). ............................................................................. 40

ii | P á g i n a

3.2.1 Formato de la cabecera TCP.................................................................................... 40

3.3 UDP (User Datagram Protocol) ...................................................................................... 41

3.4 ICMP (Internet Control Message Protocol) .................................................................... 42

3.5 IP (Internet Protocol) versión 4. ..................................................................................... 42

3.5.1 Organización de la cabecera IP................................................................................ 43

3.6 IP (Internet Protocol) versión 6. ..................................................................................... 45

Capítulo 4 ............................................................................................................................... 48

Hardware ................................................................................................................................ 48

4.1 Descripción ................................................................................................................... 49

4.2 IP Power Aviosys 9212 ............................................................................................... 49

4.2.1 Funcionamiento...................................................................................................... 53

4.2.2 Funcionamiento del IP Power 9212 ......................................................................... 53

4.2.3 IP Power 9201 (Entradas) ........................................................................................ 60

4.2.4 IP Power 9202 (Salidas)........................................................................................... 62

4.3 Diagrama de conexiones eléctricas de nuestra interfaz .............................................. 64

4.4 Módulo de control .................................................................................................... 65

4.5 Módulo de Monitoreo ............................................................................................... 68

Capítulo 5 .............................................................................................................................. 75

Diseño del Software ................................................................................................................ 75

5.1 Servidor Web ................................................................................................................ 77

5.1.1 Configuración de IIS ................................................................................................ 78

5.2 Programación general de la aplicación:.......................................................................... 80

Diseño de la Biblioteca de Clases ......................................................................................... 80

5.3 Desarrollo de aplicación Web ASP.NET .......................................................................... 85

5.3.1 Desarrollo de los objetos Silverlight ............................................................................ 87

5.3.2 Ejemplo: Indicador de Barras de Temperatura ........................................................ 88

5.4 Programación del microcontrolador MSP430 F2012 ...................................................... 90

5.4.1 Programa sensor de temperatura .......................................................................... 90

Capítulo 6 .............................................................................................................................. 95

Estudio Económico.................................................................................................................. 95

Conclusiones ......................................................................................................................... 102

Bibliografía ........................................................................................................................... 103

Anexo 1 – Conexiones del Prototipo ............................................................................. 105

Anexo 2 – Conexión de la Red ....................................................................................... 106

iii | P á g i n a

Anexo 3 – Biblioteca de clases para comunicarse con el IP Power ................................. 107

Anexo 4 – Hojas de Datos ............................................................................................. 110

Anexo 5 – Índice de Ilustraciones .................................................................................. 125

Anexo 6 – Índice de Tablas y Diagramas........................................................................ 126

iv | P á g i n a

Objetivo General:

Desarrollar una aplicación cliente – servidor que permita a distintos usuarios, realizar

actividades de control y monitoreo en un “CENTRO DE CÓMPUTO“, de forma remota y desde

cualquier parte del mundo utilizando tecnología .NET.

v | P á g i n a

Objetivos Particulares:

-Controlar y monitorear diferentes procesos, tales como: condiciones ambientales de

temperatura, acceso de personal, seguridad y vigilancia en un centro de cómputo.

-Crear una interfaz utilizando Silverlight que presente un ambiente virtual y amigable para el

usuario, de manera que éste pueda comandar y revisar los dispositivos que se encuentran

conectados al sistema de control, sin necesidad de estar en el lugar donde se encuentran los

mismos.

-Desarrollar herramientas para la generación automática y periódica de reportes acerca del

estado del sistema, con la finalidad de conocer su rendimiento, y de esta forma realizar alguna

acción en específico sobre éste.

vi | P á g i n a

Justificación:

Hoy en día las tecnologías de la información, han cobrado una importancia enorme a tal grado

de ser vitales para el funcionamiento de la vida, tal cual la conocemos, facilitando una gran

parte de las tareas cotidianas del ser humano, y fortaleciendo otras que sin su ayuda tarde o

temprano conllevarían a un desastre, que podría haber sido prevenido si se hubiera tenido

conocimiento del mismo, y se aplicaran medidas para corregirlo. Dicho desastre no sólo se

refiere a pérdidas físicas, sino a pérdidas en información que en la actualidad tiene un valor

incalculable.

Particularmente estamos hablando de un sistema de monitoreo a distancia, que aunque en los

últimos años se han desarrollado diferentes modelos, aún no se ha logrado tener un control

total sobre algún proceso en particular, que además de permitir a un usuario localizado en

cualquier parte del mundo ingresar al mismo, y verificar que todos los procesos se lleven a

cabo normalmente y sin ningún tipo de contratiempo, sea capaz de prevenir ciertas

situaciones vulnerables.

Quizá la principal ventaja de un sistema de esta magnitud, es que además de pertenecer a un

mercado relativamente nuevo su implementación, sea barato debido a que está basado en

mayor parte en información, y es implementado sobre una vía accesible desde cualquier parte

del mundo: Internet.

vii | P á g i n a

Introducción

Los sistemas de control según la Teoría Cibernética se aplican en esencia para los organismos vivos, las máquinas y las organizaciones. En este proyecto, el sistema de control estará volcado a la electrónica-informática.

Estos sistemas fueron relacionados por primera vez en 1948 por Norbert Wiener en su obra Cibernética y sociedad, con aplicación en la teoría de los mecanismos de control. Un sistema de control está definido como un conjunto de componentes, que pueden regular su propia conducta o la de otro sistema, con el fin de lograr un funcionamiento predeterminado.

Para ello usaremos Internet, que es una red mundial de computadoras interconectadas con un conjunto de protocolos, el más destacado, el TCP/IP para poder realizar el control y monitoreo a distancia del centro de cómputo, a través de una interfaz Web que a su vez se encontrará en un servidor, y nos permitirá acceder a ella desde cualquier lugar que nos encontremos, y tengamos acceso a una cuenta de Internet.

Antecedentes

Se define como un mando a distancia o control remoto, a un dispositivo electrónico que permite realizar operaciones remotas, se considera que el creador de este fue el Ing. Nikola Tesla, al presentar en el año de 1898 el primer bote del mundo conducido a control remoto.

Posterior al invento de Tesla vinieron más ejemplos de mando a distancia, destacando el Telekino, desarrollado por Leonardo Torres Quevedo en 1903, el cual consistía en un autómata que ejecutaba órdenes transmitidas mediante ondas hertzianas, posteriormente con la llegada de la segunda guerra mundial, se llevó a cabo el uso de esta tecnología para propósitos militares, siendo un resultado de esto el misil alemán Wasserfall.

Después de la segunda guerra mundial, se comenzaron a desarrollar con mayor frecuencia aplicaciones de mando a distancia, como fue el primer artilugio para controlar remotamente una televisión a principios de 1950, el cual usaba cables para conectarse a la televisión, apareciendo en el año de 1955 la mejora de este último, que resultó en un control remoto sin cables llamado “Flashmatic”, el cual funcionaba enviando un rayo de luz a una celda fotoeléctrica .

En 1956, Robert Adler desarrollo el “Zenith Space Command”, siendo éste un control sin cables que utilizaba ultrasonidos para poder cambiar de canal y volumen, el impulso para un tipo más complejo de mando a distancia vino a finales de los 70, con el desarrollo del servicio de teletexto Ceefax por la BBC, lo cual marco la pauta para que se diera el desarrollo de los controles remotos que conocemos hoy en día, y siendo éstos el ejemplo más claro de lo que es el mando a distancia.

Ilustración 1 - Mando a distancia de un televisor

viii | P á g i n a

Tipos de mandos a distancia

Los mandos a distancia no se limitan a controles remotos para televisiones, los podemos encontrar para otros tipos de dispositivos, como modelos a escala de aviones, coches o robots que llevan a cabo tareas peligrosas y requieren ser controlados remotamente.

También existen mandos a distancia que combinan diversos controles en uno, llamados controles universales ,los cuales con el paso del tiempo ha sido implementados con mayor frecuencia, debido a las ventaja que éstos presentan de poder controlar por medio de un sólo control diversos procesos , el siguiente paso en los mandos a distancia son los paneles de control doméstico, que permiten controlar diversos aparatos electrónicos como cortinas , luces e incluso algunos electrodomésticos entre los más comunes , hay que mencionar que la implementación de este tipo de mandos es lo que se conoce como Domótica.

Aplicaciones El uso de mandos a distancia hoy en día se ha vuelto algo muy común, y es posible encontrar aplicaciones de esto en diversas áreas, como se menciona a continuación: - Industria El control remoto es usado para operar subestaciones, centrales hidroeléctricas reversibles y plantas HVDC ,para estos sistemas se suelen usar “PLCs” de baja frecuencia. - Aplicaciones militares El mando a distancia ha sido muy utilizado para controlar tanques, naves y misiles principalmente, teniendo su mayor aplicación en la segunda guerra mundial. - Astronáutica La tecnología por control remoto también es usada en los viajes en el espacio. Un ejemplo de esto fue en el programa Ruso Lunokhod, donde los vehículos eran accionados por control remoto. - Videojuegos Una de las industrias más poderosas de la actualidad también ha hecho uso del mando a distancia, encontrando actualmente controles alámbricos como lo eran tradicionalmente, hasta controles inalámbricos para consolas de última generación como PlayStation 3, Xbox 360 y Wii.

1 | P á g i n a

Capítulo 1

Marco Teórico

2 | P á g i n a

1.1 Domótica y Edificios Inteligentes

Al ser nuestro proyecto un control a distancia, lo primero que viene a nuestra mente es hablar de Domótica, y su aplicación más común hoy en día que son los edificios inteligentes, por este motivo definiremos esto términos con la finalidad de estar más familiarizados, con el tipo de trabajo que se desarrolla a lo largo de esta tesis.

1.1.1 Domótica

El término Domótica surgió en Francia originario de la palabra “Domotique”, la cual es resultado de la contracción entre las palabras “domo” e “informatique”, se ha definido el término Domótica, como: "el concepto de vivienda que integra todos los automatismos en materia de seguridad, gestión de la energía, comunicaciones, etc.". Es decir, el objetivo es asegurar al usuario de la vivienda un aumento del confort, de la seguridad, del ahorro energético y de las facilidades de comunicación.

Domótica es el término "científico" que se utiliza para denominar la parte de la tecnología (electrónica e informática), que integra el control y supervisión de los elementos existentes en un edificio de oficinas, o en uno de viviendas o simplemente en cualquier hogar. También, un término muy familiar para todos es el de "edificio inteligente", que aunque viene a referirse a la misma cosa, normalmente tendemos a aplicarlo más al ámbito de los grandes bloques de oficinas, bancos, universidades y edificios industriales.

El uso de las TIC (Tecnologías de la Información y las Comunicaciones) 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 entre los equipos e instalaciones. Así concebida, una vivienda inteligente puede ofrecer una amplia gama de aplicaciones en áreas, tales como:

Seguridad Gestión de la energía Automatización de tareas domésticas Formación, cultura y entretenimiento Monitorización de salud Comunicación con servidores externos Ocio y entretenimiento Operación y mantenimiento de las instalaciones

La definición de vivienda Domótica o inteligente presenta múltiples versiones y matices. También aquí son diversos los términos utilizados en distintas lenguas: "casa inteligente" (smart house), automatización de viviendas (home automation), Domótica (domotique), sistemas domésticos (home systems), etc.

De una manera general, un sistema domótico dispondrá de una red de comunicación que permite la interconexión de una serie de equipos, a fin de obtener información sobre el entorno doméstico y, basándose en ésta, realizar unas determinadas acciones sobre dicho entorno.

Los elementos de campo (detectores, sensores, captadores, actuadores), transmitirán las señales a una unidad central inteligente que tratará y elaborará la información recibida. En función de dicha información y de una determinada programación, la unidad central actuará

3 | P á g i n a

sobre determinados circuitos de potencia relacionados con las señales recogidas, por los elementos de campo correspondientes.

En este sentido, una vivienda Domótica se puede definir como: "aquella vivienda en la que existen agrupaciones automatizadas de equipos, normalmente asociados por funciones, que disponen de la capacidad de comunicarse interactivamente entre sí, de un bus doméstico multimedia que las integra".

Ilustración 2 - Ejemplo de Domótica en un hogar

1.1.2Administración de la Domótica

La Domótica se encarga de administrar principalmente los siguientes cuatro aspectos del hogar:

Energía eléctrica: En este campo, la Domótica se encarga de gestionar el consumo de energía, mediante temporizadores, relojes programadores, termostatos, etc. También se aprovecha de la tarifa nocturna, mediante acumuladores de carga.

Confort: La Domótica nos proporciona una serie de comodidades, como pueden ser el control automático de los servicios de: Calefacción, Agua caliente, Refrigeración, Iluminación y la gestión de elementos como accesos, persianas, toldos, ventanas, riego automático, etc.

Seguridad: La seguridad que nos proporciona un sistema domótico, es más amplia que la que nos puede proporcionar cualquier otro sistema, pues integra tres campos de la seguridad que normalmente están controlados por sistemas distintos:

Seguridad de los bienes: Gestión del control de acceso y control de presencia, así como la simulación de presencia. Alarmas ante intrusiones.

Seguridad de las personas: Especialmente, para las personas mayores y los enfermos. Mediante el nodo telefónico, se puede tener acceso (mediante un pulsador radiofrecuencia que se lleve encima, por ejemplo) a los servicios de ambulancias, policía, etc.

Incidentes y averías: Mediante sensores, se pueden detectar los incendios y las fugas de gas y agua, y, mediante el nodo telefónico, desviar la alarma hacia los bomberos, por ejemplo.

También se pueden detectar averías en los accesos, en los ascensores, etc.

4 | P á g i n a

Comunicaciones: Este aspecto es imprescindible para acceder a multitud de servicios ofrecidos por los operadores de telecomunicaciones. La Domótica tiene una característica fundamental, que es la integración de sistemas, por eso hay nodos (pasarela residencial) que interconectan la red Domótica con diferentes dispositivos, como Internet, la red telefónica, etc.

1.1.3Descripción de un sistema domótico

Para poder clasificar técnicamente un sistema de automatización de viviendas, es necesario tener claros una serie de conceptos técnicos, como son: tipo de arquitectura, medio de transmisión, velocidad de transmisión y protocolo de comunicaciones.

Tipo de Arquitectura

Arquitectura distribuida: La arquitectura de un sistema domótico, como la de cualquier sistema de control, especifica el modo en que los diferentes elementos de control del sistema se van a ubicar. Existen dos arquitecturas básicas: la arquitectura centralizada y la distribuida.

Arquitectura centralizada: Es aquella en la que los elementos a controlar y supervisar (sensores, luces, válvulas, etc.), han de cablearse hasta el sistema de control de la vivienda (PC o similar). El sistema de control es el corazón de la vivienda, en cuya falta todo deja de funcionar, y su instalación no es compatible con la instalación eléctrica convencional, en cuanto que en la fase de construcción hay que elegir esta topología de cableado.

Hay sistemas que son de arquitectura distribuida en cuanto a la capacidad de proceso, pero no lo son en cuanto a la ubicación física de los diferentes elementos de control y viceversa, sistemas que son de arquitectura distribuida, en cuanto a su capacidad para ubicar elementos de control físicamente distribuidos, pero no en cuanto a los procesos de control, que son ejecutados en uno o varios procesadores físicamente centralizados.

En los sistemas de arquitectura distribuida que utilizan como medio de transmisión el cable, existe un concepto a tener en cuenta que es la topología de la red de comunicaciones. La topología de la red se define como la distribución física de los elementos de control, respecto al medio de comunicación (cable).

Cada elemento del sistema tiene su propia capacidad de proceso, y puede ser ubicado en cualquier parte de la vivienda. Esta característica proporciona al instalador domótico una libertad de diseño, que le posibilita adaptarse a las características físicas de cada vivienda en particular.

Medio de Transmisión

En todo sistema domótico con arquitectura distribuida, los diferentes elementos de control deben intercambiar información unos con otros, a través de un soporte físico (par trenzado, línea de potencia o red eléctrica, radio, infrarrojos, etc.).

A continuación enumeramos los siguientes tipos de medios:

1) Líneas de Distribución de Energía Eléctrica (Corrientes portadoras)

Si bien no es el medio más adecuado para la transmisión de datos, es una alternativa a tener en cuenta para las comunicaciones domésticas, dado el bajo costo que implica su uso, esto debido a que se trata de una instalación existente por lo que es nulo el costo de la instalación, y además muy fácil el conexionado.

5 | P á g i n a

Para aquellos casos en los que las necesidades del sistema no impongan requerimientos muy exigentes, en cuanto a la velocidad de transmisión, la línea de distribución de energía eléctrica puede ser suficiente como soporte de dicha transmisión.

2) Soportes Metálicos

La infraestructura de las redes de comunicación actuales, tanto públicas como privadas, tiene en un porcentaje muy elevado, cables metálicos de cobre como soporte de transmisión de las señales eléctricas que procesa.

En general se pueden distinguir dos tipos de cables metálicos:

a. Par Metálico

Los cables formados por varios conductores de cobre, pueden dar soporte a un amplio rango de aplicaciones en el entorno doméstico.

Este tipo de cables pueden transportar voz, datos y alimentación de corriente continua.

Los denominados cables de pares, están formados por cualquier combinación de los tipos de conductores que a continuación se detallan:

1. Cables formados por un sólo conductor con un aislamiento exterior plástico, como los utilizados para la transmisión de las señales telefónicas.

2. Par de cables, cada uno de los cables está formado por un arrollamiento helicoidal de varios hilos de cobre. (Por ejemplo, los utilizados para la distribución de señales de audio.).

3. Par apantallado, formado por dos hilos recubiertos por un trenzado conductor en forma de malla, cuya misión consiste en aislar las señales que circulan por los cables, de las interferencias electromagnéticas exteriores. (Por ejemplo, los utilizados para la distribución de sonido de alta fidelidad o datos).

4. Par trenzado, está formado por dos hilos de cobre recubiertos cada uno por un trenzado en forma de malla. El trenzado es un medio para hacer frente a las interferencias electromagnéticas. (Por ejemplo, los utilizados para interconexión de ordenadores).

b. Coaxial

Un par coaxial es un circuito físico asimétrico, constituido por un conductor filiforme que ocupa el eje longitudinal del otro conductor en forma de tubo, manteniéndose la separación entre ambos mediante un dieléctrico apropiado.

Este tipo de cables permite el transporte de las señales de video y señales de datos a alta velocidad. Dentro del ámbito de la vivienda, el cable coaxial puede ser utilizado como soporte de transmisión, para:

- Señales de teledifusión que provienen de las antenas (red de distribución de las señales de TV y FM).

- Señales procedentes de las redes de TV por cable. - Señales de control y datos a media y baja velocidad.

6 | P á g i n a

3) Fibra Óptica

La fibra óptica es el resultado de combinar dos disciplinas no relacionadas, como son la tecnología de semiconductores (que proporciona los materiales necesarios para las fuentes y los detectores de luz), y la tecnología de guiado de ondas ópticas (que proporciona el medio de transmisión, el cable de fibra óptica).

La fibra óptica está constituida por un material dieléctrico transparente, conductor de luz, compuesto por un núcleo con un índice de refracción menor que el del revestimiento, que envuelve a dicho núcleo. Estos dos elementos forman una guía para que la luz se desplace por la fibra. La luz transportada es generalmente infrarroja, y por lo tanto no es visible por el ojo humano.

A continuación se detallan sus ventajas e inconvenientes:

o Fiabilidad en la transferencia de datos. o Inmunidad frente a interferencias electromagnéticas y de radiofrecuencias. o Alta seguridad en la transmisión de datos. o Distancia entre los puntos de la instalación limitada, en el entorno doméstico

estos problemas no existen. o Elevado costo de los cables y las conexiones. o Transferencia de gran cantidad de datos:

4) Conexión sin hilos

a. Infrarrojos

El uso de mandos a distancia basados en transmisión por infrarrojos, está ampliamente extendida en el mercado residencial para telecomandar equipos de Audio y Vídeo.

La comunicación se realiza entre un diodo emisor que emite una luz en la banda de IR, sobre la que se superpone una señal, convenientemente modulada con la información de control, y un fotodiodo receptor, cuya misión consiste en extraer de la señal recibida la información de control.

Los controladores de equipos domésticos basados en la transmisión de ondas en la banda de los infrarrojos, presentan gran comodidad y flexibilidad y admiten un gran número de aplicaciones.

Al tratarse de un medio de transmisión óptico, es inmune a las radiaciones electromagnéticas producidas por los equipos domésticos, o por los demás medios de transmisión (coaxial, cables pares, red de distribución de energía eléctrica, etc.). Sin embargo, habrá que tomar precauciones en el caso de las interferencias electromagnéticas, que pueden afectar a los extremos del medio.

b. Radiofrecuencias

La introducción de las radiofrecuencias como soporte de transmisión en la vivienda, ha venido precedida por la proliferación de los teléfonos inalámbricos y sencillos telemandos.

Este medio de transmisión puede parecer, en principio, idóneo para el control a distancia de los sistemas domóticos, dada la gran flexibilidad que supone su uso. Sin embargo, resulta particularmente sensible a las perturbaciones electromagnéticas producidas, tanto por los medios de transmisión, como por los equipos domésticos.

7 | P á g i n a

Las ventajas e inconvenientes de los sistemas basados en transmisión por radiofrecuencias, son:

o Alta sensibilidad a las interferencias. o Fácil interceptación de las comunicaciones. o Dificultas para la integración de las funciones de control y comunicación, en su

modalidad de transmisión analógica.

Protocolo de comunicaciones

Una vez establecido el soporte físico y la velocidad de comunicaciones, un sistema domótico se caracteriza por el protocolo de comunicaciones que utiliza, que no es otra cosa que el idioma o formato de los mensajes, que los diferentes elementos de control del sistema deben utilizar para entenderse unos con otros, y que puedan intercambiar su información de una manera coherente. Dentro de los protocolos existentes, se puede realizar una primera clasificación atendiendo a su estandarización:

Protocolos estándar. Los protocolos estándar son los que de alguna manera son utilizados ampliamente por diferentes empresas, y éstas fabrican productos que son compatibles entre sí, como son el X-10, el EHS, el EIB y el BatiBus.

Protocolos propietarios. Son aquellos que, desarrollados por una empresa, sólo son capaces de comunicarse entre sí.

Descripción del tipo de nodos

Una red Domótica de arquitectura distribuida, está compuesta por una serie de nodos que se conectan unos con otros, a través del bus de comunicaciones, el cual lleva dos hilos para datos y dos para la alimentación. Así tenemos:

Nodos de control estándar: son los encargados de controlar los parámetros de cada estancia. Cada uno soporta dos circuitos independientes de conmutación y dos entradas extra para sensores. La funcionalidad del nodo depende del programa que se cargue en el nodo.

Nodos de supervisión: son nodos dedicados a realizar la interfaz con el usuario. Cada función que el usuario necesita para supervisar y controlar el sistema, está implementada en el correspondiente nodo. De esta manera, el usuario puede elegir para su vivienda las funciones que considere necesarias.

Nodos exteriores: se agrupan aquellos que siendo de uso dedicado, se instalan en el exterior de la vivienda. Dentro de ellos podemos destacar el nodo de sirena exterior y el nodo medidor de luz exterior.

Nodos de comunicaciones: Son nodos dedicados específicamente a soportar la red de comunicaciones de la vivienda.

8 | P á g i n a

1.2 Clasificación de los Sistemas de Control

Los sistemas de control se pueden clasificar en dos grupos, los sistemas de control a lazo abierto y los sistemas de control a lazo cerrado.

A) Sistema de control de lazo abierto: Es aquel sistema en el que la acción de control está muy relacionada con la entrada, pero su efecto es independiente de la salida. Estos sistemas se caracterizan por:

Tienen la capacidad para poder establecerles (calibrar) una relación entre la entrada y la salida, con el fin de lograr la exactitud deseada.

No tienen el problema de la inestabilidad.

B) Sistema de control de lazo cerrado: Son los sistemas en los que la acción de control está en cierto modo muy dependiente de la salida. Estos sistemas se caracterizan por su propiedad de retroalimentación.

1.2.1 Características de un Sistema de Control

a. Señal de corriente de entrada: Considerada como estímulo aplicado a un sistema desde una fuente de energía externa, con el propósito de que el sistema produzca una respuesta específica.

b. Señal de corriente de salida: Respuesta obtenida por el sistema que puede o no relacionarse con la respuesta que implicaba la entrada.

c. Variable Manipulada: Es el elemento al cual se le modifica su magnitud, para lograr la respuesta deseada.

d. Variable Controlada: Es el elemento que se desea controlar. e. Conversión: Mediante receptores se generan las variaciones o cambios que se

producen en la variable. f. Variaciones externas: Son los factores que influyen en la acción de producir un cambio

de orden correctivo. g. Fuente de energía: Es la que entrega la energía necesaria para generar cualquier tipo

de actividad dentro del sistema. h. Retroalimentación: La retroalimentación es una característica importante de los

sistemas de control de lazo cerrado. Es una relación secuencial de causas y efectos entre las variables del sistema. Dependiendo de la acción correctiva que tome el sistema, éste puede apoyar o no una decisión, cuando en el sistema se produce un retorno, se dice que hay una retroalimentación negativa; si el sistema apoya la decisión inicial, se dice que hay una retroalimentación positiva.

9 | P á g i n a

1.3 Arquitectura de Internet

Internet es una red mundial de computadoras interconectadas con un conjunto de protocolos, el más destacado, el TCP/IP. Aparece por primera vez en 1960. También se usa este nombre como sustantivo común y por tanto en minúsculas, para designar a cualquier red de redes que use las mismas tecnologías que Internet, independientemente de su extensión o de que sea pública o privada.

Cuando se dice red de redes, se hace referencia a que es una red formada por la interconexión de otras redes menores.

Al contrario de lo que se piensa comúnmente, Internet no es sinónimo de “World Wide Web”.

Ésta es parte de Internet, siendo la “World Wide Web” uno de los muchos servicios ofertados en la red Internet. La Web es un sistema de información mucho más reciente (1995), que emplea Internet como medio de transmisión.

Algunos de los servicios disponibles en Internet aparte de la Web, son el acceso remoto a otras máquinas (SSH y telnet), transferencia de archivos (FTP), correo electrónico (SMTP), boletines electrónicos (news o grupos de noticias), conversaciones en línea (IRC y chats), mensajería instantánea, transmisión de archivos (P2P, P2M, Descarga Directa), etc.

Todo lo anterior será la base de nuestro proyecto, dado que utilizando tres o más capas de una aplicación de servicios Web, a distancia se controlarán dispositivos periféricos para realizar tareas de vigilancia, control y monitoreo de los procesos que se llevan a cabo dentro de un "cuarto de cómputo".

10 | P á g i n a

1.4 Microcontroladores

Un microcontrolador, es un circuito integrado o chip que incluye en su interior las tres

unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S

Ilustración 3 - Microcontrolador de montaje superficial

Características

Son diseñados para disminuir el costo económico y el consumo de energía de un sistema en particular. Por eso el tamaño de la CPU, la cantidad de memoria y los periféricos incluidos dependerán de la aplicación. El control de un electrodoméstico sencillo como una batidora, utilizará un procesador muy pequeño (4 u 8 bits), por que sustituirá a un autómata finito. En cambio un reproductor de música y/o vídeo digital (mp3 o mp4), requerirá de un procesador de 32 bits o de 64 bits y de uno o más Códec de señal digital (audio y/o vídeo). El control de un sistema de frenos “ABS” (Antilock Brake System), se basa normalmente en un microcontrolador de 16 bit, al igual que el sistema de control electrónico del motor en un automóvil.

Ilustración 4 - Esquema de un microcontrolador

11 | P á g i n a

Los microcontroladores representan la inmensa mayoría de los chips de computadoras

vendidos, sobre un 50% son controladores "simples" y el restante corresponde a “D1SPs” más especializados. Mientras se pueden tener uno o dos microprocesadores de propósito general en casa. Usted tiene distribuidos seguramente entre los electrodomésticos de su hogar, una o dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo electrónico como automóviles, lavadoras, hornos microondas, teléfonos, etc.

Un microcontrolador difiere de una “CPU” normal, debido a que es más fácil convertirla en una computadora en funcionamiento, con un mínimo de chips externos de apoyo. La idea es que el chip se coloque en el dispositivo, enganchado a la fuente de energía y de información que necesite, y eso es todo. Un microprocesador tradicional no le permitirá hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que agregarle los módulos de entrada/salida (puertos) y la memoria para almacenamiento de información.

Por ejemplo, un microcontrolador típico tendrá un generador de reloj integrado, y una pequeña cantidad de memoria RAM y ROM/EPROM/EEPROM/FLASH, significando que para hacerlo funcionar, todo lo que se necesita son unos pocos programas de control y un cristal de sincronización. Los microcontroladores disponen generalmente también de una gran variedad de dispositivos de entrada/salida, como convertidores de analógico a digital, temporizadores,

“UARTs” y buses de interfaz serie especializados, como “I2C” y “CAN”. Frecuentemente, estos dispositivos integrados, pueden ser controlados por instrucciones de procesadores especializados. Los microcontroladores modernos, frecuentemente incluyen un lenguaje de programación integrado, como el BASIC que se utiliza bastante con este propósito.

Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad, como los dispositivos de entrada/salida o la memoria que incluye el microcontrolador, se ha de prescindir de cualquier otra circuitería.

Estructura básica de un microcontrolador

Un microcontrolador es un encapsulado de circuito integrado, con su procesador (CPU), buses, memoria, periféricos y puertos de entrada salida. Fuera del encapsulado se ubican otros circuitos para completar periféricos internos y dispositivos, que pueden conectarse a las patas de entrada/salida. También se conectarán a las patas del encapsulado, la alimentación, masa, circuito de acoplamiento del oscilador y otros circuitos necesarios para que el microcontrolador pueda trabajar.

Núcleo de un microcontrolador

Aún cuando el microcontrolador es una computadora embebida dentro de un circuito integrado, se compone de un núcleo y un conjunto de circuitos adicionales. Dentro del núcleo se encuentran el procesador y la memoria, todo ello estructurado de forma tal que conforme una arquitectura de computadora.

1 Un DSP es un procesador digital de señales

12 | P á g i n a

Arquitecturas

Básicamente existen dos arquitecturas de computadoras, y por supuesto, están presentes en el mundo de los microcontroladores: Von Neumann y Harvard. Ambas se diferencian en la forma de conexión de la memoria al procesador y en los buses que cada una necesita.

La arquitectura Von Neumann es la que se utiliza en las computadoras personales, para ella existe una sola memoria, donde coexisten las instrucciones de programa y los datos, accedidos con un bus de dirección, uno de datos y uno de control.

Debemos comprender que en una PC, cuando se carga un programa en memoria, a éste se le asigna un espacio de direcciones de la memoria que se divide en segmentos, de los cuales típicamente tenderemos los siguientes: código (programa), datos y pila. Es por ello que podemos hablar de la memoria como un todo, aunque existan distintos dispositivos físicos en el sistema (HDD, RAM, CD, FLASH).

En el caso de los microcontroladores, existen dos tipos de memoria bien definidas: memoria de datos (típicamente algún tipo de SRAM), y memoria de programas (ROM, PROM, EEPROM, FLASH u de otro tipo no volátil). En este caso la organización es distinta a las de las PC, porque hay circuitos distintos para cada memoria y normalmente no se utilizan los registros de segmentos, sino que la memoria está separada y el acceso a cada tipo de memoria depende de las instrucciones del procesador.

A pesar de que en los sistemas embebidos con arquitectura Von Neumann la memoria esté segregada, y existan diferencias con respecto a la definición tradicional de esta arquitectura; los buses para acceder a ambos tipos de memoria son los mismos, del procesador solamente salen el bus de datos, el de direcciones, y el de control. Como conclusión, la arquitectura no ha sido alterada, porque la forma en que se conecta la memoria al procesador sigue el mismo principio definido en la arquitectura básica.

Esta arquitectura es la variante adecuada para las PC, porque permite ahorrar una buena cantidad de líneas de E/S, que son bastante costosas, sobre todo para aquellos sistemas como las PC, donde el procesador se monta en algún tipo de socket alojado en una placa madre (motherboard). También esta organización les ahorra a los diseñadores de “motherboards”, una buena cantidad de problemas y reduce el costo de este tipo de sistemas.

Algunas familias de microcontroladores como la INTEL-51 y la Z80 implementan este tipo de arquitectura, fundamentalmente porque era la utilizada cuando aparecieron los primeros microcontroladores.

La otra variante es la arquitectura Harvard, y por excelencia la utilizada en supercomputadoras, en los microcontroladores, y sistemas embebidos en general. En este caso, además de la memoria, el procesador tiene los buses separados, de modo que cada tipo de memoria tiene un bus de datos, uno de direcciones y uno de control.

La ventaja fundamental de esta arquitectura, es que permite adecuar el tamaño de los buses a las características de cada tipo de memoria; además, el procesador puede acceder a cada una de ellas de forma simultánea, lo que se traduce en un aumento significativo de la velocidad de procesamiento, típicamente los sistemas con esta arquitectura pueden ser dos veces más rápidos, que sistemas similares con arquitectura Von Neumann.

13 | P á g i n a

La desventaja está en que consume muchas líneas de E/S del procesador; por lo que en sistemas donde el procesador está ubicado en el encapsulado, sólo se utilizan en supercomputadoras. Sin embargo, en los microcontroladores y otros sistemas embebidos, donde usualmente la memoria de datos y programas comparten el mismo encapsulado que el procesador, este inconveniente deja de ser un problema serio, y es por ello que encontramos la arquitectura Harvard en la mayoría de los microcontroladores.

Registros

Son un espacio de memoria muy reducido pero necesario para cualquier microprocesador, de aquí se toman los datos para varias operaciones que debe realizar el resto de los circuitos del procesador. Los registros sirven para almacenar los resultados de la ejecución de instrucciones, cargar datos desde la memoria externa o almacenarlos en ella.

Aunque la importancia de los registros parezca trivial, no lo es en absoluto. De hecho una parte de los registros, la destinada a los datos, es la que determina uno de los parámetros más importantes de cualquier microprocesador. Cuando escuchamos que un procesador es de 4, 8, 16, 32 ó 64 bits, nos estamos refiriendo a procesadores que realizan sus operaciones con registros de datos de ese tamaño, y por supuesto, esto determina muchas de las potencialidades de estas máquinas.

Mientras mayor sea el número de bits de los registros de datos del procesador, mayores serán sus prestaciones, en cuanto a poder de cómputo y velocidad de ejecución, ya que este parámetro, determina la potencia que se puede incorporar al resto de los componentes del sistema, por ejemplo, no tiene sentido tener una ALU de 16 bits en un procesador de 8 bits.

Por otro lado un procesador de 16 bits, puede que haga una suma de 16 bits en un sólo ciclo de máquina, mientras que uno de 8 bits deberá ejecutar varias instrucciones antes de tener el resultado, aún cuando ambos procesadores tengan la misma velocidad de ejecución para sus instrucciones. El procesador de 16 bits será más rápido porque puede hacer el mismo tipo de tareas que uno de 8 bits, en menos tiempo.

Unidad de control

Esta unidad es de las menos importantes en el procesador, en ella recae la lógica necesaria para la decodificación y ejecución de las instrucciones, el control de los registros, la “ALU2”, los buses, etc.

La unidad de control es uno de los elementos fundamentales que determinan las prestaciones del procesador, ya que su tipo y estructura, determina parámetros tales como el tipo de conjunto de instrucciones, velocidad de ejecución, tiempo del ciclo de máquina, tipo de buses que puede tener el sistema, manejo de interrupciones y muchas cosas más.

Por supuesto, las unidades de control, son el elemento más complejo de un procesador y normalmente están divididas en unidades más pequeñas trabajando de conjunto. La unidad de control agrupa componentes, tales como la unidad de decodificación, unidad de ejecución, controladores de memoria cache, controladores de buses, controladores de interrupción, pipelines, entre otros elementos, dependiendo siempre del tipo de procesador.

2 ALU es la unidad aritmético-lógica

14 | P á g i n a

Unidad aritmética y lógica

Como los procesadores son circuitos que hacen básicamente operaciones lógicas y matemáticas, se le dedica a este proceso una unidad completa, con cierta independencia. Aquí es donde se realizan las sumas, restas, y operaciones lógicas, típicas del álgebra de Boole.

Actualmente este tipo de unidades ha evolucionado mucho y los procesadores más modernos tienen varias ALU, especializadas en la realización de operaciones complejas como las operaciones en coma flotante. De hecho en muchos casos, le han cambiado su nombre por el de “coprocesador matemático”, aunque este es un término que surgió para dar nombre a un tipo especial de procesador, que se conecta directamente al procesador más tradicional.

Su impacto en las prestaciones del procesador es también importante porque, dependiendo de su potencia, tareas más o menos complejas, pueden hacerse en tiempos muy cortos, como por ejemplo, los cálculos en coma flotante.

Buses

Son el medio de comunicación, que utilizan los diferentes componentes del procesador para intercambiar información entre sí, eventualmente los “buses” o una parte de ellos estarán reflejados en las patas del encapsulado del procesador.

En el caso de los microcontroladores, no es común que los buses estén reflejados en el encapsulado del circuito, ya que éstos se destinan básicamente a las E/S de propósito general y periféricos del sistema.

Existen tres tipos de buses:

Dirección: Se utiliza para seleccionar al dispositivo con el cual se quiere trabajar o en el caso de las memorias, seleccionar el dato que se desea leer o escribir.

Datos de Control: Se utilizan para gestionar los distintos procesos de escritura, lectura y controlar la operación de los dispositivos del sistema.

Conjunto de instrucciones

Define las operaciones básicas que puede realizar el procesador, que conjugadas y organizadas forman lo que conocemos como software. El conjunto de instrucciones vienen siendo como las letras del alfabeto, el elemento básico del lenguaje, que organizadas adecuadamente permiten escribir palabras, oraciones y cuanto programa se le ocurra.

Existen dos tipos básicos de repertorios de instrucciones, que determinan la arquitectura del procesador: CISC y RISC.

15 | P á g i n a

CISC, del inglés Complex Instruction Set Computer, Computadora de Conjunto de Instrucciones Complejo. Los microprocesadores CISC, tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y que permiten, realizar operaciones complejas entre operandos situados en la memoria o en los registros internos.

Este tipo de repertorio dificulta el paralelismo entre instrucciones, por lo que en la actualidad, la mayoría de los sistemas CISC de alto rendimiento, convierten las instrucciones complejas en varias instrucciones simples del tipo RISC.

Dentro de los microcontroladores CISC podemos encontrar a la popular familia INTEL -51 y la Z80, aunque actualmente existen versiones CISC-RISC de estos microcontroladores, que pretenden aprovechar las ventajas de los procesadores RISC, a la vez que se mantiene la compatibilidad hacia atrás con las instrucciones de tipo CISC.

RISC, del inglés Reduced Instruction Set Computer, Computadora con Conjunto de Instrucciones Reducido. Se centra en la obtención de procesadores con las siguientes características fundamentales:

Instrucciones de tamaño fijo Pocas instrucciones Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos Número relativamente elevado de registros de propósito general

Una de las características más destacables de este tipo de procesadores, es que posibilitan el paralelismo en la ejecución, y reducen los accesos a memoria. Es por eso que los procesadores más modernos, tradicionalmente basados en arquitecturas CISC, implementan mecanismos de traducción de instrucciones CISC a RISC, para aprovechar las ventajas de este tipo de procesadores.

Memoria

La memoria en los microcontroladores debe estar ubicada dentro del mismo encapsulado, esto es así la mayoría de las veces, porque la idea fundamental es mantener el grueso de los circuitos del sistema dentro de un sólo integrado.

En los microcontroladores la memoria no es abundante, aquí no encontrará Gigabytes de memoria como en las computadoras personales. Típicamente la memoria de programas no excederá de 16 K-localizaciones de memoria no volátil para instrucciones, y la memoria RAM ni siquiera llegará a exceder los 5 Kilobytes.

La memoria RAM está destinada al almacenamiento de información temporal que será utilizada por el procesador para realizar cálculos u otro tipo de operaciones lógicas. En el espacio de direcciones de memoria RAM, se ubican además los registros de trabajo del procesador y los de configuración y trabajo de los distintos periféricos del microcontrolador. El tipo de memoria utilizada en las memorias RAM de los microcontroladores es SRAM, lo que evita tener que implementar sistemas de refrescamiento, como en el caso de las computadoras personales, que utilizan gran cantidad de memoria, típicamente alguna tecnología DRAM.

A pesar de que la memoria SRAM es más costosa que la DRAM, es el tipo adecuado para los microcontroladores, porque éstos poseen pequeñas cantidades de memoria RAM.

16 | P á g i n a

En el caso de la memoria de programas se utilizan diferentes tecnologías, y el uso de una u otra depende de las características de la aplicación a desarrollar, a continuación se describen las cinco tecnologías existentes, que mayor utilización tienen o han tenido, hasta el momento de escribir la realización de este trabajo:

ROM de máscara. En este caso no se “graba” el programa en memoria, sino que el microcontrolador se fabrica con el programa, es un proceso similar al de producción de los CD comerciales mediante masterización.

El costo inicial de producir un circuito de este tipo es alto, porque el diseño y producción de la máscara es un proceso costoso, sin embargo, cuando se necesitan varios miles o incluso cientos de miles de microcontroladores para una aplicación determinada, como por ejemplo, algún electrodoméstico, el costo inicial de producción de la máscara y el de fabricación del circuito, se distribuye entre todos los circuitos de la serie y, el costo final de ésta, es bastante menor que el de sus semejantes con otro tipo de memoria.

TP One Time Programmable. Este tipo de memoria, también es conocida como PROM o simplemente ROM.

Los microcontroladores con memoria OTP se pueden programar una sola vez, con algún tipo de programador. Se utilizan en sistemas donde el programa no requiera futuras actualizaciones, y para series relativamente pequeñas, donde la opción de la máscara sea muy costosa, también para sistemas que requieren serialización de datos, almacenados como constantes en la memoria de programas.

EPROM Erasable Programmable Read Only Memory. Los microcontroladores con este tipo de memoria son muy fáciles de identificar, porque su encapsulado es de cerámica y llevan encima una ventanita de vidrio, desde la cual puede verse la oblea de silicio del microcontrolador.

Se fabrican así porque la memoria EPROM es reprogramable, pero antes debe borrase, y para ello hay que exponerla a una fuente de luz ultravioleta, el proceso de grabación es similar al empleado para las memorias OTP. Al aparecer tecnologías menos costosas y más flexibles, como las memorias EEPROM y FLASH, este tipo de memoria han caído en desuso, se utilizaban en sistemas que requieren actualizaciones del programa, y para los procesos de desarrollo y puesta a punto.

EEPROM Electrical Erasable Programmable Read Only Memory. Fueron el sustituto natural de las memorias EPROM, la diferencia fundamental es que pueden ser borradas eléctricamente, por lo que la ventanilla de cristal de cuarzo y los encapsulados cerámicos no son necesarios.

Al disminuir los costos de los encapsulados, los microcontroladores con este tipo de memoria se hicieron más baratos y cómodos para trabajar, que sus equivalentes con memoria EPROM. Otra característica destacable de este tipo de microcontrolador, es que fue en ellos donde comenzaron a utilizarse los sistemas de programación en circuito o ICSP (In Circuit Serial Progamming), que evitan tener que sacar el microcontrolador de la tarjeta que lo aloja para hacer actualizaciones al programa.

17 | P á g i n a

FLASH. En el campo de las memorias reprogramables para microcontroladores, son el último avance tecnológico en uso a gran escala, y han sustituido a los microcontroladores con memoria EEPROM.

A las ventajas de las memorias FLASH se le adicionan su gran densidad respecto a sus predecesoras, lo que permite incrementar la cantidad de memoria de programas a un costo muy bajo. Pueden además ser programadas con las mismas tensiones de alimentación del microcontrolador, el acceso en lectura y la velocidad de programación es superior, disminución de los costos de producción, entre otras. Lo más habitual es encontrar que la memoria de programas y datos está ubicada toda dentro del microcontrolador, de hecho, actualmente son pocos los microcontroladores que permiten conectar memoria de programas en el exterior del encapsulado. Las razones para estas “limitaciones” están dadas porque el objetivo fundamental es obtener la mayor integración posible, y conectar memorias externas consume líneas de E/S, que son uno de los recursos más preciados de los microcontroladores. A pesar de lo anterior existen familias como la INTEL 51, cuyos microcontroladores tienen la capacidad de ser expandidos, en una variada gama de configuraciones para el uso de memoria de programas externa. En el caso de los PIC, estas posibilidades están limitadas sólo a algunos microcontroladores de la gama alta, la Figura 5 muestra algunas de las configuraciones para memoria de programa, que podemos encontrar en los microcontroladores. La configuración (a) es la típica y podemos encontrarla casi en el 100% de los microcontroladores. La configuración (b) es poco frecuente y generalmente se logra configurando al microcontrolador, para sacrificar la memoria de programas interna, sin embargo, el 8031 de INTEL es un microcontrolador sin memoria de programas interna. La configuración (c) es la que se encuentra habitualmente en los microcontroladores, que tienen posibilidades de expandir su memoria de programas como algunos PIC de gama alta.

Cuando se requiere aumentar la cantidad de memoria de datos, lo más frecuente es colocar dispositivos de memoria externa en forma de periféricos, de esta forma se pueden utilizar memorias RAM, FLASH o incluso discos duros como los de las PC, mientras que para los cálculos y demás operaciones que requieran almacenamiento temporal de datos, se utiliza la memoria RAM interna del microcontrolador. Esta forma de expandir la memoria de datos está determinada en la mayoría de lo casos, por el tipo de repertorio de instrucciones del procesador, y porque permite un elevado número de configuraciones distintas, además del consiguiente ahorro de líneas de E/S, que se logra con el uso de memorias con buses de comunicación serie.

Interrupciones

El mundo está lleno de situaciones; de las cuales no podemos determinar ni cuando, ni como ni por qué se producen, en la mayoría de los casos lo único que podemos hacer es enterarnos de que determinada situación, asociada a un proceso, ha ocurrido. Para ello seleccionamos alguna condición o grupo de condiciones que nos indican, que el proceso que nos interesa debe ser atendido, a este fenómeno, en el cual se dan las condiciones que nos interesa conocer, lo llamaremos evento. En el segundo ejemplo vemos que para atender a Juan, éste debe tocar el timbre, por tanto, la llegada de Juan es el proceso que debemos atender y el sonido del timbre, es el evento que nos indica que Juan ha llegado.

El método de atención a procesos por interrupción, visto desde la óptica del ejemplo que se utilizó para mostrarlo, es más simple que el de la encuesta, pero no es cierto, el método se complica porque requiere que el microprocesador incorpore circuitos adicionales, para

18 | P á g i n a

registrar los eventos que le indican que debe atender al proceso asociado, y comprender estos circuitos y su dinámica no es una tarea sencilla.

Los circuitos para la atención a las interrupciones y todas las tareas que debe realizar el procesador, para atender al proceso que lo interrumpe son bastante complejos, y requieren una visión diferente de la que estamos acostumbrados a tener de nuestro mundo.

Los seres humanos no estamos conscientes de las interrupciones, en nuestro organismo existen mecanismos que nos interrumpen constantemente, para ello tenemos a nuestro sistema sensorial, pero no somos conscientes del proceso de interrupción, aunque sí de la atención a las interrupciones. Eso es porque incorporamos mecanismos que nos sacan rápidamente de la tarea que estemos haciendo, para atender una situación que no puede o no debe esperar mucho tiempo. Bien, esa misma es la idea que se incorpora en los microprocesadores para atender procesos, que no pueden esperar o que no sabemos cuando deben ser atendidos, porque ello depende de determinadas condiciones.

La cosa se complica en la secuencia de acciones a realizar, desde el momento en que se desencadena el proceso de interrupción, hasta que se ejecuta el programa que lo atiende, y en la secuencia de acciones posteriores a la atención. Los procesos de atención a interrupciones, tienen la ventaja de que se implementan por hardware ubicado en el procesador, así que es un método rápido de hacer que el procesador se dedique a ejecutar un programa especial, para atender eventos que no pueden esperar por mecanismos lentos como el de encuesta.

En términos generales, un proceso de interrupción y su atención por parte del procesador, tiene la siguiente secuencia de acciones.

1. En el mundo real, se produce el evento para el cual queremos que el procesador ejecute un programa especial, este proceso tiene la característica de que no puede esperar mucho tiempo antes de ser atendido, o no sabemos en que momento debe ser atendido.

2. El circuito encargado de detectar la ocurrencia del evento se activa, y como consecuencia, activa la entrada de interrupción del procesador.

3. La unidad de control detecta que se ha producido una interrupción, y “levanta” una bandera para registrar esta situación; de esta forma, si las condiciones que provocaron el evento desaparecen, y el circuito encargado de detectarlo desactiva la entrada de interrupción del procesador, ésta se producirá de cualquier modo, porque ha sido registrada.

4. La unidad de ejecución termina con la instrucción en curso, y justo antes de comenzar a ejecutar la siguiente, comprueba que se ha registrado una interrupción

5. Se desencadena un proceso que permite guardar el estado actual del programa en ejecución, y saltar a una dirección especial de memoria de programas, donde está la primera instrucción de la subrutina de atención a interrupción.

6. Se ejecuta el código de atención a interrupción, esta es la parte “consciente” de todo el proceso, porque es donde se realizan las acciones propias de la atención a la interrupción, y el programador juega su papel.

7. Cuando en la subrutina de atención a interrupción se ejecuta la instrucción de retorno, se desencadena el proceso de restauración del procesador al estado en que estaba, antes de la atención a la interrupción.

19 | P á g i n a

Como podemos observar, el mecanismo de interrupción es bastante complicado, sin embargo, tiene dos ventajas que obligan a su implementación: la velocidad y su capacidad de ser asincrónico. Ambas de conjunto, permiten que aprovechemos al máximo las capacidades de trabajo de nuestro procesador.

Los mecanismos de interrupción, no sólo se utilizan para atender eventos ligados a procesos que requieren atención inmediata, sino que se utilizan además para atender eventos de procesos asincrónicos.

Las interrupciones son tan eficaces, que permiten que el procesador actúe como si estuviese haciendo varias cosas a la vez, cuando en realidad se dedica a la misma rutina de siempre, ejecutar instrucciones una detrás de la otra.

Periféricos

Cuando vimos la organización básica de un microcontrolador, señalamos que dentro de éste se ubican un conjunto de periféricos, cuyas salidas están reflejadas en las patas del microcontrolador. A continuación, describiremos algunos de los periféricos que con mayor frecuencia encontraremos en los microcontroladores.

Entradas salidas de propósito general

También conocidos como puertos de E/S, generalmente agrupadas en puertos de 8 bits de longitud, permiten leer datos del exterior o escribir en ellos desde el interior del microcontrolador, el destino habitual es el trabajo con dispositivos simples como relevadores, LED, o cualquier otra cosa que se le ocurra al programador.

Algunos puertos de E/S, tienen características especiales que le permiten manejar salidas con determinados requerimientos de corriente, o incorporan mecanismos especiales de interrupción para el procesador.

Típicamente cualquier pata de E/S puede ser considerada E/S de propósito general, pero como los microcontroladores tienen un limitado número de patas, las E/S de propósito general comparten las patas con otros periféricos. Para usar una pata con cualquiera de las características a él asignadas, debemos configurarlo mediante los registros destinados a ello.

Temporizadores y contadores

Son circuitos sincrónicos para el conteo de los pulsos que llegan a su entrada de reloj. Si la fuente de conteo es el oscilador interno del microcontrolador, es común que no tengan una pata asociada, y en este caso trabajan como temporizadores. Por otra parte, cuando la fuente de conteo es externa, entonces tienen asociado una pata configurada como entrada, este es el modo contador.

Los temporizadores son uno de los periféricos más habituales en los microcontroladores, y se utilizan para muchas tareas, como por ejemplo, la medición de frecuencia, implementación de relojes, para el trabajo de conjunto con otros periféricos que requieren una base estable de tiempo, entre otras funcionalidades. Es frecuente que un microcontrolador típico incorpore más de un temporizador/contador, e incluso algunos tienen arreglos de contadores.

20 | P á g i n a

Como veremos más adelante, este periférico es un elemento casi imprescindible y es habitual que tengan asociada alguna interrupción. Los tamaños típicos de los registros de conteo son 8 y 16 bits, pudiendo encontrar dispositivos que sólo tienen temporizadores de un tamaño o con más frecuencia, con ambos tipos de registro de conteo.

Convertidor A/D

Como es muy frecuente el trabajo con señales analógicas, éstas deben ser convertidas a digital y por ello muchos microcontroladores incorporan un convertidor A/D, el cual se utiliza para tomar datos de varias entradas diferentes que se seleccionan mediante un multiplexor.

Las resoluciones más frecuentes son 8 y 10bits, aunque hay microcontroladores con convertidores de 11 y 12 bits, para resoluciones mayores es preciso utilizar convertidores A/D externos. Los convertidores A/D son uno de los periféricos más codiciados en el mundo de los microcontroladores, y es por ello que muchísimos PIC los incorporan, siendo ésta una de las características más destacables de los dispositivos que fabrica Microchip.

Puerto serie

Este periférico está presente en casi cualquier microcontrolador, normalmente en forma de UART (Universal Asynchronous Receiver Transmitter) o USART (Universal Synchronous Asynchronous Receiver Transmitter), dependiendo de si permiten o no el modo sincrónico de comunicación.

El destino común de este periférico es la comunicación con otro microcontrolador o con una PC, y en la mayoría de los casos hay que agregar circuitos externos para completar la interfaz de comunicación. La forma más común de completar el puerto serie es para comunicarlo con una PC, mediante la interfaz EIA-232 (más conocida como RS-232), es por ello que muchas personas se refieren a la UART o USART como puerto serie RS-232, pero esto constituye un error, puesto que este periférico se puede utilizar para interconectar dispositivos mediante otros estándares de comunicación.

Puerto serie sincrónico

Este tipo de periférico se utiliza para comunicar al microcontrolador con otros microcontroladores, o con periféricos externos conectados a él, mediante las interfaces SPI (Serial Peripheral Interface) o I2C (Inter-Integrated Circuit).

A pesar de que es también un tipo de puerto serie, es costumbre tratarlo de forma diferenciada respecto a la UART/USART, porque las interfaces SPI e I2C aparecieron mucho después que la UART/USART, su carácter es únicamente sincrónico, y no están diseñadas para interconectar al sistema con otros dispositivos independientes como una PC, sino para conectar al microcontrolador dispositivos, tales como memorias, pantallas LCD, convertidores A/D o D/A.

21 | P á g i n a

Otros puertos de comunicación

En un mundo cada vez más orientado a la interconexión de dispositivos, han aparecido muchas interfaces de comunicación, y los microcontroladores no se han quedado atrás para incorporarlas, es por ello que podemos encontrar algunos modelos con puertos USB (Universal Serial Bus), CAN (Controller Area Network), Ethernet, puerto paralelo entre otros.

Comparadores

Son circuitos analógicos basados en amplificadores operacionales, que tienen la característica de comparar dos señales analógicas y dar como salida los niveles lógicos ‘0’ o ‘1’, en dependencia del resultado de la comparación. Es un periférico muy útil para detectar cambios en señales de entrada, de las que solamente nos interesa conocer cuando está en un rango determinado de valores.

Modulador de ancho de pulsos

Los PWM (Pulse Width Modulator) son periféricos muy útiles, sobre todo para el control de motores, sin embargo, hay un grupo de aplicaciones que pueden realizarse con este periférico, dentro de las cuales podemos citar: la conversión digital analógica D/A, el control regulado de luz (dimming), entre otras.

Memoria de datos no volátil

Muchos microcontroladores han incorporado este tipo de memoria como un periférico más, para el almacenamiento de datos de configuración o de los procesos que se controlan. Esta memoria es independiente de la memoria de datos tipo RAM o la memoria de programas, en la que se almacena el código del programa a ejecutar por el procesador del microcontrolador.

Muchos de los microcontroladores PIC, incluyen este tipo de memoria, típicamente en forma de memoria EEPROM, incluso algunos de ellos permiten utilizar parte de la memoria de programas, como memoria de datos no volátil, por lo que el procesador tiene la capacidad de escribir en la memoria de programas, como si ésta fuese un periférico más.

Familias de microcontroladores

Los microcontroladores más comunes en uso, son:

Empresa 8 bits 12 bits 14

bits 16 bits 32 bits 64 bits

Atmel

AVR

ATmega8,89Sxxx

x familia similar

8051

ATmega

16

22 | P á g i n a

Freescale

(antes Motorola)

68HC05, 68HC08,

68HC11, HCS08 X x

68HC12

,

68HCS1

2,

68HCSX

12,

68HC16

683xx, PowerPC

Architecture,ColdFi

re

X

Hitachi, Ltd H8 X x X x X

Holtek HT8

Intel

MCS-48 (familia

8048)

MCS51 (familia

8051)

8xC251

X x MCS96,

MXS296 x X

National

Semiconductor COP8 X x X x X

Microchip

Familia 10f2xx

Familia 12Cxx

Familia 12Fxx,

16Cxx y 16Fxx

18Cxx y 18Fxx

dsPIC30

FXX y

dsPIC33

F de 16

bits

PIC32 X

NEC Corporation 78K

Parallax

STMicroelectronic

s

ST 62,ST 7

23 | P á g i n a

Texas Instruments TMS370, MSP430

Zilog Z8, Z86E02

Silabs C8051

Tabla 1 Familias de microprocesadores

Observación: Algunas arquitecturas de microcontrolador, están disponibles por tal cantidad de vendedores y en tantas variedades, que podrían tener, con total corrección, su propia categoría. Entre ellos encontramos, principalmente, las variantes de 8051 y Z80.

24 | P á g i n a

Capítulo 2

Tecnología .NET

25 | P á g i n a

2.1Tecnología .Net

Hace varios años, las aplicaciones se creaban utilizando un mismo lenguaje para todas las tareas, y para un sistema operativo concreto. Inicialmente las aplicaciones para Windows se realizaban en C, y el trabajo era enorme por dos cosas: la complejidad del lenguaje y la necesidad de conocer todos los detalles del sistema operativo, para poder programar sobre él.

Ahí nació Visual Basic, como una herramienta que permitía el desarrollo de las interfaces de una forma sencilla, para lo conocido hasta entonces, y con un lenguaje conocido por entonces como el Basic. Se utilizaban los controles en formato VBX para diseñar las ventanas, y luego un mecanismo de métodos y eventos para controlar el código.

Después la parte profesional pasó al C+, un lenguaje orientado a objetos muy complejo y difícil de mantener. Por otro lado, Visual Basic seguía avanzando con los COM (Component Objetc Model); un modelo de objetos que permitía la reutilización de componentes independiente del lenguaje, con el que estuviesen escritos, de esta forma transcurrieron las versiones 5 y 6 de Visual Basic, que se convirtieron en los entornos más importantes del panorama Windows.

Con el tiempo, además de los COM, aparecieron otras técnicas complementarias para ampliar los lenguajes existentes. Pero esta heterogeneidad de tecnologías, muchas veces dictadas por las necesidades tecnológicas del momento, como Internet, hicieron que se produjeran multitud de servicios duplicados, creación de servicios exclusivamente para algunos lenguajes, poca reutilización de código, más complejidad entre otras.

La solución definitiva se ha planteado con .NET, que consta de una serie de servicios iguales en todos los lenguajes, que mantienen la integridad con los desarrollos existentes, y hace posible una interoperatividad entre los lenguajes. Esto es, podemos utilizar varios lenguajes diferentes, y todos tendrán disponibles desde el mismo entorno de desarrollo, hasta los controles y componentes de programación. Una característica importante, es que podemos incluso escribir partes distintas de un mismo programa con varios lenguajes .NET.

2.1.1 .NET Framework

.NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras aplicaciones, y se compone de tres partes principales: el Common Language Runtime, las clases Framework y ASP.NET

El .NET Framework es un entorno multi-lenguaje para la construcción, distribución y ejecución de Servicios Webs y aplicaciones, es una nueva plataforma, diseñada para simplificar el desarrollo de aplicaciones en el entorno distribuido de Internet.

.Net Framework permite el desarrollo de aplicaciones, a través del uso de un conjunto de herramientas y servicios que proporciona, y que se agrupan en tres bloques:

El entorno de ejecución común o Common Languaje Runtime (CLR) Jerarquía de clases de .NET Motor de generación de formularios, para crear nuestras aplicaciones

26 | P á g i n a

El Common Languaje Runtime (CLR), es una serie de bibliotecas3 dinámicas (DLLs) usadas en tiempo de ejecución, para que los ejecutables o aplicaciones basados en .NET puedan ser ejecutados. Con esta tecnología se acabó eso de que existan dos tipos de ejecutables: los que son autosuficientes y no dependen de bibliotecas externas, o los que necesitan de bibliotecas en tiempo de ejecución para poder funcionar.

Con este CLR, sólo tendremos que instalar este componente, y nuestros programas .NET funcionarán en cualquier equipo, por otro lado, la biblioteca de clases de .NET Framework, proporciona una jerarquía de clases orientadas a objeto, disponibles para cualquiera de los lenguajes basados en .NET, incluido el Visual C++.

Los modelos de programación antiguos, eran poco flexibles e impedían al programador contemplar la idea de un proyecto para Internet, que le permitiera crear aplicaciones distribuidas más potentes. Estos sistemas utilizaban las tecnologías COM, ASP, ADO, que individualmente son buenas, pero que no están pensadas para ser ejecutadas en la red. Estos elementos definían la arquitectura Windows DNA (Distributed Internet Architecture), que hasta ahora era el modelo de programación para Internet. Esta tecnología queda ahora desplazada completamente por la arquitectura .NET

2.1.2 Funcionamiento de .NET

Al igual que las versiones anteriores de Visual C++, éste se encuentra dentro del paquete Visual Studio .NET, que incorpora varios lenguajes, herramientas y tecnologías. En nuestro caso nos centraremos en C# .NET, y como ya es habitual, en el resto de las aplicaciones de Microsoft, debemos ser generosos con el equipo, para desarrollar en .NET, por ejemplo y como veremos más adelante, el entorno de desarrollo tiene tanta información que se requiere cumplir con los requisitos mínimos de sistema.

La mejor forma de comprender cómo funciona .NET, es analizar las numerosas capas en las que se divide .NET Framework. Veamos la siguiente figura:

3 Biblioteca: en programación se refiere a conjunto de subprogramas para desarrollar software

Ilustración 5 - Capas de .Net

27 | P á g i n a

Esta jerarquía nos dice que en el nivel más alto, están los lenguajes que vamos a utilizar en nuestro desarrollo con .NET, que pueden ser varios. Luego traduce esas instrucciones al estándar .NET, para poder trabajar con esas instrucciones, de una forma independiente al lenguaje con que se escribieron. El siguiente paso es la generación de formularios para Windows o Web (ASP). Luego el enlace con bases de datos, si las hay. Y Por fin llegamos a todos los objetos disponibles, donde por último el runtime de lenguaje común (CLR), ejecutará la aplicación. Veamos ahora más técnicamente de abajo hacia arriba:

1. Runtime del lenguaje común

El runtime del lenguaje común, es la primera capa que pertenece a .NET Framework. Esta capa es la responsable de los servicios básicos de .NET, tales como la administración de memoria, la recolección de los elementos no utilizados, el control estructurado de excepciones y del subprocesamiento múltiple. Si .NET se transporta a otras arquitecturas que no estén basadas en Windows, el primer paso sería escribir un runtime del lenguaje para el nuevo equipo. El CLR tiene estas características:

Proporciona mejoras para el programador que antes tenía que elaborar

Administra el código en tiempo de ejecución: carga en memoria, liberación de memoria.

Gestiona la seguridad del código ejecutado

Abre posibilidades a otros fabricantes para incorporar sus lenguajes

Facilita la distribución e instalación de aplicaciones. Elimina los temibles conflictos de DLL's y versiones de ellas.

.

2. Biblioteca de clases

La biblioteca de clases base (BCL), es la parte de .NET Framework que define todos los tipos de datos básicos, tales como System.Object (raíz de la jerarquía de objetos .NET), tipos numéricos y de fechas, tipo string, matrices y colecciones, contiene también clases que administrarán las características centrales de .NET: entrada/salida de archivos, subprocesamiento, serialización y seguridad. La forma en la que los tipos se implementan en la BCL, siguen las especificaciones llamadas Common Type System (CTS), por ejemplo, estas especificaciones dictan la forma en la que un tipo .NET expone campos, propiedades, métodos y sucesos, también cómo un tipo puede heredar otro tipo.

3. Capa de datos

La capa de datos y XML, contienen las clases .NET que trabajan con bases de datos y con XML. Anteriormente el soporte XML4, era una compatibilidad proporcionada por un componente externo. En .NET vemos cómo está integrado en su mismo núcleo. Podemos decir que XML es

4 Lenguaje desarrollado por el W3 Consortium para permitir la descripción de información contenida en el WWW a

través de estándares y formatos comunes, de manera que tanto los usuarios de Internet como programas específicos (agentes) puedan buscar, comparar y compartir información en la red. El formato de XML es muy parecido al del HTML

aunque no es una extensión ni un componente de éste. "agent ", "HTML ", "W3C ", "WWW

28 | P á g i n a

el formato que utiliza .NET, para almacenar cualquier tipo de información. La parte de datos es la que se conoce como ADO.NET, y es el equivalente en .NET a la tecnología ActiveX Data Object (ADO), ampliamente conocida por los programadores de Visual C++, Intranets, etc.

4. Capa de formularios y ASP

Las dos capas siguientes son ASP.NET y Windows Forms. Aquí se sitúan todas las clases que podremos utilizar para generar las páginas Web en el primer caso, y las ventanas estándares o formularios en las aplicaciones de Windows en el segundo caso.

Aunque estén en el mismo nivel, las tecnologías son muy distintas. Web Forms se ejecuta en el servidor y produce HTML, y es la base de las conocidas Intranets, donde estas páginas devuelven otras páginas Web con conjuntos de resultados u otros datos. Windows Forms se ejecuta en el cliente, un equipo Windows.

La biblioteca de clases de .NET Framework está formada por una colección de ensamblados (o Assembly), cada uno de los cuales comprende una o más DLL. Un ensamblado consiste en un conjunto de tipos y recursos reunidos, para formar la unidad más elemental de código que puede ejecutar el entorno .NET Framework. Estos ensamblados, son los elementos con los que construiremos una aplicación.NET, que se compone de varios ensamblados. Podemos llamar también a un ensamblado, como una DLL lógica (recordamos que una DLL es una biblioteca de enlaces dinámicos), le decimos lógica, porque se trata de una lista de ficheros que se referencian en tiempo de ejecución, pero que no se compilan para producir un fichero físico, a diferencia de las DLL's tradicionales. Un ensamblado va mucho más allá, ya que puede contener otros recursos además de clases, como los son imágenes.

5. Capas de CLS y lenguajes

Como hemos dicho antes, el CLR, o el entorno de ejecución común, admite por encima de él cualquier tipo de lenguaje. Actualmente esos son los aprobados:

VB .NET C# C ++ ASP.NET Jscript.NET

Pero hay otros muchos que están en camino, y que podríamos utilizarlos con el mismo entorno y clases que los existentes:

Cobol Pascal Perl Python SmallTalk ML

29 | P á g i n a

2.1.3 Bases de la POO

Todo lo que trataremos en .NET se basa en clases y objetos. Estos conceptos muy sencillos,

pero pueden desconcertar al principio.

Las clases

Todo lo que tiene .NET Framework, son clases. Una clase no es ni más ni menos que código. Cuando definimos una clase, realmente estamos definiendo dos cosas diferentes: los datos que dicha clase puede manipular o contener, y la forma de acceder a esos datos.

Por ejemplo, si tenemos una clase de tipo Cliente, por un lado tendremos los datos de dicho cliente, y por otro la forma de acceder o modificar esos datos. En el primer caso, los datos del Cliente, como por ejemplo el nombre o ubicación, estarán representados por una serie de campos o propiedades, mientras que la forma de modificar o acceder a esa información del Cliente, se hará por medio de métodos. Esas propiedades o características y las acciones a realizar son las que definen a una clase.

Un coche tiene unas propiedades: color, marca, modelo, ... y unos métodos para trabajar con él: arrancar, frenar, cambiar de marcha. La definición de estas partes es lo que llamamos clase, sólo la definición, para trabajar con el coche.

Los Objetos

Por un lado tenemos una clase, que es la que define un "algo" con lo que podemos trabajar. Pero para que ese "algo" no sea un "nada", tendremos que poder convertirlo en "algo tangible", es decir, tendremos que tener la posibilidad de que exista. Aquí es cuando entran en juego los objetos, ya que un objeto es una clase que tiene información real. Por fin podemos crear un coche, del cual ya tenemos su definición en la clase Coche.

Digamos que la clase es la "plantilla", a partir de la cual podemos crear un objeto en la memoria. Por ejemplo, podemos tener varios objetos del tipo Cliente, uno por cada cliente que tengamos en nuestra cartera de clientes, pero la clase sólo será una.

En nuestros formularios: tenemos 10 botones y han sido creados a partir de la clase "Botón". Otro ejemplo es que tenemos una clase que se llama "Coches", donde describe qué es y cómo funciona un coche, pues bien, podemos crear diferentes coches a partir de la clase "Coches", cada uno puede tener sus propias características, pero funcionan todos igual.

Ahora sólo queda comentar que existen objetos de más categoría que otros, y que esta relación se llama jerarquía de objetos. Por ejemplo, un objeto Coche puede tener a su vez varios objetos más pequeños como podrían ser motor, carrocería, etc.

En .NET tenemos entonces varias Clases principales, y debajo de ellas todas las instrucciones del lenguaje. Por ejemplo, habrá una clase para los formularios (ventanas de Windows), que a su vez tendrán otras clases dentro: botones, textos, imágenes. Otra clase sería la colección de funciones matemáticas que podemos utilizar.

30 | P á g i n a

Para tener una idea, esta es la jerarquía de objetos para desarrollo en Web:

Ilustración 6 - Jerarquía de los objetos Web

31 | P á g i n a

2.2 Silverlight

Microsoft Silverlight, es una implementación multiplataforma de .NET Framework, que se puede ejecutar en distintos exploradores, para crear y proporcionar la nueva generación de experiencias multimedia y aplicaciones interactivas, enriquecidas para la Web. Silverlight unifica las funciones del servidor, la Web y el escritorio, del código administrado y de los lenguajes dinámicos, de la programación declarativa y la tradicional, así como la eficacia de Windows Presentation Foundation (WPF).

Silverlight permite crear aplicaciones de vanguardia, con las siguientes características:

Es una tecnología multiplataforma que se ejecuta en varios exploradores. Se ejecuta en todos los exploradores Web conocidos, como Microsoft Internet Explorer, Mozilla Firefox y Apple Safari, así como en Microsoft Windows y Apple Mac OS X.

Es una descarga muy pequeña que se instala en pocos segundos.

Transmite los contenidos de audio y vídeo por secuencias. Ajusta el contenido de vídeo a todo tipo de calidades, desde dispositivos móviles, hasta exploradores de escritorio y modos de vídeo HDTV de 720p.

Incluye gráficos atractivos que los usuarios pueden manipular (arrastrar, girar y acercar o alejar), directamente en el explorador.

Lee datos y actualiza la pantalla, pero no interrumpe al usuario al actualizar la página completa.

Los desarrolladores Web y diseñadores de gráficos, pueden crear aplicaciones basadas en Silverlight de diversas maneras. Se puede utilizar el marcado de Silverlight, para crear elementos multimedia y gráficos, y manipularlos con lenguajes dinámicos y código administrado. Silverlight también permite utilizar herramientas de calidad profesional, como Visual Studio, que permite realizar la codificación y Microsoft Expression Blend, utilizado para el diseño gráfico.

Silverlight combina varias tecnologías en una sola plataforma de desarrollo, que permite seleccionar las herramientas y el lenguaje de programación apropiados, según las necesidades del usuario. Silverlight ofrece las características siguientes:

WPF y XAML. Silverlight incluye un subconjunto de la tecnología Windows Presentation Foundation (WPF), que extiende en gran medida los elementos en el explorador, para crear la interfaz de usuario. WPF permite crear gráficos, animaciones y elementos multimedia fascinantes, así como otras características de cliente enriquecidas, extendiendo la interfaz de usuario basada en explorador, más allá de lo que está disponible únicamente con HTML.

Extensiones a JavaScript. Silverlight proporciona extensiones al lenguaje de scripting de explorador universal, que permiten controlar la interfaz de usuario del explorador, incluida la capacidad para trabajar con elementos WPF.

Compatibilidad con varios exploradores y plataformas. Silverlight se ejecuta de la misma manera en todos los exploradores conocidos (y en las plataformas conocidas). Es posible diseñar y desarrollar aplicaciones, sin tener que preocuparse del explorador o de la plataforma de los usuarios.

32 | P á g i n a

Integración con aplicaciones existentes. Silverlight se integra perfectamente con el código JavaScript y ASP.NET AJAX existente, de modo que complementa la funcionalidad ya creada.

Acceso al modelo de programación de .NET Framework y a las herramientas asociadas. Se pueden crear aplicaciones basadas en Silverlight mediante lenguajes dinámicos, como IronPython, y lenguajes como C# y Visual Basic. Se pueden utilizar herramientas de desarrollo como Visual Studio, para crear aplicaciones basadas en Silverlight.

Compatibilidad de red. Silverlight incluye compatibilidad con HTTP sobre TCP. Se puede conectar a los servicios WCF, SOAP o ASP.NET AJAX y recibir datos XML, JSON o RSS.

LINQ. Silverlight incluye Language Integrated Query (LINQ), que permite programar el acceso a datos utilizando una sintaxis nativa intuitiva, y objetos con establecimiento inflexible de tipos en los lenguajes de .NET Framework.

La plataforma de Silverlight en su conjunto se compone de dos partes principales, además de un componente de instalador y actualización, tal y como se describe en la siguiente tabla.

Componente Descripción

Marco de trabajo de presentación básico

Componentes y servicios orientados a la interfaz de usuario y la interacción con el usuario, incluidos los datos proporcionados por el usuario, controles de interfaz de usuario ligeros para su uso en las aplicaciones Web, reproducción de elementos multimedia, administración de derechos digitales, enlaces de datos; y características de presentación, incluidos gráficos vectoriales, texto, animaciones e imágenes. También incluye el lenguaje XAML para especificar el diseño.

.NET Framework para Silverlight

Subconjunto de .NET Framework, que contiene componentes y bibliotecas, que incluyen integración de datos, controles de Windows extensibles, funciones de red, bibliotecas de clases base, recolección de elementos no utilizados y CLR (Common Language Runtime). Algunas partes de .NET Framework para Silverlight, se implementan con la aplicación. Estas "bibliotecas de Silverlight", son ensamblados que no se incluyen en el motor en tiempo de ejecución de Silverlight, sino que se distribuyen en el SDK de Silverlight. Cuando se utilizan bibliotecas de Silverlight en la aplicación, se empaquetan con esta última y se descargan al explorador. Incluyen las de nuevos controles de interfaz de usuario, XLINQ, distribución (RSS/Atom), serialización XML y DLR (Dynamic Language Runtime).

Componente de instalador y actualización

Control de instalación y actualización, que simplifica el proceso de instalar la aplicación para los usuarios noveles y, a continuación, proporciona actualizaciones automáticas de bajo impacto.

Tabla 2 - Componentes de Silverlight

33 | P á g i n a

2.2.1 Arquitectura de Silverlight

El conjunto combinado de herramientas, tecnologías y servicios que se incluyen en la plataforma de Silverlight, encierra un valor concreto: facilita a los programadores, la tarea de crear aplicaciones enriquecidas e interactivas en red. Aunque no cabe duda de que es posible generar este tipo de aplicaciones, mediante las herramientas y tecnologías Web5 de hoy, el trabajo de los programadores puede resultar mas complicado debido a numerosas dificultades técnicas, tales como plataformas incompatibles, protocolos y formatos de archivo dispares, y diversidad de exploradores Web, que representan las páginas y administran los scripts de manera diferente. Una aplicación Web enriquecida, que se ejecuta perfectamente en una combinación de sistema y explorador, puede funcionar de manera muy distinta, e incluso no funcionar en absoluto, en otro sistema u otro explorador. Con la gran variedad actual de herramientas, protocolos y tecnologías, constituye un esfuerzo titánico y, con frecuencia, económicamente prohibitivo, generar una aplicación que puede proporcionar al mismo tiempo las ventajas siguientes:

Capacidad para crear la misma experiencia del usuario, en la totalidad de exploradores y plataformas, de tal forma que la aplicación presente la misma apariencia y el mismo funcionamiento en todos ellos.

Integración de datos y servicios procedentes de diversas ubicaciones de red en una misma aplicación, mediante las clases y funcionalidades conocidas de .NET Framework.

Una interfaz de usuario rica en elementos multimedia, atractiva y accesible.

Silverlight, facilita a los desarrolladores la labor de crear este tipo de aplicaciones, porque supera muchas de las incompatibilidades actuales entre las tecnologías, y proporciona, dentro de una misma plataforma, las herramientas necesarias para crear aplicaciones enriquecidas, multiplataforma e integradas.

Ilustración 7 - Arquitectura de Silverlight

5 Web: Este término se refiera a sistema de documentos de hypertexto

34 | P á g i n a

2.2.2 Componentes de presentación básicos

Las características de presentación básicas de la plataforma Silverlight, mostradas en la sección e ilustración anteriores, se describen en la tabla siguiente.

Característica Descripción

Entrada Administra datos de entrada procedentes de distintos dispositivos de

hardware, como los de dibujo, el teclado y el mouse, y otros.

Representación de la

interfaz de usuario

Representa gráficos vectoriales y de mapa de bits, animaciones y

texto.

Multimedia Permite la reproducción y administración de varios tipos de archivos

de audio y vídeo, como los archivos .WMP y .MP3.

Deep Zoom Permite acercar imágenes de alta resolución y realizar un movimiento

panorámico alrededor de las mismas.

Controles Admite controles extensibles que se pueden personalizar aplicando

estilos y plantillas.

Diseño Permite la colocación dinámica de los elementos de la interfaz de

usuario.

Enlace de datos Permite la vinculación de objetos de datos y elementos de la interfaz

de usuario.

DRM Permite la administración de derechos digitales de los recursos

multimedia.

XAML Proporciona un analizador para el marcado XAML.

Tabla 3 - Características de presentación de Silverlight

Los programadores pueden interactuar con este marco de trabajo de presentación, utilizando XAML para especificar los detalles de presentación. XAML constituye el punto primario de interacción entre .NET Framework y la capa de la presentación. Los programadores pueden manipular la capa de presentación mediante programación, con código administrado.

35 | P á g i n a

2.2.3 .NET Framework para Silverlight.

En la tabla 4, se describe una lista parcial de las características de .NET Framework, para Silverlight mostradas en la ilustración 7.

Característica Descripción

Data Admite las características de LINQ (Language-Integrated Query) y de LINQ

to XML, que facilitan el proceso de integrar datos procedentes de orígenes

dispares y trabajar con ellos. También admite el uso de las clases de

serialización y XML para administrar los datos.

Biblioteca de clases

base

Un conjunto de bibliotecas de .NET Framework que proporcionan las

funciones de programación esenciales, como la administración de

cadenas, expresiones regulares, entrada y salida.

Windows

Communication

Foundation (WCF)

Proporciona características para simplificar el acceso a los servicios y datos

remotos. Esto incluye un objeto de explorador, un objeto de solicitud y

respuesta HTTP, compatibilidad con solicitudes HTTP entre dominios,

compatibilidad con fuentes de distribución RSS/Atom, así como

compatibilidad con los servicios JSON, POX y SOAP.

CLR (Common

Language Runtime)

Proporciona administración de memoria, recolección de elementos no

utilizados, comprobación de seguridad de tipos y control de excepciones.

Controles de WPF

(Windows

Presentation

Foundation)

Proporciona un conjunto enriquecido de controles, como son Button,

Calendar, CheckBox, DataGrid, DatePicker, HyperlinkButton, ListBox,

RadioButton y ScrollViewer.

DLR (Dynamic

Language Runtime)

Admite la compilación y ejecución dinámicas de lenguajes de scripting,

como JavaScript y IronPython, para programar aplicaciones basadas en

Silverlight. Incluye un modelo conectable, que aporta compatibilidad con

otros lenguajes para su uso con Silverlight.

Tabla 4 - Características Net Framework de Silverlight

.NET Framework, para Silverlight es un subconjunto de la plataforma .NET Framework completa. Proporciona los fundamentos del desarrollo robusto y orientado a objetos para tipos de aplicaciones (como las de Internet), que tradicionalmente no contaban con este tipo de recursos.

Los desarrolladores pueden interactuar con la capa de .NET Framework para Silverlight, escribiendo código administrado en C# y Visual Basic. Los desarrolladores de .NET Framework, también pueden tener acceso a la capa de presentación, creando sus aplicaciones en Visual Studio 2008 o Microsoft Expression Blend.

36 | P á g i n a

2.2.4 Características de programación adicionales de Silverlight

Silverlight proporciona varias características adicionales, que ayudan a los programadores a crear aplicaciones enriquecidas e interactivas, incluidas las descritas en la tabla siguiente.

Característica Descripción

Almacenamiento

aislado

Proporciona acceso seguro del cliente de Silverlight, al sistema de archivos

del equipo local. Permite el almacenamiento local y el almacenamiento en

caché de datos aislados, para un usuario determinado.

Programación

asincrónica

Un subproceso de trabajo de segundo plano lleva a cabo tareas de

programación, mientras la aplicación queda libre para interactuar con el

usuario.

Administración de

archivos

Proporciona un cuadro de diálogo Abrir archivo seguro, a fin de facilitar el

proceso de crear cargas de archivo seguras.

Interacción entre

HTML y código

administrado

Permite a los programadores de .NET Framework, manipular directamente

los elementos de la interfaz de usuario en el DOM HTML, de una página

Web. Los programadores Web también pueden utilizar JavaScript, para

efectuar llamadas directas al código administrado y tener acceso a los

objetos, propiedades, eventos y métodos que admiten el uso de scripts.

Serialización Proporciona soporte técnico para la serialización de los tipos CLR a JSON y

XML.

Empaquetar Proporciona la clase Application y herramientas de compilación, para crear

paquetes .xap. El paquete .xap contiene la aplicación y el punto de entrada,

para que se ejecute el control del complemento Silverlight.

Bibliotecas XML Las clases XmlWriter y XmlReader, simplifican el trabajo con los datos XML

de los servicios Web. La característica XLinq, permite a los desarrolladores

consultar los datos XML, directamente en los lenguajes de programación de

.NET Framework.

Tabla 5 - Características de programación en Silverlight

37 | P á g i n a

Herramientas y tecnologías relacionadas

Las aplicaciones de Microsoft siguientes, incluyen características especiales para el desarrollo en Silverlight:

Microsoft Expression Blend. Esta herramienta se puede utilizar para crear y modificar la capa de presentación de una aplicación; para ello, permite manipular el lienzo y los controles XAML, trabajar con gráficos y programar la capa de presentación, mediante un lenguaje dinámico, como JavaScript.

Visual Studio 2008. Visual Studio proporciona herramientas de productividad, para desarrollar aplicaciones mediante código administrado. Todas las características existentes de Visual Studio están disponibles para Silverlight. Además, esta versión de

Visual Studio, incluye las características específicas de Silverlight, tales como: IntelliSense, depuración, y plantillas de proyecto de Silverlight que crean y vinculan todos los archivos necesarios.

38 | P á g i n a

Capítulo 3

Protocolo TCP/IP

39 | P á g i n a

3.1 Protocolo TCP/IP

TCP/IP, es el protocolo común utilizado por todos los ordenadores conectados a Internet, de manera que éstos puedan comunicarse entre sí. Hay que tener en cuenta, que en Internet se encuentran conectados ordenadores de clases muy diferentes, y con hardware y software incompatibles en muchos casos, además de todos los medios y formas posibles de conexión. Aquí se encuentra una de las grandes ventajas del TCP/IP, pues este protocolo se encargará de que la comunicación entre todos sea posible. TCP/IP es compatible con cualquier sistema operativo y con cualquier tipo de hardware.

TCP/IP no es un único protocolo, sino que en realidad lo que se conoce con este nombre es un conjunto de protocolos, que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son el TCP (Transmission Control Protocol), y el IP (Internet Protocol), que son los que dan nombre al conjunto. En Internet, se diferencian cuatro niveles o capas en las que se agrupan los protocolos, y que se relacionan con los niveles OSI, de la siguiente manera:

Aplicación: Se corresponde con los niveles OSI de aplicación, presentación y sesión. Aquí se incluyen protocolos destinados a proporcionar servicios, tales como correo electrónico (SMTP), transferencia de ficheros (FTP), conexión remota (TELNET) y otros más recientes como el protocolo HTTP (Hypertext Transfer Protocol).

Transporte: Coincide con el nivel de transporte del modelo OSI. Los protocolos de este nivel, tales como TCP y UDP, se encargan de manejar los datos y proporcionar la fiabilidad necesaria en el transporte de los mismos.

Internet: Es el nivel de red del modelo OSI. Incluye al protocolo IP, que se encarga de enviar los paquetes de información a sus destinos correspondientes. Es utilizado con esta finalidad por los protocolos del nivel de transporte.

Enlace: Los niveles OSI correspondientes, son el de enlace y el nivel físico. Los protocolos que pertenecen a este nivel, son los encargados de la transmisión a través del medio físico al que se encuentra conectado cada 6”host”, como puede ser una línea punto a punto o una red Ethernet.

El TCP/IP necesita funcionar sobre algún tipo de red o de medio físico, que proporcione sus propios protocolos para el nivel de enlace de Internet. Por este motivo, hay que tener en cuenta, que los protocolos utilizados en este nivel pueden ser muy diversos, y no forman parte del conjunto TCP/IP. Sin embargo, esto no debe ser problemático, puesto que una de las funciones y ventajas principales del TCP/IP, es proporcionar una abstracción del medio, de forma que sea posible el intercambio de información entre medios diferentes, y tecnologías que inicialmente son incompatibles.

Para transmitir información a través de TCP/IP, ésta debe ser dividida en unidades de menor tamaño. Esto proporciona grandes ventajas en el manejo de los datos que se transfieren y, por otro lado, esto es algo común en cualquier protocolo de comunicaciones. En TCP/IP, cada una de estas unidades de información recibe el nombre de "datagrama" (datagram), y son conjuntos de datos que se envían como mensajes independientes.

6 Host: Cualquier equipo que puede conectarse a la red , como computadoras, impresoras,etc.

40 | P á g i n a

3.2 TCP (Transmission Control Protocol).

El protocolo de control de transmisión (TCP), pertenece al nivel de transporte, siendo el encargado de dividir el mensaje original en datagramas de menor tamaño, y por lo tanto, mucho más manejables. Los datagramas serán dirigidos a través del protocolo IP de forma individual. El protocolo TCP se encarga además de añadir cierta información necesaria a cada uno de los datagramas. Esta información se añade al inicio de los datos que componen el datagrama en forma de cabecera.

La cabecera de un datagrama contiene al menos 160 bits, que se encuentran repartidos en varios campos con diferente significado. Cuando la información se divide en datagramas para ser enviados, el orden en que éstos lleguen a su destino, no tiene que ser el correcto. Cada uno de ellos puede llegar en cualquier momento y con cualquier orden, e incluso puede que algunos no lleguen a su destino o lleguen con información errónea. Para evitar todos estos problemas, el TCP numera los datagramas antes de ser enviados, de manera que sea posible volver a unirlos en el orden adecuado. Esto permite también solicitar de nuevo, el envío de los datagramas individuales, que no hayan llegado o que contengan errores, sin que sea necesario volver a enviar el mensaje completo.

3.2.1 Formato de la cabecera TCP.

Puerto origen Puerto destino Número de secuencia Señales de confirmación Tamaño Reservado Bits de control Window Tamaño Reservado Bits de control Window Checksum Puntero a datos urgentes

A continuación de la cabecera puede existir información opcional. En cualquier caso, el tamaño de la cabecera debe ser múltiplo de 32 bits, por lo que puede ser necesario añadir un campo de tamaño variable, y que contenga ceros al final, para conseguir este objetivo, cuando se incluyen algunas opciones. El campo de tamaño, contiene la longitud total de la cabecera TCP, expresada en el número de palabras de 32 bits que ocupa. Esto permite determinar el lugar donde comienzan los datos.

Dos campos incluidos en la cabecera y que son de especial importancia, son los números de puerto de origen y puerto de destino. Los puertos proporcionan una manera de distinguir entre las distintas transferencias, ya que un mismo ordenador puede estar utilizando varios servicios o transferencias simultáneamente, e incluso puede que por medio de usuarios distintos. El puerto de origen contendrá un número cualquiera, que sirva para realizar esta distinción. Además, el programa cliente que realiza la petición, también se debe conocer el número de puerto en el que se encuentra el servidor adecuado. Mientras que el programa del usuario utiliza números prácticamente aleatorios, el servidor deber tener un número estándar, para que pueda ser utilizado por el cliente. (Por ejemplo, en el caso de la transferencia de ficheros FTP, el número oficial es el 21). Cuando es el servidor el que envía los datos, los números de puertos de origen y destino se intercambian.

En la transmisión de datos a través del protocolo TCP, la fiabilidad es un factor muy importante. Para poder detectar los errores y pérdida de información en los datagramas, es necesario que el cliente envíe de nuevo al servidor unas señales de confirmación, una vez que se ha recibido y comprobado la información satisfactoriamente. Estas señales se incluyen en el

41 | P á g i n a

campo apropiado de la cabecera del datagrama (Acknowledgment Number), que tiene un tamaño de 32 bits. Si el servidor no obtiene la señal de confirmación adecuada, transcurrido un período de tiempo razonable, el datagrama completo se volverá a enviar. Por razones de eficiencia, los datagramas se envían continuamente sin esperar la confirmación, haciéndose necesaria la numeración de los mismos, para que puedan ser ensamblados en el orden correcto.

También puede ocurrir que la información del datagrama llegue con errores a su destino. Para poder detectar cuando sucede esto, se incluye en la cabecera un campo de 16 bits, el cual contiene un valor calculado a partir de la información del datagrama completo (checksum). En el otro extremo, el receptor vuelve a calcular este valor, comprobando que es el mismo que el suministrado en la cabecera. Si el valor es distinto, significaría que el datagrama es incorrecto, ya que en la cabecera o en la parte de datos del mismo, hay algún error.

La forma en que TCP numera los datagramas, es contando los bytes de datos que contiene cada uno de ellos, y añadiendo esta información al campo correspondiente al encabezado del datagrama siguiente. De esta manera el primero empezará por cero, el segundo, contendrá un número que será igual al tamaño en bytes de la parte de datos del datagrama anterior, el tercero, con la suma de los dos anteriores, y así sucesivamente. Por ejemplo, para un tamaño fijo de 500 bytes de datos en cada datagrama, la numeración sería la siguiente: 0 para el primero, 500 para el segundo, 1000 para el tercero, etc.

Existe otro factor más a tener en cuenta durante la transmisión de información, y es la potencia y velocidad con que cada uno de los ordenadores, puede procesar los datos que le son enviados. Si esto no se tuviera en cuenta, el ordenador de más potencia podría enviar la información demasiado rápido al receptor, de manera que éste no pueda procesarla. Este inconveniente se soluciona mediante un campo de 16 bits en el encabezado de TCP, en el cual se introduce un valor, indicando la cantidad de información que el receptor está preparado para procesar. Si el valor llega a cero, será necesario que el emisor se detenga. A medida que la información es procesada, este valor aumenta indicando disponibilidad, para continuar la recepción de datos.

TCP es el protocolo más utilizado para el nivel de transporte en Internet, pero además de éste, existen otros protocolos que pueden ser más convenientes en determinadas ocasiones. Tal es el caso de UDP y ICMP.

3.3 UDP (User Datagram Protocol)

El protocolo de datagramas de usuario (UDP), puede ser la alternativa al TCP en algunos casos, en los que no sea necesario el gran nivel de complejidad proporcionado por el TCP. Puesto que UDP no admite numeración de los datagramas, este protocolo se utiliza principalmente, cuando el orden en que se reciben los mismos, no es un factor fundamental, o también cuando se quiere enviar información de poco tamaño, que cabe en un único datagrama.

Cuando se utiliza UDP, la garantía de que un paquete llegue a su destino, es mucho menor que con TCP, debido a que no se utilizan las señales de confirmación. Por todas estas características, la cabecera del UDP es bastante menor en tamaño, que la de TCP. Esta simplificación resulta en una mayor eficiencia en determinadas ocasiones.

Un ejemplo típico de una situación en la que se utiliza el UDP, es cuando se pretende conectar con un ordenador de la red, utilizando para ello el nombre del sistema. Este nombre tendrá

42 | P á g i n a

que ser convertido a la dirección IP que le corresponde y, por tanto, tendrá que ser enviado a algún servidor que posea la base de datos necesaria para efectuar la conversión. En este caso, es mucho más conveniente el uso de UDP.

3.4 ICMP (Internet Control Message Protocol)

El protocolo de mensajes de control de Internet (ICMP), es de características similares al UDP, pero con un formato aún más simple. Su utilidad no está en el transporte de datos "de usuario", sino en los mensajes de error y de control necesarios para los sistemas de la red.

3.5 IP (Internet Protocol) versión 4.

El IP es un protocolo que pertenece al nivel de red, por lo tanto, es utilizado por los protocolos del nivel de transporte como TCP, para encaminar los datos hacia su destino. IP tiene únicamente la misión de encaminar el datagrama, sin comprobar la integridad de la información que contiene. Para ello, se utiliza una nueva cabecera que se antepone al datagrama que se está tratando. Suponiendo, que el protocolo TCP ha sido el encargado de manejar el datagrama antes de pasarlo al IP, la estructura del mensaje una vez tratado, quedaría así:

Cabecera IP (20 byte)

Cabecera TCP (20 byte)

Datos

La cabecera IP tiene un tamaño de 160 bits y está formada por varios campos de distinto significado. Estos campos son:

Versión: Número de versión del protocolo IP utilizado. Tendrá que tener el valor 4. Tamaño: 4 bits.

Longitud de la cabecera: (Internet Header Length, IHL) - Especifica la longitud de la cabecera, expresada en el número de grupos de 32 bits que contiene. Tamaño: 4 bits.

Tipo de servicio: El tipo o calidad de servicio, se utiliza para indicar la prioridad o importancia de los datos que se envían, lo que condicionará la forma en que éstos serán tratados durante la transmisión. Tamaño: 8 bits.

Longitud total: Es la longitud en bytes del datagrama completo, incluyendo la cabecera y los datos. Como este campo utiliza 16 bits, el tamaño máximo del datagrama no podrá superar los 65.535 bytes, aunque en la práctica este valor será mucho más pequeño. Tamaño: 16 bits.

Identificación: Valor de identificación, que se utiliza para facilitar el ensamblaje de los fragmentos del datagrama. Tamaño: 16 bits.

Flags: Indicadores utilizados en la fragmentación. Tamaño: 3 bits.

Fragmentación: Contiene un valor (offset), para poder ensamblar los datagramas que se hayan fragmentado. Está expresado en número de grupos de 8 bytes (64 bits), comenzando con el valor cero para el primer fragmento. Tamaño: 16 bits.

Límite de existencia: Contiene un número que disminuye cada vez que el paquete pasa por un sistema. Si este número llega a cero, el paquete será descartado. Esto es necesario por razones de seguridad, para evitar un bucle infinito, ya que aunque es bastante improbable que esto suceda en una red correctamente diseñada, no debe descuidarse esta posibilidad. Tamaño: 8 bits.

Protocolo: El número utilizado en este campo, sirve para indicar a qué protocolo pertenece el datagrama, que se encuentra a continuación de la cabecera IP, de manera que pueda ser tratado correctamente cuando llegue a su destino. Tamaño: 8 bits.

43 | P á g i n a

Comprobación: El campo de comprobación (checksum), es necesario para verificar que los datos contenidos en la cabecera IP, son correctos. Por razones de eficiencia, este campo no puede utilizarse para comprobar los datos incluidos a continuación, sino que estos datos de usuario se comprobarán posteriormente, a partir del campo de comprobación de la cabecera siguiente, y que corresponde al nivel de transporte. Este campo debe calcularse de nuevo, cuando cambia alguna opción de la cabecera, como puede ser el límite de existencia. Tamaño: 16 bits.

Dirección de origen: Contiene la dirección del host que envía el paquete. Tamaño: 32 bits.

Dirección de destino: Esta dirección es la del host que recibirá la información. Los ruteadores o gateways intermedios, deben conocerla para dirigir correctamente el paquete. Tamaño: 32 bits.

3.5.1 Organización de la cabecera IP.

Dirección de destino Versión IHL Tipo de servicio Longitud total Identificación Flags Fragmentación Límite de existencia Protocolo Comprobación Dirección de origen La dirección de Internet.

El protocolo IP identifica a cada ordenador que se encuentre conectado a la red, mediante su correspondiente dirección. Esta dirección es un número de 32 bits, que debe ser único para cada “host”, y normalmente suele representarse como cuatro cifras de 8 bits, separadas por puntos.

La dirección de Internet o dirección IP, se utiliza para identificar tanto al ordenador en concreto, como la red a la que pertenece, de manera que sea posible distinguir a los ordenadores, que se encuentran conectados a una misma red. Con este propósito, y teniendo en cuenta que en Internet, se encuentran interconectadas redes de tamaños muy diversos, se establecieron tres clases diferentes de direcciones, las cuales se representan mediante tres rangos de valores:

Clase A: Son las que en su primer byte, tienen un valor comprendido entre 1 y 126, incluyendo ambos valores. Estas direcciones utilizan únicamente este primer byte para identificar la red, quedando los otros tres bytes disponibles para cada uno de los “hosts”, que pertenezcan a esta misma red. Esto significa que podrán existir más de dieciséis millones de ordenadores, en cada una de las redes de esta clase. Este tipo de direcciones es usado por redes muy extensas, pero hay que tener en cuenta que sólo puede haber 126 redes de este tamaño. ARPANET7 es una de ellas, existiendo además algunas grandes redes comerciales, aunque son pocas las organizaciones que obtienen una dirección de "clase A". Lo normal para las grandes organizaciones, es que utilicen una o varias redes de "clase B".

Clase B: Estas direcciones utilizan en su primer byte, un valor comprendido entre 128 y 191, incluyendo ambos. En este caso, el identificador de la red se obtiene de los dos primeros bytes de la dirección, teniendo que ser un valor entre 128.1 y 191.254 (no es posible utilizar los valores 0 y 255 por tener un significado especial). Los dos últimos bytes de la dirección, constituyen el identificador del “host”, permitiendo, por consiguiente, un número máximo

7 ARPANET: Familia de protocolos para interenet

44 | P á g i n a

de 64, 516 ordenadores en la misma red. Este tipo de direcciones tendría que ser suficiente, para la gran mayoría de las organizaciones grandes. En caso de que el número de ordenadores que se necesita conectar fuese mayor, sería posible obtener más de una dirección de "clase B", evitando de esta forma el uso de una de "clase A".

Clase C: En este caso el valor del primer byte tendrá que estar comprendido entre 192 y 223, incluyendo ambos valores. Este tercer tipo de direcciones utiliza los tres primeros bytes para el número de la red, con un rango desde 192.1.1 hasta 223.254.254. De esta manera queda libre un byte para el host, lo que permite que se conecten un máximo de 254 ordenadores en cada red. Estas direcciones permiten un menor número de host que las anteriores, aunque son las más numerosas, pudiendo existir un gran número redes de este tipo (más de dos millones).

Tabla de direcciones IP de Internet.

Clase Primer byte

Identificación de red

Identificación de hosts

Número de redes

Número de hosts

A 1 .. 126 1 byte 3 byte 126 16.387.064 B 128 .. 191 2 byte 2 byte 16.256 64.516 C 192 .. 223 3 byte 1 byte 2.064.512 254

Tabla 6 - Clases de direcciones IP

En la clasificación de direcciones anterior, se puede notar que ciertos números no se usan. Algunos de ellos se encuentran reservados para un posible uso futuro, como es el caso de las direcciones, cuyo primer byte sea superior a 223 (clases D y E, que aún no están definidas), mientras que el valor 127 en el primer byte, se utiliza en algunos sistemas para propósitos especiales. También es importante notar, que los valores 0 y 255 en cualquier byte de la dirección, no pueden usarse normalmente por tener otros propósitos específicos.

El número 0 está reservado para las máquinas que no conocen su dirección, pudiendo utilizarse tanto en la identificación de red, para máquinas que aún no conocen el número de red a la que se encuentran conectadas, en la identificación de host para máquinas que aún no conocen su número de host dentro de la red, o en ambos casos.

El número 255 tiene también un significado especial, puesto que se reserva para el broadcast8. El “broadcast” es necesario, cuando se pretende hacer que un mensaje sea visible para todos los sistemas conectados a la misma red. Esto puede ser útil si se necesita enviar el mismo datagrama a un número determinado de sistemas, resultando más eficiente, que enviar la misma información solicitada de manera individual a cada uno. Otra situación para el uso de “broadcast”, es cuando se quiere convertir el nombre por dominio de un ordenador, a su correspondiente número IP, y no se conoce la dirección del servidor de nombres de dominio más cercano.

Lo usual, es que cuando se quiere hacer uso del “broadcast”, se utilice una dirección compuesta por el identificador normal de la red y por el número 255 (todo unos en binario), en cada byte que identifique al “host”. Sin embargo por conveniencia, también se permite el uso del número 255.255.255.255, con la misma finalidad, de forma que resulte más simple referirse a todos los sistemas de la red.

8 Broadcast: Hace referencia a una dirección que envía datos a todos los destinos de la red.

45 | P á g i n a

El broadcast, es una característica que se encuentra implementada de formas diferentes, dependiendo del medio utilizado, y por lo tanto, no siempre se encuentra disponible. En ARPAnet y en las líneas punto a punto, no es posible enviar “broadcast”, pero sí que es posible hacerlo en las redes Ethernet, donde se supone que todos los ordenadores prestarán atención a este tipo de mensajes.

En el caso de algunas organizaciones extensas, puede surgir la necesidad de dividir la red en otras redes más pequeñas (subnets). Como ejemplo, podemos suponer una red de clase B que, naturalmente, tiene asignado como identificador de red un número de dos bytes. En este caso sería posible utilizar el tercer byte, para indicar en qué red Ethernet se encuentra un “host” en concreto. Esta división no tendrá ningún significado, para cualquier otro ordenador que esté conectado a una red, perteneciente a otra organización, puesto que el tercer byte no será comprobado ni tratado de forma especial. Sin embargo, en el interior de esta red, existirá una división y será necesario disponer de un software de red, especialmente diseñado para ello. De esta forma, queda oculta la organización interior de la red, siendo mucho más cómodo el acceso, que si se tratara de varias direcciones de clase C independientes.

3.6 IP (Internet Protocol) versión 6.

La nueva versión del protocolo IP recibe el nombre de IPv6, aunque es también conocido comúnmente como IPng (Internet Protocol Next Generation). El número de versión de este protocolo es el 6, frente a la versión 4 utilizada hasta entonces, puesto que la versión 5 no pasó de la fase experimental. Los cambios que se introducen en esta nueva versión, son muchos y de gran importancia, aunque la transición desde la versión 4 no debería ser problemática, gracias a las características de compatibilidad que se han incluido en el protocolo. IPng, se ha diseñado para solucionar todos los problemas que surgen con la versión anterior, y además ofrecer soporte a las nuevas redes de alto rendimiento (como ATM, Gigabit Ethernet, etc.)

Una de las características más llamativas es el nuevo sistema de direcciones, en el cual se pasa de los 32 a los 128 bits, eliminando todas las restricciones del sistema actual. Otro de los aspectos mejorados es la seguridad, que en la versión anterior constituía uno de los mayores problemas. Además, el nuevo formato de la cabecera se ha organizado de una manera más efectiva, permitiendo que las opciones se sitúen en extensiones separadas de la cabecera principal.

Formato de la cabecera.

El tamaño de la cabecera que el protocolo IPv6 añade a los datos es de 320 bits, el doble que en la versión 4. Sin embargo, esta nueva cabecera se ha simplificado con respecto a la anterior. Algunos campos se han retirado de la misma, mientras que otros se han convertido en opcionales, por medio de las extensiones. De esta manera los ruteadores, no tienen que procesar parte de la información de la cabecera, lo que permite aumentar de rendimiento en la transmisión. El formato completo de la cabecera sin las extensiones, es el siguiente:

Versión: Número de versión del protocolo IP, que en este caso contendrá el valor 6. Tamaño: 4 bits.

Prioridad: Contiene el valor de la prioridad o importancia del paquete que se está enviando, con respecto a otros paquetes provenientes de la misma fuente. Tamaño: 4 bits.

46 | P á g i n a

Etiqueta de flujo: Campo que se utiliza para indicar, que el paquete requiere un tratamiento especial, por parte de los ruteador que lo soporten. Tamaño: 24 bits.

Longitud: Es la longitud en bytes de los datos que se encuentran a continuación de la cabecera. Tamaño: 16 bits.

Siguiente cabecera: Se utiliza para indicar el protocolo al que corresponde la cabecera, que se sitúa a continuación de la actual. El valor de este campo, es el mismo que el de protocolo en la versión 4 de IP. Tamaño: 8 bits.

Límite de existencia: Tiene el mismo propósito que el campo de la versión 4, y es un valor que disminuye en una unidad, cada vez que el paquete pasa por un nodo. Tamaño: 8 bits.

Dirección de origen: El número de dirección del “host” que envía el paquete. Su longitud es cuatro veces mayor que en la versión 4. Tamaño: 128 bits.

Dirección de destino: Número de dirección de destino, aunque puede no coincidir con la dirección del “host” final en algunos casos. Su longitud es cuatro veces mayor que en la versión 4 del protocolo IP. Tamaño: 128 bits.

Organización de la cabecera IPv6.

Versión Prioridad Etiqueta de flujo Longitud Siguiente cabecera Límite de existencia Dirección de origen Dirección de destino

Las extensiones que permite añadir esta versión del protocolo, se sitúan inmediatamente después de la cabecera normal, y antes de la cabecera, que incluye el protocolo de nivel de transporte. Los datos situados en cabeceras opcionales, se procesan sólo cuando el mensaje llega a su destino final, lo que supone una mejora en el rendimiento. Otra ventaja adicional, es que el tamaño de la cabecera no está limitado a un valor fijo de bytes, como ocurría en la versión 4.

Por razones de eficiencia, las extensiones de la cabecera, siempre tienen un tamaño múltiplo de 8 bytes. Actualmente, se encuentran definidas extensiones para ruteo extendido, fragmentación y ensamblaje, seguridad, confidencialidad de datos, etc.

Direcciones en la versión 6.

El sistema de direcciones, es uno de los cambios más importantes que afectan a la versión 6 del protocolo IP, donde se han pasado de los 32 a los 128 bits (cuatro veces mayor). Estas nuevas direcciones, identifican a un interfaz o conjunto de interfaces y no a un nodo, aunque como cada interfaz pertenece a un nodo, es posible referirse a éstos a través de su interfaz.

El número de direcciones diferentes que pueden utilizarse con 128 bits, es enorme. Teóricamente serían 2128 direcciones posibles, siempre que no apliquemos algún formato u organización a estas direcciones.

Este número es extremadamente alto, pudiendo llegar a soportar más de 665.000 trillones de direcciones distintas, por cada metro cuadrado de la superficie del planeta Tierra. Según diversas fuentes consultadas, estos números una vez organizados de forma práctica y jerárquica, quedarían reducidos en el peor de los casos, a 1.564 direcciones por cada metro cuadrado, y siendo optimistas, se podrían alcanzar entre los tres y cuatro trillones.

47 | P á g i n a

Existen tres tipos básicos de direcciones IPng según se utilicen, para identificar a un interfaz en concreto o a un grupo de interfaces. Los bits de mayor peso, de los que componen la dirección IPng, son los que permiten distinguir el tipo de dirección, empleándose un número variable de bits para cada caso. Estos tres tipos de direcciones, son:

Direcciones Unicast9: Son las direcciones dirigidas a un único interfaz de la red. Las direcciones “Unicast” que se encuentran definidas actualmente, están divididas en varios grupos. Dentro de este tipo de direcciones se encuentra también, un formato especial que facilita la compatibilidad con las direcciones de la versión 4 del protocolo IP.

Direcciones Anycast10: Identifican a un conjunto de interfaces de la red. El paquete se enviará a un interfaz cualquiera, de las que forman parte del conjunto. Estas direcciones son en realidad direcciones “Unicast”, que se encuentran asignadas a varios interfaces, los cuales necesitan ser configurados de manera especial. El formato es el mismo que el de las direcciones “Unicast”.

Direcciones Multicast11: Este tipo de direcciones, identifica a un conjunto de interfaces de la red, de manera que el paquete es enviado a cada una de ellos individualmente.

Las direcciones de “Broadcast”, no están implementadas en esta versión del protocolo, debido a que esta misma función puede realizarse ahora, mediante el uso de las direcciones multicast.

9 Unicast: Es una dirección que envía únicamente a un destino

10 Anycast: Es una dirección que envía a varios destinos aleatoriamente

11 Multicast: Es una dirección que envía a varios destinos definidos.

48 | P á g i n a

Capítulo 4

Hardware

49 | P á g i n a

4.1 Descripción

En este capítulo, se presenta la parte física relacionada al proyecto, donde el dispositivo principal para realizar el control y monitoreo, es el IP Power Aviosys 9212, que consiste en un controlador de red, que nos permitirá comunicar una interfaz Web con otros dispositivos externos, como lo son el sensor de humo, temperatura y presencia, siendo estos últimos los dispositivos que nos permitirán realizar el monitoreo del lugar, por otra parte, tenemos la activación de ventiladores y acceso al centro de cómputo, como la parte correspondiente al control.

Además del dispositivo que nos permitirá realizar la conexión por medio de la Web, se utiliza otro microcontrolador que nos sirve para implementar los sub-sistemas, para el monitoreo de temperatura y la detección de presencia, el motivo de utilizar otro microcontrolador, es que el dispositivo que se conecta a la red, sólo recibe voltajes para activar o desactivar las entradas en determinadas condiciones.

A continuación, se presenta un diagrama de cómo estará estructurado el sistema, posteriormente se desglosará cada uno de los módulos.

Ilustración 8 - Diagrama a bloques del sistema

4.2 IP Power Aviosys 9212

Es un sistema cerrado que consiste en un controlador de red con ocho entradas digitales y ocho salidas digitales, no requiere de una PC o software específico, para poder controlar y monitorear de manera remota el estado de algún dispositivo, utiliza un navegador de Internet, como Internet Explorer, Firefox o cualquier otro, a través del cual se puede tener acceso seguro a sus entradas y salidas, por medio de una aplicación Web diseñada con ese fin.

Ilustración 9 - Controlador de red IP Power

50 | P á g i n a

Otras características que presenta este dispositivo, es que soporta protocolos de comunicación, como (WAN/LAN), HTTP, TCP/IP, DHCP, DDNS, WAP por GPRS, posee un servidor SMTP, que le permite realizar intercambio de información sobre su funcionamiento en la red, con otros dispositivos con los que se encuentre conectado dentro de ésta, protección contra inversión de polaridad, es capaz de interactuar con otros dispositivos IP, posee su propio “Watchdog”, que puede ser utilizado para recuperar el control del microcontrolador, cuando se produce una perturbación en el software. Su protocolo de comunicación IP estándar, le permite conectarlo a cualquier red local de datos o incluso a Internet, permitiendo de esta forma, el acceso a la monitorización y control de sus infraestructuras de forma remota, desde cualquier lugar del mundo. Sus especificaciones son las siguientes: Dimensiones de los módulos: 12 Cm. Requerimientos mínimos:

- Mínimo Intel Pentium II 300MHz/compatible AMD

- WINDOWS OS (IE5.0+SP1)

- Mínimo 64MB RAM

- Tarjeta VGA

- Tarjeta RED con puerto RJ45

- Concentrador o Ruteador Ethernet

- Red local o acceso a Internet

Como se aprecia en la Ilustración 9, el IP Power Aviosys está compuesto por 3 módulos:

1. 9200 (módulo central con conexión a la red) 2. 9201 (módulo de entradas) 3. 9202 (módulo de salida)

Estos 3 dispositivos juntos forman el 9212. El 9200, es el intermediario entre los dispositivos de control (salidas) y monitoreo (entradas) con la aplicación Web, a este dispositivo se le enviarán señales que activen o desactiven las entradas o salidas, según corresponda a los sensores o actuadores del sistema.

51 | P á g i n a

Ilustración 10 - IP Power módulo 9200

En la parte de control utilizaremos el 9202, con el cual, el acceso al centro de cómputo se podrá dar de manera remota, cuando éste sea solicitado por alguna persona, lo cual será posible por medio de un interruptor que se encontrará en la puerta, por medio de la cámara, se podrá verificar la persona que solicita el acceso, y tomar la decisión de darle o no el acceso al lugar; la ventilación hace referencia al encendido del aire acondicionado o ventiladores, esto se puede dar de manera automática, cuando se haya rebasado una temperatura de 25 °C o manualmente, es decir, se podrán activar éstos por medio de la aplicación Web, sin importar el estado de la temperatura en ese momento, el apagado de los ventiladores se puede hacer manualmente, o dejar que el sistema los desactive automáticamente, cuando la temperatura haya disminuido de 25°C, y finalmente, la iluminación consistirá en el encendido o apagado de las luces del lugar de manera remota.

Este módulo nos ofrece ocho salidas a relevadores, donde las primeras cuatro son normalmente abiertas, y las restantes normalmente cerradas, soportando un rango de voltajes de 240 VCA/2A o 60VDC. Lo anterior nos indica que de acuerdo al tipo de salida que sea, se puede abrir o cerrar el circuito de salida, dependiendo si se envía un estado alto o bajo a la salida correspondiente. El bloque de control o de salidas se muestra en la Ilustración 11

Ilustración 11 - IP Power módulo 9202

Para el monitoreo utilizaremos el 9201, la temperatura será medida y mostrada en una pantalla, que se encontrará en el centro de cómputo, además de enviar una señal de activación a la aplicación Web, cuando se haya superado un temperatura de 25°C, y desactivar ésta cuando la temperatura haya disminuido; el detector de incendios, se refiere a un sensor de humo, que enviará una señal para activar una alarma en caso de que se detecte la presencia de éste en el lugar, y finalmente, un detector de presencia que será

52 | P á g i n a

colocado en la entrada del centro de cómputo, con la finalidad de saber cuando alguien ha entrado o intenta salir del lugar.

Ilustración 12 - IP Power módulo 9201

En este módulo se tiene un total de ocho entradas, de las cuales 4 son entradas de voltaje positivo y las otras 4 corresponden a entradas por voltaje negativo, el voltaje que debe ser introducido en éstas va de un rango de 4 a 24 volts y de -4 a -24 volts

Ilustración 13 - Comportamiento de entradas por voltaje positivo

Ilustración 14 - Comportamiento de entradas por voltaje negativo

53 | P á g i n a

4.2.1 Funcionamiento

Nuestro dispositivo está conformado por diversos elementos electrónicos de circuito, sin embargo, los más importantes son los siguientes:

Microcontrolador

Memoria Flash

Optoacopladores

Compuerta de inversión tipo Schmitt

Diodos

Relevadores

A continuación, explicaremos brevemente las características de cada uno de éstos y posteriormente, la participación que tienen éstos en nuestro aparato.

4.2.2 Funcionamiento del IP Power 9212

IP Power 9200

Ilustración 15 - Composición del IP Power 9200

Este dispositivo consta de un microcontrolador capaz de establecer conexión con la red, debido a que el microcontrolador es el cerebro de nuestro aparato, se explicará más detalle:

54 | P á g i n a

Microcontrolador

El IP Power es un sistema cerrado, que utiliza algunos componentes desarrollados por la empresa que construye estos aparatos, por tal motivo, fue necesario buscar equivalentes de aquellos dispositivos de los cuales no es posible obtener información, por ser únicamente de uso exclusivo de esta empresa; uno de estos dispositivos es el microcontrolador, que se encarga de controlar todo el sistema; consiste en un circuito de montaje superficial que consta de 100 patas, y tiene como característica principal el soportar Ethernet y algunos protocolos de red, como es TCP/IP.

La empresa Microchip cuenta con una familia de Controladores, que se asemeja al procesador que se encuentra integrado dentro del IP Power, estos dispositivos son los PIC18F97J60, los cuales se encuentran disponibles en 3 diferentes versiones, cambiando la capacidad que tiene cada uno de éstos, y en consecuencia el número de patas que cada uno de éstos tiene, dentro de sus principales características encontramos lo siguiente:

Trabaja bajo el estándar IEEE 802.3

Soporta Ethernet 10 Base-T

Verificación y rechazo de paquetes erróneos

Buffer de 8 K-bytes para enviar y recibir paquetes

Soporta paquetes Multicast, Unicast y Broadcast

Memoria flash de 128 Kbytes

Memoria SRAM de 3808 bytes

70 patas dedicadas a entradas y salidas

Convertidor analógico digital de 10 bits

5 temporizadores de 8 y 16 bits

En la Ilustración 16, se muestra el diagrama de controlador PIC18F97J60 con la especificación que corresponde a cada una de sus patas, considerando que éste es el que más se asemeja al procesador contenido en el IP Power.

55 | P á g i n a

El controlador que se muestra en la ilustración 16, cuenta con un sistema de reloj, memoria interna flash, una memoria caché para aumentar la velocidad de procesamiento, una Unidad Aritmética Lógica encargada de realizar las operaciones lógicas y matemáticas, nueve puertos que pueden ser utilizados como entradas o salidas, cada uno de éstos a su vez es de 8 bits, y su unidad de procesamiento central que constituyen como tal a este microcontrolador, en la Ilustración 16 se muestra más detalladamente, como se encuentran interrelacionados los elementos que constituyen a este dispositivo.

Ilustración 16 - Diagrama del controlador 18F97J60

56 | P á g i n a

Ilustración 17 - Diagrama en bloques del controlador 18F97J60

57 | P á g i n a

Como se había mencionado anteriormente, una de las principales características del controlador 18F97J60 es que soporta Ethernet, por lo cual se basa en las especificaciones de del estándar IEEE 802.3 para 10-base T, contiene un módulo para filtrar paquetes erróneos que provengan de la red, así como un bloque encargado del reconocimiento de IP. En la Ilustración 18 se muestra como se encuentra constituido el módulo de Ethernet.

Este módulo se encuentra constituido de 5 bloques, que son:

El bloque PHY, que codifica y decodifica los datos analógicos, que están presentes en el interfaz de par trenzado, y envía o recibe datos a través de la red. El módulo MAC implementa IEEE 802.3, y proporciona los medios independientes de la interfaz de administración (MIIM), para el control del bloque PHY. Un bloque de memoria para almacenar y recibir mensajes de la red. El DMA se encargar de recibir o enviar bloques de datos, para controlar el acceso al buffer de la RAM, cuando éste sea solicitado al núcleo del controlador. Un registro de interfaz que funciona como un intérprete de comandos.

Ilustración 18 - Diagrama a bloques del módulo de Ethernet

58 | P á g i n a

Memoria Flash

El IP Power cuenta con una memoria flash 39VF40704CNH, que nos permite almacenar o leer datos que sea necesarios cuando se ejecuta un programa, a diferencia de las memorias que se utilizaban anteriormente como la EPROM , las memorias flash tienen la característica de poder escribir o borrar varias localidades de memoria, en una misma operación, utilizando impulsos eléctricos para lograrlo.

La memoria utilizada en este dispositivo está fabricada con compuertas NOR y NAND, para poder almacenar la información representada en forma binaria, en las localidades de memoria, el papel que desempeña la memoria flash dentro del sistema del IP Power, es almacenar información de los programas que se ejecutan para realizar operaciones, como la inicialización, el control del módulo Ethernet y control de flujo de información entre otras.

Optoacoplador

Además de los dispositivos mencionados hasta el momento el IP Power, cuenta con un gran número de optoacopladores, entre los cuales tenemos 2 tipos el LA213 y PC817 , su función principal es la de actuar como interruptores electrónicos, que son activados mediante la excitación de luz que se produce internamente, al alimentar sus terminales de entrada con un determinado valor de voltaje y corriente, para obtener un voltaje de salida correspondiente a un estado alto o bajo, dependiendo del voltaje que se tiene a la entrada, es importante mencionar que se utilizan 2 tipos de optoacopladores, ya que uno es utilizado para corrientes de entrada de 5 mA., que podríamos considerar como corrientes bajas para el PC817, y corrientes de entrada de 50 mA. para el LA213, lo que se consideraría como corrientes altas dentro del IP Power.

En la Ilustración 19 se muestra un diagrama de cómo está constituido un optoacoplador, donde podemos ver su entrada del lado izquierdo y la salida del lado derecho, en la parte central y encerrada dentro de un recuadro vemos un diodo LED, que se encuentra frente a un fototransistor, el cual al recibir la suficiente cantidad de luz emitida por el diodo LED, nos generará un voltaje a la salida o estado alto, y en caso contrario un estado bajo.

Ilustración 19 - Optoacoplador 4N35 formado por un LED y un fototransistor

59 | P á g i n a

Disparadores de Schmitt

El disparador Schmitt 74HC14D es utilizado como un comparador, para determinar el estado que se tendrá a la salida dependiendo del valor de umbral que se tenga, se pueden presentar los siguientes casos:

a) Si la señal de entrada es superior a la del rango de umbral, se tiene un estado alto como salida.

b) Si la señal de entrada es menor a la del rango de umbral, se tiene una señal de salida baja.

c) Si la señal es del mismo valor que el rango de umbral, a la salida se tiene una señal del mismo valor que a la entrada.

A partir de lo anterior, podemos decir que estos dispositivos son utilizados para filtrar la señales, y mantener ciertos estados a la salida, hasta que sucedan cambios en la señal de entrada que logren alterar el estado de salida.

Ilustración 20 - Circuito integrado con disparadores tipo Schmitt

Diodos de germanio y silicio

Los diodos son utilizados para rectificar señales, ya que sólo permiten el paso de corriente en un solo sentido, el cual siempre va de ánodo a cátodo y sólo si el voltaje entre sus terminales es mayor a 0.3, para los diodos de germanio y 0.7 para los diodos de silicio , un punto importante al utilizar los diodos, es que se tienen diversas aplicaciones, de acuerdo a la forma en que estos se encuentren conectados dentro de un circuito, pero siempre manteniendo como fundamento el paso de corriente en un solo sentido, los diodos que se utilizan, son 1N47 y 1N57 como diodos de germanio y IN4004 como diodo de silicio.

Ilustración 21 - Diodos de Germanio y Silicio

60 | P á g i n a

4.2.3 IP Power 9201 (Entradas)

Ilustración 22 - Composición del IP Power 9201

Como se puede observar, nuestro circuito se encuentra formado principalmente por 3 elementos:

-Optoacopladores

-Resistores

-Diodos

Dentro de los Optoacopladores, tenemos el modelo PC817 de la marca Sharp.

Dentro de los resistores, tenemos:

-Resistor de 510 Ohms a 2 Watts (valor no comercial)

-Resistor de 380 Ohms a ½ Watt (valor no comercial)

Dentro de los diodos rectificadores, tenemos:

-1N57 (Germanio)

-1N4004 (Silicio)

61 | P á g i n a

El funcionamiento de este circuito es sencillo, el 9201 cuenta con un total de 8 entradas digitales, de las cuales, 4 de ellas son entradas positivas y las otras 4 son negativas, esto se logra gracias a la forma en la que se encuentras conectados nuestros diodos.

Estas conexiones son 2 de tipos:

Por polarización directa y por polarización inversa

Ilustración 23 - Configuración de las polarizaciones de un diodo

El optoacoplador como ya se mencionó anteriormente, es un dispositivo de emisión y recepción de luz que funciona como un interruptor excitado mediante la luz, una vez que la señal pasa por nuestros diodos, este elemento la recibirá y posteriormente la enviará al microcontrolador, también nos sirve con protección para este último.

62 | P á g i n a

4.2.4 IP Power 9202 (Salidas)

Ilustración 24 -Composición del IP Power 9202

Como se puede observar, nuestro circuito se encuentra formado principalmente por 3 elementos:

-Relevadores

-Resistores

-Diodos

Dentro de los Relevadores, tenemos el modelo RAS-0310

Dentro de los resistores, tenemos:

-Resistor de 1 Ohm a ½ Watt

-Resistor de 380 Ohms a ½ Watt (valor no comercial)

Dentro de los diodos rectificadores tenemos:

-1N47 (Germanio)

El funcionamiento de este circuito es aún más sencillo que el anterior, el 9202 cuenta con un total de 8 salidas digitales, de las cuales, 4 de ellas son entradas NA (normalmente abiertas) y 4 NC (normalmente cerradas). Las salidas 1, 2, 3 y 4 son NC, mientras que las 5, 6, 7 y 8 son NA.

63 | P á g i n a

De tal modo, que cuando nuestro módulo principal manda una señal, ésta pasa por el optoacoplador, luego los diodos y termina con los resistores, así, finalmente tenemos 5 Volts para el relevador deseado; los resistores son para reducir el voltaje, ya que nuestros relevadores son de 3V. Los diodos, por otro lado, son para proteger al módulo principal de una fuerza contra electromotriz (FEM), independientemente de que nuestro circuito, también se encuentra protegido por el optoacoplador.

64 | P á g i n a

4.3 Diagrama de conexiones eléctricas de nuestra interfaz

A continuación, se mostrará cómo se encuentran conectados nuestros sensores a los dispositivos de entrada y salida, con los que se ilustrará de forma breve, cómo será el funcionamiento de nuestro prototipo, y posteriormente explicaremos cada unos de éstos.

Ilustración 25 - Diagrama eléctrico del módulo de salidas

65 | P á g i n a

4.4 Módulo de control

Para el control, consideraremos los parámetros antes mencionados, éstos son el acceso al lugar, iluminación y ventilación. A cada uno de éstos le corresponde un dispositivo específico, los cuales serán conectados a las salidas normalmente abiertas del módulo de control (9202), lo que indica que los dispositivos que se encuentren conectados a estas salidas, se encontraran apagados mientras se tenga un estado bajo como salida, y se encenderán al enviar un estado alto a éstas.

Iniciaremos con la parte relacionada al acceso del lugar, para lo cual utilizaremos un actuador universal de seguros eléctricos, que será instalado en la puerta del lugar, de manera que se encuentre cerrada, y que al enviar un estado alto a la salida, genere la apertura de la puerta y con esto, el acceso al centro de cómputo. El actuador a utilizar, es el siguiente:

Ilustración 26 - Actuador para seguros eléctricos

Algunas características de este dispositivo, son: -Tiene un tiempo de vida de hasta 100,000 operaciones. -Tamaño de 160 x 60 x 30 mm. -Peso de 130 g. -Fuerza de desplazamiento de 2.5 kg.

Para poder activar este dispositivo se requiere una alimentación de 12 volts, y la conexión al módulo de control, es como se indica en el Ilustración 27.

Ilustración 27 - Conexión del actuador de seguros

66 | P á g i n a

El siguiente punto a considerar dentro del módulo de control es la ventilación, esto se refiere al encendido del aire acondicionado o en este caso del ventilador, cuando se ha alcanzado una temperatura determinada; para fines del centro de cómputo, esta temperatura es de 25 °C, la razón de tomar este valor como referencia, es que a una temperatura mayor a ésta, los equipos que se encuentran en el lugar podrían comenzar a presentar fallas, lo cual se vería directamente reflejado en inconformidad por parte de los usuarios, por la falta del servicio que proporcionen esos equipos e incluso de los dueños del lugar, por los gastos que implicaría una situación como ésta; es por este motivo que la automatización o control remoto del aire acondicionado o ventiladores, se vuelve una parte fundamental dentro de este proyecto.

Para fines demostrativos del funcionamiento del proyecto, se utilizará un ventilador de bajo consumo de energía, como el que se muestra en la Ilustración 28, en general estos dispositivos tienen las siguientes características:

Se alimentan con 12 Volts de C.D.

Requieren 60 mA. para funcionar

700 mW. de potencia

Giran de 7000 a 10000 RPM

Generan 25 dBA. de ruido

Dimensiones de 40 x 40 x 10 mm.

Ilustración 28 - Ventilador VN2

La conexión de los ventiladores es similar a la del actuador, y se muestra a continuación:

Ilustración 29 - Conexión de ventilador

67 | P á g i n a

Para finalizar con la parte de control, hemos considerado la iluminación como un factor que se debe controlar, al ser una aplicación para un centro de cómputo, no es necesario que ésta se encuentre activa todo el tiempo, ya que originaria incrementos en la temperatura , para fines demostrativos, hemos decidido representar la iluminación con un foco, como el que se muestra en la Ilustración 30.

Ilustración 30 - Foco miniatura de bayoneta

Este foco requiere de 12 volts de alimentación.

Ilustración 31 - Conexión de foco miniatura

68 | P á g i n a

4.5 Módulo de Monitoreo

En el monitoreo estamos considerando 4 puntos importantes, como son: la vigilancia, temperatura, detector de incendios y detector de presencia, todos con excepción de la vigilancia, deben ir conectados al módulo de entradas del IP Power, el motivo de lo anterior, es que la cámara simplemente se conecta a la red, para poder visualizar lo que sucede en el lugar en tiempo real.

La cámara que utilizaremos, es la siguiente:

Ilustración 32 - Cámara Web

Sus características son: •Soporta 350K píxeles • 640 x 480 píxeles formato VGA • Interfaz USB 1.1 • Lente de foco ajustable • Cámara de sensor: 1/4-inch color CMOS sensor • Píxel: VGA Formato 640 X 480 • Resolución: 1280 x 960, 800 x 600, 640 x 480, 352 x 288, 320 x 240, 176 x 144, 160 x 120 • Fotogramas por segundo: 30 fps @ 352 x 288, 15 fps @ 640 x 480 • Distancia de Foco: 3 cm ~ infinito • Lente de ángulo ancho: 56 grados Diagonal • Color: hasta 16.8 millones de color verdadero (24-bit) • Duración: Aproximadamente 17-pulgadas

Para conectar la cámara es necesario el uso de una computadora que será nuestro servidor, ahí también se aloja nuestra página de control.

69 | P á g i n a

Para conectarnos a la red necesitamos de un ruteador, por lo cual utilizaremos el siguiente :

D-Link DI-524

Es un Servidor de Internet Inalámbrico potenciado, perteneciente a la línea AirPlus G de D-Link, que responde al estándar IEEE 802.11g, operando en un de ancho de banda de 54Mbps.

El DI-524, interopera en forma transparente con cualquier producto inalámbrico de D-Link, o con cualquier producto de otros fabricantes, bajo el estándar IEEE 802.11b y con el estándar IEEE 802.11g. Cuenta con altas tasas de transferencia y un muy buen nivel de seguridad.

El Internet Server AirPlus G DI-524, incorpora mecanismos adicionales de seguridad, tales como Wi-Fi, Protected Access (WPA) y 802.1x, que en conjunto con un servidor Radius, proporcionan un mayor nivel de Seguridad.

Ilustración 33 - Ruteador Inalámbrico

Principales Características y Facilidades:

· Rendimiento 5 x veces superior que el de un producto Wireless 11b · Ancho de Banda de 54Mbps, en 2.4GHz · Compatible con productos que operen bajo el estándar 802.11b y 802.11g, y todos los productos Wireless de D-Link · Seguridad Avanzada, WPA · Funcionalidades de Firewall, y Soporte VPN Pass-through · Control de acceso hacia Internet · Antena desmontable con conector RSMA · DHCP Server · Fácil Instalación gracias al Soporte de UPnP · Alto Rendimiento · Fácil integración en red

Hay que aclarar que el ruteador a utilizar puede ser cualquiera, nosotros hemos propuesto éste, por ser un modelo común en el mercado de bajo costo y alto rendimiento.

70 | P á g i n a

Sensores

Los tres sensores que integran nuestro sistema, son de humo, temperatura y presencia, el primero tiene su circuito independiente y se conectará directamente a las entradas del IP Power, mientras que para los sensores de temperatura y presencia, utilizaremos el microcontrolador F2012 de Texas Instruments, como ya se había mencionado anteriormente.

El motivo de usar este microcontrolador, es que se necesita de un convertidor analógico digital, para interpretar la señales que nos regresa el sensor de temperatura utilizado, en este caso el LM35, además, a este microcontrolador le hemos integrado una pantalla LCD, donde se indica la temperatura actual del lugar, y de igual forma, hemos integrado a este mismo, el sensor de presencia que fue construido a partir de un láser y un fotodiodo.

Sensor de humo

El sensor o detector de humo, se construye a partir de componentes electrónicos, y basa su funcionamiento en comprobar la transparencia del aire, o la falta de humo en ésta. Esto se logra comprobando continuamente la luz que recibe una fotorresistencia (LDR), de un LED ubicado enfrente, la fotorresistencia entregará un valor estable en un ambiente libre de humo, y valores variables en caso de que detecte la existe la presencia de humo en el ambiente.

Ilustración 34 - Diagrama del sensor de humo

La Ilustración 34 indica cómo se constituye un detector de humo internamente, y cuyo funcionamiento se basa en un circuito de reloj NE555 , una alimentación de 12 volts y una salida a relevador que nos entregará un nivel alto en la presencia de humo, o un nivel bajo en caso contrario.

Su funcionamiento consiste en un LED, cuya corriente se limita con una resistencia de 1K en serie, el LED iluminará permanentemente a una fotorresistencia que se ubica exactamente enfrente del LED. Esta fotorresistencia junto con el potenciómetro de 50K, configuran un divisor de voltaje que dispara el 555 cuando la fotorresistencia esta a "oscuras", es decir, no recibe iluminación del LED. El nivel del disparo se ajusta mediante el potenciómetro de 50k, para poder variar la sensible el sistema, logrando esto mediante la variación de la resistencia que proporciona la fotorresistencia, de acuerdo a la iluminación que recibe.

71 | P á g i n a

El NE555 se encuentra configurado como monoestable, y permanece en reposo mientras la fotorresistencia se encuentre iluminada, cuando ésta deja de ser iluminada debido a la presencia de un obstáculo o humo en este caso, se dispara, y su salida permanece en estado alto un tiempo que depende de la carga del capacitor de 100uF/16V y el potenciómetro de 10k. La salida del NE555, a través de una resistencia de 1.5K excita un transistor 2N3904, que a su vez permite que la bobina del relevador se energice, cuando el NE555 vuelve al estado de reposo, el transistor vuelve a bloquearse y el relevador se desactiva. Se ha colocado un diodo en paralelo con la bobina del relevador, para evitar que la corriente generada en la desconexión dañe el transistor.

A la salida del relevador tendremos un estado alto o bajo, de acuerdo a la condición en que se encuentre el circuito, es decir, si la fotorresistencia recibe luz del LED, tendremos un estado bajo a la salida y un estado alto en caso contrario.

Sensor de temperatura Para los sensores de presencia y de temperatura, se utilizó el microcontrolador F2012, que cuenta con 2 puertos integrados, el P1 con sus 8 bits y el P2 con sólo 2 bits, los cuales pueden ser configurados como entradas o salidas de manera independiente, característica que puede resultar de gran utilidad, ya que dentro de un mismo puerto es posible tener combinación de bits como entradas y salidas, esto se logra configurando los registros asociados a cada uno de los puertos, como lo son: PxIN, PxOUT, PxDIR, Px REN, PxSEL1, PxSEL2, P1IFG, P2IFG, etc.

Para poder realizar operaciones básicas de escritura y lectura de puertos, solo nos enfocaremos en los registros PxDIR , PxSEL , PxIN, PxOUT, de los cuales los 2 primeros nos servirán para configurar el puerto, es decir, si estos serán entradas o salidas , y los 2 últimos para realizar la interfaz de información del microcontrolador con el exterior. A continuación, se describe brevemente cuál es la función que desempeña cada uno de estos registros:

PxSEL activa las líneas del puerto x para entradas o salidas.

PxDIR; selecciona si el bit del puerto funcionará como una entrada o salida, esto dependiendo del valor que se tenga en este registro, si bit=0 la pata del puerto funciona como una entrada, pero si el bit=1 la pata del puerto funciona como salida.

PxIN almacena en el registro el valor que se tenga en la entrada, es decir, pone en el bit del registro un cero, si la entrada en el bit del puerto es baja, y colocará un 1, en el caso de que la entrada sea un nivel alto.

PxOUT Refleja el valor que esté contenido en el bit del registro, a la pata correspondiente del puerto x.

Lo anterior se describe con la finalidad de identificar más adelante, la forma en que se encuentran configurados los puertos del microcontrolador, tanto en el sensor de presencia, como en el de temperatura.

72 | P á g i n a

Para la realización de este sensor, se ha configurado un bit de alguno de los puertos como entrada, para realizar la lectura de los valores que proporciona el sensor LM35 y otro tres como salidas, a través de los cuales se envían combinaciones que la aplicación Web, interpretará como valores específicos de temperatura , el realizar esto es necesario para poder comunicar a la interfaz Web el estado de la temperatura del lugar, y así poder realizar estadísticas sobre el estado actual y las condiciones previas que se tenían, otro punto importante es mencionar que se requiere colocar un transistor en colector común con un relevador , para amplificar la señal que nos entrega el microprocesador ,ya que los valores que entrega a la salida, son de 3.3 volts y corrientes muy bajas, lo cual no era suficiente para que el IP Power fuera capaz de detectar la señal.

En la Ilustración 35 es posible ver como se constituye físicamente este sensor; se puede observar que existe una pantalla LCD cuya finalidad es la de mostrar la temperatura del centro de cómputo, se requiere de un regulador de voltaje de 3.312 volts, ya que el microcontrolador solo funciona con este voltaje, y en caso de introducirle un voltaje mayor solo provocaríamos daño, además del regulador de 3.3 volts también se utiliza uno de 5 volts13, que corresponde al voltaje necesario para alimentar la pantalla LCD, una vez que se han mencionado los elementos que conforman este sensor, procederemos a explicar su funcionamiento.

Inicialmente el sensor LM3514 estará midiendo la temperatura ambiente, y dando como salida una variación de 10 mV. por cada grado centígrado, es decir, si la temperatura ambiente en ese momento es de de 25°C, el valor entre las terminales del LM35 será de 250 mV., una vez mencionado esto podemos continuar con el funcionamiento del sensor, y decir que el valor que entrega el LM35 es enviado al microcontrolador, donde será almacenado e interpretado por el convertidor analógico digital , el cual nos dará como resultado un nuevo valor , con el cual ya podremos trabajar en nuestro programa , este valor nos permitirá determinar la temperatura exacta en ese momento, hay que aclarar que los valores que se obtienen como temperatura dependen de cómo se haya configurado el convertidor analógico digital, ya que durante la configuración de éste, se indica el tiempo en que se quiere estar leyendo los datos , una vez que se tiene el dato, será posible determinar que valores se enviarán a la salidas del microcontrolador, para ser enviadas por la red haciendo uso del IP Power y finalmente llegar a la aplicación Web.

12

El LM33 es un regulador de 3.3 Volts. 13

El LM7805 es un regulador de 5 Volts. 14

El LM35 es un sensor de temperatura

73 | P á g i n a

Ilustración 35 - Circuito de sensor de temperatura

Sensor de movimiento

El sensor de movimiento se creó utilizando un láser y un fotodiodo, que se encuentran frente a frente, su funcionamiento consiste en enviar una señal al microcontrolador cuando detecta algún obstáculo entre ellos, es decir, cuando el fotodiodo no recibe iluminacion, indicando así la presencia de un objeto, para que a la salida el microcontrolador envíe una señal hacia el IP Power, y así ésta pueda ser detectada por la aplicación Web, al igual que en el sensor de temperatura, el microcontrolador ofrece una señal muy baja, por lo que es necesario enviar a un transistor en configuración colector común, para que amplifique la señal, y así ya pueda ser detectada por el IP Power.

Como ya se menciona, una parte fundamental en este sensor es el fotodiodo, el cual se parece mucho a un diodo semiconductor común, pero tiene una característica que lo hace muy especial: es un dispositivo que conduce una cantidad de corriente eléctrica, proporcional a la cantidad de luz que lo ilumina.

Esta corriente eléctrica fluye en sentido opuesto a la flecha del diodo, y se llama corriente de fuga. El fotodiodo se puede utilizar como dispositivo detector de luz, pues convierte la luz en electricidad, y esta variación de electricidad, es la que se utiliza para informar que hubo un cambio en el nivel de iluminación sobre el fotodiodo.

Si el fotodiodo quedara conectado, de manera que por él circule la corriente (polarizado en sentido directo), la luz que lo incide no tendrá efecto sobre él, y se comportará como un diodo semiconductor normal.

La mayoría de los fotodiodos vienen equipados con un lente, que concentra la cantidad de luz que lo incide, de manera que su reacción a la luz sea más evidente. A diferencia del LDR o fotorresistencia, el fotodiodo responde a los cambios de oscuridad a iluminación y viceversa,

74 | P á g i n a

con mucha más velocidad, y puede utilizarse en circuitos con tiempo de respuesta más pequeño.

Partiendo de lo anterior, este es el diagrama del sensor de movimiento:

Ilustración 36 - Diagrama de sensor de presencia

75 | P á g i n a

Capítulo 5

Diseño del Software

76 | P á g i n a

Como ya se mencionó en capítulos anteriores, nuestro sistema está conformado por un conjunto de sensores y actuadores que por sí solos no tienen ningún sentido, hasta que son capaces de interactuar con un usuario final, localizado en cualquier parte de la red local o a través de Internet.

La forma en que se da esta interacción, es por medio del software, por lo que agruparemos el desarrollo del mismo en los siguientes bloques o etapas:

- Servidor web para hospedaje del nuestra aplicación.

- Programación general de la aplicación:

Diseño de la Biblioteca de Clases.

- Desarrollo de aplicación Web ASP.NET.

- Desarrollo de los objetos Silverlight.

- Programación de microcontrolador MSP430 F2012 para monitoreo y control de condiciones

de temperatura, humedad, presencia, entre otros.

- Pruebas de funcionamiento

A continuación, se explicará a detalle cada uno de los puntos mencionados, así como la forma en que se da la interacción entre los diversos componentes.

77 | P á g i n a

5.1 Servidor Web

IIS, es el software estándar que soporta comunicaciones Internet en Windows NT.

No es el único, ni proporciona todos los servicios posibles; sin embargo, su importancia es enorme al haberse convertido en uno de los más extendidos; haciendo fuerte competencia a los servidores basados en plataformas UNIX.

El auge viene de la mano de la fuerte penetración de Windows NT, complementándose muy adecuadamente con éste, desde el punto de vista comercial y técnico.

La razón por la cual se hace uso de IIS, es debido al soporte nativo de ASP.NET y Silverlight, que para el proyecto serán las principales herramientas de desarrollo.

Aunque nuestro objetivo es implementar la aplicación sobre Internet, debido al costo que conlleva la renta de una IP fija, las pruebas e implementación se harán de manera local por medio de intranet (Red Local), dejando muy en claro el hecho de que la implementación sobre Internet, no representa diferencia alguna en el diseño del proyecto.

Para hospedar la aplicación sobre una red local (Intranet), se requiere:

Adaptador de red.

Un servidor DNS o WINS, si deseamos usar nombres de dominio en lugar de direcciones IP

numéricas.

Para hospedarla en Internet:

Adaptador de red.

Conexión a Internet

Dirección IP registrada en un DNS

Lo anterior nos lo proporcionan los Proveedores de Servicios Internet (ISP), junto con la dirección IP de Gateway de su servidor, a través del cual se realizarán los encaminamientos de la información.

78 | P á g i n a

5.1.1 Configuración de IIS

La configuración del servidor es relativamente sencilla, por lo que únicamente se mostrará de forma general el proceso:

- Creación de un nuevo sitio Web. - Indicar ubicación física de la aplicación. - Creación de directorio virtual. - Convertir el directorio virtual en aplicación. - Editar el archivo web.config de acuerdo a la configuración deseada. - Habilitar dentro de “Extensiones” en la consola de IIS, las requeridas por la aplicación; por

default están habilitadas las más comunes; para el proyecto en particular es necesario habilitar las extensiones .xap, las cuales son requeridas para la ejecución de Silverlight.

Seguridad del sitio web

La seguridad del sitio Web es especialmente importante, debido a la necesidad de garantizar su uso por usuarios remotos autorizados.

IIS utiliza la seguridad de Windows NT y en algunos casos la amplía de acuerdo a las necesidades.

Se recomienda el uso del sistema de archivos NTFS de Windows NT, debido a la seguridad.

Windows NT basa su seguridad en el sistema de usuarios y contraseñas, el uso adecuado de éstas contribuye a mantener el equipo seguro.

La mayor parte de las peticiones de páginas Web son realizadas por clientes anónimos, en este caso, el servidor Web se encarga de suplantar al usuario final (o remoto), mediante el uso de la cuenta del usuario anónimo.

Mecanismo de seguridad en una petición:

1. Comprobación de la dirección IP del Cliente por IIS.

2. Comprobación de usuario y contraseña.

3. Comprobación de los permisos de acceso a archivos establecidos en el sistema NTFS.

Si cualquiera de estas comprobaciones es errónea, la petición no tendrá éxito.

Administración de la cuenta de usuario anónimo.

Cuando se instala IIS, se crea automáticamente en NT el usuario anónimo con el nombre IUSR_Nombre_del_equipo, y con la misma contraseña aleatoria que en IIS y el derecho de Inicio de Sesión en Local.

Conviene revisar los derechos de los grupos que tienen los grupos Todos e Invitados, a los que pertenece el usuario anónimo.

Para que el usuario anónimo tenga el acceso adecuado a la aplicación, debemos habilitar la opción Permitir Anónimos en las propiedades del servicio Web.

79 | P á g i n a

Autenticación

Si se desea, se puede restringir el uso de los servicios Web, de tal forma que únicamente los clientes que acceden por medio de un nombre de usuario y una contraseña válidos, puedan acceder a las páginas solicitadas.

En IIS existen 2 formas de autenticación:

o Autenticación Básica: El usuario y la clave se transmiten sin cifrar.

o Autenticación Desafío/Respuesta de Windows NT: El usuario y la clave se transmiten cifrados; el usuario debe de estar dado de alta en el dominio de la máquina que ejecuta IIS, y tener derechos de Acceso al equipo desde la red. Este tipo de autenticación es más adecuado en redes Locales (Intranet) y aplicaciones pequeñas, con la desventaja además de precisar un cliente Internet Explorer en una versión reciente.

Generalmente se permiten de forma simultánea, tanto usuarios Anónimos como Mecanismos de autenticación, en este caso se utiliza por defecto al usuario Anónimo, y si esto ocasiona un problema de acceso a un recurso, el cliente recibe una ventana de diálogo solicitándole sus respectivas credenciales.

Para nuestra aplicación, se hará uso en primera instancia de las cuentas de usuario anónimo.

80 | P á g i n a

5.2 Programación general de la aplicación:

Diseño de la Biblioteca de Clases

Debido a la gran extensibilidad y adaptabilidad de la tecnología .NET es posible programar cualquier aplicación, encapsular y trasladar el código de la misma a cualquier plataforma que se requiera (Web o Aplicaciones del Sistema Operativo), la transición de la aplicación entre plataformas es casi transparente, ya que sólo se requiere hacer el mínimo de ajustes y únicamente cambiar la interfaz gráfica final, dejando prácticamente igual el código que se encuentra detrás; en este sentido, nuestro objetivo es generar una Biblioteca de Clases a partir de la DLL Básica proporcionada por el fabricante, de manera que la implementemos en una Aplicación ASP.NET/Silverlight, eliminando así los problemas de compatibilidad de la primera con los componentes más recientes del .NET Framework 3.5.

El hecho de utilizar un dispositivo cerrado, para establecer la comunicación entre nuestro microcontrolador y el Servidor Web, normalmente limita un poco la capacidad de desarrollo en cuestiones de comunicación e implementación, pero esto puede solucionarse haciendo un poco de programación extra, complementando la biblioteca de comunicación básica proporcionada.

El fabricante nos proporciona una DLL (Dynamic Link Library) con las funciones básicas de comunicación, entre las cuales encontramos 3 principales:

- Establecer IP.

- Leer estados (En los módulos de entrada y salida).

- Escribir estados.

Las cuales, aunque no es posible modificarlas en su forma básica, si se pueden aprovechar dentro de funciones mucho más complejas, moldeándolas así acorde a nuestras necesidades e implementarlas en una Biblioteca de Clases, de la siguiente manera:

- Crear un una Biblioteca de Clases en VB.NET 3.5

- Incluir como referencia de la Biblioteca a la DLL Proporcionada por el fabricante.

- Hacer referencia a las funciones de dicha DLL y asignando además un “Alias” para las

mismas.

- Declarar nuestras Funciones y Constructores incluyendo las funciones referenciadas (del

fabricante), y complementarlas con código propio, acorde a nuestras necesidades.

- Finalmente generar nuestra DLL propia, compatible con cualquier aplicación del Framework.

Lo anterior se muestra en el siguiente diagrama (Diagrama 1, Implementación de la biblioteca de clases):

81 | P á g i n a

Diagrama 1 - Implementación de la Biblioteca de clases

Como se puede observar en el esquema anterior, el hecho de implementar las funciones del fabricante dentro de una biblioteca de clases del .NET Framework 3.5, nos brinda un rango mucho más amplio en cuanto al manejo de la información se refiere; además del hecho de poder implementar dicha Biblioteca de Clases dentro de cualquier aplicación, desarrollada para el .NET Framework 3.5, sin importar el lenguaje o plataforma sobre la cual se esté desarrollando, y al mismo tiempo protegiendo el código básico de comunicación.

Siendo más específicos, la forma en que se implementarán las funciones del fabricante en nuestra biblioteca de clases (DLL), será la siguiente:

- Establecer IP (setip)

Prototipo: void EstablecerIP (string)

Como su nombre lo indica, permite fijar una IP que representa la dirección lógica del

dispositivo (IP Power), con el que estableceremos la comunicación para posteriormente

hacer uso de las otras funciones.

Toma como parámetro una cadena representando a la IP, la función se ejecutará cada vez

que se cree una instancia de la clase; de manera tal que si se cuenta con más de un

dispositivo (IP Power), se creará una instancia de la clase por cada uno de ellos, llamando a

esta función en cada ocasión.

- Recibir Estado de Módulo de entrada (receive)

Prototipo: int RecibirEstado ()

El objetivo de esta función es leer el estado actual del módulo de entrada; al llamar a esta

función obtenemos como resultado una variable de tipo int (entero), que contiene el valor

hexadecimal de los puertos de dicho módulo.

82 | P á g i n a

Cabe señalar además que ésta es una función de vital importancia, ya que la información que

obtendremos como resultado de la misma, nos indica si se genera una alarma en el

prototipo, así como también el estado actual de las condiciones ambientales a controlar; la

manera en que se implementa esta función para lo antes mencionado, será detallada un

poco más adelante.

- Enviar Datos (transfer)

Prototipo: void Enviar (int)

Al ejecutar esta función, es posible abrir o cerrar puertos; con lo cual ejecutamos las

diferentes acciones de control; consiste en enviar como parámetro de la función un valor

hexadecimal, que describe el estado que deseamos en los puertos de salida; dicho valor es

actualizado cada vez que se realiza alguna acción de control.

Un dato interesante, es que estas funciones hacen uso del protocolo UDP (User Datagram Protocol), que al no ser orientado a la conexión, la transferencia es mucho más rápida, debido a la inexistencia de confirmación y control de flujo, con lo que el hecho de perder un paquete no representa un gran problema; lo anterior es de gran utilidad, si se tienen un gran número de usuarios conectados a la aplicación, cada uno de los cuales hace constantes solicitudes y envío de información al dispositivo (IP Power), aunque de manera indirecta a través del Servidor Web, por lo que el establecer y cerrar conexiones para cada uno de los clientes, terminaría generando una sobrecarga al dispositivo; es en este escenario donde el UDP puede controlar de manera eficiente la transmisión de datos.

Entonces la clase implementada para la transferencia de información, queda de la siguiente manera (Figura 7):

Tabla 7 Socket IP

A partir de esta clase implementada dentro de la aplicación, podemos manejar ‘n’ dispositivos simplemente declarando nuevas instancias de la misma.

Para ejemplificar las funciones de la Biblioteca de Clases ya implementada en la aplicación se muestra la siguiente imagen (Diagrama 2, flujo de información en la aplicación):

83 | P á g i n a

Diagrama 2 - Flujo de información entre Aplicación-Dispositivo de control

Ahora se describirá de manera general, la forma en que se hace uso de las funciones antes mencionadas; es importante señalar que la forma de presentar los datos dependerá del tipo de aplicación (Web), y se detallará un poco más adelante:

La aplicación está compuesta de 4 módulos (Diagrama 3):

Módulo de Monitoreo.

Módulo de Control.

Módulo de Vigilancia.

Módulo de Seguridad (De acceso a la aplicación).

Diagrama 3 - Módulos de la aplicación

84 | P á g i n a

- Al iniciar el Módulo de Monitoreo se inicia un Temporizador configurable que cada 2 segundos (Valor predeterminado), solicita una actualización de los estados de los puertos, haciendo una llamada a la función “RecibirEstado()”; esos datos son aprovechados por la aplicación para realizar las siguientes acciones:

o Dibujar sobre un conjunto de medidores animados el estado de la temperatura, o una gráfica poligonal mostrando el cambio del valor respecto al tiempo.

o Mostrar el estado de puertas y sensor de presencia.

o Verificar el estado de las alarmas (Éstas son activadas en situaciones críticas detectadas por los sensores) para que en caso de generarse alguna de estas situaciones, mostrarla como un punto de atención rojo sobre el diagrama virtual del Sitio de Cómputo, específicamente colocado en el lugar donde dicha alarma se ha generado.

- El Módulo de Control se activa cuando el usuario ejecuta alguna acción de control desde la

interfaz; dichas acciones pueden ser: abrir/cerrar puertas, encender/apagar luces o activar/desactivar la ventilación manualmente; para lo anterior se utiliza la función “Enviar ()”, escribiendo los estados de los puertos del módulo salida, y así llevar a cabo la acción determinada.

- El Módulo de Vigilancia al igual que el anterior, se habilita a petición del usuario, y su función es la de mostrar la imagen que está siendo visualizada por la Cámara IP, en ese preciso momento.

- El módulo de seguridad es también muy importante, y está orientado a limitar el acceso a la aplicación, solamente a los usuarios que el administrador permita; como se podrá imaginar este módulo es más bien un complemento a la aplicación, ya que en ningún proyecto de este tipo se debe dejar de lado la seguridad.

85 | P á g i n a

5.3 Desarrollo de aplicación Web ASP.NET

Es importante recordar, que dentro de nuestros objetivos incluimos la capacidad de poder acceder a la aplicación, desde distintos tipos de dispositivos fijos y móviles (Smartphone, Palm, Pocket PC, entre otros), para lo cual es necesario desarrollar una interfaz amigable, extensible y con soporte para éstos; se propone entonces lo siguiente:

Diseñar e implementar una aplicación Web en ASP.NET con complementos en Silverlight; dicha aplicación será accesible a todo usuario desde Internet e Intranet (Red Local), con el único requerimiento de contar con el .NET Framework más reciente, y un explorador de Internet compatible con la tecnología Silverlight.

La aplicación estará alojada en un Servidor Web ubicado en la red local del dispositivo a controlar.

Al hacer uso de la tecnología ASP.NET, el control se ejecuta de “El lado del servidor”; recordando un poco la arquitectura del sistema el Servidor Web, está ubicando en la red local del Sistema de Monitoreo y Control, de manera que las consultas y acciones son llevadas al sistema de control únicamente a través de la red local, protegiendo así el acceso directo al dispositivo (IP Power), por parte de cualquier usuario desde Internet.

Dividiremos el desarrollo de la aplicación Web en varias etapas:

Comunicación con el(los) dispositivos a controlar

Como se indicó anteriormente, la base de la comunicación entre el Sistema de Monitoreo y Control y la aplicación, es a partir de la implementación de la Biblioteca de Clases desarrollada, dentro de la aplicación el usuario indicará el momento en que la aplicación se conectará al dispositivo, y es a partir de ahí cuando comenzará la interacción entre el Sistema de Control, la Aplicación Web y el Usuario.

Interacción Aplicación-Usuario

Una vez que la comunicación se ha establecido, toca el turno de los Controles Gráficos de la aplicación presentar de manera eficiente la información; para ello haremos uso de la tecnología Silverlight, creando un conjunto de objetos animados que permitan brindar al usuario final, una experiencia interactiva y agradable con nuestro sistema de monitoreo y control.

Configuración de la aplicación

Antes de realizar cualquier tipo de acción sobre la aplicación, debemos configurar ciertos parámetros; primero que nada debemos agregar una nueva interfaz de control, dicha interfaz quedará permanentemente almacenada en una pequeña base de datos, y será visible para todos los usuarios que accedan al sitio; en cuanto al código, se creará una nueva instancia de la clase por cada interfaz agregada, cada una de ellas con su respectiva IP.

86 | P á g i n a

Seguridad

No podemos dejar de lado el aspecto de la seguridad en una aplicación de monitoreo/control; la forma de implementarla se refiere a limitar el acceso a dicha aplicación, sólo a las personas previamente autorizadas.

87 | P á g i n a

5.3.1 Desarrollo de los objetos Silverlight

Estos objetos son los que proporcionarán la interactividad entre la aplicación y el usuario; serán un conjunto de indicadores de las condiciones ambientales del centro de cómputo a monitorear, así como una abstracción virtual del mismo; la forma de operar de los mismos se indica a continuación:

Indicadores de Sensores

Estos indicadores se actualizarán de acuerdo a un temporizador configurable; en cada actualización el servidor solicitará la información al dispositivo (IP Power), que dirigirá la solicitud al microcontrolador y éste responderá con la magnitud respectiva al sensor indicado.

El hacer uso de Silverlight para éste y los demás objetos, hará parecer que la información se actualiza de manera casi inmediata, ya que la transición de un estado a otro se realiza de forma animada, y las formas ya están cargadas previamente en la caché del explorador.

Plataforma virtual del centro de cómputo

La forma de indicar el estado de puertas, luces, ventilación y alarmas dentro de la aplicación, será por medio de una abstracción virtual del centro de cómputo real; en ella podremos observar los componentes de dicho centro, así como indicadores de los estados críticos mostrados por los sensores, por lo que será muy fácil detectar, el lugar exacto donde se producen los desencadenadores de las alarmas.

Procedimiento de diseño

Recordando un poco el marco teórico, en Silverlight tenemos una clara separación entre código y presentación (C# y XAML en este caso); por un lado definimos la interfaz y asignamos eventos a ciertas figuras o controles, y por el otro editamos el código referente a cada uno de dichos eventos.

La forma en que se crean estos objetos, lleva el siguiente procedimiento:

Creación de formas y colores.

Asignación de identificadores (ID) a dichas formas.

Establecer parámetros predeterminados (longitud, coordenadas, tipo de transición).

Definición del tipo de Animación.

Definición del Storyboard (Línea del tiempo) para la transición de la animación.

Definir el código que por detrás manipulará la animación.

88 | P á g i n a

5.3.2 Ejemplo: Indicador de Barras de Temperatura

Definiendo formas

La forma básica de dibujar una gráfica de comportamiento de temperatura, es a partir de un gráfico de barras, cuyo tamaño cambiará de acuerdo al valor identificado; procedemos entonces a definirlas por medio de rectángulos, asignando además los parámetros de color, tamaño inicial, etc.

<Rectangle x:Name="Temperatura" Visibility="Collapsed" Width="100">

<Rectangle.Fill>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

<GradientStop Color="Black" Offset="0"/>

<GradientStop Color="White" Offset="1"/>

</LinearGradientBrush>

</Rectangle.Fill>

</Rectangle>

Animando el control

Para animar el control creado, debemos asignar al mismo un “Storyboard”, al cual que le colocaremos los parámetro referentes a la manera en que dicho control será modificado; posteriormente a partir del nombre del mismo, es posible referenciarlo dentro del código.

<Rectangle x:Name="Temperatura" Visibility="Collapsed" Width="100">

<Rectangle.Fill>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

<GradientStop Color="Black" Offset="0"/>

<GradientStop Color="White" Offset="1"/>

</LinearGradientBrush>

</Rectangle.Fill>

<Rectangle.Resources>

<Storyboard x:Name="AnimTemp">

<DoubleAnimation Storyboard.TargetName="GTemp" Storyboard.TargetProperty="Height" From="10" To="300" Duration="0:0:5">

89 | P á g i n a

</DoubleAnimation>

</Storyboard>

</Rectangle.Resources>

</Rectangle>

Finalmente dentro de la programación, podemos iniciar dicha animación simplemente haciendo referencia al nombre de la misma y al evento; además de poder modificar sus parámetros desde el mismo código:

AnimTemp.Begin ();

Y esa es la forma básica de animar los controles, debido a la complejidad de algunos de los controles no se describirán a detalle en este momento.

90 | P á g i n a

5.4 Programación del microcontrolador MSP430 F2012

Como se menciona en un capítulo anterior, en el caso de la temperatura, tenemos valores analógicos los cuales no podemos captar directamente en nuestro módulo, ya que sus entradas son únicamente digitales, por esta razón es que utilizaremos este microcontrolador, ya que cuenta con un convertidor analógico-digital, este microcontrolador está programado de tal forma que cuando se rebasa el nivel permitido, éste enviará una señal digital a nuestro módulo y este a su vez nos informará del suceso.

Para lograr este objetivo fue necesario la elaboración del siguiente programa:

5.4.1 Programa sensor de temperatura

#include "msp430x20x2.h" void Ini_LCD(); void Enable_LCD(); void Envio_4bits(char); void Comando_LCD(char); void Datos_LCD(char); void vfDelay(unsigned int); const unsigned char Letrero1[17] = {"MSP430F2012 "}; const unsigned char Letrero2[17] = {" Termometro "}; const unsigned char Letrero3[17] = {" Temperatura. "}; const unsigned char Letrero4[17] = {" +123.4ßC "}; long temp; long IntDegC; long error; int k = 1; char UnidadMillar, Centena, Decena, Unidad; void vfBCD(long); int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; //DCO Trabajando a 1MHz aprox. BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; //Configuración del ADC10 ADC10CTL0 = SREF_1 + ADC10SHT_1 + MSC + REFON + ADC10ON; ADC10CTL1 = INCH_1 + ADC10SSEL_0 + CONSEQ_2; ADC10AE0 |= BIT1;

91 | P á g i n a

//Configuración de las líneas de salida P2SEL &= ~0xC0; P2DIR |= BIT7+BIT6; //P2.6, P2.7 configuradas como salidas //P1OUT &= ~0xF9; //Borrado de las líneas que ocupa el LCD int i; int s; s = 5; while(--s) vfDelay(0xFFFF); ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start Ini_LCD(); Comando_LCD(0x0C); P2OUT = 0x00; for(i = 0; i <= 15; i++) Datos_LCD(Letrero1[i]); //Impresión del Letrero1 Comando_LCD(0xC0); for(i = 0; i <= 15; i++) Datos_LCD(Letrero2[i]); //Impresión del Letrero2 s = 20; while(--s) vfDelay(0xFFFF); //Pausa para poder visualizar los caracteres Comando_LCD(0x01); //Comando para limpiar la pantalla del LC for(;;) { temp = ADC10MEM; IntDegC = ((temp * 1500)/1023); vfBCD(IntDegC); error = k*(250 - IntDegC); // cálculo del error if(error <= -10) // rango de error P2OUT = 0x40; if(error >= 10) P2OUT = 0x80; Comando_LCD(0xC5); Datos_LCD(UnidadMillar); Datos_LCD(Centena); Datos_LCD(Decena); Datos_LCD(0x2E); Unidad = Unidad + 0x30; Datos_LCD(Unidad); s = 10; while(--s) vfDelay(0xFFFF); //Pausa para poder visualizar los caracteres } } //Rutinas para el LCD

92 | P á g i n a

void Ini_LCD() { P1SEL &= ~0xF9; P1DIR |= BIT7+BIT6+BIT5+BIT4+BIT3+BIT0; //P1.0, P1.3 a P1.7 configuradas como salidas P1OUT &= ~0xF9; //Borrado de las líneas que ocupa el LCD P1OUT |= 0x20; //Funtion SET Enable_LCD(); vfDelay(19); //Pausa de 120us Enable_LCD(); P1OUT &= 0x0F; P1OUT |= 0xC0; Enable_LCD(); vfDelay(19); //Pausa de 120us Comando_LCD(0x0F); //Set ON/OFF of entire display (D),dresser ON/OFF(C), //and blinking of cursor position B Comando_LCD(0x01); //Clear display and return cursor to home position (Address 0). } //Rutina de Envio de Comandos al LCD void Comando_LCD(char CMD) { P1OUT &= ~BIT0; //RS = 0 Envio_4bits(CMD); if (CMD <= 0x02) vfDelay(815); //Pausa de 4.9ms else vfDelay(19); //Pausa de 120us } //Rutina de Envio de Datos al LCD void Datos_LCD(char DAT) { P1OUT |= BIT0; //RS = 1 Envio_4bits(DAT); vfDelay(19); //Pausa de 120us } //Rutina de Envio de 4-bits al LCD void Envio_4bits(char BIT) { int Q; Q = BIT & 0xF0; P1OUT &= 0x0F; P1OUT |= Q; Enable_LCD(); Q = BIT << 4; P1OUT &= 0x0F;

93 | P á g i n a

P1OUT |= Q; Enable_LCD(); } //Envio del un pulso para la terminal E del LCD void Enable_LCD() { P1OUT |= BIT3; // E = 1 vfDelay(1); P1OUT &= ~BIT3; // E = 0 } //Rutina de Tiempo void vfDelay(unsigned int T) {while(--T);} //------------------------------------------------------------------------------ //Rutina de conversión de Binario a BCD void vfBCD(long D) { UnidadMillar = 0x30; Centena = 0x30; Decena = 0x30; if ( D >= 1000 ) { do { D-=1000; UnidadMillar++; } while ( D >= 1000 ); } if ( D >= 100 ) { do { D-=100; Centena++; } while ( D >= 100 ); } if ( D >= 10 ) { do { D-=10; Decena++;

94 | P á g i n a

} while ( D >= 10 ); } Unidad = D; }

95 | P á g i n a

Capítulo 6

Estudio Económico

96 | P á g i n a

Para la realización de este proyecto se requiere del material y equipo que a continuación se presenta, en este apartado presentamos las características y costos de cada uno de los elementos a utilizar, sin embargo, existe la posibilidad de buscar algunas otras alternativas, si la persona interesada en el proyecto así lo solicitara.

-Equipo de cómputo

Es necesario un equipo de cómputo para realizar toda la programación, pero al final éste también será requerido, ya que será el encargado de procesar la información que se obtiene de los distintos eventos, que sucedan dentro del Cuarto de Cómputo.

Componentes

Procesador Intel® Core™2 Duo E7400 (3MB L2 Cache,2.80GHz,1066 FSB)

Memoria 2GB Dual Channel DDR2 SDRAM at 800MHz- 2DIMMs

Disco Duro 250GB Serial ATA Hard Drive (7200RPM) w/DataBurst Cache™

Monitor 20 inch S2009WFP Widescreen Digital Flat Panel Monitor

Dispositivo Óptico 16X DVD+/-RW Drive

Teclado

Tarjeta de Video

Tarjeta de Sonido

Mouse

Costo : $6,000-$7,000

-Software

Visual Studio 2008 ofrece avances clave para desarrolladores en función de los siguientes tres pilares: Desarrollo rápido de aplicaciones Colaboración eficiente entre equipos Innovación en experiencias de usuario Costo : $2500.00

97 | P á g i n a

-Cámara Web

Esta cámara presenta las siguientes características:

• Diseño de cuello flexible

• 350K píxeles

• 640 x 480 píxeles formato VGA

• Interfaz USB 1.1

• Construido en 3 LEDs infrarrojos de alta potencia para la luz baja

• Construido en 3 LEDs de alto brillo para el cuarto oscuro

• Lente de foco ajustable

• Cámara de sensor: 1/4 de pulgada color CMOS sensor

• Píxel: VGA Formato 640 X 480

• Resolución: 1280 x 960, 800 x 600, 640 x 480, 352 x 288, 320 x 240, 176 x 144, 160 x 120

• fotogramas por segundo: 30 FPS @ 352 x 288, 15 FPS @ 640 x 480

• Máximo de Captura Resolución: Hasta 1280 x 960 (por software)

• Distancia de Foco: 3 cm ~ infinito

• Lente de ángulo ancho: 56 grados Diagonal

• Color: hasta 16.8 millones de color verdadero (24-bit)

• Duración: Aproximadamente 17-pulgadas

COSTO $500.00

-Actuador universal para seguros

El actuador universal deberá ser instalado en la puerta del centro de cómputo para ser conectada al IP Power, y así poder controlar el acceso al lugar.

Caracteristicas - Alimentación: 12 Vcc - Fuerza de desplazamiento: hasta 2,5 Kg. - Distancia de desplazamiento: 1,9 cm. - Tiempo de vida: hasta 100,000 operaciones - Dimensiones: 16 x 6 x 3 cm.

98 | P á g i n a

Costo: $100.00

-Sensores de temperatura

Se requiere de estos sensores para saber si el cuarto de cómputo está a la temperatura adecuada, y de no ser así, accionar el aire acondicionado, los sensores a utilizar serán los LM35, ya que nos ofrece una precisión de 1°C que va desde -55° a 150° , se presenta en diferentes encapsulados, tiene una salida lineal y equivale a 10mV/°C.

Se podría colocar un sólo sensor, pero para tener una mayor eficiencia se planea poner uno en cada esquina del cuarto de cómputo, y realizar un promedio de las temperaturas de cada uno de éstos, para así obtener un valor más real.

COSTO: $30.00

-Cables para conexiones

Se requerirá de diversos tipos de cables para realizar conexiones entre los diferentes dispositivos, como lo pueden ser cables seriales, UTP, USB, etc.

COSTO: $100.00

Existen otros elementos que implican más costos de producción y deben ser considerados:

99 | P á g i n a

-Instalación y mantenimiento

Esto consiste en realizar la instalación del todo el sistema y proporcionar mantenimiento durante un periodo de tiempo aún por definir.

Costo: $3000.00

-IP Power Aviosys 9212

Es la parte central del proyecto, debido a que es el encargado de realizar la conexión por medio de la red entre los dispositivos y la interfaz de control, a través de sus entradas y salidas digitales, serán conectados los sensores y actuadores que ya se mencionaron anteriormente.

Costo: $1500.00

-Microcontrolador F2012 de Texas Instruments

Este microcontrolador será utilizado para realizar los sensores de temperatura y presencia, con la finalidad de que a la salida únicamente tengamos estados altos o bajos, dependiendo de las condiciones en las que se encuentre el centro de cómputo.

Costo: $300.00

100 | P á g i n a

-Otros componentes electrónicos

Para la realización de los sensores de temperatura y presencia, son necesarios algunos componentes electrónicos, como reguladores de voltaje , capacitores , resistores, transistores, etc. De los cuales se describirá su función en el capítulo dedicado a hardware.

Costo: $100.00

-Ventilador

Este tipo de ventiladores tienen las siguientes características:

Alimentación de 12 VCD

60 mA. 700 mW de potencia

7000 a 10000 RPM. 25 dBA de ruido

Dimensiones de 40 x 40 x 10 mm (2 pulgadas).

Costo: $40

101 | P á g i n a

-Foco miniatura de bayoneta

Alimentación: 12 VDC

-Ruteador Inalámbrico D-Link

Principales Características y Facilidades:

· Rendimiento 5 x veces superior que el de un producto “Wireless15” 11b · Ancho de Banda de 54Mbps, en 2.4GHz · Compatible con productos que operen bajo el estándar 802.11b y 802.11g, y todos los productos “Wireless” de D-Link · Seguridad Avanzada, WPA · Funcionalidades de Firewall, DMZ “hots” y Soporte VPN “Pass-through” · Control de acceso hacia Interne · Antena desmontable con conector RSMA · Servidor DHCP · Fácil Instalación gracias al Soporte de “UPnP” · Alto Rendimiento · Fácil integración en red

Costo: $1800

15

Wireless significa en español inalámbrico

102 | P á g i n a

Conclusiones

Después de realizar un extenso trabajo de desarrollo de software y de hardware, nuestro prototipo finalmente está terminado y listo para utilizarse. Luego de las pruebas realizadas, tanto en la parte de hardware, como de software, pudimos corroborar y demostrar que nuestro prototipo es un sistema confiable, eficiente y fácil de utilizar para cualquier persona.

Entre estas pruebas destacan las realizadas a los sensores, ya que es de vital importancia

que éstos, funcionen en tiempo real para que nuestro monitoreo sea lo más eficiente

posible, este objetivo se cumplió y se puede apreciar fácilmente, cuando rebasamos el

nivel de temperatura recomendado, cuando hay humo o cuando hay movimiento, ya que

inmediatamente que es detectado algún cambio, éste es registrado por nuestra

Aplicación Web, visible desde cualquier parte del mundo.

De igual forma, las pruebas realizadas con los actuadores resultaron satisfactorias.

Podemos observar que desde diferentes equipos de cómputo de diferentes áreas,

nuestro equipo se puede controlar sin ningún problema, esto se comprobó al activar los

diferentes actuadores que tenemos conectados en nuestra maqueta, como lo son: el

ventilador, el actuador eléctrico para puertas y el encendido de focos.

La parte más destacable de este sistema, es el software, el cual cuenta con un ambiente

virtual muy amigable para el usuario, lo cual le permite a cualquier persona (aunque

tenga conocimientos limitados en computación), la operación de éste de manera sencilla

y eficiente. Como se ejecuta por medio de una página de Internet, no necesitamos de

instaladores ni bibliotecas, ya que todo se encuentra almacenado en nuestro servidor

Web.

Uno de los problemas a los que nos enfrentamos ocurrió al leer las señales de nuestros

sensores, ya que aunque se contaba con el voltaje necesario, pero la corriente era

insuficiente, por esta razón se utilizó un arreglo de transistor-relevador-resistor

polarizado por base.

Este dispositivo se recomienda para la industria, para oficinas y para el hogar, para la

industria como se requiere de procesos monitoreo y control más precisos, se requiere

afinar aún más este prototipo, en cambio para el uso en oficinas y el hogar este producto

resulta recomendable ampliamente.

103 | P á g i n a

Bibliografía

1. Redes de Datos y Convergencia IP;

José Manuel Huidobro Moya, Ramón Jesús Millán Tejedor;

Editorial Alfaomega;

Primera Edición;

México, Julio 2007.

2. Comunicaciones y Redes de Computadoras;

William Stallings;

Editorial Prentice Hall;

Sexta Edición;

España.

3. Ingeniería del Software;

Ian Sommerville;

Editorial Pearson Addison Wesley;

Séptima Edición.

4. Redes de computadoras;

Andrew S. Tanenbaum;

Editorial Pearson;

Cuarta edición.

5. Internet, Redes de Computadoras y Sistemas de Información;

Sergio Talens Oliag, José Hernández Orallo;

Editorial Paraninfo.

6. Domine TCP/IP;

José Luis Raya, Víctor Rodrígo;

Editorial Alfaomega,

México D.F., 1998.

.

7. Redes Globales de Información con Internet y TCP/IP, Principios básicos, Protocolos y

Arquitectura;

Douglas E. Comer;

Editorial Prentice Hall Hispanoamericana, S.A.;

Tercera Edición;

México.

104 | P á g i n a

8. Programación Segura con .NET Framework

Marino Posadas

Netalia Ediciones S.L.

Segunda Edición

9. Aplicaciones .NET Multiplataforma

Francisco Javier Ceballos Sierra

Editorial Ra-Ma

Primera Edición;

México.

10. Silverlight 2.0

Laurence Moroney

Editorial Anaya Multimedia

Segunda Edición

México.

11. http://es.wikipedia.org/wiki/Control_remoto

12. http://www.adrformacion.com/curso/puntonet/leccion1/tecnologia_punto_net.htm

105 | P á g i n a

Anexo 1 – Conexiones del Prototipo

Diagrama eléctrico del módulo de salidas

106 | P á g i n a

Anexo 2 – Conexión de la Red

107 | P á g i n a

Anexo 3 – Biblioteca de clases para comunicarse con el IP Power

Public Class ConexionIP

'Funciones de Comunicación'

Declare Function Inicializar Lib "socket.dll" Alias "receivep6" () As Integer

Declare Function RecepcionDatos Lib "socket.dll" Alias "receive" () As Integer

Declare Function Transferir Lib "socket.dll" Alias "transfer" (ByVal variable As Integer) As Integer

Declare Function EstablecerEstado Lib "socket.dll" Alias "setdata" (ByVal variable As Integer) As

Integer

Declare Function Limpiar Lib "socket.dll" Alias "cleandata" (ByVal variable As Integer) As Integer

Declare Sub Setip Lib "socket.dll" Alias "setip" (ByVal variable As String)

Dim StatusPuertos As Object

Public IP As String

Public Sub ConexionIP(ByVal MiIP As String)

IP = MiIP.Trim()

Console.WriteLine("La IP es: {0}", IP)

End Sub

Public Function GetIP()

Return IP

End Function

Public Sub New(ByVal MiIP As String)

IP = MiIP.Trim()

'Console.WriteLine("La IP es: {0}", IP)'

Setip(IP)

Dim P6 As Object

108 | P á g i n a

P6 = Inicializar

End Sub

Public Sub Controlar(ByVal Elemento As String, ByVal Accion As String)

If (Elemento = "Puerta") Then

StatusPuertos = EstablecerEstado(&H10)

If (Accion = "Off") Then

StatusPuertos = Limpiar(&HEF)

End If

End If

If (Elemento = "Ventilacion") Then

StatusPuertos = EstablecerEstado(&H20)

If (Accion = "Off") Then

StatusPuertos = Limpiar(&HDF)

End If

End If

If (Elemento = "LucesExt") Then

StatusPuertos = EstablecerEstado(&H40)

If (Accion = "Off") Then

StatusPuertos = Limpiar(&HBF)

End If

End If

109 | P á g i n a

If (Elemento = "LucesInt") Then

StatusPuertos = EstablecerEstado(&H80)

If (Accion = "Off") Then

StatusPuertos = Limpiar(&H7F)

End If

End If

Dim J As Object

J = Transferir(StatusPuertos)

End Sub

Public Function Monitorear()

Dim I As Object

I = RecepcionDatos

Return I

End Function

End Class

110 | P á g i n a

Anexo 4 – Hojas de Datos

Diodo 1N47

111 | P á g i n a

Diodo 1N4004

112 | P á g i n a

113 | P á g i n a

Transistor 2N3904

114 | P á g i n a

115 | P á g i n a

Optoacoplador LA213

116 | P á g i n a

Optoacoplador PC817

117 | P á g i n a

118 | P á g i n a

Sensor LM35

119 | P á g i n a

120 | P á g i n a

121 | P á g i n a

Circuito Integrado LM555

122 | P á g i n a

123 | P á g i n a

124 | P á g i n a

125 | P á g i n a

Anexo 5 – Índice de Ilustraciones

Ilustración 1 - Mando a distancia de un televisor ..................................................................... vii

Ilustración 2 - Ejemplo de Domótica en un hogar ...................................................................... 3

Ilustración 3 - Microcontrolador de montaje superficial .......................................................... 10

Ilustración 4 - Esquema de un microcontrolador ..................................................................... 10

Ilustración 5 - Capas de .Net .................................................................................................... 26

Ilustración 6 - Jerarquía de los objetos Web ............................................................................ 30

Ilustración 7 - Arquitectura de Silverlight ................................................................................ 33

Ilustración 8 - Diagrama a bloques del sistema ........................................................................ 49

Ilustración 9 - Controlador de red IP Power (www.aviosys.com) .............................................. 49

Ilustración 10 - IP Power módulo 9200 (www.aviosys.com) ..................................................... 51

Ilustración 11 - IP Power módulo 9202 (www.aviosys.com) ..................................................... 51

Ilustración 12 - IP Power módulo 9201 (www.aviosys.com) .................................................... 52

Ilustración 13 - Comportamiento de entradas por voltaje positivo .......................................... 52

Ilustración 14 - Comportamiento de entradas por voltaje negativo ......................................... 52

Ilustración 15 - Composición del IP Power 9200 (www.aviosys.com) ....................................... 53

Ilustración 16 - Diagrama del controlador 18F97J60 (www.microchip.com) ............................ 55

Ilustración 17 - Diagrama en bloques del controlador 18F97J60 (www.microchip.com) ........... 56

Ilustración 18 - Diagrama a bloques del módulo de Ethernet ................................................... 57

Ilustración 19 - Optoacoplador 4N35 formado por un LED y un fototransistor ......................... 58

Ilustración 20 - Circuito integrado con disparadores tipo Schmitt ............................................ 59

Ilustración 21 - Diodos de Germanio y Silicio ........................................................................... 59

Ilustración 22 - Composición del IP Power 9201 (www.aviosys.com) ....................................... 60

Ilustración 23 - Configuración de las polarizaciones de un diodo ............................................ 61

Ilustración 24 -Composición del IP Power 9202 (www.aviosys.com) ........................................ 62

Ilustración 25 - Diagrama eléctrico del módulo de salidas ....................................................... 64

Ilustración 26 - Actuador para seguros eléctricos (www.steren.com.mx) ................................ 65

Ilustración 27 - Conexión del actuador de seguros................................................................... 65

Ilustración 28 - Ventilador VN2 (www.steren.com.mx) ............................................................ 66

Ilustración 29 - Conexión de ventilador ................................................................................... 66

Ilustración 30 - Foco miniatura de bayoneta (www.steren.com.mx) ....................................... 67

Ilustración 31 - Conexión de foco miniatura ............................................................................ 67

Ilustración 32 - Cámara Web (www.hp.com.mx)..................................................................... 68

Ilustración 33 - Ruteador Inalámbrico (www.d-link.com) ......................................................... 69

Ilustración 34 - Diagrama del sensor de humo ........................................................................ 70

Ilustración 35 - Circuito de sensor de temperatura ................................................................. 73

Ilustración 36 - Diagrama de sensor de presencia .................................................................... 74

126 | P á g i n a

Anexo 6 – Índice de Tablas y Diagramas

Tabla 1 Familias de microprocesadores ................................................................................... 23

Tabla 2 - Componentes de Silverlight ...................................................................................... 32

Tabla 3 - Características de presentación de Silverlight............................................................ 34

Tabla 4 - Características Net Framework de Silverlight ............................................................ 35

Tabla 5 - Características de programación en Silverlight .......................................................... 36

Tabla 6 - Clases de direcciones IP ............................................................................................ 44

Tabla 7 Socket IP .................................................................................................................... 82

Diagrama 1 - Implementación de la Biblioteca de clases .......................................................... 81

Diagrama 2 - Flujo de información entre Aplicación-Dispositivo de control ............................. 83

Diagrama 3 - Módulos de la aplicación .................................................................................... 83