• No se han encontrado resultados

SISTEMA DE MONITOREO Y CONTROL A DISTANCIA DE UN CENTRO DE COMPUTO

N/A
N/A
Protected

Academic year: 2017

Share "SISTEMA DE MONITOREO Y CONTROL A DISTANCIA DE UN CENTRO DE COMPUTO"

Copied!
136
0
0

Texto completo

(1)

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

(2)
(3)

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

(4)

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

(5)

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

(6)

iv | P á g i n a

Objetivo General:

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

a ti idades de o t ol o ito eo e u CENT‘O DE CÓMPUTO , de fo a e ota desde

(7)

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.

(8)

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.

(9)

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

a les lla ado Flash ati , el cual funcionaba enviando un rayo de luz a una celda fotoeléctrica .

En 1956, Robert Adler desa ollo el )e ith “pa e Co a d , sie do é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.

(10)

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

(11)

1 | P á g i n a

Capítulo 1

(12)

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 Do oti ue , la ual es

resultado de la o t a ió e t e las pala as do o e i fo ati ue , se ha defi ido 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.

(13)

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.

(14)

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)

(15)

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).

(16)

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.

(17)

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.

(18)

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.

(19)

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.

(20)

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.

(21)

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.

(22)

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.

(23)

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.

(24)

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 op o esado ate áti o , au ue este es u té i o ue su gió pa a da o e a u

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.

(25)

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.

(26)

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:

‘OM de ás a a. E este aso o se g a a el p og a a e e o ia, 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.

(27)

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

e apsulado. Las azo es pa a estas li ita io es está dadas po ue el o jeti o

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.

(28)

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, le a ta u a

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 ate ió a i te up ió , esta es la pa te o s ie te 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.

(29)

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.

(30)

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).

(31)

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 o pa a dos señales a alógi as da o o salida los i eles lógi os o , 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

(32)

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

(33)

23 | P á g i n a

Texas Instruments TMS370, MSP430

Zilog Z8, Z86E02

Silabs C8051

Tabla 1 Familias de microprocesadores

(34)

24 | P á g i n a

Capítulo 2

(35)

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

(36)

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

(37)

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

Figure

Tabla 3 - Características de presentación de Silverlight
Tabla 4 - Características Net Framework de Silverlight
Tabla 5 - Características de programación en Silverlight
Tabla 6 - Clases de direcciones IP
+2

Referencias

Documento similar

dente: algunas decían que doña Leonor, "con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

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

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)