• No se han encontrado resultados

SISTEMA DE CONTROL Y MONITOREO DE DISPOSITIVOS A TRAVES DE INTERNET CON USB

N/A
N/A
Protected

Academic year: 2017

Share "SISTEMA DE CONTROL Y MONITOREO DE DISPOSITIVOS A TRAVES DE INTERNET CON USB"

Copied!
220
0
0

Texto completo

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Escuela

 

Superior

 

de

 

Ingeniería

 

Mecánica

 

y

 

Eléctrica

Zacatenco

 

“Sistema de control y monitoreo de 

dispositivos a través de Internet con 

USB”

 

T E S I S

Q U E P A R A O B T E N E R E L T Í T U L O D E :

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

P R E S E N T A N

(2)

Agradecimientos

 

 

 

A mis padres Jesús y Cecilia por el gran apoyo que siempre me han proporcionado, en las buenas y en las  malas. Gracias, por todos sus esfuerzos y consejos los cuales me han guiado hacia este camino en el que  he logrado el primer gran paso de mi vida. Espero que este logro también lo consideren de ustedes.  Gracias papás por tener todas esas actitudes que me dan el ánimo de continuar superándome, y  resolver cualquier problema que se me presente. 

A los profesores el M. en C. Roberto Galicia Galicia y el Ing. Armando Mancilla León, por su constante  asesoría y apoyo en la realización de este trabajo. 

Jesús

 

Jovanni

 

Victoria

 

Corona

 

 

 

 

A mis padres, porque gracias a su incondicional apoyo logré realizar uno de mis grandes sueños. 

Al profesor M. en C. Roberto Galicia Galicia y el Ing. Armando Mancilla León que no dudaron en  ofrecernos todos sus conocimientos a la hora de realizar este trabajo. 

 

(3)

Índice

 

Objetivos ... v 

Descripción general. ... vi 

Justificación ... vii 

Panorama general del trabajo ... viii 

Capítulo 1 Control de periféricos ... 1 

1.1 Conexión de periféricos ... 1 

1.1.1 Interfaz serie ... 2 

1.2 Microcontroladores ... 10 

Capítulo 2 Envío de datos a través de la red ... 12 

2.1 Introducción a Internet ... 12 

2.2 Protocolos de comunicación ... 13 

2.2.1 Modelo de referencia OSI ... 13 

2.2.2 Protocolo TCP/IP ... 15 

2.2.3 Protocolo UDP ... 17 

2.3 Puertos ... 18 

(4)

ii 

2.5 Dominios y DNS ... 24 

2.6 Paradigma Cliente – Servidor ... 25 

2.7 Sockets ... 25 

2.8  Control Winsock ... 28 

2.8.1 Propiedades ... 28 

2.8.2 Métodos ... 30 

2.8.3 Eventos ... 30 

Capítulo 3 Materiales ... 32 

3.1 Software de desarrollo ... 32 

3.1.1 Visual Studio C# 2008 ... 32 

3.1.2 Compilador CCS ... 32 

3.1.3 WinPic800 ... 33 

3.1.4 LiveWire y PCB Wizard ... 33 

3.2 Hardware de desarrollo. ... 33 

3.2.1 Programador GTP USB Lite ... 33 

3.3  Microcontrolador PIC 18F2550 ... 34 

3.4  Cámara IP ... 35 

Capítulo 4 Desarrollo de las aplicaciones Cliente y Servidor ... 36 

4.1 Instalación del Servidor ... 37 

(5)

4.3 Descripción de la aplicación Cliente ... 41 

4.3.1 Panel de conexión ... 43 

4.3.2 Panel de controles ... 44 

4.3.3 Panel de ubicación de dispositivos ... 51 

4.4 Clase AplicacionCliente, ... 52 

4.5 Descripción de la aplicación Servidor ... 54 

4.5.1  Panel de datos del Servidor ... 55 

4.5.2 Panel de Mensajes ... 56 

4.5.3 Estado de la conexión ... 57 

4.5.4 Panel de Conexión ... 58 

4.6 Comunicación USB ... 59 

4.6 Conexión con el Servidor ... 64 

4.7 Envío de datos ... 66 

4.8 Recepción de datos ... 68 

Capítulo 5 ... 70 

Sistema electrónico de comunicaciones ... 70 

5.1 Introducción ... 70 

(6)

iv 

5.2.3 Módulo de monitoreo ... 131 

5.2.4 Diseño de las antenas utilizadas en las comunicaciones inalámbricas ... 153 

Estudio económico ... 156 

Pruebas y resultados ... 161 

Conclusiones ... 163 

Apéndice A.  Librería para USB: MPUSBAPI.DLL ... 167 

Apéndice B.  Códigos, aplicaciones Cliente y Servidor ... 172 

Apéndice C.  Circuitos impresos ... 192 

BIBLIOGRAFÍA ... 199 

Índice de figuras ... 2000 

(7)

Desarrollar un sistema que permita a un usuario controlar y monitorear dispositivos a distancia. 

Particulares:

 

Enviar

 

información

 

de

 

control

 

entre

 

dos

 

equipos

 

(Cliente

 

y

 

Servidor)

  

a

 

través

 

de

 

Internet,

 

que

 

permita

 

manipular

 

dispositivos.

 

 

Explotar

 

las

 

funciones

 

de

 

un

 

microcontrolador

 

para

 

lograr

 

transmitir

 

y

 

recibir

 

datos

 

a

 

través

 

de

 

la

 

interfaz

 

USB.

 

 

Lograr

 

la

 

comunicación

 

inalámbrica

 

(RF)

  

entre

 

el

 

Servidor

 

y

 

los

 

dispositivos

 

controlados

 

y

 

monitoreados.

 

 

Hacer

 

uso

 

del

 

programa

 

Visual

 

Studio

 

2008

 

para

 

desarrollar

 

aplicaciones

 

capaces

 

de

 

comunicarse

 

a

 

través

 

de

 

una

 

red.

 

 

 

 

 

 

 

(8)

vi 

Descripción general. 

El proyecto consiste, en un sistema que permitirá el control y monitoreo de dispositivos, a través de una  red, por medio de una aplicación para Windows. Es decir, como se muestra en la figura 1.1, el cliente  podrá controlar dispositivos, como demostración, en este proyecto únicamente se utilizaron focos, sin  embargo, pueden controlarse diversos dispositivos. También el usuario, a través de una aplicación  Windows llamada Cliente, podrá saber cuál es el estado de los dispositivos que está controlando, si  éstos se encuentran encendidos o apagados. Por otra parte, también se podrán monitorear ciertos  dispositivos, como puede observarse en la figura 1.1, en donde se ilustran algunos tipos de detectores,  sin embargo en nuestro proyecto, no se implementaron estos dispositivos, sino que éstos, serán  solamente simulados, por medio de interruptores.  

 

Figura 1 Diagrama del general del proyecto 

(9)

Justificación 

Se

 

decidió

 

realizar

 

este

 

proyecto,

 

pues

 

día

 

con

 

día,

 

crece

 

más

 

la

 

necesidad

 

de

 

tener

 

el

 

control

 

a

 

distancia

 

de

 

algún

 

sistema,

 

por

 

ejemplo

 

en

 

el

 

área

 

de

 

domótica,

 

en

 

el

 

área

 

industrial,

 

en

 

robots,

 

etcétera.

 

Así

 

el

 

sistema

 

que

 

desarrollamos,

 

puede

 

ser

 

implementado

 

en

 

varios

 

sistemas,

 

particularmente

 

enfocamos

 

el

 

proyecto

 

al

 

área

 

de

 

domótica,

 

pues

 

en

 

la

 

actualidad,

 

debido

 

a

 

que

 

las

 

personas

 

están

 

menos

 

tiempo

 

en

 

el

 

hogar,

 

ya

 

sea

 

por

 

que

 

se

 

encuentra

 

de

 

viaje

 

o

 

por

 

cuestiones

 

de

 

trabajo,

 

surge

 

la

 

necesidad

 

de

 

tener

 

un

 

control

 

sobre

 

ciertos

 

dispositivos,

 

sin

 

tener

 

que

 

estar

 

presentes.

   

Si

 

tenemos

 

un

 

control

 

a

 

distancia

 

de

 

iluminación

,

 

por

 

ejemplo,

 

se

 

podrá

 

dar

 

la

 

impresión

 

de

 

que

 

en

 

nuestro

 

hogar

 

se

 

encuentra

 

alguien,

 

y

 

así

 

nuestro

 

hogar

 

no

 

será

 

tan

 

vulnerable

 

a

 

un

 

robo.

 

Un

 

ejemplo

 

que

 

podemos

 

dar

 

aplicado

 

al

 

monitoreo

 

de

 

dispositivos

 

es,

 

que

 

cuando

 

se

 

active

 

la

 

de

 

intrusión,

 

se

 

le

 

indique

 

al

 

usuario

 

inmediatamente

 

y

 

se

 

active

 

una

 

alarma,

 

esto

 

puede

 

ayudar,

 

a

 

prevenir

 

robos.

 

Así

 

es

 

posible

 

dar

 

varios

 

ejemplos

,

 

de

 

las

 

distintas

 

aplicaciones

 

que

 

se

 

le

 

pueden

 

dar

 

al

 

sistema

 

desarrollado

 

para

 

este

 

proyecto,

 

lo

 

que

 

le

 

da

 

gran

 

versatilidad,

 

ya

 

que

 

puede

 

ser

 

ajustado

 

según

 

las

 

necesidades

 

que

 

se

 

tengan.

 

 

 

 

(10)

viii 

Panorama general del trabajo 

A continuación, se presenta un resumen de cada uno de los capítulos que conforman el presente  trabajo, con el fin de tener un  panorama general del sistema que se pretende desarrollar. 

Capítulo

 

1

 

Control

 

de

 

periféricos

 

Este capítulo sirve de introducción teórica a los dispositivos periféricos, se habla sobre la interfaz serial,  el modo en que se transmite la información hacia los periféricos, se describen las características del Bus  Serie Universal USB y por último son mencionadas las características de los microcontroladores y como  éstos sirven para conectar periféricos a la PC. 

Capítulo

 

2

 

Envío

 

de

 

datos

 

a

 

través

 

de

 

la

 

red

 

Las dos aplicaciones Windows (Cliente y Servidor) desarrolladas en este proyecto bajo el paradigma  Cliente – Servidor, transmiten datos a través de una red  trabajando con el protocolo TCP. Este capítulo  tiene la intención de dar las bases teóricas para comprender la forma en cómo la información es  transmitida a través de la red y los protocolos que son utilizados según los requerimientos de los  sistemas. Además se habla de los sockets y el control Winsock (que es utilizado para el desarrollo del  proyecto), dos herramientas que los programadores utilizan para el desarrollo de aplicaciones que  intercambien datos en una red. 

Capítulo

 

3

 

Materiales

 

Se da una descripción del material tanto de software como de hardware que es utilizado para realizar el  proyecto, este capítulo es por lo tanto, dividido en: software de desarrollo, en donde se describen los  paquetes software usados para el proyecto, hardware de desarrollo, que habla sobre las herramientas  físicas,   el microcontrolador PIC 18F2550 junto con sus características y la cámara IP utilizada para el  monitoreo de los dispositivos.  

(11)

Capítulo

 

4

 

Desarrollo

 

de

 

las

 

aplicaciones

 

Cliente

 

y

 

Servidor

 

En este capítulo se describen las dos aplicaciones Windows desarrolladas para transmitir los datos, la  programación utilizada para  su elaboración,  cómo es transmitida  la información entre ellas,  las  interfaces de cada una de ellas y la forma en cómo el usuario podrá interactuar con las aplicaciones. 

Capítulo

 

5

 

Sistema

 

electrónico

 

de

 

comunicaciones

 

Aquí se hace una completa descripción del funcionamiento de los circuitos de transmisión y recepción  inalámbrica. Los microcontroladores son usados como codificadores y decodificadores de señales y al  mismo tiempo para el control y monitoreo de los dispositivos.   

 

 

 

 

 

 

 

(12)

       

Capítulo

 

1

 

Control

 

de

 

periféricos

 

 

En este capítulo, se expondrán las bases teóricas relativas a los dispositivos periféricos. Se hablará sobre  los estándares más importantes utilizados, para conectar dispositivos periféricos a un equipo, de la  importancia que tienen los microcontroladores en el desarrollo de periféricos, y además de la utilización  de sensores para la adquisición de datos. 

1.1

 

Conexión

 

de

 

periféricos

    

Un equipo de cómputo, debe tener una comunicación con el mundo exterior, para así poder interpretar  y procesar datos que provengan de él. Es por ello, que los equipos cuentan con un sistema formado por  varios dispositivos periféricos, conocido como subsistema de Entrada/Salida. Este subsistema, hace  posible el intercambio de datos con el exterior, comunicándose con el procesador a través de una serie  de  módulos,  llamados  de E/S.  Estos  módulos  cuentan con controladores,  que se  encargan del  funcionamiento de los dispositivos periféricos.  

Los módulos de E/S no conectan directamente al periférico con el bus del sistema, sino que lo hacen a  través de un conjunto de reglas que se conocen como interfaces, que permiten conectarse con el CPU y  la memoria, a través del bus del sistema y a la vez conectarse con los dispositivos periféricos, mediante  de enlaces dedicados para datos.  

Las razones por las que los módulos E/S no conectan directamente al periférico con el bus, son: 

(13)

2. En la mayoría de los casos, la velocidad de transferencia que utilizan los dispositivos periféricos,  es menor que la que tiene el procesador para comunicarse con la memoria, por esto, no sería  conveniente usar el bus del sistema de alta velocidad, para comunicarse directamente con los  dispositivos. 

3. Los periféricos pueden utilizar formatos y longitudes de palabra de datos, diferentes a los que  utiliza el procesador. 

Como se mencionó anteriormente, se utilizan interfaces para comunicar al periférico con el procesador,  estas interfaces pueden ser de dos tipos, principalmente: 

Interfaz serie: En este tipo de interfaz, sólo se utiliza una sola línea para la transmisión de  datos. 

Interfaz paralela: Con esta interfaz se pueden trasmitir múltiples bits de forma simultánea,  debido a que se usan varias líneas de datos para la transmisión. 

A continuación, se describirá más a fondo a la interfaz serie, ya que es con la que se trabaja en el  proyecto y se verán ejemplos de los estándares que hacen uso de ella. 

1.1.1 Interfaz serie  

Este tipo de interfaz es utilizada en los equipos, para conectar múltiples dispositivos como módems,  ratones, impresoras, etc.  

La transmisión de los datos se da a través de un solo canal y es bit por bit, esto puede ser de manera  síncrona o asíncrona.  

(14)

start), que indica el comienzo de una unidad de datos, un bit de fin (bit de stop), indicando su  finalización y, opcionalmente, un bit de paridad para controlar los posibles errores. 

 

1.1.1.1 Interfaz RS­232 

RS‐232, es el nombre del interfaz de comunicación serie más utilizado del mundo. La norma serie está  disponible en prácticamente el 99% de los ordenadores. La norma RS‐232, fue originalmente diseñada  para conectar terminales de datos con dispositivos de comunicación, como módems. Desde un principio,  fue también utilizada para conectar casi cualquier dispositivo imaginable. Los usos de la RS‐232 en el  entorno doméstico son muchos y ampliamente conocidos. Desde la conexión del ratón, el módem/fax,  agendas electrónicas de bolsillo, impresoras serie, grabadores de memoria, etc. 

El estándar define voltajes que oscilan entre + [3‐15] V para el nivel alto y – [3‐15] V para el nivel bajo.  Debido a la gran diferencia de voltaje que existe entre los niveles altos y bajos, se permiten tasas de  transferencia de hasta 115.200 baudios si la longitud del cable es de unas pocas decenas de metros. 

1.1.1.2 Bus Serie Universal: USB 

Para entender el funcionamiento del USB, es necesario estudiar la especificación de este bus. Los  fabricantes involucrados en la norma, crearon un documento que constituye la referencia. Aunque en  estos momentos se está creando la versión 3.0 del bus, en el presente capítulo se va a tratar la versión  2.0, ya que es la más rápida y es la que posee la familia de PICs 18Fxx5x. 

(15)

USB 1.0 puede trabajar con dos tasas de transferencia diferentes, una baja de 1.5 Mbps para la conexión  de dispositivos lentos (joysticks, ratones), y otra alta de hasta 12 Mbps, para dispositivos que requieren  un mayor ancho de banda (Discos Duros o CD‐ROMS). 

La especificación de este estándar, ha sido respaldada por las empresas líderes mundiales en el campo  de la informática: Intel, IBM, DEC, Microsoft, Compac y NEC, empresas que garantizan su continuidad y  utilización. 

A mediados del año 2000, aparece la versión 2.0, ésta fue creada por un conjunto de compañías, entre  ellas y además de las arriba mencionadas, se encuentran: Hewlett Packard, Lucent y Philips. USB 2.0,  multiplica la velocidad del bus por un factor de 30 o 40, esto hace que pueda alcanzar una velocidad de  480 Mbps. Esta versión, es compatible con su antecesora y utiliza el mimo tipo de cable y conectores,  únicamente se necesitan nuevos hubs que soporte esta versión. Estos hubs, son más complejos que los  anteriores, ya que tienen que manejar el tráfico de datos de tres velocidades diferentes, sin ser  excluyentes entre ellas. 

Anteriormente los periféricos, se conectaban mapeados directamente en direcciones de E/S, se les  asignaba una dirección específica y en algunos casos un canal DMA (Acceso Directo a Memoria). Esta  situación causaba conflictos a la hora de la asignación de estos recursos. Además, cada dispositivo podía  tener su propio puerto de conexión y usaba cables específicos, esto incrementaba el costo de los  mismos. Debido a que a cada dispositivo se le tenían que asignar ciertos recursos, la detección del  mismo, debía hacerse a la hora de arrancar el sistema y nunca se podía incorporar un nuevo dispositivo,  cuando el sistema ya estaba trabajando. 

(16)

5  serie esta conexión. Esta topología permite a muchos dispositivos, conectarse a un único bus lógico, sin  que los dispositivos que se encuentran más abajo en la pirámide sufran retardo. 

 

Figura 1. 1 Topología de la conexión USB 

El sistema USB consta de tres componentes, principalmente: 

1. Controlador 

El Controlador reside dentro del PC y es responsable de las comunicaciones entre los periféricos USB y la  CPU del PC. Es también responsable de la admisión de los periféricos dentro del bus, tanto si se detecta  una conexión, como una desconexión. Para cada periférico añadido, el controlador determina su tipo y  le asigna una dirección lógica, para utilizarla siempre con el mismo periférico. Si se producen errores  durante la conexión, el controlador lo comunica a la CPU, que a su vez, lo transmite al usuario. Una vez  que la conexión se ha realizado correctamente, el controlador asigna al periférico, los recursos del  sistema que éste precise para su funcionamiento. 

El controlador también es responsable, del control de flujo de datos entre el periférico y la CPU. 

(17)

Cada concentrador se conecta por un lado al equipo y por el otro se conecta a un dispositivo o a un  concentrador.  Es  posible  encontrar  dispositivos  periféricos  que  vengan  con  conectores  USB  incorporados, para así añadir nuevos dispositivos, en total se pueden tener hasta 127 dispositivos  conectados y todos pueden funcionar al mismo tiempo. La función principal de los concentradores, es la  de permitir ampliar el número de dispositivos conectados a un equipo. El concentrador tiene la  capacidad de detectar, cuando un dispositivo es conectado o desconectado de uno de sus puertos, y  esto lo notifica al controlador de USB. Igualmente un concentrador, sirve de acoplamiento entre  dispositivos que no tengan la misma velocidad.  

3. Periféricos  

USB soporta periféricos de baja y media velocidad. Empleando dos velocidades para la transmisión de  datos, que pueden ser de 1.5 y 12 Mbps. Los periféricos de baja velocidad tales como teclados, ratones,  joysticks, y otros periféricos para juegos, no requieren 12 Mbps, empleando para ellos 1.5 Mbps, con  esto se pueden dedicar más recursos del sistema a periféricos, tales como monitores, impresoras,  módems, scanner, equipos de audio, etc., que precisan de velocidades más altas para transmitir mayor  volumen de datos.

A nivel eléctrico, el cable USB transfiere la señal y la alimentación sobre cuatro hilos. Dos líneas para la  transmisión de datos y otras dos para transmitir potencia (ver figura 1.2). Los cables de datos (D+ y D‐)  son un par trenzado para reducir el ruido y las interferencias. 

 

(18)

7  A nivel de alimentación, el cable proporciona la tensión nominal de 5V. Es necesario definir bien el  diámetro del hilo, con el fin de que no se produzca una caída de tensión demasiado importante en el  cable. Una resistencia de terminación instalada en la línea de datos, permite detectar el puerto y  conocer su configuración (1.5Mbps ó 12Mbps), si no lleva resistencia, indica 480Mbps. 

Existen dos tipos de conectores (A y B), con el fin de evitar la configuración en bucle. El tipo A es plano y  rectangular, mientras que el tipo B es cuadrado. La base para el tipo A se encuentra en el PC o hub y en  el periférico, una base de tipo B. Los cables son de tipo A‐B. En la figura 1.3 se muestran estos dos tipos  de conectores, junto con su configuración. 

 

Figura 1. 3 Tipos de conector USB 

Para comenzar la transferencia, el controlador USB envía un paquete que identifica al dispositivo. El  protocolo soporta cuatro tipos de transferencia: 

Tipo Control 

Los datos de control, sirven para configurar al periférico en el momento en que éste es conectado al  USB. Algunos drivers específicos, pueden utilizar este enlace para transmitir su propia información de  control.  

Tipo Bulk 

(19)

Tipo Interrupción 

Este tipo de transmisión, garantiza la transferencia de pequeñas cantidades de datos. El tiempo de  respuesta no puede ser inferior al valor especificado por la interfaz. El ratón o cualquier otro dispositivo  apuntador, es una aplicación típica de este modo de transmisión. 

 

Tipo Isócrona 

Utilizado para la transmisión de información con ancho de banda y latencia grantizados, necesario para  aplicaciones como audio, telefonía y video. Permite una comunicación periódica y continua entre el  sistema y el dispositivo. 

     1.1.1.3 FireWire, estándar IEEE 1394 

Apple y Sony inventaron el FireWire a mediados de los 90, y lo desarrollaron hasta convertirlo en el  estándar multiplataforma IEEE 1394. FireWire, es una tecnología para la entrada/salida de datos en serie  a alta velocidad, y la conexión de dispositivos digitales como videocámaras o cámaras fotográficas  digitales, que ha sido ampliamente adoptado por fabricantes de periféricos digitales como Sony, Canon,  JVC y Kodak. 

 

(20)

9  Con un ancho de banda 30 veces mayor que el conocido estándar de periféricos USB 1.1, el FireWire 400  se ha convertido en el estándar más respetado para la transferencia de datos a alta velocidad. Apple fue  el primer fabricante de ordenadores, que incluyó FireWire en toda su gama de productos. Una vez más,  Apple ha vuelto a subir las apuestas, duplicando la velocidad de transferencia con su implementación  del estándar IEEE 1394b o FireWire 800. 

 

La velocidad sobresaliente del FireWire 800, frente al USB 2.0, convierte al primero en un medio mucho  más adecuado, para aplicaciones que necesitan mucho ancho de banda, como las de gráficos y vídeo,  que a menudo consumen cientos o incluso miles de megabytes de datos por archivo. 

 

Algunas de las características más importantes del FireWire, son:   

• Flexibles opciones de conexión. Admite un máximo de 63 dispositivos con cables de hasta 4.25  metros. 

• Distribución en el momento. Fundamental para aplicaciones de audio y vídeo, donde un  fotograma que se retrasa o pierde la sincronización, arruina un trabajo. 

• Alimentación por el bus. Mientras el USB 2.0 permite la alimentación de dispositivos sencillos  que consumen un máximo de 2.5 W, como un ratón, los dispositivos FireWire pueden  proporcionar o consumir hasta 45 W, más que suficiente para discos duros de alto rendimiento  y baterías de carga rápida. 

•  Es conectable/desconectable en uso. Lo que significa que no se necesita desactivar un  dispositivo para conectarlo o desconectarlo, y que no es necesario reiniciar el ordenador.  • Funciona tanto con Mac como con PC. Lo que garantiza la compatibilidad con una larga lista de 

(21)

1.2

 

Microcontroladores

 

Un microcontrolador, es un circuito integrado programable, que se utiliza para el gobierno de uno o  varios procesos. Una vez programado y configurado el microcontrolador, éste solamente sirve para  controlar la tarea, para la que fue programado. 

Dentro de un microcontrolador, se tienen encapsulados todos los componentes que hay en una  computadora: procesador, memoria de datos y memoria de instrucciones, oscilador de reloj interno,  módulos de entrada/salida. Las líneas de entrada/salida, soportan la conexión de los sensores y  actuadores del dispositivo  que se desea controlar. 

Además de los elementos que se mencionaron anteriormente, existen una serie de recursos especiales  que los fabricantes algunas veces ofrecen, por ejemplo: ampliar las capacidades de las memorias, otros  incorporan nuevos recursos y hay quienes reducen las prestaciones al mínimo, para aplicaciones muy  simples. Algunos de los principales recursos, que un fabricante puede ofrecer, son: 

¾ Conversores AD y DA. 

¾ Comparadores analógicos. 

¾ Estado de bajo consumo. 

¾ Puertos de E/S digital. 

¾ Temporizadores (Timers). 

¾ Protección frente a fallo de alimentación (Brown‐out). 

¾ Perro guardián (Watchdog). 

¾ Modulador de anchura de pulsos PWM. 

¾ Puertos de comunicación: serie, USB, I2C, UART, etc. 

(22)

11   

Figura 1. 4 Principales usos del microcontrolador 

Los principales fabricantes de microcontroladores, son: Microchip, Motorola, Nacional Semiconductor,  Atmel, Siemens, Philips, Intel, Hitachi, entre otros. En este proyecto, se utilizarán microcontroladores, de  la familia PIC, de Microchip. 

Principales usos del microcontrolador

33%

25% 16%

16% 10%

Periféricos

Electrodomésticos

Comunicaciones

Industria

(23)

      

Capítulo

 

2

 

Envío

 

de

 

datos

 

a

 

través

 

de

 

la

 

red

 

 

Para nuestro proyecto, pretendemos realizar un software de comunicación que constará de dos  aplicaciones Windows, una que actuará como Servidor y la otra que será el Cliente, por lo tanto es  importante que se comprendan aspectos teóricos, como los protocolos de comunicación TCP/IP y UDP,  lo que son las direcciones IP, el concepto de dominio, el servicio DNS, cómo se da la comunicación a  través de Internet y por último los métodos utilizados por los programadores para implementar  aplicaciones que se comuniquen a través de una red, como lo son los sockets y el control Winsock. 

Entonces, este capítulo nos ayudará a comprender la forma en que los paquetes viajan de un equipo a  otro, ya sea a través de una red local o a través de la red de redes, que es Internet.  

El conjunto  de conceptos  que  a  continuación se  explican,  es  muy  importante manejarlos  para  comprender la comunicación, que pretendemos hacer entre un equipo que esté en nuestro hogar, y  otro que se localice en cualquier parte del mundo. 

2.1

 

Introducción

 

a

 

Internet

 

(24)

13  1. La conexión física. Nos referimos con esto a la conexión que la PC tiene con la red, mediante un 

cable y la tarjeta de red o un módem. 

2. La conexión lógica. Aquí entran los protocolos, que son reglas establecidas para la comunicación  entre dispositivos dentro de una red. Para Internet, el protocolo usado es TCP/IP, del cual  hablaremos más adelante. 

3. Aplicaciones. Es a través de las aplicaciones, que el usuario puede visualizar la información que  fue procesada, y trabajan junto con los protocolos, para lograr la transmisión y recepción de  datos a través de Internet. 

2.2

 

Protocolos

 

de

 

comunicación

 

Hablando específicamente en términos de Tecnologías de la Información (IT), un protocolo1 es un  conjunto de reglas que determina los procedimientos que deben seguirse, para transmitir o recibir  información.  Se puede decir que un protocolo es un lenguaje usado, para lograr que dos computadoras  puedan entenderse una con otra. Haciendo una analogía con el mundo real, es como cuando dos  personas de diferentes países tratan de comunicarse, si no hablan el mismo idioma, entonces no podrán  entenderse y por lo tanto, no habrá intercambio de información. 

  Para poder entender cómo es que trabajan los protocolos, hay que hablar un poco de lo que es el  modelo OSI, esto a su vez nos guiará al conjunto de protocolos TCP/IP, que tienen gran relación con el  modelo OSI. 

  2.2.1 Modelo de referencia OSI 

Si queremos saber   cómo es que trabajan las comunicaciones en las redes, debemos comenzar por  entender este tema. El problema es que muchas personas no saben el por qué de la existencia de este  modelo, ni cómo es que trabaja. 

      

1 Del griego 

protocollon, que era una hoja de papel que describía el contenido de un manuscrito al cual venía 

(25)

Cuando  las  redes  de computadoras  comenzaban a  surgir,  sólo  una  compañía se  encargaba  de  manufacturar toda la tecnología para las redes. Esto impedía que equipos de diferentes marcas  pudieran comunicarse entre sí. 

Para solucionar este problema la Organización Internacional de Estándares (ISO), desarrolló un modelo  de referencia llamado OSI (Open Systems Interconnection), este modelo permitiría a todos los fabricantes  tener un conjunto de protocolos a seguir, y contar con un solo “lenguaje” para la comunicación a través  de las redes. 

Este modelo puede usarse para visualizar, cómo la información, o paquetes de datos, viajan desde las  aplicaciones (hojas de cálculo, documentos, etc.), por un medio de red (por ejemplo los cables), hasta  otras aplicaciones que estén ubicadas en otra computadora de la red, aunque el emisor y el receptor  tengan diferentes tipos de medios de red.  

Dos aplicaciones diferentes pueden ser compatibles, siempre y cuando sigan el modelo de referencia  OSI, haciendo los procesos correspondientes en el mismo orden. Esto permite a los desarrolladores de  software, comprender más fácilmente cómo es que trabajan. 

El modelo OSI está formado por siete capas, cada una ilustrando una función de red en particular. La  idea básica del modelo de referencia OSI, es ésta: cada capa está encargada de hacer cierto proceso, y  sólo puede comunicarse con las capas inmediatamente superior e inferior, por ejemplo, la capa cuatro  solo se puede comunicar con las capas cinco y tres. 

(26)

15  Cuando la computadora recibe datos,  ocurre el proceso contrario: la capa recibirá los datos de una capa  inferior, procesa lo que está recibiendo, elimina el control de información que le corresponde, y envía el  nuevo paquete a la capa superior. 

En la figura 2.1, se observa la posición de las capas del modelo de referencia OSI. Los programas sólo se  comunican con la séptima capa, la capa de aplicación, es la capa más cercana al usuario. En nuestro  proyecto, estos programas serán las aplicaciones cliente y servidor, mediante las cuales el usuario  controlará los periféricos. 

 

Figura 2. 1 Capas del modelo OSI 

2.2.2 Protocolo TCP/IP 

Para la realización de nuestro proyecto, debemos tomar en cuenta un conjunto de reglas para nuestro  programa de comunicación, este conjunto de reglas forman a un protocolo. El protocolo que es la base  de Internet es TCP/IP (Transmission Control Protocol/Internet Protocol),  este protocolo garantiza que  una PC que emplea un programa de comunicaciones bajo TCP/IP, se pueda comunicar con otro  ordenador de diferente marca que también lo haga. 

(27)

TCP (Protocolo de control de Transmisión), es el protocolo de transporte, y su función es  mantener la conexión entre los ordenadores, de manera que ésta no se pierda, todo esto a nivel  físico. 

IP (Protocolo de Internet), es el protocolo de encaminamiento, encargado de depositar los  paquetes de datos en las direcciones correspondientes, de la manera más eficiente posible.  También  se  ocupa  de  segmentar  y  reagrupar  los  datos  que  componen  cada  paquete  transmitido2. 

En la figura 2.2, se comparan las arquitecturas del modelo OSI y la de TCP/IP, como podemos ver, TCP/IP  solo cuenta con cuatro capas. En la capa de Aplicación podemos encontrar varios protocolos, como son:  SMTP (para e‐mail), FTP (para transferencia de datos) y HTTP (para buscadores web). Cada programa se  comunica con un protocolo diferente, ya que no todos realizan la misma función.  

 

Figura 2. 2 Comparación entre modelo OSI y TCP/IP 

(28)

17  paquetes de información que son enviados a la capa de Internet, o si se está recibiendo, se encarga de  ordenar los paquetes y verificar que no tengan errores. 

El protocolo de Internet (IP), se encuentra en la capa de Internet, en donde a los paquetes se les agregan  las direcciones virtuales de la computadora que envía, y de la que recibirá la información, estas  direcciones son conocidas como direcciones IP, de las cuales hablaremos en nuestro siguiente tema. Los  paquetes formados son enviados a la siguiente capa, la capa de red, en donde los paquetes ya son  llamados datagramas. 

La capa de red envía los paquetes a través de la red, o los recibe en el caso de que la computadora sea la  receptora. Lo que hay dentro de esta capa, va a depender del tipo de red que se esté usando, el tipo de  red que más se utiliza hoy en día, es Ethernet. 

Internet cuenta además con una capa en su nivel más alto, que es la capa de Aplicación, en ella están  definidos los servicios que le han dado la importancia que tiene la red: HTTP, FTP, WWW, E‐Mail, etc. 

Cuando se quiere revisar un e‐mail, se hace una petición al servidor que los almacena, esta tarea es  llevada a cabo por la capa de Aplicación, específicamente usando el protocolo SMTP. Cuando en nuestro  navegador escribimos “www”, para buscar alguna página, el navegador (Internet Explorer, Fire Fox,  Google Chrome, etc.), deja ésta tarea a la capa de aplicación, en donde se hará uso del protocolo HTTP.   

Hablemos un poco más de la capa de Aplicación, ya que en ella se llevan a cabo muchas tareas que  tienen estrecha relación con nuestro proyecto, y que nos ayudarán a comprender mejor, conceptos que  se manejan durante el desarrollo de nuestro software de comunicación. 

2.2.3 Protocolo UDP 

(29)

Al igual que TCP, los puertos en UDP sirven para identificar los puntos terminales de las máquinas origen  y destino. Muchas aplicaciones utilizan UD, para evitarse el establecery luego liberar una conexión con  esto, la transmisión es más rápida. UDP sólo trabaja con las funciones básicas, debido a que se preocupa  más por que los datos se transfieran rápidamente. Tiene la desventaja de que carece de mecanismos de  seguridad, como los del protocolo TCP, poniendo en riesgo la transmisión de paquetes entre origen y  destino. 

 

2.3

 

Puertos

 

La capa de aplicación, se va a comunicar con la capa de transporte a través de un puerto. Ciertas  aplicaciones utilizan siempre un mismo puerto para comunicarse, por ejemplo, el protocolo SMTP  siempre utiliza el puerto 25, HTTP utiliza siempre el puerto 80 y FTP el 20 para la transmisión de datos y  el 21 para control. En el siguiente capítulo, en el que se habla del desarrollo de nuestras aplicaciones  cliente y servidor, se volverá a tocar este tema, ya que nuestras aplicaciones también utilizan un puerto  para comunicarse. 

(30)

19   

Figura 2. 3 Aplicaciones y sus puertos 

Anteriormente se mencionó que el protocolo TCP en la capa de Transporte, cuando se están recibiendo  datos, éste ordena los paquetes provenientes de la capa de Internet (ya que pueden venir fuera de  orden), y además verifica que el contenido del paquete no tenga errores, una vez hecho esto, envía una  señal al transmisor, para que éste sepa que el paquete fue recibido satisfactoriamente, en caso de que  esta señal no sea enviada, ya sea porque el paquete no llegó a su destino o porque TCP encontró errores  en la información, el transmisor deberá reenviar el paquete.  

2.4

 

Direcciones

 

IP

 

En una red TCP/IP, cada computadora debe tener un identificador único, para que pueda comunicarse  con el resto de las computadoras de la red. Este identificador es conocido como dirección IP. Una  dirección IP es una secuencia de 32 bits, compuesta por unos y ceros, para nosotros los seres humanos  sería difícil trabajar de manera directa con este tipo de secuencias, así que para facilitar las cosas, son  escritas como cuatro números decimales entre cero y 255, separados por un punto. 

(31)

 

Figura 2. 4 Formato de una dirección IP 

Una dirección IP está compuesta de dos partes, una parte nos dice la dirección de red y otra la dirección  host, en la figura 2.5 se muestra una dirección IP que tendría como dirección de red los dos primeros  bytes y los dos bytes restantes para la dirección host. 

 

Figura 2. 5 Estructura de una dirección IP 

Las direcciones IP están divididas en cinco clases, la clase a la que pertenece una determinada IP, va a  depender del bit o secuencia de bit al principio de cada dirección.  

Direcciones

 

Clase

 

A

 

(32)

21   

Figura 2. 6 Dirección IP de Clase A 

Direcciones

 

Clase

 

B

 

Las direcciones Clase B, se utilizan para redes de tamaño moderado a grande. Los dos primeros bits de  este tipo de direcciones siempre son 10, por lo tanto, el número más pequeño sería 128 y el más grande  191.Cualquier dirección que comience con un número que esté entre 128 y 191, es de Clase B. En la  figura 2.7 se muestra su formato. 

 

Figura 2. 7 Dirección IP Clase B 

Direcciones

 

Clase

 

C

 

Son utilizadas para muchas subredes con pocos equipos y son las que más se usan actualmente. Una  dirección Clase C tiene como primeros tres bits a 110, esto quiere decir, que si una dirección comienza  con un número entre 192, que sería el más pequeño que podría representarse y 223 que sería el más  grande, entonces pertenece a esta Clase. En la figura 2.8 se muestra su formato. 

 

Figura 2. 8 Dirección IP Clase D  

Direcciones

 

Clase

 

D

 

y

 

Clase

 

E

 

(33)

Las  direcciones  Clase  E  están  reservadas  por  el  Grupo  de  Ingeniería  de  Internet  (IETF),  para  investigaciones, por lo que no pueden ser utilizadas para Internet. Los primeros cuatro bits de estas  direcciones siempre son unos, por lo que su primer octeto siempre es un número entre 11110000 y  11111111, o entre 240 y 255. 

2.4.1 Direcciones IP públicas y privadas 

El organismo encargado de asignar las direcciones IP públicas, necesarias para comunicarse en Internet,  es la Autoridad de Números Asignados de Internet (IANA, Internet Assigned Numbers Authority). Una  empresa puede solicitar una o varias direcciones públicas con un proveedor de servicios Internet (ISP), a  quien le fue asignado cierto intervalo de direcciones IP. Las direcciones públicas son únicas, globales y  están normalizadas. 

El número de direcciones IP públicas no es infinito, y debido a que éste tipo de direcciones son usadas  para poder comunicarse a través de Internet, resultaría un problema tener que asignar una dirección  por cada equipo conectado. Una de las soluciones a este problema, son las direcciones privadas, las  cuales son utilizadas para redes privadas que no están conectadas a Internet (esto no significa que no lo  puedan hacer). Las direcciones IP privadas están establecidas en la RFC 1918, en la que se reservan tres  bloques de direcciones IP, una dirección Clase A, un intervalo de direcciones Clase B y otro intervalo de  direcciones Clase C. 

• 10.0.0.0 con la máscara de subred 255.0.0.0  • 172.16.0.0 con la máscara de subred 255.240.0.0  • 192.168.0.0 con la máscara de subred 255.255.0.0 

(34)

23 

2.4.2 Asignación estática y dinámica de una dirección IP  

Hay dos método básicos para poder asignar la dirección IP a un equipo: direccionamiento estático y  direccionamiento dinámico. 

Cuando  el administrador  de  la  red asigna a cada dispositivo una dirección única para  que sea  identificado, se habla de un direccionamiento estático, ya que ésta dirección asignada nunca cambia  para ese dispositivo. Un ejemplo sería un servidor web, el cual debe mantener su misma dirección IP,  para que las páginas que aloja estén disponibles todo el tiempo, ya que si esta dirección cambiara cada  vez que el servidor fuese encendido, los usuarios no podrían acceder a  él. 

Otros ejemplos de dispositivos que deben mantener una dirección estática, son las impresoras de red,  los servidores de aplicaciones y los routers. 

Si la dirección de IP de un dispositivo cambia cada determinado tiempo, entonces el tipo de asignación  es dinámico. El Protocolo de configuración dinámica del host (DHCP), permite al host obtener una  dirección dinámicamente. Para poder usar DHCP se necesita un servidor DHCP, el cual debe contener un  cierto rango de direcciones a asignar. Cuando un host desea conectarse, hace una petición al servidor  DHCP, para que se le asigne una dirección IP que lo identifique, el servidor selecciona una dirección y la  asigna a ese host.   

Un ejemplo de DHCP lo podemos encontrar en nuestro hogar, cada vez que encendemos nuestra  máquina e intentamos conectarnos a Internet, puede ser que nuestra dirección IP no sea la misma que  teníamos un día anterior, esto se debe a que el proveedor de Internet para no utilizar una IP fija por  cada cliente, realiza una asignación dinámica, lo que hace que se cuente con una IP durante cierto  tiempo y cambie después, sucede  lo  mismo,  si apagamos el  router  (que  es  el dispositivo que  generalmente tenemos en nuestros hogares) y lo encendemos, la IP cambiará. 

(35)

2.5

 

Dominios

 

y

 

DNS

  

Los dispositivos o equipos que se conectan a Internet, deben ser identificados como ya dijimos por una  dirección IP, sin embargo, memorizar este tipo de direcciones, resultaría complicado para las personas.  Un dominio de Internet es un “representante” de una dirección IP, que facilita al usuario el poder tener  acceso a algún recurso dentro de Internet.  

Para  una persona  es  mucho más fácil  recordar  la dirección  www.google.com y teclearla  en su  navegador, que aprenderse la dirección 74.125.45.147. Es posible comprobar lo anterior haciendo un  ping a la dirección web, esto nos regresará su equivalente en dirección IP. 

En Internet, hay una gran cantidad de dominios (más de 200), como por ejemplo: 

• .gt, para servicios de Guatemala  • .mx, para servicios de México  • .cl, para servicios de Chile  • .co, para servicios de Colombia  • .cn, para servicios de China  • .edu, para servicios de Educación  • .eu, la región de Europa 

• .gob, para Gobierno y Entidades Públicas  • .info, para Información 

• .net, para Infraestructura de red  • .org, para organizaciones 

(36)

25 

2.6

 

Paradigma

 

Cliente

 

 

Servidor

 

En una red cliente – servidor, hay un equipo especial en donde se almacenan todos los servicios de la  red, este equipo atiende las solicitudes de otros equipos, que pueden ser archivos, impresiones,  aplicaciones y otros servicios, los primeros son llamados servidores, y los que hacen las peticiones son  los clientes. 

Un servidor debe estar continuamente esperando por solicitudes de los clientes, por lo que se debe de  tratar con un equipo con características especiales, como más poder de procesamiento, memoria y  software especializado, esto también depende de los procesos que realice, pues podemos contar con un  servidor con características no tan poderosas, pero que puede servir como un servidor web, por  ejemplo. 

Para  que  haya  una  comunicación,  los  servidores  deben  contar  con  una  IP  fija  y  deben  estar  “escuchando” a través de sus puertos, para que el cliente sabiendo estos parámetros, se pueda conectar  a él. Una vez que el cliente hace la petición a través de un puerto del servidor, éste realiza el servicio  requerido y devuelve los resultados en forma de una respuesta (Figura 2.9).  

 

Figura 2. 9 Interacción Cliente ‐ Servidor 

2.7

 

Sockets

 

(37)

método de comunicación entre las aplicaciones cliente y un servidor, que intercambian datos en forma  fiable y ordenada, son un componente básico de comunicación, ya que proporcionan una comunicación  de dos vías, punto a punto entre dos procesos. 

Se requieren tres elementos para poder crear un socket: 

1. Un protocolo de comunicaciones  2. Una dirección IP 

3. Un número de puerto 

Funcionamiento

 

Una aplicación servidor utiliza un socket con un número de puerto específico. La aplicación cliente debe  conocer el nombre del equipo servidor (hostname) o dirección IP, y el puerto a través del cual está  escuchando la aplicación servidor. 

Cuando la aplicación cliente hace una petición al servidor para conectarse y éste acepta, la aplicación  servidor debe abrir un nuevo socket con un puerto diferente, para poder atender otras peticiones  mientras atiende al cliente actual. Una vez conectados, las dos aplicaciones pueden comunicarse  leyendo o escribiendo en sus respectivos sockets. 

A continuación se mostrará en forma general cómo serían un programa cliente y uno servidor con TCP y  utilizando el lenguaje C# que es el que será usado para diseñar nuestras aplicaciones del proyecto. 

(38)

27  Como segundo paso hay que hacer que nuestro objeto creado en el paso anterior empiece a escuchar,  esto se hace llamando al método Start de TcpListenerCuando el servidor recibe una petición del  cliente, este crea una conexión mediante el método AcceptSocket de la clase TcpListener el cual  devuelve un objeto Socket al momento de la conexión. 

Socket Conexion = ObjServidor.AcceptSocket(); 

El tercer paso consiste en establecer el flujo de la información entre el cliente y el servidor utilizando un  objeto NetworkStream que a su vez utiliza al objeto Conexion para realizar el envío y la recepción de  datos. 

Con el objeto NetworkStream podemos crear un BinaryWriter y un BinaryReader, que son usados para  enviar y recibir información entre los programas cliente y servidor. 

El cuarto paso consiste en la comunicación entre el cliente y el servidor mediante la conexión  establecida en el paso anterior. 

El  quinto paso  es  la  terminación  de  la  conexión  mediante  la  utilización  del  método Close  de  BinaryReader, BinaryWriter, NetworkStream y Socket para dar fin a la conexión. 

Para la programación del cliente se deben seguir cuatro pasos básicos. El primero de ellos es crear un  objeto de la clase TcpClient y con este objeto llamamos al método Connect de TcpClient para establecer  la conexión, esto sería como sigue: 

TcpClient ObjCliente = new TcpClient(); 

ObjCliente.Connect( disreccionServidor, puertoServidor ); 

(39)

El tercer paso es el de procesamiento, en donde se utiliza el método Write de BinaryWriter y el método  ReadString de BinaryReader para realizar la comunicación. Por último paso tenemos que cerrar la  conexión llamando al método Close de BinaryReader, BinaryWriter, NetworkStream y TcpClient. 

2.8

  

Control

 

Winsock

 

El control Winsock (su nombre proviene de Windows Sockets), permite conectar dos aplicaciones a  través de una red, ya sea en una red LAN o como en nuestro caso, a través de Internet. Este control  puede  funcionar  con  el  protocolo  UDP  o con TCP, ambos  pueden  ser  usados  para desarrollar  aplicaciones cliente‐servidor. 

El control Winsock no tiene una interfaz visible en tiempo de ejecución, esto es, cuando nuestras  aplicaciones se estén ejecutando, el usuario no verá el ícono del control.  

El control Winsock, al igual que cualquier otro control, cuenta con una serie de propiedades, métodos y  eventos que hacen mucho más fácil la programación, a diferencia de programar aplicaciones utilizando  sólo sockets, ya que no es necesario establecer el tamaño de los paquetes o formar los encabezados. A  continuación se describen las propiedades, métodos y eventos más importantes de este control, y con  los cuales trabajaremos para programar nuestras aplicaciones cliente y servidor. 

2.8.1 Propiedades 

LocalIP

 

Esta propiedad nos devuelve la dirección IP de la máquina, en donde se está ejecutando nuestra  aplicación. 

(40)

29  RemoteHost 

Con esta propiedad se establece el equipo remoto con el que se quiere llevar a cabo una conexión. 

LocalPort 

Establece el puerto a través del cual se estarán escuchando peticiones entrantes, por lo tanto, esta  propiedad es utilizada en la aplicación servidor. 

RemotePort 

Esta propiedad es programada del lado del cliente, ya que mediante ella se establece el puerto por el  cual el cliente se conectará el servidor. 

LocalPort y RemotePort deben ser exactamente iguales, pues como vimos en el capítulo anterior, es a  través del puerto, que el servidor sabe a qué aplicación dirigirse luego de recibir una petición a través de  él. 

State 

Nos informa del estado del control Winsock, si este está siendo utilizado o no. 

Para poder hacer uso de las propiedades del control Winsock, debemos crear un objeto del mismo, y a  través de éste acceder a la propiedad y por último asignarle un valor. La sintaxis es mostrada a  continuación: 

Objeto.Propiedad = Valor  

Nota: EL objeto puede ser el nombre del control Winsock, que siempre es WinSock1, este nombre es el  que utilizamos en nuestras aplicaciones. 

(41)

Label1.Text = WinSock1.LocalIP 

2.8.2 Métodos 

Accept 

Sólo se utiliza para aplicaciones servidor que se basen en TCP, y es usada para aceptar una conexión  entrante en un evento ConnectionRequest. 

GetData 

Obtiene el dato que fue enviado a la aplicación, ya sea al cliente o al servidor, este método nos es de  gran utilidad en nuestras aplicaciones, pues nos permitirá procesar los datos que enviemos. 

Listen 

Con este método lo que se hace, es crear un socket que esté en modo de escucha, para que el servidor  se ponga a escuchar por peticiones de los clientes. 

 

SendData 

Gracias a este método podemos enviar nuestros datos al equipo remoto. 

2.8.3 Eventos 

Ahora pasaremos a describir los eventos más importantes que utilizamos para nuestras aplicaciones. 

(42)

31  Se produce cuando el equipo local se conecta con el remoto, para establecer una comunicación. 

Close 

Se produce cuando el equipo remoto cierra la conexión. Es importante que nuestras aplicaciones cierren  las conexiones TCP, una vez que dejan de transmitir información, para que posteriormente otras  conexiones sean hechas. 

DataArrival 

Este evento se produce cuando llegan datos nuevos y es importante, ya que aquí es donde vamos a  decidir qué hacer con la información que estamos recibiendo. En nuestro caso, esta información es  enviada a la interfaz USB del servidor, para que sea procesada por el Microcontrolador. 

En la figura 2.10, se muestran las propiedades, métodos y eventos, que de manera general se utilizan  para programar aplicaciones cliente y servidor, sin embargo, en el proyecto hay métodos y eventos que  se utilizan, tanto del lado del cliente como del servidor. 

 

(43)

      

Capítulo

 

3

 

Materiales

 

 

En este capítulo, se describirán brevemente los materiales utilizados para el desarrollo del proyecto,  esto incluye tanto herramientas de software, como material hardware. 

3.1

 

Software

 

de

 

desarrollo

 

Las herramientas de desarrollo que se utilizan, son: Visual Studio C# 2008, el compilador de C para PICs  PCW versión 4.65.4.13 de CCS, WinPic800, LiveWire y PCB Wizard. A continuación, se dará una breve  explicación de la utilidad de estas herramientas, y sus principales características. 

3.1.1 Visual Studio C# 2008 

Microsoft Visual C# 2008, proporciona un editor de código avanzado, permite diseñar interfaces de  usuario de forma rápida y sencilla, además cuenta con un  depurador integrado y muchas herramientas,  que hacen más fácil el desarrollo de aplicaciones basadas en la versión 2.0 del lenguaje C#, y en .NET  Framework. 

Juntos, Visual Studio y .NET Framework reducen la necesidad de código, los tiempos de desarrollo y  permiten al desarrollador, concentrarse en el diseño de la aplicación. 

3.1.2 Compilador CCS 

(44)

33  Incluye también el código fuente de numerosos programas de ejemplo, para módulos LCD, teclados,  conversores A/D, etc.  

El compilador CCS, soporta una gran cantidad de microcontroladores, uno de ellos y el utilizado en este  proyecto, el PIC18F2550 de Microchip. Una característica muy importante, que además incluye, es la  función de crear un archivo del programa compilado, en formato HEX. Este archivo HEX, es utilizado  para programar el microcontrolador usando WinPic800. 

3.1.3 WinPic800 

Se trata de un software gratuito de programación de dispositivos. WinPic800 admite multitud de  circuitos  programadores,  e  incluso  permite  fácilmente  la  configuración  de  nuevos  circuitos  programadores, aunque se recomienda su uso combinado con el programador GTP USB, que es el que  se utiliza para este proyecto.  

3.1.4 LiveWire y PCB Wizard 

LiveWire, es una herramienta que permite el diseño de diagramas eléctricos de circuitos, con una  función que permite pasar de un diagrama eléctrico de un circuito, al diseño de lo que será su circuito  impreso, esto se logra, en conjunto con el programa PCB Wizard. 

3.2

 

Hardware

 

de

 

desarrollo.

 

En cuanto al hardware que se requirió para hacer posible la realización del proyecto, se utilizó, una PC  con procesador Intel Pentium IV a 2.2 GHz, con 760 Mb en memoria RAM, y sistema operativo Windows  XP Home Edition. 

3.2.1 Programador GTP USB Lite 

(45)

comunica por medio del USB, a la PC, esto evita la necesidad de contar con alimentación externa,   y  aumenta la velocidad de grabación.  

3.3

Microcontrolador

 

PIC

 

18F2550

 

Este microcontrolador, se desprende de la familia de microcontroladores PIC, de Microchip, es un  microcontrolador que entra de la clasificación de microcontroladores de 8 bits, pues realiza sus  operaciones con registros de 8 bits. 

La principal característica por la que elegimos usar este microcontrolador PIC18F2550, es su función de  conectividad con la interfaz USB, que puede funcionar a baja velocidad (1.5 Mbps), o a alta velocidad (12  Mbps). Además, este microcontrolador tiene las siguientes características que serán utilizadas en el  proyecto: 

¾ Tiene 24 terminales que pueden ser configuradas como terminales de Entrada/Salida digital. 

¾ Posee 3 temporizadores (temporizador 0,1 y 2). 

¾ Es posible configurar hasta de 4 maneras distintas sus fuentes de reloj  • XT. Oscilador o cristal de cuarzo (Crystal/Resonator) 

• HS. Oscilador o cristal de cuarzo de alta velocidad (High‐Speed Crystal/Resonator),  se  utiliza cuando el microcontrolador necesita de una alta frecuencia. 

• EC. Reloj externo (External Clock). 

• INT. Oscilador interno (Internal Oscillator). 

Las terminales de Entrada/Salida, serán utilizadas, para encender LEDs, para controlar los circuitos de  potencia, y así encender   o apagar dispositivos controlados, o también, algunas de las terminales se  podrían utilizar para codificar (generar señales banda base), o para decodificar (interpretar señales 

Figure

Figura 1 Diagrama del general del proyecto 
Figura 2. 3 Aplicaciones y sus puertos 
Figura 4. 3 Interfaz gráfica de la aplicación Cliente 
Figura 4. 4 Diagrama caso ‐ uso de la aplicación Cliente 
+7

Referencias

Documento similar

Éstos son fuertes predictores de la presencia de alteraciones de la salud en los niños que han vivido la ruptura de los progenitores (Overbeek et al., 2006). En este

Esas adaptaciones requerirán conciliar la regulación de actividades abiertas a una competencia plena o acotada con los llamados servicios uni- versales sin alterar el modelo de

Reglamento (CE) nº 1069/2009 del parlamento Europeo y del Consejo de 21 de octubre de 2009 por el que se establecen las normas sanitarias apli- cables a los subproductos animales y

La réceptivité associée à une transition source est généralement une réceptivité sur front (sinon l’étape suivante est activée en permanence). Les règles de

Si la máquina esta en posición inicial (S2 + S5) es decir con el carro transportador arriba y a la izquierda y S1 detecta que ha llegado pieza desde la CINTA1 se pone

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

Després d’un inventari pericial i de consensuar-ho amb els mateixos redactors de l’estudi, s’apunta a que la problemàtica és deguda a que en els casos on l’afectació

Polígon industrial Torrent d'en Puig. Polígonindustrial de Can