INSTITUTO POLITÉCNICO NACIONAL

Tamaño: px
Comenzar la demostración a partir de la página:

Download "INSTITUTO POLITÉCNICO NACIONAL"

Transcripción

1 INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Profesional Adolfo López Mateos Control a distancia en lazo abierto de un motor de C. A. vía el protocolo TCP/IP Tesis Que para obtener el titulo de Ingeniero en Control y Automatización Presentan: Guerrero Gudiño Jesús Orozco reyes Jorge Manuel Mora Mendoza Iván México D. F. 2008

2

3 ÍNDICE ÍNDICE Introducción. 4 Prologo 6 Objetivos 7 Unidad 1. Protocolo De Comunicación TCP/IP Historia Qué Es Y Cual Es La Arquitectura De TCP/IP Modelo OSI Las Capas Del Modelo OSI Protocolos TCP/IP Características De TCP/IP Cómo Funciona TCP/IP IP: La Dirección De Internet TCP Establecimiento De La Conexión (Negociación En Tres Pasos) Transferencia De Datos Tamaño De Ventana TCP Escalado De Ventana Fin De La Conexión Puertos TCP En Que Se Utiliza TCP/IP Similitudes Y Diferencias Entre La Clase 4 Del Modelo OSI Y TCP La Nueva Versión De IP (IPNG) Formato De La Cabecera Direcciones En La Versión Unidad 2. Generalidades del Motor de Corriente Alterna Introducción Magnetismo Propulsión magnética del motor Corriente Alterna (C. A.) Operación básica del motor de C. A Comparación de las características de los motores de C. A. y C. D Construcción Terminología 38 1

4 ÍNDICE Unidad 3. Programación Básica Aplicada A Microcontroladores 3.1. Introducción Directivas del preprocesador Control de memoria Identificadores predefinidos Directivas del C estándar Especificación de dispositivos Calificadores de función Librerías incorporadas Funciones permitidas por el compilador de C Funciones de I/O discreta Funciones de retardos Funciones de control del procesador Contadores / temporizadores Funciones de manejo de cadenas Funciones de entrada A/D Funciones para la manipulación de bits Definición de datos Definición de función Funciones: parámetros por referencia Edición de un programa en C Estructura de un programa en C 59 Unidad 4. Programación Del Protocolo TCP/IP 4.1. Interfaz de usuario HTML Historia del estándar Códigos HTML básicos Desarrollo de la página Web Página con datos personales utilizando link Stack de TCP/IP 71 Unidad 5. Pruebas de Hardware 5.1. Diseño E Implementación De Un Arrancador Suave De Motores De Baja Potencia De C. A. Monofásicos Con Un Mínimo De Electrónica Introducción

5 ÍNDICE 5.2. Funcionamiento del Arrancado Detección de cruce por cero La etapa de control (microcontrolador) Optotriac y red Snubber Margen de regulación 87 Análisis de Costos - Beneficios 89 Conclusiones 92 Anexo. Hojas de datos y especificaciones 93 Glosario 125 Bibliografía 127 3

6 INTRODUCCIÓN Introducción Debido a las aplicaciones cada vez más frecuentes de la llamada electrónica de potencia, en los sistemas eléctricos de potencia ha habido una transformación importante en los últimos 25 años de los procesos productivos, En esencia, se trata de aprovechar las ventajas que en materia de regulación y control ofrecen los dispositivos electrónicos. Dentro de las aplicaciones más comunes se encuentran las de los Sistemas Eléctricos de Potencia en la Transmisión de Energía y en el Control de Máquinas Eléctricas. En la industria actual es difícil aislar la tecnología de la electrónica de potencia de las máquinas eléctricas y esto requiere necesariamente de un conocimiento completo de algunos dispositivos como son los diodos, transistores, tiristores y el dispositivo básico de nuestro trabajo, el Microcontrolador. Antes de los accionamientos de C. A., existía el concepto de control de movimiento, que se daba en la forma de arranque y paro de las máquinas, usando vapor y medios neumáticos, así como medios hidráulicos. Aún en la actualidad, hay un número importante de elementos de control no electrónicos que permaneces en las máquinas instaladas en diferentes procesos industriales. El control del movimiento puede ser tan simple como abrir o cerrar una válvula o tan complejo como programar un robot para desarrollar varios movimientos simultáneamente. Existen muchos métodos y disciplinas usadas para el control del movimiento, sin embargo, la aparición de los accionadotes electrónicos han cambiado el concepto sensiblemente y lo han acercado más con la automatización, que puede incluir aspectos mecánicos, eléctricos o de computación. En el inicio, cuando las primeras máquinas fueron accionadas por motores eléctricos, éstos actuaban como primo motores, siendo motores de C. A., de velocidad constante, más adelante fue necesario controlar la velocidad y se encontraron ventajas en algunos motores de C. D., ya que los motores de C. A., como ya se dijo, operan a velocidad constante. El objetivo principal de este trabajo se centra en la aplicación y programación del protocolo TCP/IP (Transfer Control Portocol & Internet Protocol), en el control y supervisión del arranque de un motor de C. A. Con esto se busca dar un paso más en la aplicación de la electrónica de potencia, al unir las tecnologías de la comunicación con la manipulación y supervisión de procesos industriales. 4

7 PROLOGO PROLOGO Este trabajo responde a la necesidad de controlar y monitorear una planta desde cualquier parte del mundo. Para demostrar que esto es posible, se toma como ejemplo el control del arranque de un motor de C. A. Se hace énfasis en que la parte central de este trabajo es el control y monitoreo no crítico de una planta a través del protocolo TCP/IP y que el control del motor sirve como ejemplo de la viabilidad de esta tecnología. El Protocolo TCP/IP es llamado protocolo de protocolos, ya que, dentro de éste se albergan más protocolos que serán desarrollados o explicados durante el avance de este trabajo. Debemos decir que en la actualidad este protocolo está presente en la mayoría de las redes, siendo la más extensa y conocida el INTERNET. Esta es una de las aplicaciones de mayor difusión a lo largo y ancho del mundo, de ahí la necesidad de utilizar y aprender a programar en base a este protocolo. A diferencia de las PCs, en el microcontrolador, dispositivo electrónico encargado de la comunicación y control de la planta (en este caso el motor de C. A.), el espacio en memoria es reducido, por lo que se implementó una versión compacta del protocolo (comúnmente llamada TCP/IP embebido) por medio del compilador PIC Compiler de la compañía CCS Inc. 6

8 OBJETIVOS Objetivo: Desarrollar el control a distancia de un motor de C. A. en lazo abierto a través de Internet vía el protocolo TCP/IP. Objetivos particulares: Desarrollar la etapa de potencia que permita el control del motor de C. A. Acoplar la etapa de control y de potencia para realizar el control a distancia del motor de C. A. Desarrollar la etapa de comunicación vía TCP/IP para controlar y comunicarse con la planta que se desee. 7

9 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP UNIDAD I PROTOCOLO DE COMUNICACIÓN TCP/IP 1.1 Historia El Protocolo de Internet (IP) y el Protocolo de Transmisión (TCP), fueron desarrollados inicialmente en 1973 por el informático estadounidense Vinton Cerf como parte de un proyecto dirigido por el ingeniero norteamericano Robert Kahn y patrocinado por la Agencia de Programas Avanzados de Investigación (ARPA, siglas en inglés) del Departamento Estadounidense de Defensa. Internet comenzó siendo una red informática de ARPA (llamada ARPAnet) que conectaba redes de computadoras de varias universidades y laboratorios en investigación en Estados Unidos. World Wide Web se desarrolló en 1989 por el informático británico Timothy Berners-Lee para el Consejo Europeo de Investigación Nuclear (CERN, por sus siglas en francés). 1.2 Qué Es Y Cual Es La Arquitectura De TCP/IP TCP/IP es el protocolo más comúnmente utilizado por todas las computadoras conectadas a Internet, de manera que estas puedan comunicarse entre sí. Hay que tener en cuenta que en Internet se encuentran conectadas computadoras de clases muy diferentes y con hardware y software incompatibles en muchos casos, además de todos los medios y formas posibles de conexión. Aquí se encuentra una de las grandes ventajas del TCP/IP, pues este protocolo se encargará de que la comunicación entre todos sea posible. TCP/IP es compatible con cualquier sistema operativo y con cualquier tipo de hardware. TCP/IP no es un único protocolo, sino que es en realidad un conjunto de protocolos que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son el TCP ( Transmission Control Protocol) y el IP ( Internet Protocol), que son los que dan nombre al conjunto. La arquitectura del TCP/IP consta de cinco niveles o capas en las que se agrupan los protocolos, y que se relacionan con los niveles OSI de la siguiente manera: Aplicación: Se corresponde con los niveles OSI de aplicación, presentación y sesión. Aquí se incluyen protocolos destinados a proporcionar servicios, tales como correo electrónico (SMTP), transferencia de ficheros (FTP), conexión remota (TELNET) y otros más recientes como el protocolo HTTP (Hypertext Transfer Protocol). Transporte: Coincide con el nivel de transporte del modelo OSI. Los protocolos de este nivel, tales como TCP y UDP, se encargan de manejar los datos y proporcionar la fiabilidad necesaria en el transporte de los mismos. Internet: Es el nivel de red del modelo OSI. Incluye al protocolo IP, que se encarga de enviar los paquetes de información a sus destinos correspondientes. Es utilizado con esta finalidad por los protocolos del nivel de transporte. Físico: Análogo al nivel físico del OSI. Red: Es la interfaz de la red real. TCP/IP no especifica ningún protocolo concreto, así es que corre por las interfaces conocidas, como por ejemplo: 802.2, CSMA/CD, X.25, etc. 8

10 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP NIVEL DE APLICACIÓN NIVEL DE TRANSPORTE NIVEL DE INTERNET NIVEL DE RED NIVEL FÍSICO Figura Arquitectura TCP/IP El TCP/IP necesita funcionar sobre algún tipo de red o de medio físico que proporcione sus propios protocolos para el nivel de enlace de Internet. Por este motivo hay que tener en cuenta que los protocolos utilizados en este nivel pueden ser muy diversos y no forman parte del conjunto TCP/IP. Sin embargo, esto no debe ser problemático puesto que una de las funciones y ventajas principales del TCP/IP es proporcionar una abstracción del medio de forma que sea posible el intercambio de información entre medios diferentes y tecnologías que inicialmente son incompatibles. Para transmitir información a través de TCP/IP, ésta debe ser dividida en unidades de menor tamaño. Esto proporciona grandes ventajas en el manejo de los datos que se transfieren y, por otro lado, esto es algo común en cualquier protocolo de comunicaciones. En TCP/IP cada una de estas unidades de información recibe el nombre de "datagrama" (datagram), y son conjuntos de datos que se envían como mensajes independientes. 1.3 Modelo OSI La Organización Internacional de Estandarización creo el modelo OSI y se dio a conocer en 1984 con el propósito de proveer un modelo de red para vendedores cuyos productos pueden interactuar en las redes. Este modelo provee una herramienta jerárquica para el entendimiento de tecnología de red, tanto para la base ya instalada como para el futuro de la red. Por qué un modelo red de capas? Reduce la complejidad Estandariza interfases Facilita la ingeniería modular Simplifica el enseñar y aprender Acelera la evolución Asegura que la tecnología interactúe Las Capas Del Modelo OSI Capa 7 (Aplicación). Provee servicio directo de aplicación. Las aplicaciones pueden variar, pero incluye mensajes electrónicos, por ejemplo un procesador de textos. Capa 6 (Presentación). Provee representación de datos y formato código con el propósito de proveer una interfase común para las aplicaciones. Esta puede incluir servicios de encriptación. 9

11 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Capa 5 (Sesión). Esta establece, mantiene y maneja las sesiones de aplicaciones. Capa 4 (Transporte). Esta segmenta y reensambla datos en un paquete de datos. Incluye full o half duplex, flujo de control y servicios de recuperación de error. Capa 3 (Red). Determina el mejor camino que pueden tomar los datos desde un lugar a otro a través de una red de Internet. Establece la conexión entre dos nodos a través de direccionamiento. Capa 2 (Enlace de datos). Provee transmisión física a través del medio. Esta maneja notificación de error, topología de error y flujo de control. Capa 1 (Física). Provee los estándares o normas eléctricas, mecánicas para activar y mantener el enlace físico entre sistemas. 1.4 Protocolos TCP/IP FTP, SMTP, TELNET TCP IP, ICMP, 802.2, X.25 ETHERNET, IEEE 802.2, X.25 SNMP, X-WINDOWS, RPC, NFS UDP FTP (File Transfer Protocol). Se utiliza para transferencia de archivos. SMTP (Simple Mail Transfer Protocol). Es una aplicación para el correo electrónico. TELNET: Permite la conexión a una aplicación remota desde un proceso o terminal. RPC (Remote Procedure Call). Permite llamadas a procedimientos situados remotamente. Se utilizan las llamadas a RPC como si fuesen procedimientos locales. SNMP (Simple Network Management Protocol). Se trata de una aplicación para el control de la red. NFS (Network File System). Permite la utilización de archivos distribuidos por los programas de la red. X-Windows. Es un protocolo para el manejo de ventanas e interfaces de usuario. UDP: es un protocolo del nivel de transporte basado en el intercambio de datagramas. 1.5 Características De TCP/IP Ya que dentro de un sistema TCP/IP los datos transmitidos se dividen en pequeños paquetes, éstos resaltan una serie de características. La tarea de IP es llevar los datos a granel (los paquetes) de un sitio a otro. Las computadoras que encuentran las vías para llevar los datos de una red a otra (denominadas enrutadores) utilizan IP para trasladar los datos. En resumen IP mueve los paquetes de datos a granel, mientras TCP se encarga del flujo y asegura que los datos estén correctos. 10

12 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Las líneas de comunicación se pueden compartir entre varios usuarios. Cualquier tipo de paquete puede transmitirse al mismo tiempo, y se ordenará y combinará cuando llegue a su destino. Compare esto con la manera en que se transmite una conversación telefónica. Una vez que establece una conexión, se reservan algunos circuitos para usted, que no puede emplear en otra llamada, aun si deja esperando a su interlocutor por veinte minutos. Los datos no tienen que enviarse directamente entre dos computadoras. Cada paquete pasa de computadora en computadora hasta llegar a su destino. Éste, claro está, es el secreto de cómo se pueden enviar datos y mensajes entre dos computadoras aunque no estén conectadas directamente entre sí. Lo que realmente sorprende es que sólo se necesitan algunos segundos para enviar un archivo de buen tamaño de una máquina a otra, aunque estén separadas por miles de kilómetros y pese a que los datos tienen que pasar por múltiples computadoras. Una de las razones de la rapidez es que, cuando algo anda mal, sólo es necesario volver a transmitir un paquete, no todo el mensaje. Los paquetes no necesitan seguir la misma trayectoria. La red puede llevar cada paquete de un lugar a otro y usar la conexión más idónea que esté disponible en ese instante. No todos los paquetes de los mensajes tienen que viajar, necesariamente, por la misma ruta, ni necesariamente tienen que llegar todos al mismo tiempo. La flexibilidad del sistema lo hace muy confiable. Si un enlace se pierde, el sistema usa otro. Cuando usted envía un mensaje, el TCP divide los datos en paquetes, ordena éstos en secuencia, agrega cierta información para control de errores y después los lanza hacia fuera, y los distribuye. En el otro extremo, el TCP recibe los paquetes, verifica si hay errores y los vuelve a combinar para convertirlos en los datos originales. De haber error en algún punto, el programa TCP destino envía un mensaje solicitando que se vuelvan a enviar determinados paquetes. 1.6 Cómo Funciona TCP/IP IP: IP, a diferencia del protocolo X.25, que está orientado a conexión, es sin conexión. Está basado en la idea de los datagramas interred, los cuales son transportados transparentemente, pero no siempre con seguridad, desde el hostal fuente hasta el hostal destinatario, quizás recorriendo varias redes mientras viaja. El protocolo IP trabaja de la siguiente manera: la capa de transporte toma los mensajes y los divide en datagramas, de hasta 64K octetos cada uno. Cada datagrama se transmite a través de la red interred, posiblemente fragmentándose en unidades más pequeñas, durante su recorrido normal. Al final, cuando todas las piezas llegan a la máquina destinataria, la capa de transporte los reensambla para así reconstruir el mensaje original. Un datagrama IP consta de una parte de cabecera y una parte de texto. La cabecera tiene una parte fija de 20 octetos y una parte opcional de longitud variable. La siguiente tabla muestra el formato de las cabeceras IP y a continuación, una breve descripción de cada campo: 11

13 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Versión Tamaño Cabecera Tipo de Servicio Longitud Total Identificador Indicadores Posición de Fragmento Tiempo de Vida Protocolo Checksum Cabecera Dirección IP de Origen Dirección IP de Destino Opciones Relleno Versión: 4 bits. (0100) Siempre vale lo mismo Figura Formato de la Cabecera IP (Versión 4) Este campo describe el formato de la cabecera utilizada. En la tabla se describe la versión 4. Tamaño Cabecera (IHL): 4 bits. Longitud de la cabecera, en palabras de 32 bits. Su valor mínimo es de 5 para una cabecera correcta, y el máximo de 15. Tipo de Servicio: 8 bits. Indica una serie de parámetros sobre la calidad de servicio deseada durante el tránsito por una red. Algunas redes ofrecen prioridades de servicios, considerando determinado tipo de paquetes "más importantes" que otros (en particular estas redes solo admiten los paquetes con prioridad alta en momentos de sobrecarga). Estos 8 bits se agrupan como se muestra a continuación. Los 5 bits de menos peso son independientes e indican características del servicio: Bit 0: sin uso, debe permanecer en 0. Bit 1: 1 costo mínimo, 0 costo normal. Bit 2: 1 máxima fiabilidad, 0 fiabilidad normal. Bit 3: 1 máximo rendimiento, 0 rendimiento normal. Bit 4: 1 mínima demora, 0 demora normal. Los 3 bits restantes están relacionados con la precedencia de los mensajes, un indicador ajunto que indica el nivel de urgencia basado en el sistema militar de precedencia de la CCEB, una organización de comunicaciones electrónicas militares formada por 5 naciones. La urgencia que estos estados representan aumenta a medida que el número formado por estos 3 bits lo hace, y responden a los siguientes nombres. 000: De rutina. 001: Inmediato. 010: Inmediato. 011: Relámpago. 100: Invalidación relámpago. 101: Procesando llamada crítica y de emergencia. 12

14 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP 110: Control de trabajo de Internet. 111: Control de red. Longitud Total: 16 bits. Es el tamaño total, en octetos, del datagrama, incluyendo el tamaño de la cabecera y el de los datos. El tamaño máximo de los datagramas usados normalmente es de 576 octetos (64 de cabeceras y 512 de datos). Una máquina no debería enviar datagramas mayores a no ser que tenga la certeza de que van a ser aceptados por la máquina destino. En caso de fragmentación este campo contendrá el tamaño del fragmento, no el del datagrama original. Identificador: 16 bits. Identificador único del datagrama. Se utilizará, en caso de que el datagrama deba ser fragmentado, para poder distinguir los fragmentos de un datagrama de los de otro. El originador del datagrama debe asegurar un valor único para la pareja origen-destino y el tipo de protocolo durante el tiempo que el datagrama pueda estar activo en la red. Indicadores: 3 bits. Actualmente utilizado sólo para especificar valores relativos a la fragmentación de paquetes: bit 0: Reservado; debe ser 0 bit 1: 0 = Divisible, 1 = No Divisible bit 2: 0 = Último Fragmento, 1 = Fragmento Intermedio (le siguen más fragmentos) La indicación de que un paquete es indivisible debe ser tenida en cuenta bajo cualquier circunstancia. Si el paquete necesitara ser fragmentado, no se enviará. Posición de Fragmento: 13 bits. En paquetes fragmentados indica la posición, en unidades de 64 bits, que ocupa el paquete actual dentro del datagrama original. El primer paquete de una serie de fragmentos contendrá en este campo el valor 0. Tiempo de Vida (TTL): 8 bits. Indica el máximo número de direccionadores que un paquete puede atravesar. Cada vez que algún nodo procesa este paquete disminuye su valor en, como mínimo, un direccionador. Cuando llegue a ser 0, el paquete no será reenviado. Protocolo: 8 bits. El número utilizado en este campo sirve para indicar a qué protocolo pertenece el datagrama que se encuentra a continuación de la cabecera IP, de manera que pueda ser tratado correctamente cuando llegue a su destino. 13

15 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Checksum Cabecera: 16 bits. Checksum de la cabecera. Se recalcula cada vez que algún nodo cambia alguno de sus campos (por ejemplo, el Tiempo de Vida). El método de cálculo (intencionadamente simple) consiste en sumar el complemento a 1 de cada palabra de 16 bits de la cabecera y hacer el complemento a 1 del valor resultante. Dirección IP de Origen: 32 bits. Contiene la dirección del host que envía el paquete. Dirección IP de Destino: 32 bits Esta dirección es la del host que recibirá la información. Los routers o gateways intermedios deben conocerla para dirigir correctamente el paquete. Opciones: Variable. Aunque no es obligatoria la utilización de este campo, cualquier nodo debe ser capaz de interpretarlo. Puede contener un número indeterminado de opciones, que tendrán dos posibles formatos: 1. Simple: Un sólo octeto indicando el "Tipo de Opción": El Tipo de Opción está dividido en 3 campos: a) Indicador de Copia: 1 bit. En caso de fragmentación, la Opción se copiará o no a cada nuevo fragmento según el valor de este campo: 0 = no se copia, 1 = se copia. b) Clase de Opción: 2 bits. Las posibles clases son: 0 = control, 1 = reservada, 2 = depuración y mediciones, 3 = reservada. c) Número de Opción: 5 bits. Identificador de la Opción. 2. Compuesto: Un octeto para "Tipo de Opción", otro para "Tamaño de Opción", y uno o más octetos conformando los "Datos de Opción". El Tamaño de Opción incluye el octeto de Tipo de Opción, el de Tamaño de Opción y la suma de los octetos de datos. 14

16 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP La siguiente tabla muestra las opciones actualmente definidas: Clase Número Tamaño Descripción Final de lista de opciones. Formato simple Ninguna operación (NOP). Formato simple Seguridad. 0 3 variable Enrutado desde el Origen, abierto (Loose Source Routing). 0 9 variable Enrutado desde el Origen, estricto (Strict Source Routing). 0 7 variable Registro de Ruta (Record Route) Identificador de flujo (Stream ID). 2 4 variable Marca de tiempo (Internet Timestamping). Final de Lista de Opciones: Se usa al final de la lista de opciones, si ésta no coincide con el final de la cabecera IP. Ninguna Operación (NOP): Se puede usar para forzar la alineación de las opciones en palabras de 32 bits. Seguridad: Especifica niveles de seguridad que van desde "No Clasificado" hasta "Máximo Secreto", definidos por la Agencia de Seguridad de la Defensa (de EE.UU.). Enrutado desde el Origen (abierto) y Registro de Ruta (LSSR): Esta opción provee el mecanismo para que el originador de un datagrama pueda indicar el itinerario que ha de seguir a través de la red y para registrar el camino seguido. Los Datos de Opción consisten en un puntero (un octeto) y una lista de direcciones IP (4 octetos cada una) que se han de alcanzar ("procesar"): El puntero indica la posición de la siguiente dirección de la ruta, dentro de la Opción; así, su valor mínimo es de 4. Cuando un nodo de Internet procesa la dirección de la lista apuntada por el puntero (es decir, se alcanza esa dirección) incrementa el puntero en 4, y redirige el paquete a la siguiente dirección. Si el puntero llega a ser mayor que el Tamaño de Opción significa que la información de ruta se ha procesado y registrado completamente y se redirigirá el paquete a su dirección de destino. Si se alcanza la dirección de destino antes de haber procesado la lista de direcciones completa (el puntero es menor que el Tamaño de Opción) la siguiente dirección de la lista reemplaza a la dirección de destino del paquete y es a su vez reemplazada por la dirección del nodo que está procesando el datagrama ("Ruta Registrada"), incrementando, además, el puntero en 4. Utilizando este método de sustituir la dirección especificada en origen por la Ruta Registrada se asegura que el tamaño de la Opción (y de la cabecera IP) no varía durante su recorrido por la red. 15

17 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Se considera que la ruta especificada por el originador es "abierta" porque cualquier nodo que procesa el paquete es libre de dirigirlo a la siguiente dirección siguiendo cualquier otra ruta intermedia. Sólo puede usarse una vez en un datagrama, y, en caso de fragmentación, la opción se copiará a los paquetes resultantes. Enrutado desde el Origen (estricto) y Registro de Ruta (SSRR): Exactamente igual que LSSR, excepto en el tratamiento que los nodos harán de este datagrama. Al ser la ruta especificada "estricta", un nodo debe reenviar el paquete directamente a la siguiente dirección, es decir, no podrá redireccionarlo por otra red. Registro de Ruta: Mediante el uso de esta Opción se puede registrar el itinerario de un datagrama. Los Datos de Opción consisten en un puntero (un octeto) y un espacio relleno de ceros que contendrá la Ruta Registrada para el paquete. Cuando un nodo recibe un paquete en el que está presente esta opción, escribirá su dirección IP en la posición indicada por el puntero, siempre que ésta sea menor que el Tamaño de Opción, e incrementará el puntero en 4. Es preciso que el espacio reservado para la Ruta Registrada tenga una longitud múltiplo de 4; si al intentar grabar su dirección un nodo detecta que existe espacio libre pero es menor de 4 octetos, el paquete no se reenvía (se pierde) y se notifica el error, mediante ICMP, al originador del datagrama. Esta Opción no se copia en caso de fragmentación, y sólo puede aparecer una vez en un paquete. Relleno: Variable. Utilizado para asegurar que el tamaño, en bits, de la cabecera es un múltiplo de 32. El valor usado es el La Dirección De Internet El protocolo IP identifica a cada computadora que se encuentre conectada a la red mediante su correspondiente dirección. Esta dirección es un número de 32 bits que debe ser único para cada host, y normalmente suele representarse como cuatro cifras de 8 bits separadas por puntos. La dirección de Internet (IP Address) se utiliza para identificar tanto a la computadora en concreto como la red a la que pertenece, de manera que sea posible distinguir a las computadoras que se encuentran conectados a una misma red. Con este propósito, y teniendo en cuenta que en Internet se encuentran conectadas redes de tamaños muy diversos, se establecieron tres clases diferentes de direcciones, las cuales se representan mediante tres rangos de valores: Clase A: Son las que en su primer byte tienen un valor comprendido entre 1 y 126, incluyendo ambos valores. Estas direcciones utilizan únicamente este primer byte para identificar la red, quedando los otros tres bytes disponibles para cada uno de los hosts que pertenezcan a esta misma red. Esto significa que podrán existir más de dieciséis millones de computadoras en cada una de las redes de esta clase. Este tipo de direcciones es usado por 16

18 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP redes muy extensas, pero hay que tener en cuenta que sólo puede haber 126 redes de este tamaño. ARPAnet es una de ellas, existiendo además algunas grandes redes comerciales, aunque son pocas las organizaciones que obtienen una dirección de "clase A". Lo normal para las grandes organizaciones es que utilicen una o varias redes de "clase B". Clase B: Estas direcciones utilizan en su primer byte un valor comprendido entre 128 y 191, incluyendo ambos. En este caso el identificador de la red se obtiene de los dos primeros bytes de la dirección, teniendo que ser un valor entre y (no es posible utilizar los valores 0 y 255 por tener un significado especial). Los dos últimos bytes de la dirección constituyen el identificador del host permitiendo, por consiguiente, un número máximo de computadoras en la misma red. Este tipo de direcciones tendría que ser suficiente para la gran mayoría de las organizaciones grandes. En caso de que el número de computadoras que se necesita conectar fuese mayor, sería posible obtener más de una dirección de "clase B", evitando de esta forma el uso de una de "clase A". Clase C: En este caso el valor del primer byte tendrá que estar comprendido entre 192 y 223, incluyendo ambos valores. Este tercer tipo de direcciones utiliza los tres primeros bytes para el número de la red, con un rango desde hasta De esta manera queda libre un byte para el host, lo que permite que se conecten un máximo de 254 computadoras en cada red. Estas direcciones permiten un menor número de host que las anteriores, aunque son las más numerosas pudiendo existir un gran número redes de este tipo (más de dos millones). Tabla de direcciones IP de Internet. Clase Primer byte Identificación de red Identificación de hosts Número de redes Número de hosts A byte 3 byte B byte 2 byte C byte 1 byte En la clasificación de direcciones anterior se puede notar que ciertos números no se usan. Algunos de ellos se encuentran reservados para un posible uso futuro, como es el caso de las direcciones cuyo primer byte sea superior a 223 (clases D y E, que aún no están definidas), mientras que el valor 127 en el primer byte se utiliza en algunos sistemas para propósitos especiales. También es importante notar que los valores 0 y 255 en cualquier byte de la dirección no pueden usarse normalmente por tener otros propósitos específicos. El número 0 está reservado para las máquinas que no conocen su dirección, pudiendo utilizarse tanto en la identificación de red para máquinas que aún no conocen el número de red a la que se encuentran conectadas, en la identificación de host para máquinas que aún no conocen su número de host dentro de la red, o en ambos casos. El número 255 tiene también un significado especial, puesto que se reserva para el broadcast. El broadcast es necesario cuando se pretende hacer que un mensaje sea visible para todos los sistemas 17

19 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP conectados a la misma red. Esto puede ser útil si se necesita enviar el mismo datagrama a un número determinado de sistemas, resultando más eficiente que enviar la misma información solicitada de manera individual a cada uno. Otra situación para el uso de broadcast es cuando se quiere convertir el nombre por dominio de una computadora a su correspondiente número IP y no se conoce la dirección del servidor de nombres de dominio más cercano. Lo usual es que cuando se quiere hacer uso del broadcast se utilice una dirección compuesta por el identificador normal de la red y por el número 255 (todo unos en binario) en cada byte que identifique al host. Sin embargo, por conveniencia también se permite el uso del número con la misma finalidad, de forma que resulte más simple referirse a todos los sistemas de la red. El broadcast es una característica que se encuentra implementada de formas diferentes dependiendo del medio utilizado, y por lo tanto, no siempre se encuentra disponible. En ARPAnet y en las líneas punto a punto no es posible enviar broadcast, pero sí que es posible hacerlo en las redes Ethernet, donde se supone que todos las computadoras prestarán atención a este tipo de mensajes. En el caso de algunas organizaciones extensas puede surgir la necesidad de dividir la red en otras redes más pequeñas ( subnets). Como ejemplo podemos suponer una red de clase B que, naturalmente, tiene asignado como identificador de red un número de dos bytes. En este caso sería posible utilizar el tercer byte para indicar en qué red Ethernet se encuentra un host en concreto. Esta división no tendrá ningún significado para cualquier otra computadora que esté conectada a una red perteneciente a otra organización, puesto que el tercer byte no será comprobado ni tratado de forma especial. Sin embargo, en el interior de esta red existirá una división y será necesario disponer de un software de red especialmente diseñado para ello. De esta forma queda oculta la organización interior de la red, siendo mucho más cómodo el acceso que si se tratara de varias direcciones de clase C independientes TCP: Las conexiones TCP se componen de tres etapas: establecimiento de conexión, transferencia de datos y fin de la conexión. Para establecer la conexión se usa el procedimiento llamado negociación en tres pasos (3 -way handshake). Una negociación en cuatro pasos (4 -way handshake) es usada para la desconexión. Durante el establecimiento de la conexión, algunos parámetros como el número de secuencia son configurados para asegurar la entrega ordenada de los datos y la robustez de la comunicación Establecimiento De La Conexión (Negociación En Tres Pasos) Fig Negociación en tres pasos o Three-way handshake 18

20 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Aunque es posible que un par de entidades finales comiencen una conexión entre ellas simultáneamente, normalmente una de ellas abre un socket en un determinado puerto TCP y se queda a la escucha de nuevas conexiones. Es común referirse a esto como apertura pasiva, y determina el lado servidor de una conexión. El lado cliente de una conexión realiza una apertura activa de un puerto enviando un segmento SYN inicial al servidor como parte de la negociación en tres pasos. El lado servidor respondería a la petición SYN válida con un paquete SYN/ACK. Finalmente, el cliente debería responderle al servidor con un ACK, completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de conexión. Es interesante notar que existe un número de secuencia generado por cada lado, ayudando de este modo a que no se puedan establecer conexiones falseadas (spoofing) Transferencia De Datos Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la fiabilidad y robustez del protocolo. Entre ellos están incluidos el uso del número de secuencia para ordenar los segmentos TCP recibidos y detectar paquetes duplicados, checksums para detectar errores, y asentimientos y temporizadores para detectar pérdidas y retrasos. Durante el establecimiento de conexión TCP, los números iniciales de secuencia son intercambiados entre las dos entidades TCP. Estos números de secuencia son usados para identificar los datos dentro del flujo de bytes, y poder identificar (y contar) los bytes de los datos de la aplicación. Siempre hay un par de números de secuencia incluidos en todo segmento TCP, referidos al número de secuencia y al número de asentimiento. Un emisor TCP se refiere a su propio número de secuencia cuando habla de 1 número de secuencia, mientras que con el número de asentimiento se refiere al número de secuencia del receptor. Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando que ha recibido una parte del flujo continuo de bytes. Una mejora de TCP, llamada asentimiento selectivo (SACK, selective acknowledgement) permite a un receptor TCP asentir los datos que se han recibido de tal forma que el remitente solo retransmita los segmentos de datos que faltan. A través del uso de números de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en el orden correcto dentro del flujo de bytes a la aplicación receptora. Los números de secuencia son de 32 bits (sin signo), que vuelve a cero tras el siguiente byte después del Una de las claves para mantener la robustez y la seguridad de las conexiones TCP es la selección del número inicial de secuencia (ISN, Initial Sequence Number). Un checksum de 16 bits, consistente en el complemento a uno de la suma en complemento a uno del contenido de la cabecera y datos del segmento TCP, es calculado por el emisor, e incluido en la transmisión del segmento. Se usa la suma en complemento a uno porque el acarreo final de ese método puede ser calculado en cualquier múltiplo de su tamaño (16 -bit, 32-bit, 64-bit...) y el resultado, una vez plegado, será el mismo. El receptor TCP recalcula el checksum sobre las cabeceras y datos recibidos. El complemento es usado para que el receptor no tenga que poner a cero el campo del checksum de la cabecera antes de hacer los cálculos, salvando en algún lugar el valor del checksum recibido; en vez de eso, el receptor simplemente calcula la suma en complemento a uno con el checksum incluido, y el resultado debe ser 0. Si es así, se asume que el segmento ha llegado intacto y sin errores. 19

21 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Hay que fijarse en que el checksum de TCP también cubre los 96 bits de la cabecera que contiene la dirección origen, la dirección destino, el protocolo y el tamaño TCP. Esto proporciona protección contra paquetes mal dirigidos por errores en las direcciones. El checksum de TCP es una comprobación bastante débil. En niveles de enlace con una alta probabilidad de error de bit quizá requiera una capacidad adicional de corrección/detección de errores de enlace. Si TCP fuese rediseñado hoy, muy probablemente tendría un código de redundancia cíclica (CRC) para control de errores en vez del actual checksum. La debilidad del checksum está parcialmente compensada por el extendido uso de un CRC en el nivel de enlace, bajo TCP e IP, como el usado en el PPP o en Ethernet. Sin embargo, esto no significa que el checksum de 16 bits es redundante: sorprendentemente, inspecciones sobre el tráfico de Internet han mostrado que son comunes los errores de software y hardware que introducen errores en los paquetes protegidos con un CRC, y que el checksum de 16 bits de TCP detecta la mayoría de estos errores simples. Los asentimientos de los datos enviados o la falta de ellos, son usados por los emisores para interpretar las condiciones de la red entre el emisor y receptor TCP. Unido a los temporizadores, los emisores y receptores TCP pueden alterar el comportamiento del movimiento de datos. TCP usa una serie de mecanismos para conseguir un alto rendimiento y evitar la congestión de la red (la idea es enviar tan rápido como el receptor pueda recibir). Estos mecanismos incluyen el uso de ventana deslizante, algoritmo de comienzo lento, algoritmo de control de congestión, la retransmisión rápida, la recuperación rápida, y más Tamaño De Ventana TCP El tamaño de la ventana de recepción TCP es la cantidad de datos recibidos (en bytes) que pueden ser metidos en el buffer de recepción durante la conexión. La entidad emisora puede enviar una cantidad determinada de datos pero antes debe esperar un asentimiento con la actualización del tamaño de ventana por parte del receptor. Un ejemplo sería el siguiente: un receptor comienza con un tamaño de ventana x y recibe y bytes, entonces su tamaño de ventana será (x - y) y el transmisor sólo podrá mandar paquetes con un tamaño máximo de datos de (x - y) bytes. Los siguientes paquetes recibidos seguirán restando tamaño a la ventana de recepción. Esta situación seguirá así hasta que la aplicación receptora recoja los datos del buffer de recepción Escalado De Ventana Para una mayor eficiencia en redes de gran ancho de banda, debe ser usado un tamaño de ventana mayor. El campo TCP de tamaño de ventana controla el movimiento de datos y está limitado a 16 bits, es decir, a un tamaño de ventana de bytes. Como el campo de ventana no puede expandirse se usa un factor de escalado. La escala de ventana TCP (TCP window scale) es una opción usada para incrementar el máximo tamaño de ventana desde bytes, a 1 Gigabyte. La opción de escala de ventana TCP es usada solo durante la negociación en tres pasos que constituye el comienzo de la conexión. El valor de la escala representa el número de bits 20

22 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP desplazados a la izquierda de los 16 bits que forman el campo del tamaño de ventana. El valor de la escala puede ir desde 0 (sin desplazamiento) hasta 14. Hay que recordar que un número binario desplazado un bit a la izquierda es como multiplicarlo en base decimal por Fin De La Conexión Fig Cierre de una conexión según el estándar La fase de finalización de la conexión usa una negociación en cuatro pasos (four-way handshake), terminando la conexión desde cada lado independientemente. Cuando uno de los dos extremos de la conexión desea parar su "mitad" de conexión transmite un paquete FIN, que el otro interlocutor asentirá con un ACK. Por tanto, una desconexión típica requiere un par de segmentos FIN y ACK desde cada lado de la conexión. Una conexión puede estar "medio abierta" en el caso de que uno de los lados la finalice pero el otro no. El lado que ha dado por finalizada la conexión no puede enviar más datos pero la otra parte si podrá Puertos TCP TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexión TCP tiene asociado un número de puerto (de 16 bits sin signo, con lo que existen puertos posibles) asignado por la aplicación emisora o receptora. Los puertos son clasificados en tres categorías: 1. Bien conocidos 2. Registrados y 3. Dinámicos/privados. Los puertos bien conocidos son asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados normalmente por el sistema o por procesos con privilegios. Las aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan a la escucha de conexiones. Algunos ejemplos son: FTP (21), SSH (22), Telnet (23), SMTP (25) y HTTP (80). Los puertos registrados son normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero también pueden representar servicios que hayan sido registrados por un tercero. 21

23 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Los puertos dinámicos/privados también pueden ser usados por las aplicaciones de usuario, pero este caso es menos común. Los puertos dinámicos/privados no tienen significado fuera de la conexión TCP en la que fueron usados. 1.7 En Que Se Utiliza TCP/IP Muchas grandes redes han sido implementadas con estos protocolos, incluyendo DARPA Internet "Defense Advanced Research Projects Agency Internet", en español, Red de la Agencia de Investigación de Proyectos Avanzados de Defensa. De igual forma, una gran variedad de universidades, agencias gubernamentales y empresas de computadoras, están conectadas mediante los protocolos TCP/IP. Cualquier máquina de la red puede comunicarse con otra distinta y esta conectividad permite enlazar redes físicamente independientes en una red virtual llamada Internet. TCP/IP proporciona la base para muchos servicios útiles, incluyendo correo electrónico, transferencia de ficheros y login remoto. El correo electrónico está diseñado para transmitir ficheros de texto pequeños. Las utilidades de transferencia sirven para transferir ficheros muy grandes que contengan programas o datos. También pueden proporcionar chequeos de seguridad controlando las transferencias. El login remoto permite a los usuarios de una computadora acceder a una máquina remota y llevar a cabo una sesión interactiva. 1.8 Similitudes Y Diferencias Entre La Clase 4 Del Modelo OSI Y TCP El protocolo de transporte de clase 4 del modelo OSI (al que con frecuencia se le llama TP4), y TCP tienen numerosas similitudes, pero también algunas diferencias. A continuación se dan a conocer los puntos en que los dos protocolos son iguales. Los dos protocolos están diseñados para proporcionar un servicio de transporte seguro, orientado a conexión y de extremo a extremo, sobre una red insegura, que puede perder, dañar, almacenar y duplicar paquetes. Los dos deben enfrentarse a los peores problemas como sería el caso de una subred que pudiera almacenar una secuencia válida de paquetes y más tarde volviera a entregarlos. Los dos protocolos también son semejantes por el hecho de que los dos tienen una fase de establecimiento de conexión, una fase de transferencia de datos y después una fase de liberación de la conexión. Los conceptos generales del establecimiento, uso y liberación de conexiones también son similares, aunque difieren en algunos detalles. En particular, tanto TP4 como TCP utilizan la comunicación ida-vuelta-ida para eliminar las dificultades potenciales ocasionadas por paquetes antiguos que aparecieran súbitamente y pudiesen causar problemas. Sin embargo, los dos protocolos también presentan diferencias muy notables. Primero, TP4 utiliza nueve tipos diferentes de TPDU, en tanto que TCP sólo tiene uno. Esta diferencia trae como resultado que TCP sea más sencillo, pero al mismo tiempo también necesita una cabecera más grande, porque todos los campos deben estar presentes en todas las TPDU. El mínimo tamaño de la cabecera TCP es de 20 octetos; el mínimo tamaño de la cabecera TP4 es de 5 octetos. Los dos protocolos permiten campos opcionales, que pueden incrementar el tamaño de las cabeceras por encima del mínimo permitido. 22

24 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP La siguiente tabla muestra las diferencias entre el protocolo tp4 del modelo OSI y TCP CARACTERÍSTICA OSI TP4 TCP Numero de tipos de TPDU 9 1 Fallo de Conexión 2 conexiones 1 conexión Formato de direcciones No está definido 32 bits Calidad de servicio Extremo abierto Opciones específicas Datos del usuario en CR Permitido No permitido Flujo Mensajes Octetos Datos importantes Acelerados Acelerados Superposición No Sí Control de flujo explícito Algunas veces Siempre Número de subsecuencia Permitidos No Permitido Liberación Abrupta Ordenada Una segunda diferencia es con respecto a lo que sucede cuando los dos procesos, en forma simultánea, intentan establecer conexiones entre los mismos dos TSAP (es decir, una colisión de conexiones). Con TP4 se establecen dos conexiones duplex independientes; en tanto que con TCP, una conexión se identifica mediante un par de TSAP, por lo que solamente se establece una conexión. Una tercera diferencia es con respecto al formato de direcciones que se utiliza. TP4 no especifica el formato exacto de una dirección TSAP; mientras que TCP utiliza números de 32 bits. El concepto de calidad de servicio también se trata en forma diferente en los dos protocolos, constituyendo la cuarta diferencia. TP4 tiene un mecanismo de extremo abierto, bastante elaborado, para una negociación a tres bandas sobre la calidad de servicio. Esta negociación incluye al proceso que hace la llamada, al proceso que es llamado y al mismo servicio de transporte. Se pueden especificar muchos parámetros, y pueden proporcionarse los valores: deseado y mínimo aceptable. A diferencia de esto, TCP no tiene ningún campo de calidad de servicio, sino que el servicio subyacente IP tiene un campo de 8 bits, el cual permite que se haga una relación a partir de un número limitado de combinaciones de velocidad y seguridad. Las cuatro diferencias anteriores se relacionan con la fase de establecimiento de la conexión. Las cinco siguientes se relacionan con la fase de transferencia de datos. Una quinta diferencia es que TP4 permite que los datos del usuario sean transportados en la TPDU CR, pero TCP no permite que los datos del usuario aparezcan en la TPDU inicial. El dato inicial (como por ejemplo, una contraseña), podría ser necesario para decidir si se debe, o no, establecer una conexión. Con TCP no es posible hacer que el establecimiento dependa de los datos del usuario. 23

25 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Una diferencia básica es el modelo del transporte de datos. El modelo TP4 es el de una serie de mensajes ordenados (correspondientes a las TSDU en la terminología OSI). El modelo TCP es el de un flujo continuo de octetos, sin que haya ningún límite explícito entre mensajes. En la práctica, sin embargo, el modelo TCP no es realmente un flujo puro de octetos, porque el procedimiento de biblioteca denominado push puede llamarse para sacar todos los datos que estén almacenados, pero que todavía no se hayan transmitido. Cuando el usuario remoto lleva a cabo una operación de lectura, los datos anteriores y posteriores al push no se combinarán, por lo que, en cierta forma un push podría penarse como si definiesen una frontera entre mensajes. La séptima diferencia se ocupa de cómo son tratados los datos importantes que necesitan de un procesamiento especial (como los caracteres BREAK). TP4 tiene dos flujos de mensajes independientes, los datos normales y los acelerados multiplexados de manera conjunta. En cualquier instante únicamente un mensaje acelerado puede estar activo. TCP utiliza el campo Acelerado para indicar que cierta cantidad de octetos, dentro de la TPDU actualmente en uso, es especial y debería procesarse fuera de orden. La octava diferencia es la ausencia del concepto de superposición en TP4 y su presencia en TCP. Esta diferencia no es tan significativa como al principio podría parecer, dado que es posible que una entidad de transporte ponga dos TPDU, por ejemplo, DT y AK en un único paquete de red. La novena diferencia se relaciona con la forma como se trata el control de flujo. TP4 puede utilizar un esquema de crédito, pero también se puede basar en el esquema de ventana de la capa de red para regular el flujo. TCP siempre utiliza un mecanismo de control de flujo explícito con el tamaño de la ventana especificado en cada TPDU. La décima diferencia se relaciona con este esquema de ventana. En ambos protocolos el receptor tiene la capacidad de reducir la ventana en forma voluntaria. Esta posibilidad genera potencialmente problemas, si el otorgamiento de una ventana grande y su contracción subsiguiente llegan en un orden incorrecto. En TCP no hay ninguna solución para este problema; en tanto en TP4 éste se resuelve por medio del número de subsecuencia que está incluido en la contracción, permitiendo de esta manera que el emisor determine si la ventana pequeña siguió, o precedió, a la más grande. Finalmente, la onceava y última diferencia existente entre los dos protocolos, consiste en la manera como se liberan las conexiones. TP4 utiliza una desconexión abrupta en la que una serie de TPDU de datos pueden ser seguidos directamente por una TPDU DR. Si las TPDU de datos se llegaran a perder, el protocolo no los podría recuperar y la información, al final se perdería. TCP utiliza una comunicación de ida-vuelta-ida para evitar la pérdida de datos en el momento de la desconexión. El modelo OSI trata este problema en la capa de sesión. Es importante hacer notar que la Oficina Nacional de Normalización de Estados Unidos estaba tan disgustada con esta propiedad de TP4, que introdujo TPDU adicionales en el protocolo de transporte para permitir la desconexión sin que hubiera una pérdida de datos. Como consecuencia de esto, las versiones de Estados Unidos y la internacional de TP4 son diferentes. Es importante señalar que el protocolo IP explicado anteriormente, o mejor dicho la versión de éste es la más utilizada actualmente, pero hace muy poco tiempo salió una nueva versión llamada la número 6. Las diferencias no son muchas, pero mejoran muchos aspectos de la antigua, ésta no es muy utilizada, pero creemos que es necesario explicar como funciona, para poder hacer una comparación con la antigua. A continuación la trataremos. 24

26 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP 1.9 La Nueva Versión De IP (IPng) La nueva versión del protocolo IP recibe el nombre de IPv6, aunque es también conocido comúnmente como IPng ( Internet Protocol Next Generation). El número de versión de este protocolo es el 6 (que es utilizada en forma mínima) frente a la antigua versión utilizada en forma mayoritaria. Los cambios que se introducen en esta nueva versión son muchos y de gran importancia, aunque la transición desde la versión antigua no debería ser problemática gracias a las características de compatibilidad que se han incluido en el protocolo. IPng se ha diseñado para solucionar todos los problemas que surgen con la versión anterior, y además ofrecer soporte a las nuevas redes de alto rendimiento (como ATM, Gigabit Ethernet, etc.) Una de las características más llamativas es el nuevo sistema de direcciones, en el cual se pasa de los 32 a los 128 bit, eliminando todas las restricciones del sistema actual. Otro de los aspectos mejorados es la seguridad, que en la versión anterior constituía uno de los mayores problemas. Además, el nuevo formato de la cabecera se ha organizado de una manera más efectiva, permitiendo que las opciones se sitúen en extensiones separadas de la cabecera principal Formato De La Cabecera El tamaño de la cabecera que el protocolo IPv6 añade a los datos es de 320 bits, el doble que en la versión antigua. Sin embargo, esta nueva cabecera se ha simplificado con respecto a la anterior. Algunos campos se han retirado de la misma, mientras que otros se han convertido en opcionales por medio de las extensiones. De esta manera los routers no tienen que procesar parte de la información de la cabecera, lo que permite aumentar de rendimiento en la transmisión. El formato completo de la cabecera sin las extensiones es el siguiente: Versión: Número de versión del protocolo IP, que en este caso contendrá el valor 6. Tamaño: 4 bits. Prioridad: Contiene el valor de la prioridad o importancia del paquete que se está enviando con respecto a otros paquetes provenientes de la misma fuente. Tamaño: 4 bits. Etiqueta de flujo: Campo que se utiliza para indicar que el paquete requiere un tratamiento especial por parte de los routers que lo soporten. Tamaño: 24 bits. Longitud: Es la longitud en bytes de los datos que se encuentran a continuación de la cabecera. Tamaño: 16 bits. Siguiente cabecera: Se utiliza para indicar el protocolo al que corresponde la cabecera que se sitúa a continuación de la actual. El valor de este campo es el mismo que el de protocolo en la versión 4 de IP. Tamaño: 8 bits. Límite de existencia: Tiene el mismo propósito que el campo de la versión 4, y es un valor que disminuye en una unidad cada vez que el paquete pasa por un nodo. Tamaño: 8 bits. Dirección de origen: El número de dirección del host que envía el paquete. Su longitud es cuatro veces mayor que en la versión 4. Tamaño: 128 bits. Dirección de destino: Número de dirección de destino, aunque puede no coincidir con la dirección del host final en algunos casos. Su longitud es cuatro veces mayor que en la versión 4 del protocolo IP. Tamaño: 128 bits. 25

27 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP Versión Prioridad Etiqueta de flujo Longitud Siguiente Cabecera Dirección de origen Dirección de destino Límite de existencia Fig Organización de la cabecera IPv6. Las extensiones que permiten añadir esta versión del protocolo se sitúan inmediatamente después de la cabecera normal, y antes de la cabecera que incluye el protocolo de nivel de transporte. Los datos situados en cabeceras opcionales se procesan sólo cuando el mensaje llega a su destino final, lo que supone una mejora en el rendimiento. Otra ventaja adicional es que el tamaño de la cabecera no está limitado a un valor fijo de bytes como ocurría en la versión 4. Por razones de eficiencia, las extensiones de la cabecera siempre tienen un tamaño múltiplo de 8 bytes. Actualmente se encuentran definidas extensiones para routing extendido, fragmentación y ensamblaje, seguridad, confidencialidad de datos, etc Direcciones En La Versión 6 El sistema de direcciones es uno de los cambios más importantes que afectan a la versión 6 del protocolo IP, donde se han pasado de los 32 a los 128 bit (cuatro veces mayor). Estas nuevas direcciones identifican a un interfaz o conjunto de interfaces y no a un nodo, aunque como cada interfaz pertenece a un nodo, es posible referirse a éstos a través de su interfaz. El número de direcciones diferentes que pueden utilizarse con 128 bits es enorme. Teóricamente serían direcciones posibles, siempre que no apliquemos algún formato u organización a estas direcciones. Este número es extremadamente alto, pudiendo llegar a soportar más de 665,000 trillones de direcciones distintas por cada metro cuadrado de la superficie del planeta Tierra. Según diversas fuentes consultadas, estos números una vez organizados de forma práctica y jerárquica quedarían reducidos en el peor de los casos a 1,564 direcciones por cada metro cuadrado, y siendo optimistas se podrían alcanzar entre los tres y cuatro trillones. Existen tres tipos básicos de direcciones IPng según se utilicen para identificar a un interfaz en concreto o a un grupo de interfaces. Los bits de mayor peso de los que componen la dirección IPng son los que permiten distinguir el tipo de dirección, empleándose un número variable de bits para cada caso. Estos tres tipos de direcciones son: Direcciones unicast: Son las direcciones dirigidas a un único interfaz de la red. Las direcciones unicast que se encuentran definidas actualmente están divididas en varios grupos. Dentro de este tipo de direcciones se encuentra también un formato especial que facilita la compatibilidad con las direcciones de la versión 4 del protocolo IP. Direcciones anycast: Identifican a un conjunto de interfaces de la red. El paquete se enviará a un interfaz cualquiera de las que forman parte del conjunto. Estas direcciones son en realidad direcciones unicast que se encuentran asignadas a varios interfaces, los cuales 26

28 UNIDAD I. PROTOCOLO DE COMUNICACIÓN TCP/IP necesitan ser configurados de manera especial. El formato es el mismo que el de las direcciones unicast. Direcciones multicast: Este tipo de direcciones identifica a un conjunto de interfaces de la red, de manera que el paquete es enviado a cada una de ellos individualmente. Las direcciones de broadcast no están implementadas en esta versión del protocolo, debido a que esta misma función puede realizarse ahora mediante el uso de las direcciones multicast. 27

29 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA UNIDAD 2 GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA 2.1 Introducción Se ha dicho que si los antiguos Romanos, con su civilización y conocimiento avanzados de las ciencias, hubieran podido desarrollar el motor de vapor, el curso de la historia habría sido diferente. El desarrollo del motor eléctrico en épocas modernas ha indicado la verdad en esta teoría. El desarrollo del motor eléctrico nos ha dado los medios más eficientes y más eficaces para realizar un trabajo. Con el motor eléctrico hemos podido reducir notablemente el trabajo que realiza el hombre para su supervivencia, además, hemos podido construir una civilización que ahora está alcanzando las estrellas. El motor eléctrico es un dispositivo simple en principio, convierte energía eléctrica en energía mecánica. Al paso de los años, los motores eléctricos han cambiado substancialmente en diseño, no obstante los principios básicos de operación han seguido siendo iguales. En esta sección, mencionaremos los principios básicos del motor, los fenómenos del magnetismo, operación actual y básica de los motores de C. A. 2.2 Magnetismo Antes de describir los principios básicos del motor, daremos una revisión del magnetismo. Todos sabemos que un imán permanente atraerá objetos de metal cuando el objeto está cerca o en contacto con dicho el imán. El imán puede hacer esta función permanente debido a su fuerza magnética inherente, referida como "campo magnético". En la Figura 2.1, el campo magnético de dos imanes permanentes es representado por las "líneas del flujo". Estas líneas del flujo nos ayudan a visualizar el campo magnético de cualquier imán aunque representan solamente fenómenos invisibles. El número de líneas del flujo varía a partir de un campo magnético a otro. Cuanto más fuerte es el campo magnético, mayor es el número de las líneas del flujo que se dibujan para representar el campo magnético. Las líneas del flujo se dibujan con una dirección indicada puesto que debemos visualizar estas líneas y el campo magnético que representan movimientos que van del polo N al polo S, según lo demostrado en la Figura 2.1. Un campo magnético similar, se produce alrededor de un conductor eléctrico, cuando circula corriente eléctrica a través de él, según lo demostrado en la Figura 2.2-a. Estas líneas del flujo definen el campo magnético y están en la forma de círculos concéntricos alrededor del alambre. La vieja "regla de la mano izquierda" véase la Figura 2.2-b. indica que sí usted señala con el pulgar de su mano izquierda la dirección de la corriente, sus dedos señalarán la dirección que presenta el campo magnético. 28

30 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA Figura Las líneas del flujo de un campo magnético viajan del polo N al polo S. Figura El flujo de la corriente eléctrica en un conductor genera un campo magnético representado por las líneas concéntricas de flujo alrededor del conductor. Cuando el alambre forma una bobina (véase Figura 2.3), todas las líneas individuales del flujo producidas por cada sección del alambre forman un gran campo magnético alrededor de la bobina. Como con el imán permanente, estas líneas del flujo dejan el norte de la bobina y vuelven a entrar la bobina por el polo sur. El campo magnético de una bobina de alambre es mucho mayor que el campo magnético generado alrededor de un simple conductor antes de ser formada en una bobina. Este campo magnético alrededor de la bobina puede ser consolidado aún más colocando una base de hierro o de metal similar en el centro de la base. La base del metal presenta menos resistencia a las líneas del flujo que al aire, de tal modo la fuerza del campo puede aumentar (así es como se realiza la bobina del estator, bobina de alambre con base de acero). La ventaja de un campo magnético que sea producido por una bobina, es que cuando se invierte la corriente, los postes cambian de dirección debido al cambio de dirección flujo magnético (véase Figura 2.4). Si este fenómeno magnético no se presentara, el motor de C. A. no existiría. 29

31 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA Figura Las líneas magnéticas que circulan alrededor de un conductor salen del polo N y entran al polo S. Figura Los polos de una bobina electromagnética cambian cuando la dirección del flujo actual cambia. 2.3 Propulsión Magnética Del Motor El principio de operación de los motores se puede demostrar fácilmente usando dos electroimanes y un imán permanente. La corriente se pasa a través de la bobina No. 1 en dirección al polo Norte establecido y a través de la bobina No. 2 en dirección al polo Sur. Un imán permanente con un polo Norte y Sur es la pieza móvil de este motor simple. En la figura 2.5-a el polo Norte del imán permanente está enfrente del polo Norte del electroimán. De manera semejante, los polos Sur están uno enfrente del otro. Como los polos magnéticos iguales se rechazan, empieza a girar el imán permanente. Cuando la fuerza de atracción entre los polos opuestos llega a ser lo suficientemente fuerte, el imán permanente gira. El imán rotativo continúa cambiando de dirección hasta que los polos opuestos se alinean. En este punto el rotor normalmente se detendría por la atracción entre los polos diferentes (Figura 2.5-b). 30

32 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA Figura Propulsión magnética del motor Sí la dirección de corrientes en las bobinas electromagnéticas fue invertida repentinamente, por consiguiente se invierte la polaridad de las dos bobinas, entonces, los polos otra vez sería opuestos y se repelerían entre ellos (Figura 2.5-c). Por lo tanto, el imán permanente continuaría rotando. Si la dirección actual en las bobinas electromagnéticas fuera cambiada todo el tiempo, el imán daría vuelta 180 grados a medio camino, entonces el imán continuaría rotando. Este dispositivo sencillo es un motor en su forma más simple. Un motor real es más complejo, sin embargo, el principio es igual. 2.4 Corriente Alterna (C. A.) Cómo es que cuando se invierte la corriente en la bobina puede cambiar la polaridad de las mismas? Como usted sabe, la diferencia entre la Corriente Directa (C. D.) y la Corriente Alterna (C. A.) es que con la C. D. la corriente fluye solamente en una dirección, mientras que con la C. A. la dirección del flujo de corriente actual cambia periódicamente de dirección. En el caso de la C. A. común que se utiliza a través de la mayoría de los Estados Unidos Mexicanos, el flujo actual cambia de dirección 120 veces por segundo. Esta corriente se refiere a la C. A. de 60 ciclos" o "C. A. de 60 Hertz" en honor del Sr. Hertz quien fue la primera persona que concibió el concepto de la C. A. Otra característica del flujo de corriente actual es que puede variar en cantidad, es decir, podemos tener un flujo de 5, 10 ó 100 Amperes, por ejemplo. Con la C. D. absoluta, esto significa que el flujo actual sería de 5, 10 ó 100 Amperes continuos (véase Figura 2.6). 31

33 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA Figura Visualización de la C. D. Con la C. A. es diferente. Como usted puede imaginarse, sería bastante difícil que la corriente fluya desde el punto de vista de 100 amperes en una dirección positiva e inmediatamente después esté fluyendo con dirección negativa de igual intensidad. En lugar de eso, como la corriente se alista para cambiar de direcciones, primero disminuye hasta que alcanza el flujo cero y después se acumula gradualmente en la otra dirección (véase Figura 2.7). Observe que el flujo actual máximo (los picos de la línea) en cada dirección es más que el valor especificado (100 Amperes). Por lo tanto, el valor especificado se da como valor promedio. Realmente se llama "raíz cuadrada media". Lo que es importante en nuestro estudio de motores, es darse cuenta de que la fuerza del campo magnético producido por una bobina electromagnética de C. A., aumenta y disminuye con el incremento y disminución del flujo de corriente alterna. Figura Visualización de la C. A. 2.5 Operación Básica Del Motor De C. A. Un motor de C. A. tiene dos partes eléctricas básicas: un "estator" y un "rotor", como se muestra en la Figura 2.8. El estator está en el componente eléctrico estático. Consiste en un grupo de electroimanes individuales dispuestos de una manera tal que formen un cilindro hueco, con un polo de cada cara de los imanes hacia el centro del grupo. El término, "estator" se deriva de la palabra estática. El rotor es el componente eléctrico rotativo, el cual consiste en un grupo de electroimanes dispuestos alrededor de un cilindro, con los polos haciendo frente hacia los polos del estator. El 32

34 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA rotor, está situado obviamente dentro del estator y montado en el eje del motor. El término "rotor" se deriva de la palabra rotar. El objetivo de estos componentes del motor es hacer que el rotor gire sobre el eje del motor. Esta rotación ocurrirá debido al fenómeno magnético previamente discutido que los polos opuestos se atraen y polos iguales se rechazan. Si cambiamos progresivamente la polaridad de los polos del estator de una manera tal que su campo magnético combinado rote, entonces el rotor seguirá girando con el campo magnético del estator. Figura Componentes eléctricos básicos de un motor de CA. En la Figura 2.9 se muestra como van rotando los campos magnéticos del estator. De acuerdo con la figura, el estator tiene seis polos magnéticos y el rotor tiene dos polos. En el tiempo 1, los polos A-1 del estator y el C-2 son polos Norte y los polos opuestos, A-2 y C-1, son los polos sur. El polo S del rotor es atraído por los dos polos N del estator y el polo N del rotor es atraído por los dos polos del sur del estator. En el tiempo 2, la polaridad de los postes del estator se cambia de modo que ahora el C-2 y B-1 son los polos N y C-1 y B-2 son los polos S. Entonces el rotor se ve forzado a rotar 60 grados para alinearse con los polos del estator según lo demostrado en la figura. En el tiempo 3, B-1 y A-2 son los polos N. En el tiempo 4, A-2 y C-1 son los polos N. Mientras que se realiza cada cambio, los polos del rotor son atraídos por los polos opuestos en el estator. Así, como el campo magnético del estator rota, el rotor se ve forzado a rotar con él. Figura Rotación del campo magnético de un motor de C. A. 33

35 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA Una forma para producir un campo magnético que rota en el estator de un motor de C. A. es utilizar una fuente de alimentación trifásica para las bobinas del estator. Se preguntará Qué es la energía trifásica? La respuesta a esa pregunta puede ser entendida mejor si primero examinamos la energía monofásica. La figura 2.7 muestra la energía monofásica. El generador de C. A. asociado produce justamente un flujo de corriente eléctrica cuya dirección e intensidad descienden según lo indicado por la línea continua de la gráfica. Del tiempo 0 al tiempo 3, la corriente fluye en el conductor en dirección positiva. Del tiempo 3 al tiempo 6, la corriente fluye en dirección negativa. En cualquier tiempo, la corriente fluye solamente en una dirección. Pero algunos generadores producen flujos en tres fases separadas en el mismo circuito. A esto se refiere la energía trifásica. En ningún instante, sin embargo, la dirección y la intensidad de cada flujo actual separado no es igual al de las otras fases (véase Figura 2.10). Las tres fases separadas (flujos actuales) se etiquetan A, B y C. En el tiempo 1, suponga que la fase A está en los Amperes cero, la fase B está cerca de su amperaje máximo y fluye en dirección positiva, y la fase C está cerca a su amperaje máximo pero fluye en dirección negativa. En el tiempo 2, el amperaje de la fase A está aumentando y el flujo es positivo, el amperaje de la fase B está disminuyendo y su flujo sigue siendo negativo, y la fase C ha caído a los amperes cero. Un ciclo completo (a partir de cero al máximo en una dirección, de cero al máximo en la otra dirección, y de nuevo a cero) toma una revolución completa del generador. Por lo tanto, un ciclo completo, se dice que tiene 360 grados eléctricos. En la figura 2.10, vemos que cada fase está desplazada 120 grados a partir de las otras dos fases. Por lo tanto, decimos que son 120 grados fuera de fase. Figura Patrón de fases separadas de la energía trifásica Para producir un campo magnético que rota en el estator de un motor de C. A. trifásico, se necesita que las bobinas del estator estén correctamente conectadas a la fuente de alimentación de corriente. La conexión para un estator de 6 postes se muestra en la Figura Cada fase de la fuente de alimentación trifásica está conectada con los polos opuestos y las bobinas asociadas se bobinan en la 34

36 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA misma dirección. Como usted recordará, en la Figura 2.4, la polaridad de los polos del electroimán es determinada por la dirección de la corriente que circula por la bobina. Por consiguiente, si dos electroimanes opuestos del estator se bobinan en la misma dirección, la polaridad de los polos opuestos debe de estar enfrente. Por lo tanto, cuando el polo A1 es N, el polo A2 es S. Cuando el polo B1 es N, B2 es S y así sucesivamente. Figura Método para conectar energía trifásica con un estator de seis polos. La Figura 2.12 muestra cómo se produce el campo magnético que rota. En el tiempo 1, el flujo actual en los polos de la fase "A" es positivo y el polo A-1 es N. El flujo actual en los polos de la fase "C" es negativo, haciendo C-2 un polo N y C-1 el polo S. No hay flujo actual en la fase "B", así que estos polos no se magnetizan. En el tiempo 2, las fases han cambiado de puesto 60 grados, haciendo los postes C-2 y B-1 N y C-1 y B-2 ambos polos S. Así, el flujo magnético produce el cambio de polaridad en las bobinas provocando que los polos resultantes N y S se muevan a la derecha alrededor del estator, lo que resulta en una rotación del campo magnético. Por lo tanto, el rotor actúa como un imán de barra arrastrado por el campo magnético que rota. Figura Cómo la energía trifásica produce un campo magnético que rota. 35

37 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA Hasta este punto poco se ha dicho acerca del rotor. En los ejemplos anteriores, se ha asumido que los polos del rotor son bobinas como los polos del estator provistos con C. D. para crear polos fijos en polaridad. Así es exactamente cómo funciona un motor de C. A. síncrono. Sin embargo, la mayoría de los motores de C. A. que son utilizados actualmente no son motores síncronos. En lugar de eso, los motores de inducción son los que prevalecen en la industria. Cuál es la diferencia del motor de inducción? La gran diferencia es la manera en la que se provee la corriente al rotor. Ésta no es ninguna fuente de alimentación externa, en lugar de eso, se utiliza la técnica de inducción, la cual es un fenómeno natural que ocurre cuando un conductor (las barras de aluminio en el caso de un rotor, véase el Figura 2.13) se mueve a través de un campo magnético existente o cuando un campo magnético se pasa a un conductor. En cualquier caso, el movimiento relativo provoca que la corriente eléctrica circule por el conductor. Esto se refiere al flujo actual "inducido". En otras palabras, en un motor de inducción el flujo actual del rotor no es causado por cualquier conexión directa de los conductores a una fuente de voltaje, sino por la influencia de los conductores del rotor que provocan el corte de las líneas del flujo producidas por los campos magnéticos del estator. La corriente inducida que se produce en el rotor da lugar a un campo magnético alrededor de los conductores del rotor según lo mostrado en la Figura Este campo magnético alrededor de cada conductor del rotor hará que cada conductor actúe como un imán permanente (véase Figura 2.9). Como el campo magnético del estator alterna debido al efecto de suministro de C. A. trifásica, el campo magnético inducido del rotor será atraído y seguirá la rotación. El rotor está conectado con el eje del motor, así que el eje rotará y conducirá la carga de la conexión. Así es como funciona un motor. Figura Construcción de un rotor del motor de inducción de la CA. Figura Cómo el voltaje se induce en el rotor, dando por resultado flujo actual en los conductores del rotor. 36

38 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA 2.6 Comparación De Las Características De Los Motores De C. A. Y C. D. Como los motores de C. A. continúan siendo usados en aplicaciones que tradicionalmente se emplean los motores de C. D., es apropiado mencionar algunas de las características que presentan estos motores, tales como: construcción típica, fuerza de torsión, circuitos equivalentes, rangos de carga y velocidad, etc. Esta comparación también resaltará algunas de las ventajas y desventajas de cada tipo de motor en aplicaciones con velocidad variable. Además, se podrá observar que los motores de C. D. se han venido sustituyendo por motores de C. A. en aplicaciones donde se requiere trabajos con velocidad variable, por lo que es necesario comprender los motores de C. A., de tal manera que podamos optimizarlos en este tipo de aplicaciones. En esta sesión se presentan comparaciones específicas de las características individuales de los motores de C. A. y C. D., basadas en el tipo de tecnología (leyes físicas) en comparación con las históricas (estandarización, aplicaciones, etc.). La base de comparación será un motor de C. D., 4 polos con campos excitados individualmente, contra un motor de inducción C. A., 4 polos, 3 fases y tipo jaula de ardilla Construcción Rápidamente miremos algunas de las construcciones básicas de los motores de la C. A. y C. D. Usted verá, que algunas generalidades pueden aplicarse con respecto a diferencias en la construcción, sin embargo hay muchas excepciones, mientras que muchos de los motores de C. A. utilizan un marco del hierro fundido, con bases de montaje integradas al marco (Figura 2.15), también existen motores de C. A. con bases de sujeción montadas en la carcaza (Figura 16). Figura Motor de C. A. con base integrada al marco del hierro fundido Figura Motor de C. A. con bases de sujeción integradas a la carcaza De la misma manera, mientras que muchos motores de la C. D. tienen las bases de montaje como parte de la carcaza (Figura 2.17), otros utilizan bases integradas al marco del motor (Figura 2.18). 37

39 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA Figura Motor de C. D. con bases integradas a la carcaza Figura Motor de C. D. con bases integradas al marco Con la proliferación de las fuentes de energía estáticas para controlar motores de C. D., la construcción del marco laminado (Figura 2.19) llegó a ser po pular. Los motores de C. A. utilizan fuentes electrónicas de energía, por lo que la construcción del marco laminado (Figura 2.20) es considerada para el creciente uso de motores de C. A. (especialmente para usos con variadores de velocidad). Figura Motor de C. D. que utiliza un marco laminado Figura Motor de C. D. que utiliza un marco laminado Terminología Cada uno de los términos indicados en la sección de motores eléctricos se referirá a piezas o partes de los motores indicados en las Figuras

40 UNIDAD 2. GENERALIDADES DEL MOTOR DE CORRIENTE ALTERNA Figura Componentes del Motor de C. A. Figura Componentes del Motor de C. A. Figura Componentes del Motor de C. D. Figura Componentes del Motor de C. D. 39

41 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES UNIDAD 3 PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES 3.1 Introducción S i q u erem o s realizar la pro gram ació n d e lo s m icro co ntrolad ores P IC en u n len guaje co m o el C, e s p reciso utiliz ar un compilador de C. D ich o co m p ilad o r n o s g en era fich ero s en fo rm ato In tel-h ex ad ed im al, q u e es el n ecesario p ara p ro gram ar (utilizando un pro gram ad o r d e P IC ) u n m icro controlado r d e 6, 8, 1 8 ó 4 0 p atillas. E l co m p ilado r d e C q u e vam o s a utilizar es el P C W d e la casa C C S In c. A su v ez, el co m p ilador lo in tegrarem o s en u n entorno de desarrollo integrado (ID E ) qu e nos va a perm itir desarrollar to d as y cad a u n a d e las fases q u e se co m p o n e n u estro p ro ye cto, d esd e la ed ició n h asta la com p ilació n p asan d o po r la d epuració n d e errores. L a últim a fase, a ex cep ció n d e la depuració n y reto q u es h ard w are finales, será program ar el P IC de las tarjetas a utilizar en el control del m otor.. A l igu al qu e el co m pilad o r d e T urb o C, éste "traduce" el código C del archiv o fu en te (.C ) a len gu aje m áq u in a p ara los m icro co n tro lad o res P IC, g en eran d o así u n arch iv o en fo rm ato h e x ad ecim al (.H E X). A d em ás d e éste, tam bién genera otro s seis fichero s. 3.2 Directivas Del Preprocesador T o d as las directivas del prep ro cesado r co m ienzan co n el caracter # seguid o po r u n co m an d o esp ecífico. A lgunas d e estas directiv as so n ex ten sio n es d el C están d a r. E l C proporcio n a u n a d irectiv a d el p rep ro cesad o r, que los compiladores aceptan, y q u e p erm ite ig n o rar o actu ar so b re lo s d ato s q u e siguen. N u estro co m pilado r ad m ite cualquier directiv a del prep ro cesado r q u e co m ience co n P R A G M A, lo qu e n o s asegura la co m p atib ilid ad co n otro s co m p ilad o res Control De Memoria #B IT iden tificador = x.y E sta directiv a creará u n identificad o r "id " q u e pued e utiliz arse co m o cualquier S H O R T IN T (entero corto ; un bit). E l identificador referenciará un objeto en la posició n d e m em o ria x m ás el bit d e d esplaz am iento y. Ejem plo: #bit tiempo = 3.4 int resultado; #bit resultado_impar = resultado.0... if (resultado_ impar)... 40

42 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES #B Y T E Iden tificador = X E sta directiv a creará u n identificad o r "id " q u e pued e utilizarse co m o cualquier N T (u n b yte). E l id entificad o r referen ciará u n o bjeto en la p osició n d e m em oria x, donde x p u ed e ser u n a co n stan te u otro id entificad o r. S i x es o tro id en tificad o r, ento n ces éste estará lo caliz ad o en la m ism a d irecció n q u e el id en tifica d o r "id ". Ejem plos: #byte status = 3 #byte port_b = 6 struct { short int r_w; short int c_d; int no_usado : 2; int dato : 4; port_a; #byte port_a = 5... port_a.c_d = 1; Identificadores Predefinidos D E V IC E E ste id entificado r d el p re-p rocesad o r es definid o por el com pilador con el núm ero b ase d el d isp ositiv o actu al. E l núm ero b ase n orm alm ente es el núm ero que sigu e a la/s letra/s en el n ú m ero d e co m ponente o referen cia d e u n disp o sitivo. P o r ejem plo los P IC 1 6 C 8 4 tien en el n úm ero base 84. E jem plo: #if device ==84 setup_port_a( todas_entradas ); Directivas Del C Estándar #IF expresión _constante, # E L S E y #E N D IF E l pre-procesador evalú a la ex presión_constan te y si es d istin ta d e c ero p ro ce sa rá las lín eas h asta el # E L S E -q u e es o pcional- o en su d efecto h asta el # E N D IF. E jem plo: #if (a + b + c) > 8 printf(" Demasiados parámetros "); 41

43 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES #IF D E F, # E L S E y #E N D IF E sta directiv a actú a co m o el # IF sólo qu e aquí el pre-p rocesad o r sim plem ente co m p ru eb a q u e reco noce el id esp ecificad o (cread o co n u n # D E F IN E). N ótese q u e #IF D E F v erifica si se definió un id pero # IF N D E F com pru eb a que no está definid o el id. E jem plo: #ifdef DEBUG printf("punto de debug en..."); #E R R O R E sta directiv a p ara el co m pilado r y em ite el m ensaje qu e se inclu ye a continu ació n (en la m ism a línea) d e la p ro pia directiv a. E l m ensaje pued e in cluir m acro s. T am b ién p u ed e u tilizarse para alertar al usu ario d e u n a situ ació n an ó m ala en tiem p o d e co m pilació n. Ejem plos: #if BUFFER_SIZE > 16 #error El tamaño del buffer es demasiado grande #error Macro test: min(x,y) #IN C L U D E < N om bre_f ich ero>, #IN C L U D E " N om bre_f ich ero" E sta directiv a h ace qu e el co m pilado r in clu ya en el fich ero fu ente el tex to qu e contien e el archiv o esp ecificad o en < N o m b re_ F ich ero >. S i el n o m b re d el fich ero se in clu ye en tre los sím b olo s '< > ' el co m p ilad o r b u sca el fich ero en el directorio IN C L U D E. S i se p o n e en tre co m illas d o b les " " el co m p ilad o r busca p rim ero en el d irecto rio actu al o d irecto rio d e trab ajo y si n o lo en cu en tra, ento n ces lo b u sca en los directo rio s IN C L U D E d el com pilador. E jem plo: #include <16C54.H> #include "reg_c84.h" Especificación De Dispositivos #D E VIC E C H IP E sta directiv a d efin e al com pilad o r la arquitectu ra utilizada de h ard w are. E sto d eterm in a la m em o ria R A M y R O M así co m o el ju ego d e in stru ccio n es. P ara los chip s (u C 's, m em o rias, etc) co n m ás d e b ytes d e R A M se p u ed e seleccionar entre puntero s d e 8 o 42

44 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES 1 6 bits. P ara usar p untero s d e 1 6 bits h a y q u e añ adir * = 1 6 d espués d el nom b re d el ch ip (u C, m em oria, etc.) o en un a nuev a línea desp ués d e la d eclaració n d el chip. S e p u ed e o btener inform ación sobre un dispositiv o con el program a P IC C H IP S. Ejem plos: #device PIC16C67 *=16 #device PIC16C74 #device *=16 #F U S E S opcion es E sta directiv a d efin e q u é fusibles d eb en activarse en el disp ositiv o cu and o se p ro g ram e. E sta directiv a n o afecta a la co m pilació n ; sin em b argo, esta in fo rm ació n se p o n e en el archiv o d e salid a. S i lo s fusibles n ecesitan estar en fo rm ato P arallax, h a y qu e agregar P A R en opcio n es. Hay que utilizar la utilid ad P IC C H IP S p ara d eterm in ar qué opcio n es so n v álid as p ara cad a disp ositivo. L a o p ció n S W A P tien e la fu n ció n esp ecial d e in tercam b iar los b ytes alto y b ajo d e los d ato s q u e n o so n p arte del pro gram a, en el archiv o H ex. E sta inform ació n es n ecesaria p ara alguno s p ro gram ad ores d e disp o sitiv o s. A lgunas d e las o p cio n es m ás u sad as so n: LP, XT, HS, RC WDT, NOWDT PROTECT, NOPROTECT PUT, NOPUT (Power Up Timer) BROWNOUT, NOBROWNOUT PAR (Parallax Format Fuses) SWAP E jem plo: #fuses HS,WDT Calificadores De Función #IN T _D E F A U L T fu n ción _de_in terru pción _por_defau lt L a funció n que sigue a la directiv a será llam ada si el P IC activa una interru pció n y n in g u n a d e las b an d eras d e interrupció n está activ a. E jem plo: #int_default control_interrupcion() { activar_int=verdadero; #IN T _G L O B A L fu n ción L a fu n ció n qu e sigu e a esta directiv a reem plaz a al distrib uid o r d e interru p cio n es d el co m p ilad o r; dich a fu n ció n to m a el co n trol d e las in terru p cio n es y el co m p ilad o r n o salv a n in gú n registro. N orm alm ente n o es n ecesario usar esto y d eb e tratarse co n gran p ru d en cia. 43

45 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES #IN T _xx x fu n ción _de_in terru pción E stas directivas especifican q u e la funció n q u e le sigu e es una fu n ció n d e interru p ció n. L as fu ncio nes d e interrupció n no pueden tener ningú n parám etro. C om o es natural, n o to d as la s d irectiv as p u ed en u sarse co n to d o s los disp o sitiv os. L as d irectiv as d e este tip o q u e d isp onem o s son: #IN T_EXT IN T E R R U P C IÓ N E X T E R N A #INT_RTCC D E S B O R D A M IE N T O D E L T IM E R 0 (R T C C) #INT_RB C A M B IO E N U N O D E L O S P IN E S B 4, B 5, B 6, B 7 #INT_AD C O N V E R S O R A /D #INT_EEPRO M E SC R IT U R A E N L A E E P R O M C O M P L E T A D A #IN T_TIM ER1 D E S B O R D A M IE N T O D E L T IM E R 1 #IN T_TIM ER2 D E S B O R D A M IE N T O D E L T IM E R 2 #IN T_C C P1 M O D O C A P T U R A D E D A T O S P O R C C P 1 #IN T_C C P2 M O D O C A P T U R A D E D A T O S P O R C C P 2 #IN T_SSP P U E R T O D E S E R IE IN T E L IG E N T E (S P I, I2C) #IN T_PSP P U E R T O P A R A L E L O #INT_TBE S C I D A T O S E R IE T R A N S M IT ID O #INT_RDA S C I D A T O S E R IE R E C IB ID O #IN T_C O M P C O M P A R A D O R D E IN T E R R U P C IO N E S #INT_A DO F D E S B O R D A M IE N T O D E L A /D C D E L P IC #INT_RC C A M B IO E N U N P IN C x #INT_I 2 C I2 C D E L #INT_BUTTO N P U L S A D O R D E L #INT_LCD L C D 92x E l co m pilad o r salta a la funció n d e interrupció n cu and o se detecta u n a interrupció n. E s el p ro p io co m p ilad o r el en carg ad o d e g en erar el có d igo p ara gu ard ar y restau rar el estad o d el p ro cesad o r. T am bién es el co m p ilad o r q u ien b o rrará la interru p ció n (la b an d era). S in em b argo, n u estro p ro gram a es el encargado de llam ar a la funció n E N A B L E _ IN T E R R U P T( ) p ara activ ar p reviam ente la interrupció n junto co n el señ alizad o r (b andera) global d e in terru p cio n es. E jem plo: #int_ad control_adc() { adc_activo=falso; #S E P A R A T E fu n ción #SEPARATE le dice al compilador que el procedimiento o función que sigue a la directiva será llevado a cabo por SEPARADO. Esto es útil para evitar que el compilador haga automáticamente un procedimiento en línea (INLINE). Esto ahorra memoria ROM pero usa más espacio de la pila. El compilador hará todos los procedimientos #SEPARATE, separados, tal como se solicita, aún cuando no haya bastante pila. 44

46 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES E jem plo: #separate swap_byte (int *a, int *b) { int t; t=*a; *a=*b; *b=t; Librerías Incorporadas #U S E D E L A Y (C L O C K = frecu en cia) E sta directiv a in dica al com pilad o r la frecu encia del pro cesad or, en ciclo s p o r segundo, a la v ez q u e h abilita el uso d e las fu nciones D E L A Y _ M S( ) y D E L A Y _ U S(). O p cio n alm en te p o d em o s u sar la fu n ció n restart_w D T( ) para que el com pilador reinicie el W D T du rante el retardo. Ejem plos: #use delay (clock= ) #use delay (clock=32000, RESTART_WDT) 3.3 Funciones Permitidas Por El Compilador De C P R IN T F([fun ction ], string, [valu es]) L a fu n ció n d e im p resió n fo rm atead a P R IN T F saca u n a cad en a d e caracteres al están d ar serie R S o a una fu nció n esp ecificad a. E l form ato está relacionad o co n el argu m en to q u e ponem o s dentro de la caden a (string). C u and o se usan v ariables, strin g d eb e ser una co nstante. E l carácter % se p on e d entro d e la cadena para indicar un valor variable, seguid o de uno o m ás caracteres que dan fo rm ato al tip o de inform ació n a representar. S i ponem o s % % obtenem o s a la salid a u n solo %. E l fo rm ato tien e la fo rm a gen érica % w t, d o n d e w es o ptativ o y p u ed e ser 1,2,...,9. E sto es p ara esp ecificar cu án to s caracteres so n rep resen tad o s; si elegim o s el fo rm ato 0 1,...,09 in dicam o s cero s a la izq uierd a, o tam b ién 1.1 a 9.9 para representació n en punto flotante. t es el tip o d e fo rm ato y p u ed e ser u n o d e los sig uien tes: C C arácter U E n te ro sin sig n o x E n tero e n H e x (e n m in ú sc u la s) X E n te ro e n H e x (e n m a yú scula s) D E n te ro c o n sig n o %e R eal en fo rm ato ex p o n en cial(n o tació n cien tífica) 45

47 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES %f R eal (F lo at) Lx E n te ro larg o e n H e x (e n m in ú sc u la s) L X E n te ro larg o e n H e x (e n m a yú sc u la s) Lu D ecim al la rg o sin sig n o Ld D ecim a l larg o c o n sig n o % S im p le m e n te u n % Ejem plos: byte x,y,z; printf (" Hola "); printf("rtccvalue=>%2x\n\r",get_rtcc()); printf("%2u %X %4X \n\r",x,y,z); printf(lcd_putc, "n=%c",n); Ejem plos de form atos: E specificador V alor=0x12 V alor=0xfe % 0 3u % u % 2 u 18 * % % d 18-2[A 1] % x 12 fe % X 12 F E % 4 X F E * E l re su lta d o e s im p re ciso - Inform ació n no válida. S E T U P _A D C(m ode) E sta funció n co nfigura (perm ite establecer lo s p arám etros) d el converso r an aló g ico /d ig ital. P ara el ch ip , esta fu n ció n establece la corriente d e carga. L o s m o d o s so n lo s sig u ien tes: ADC_OFF ADC_CLOCK_DIV_2 ADC_CLOCK_DIV_8 ADC_CLOCK_DIV_32 ADC_CLOCK_INTERNAL E jem plo: setup_adc( ADC_CLOCK_INTERNAL ); Funciones De I/O Discreta IN P U T(pin) D evuelve el estado '0' o '1' de la patilla in dicad a en pin. E l m éto d o d e acceso d e I/O d epend e de la últim a directiv a #U S E *_IO utilizada. E l valor de retorn o es un en tero co rto. 46

48 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES E jem plo: while (!input(pin_b1) ); N ota: E l argum ento p ara las fu n cio n es d e entrad a y salid a es un a direcció n d e b it. P o r ejem plo, p ara el bit 3º del p ort A (b yte 5 d e lo s S F R ) ten dría u n v alo r d ire cció n de 5 *8+3=43. E sto se p u ed e d efinir co m o sigu e: #define pin3_porta 43. L o s pin es o p atillas d e lo s disp ositiv o s están definid o s co m o P IN _ X X en los archiv o s d e cab ecera *.H. É stos, se p u ed en m o dificar p ara qu e lo s nom bres d e lo s pin es sean m á s significativo s p ara u n pro yecto d eterm in ado. O U T P U T _B IT(pin, valu e) E sta fu n ció n saca el bit dad o en v alu e ( 0 ó 1 ) p o r la p atilla d e I/O esp ecificad a en p in. E l m o d o d e establecer la direcció n del registro está determ in ad a po r la últim a directiv a # U S E *_ IO. E jem plo: output_bit( PIN_B0, 0); // es lo mismo que output_low(pin_b0); output_bit( PIN_B0,input( PIN_B1 ) ); // pone B0 igual que B1 output_bit( PIN_B0, shift_left(&data, 1, input(p IN_B1))); // saca por B0 el MSB de 'data' y al mismo tiempo // desplaza el nivel en B1 al LSB de data. O U T P U T _F L O A T(pin) E sta fu n ció n p o n e la p atilla esp ecificad a co m o pin en el m od o d e entrada. E sto p erm itirá q u e la p atilla sea flo tan te p ara rep resen tar u n n iv el alto en u n a co n ex ió n d e tip o co lecto r ab ierto. E jem plo: // guardamos la lectura del port A en dato if( (dato & 0x80)==0 ) // comprobamos si es '1' el MSB output_low(pin_a0); // si es '1' ponemos a cero el pin A0 else output_float(pin_a0); // de lo contrario, ponemos el // pin A0 a uno O U T P U T _H IG H(pin) P on e a 'uno' el pin in dicad o. E l m éto d o d e acceso d e I/O d ep en d e d e la últim a d irectiv a # U S E * _ IO utilizad a. E jem plo: output_high(pin_a0); O U T P U T _L O W(pin) P on e a 'cero ' el pin in dicad o. E l m éto d o d e acceso d e I/O d ep en d e d e la últim a d irectiv a # U S E *_ IO. E jem plo: output_low(pin_a0); 47

49 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES Funciones De Retardos D E L A Y _C Y C L E S(cou n t) E sta fu nció n realiz a retardo s segú n el n ú m ero de ciclo s d e instru cció n esp ecificad o en co u nt; lo s v alo res posib les v an d esd e 1 a 255. U n ciclo d e in stru cció n es igual a cu atro p erio d o s d e reloj. E jem plo: delay_cycles( 3 ); //retardo de 3ciclos instrucción; es igual que un // NOP D E L A Y _ M S(tim e) E sta fu nció n realiz a retard o s d el v alo r esp ecificad o en tim e. D ich o v alo r de tiem p o es e n m ilisegundos y el ran go es de 0 a P ara o b ten er retard o s m ás larg o s así co m o retard o s 'v ariab les' es p reciso h acer llam ad as a u n a funció n separada. E s p reciso utiliz ar la d irectiv a # u se d ela y(clo ck = frecu en cia) fu nció n, p ara qu e el co m pilado r sep a la frecu en cia d e reloj. antes d e la llam ad a a esta Ejem plos: #use delay (clock= ) // reloj de 4MHz delay_ms( 2 ); // retardo de 2ms void retardo_segundos(int n) { // retardo de 'n' segundos; 0 <= n => 255 for (; n!=0; n--) delay_ms( 1000 ); // 1 segundo D E L A Y _U S(tim e) E sta fu nció n realiz a retardo s d el v alo r esp ecificad o en tim e. D ich o v alo r es en m icrosegundos y el ran g o v a d esd e 0 a E s n ecesario utilizar la directiv a # u se d ela y antes d e la llam ad a a esta fu n ció n p ara q u e el co m pilado r sep a la frecu en cia d e relo j. Ejem plo: #use delay(clock= ) delay_us(50); int espera = 10; delay_us(espera); 48

50 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES Funciones De Control Del Procesador D IS A B L E _IN T E R R U P T S(l evel) E sta fu nció n d esactiv a la interrupción del nivel dad o en level. E l nivel G L O B A L p ro híb e todas las interru p cio nes, au n qu e estén h abilitadas o p erm itid as. L o s niv eles d e in terru p ció n son: o G L O B A L o IN T _ A D o IN T _C C P 2 o IN T _C O M P o IN T_EX T o IN T _ E E P R O M o IN T _S S P o IN T _A D O F o IN T _R T C C o IN T _T IM E R 1 o IN T _P S P o IN T _R C o IN T _R B o IN T _T IM E R 2 o IN T _T B E o IN T _I2C o IN T _A D o IN T _ C P 1 o IN T _R D A o IN T _B U T T O N E jem plo: disable_interrupts(global); /* prohíbe todas las interrupciones */ E N A B L E _IN T E R R U P T S(leve l) E sta funció n activa la interrupció n del nivel dado en level. E l niv el G L O B A L p erm ite to d as las interru p cio n es q u e estén h abilitad as d e form a individ ual. E jem plo: disable_interrupts(global); // Prohíbe todas las interrupciones enable_interrupts(int_ad); // Quedan habilitadas estas dos interrupciones, enable_interrupts(int_i2c); //pero hasta que no se //habilite GLOBAL, no //podrán activarse enable_interrupts(global); // Ahora sí se pueden producir las //interrupciones anteriores E X T _IN T _E D G E(edge) E sta fu nció n d eterm in a el flanco d e activ ació n d e la interru pció n ex tern a. E l flan co p u ed e ser de subid a (L _T O _H ) o d e bajad a (H _T O _ L). Ejem plo: ext_int_edge( L_TO_H ); Contadores / Temporizadores G E T _R T C C() G E T _T IM E R 0() G E T _T IM E R 1() i= G E T _T IM E R 2() 49

51 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES E s tas funciones devuelven el valo r de la cuenta de un contado r en tiem p o real. R T C C y T im er0 so n el m ism o. E l T im er1 es d e 1 6 bits y lo s otro s so n d e 8 bits. E jem plo: while ( get_rtcc()!= 0 ) ; S E T _R T C C(valu e) S E T _T IM E R 0(valu e) S E T _T IM E R 1(valu e) S E T _T IM E R 2(valu e) E stas fu n cio n es activ an el tim er o tem p oriz ad o r al v alo r esp ecificad o. R T C C y T im er0 so n el m ism o. T im er1 es d e 1 6 bits y lo s o tro s so n d e 8 b its. E jem plo: if ( get_rtcc()==2 5 ) set_rtcc(0); SE T U P _C O U N T E R S(rtcc_sta te, ps_state) E sta fu n ció n inicializ a el tim er R T C C o el W D T. E l rtcc_ state d eterm in a q u é es lo q u e activ a el R T C C. E l ps_state establece u n p re-scaler para el R T C C o el W D T. E l p re- scaler alarg a el ciclo d el co ntad o r in dicado. S i se activ a el pre-scaler del R T C C el W D T se p o n d rá a W D T _ 18M S. S i se activ a el p re-scaler del W D T el R T C C se pone a R TC C _D IV _ 1. V alores del rtcc_state: R T C C _IN T E R N A L R T C C _E X T _L_T O _H R T C C _E X T _H _T O _L E jem plo: V alores del ps_state: R T C C _D IV _2 R T C C _D IV _4 R T C C _D IV _8 R T C C _D IV _16 R T C C _D IV _32 R T C C _D IV _64 R T C C _D IV _128 R T C C _D IV _256 W D T _ 1 8 M S W D T _ 3 6 M S W D T _ 7 2 M S W D T _144M S W D T _288M S W D T _576M S W D T _1152M S W D T _2304M S setup_counters (RTCC_INTERNAL, WDT_2304MS); 50

52 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES Funciones De Manejo De Cadenas E stas fu n cio n es están d efin id as en el archiv o d e cab ecera strin g.h, qu e deb e in cluirse co n u n a d irectiv a #include en el fuente. T o d as las fu nciones listad as aq u í o peran co n constantes d e caden a co m o p arám etro. A n tes d e u tilizar estas funciones, co n vien e copiar (co n S T R C P Y ) u n a constante d e cad en a a u n a cad en a en la R A M. C H A R * S T R C A T (ch ar *s1, ch ar *s2) A ñade un a copia de la caden a s2 al final de s1, y devuelv e un puntero a la nueva cad en a s1. C H A R * S T R C H R (char *s, char c) E n cu entra la p rim era co incid en cia d el carácter c en la cad en a s y d ev uelv e u n p u n tero al carácter. C H A R * S T R R C H R (char *s, ch ar c) E n cu en tra la ú ltim a co in cid en cia d el carácter c en la cad en a s y d ev u elv e u n p u ntero al ca rá cter. SIG N E D IN T S T R C M P (ch ar *s1, ch ar *s2) C om para s1 y s2; devuelv e -1 si s1 < s2, 0 si s1 = s 2, 1 si s1 > s 2. S IG N E D IN T S T R N C M P (ch ar *s1, ch ar *s2, in t n) C o m para u n m áx im o d e n caracteres (q u e n o v ayan seguido s d e 0 ) d e s1 a s2; devuelve -1 si s1 < s 2, 0 si s1 = s2, y 1 si s1 > s2. SIG N E D IN T S TR IC M P (ch ar *s1, ch ar *s2) C o m p ara s1 y s2 sin h acer distin ció n entre m a yú scu las y m in ú sculas. D ev u elv e -1 si s1 < s2, 0 si s1 = s2, y 1 si s1 > s2. C H A R * S T R N C P Y (ch ar *s1, ch ar *s2, in t n) C o pia u n m áx im o d e n caracteres (qu e n o v a yan seguid o s d e 0 ) d e s2 a s1; si s2 tien e m en o s d e n caracteres, se añ aden '0 ' al fin al. IN T S T R C S P N (ch ar *s1, ch ar * s2) C alcula la lo n gitu d d e la p orció n inicial m ayo r d e s1, q u e co nsiste enteram en te d e caracteres q u e n o están en s2. 51

53 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES IN T S T R S P N (char *s1, ch ar *s2) C alcula la lo n gitud d e la p o rció n inicial m a yo r d e s1, q u e co n siste en teram en te d e caracteres q u e están en s2. IN T STR L E N (char *s) O b tien e la longitu d d e s1 (ex clu yen d o el carácte r '\0'). C H A R * S T R L W R (ch ar *s) R eem plaz a m a yú sculas co n m inúsculas y d ev u elv e u n p untero a s. C H A R * S T R P B R K (ch ar *s1, ch ar *s2) L o caliz a la p rim era coin cid en cia d e cu alquier carácter d e s2 en s1 y d evuelv e un p u n tero al carácter s1 si s2 es u n a cad en a v acía. C H A R * S T R S T R (ch ar *s1, ch ar *s2) L o caliz a la p rim era coin cid en cia d e u n a secu en c ia d e caracteres d e s2 en s1 y d ev u elv e u n puntero a la secuencia; devuelv e null si s2 es un a cadena vacía. C H A R * S T R T O K (ch ar *s1, ch ar *s2) E n cu entra la próxim a m uestra en s1, d elim itad a po r u n carácter d e sep aració n d e cad en a d e s2 (que puede ser diferen te de una llam ad a a la otra) ; devuelve un puntero a él. L a prim era llam ad a inicia, al p rin cipio d e S 1, la búsq ued a d el prim er carácter q u e n o esté contenido en s2, y dev uelv e N U L L si no lo encu entra. S i n o se encu entra, este es el inicio (p u nto d e p arid a) d el p rim er token (valor de reto rn o). L a F u n ció n entonces busca d esd e allí u n carácter co ntenid o en s2. S i n o se en cu en tra, el to k en actu al se ex tien d e h asta el ex trem o d e s1, y las b ú sq u ed as siguientes de un token devolverán null. S i se en cu en tra u n o, se so b reescrib e p o r '\0 ' q u e term in a el token actu al. L a fu n ció n g u ard a el puntero al carácter sig uiente d esd e el qu e se in iciará la p róxim a búsqueda. C ad a llam ad a posterio r, co n 0 co m o p rim er argum ento, inicia la búsq ued a a p artir d el puntero guardado. 52

54 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES Funciones De Entrada A/D S E T U P _A D C _P O R T S(valu e) E sta fu n ció n co n figura los pin es d el A D C p ara qu e sean an aló gicos, digitales o alg u n a co m bin ació n d e am bos. L as co m bin acio n es perm itidas v arían, d epen diend o d el ch ip. L as constantes usad as tam b ién so n diferentes p ara cad a chip. V éase el archiv o d e cab ecera *.h p ara cad a P IC co n creto. L as co n stantes A L L _ A N A L O G y N O _ A N A L O G S so n v álid as p ara to d o s lo s ch ip s. A lg u n o s o tro s eje m p lo s d e co n stan tes so n : RA0_RA1_RA3_ANALOG E sto h a ce q u e lo s p in es A 0, A 1 y A 3 se an an aló gic o s y lo s restan tes sean d ig itales. L o s + 5 v se usan co m o referencia; véase el siguiente ejemplo. Ejem plo: RA0_RA1_ANALOG_RA3_REF L a s p atillas A 0 y A 1 so n an aló gicas; la p atilla R A 3 se usa co m o voltaje d e referen cia y to d as las d e m ás p atillas so n d igitales. E jem plo: Setup_adc_ports( ALL_ANALO G ); S E T U P _A D C(m ode) E sta funció n prepara o configura el co nverso r A /D. P ara la serie esta fu n ció n establece la co rriente d e carga. V éase el archiv o H p ara lo s v alo res segú n el m o d o d e fu n cio n am iento. L o s m o d o s son: o A D C _ O F F o A D C _C L O C K _D IV _2 o A D C _C L O C K _D IV _8 o A D C _C L O C K _D IV _32 o A D C _C L O C K _ IN T E R N A L E jem plo: setup_adc(adc_clock_internal); 53

55 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES S E T _A D C _C H A N N E L(can al) E sp ecifica el can al a utiliz ar p o r la fu n ció n RE A D _ A D C(). E l n ú m ero d e can al em p ieza en 0. E s p reciso esp erar u n corto esp acio d e tiem p o d esp u és d e cam biar el can al d e ad q uisició n, antes d e que se p u ed an o bten er lecturas d e d ato s v álid os. E jem plo: set_adc_channel(2); i= R E A D _A D C() E jem plo: E sta funció n lee el valor digital del converso r an aló gico digital. D eb en h acerse llam ad as a S E T U P _A D C( ) y S E T _ A D C _C H A N N E L( ) en algú n m om ento antes de la llam ad a a esta fu nció n. setup_adc( ALL_ANALOG ); set_adc_channel( ); while ( input(pin_b0) ) { delay_ms( 5000 ); value = read_adc(); printf("a/d value = %2x\n\r",value); Funciones Para La Manipulación De Bits B IT _C L E A R(var,bit) E sta fu n ció n sim p lem en te b o rra (p o n e a '0') el d ígito esp ecificad o en b it (0-7 ó ) d el b yte o palabra aportad o en var. E l bit m eno s significativ o es el 0. E sta fu n ció n es ex actam en te igual q u e: v ar & = ~(1 < < bit); E jem plo: int x; x=5; bit_clear(x,2); // x = 1 B IT _S E T(var,bit) E sta funció n p on e a '1 ' el d ígito esp ecificad o en bit (0-7 o 0-15) del b yte o palab ra ap o rtad o en var. E l bit m enos sign ificativ o es el 0. E sta fu n ció n es igual q u e: var = (1 < < b it); E jem plo: int x; x=5; bit_set(x,3); // x = 13 54

56 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES B IT _T E S T(var,bit) E sta funció n ex am in a el dígito esp ecificad o en b it (0-7 o 0-15) del b yte o palab ra ap o rtad o en v ar. E sta fu nció n es igual, aunqu e m u ch o m ás eficaz q u e esta otra fo rm a: ((v a r & (1 < < bit) )!= 0) E jem plo: if( bit_test(x,3)!bit_test (x,1) ){ //o el bit 3 es 1 o el bit 1 es Definición De Datos Si T Y P E D E F se pone delante d e la d efinició n d e u n d ato, entonces n o se asign a esp acio d e m em o ria al id entificad o r a m en o s que sea utilizad o co m o u n esp ecificad o r d e tip o en o tras d efin icio n es d e d ato s. S i d elan te d el id entificad o r p onem o s C O N S T en to n ces, el id entificad o r es tratad o co m o co n stante. L as co n stantes d eb en ser in icializ ad as y n o pued en cam biar en tiem p o d e ejecu ció n. N o están p erm itid o s p u ntero s a co n stan tes. S H O R T es u n tip o esp ecial utiliz ad o p ara g en erar có d ig o m u y eficiente p ara las operaciones de I/O. N o se p erm iten las arrays d e S H O R T n i lo s p untero s a S H O R T. L a siguiente tab la m u estra la sin tax is p ara las d efinicio n es d e d ato s. Ejem plos: int a,b,c,d; typedef int byte; typedef short bit; bit e,f; byte g[3][2]; char *h; enum boolean {false, true; boolean j; byte k = 5; byte const SEMANAS = 52; byte const FACTORES [4] = {8, 16, 64, 128; struct registro_datos { byte a [2]; byte b : 2; /*2 bits */ byte c : 3; /*3 bits*/ int d; 55

57 DEFINICIONES DE DATOS UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES typ ed ef [calificad o r_ tip o] [esp ecificad or_tip o ] [id entificador] static V ariable glo bal e inicializad a a 0 auto L a v ariable ex iste m ientras el p ro cedim iento está activ o E s el valor por default, por eso no es necesario poner auto E specificadores de tipo: unsigned unsigned int int ch a r long long int signed signed int signed long float short short int Identificador Enum Struct U nión defin e u n núm ero d e 8 b its sin signo defin e u n n úm ero d e 8 bits sin signo defin e u n núm ero d e 8 b its sin signo defin e u n núm ero d e 8 b its sin signo defin e u n núm ero d e 1 6 bits sin signo defin e u n núm ero d e 1 6 bits sin signo defin e u n núm ero d e 8 b its co n signo defin e u n núm ero d e 8 b its co n signo defin e un núm ero d e 16 bits con signo defin e un núm ero de 32 bits en punto flotante defin e un bit defin e un bit Id entificad o r de una definició n T Y P E de tipo tipo enum erado, v éase sintax is a co ntin uación estru ctu ra, v éase sintax is a co ntin u ació n unión, véase sin tax is a c o n tin u ació n d eclarad or: [const] [*]identificador [expr._constante][= valor_inicial] enu m erador: enum [identificador]{ [lista_identificadores[= expresión_constante]] estructura y unión: struct [identificador] { [calificador_tipo [[*]identificador :expresión_constante [expresión_constante]]] unión Ídem 56

58 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES E jem plo: struct lcd_pin_map { boolean enable; boolean rs; boolean rw; boolean unused; int data : 4; lcd; S i p o n em o s expresión_constante d espués d e u n identificador, d eterm in a el n ú m ero d e b its q u e u tiliz ará d ich o id en tificad o r. E ste n ú m ero p u ed e ser 1,2,...8. S e p u ed en utiliz ar arra ys d e d im ensió n m últiple p onien d o lo s [ ] q u e se p recisen. T am b ién p o d em o s an id ar estru ctu ras y u n io n es. U n id en tificad o r d esp u és d e struct p u ed e u sarse en otra struct y las { n o se p u ed en u sar p ara reutilizar la estru ctura d e la m ism a fo rm a otra v ez. N ota: T odo lo ex pres ad o en tre [] es o p cio n al, es d ec ir, se p u ed e especificar o n o. S i la ex presió n va entre { entonces indica que debe aparecer u n a o m ás veces y en ese caso sep arad o s p o r co m as. E l identificador desp u és d e en u m es u n tip o d e dato s tan grand e co m o la m a yo r d e las co n stante s d e la lista. C ad a u n o d e lo s id en tificad o res d e la lista es cread o co m o u n a co n stan te. P o r d efau lt, el p rim er id entificad o r se p o n e a cero y lo s siguientes se in crem entan en u n o. S i in clu im o s "= expresión_constante" después de un identificado r éste tendrá el valor de la expresión_constante y lo s sig u ien tes se in crem en tarán en u n o. E jem plo: enum ADC_SOURCE {an0, an1, an2, an3, bandgap, srefh, srefl, itemp, refa, refb; 3.5 Definición De Función E l fo rm ato d e la d efinició n d e u n a fu n ció n es co m o sigue: [calificador_tipo] identificador ([[especificador_tipo identificador]) { [cuerpo de la función] E l calificador_tipo para una funció n puede ser: void o un especificador de tipo L a d efin ició n de una funció n puede ir precedid a por una de las siguientes directivas del p ro cesado r (calificad ores de fu n ción ) p ara id entificar u n a característica esp ecial d e la fun ción : #separate #in lin e #in t_... 57

59 UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES C u and o utilizam o s una d e las directiv as m en cio nad as y la funció n tien e un prototipo (d eclaració n an terio r a la d efinició n d e la función, y co lo cad a al principio del fichero fuente) hay q u e in clu ir la m ism a #directiva en el prototipo y en la definición de la función. U n a característica n o m u y co rriente, se h a añadid o al co m pilad o r para a yu d ar a ev itar lo s p ro b lem as creados por el hecho de que no pueden crearse p u ntero s a co n stan tes d e cad en as. U n a fu n ció n q u e tien e u n p arám etro d e tip o ch ar aceptará un a constante d e cad en a. E l co m p ilad o r g en erará un bucle que llam a a la fu nció n una vez para cada carácter de la caden a. E jem plo: void lcd_putc(char c ) { // definición de la función... lcd_putc ("Máquina parada".); 3.6 Funciones: Parámetros Por Referencia E l co m p ilado r está lim itad o a trabajar co n p arám etro s po r referen cia. E sto au m en ta la le gibilid ad d el códig o así com o la eficacia d e algunos p ro cedim ientos. L o s d o s p ro cedim iento s siguientes so n iguales pero sólo el segund o o pera co n p arám etro s p o r referen cia: funcion_a(int*x,int*y) { / * declaración de la func ión * / (*x!=5); *y=*x+3; funcion_a(&a,&b); /* llamada a la función */ funct_b(int&x,int&y) { / * declaración de la función * / /* paso de parámetros por referencia * / if(x!=5) y=x+3; funcion_b(a,b); /* llamada a la función */ 3.7 Edición De Un Programa En C P ara crear u n pro gram a hay q u e seguir lo s p aso s siguientes: 1. E specificaciones del program a (qué tiene que hacer) 2. H acer organigram a 3. E scribir el código fuente (conocer el lenguaje) 4. C om pilar + Enlazar (Link) 5. D epurar errores, si los hay 58

60 3.8 Estructura De Un Programa En C UNIDAD 3. PROGRAMACIÓN BÁSICA APLICADA A MICROCONTROLADORES D e fo rm a gen eraliz ada, la estru ctu ra d e u n p ro gram a en C tien e el siguiente asp ecto: declaraciones globales prototipos de funciones main() { variables locales; bloque de sentencias; llamadas a las funciones; funcion_1() { variables locales a función_1; bloque de sentencias; llamada a otra/s funciones; función_n() { 59

61 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP UNIDAD 4 PROGRAMACIÓN DEL PROTOCOLO TCP/IP Antes de comenzar con el desarrollo de la interfaz de usuario, veamos una definición de esta. 4.1 Interfaz De Usuario La interfaz de usuario es la forma en que los usuarios pueden comunicarse con una computadora, y comprende todos los puntos de contacto entre el usuario y el equipo. Sus principales funciones son: Manipulación de archivos y directorios Herramientas de desarrollo de aplicaciones Comunicación con otros sistemas Información de estado Configuración de la propia interfaz y entorno Intercambio de datos entre aplicaciones Control de acceso Sistema de ayuda interactivo. Nos encontramos con dos tipos de interfaz de usuario: Interfaces alfanuméricas (intérpretes de mandatos). Interfaces gráficas de usuario (GUI, Graphics User Interfaces), las que permiten comunicarse con el ordenador de una forma muy rápida e intuitiva. Y pueden ser de hardware o de software: En el primer caso se trata de un conjunto de dispositivos que permiten la interacción hombremáquina, de modo que permiten ingresar y tomar datos del ordenador. También están las interfaces de software que son programas o parte de ellos que permiten expresar nuestros deseos al ordenador. Sin embargo, no siempre se trata de interfaces intuitivas tal como el caso de las interfaces de línea de órdenes (CLI), que se encuentran por ejemplo en algunos sistemas operativos como los NOS de los Routers o algunos shell de Unix, DOS, etc. 4.2 HTML HTML es el acrónimo inglés de HyperText Markup Language, que se traduce al español como Lenguaje de Marcas Hipertextuales. Es un lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estándar de las páginas Web. Gracias a Internet y a los navegadores como Internet Explorer, Opera, Firefox, Netscape o Safari, el HTML se ha convertido en uno de los formatos más populares y fáciles de aprender que existen para la elaboración de documentos para Web. 60

62 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP Historia Del Estándar En 1989 existían dos técnicas que permitían vincular documentos electrónicos, por un lado los hipervínculos (links) y por otro lado un poderoso lenguaje de etiquetas denominado SGML. Por entonces un usuario conocedor de ambas opciones, Tim Berners-Lee físico nuclear del Centro Europeo para la Investigación Nuclear da a conocer a la prensa que estaba trabajando en un sistema que permitirá acceder a ficheros en línea, funcionando sobre redes de computadoras o máquinas electrónicas basadas en el protocolo TCP/IP. A principios de 1990, Tim Berners-Lee define por fin el HTML como un subconjunto del conocido SGML y crea algo más valioso aún, el World Wide Web. En 1991, Tim Berners-Lee crea el primer navegador de HTML que funcionaría en modo texto y para UNIX. Los trabajos para crear un sucesor del HTML, denominado HTML +, comenzaron a finales de HTML+ se diseñó originalmente para ser un súper conjunto del HTML que permitiera evolucionar gradualmente desde el formato HTML anterior. A la primera especificación formal de HTML+ se le dio, por lo tanto, el número de versión 2 para distinguirla de las propuestas no oficiales previas. Los trabajos sobre HTML+ continuaron, pero nunca se convirtió en un estándar, a pesar de ser la base formalmente más parecida al aspecto compositivo de las especificaciones actuales. El borrador del estándar HTML 3.0 fue propuesto por el recién formado W3C en marzo de Con él se introdujeron muchas nuevas capacidades, tales como facilidades para crear tablas, hacer que el texto fluyese alrededor de las figuras y mostrar elementos matemáticos complejos. Aunque se diseñó para ser compatible con HTML 2.0, era demasiado complejo para ser implementado con la tecnología de la época y, cuando el borrador del estándar expiró en septiembre de 1995, se abandonó debido a la carencia de apoyos de los fabricantes de navegadores Web. El HTML 3.1 nunca llegó a ser propuesto oficialmente, y el estándar siguiente fue el HTML 3.2, que abandonaba la mayoría de las nuevas características del HTML 3.0 y, a cambio, adoptaba muchos elementos desarrollados inicialmente por los navegadores Web Netscape y Mosaic. La posibilidad de trabajar con fórmulas matemáticas que se había propuesto en el HTML 3.0 pasó a quedar integrada en un estándar distinto llamado MathML. El HTML 4.0 también adoptó muchos elementos específicos desarrollados inicialmente para un navegador Web concreto, pero al mismo tiempo comenzó a limpiar el HTML señalando algunos de ellos como 'desaprobados' Códigos HTML Básicos <html>: Define el inicio del documento HTML, le indica al navegador que lo que viene a continuación debe ser interpretado como código HTML. <head>: Define la cabecera del documento HTML, esta cabecera suele contener información sobre el documento que no se muestra directamente al usuario. Como por ejemplo el título de la ventana de su navegador. Dentro de la cabecera <head> podemos encontrar: o <title>: Define el título de la página. Por lo general, el título aparece en la barra de título encima de la ventana o <link>: Para vincular el sitio a hojas de estilo o íconos. Por ejemplo:<link rel="stylesheet" href="/style.css" type="text/css"> 61

63 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP <body>: Define el contenido principal o cuerpo del documento, esta es la parte del documento html que se muestra en el navegador, dentro de esta etiqueta pueden definirse propiedades comunes a toda la página, como color de fondo y márgenes. Dentro del cuerpo <body> podemos encontrar numerosas etiquetas. A continuación se indican algunas a modo de ejemplo: o <h1>, <h2>, <h3>, <h4>, <h5>, <h6>: encabezados o títulos del documento con o o diferente relevancia. <tr>: Fila de una tabla <td>: Celda de datos de una tabla <a>: Hipervínculo o enlace, dentro o fuera del sitio web. Debe definirse el parámetro de pasada por medio del atributo href. Por ejemplo: <a href=" se representa como Google) <img>: Imagen, requiere del atributo src, que indica la ruta en la que se encuentra la imagen. Por ejemplo: <img src="./imagenes/mifoto.jpg" /> o <font color="#rrggbb">: Color del texto, representado por un código hexadecimal. "rr"=red, "gg"=green, "bb"=blue. Cada par puede variar entre 00(el tono más oscuro) a ff(más claro). o <li><ol><ul>: Etiquetas para listas. o <b>: Texto en negrita o <i>: Texto en cursiva o <u>: Texto subrayado o <marquee="texto"> o también se puede usar este <marquee>"texto"</marquee>: texto en movimiento horizontal. 4.3 Desarrollo De La Página Web ////////////////////////////////////////////////////////////////////////////// // // Control a distancia en lazo abierto de un motor de C. A. vía el // protocolo TCP/IP // ///////////////////////////////////////////////////////////////////////////// #define STACK_USE_ICMP 1 #define STACK_USE_ARP 1 #define STACK_USE_TCP 1 #define STACK_USE_HTTP 1 #include "ccstcpip.h" //incluye el archivo tcpip.h #if STACK_USE_CCS_PICENS #include "tcpip/mlcd.c" float a_disparo; //incluye el archivo mlcd.c Para entender mejor el funcionamiento del programa a desarrollar, veremos unas pequeñas definiciones de los protocolos usados, los cuales son incluidos en el comienzo del programa como se podrá observar. 62

64 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP ICMP El Protocolo de Mensajes de Control de Internet o ICMP (por sus siglas de Internet Control Message Protocol) es el subprotocolo de control y notificación de errores del Protocolo de Internet (IP). Como tal, se usa para enviar mensajes de error, indicando por ejemplo que un servicio determinado no está disponible o que un router o host no puede ser localizado ARP ARP son las siglas en inglés de Address Resolution Protocol (Protocolo de resolución de direcciones). Es un protocolo de nivel de red responsable de encontrar la dirección hardware (Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP request) a la dirección de multidifusión de la red (broadcast (MAC = ff ff ff ff ff ff)) que contiene la dirección IP por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde. Cada máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga. ARP permite a la dirección de Internet ser independiente de la dirección Ethernet, pero esto solo funciona si todas las máquinas lo soportan. HTTP El protocolo de transferencia de hipertexto ( HTTP, HyperText Transfer Protocol) es el protocolo usado en cada transacción de la Web (WWW). El hipertexto es el contenido de las páginas web, y el protocolo de transferencia es el sistema mediante el cual se envían las peticiones de acceso a una página y la respuesta con el contenido. También sirve el protocolo para enviar 'información adicional en ambos sentidos, como formularios con campos de texto. NOTA: El protocolo TCP fue descrito en el Capitulo 1. En la primer parte del programa se desarrolla la interfase HTML con la que se logra la comunicación con el proceso, en este caso el motor de C. A. La primera parte a desarrollar es la Cabecera, donde se presenta el titulo del Proyecto. //Programa de la página Web a utilizar como interfaz const char HTML_INDEX_PAGE[]=" <HTML><BODY background= TEXT=#000000> <HEAD> <IMG SRC=\" x/labrotomecanica/mx.geocities.com/armandozam/images/ipn/esime.gif\"border=4 HEIGHT=120 ALIGN=LEFT> <IMG SRC=\" R=4 HEIGHT=120 WIDTH=110 ALIGN=RIGHT> <H1><I><CENTER><P><FONT color = #FFFFFF>INSTITUTO POLITÉCNICO NACIONAL</FONT></H1><P> 63

65 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP <H3><FONT color = #FFFFFF>ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA</FONT></H3><P> <H3><FONT color = #FFFFFF>UNIDAD ZACATENCO</FONT></CENTER></I></H3><P> <HR> <MARQUEE bgcolor =black width=1250% scrolldelay=0 ><H1><I><FONT color = #FFFFFF> Control a distancia en lazo abierto de un motor de C. A. vía el protocolo TCP/IP</FONT></I></H1></MARQUEE> <HR> </HEAD> <P Align=center> <TABLE border = 8 bgcolor = gray cellspacing = 4 cellpadding = 4 width = 250% align=right > <TR><TH colspan =5 align = center bgcolor=#ffffff ><H4><A HREF=\"/analog\">PARA VER LOS DATOS DEL EQUIPO DA CLICK AQUI</A></TH></TR> <TR> <TH colspan =3 align = center ><H4>INTEGRANTES</TH> <TH colspan =2 align = center ><H4>ASESORES</A></TH> </TR> <TR> <TD rowspan =3 align = center ><IMG SRC=\" BORDER=4 HEIGHT=120 WIDTH=120 ALIGN=RIGHT></TD> <TD rowspan =3 align = center ><IMG SRC=\" BORDER=4 HEIGHT=120 WIDTH=120 ALIGN=RIGHT></TD> <TD rowspan =3 align = center ><IMG SRC=\" BORDER=4 HEIGHT=120 WIDTH=120 ALIGN=RIGHT></TD> <TD rowspan =3 align = center ><IMG SRC=\" BORDER=4 HEIGHT=120 WIDTH=120></TD> <TD rowspan =3 align = center ><IMG SRC=\" BORDER=4 HEIGHT=120 WIDTH=120></TD></TR> </TABLE></P> <FORM METHOD=GET> <P Align=center> <TABLE border = 8 bgcolor = gray cellspacing = 4 cellpadding = 4 width = 500% > <TR><TH colspan= 2 align = center ><H3>ENCENDIDO Y APAGADO DEL MOTOR</TH></TR> <TR><TH colspan= 2 align = center > LCD: <INPUT TYPE=\"text\" NAME=\"lcd\" size=17 maxlength=17></th></tr> <TR> <TD rowspan =2 align = center >SELECCIÓN DE TIEMPO DE ARRANQUE:<P> <INPUT type=\"radio\" name=\"led2\" value=120>10 segundos <INPUT type=\"radio\" name=\"led2\" value=180>15 segundos <INPUT type=\"radio\" name=\"led2\" value=240>20 segundos <P><INPUT type=\"radio\" name=\"led2\" value=0>apagado </TD><P2> </TR></TABLE> <BR><INPUT TYPE=\"submit\"></FORM></P> <P><FONT color = #FFFFFF>%0</FONT> <BR><FONT color = #FFFFFF>%1</FONT> </BODY></HTML> "; 64

66 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP La presentación es la siguiente Figura Página principal Con la declaración value=xxx>xx se establecen los valores del ángulo de disparo (a_disparo) dentro de la página Web, con la instrucción radio que permitirá enviar los tiempos deseados para el encendido del motor de acuerdo a los requerimientos solicitados Página Con Datos Personales Utilizando Link Una manera sencilla de colocar datos que no son necesarios dentro de la página Web principal (index), es crear una segunda página (about page) ligada con la principal con la ayuda de un link. En el desarrollo del proyecto del presente trabajo se muestra un claro ejemplo de lo mencionado, se utiliza una segunda página Web para mostrar los datos de los involucrados en el desarrollo del proyecto, tanto alumnos, como profesores. El siguiente fragmento de código muestra el formato de los datos: const char HTML_ANALOG_PAGE[]=" <HTML><BODY background= TEXT=#FFFFFF> <HEAD> <IMG SRC=\" x/labrotomecanica/mx.geocities.com/armandozam/images/ipn/esime.gif\"border=4 HEIGHT=120 ALIGN=LEFT> 65

67 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP <IMG SRC=\" R=4 HEIGHT=120 WIDTH=110 ALIGN=RIGHT> <H1><I><CENTER><P><FONT color = #FFFFFF>INSTITUTO POLITÉCNICO NACIONAL</FONT></H1><P> <H3><FONT color = #FFFFFF>ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA</FONT></H3><P> <H3><FONT color = #FFFFFF>UNIDAD ZACATENCO</FONT></CENTER></I></H3><P> <HR> </HEAD> <P><A HREF=\"/\"><H1>Volver a página principal</h1></a> <H1><B><CENTER><U><P>DATOS GENERALES DE LOS INTEGRANTES DEL EQUIPO</U></CENTER></B><H1><P> <IMG SRC=\" HEIGHT=170 WIDTH=150 ALIGN=LEFT> <TABLE border = 4 cellspacing = 4 cellpadding = 4 width =450 > <TR><TD> <H2><P>Nombre: Guerrero Gudiño Jesús</H1><P> <H3><B>Boleta:</B> </H3><P> <H3><B>Grupo:</B> 9A2V</H3> <H3><B>Carrera:</B> Ingeniería en Control y Automatización</H3></TD></TR> </TABLE> <P> <P> <IMG SRC=\" HEIGHT=170 WIDTH=150 ALIGN=LEFT> <TABLE border = 4 cellspacing = 4 cellpadding = 4 width =450 > <TR><TD> <H2><P>Nombre: Mora Mendoza Iván</H1><P> <H3><B>Boleta:</B> </H3><P> <H3><B>Grupo:</B> 9A2V</H3> <H3><B>Carrera:</B> Ingeniería en Control y Automatización</H3></TD></TR> </TABLE> <P> <P> <IMG SRC=\" HEIGHT=170 WIDTH=150 ALIGN=LEFT> <TABLE border = 4 cellspacing = 4 cellpadding = 4 width =450 > <TR><TD> <H2><P>Nombre: Orozco Reyes Jorge Manuel</H1><P> <H3><B>Boleta:</B> </H3><P> <H3><B>Grupo:</B> 9A2V</H3> <H3><B>Carrera:</B> Ingeniería en Control y Automatización</H3></TD></TR> </TABLE> <P> <P> <P> <H1><B><LEFT><U><P>ASESORES:</U></LEFT></B><H1><P> <P> <P> 66

68 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP <IMG SRC=\" HEIGHT=120 WIDTH=120 ALIGN=LEFT> <TABLE border = 4 cellspacing = 4 cellpadding = 4 width =450 > <TR><TD> <H2><P>Asesor tècnico: M. en C. José Antonio Sixto Berrocal</H1><P> <H3><B>Depto:</B> Ingeniería Eléctrica</H3></TD></TR> </TABLE> <P> <P> <IMG SRC=\" HEIGHT=120 WIDTH=120 ALIGN=LEFT> <TABLE border = 4 cellspacing = 4 cellpadding = 4 width =450 > <TR><TD> <H2><P>Asesor tècnico: Ing. Enrique Martìnez Roldàn <H3><B>Depto:</B> Ingeniería Eléctrica</H3></TD></TR></TABLE> <P> <P> <IMG SRC=\" HEIGHT=120 WIDTH=120 ALIGN=LEFT> <TABLE border = 4 cellspacing = 4 cellpadding = 4 width =450 > <TR><TD> <H2><P>Asesor Metodològico: Ing. Eduardo Silva Doray Espinoza <H3><B>Jefe Depto. de titulaciòn</h3></td></tr></table> </BODY></HTML> "; La presentación es la siguiente Figura 4.2.-Tabla de datos personales con foto incluida en la about page El siguiente fragmento de código proporciona las dos páginas mencionadas, la principal o index y la segunda unida con el link a la principal o about page. //Esta es una función de retorno al stack de HTTP //Este proporciona las páginas Web, una index (/) y una about page (/about) int32 http_get_page(char *file_str) { int32 file_loc=0; static char index[]="/"; static char about[]="/analog"; 67

69 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP printf("\r\nrequest %s ",file_str); if (stricmp(file_str,index)==0) file_loc=label_address(html_index_page); else if (stricmp(file_str,about)==0) file_loc=label_address(html_analog_page); if (file_loc) printf("(file=%lu)",file_loc); else printf("(file Not Found)"); return(file_loc); //Esta es una función de retorno al stack de HTTP //Este proporciona el manejo para dos caracteres de formato, %0 y %1. //%0 es ADC para el canal 0, %1 es ADC para el canal 1. int8 http_format_char(int32 file, char id, char *str, int8 max_ret) { char new_str[20]; int8 len=0; int8 i; *str=0; switch(id) { case '0': set_adc_channel(0); delay_us(100); i=read_adc(); sprintf(new_str,"<b>an0 = </B>0x%X",i); len=strlen(new_str); break; case '1': #if STACK_USE_CCS_PICNET set_adc_channel(1); delay_us(100); i=read_adc(); sprintf(new_str,"<b>an1 = </B>0x%X",i); len=strlen(new_str); #else len=0; break; if (len) { if (len>max_ret) {len=max_ret; memcpy(str,new_str,len); return(len); 68

70 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP El siguiente fragmento de código declara las instrucciones con las que se logra la comunicación vía el protocolo TCP/IP con el motor, así mismo, se desarrolla la interfase con la pantalla lcd de la tarjeta utilizada. // Esta es una función de retorno al stack de HTTP // se fija led1 y led2 ("led1" y "led2") basado en su valor // y cambia la pantalla lcd ("lcd"). void http_exec_cgi(int32 file, char *key, char *val) { static char led2_key[]="led2"; static char lcd_key[]="lcd"; int8 v; printf("\r\ncgi FILE=%LD KEY=%S VAL=%S", file, key, val); if (stricmp(key,led2_key)==0) { v=atoi(val); //Relacionar a_disparo con led 2 a_disparo=v; //y v_atoi genera una sola palabra if (v) { setup_counters(rtcc_internal, RTCC_DIV_256); set_timer0 (0); enable_interrupts(int_ext); enable_interrupts(global); while(a_disparo>0) { if(get_timer0()<a_disparo) output_high(pin_a5); else output_low(pin_a5); output_low(user_led2); else { output_high(pin_a5); output_high(user_led2); //Habilita interrupciones externas //Habilita interrupciones globales //Motor en paro //Manda a arrancar el motor //Enciende indicación de motor activo //Paro de motor //Motor en paro if (stricmp(key,lcd_key)==0) { printf(lcd_putc,"\f%s",val); #int_ext void prende(){ if(a_disparo>0) a_disparo=a_disparo-0.1; set_timer0(0); //Imprime mensaje en LCD //Tiempo del ángulo de disparo para el //tiempo de encendido del motor void main(void) { MACAddrInit(); IPAddrInit(); 69

71 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP init_user_io(); lcd_init(); printf(lcd_putc,"\fccs CGI Example\nWaiting"); printf("\r\n\nccs CGI Example\r\nWaiting"); set_adc_channel(0); StackInit(); setup_counters(rtcc_internal, RTCC_DIV_256); set_timer0 (0); enable_interrupts(int_ext); enable_interrupts(global); //Habilita interrupciones externas //Habilita interrupciones globales while(true) { /* if(get_timer0()<a_disparo) //Mientras que a_disparo sea menor output_high(pin_a5); //a get_timer() el motor estará else //desactivado y en cualquier otro caso output_low(pin_a5); // el motor encenderá StackTask(); El siguiente fragmento de código, el cual es llamado al principio del programa de desarrollo de la página Web, proporciona la configuración de entradas y salidas del microcontrolador de Microchip. Así mismo, se declara la dirección IP con la que se reconoce al servidor implementado en el micro. //////////////////////////////////// // // ccstcpip.h Declaración de I/O // //////////////////////////////////// #define STACK_USE_CCS_PICENS 1 #define STACK_USE_CCS_PICEEC 0 //TODO #if STACK_USE_CCS_PICENS #define STACK_USE_MCPENC 1 #if STACK_USE_CCS_PICENS #include <18F4620.h> #use delay(clock= ) #fuses H4, NOWDT, NOLVP, NODEBUG #else #error You need to define your custom hardware #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7) #include "tcpip/stacktsk.c" //incluye el Stack de TCP/IP de Microchip #if STACK_USE_CCS_PICENS 70

72 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP #define BUTTON1_PRESSED() (!input(pin_a4)) #define USER_LED1 PIN_A5 #define USER_LED2 PIN_B4 #define LED_ON output_low #define LED_OFF output_high void init_user_io(void) { setup_adc(adc_clock_internal); setup_adc_ports(an0); *0xF92=(*0xF92 & 0xDF) 0x11; *0xF93=*0xF93 & 0xCF; LED_OFF(USER_LED1); LED_OFF(USER_LED2); //a5 salida, a4 y a0 entradas //b4 y b5 salidas NOTA: Se utiliza la declaración USER_LED para indicar las salidas, estas salidas tienen leds para indicar su estado, de ahí el nombre de la declaración. void MACAddrInit(void) { MY_MAC_BYTE1=0; MY_MAC_BYTE2=2; MY_MAC_BYTE3=3; MY_MAC_BYTE4=4; MY_MAC_BYTE5=5; MY_MAC_BYTE6=6; //Aquí se declara la dirección IP del servidor que aloja la página web void IPAddrInit(void) { //Dirección IP de la red MY_IP_BYTE1=148; MY_IP_BYTE2=204; MY_IP_BYTE3=21; MY_IP_BYTE4=9; //puerta de enlace de red MY_GATE_BYTE1=148; MY_GATE_BYTE2=204; MY_GATE_BYTE3=21; MY_GATE_BYTE4=130; //máscara de subred MY_MASK_BYTE1=255; MY_MASK_BYTE2=255; MY_MASK_BYTE3=255; MY_MASK_BYTE4=0; 4.4 Stack De TCP/IP Como se puede observar en el desarrollo del programa anterior, este llama un programa llamado stacktsk.c, el cual es el Stack de TCP/IP proporcionado por Microchip. 71

73 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP /********************************************************************* * Implementación del Stack FSM TCP/IP de Microchip en PIC18 ********************************************************************* * FileName: StackTsk.c * Dependencies: StackTsk.H * ARPTsk.h * MAC.h * IP.h * ICMP.h * Tcp.h * http.h * Processor: PIC18 * Complier: CCS PCH más alto * Company: Microchip Technology, Inc. * ********************************************************************/ #case #define STACK_INCLUDE #include "tcpip/stacktsk.h" #include <string.h> #include <stdlib.h> #include "tcpip/helpers.c" #include "tcpip/tick.c" //#define debug_stack debug_printf #define debug_stack #if STACK_USE_MAC #include "tcpip/mac.h" #if STACK_USE_MCPENC #include "tcpip/enc28j60.c" #elif STACK_USE_MCPINC #include "tcpip/eth97j60.c" #else #include "tcpip/rtl8019as.c" #if STACK_USE_PPP #include "tcpip/modem.c" #include "tcpip/ppp.c" #include "tcpip/pppwrap.c" #if STACK_USE_SLIP #include "tcpip/slip.c" #ENDIF #if STACK_USE_UDP #include "tcpip/udp.h" #if STACK_USE_DHCP #include "tcpip/dhcp.h" #if STACK_USE_SMTP 72

74 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP #include "tcpip/smtp.h" #if STACK_USE_HTTP #include "tcpip/http.h" #if STACK_USE_HTTP2 #include "tcpip/http2.h" #if STACK_USE_DNS #include "tcpip/dns.h" #if STACK_USE_SNMP #include "tcpip/snmp.h" #if STACK_USE_MPFS #include "tcpip/mpfs.h" #include "tcpip/ip.c" #if STACK_USE_TCP #include "tcpip/tcp.c" #if STACK_USE_ICMP #include "tcpip/icmp.c" #if STACK_USE_UDP #include "tcpip/udp.c" #if STACK_USE_DHCP #include "tcpip/dhcp.c" #if STACK_USE_TELNET #include "tcpip/telnet2.c" #if STACK_USE_ARP #include "tcpip/arptsk.c" #include "tcpip/arp.c" #if STACK_USE_HTTP #include "tcpip/http.c" #if STACK_USE_HTTP2 #include "tcpip/http2.c" #if STACK_USE_MPFS 73

75 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP #include "tcpip/mpfs.c" #if STACK_USE_SMTP #include "tcpip/smtp.c" #if STACK_USE_DNS #include "tcpip/dns.c" #if STACK_USE_ANNOUNCE #include "tcpip/announce.h" #include "tcpip/announce.c" #if STACK_USE_SNMP #include "tcpip/snmp.c" //#define MAX_ICMP_DATA_LEN 64 //movido a icmp.h /* * Stack FSM states. */ typedef enum _SM_STACK { SM_STACK_IDLE=0, SM_STACK_MAC, SM_STACK_IP, SM_STACK_ICMP, SM_STACK_ICMP_REPLY, SM_STACK_ARP, SM_STACK_TCP, SM_STACK_UDP SM_STACK; static SM_STACK smstack; NODE_INFO remotenode; /********************************************************************* * Función: void StackInit(void) * * PreCondición: Ninguna * * Input: Ninguna * * Output: El Stack y sus componentes son inicializados * * Side Effects: Ninguno * * Nota: Esta función debe ser llamada antes de cualquier * stack o de que sus rutinas del componente sean usadas * ********************************************************************/ void StackInit(void) { 74

76 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP smstack = SM_STACK_IDLE; #if STACK_USE_IP_GLEANING STACK_USE_DHCP /* * If DHCP or IP Gleaning is enabled, * startup in Config Mode. */ AppConfig.Flags.bInConfigMode = TRUE; TickInit(); #if STACK_USE_MAC MACInit(); #if STACK_USE_ARP ARPInit(); #if STACK_USE_UDP UDPInit(); #if STACK_USE_TCP TCPInit(); #if STACK_USE_DHCP DHCPReset(); #if STACK_USE_PPP ppp_init(); #if STACK_USE_TELNET TelnetInit(); #if STACK_USE_SMTP SMTPInit(); #if STACK_USE_HTTP HTTP_Init(); /* #if STACK_USE_MCPENC #if MAC_TX_BUFFER_COUNT > 1 #define DebugDisplayVals() debug_stack("\r\ntxb=%u TXB0.ADD=0x%LX TXB0.FR=%U NPL=0x%LX CPL=0x%LX",NICCurrentTxBuffer, TxBuffers[0].StartAddress, TxBuffers[0].bFree, NextPacketLocation.Val, CurrentPacketLocation.Val) #else #define DebugDisplayVals() debug_stack("\r\ntxb=%u NPL=0x%LX CPL=0x%LX", NICCurrentTxBuffer, NextPacketLocation.Val, CurrentPacketLocation.Val) 75

77 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP #else #define DebugDisplayVals() */ #define DebugDisplayVals() /********************************************************************* * Función: void StackTask(void) * * PreCondición: StackInit() ya es llamado. * * Input: Ninguna * * Output: Stack FSM es ejecutado. * * Side Effects: Ninguno * * Nota: Este FSM revisa si hay nuevos paquetes entrantes * y los guía a los componentes apropiados del stack. * También realiza las operaciones de tiempo * * Esta función debe ser llamada periódicamente para * Garantizar repuestas oportunas * ********************************************************************/ void StackTask(void) { static WORD datacount; #if STACK_USE_ICMP static BYTE data[max_icmp_data_len]; static WORD ICMPId; static WORD ICMPSeq; IP_ADDR templocalip; union { BYTE MACFrameType; BYTE IPFrameType; #if STACK_USE_ICMP ICMP_CODE ICMPCode; type; BOOL lbcontinue=false; do { lbcontinue = FALSE; switch(smstack) { case SM_STACK_IDLE: case SM_STACK_MAC: if (!MACGetHeader(&remoteNode.MACAddr, &type.macframetype) ) { #if STACK_USE_DHCP //Normalmente, un aplicación no incluiria el modulo de DHCP si este 76

78 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP //no esta habilitado. Pero en caso de que alguien desee deshabilitar //El módulo de DHCP en tiempo de ejecución, recuerde no //limpiar nuestra dirección IP si el link es removido. if (!DHCPIsDisabled() ) { if (!MACIsLinked() ) { AppConfig.MyIPAddr.Val = 0x ul; AppConfig.Flags.bInConfigMode = TRUE; DHCPReset(); break; lbcontinue = TRUE; if ( type.macframetype == MAC_IP ) { smstack = SM_STACK_IP; else if ( type.macframetype == MAC_ARP ) { smstack = SM_STACK_ARP; else { MACDiscardRx(); break; case SM_STACK_ARP: #if STACK_USE_ARP if ( ARPProcess() ) { smstack = SM_STACK_IDLE; #else smstack = SM_STACK_IDLE; break; case SM_STACK_IP: if ( IPGetHeader(&tempLocalIP, &remotenode, &type.ipframetype, &datacount) ) { lbcontinue = TRUE; if ( type.ipframetype == IP_PROT_ICMP ) { smstack = SM_STACK_ICMP; #if STACK_USE_IP_GLEANING if(appconfig.flags.binconfigmode &&!DHCPIsDisabled()) { /* *De acuerdo al procedimiento de "IP Gleaning", cuando * recibimos un paquete de ICMP con una dirección * IP válida mientras aún estamos en modo de * Configuración, acepte esa dirección como nuestra * y concluya el modo de configuración */ 77

79 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP if( templocalip.val!= 0xffffffff ) { AppConfig.Flags.bInConfigMode = FALSE; AppConfig.MyIPAddr = templocalip; mydhcpbindcount--; #if STACK_USE_TCP else if ( type.ipframetype == IP_PROT_TCP ) { smstack = SM_STACK_TCP; debug_stack("tcp "); #if STACK_USE_UDP else if ( type.ipframetype == IP_PROT_UDP ) { smstack = SM_STACK_UDP; debug_stack("udp "); else { lbcontinue = FALSE; MACDiscardRx(); smstack = SM_STACK_IDLE; else { MACDiscardRx(); smstack = SM_STACK_IDLE; debug_stack("unkown-ip2 "); break; #if STACK_USE_UDP case SM_STACK_UDP: if ( UDPProcess(&remoteNode, &templocalip, datacount) ) { debug_stack("\r\nudp PROCESSED"); DebugDisplayVals(); smstack = SM_STACK_IDLE; break; #if STACK_USE_TCP case SM_STACK_TCP: if ( TCPProcess(&remoteNode, &templocalip, datacount) ) { DebugDisplayVals(); smstack = SM_STACK_IDLE; break; 78

80 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP case SM_STACK_ICMP: smstack = SM_STACK_IDLE; #if STACK_USE_ICMP //if ( datacount <= (MAX_ICMP_DATA_LEN+9) ) if ( datacount <= (MAX_ICMP_DATA_LEN+8) ) { if ( ICMPGet(&type.ICMPCode, data, (BYTE*)&dataCount, &ICMPId, &ICMPSeq) ) { if ( type.icmpcode == ICMP_ECHO_REQUEST ) { debug_stack("\r\nicmp PROCESSED"); lbcontinue = TRUE; smstack = SM_STACK_ICMP_REPLY; DebugDisplayVals(); MACDiscardRx(); break; #if STACK_USE_ICMP case SM_STACK_ICMP_REPLY: if ( ICMPIsTxReady() ) { ICMPPut(&remoteNode, ICMP_ECHO_REPLY, data, (BYTE)dataCount, ICMPId, ICMPSeq); DebugDisplayVals(); smstack = SM_STACK_IDLE; break; while( lbcontinue ); #if STACK_USE_SMTP SMTPTask(); #if STACK_USE_TCP // Perform timed TCP FSM. TCPTick(); #if STACK_USE_TELNET TelnetTask(); 79

81 UNIDAD 4. PROGRAMACIÓN DEL PROTOCOLO TCP/IP #if STACK_USE_HTTP HTTP_Task(); #if STACK_USE_DHCP /* * DHCP debe ser llamado todo el tiempo aún después de que la * configuración del IP sea descubierta. * DHCP has to account lease expiration time and renew the configuration * time. */ DHCPTask(); if ( DHCPIsBound() ) AppConfig.Flags.bInConfigMode = FALSE; Como se puede observar en el stack de TCP/IP proporcionado por Microchip, este contiene toda la información de los diversos protocolos utilizados por TCP/IP y que permiten realizar las diferentes actividades como envío y recibo de paquetes e información, entre otras cosas. 80

82 UNIDAD 5. PRUEBAS DE HARDWARE UNIDAD 5 PRUEBAS DE HARDWARE 5.1 Diseño E Implementación De Un Arrancador Suave De Motores Monofásicos De Inducción De Baja Potencia Con Un Mínimo De Electrónica En este capitulo se presenta el diseño e implementación de un arrancador suave de motores de C. A. monofásicos, empleando la menor cantidad posible de componentes electrónicos. Además del hardware, también se presenta la programación del microcontrolador (PIC18F4620 de Microchip Inc.) que se encarga del accionamiento de los dispositivos de potencia Introducción Desde la aparición de los primeros motores eléctricos, los ingenieros han buscado una manera de evitar los problemas mecánicos y eléctricos que se producen al utilizar arrancadores de conexión directa o a tensión reducida tipo estrella-delta (para motores trifásicos) o autotransformador. La conexión de los motores de C. A., utilizados para accionar ventiladores, trituradoras, agitadores, bombas, cintas transportadoras, etc., producen cotidianamente innecesarios picos de intensidad en las plantas de producción. Estos arranques violentos causan daños de diferente naturaleza. Entre ellos los siguientes: Problemas eléctricos debidos a transitorios de tensión y de intensidad provocados por los arranques directos (a tensión plena) o a tensión reducida tipo estrella-delta o autotransformador. Estos transitorios pueden sobrecargar la red y provocar variaciones de tensión que interfieren con el funcionamiento de otros equipos eléctricos conectados a la red. Problemas mecánicos que afectan a todo el accionamiento, desde el propio motor hasta el equipo accionador, pudiendo llegar a provocar esfuerzos extremos en los materiales. Problemas funcionales, como pueden ser aumentos bruscos de la presión de líquidos bombeados por los motores, daños a productos situados en cintas transportadoras, o un movimiento no suficientemente constante de escaleras mecánicas. Los arrancadores suaves son la solución idónea y sencilla para todos estos problemas, pues es posible realizar arranques y paros suavemente (con incrementos y decrementos paulatinos de la tensión rms), reduciendo al mínimo tiempo los esfuerzos eléctricos y mecánicos. 5.2 Funcionamiento Del Arrancador El diagrama de bloques que se muestra en la Figura 5.1 muestra el funcionamiento del arrancador. En forma general, el arrancador detecta el cruce por cero del voltaje de alimentación senoidal. En este momento se inicializa un contador que se incrementa ( 256 * 4) / clock veces por segundo 1. Si el contador es igual a la variable a_disparo entonces se da la señal de disparo al TRIAC. 1 Clock es la frecuencia del cristal oscilador con el que trabaja el microcontrolador. En el desarrollo que se muestra en esta tesis el cristal es de 4 MHz, por lo que se incrementa cada 25.5 μs. 81

83 UNIDAD 5. PRUEBAS DE HARDWARE a_disparo se varía en base al número de ciclos en los que se desee que pase de la tensión de arranque a la tensión nominal (en donde a_disparo = 0) Detección De Cruce Por Cero La detección de cruce por cero de la señal senoidal de voltaje es la primera etapa del control suave del arrancador. Tiene como finalidad la de proporcionar una referencia (punto de partida) al microcontrolador para hacer un adecuado control del ángulo de disparo a_disparo. El ángulo de dispara varía entre 0 y 180º (0 y 1/2T segundos). La Fig. 5.2 muestra el circuito de detección de cruce por cero. Los elementos que integran este circuito son: Donde: a. Resistencia R1 limitadora de corriente. Tienen como finalidad la de limitar la corriente de los diodos del puente rectificador (1N4001), el diodo zener (1N5240) y el LED del optoacoplador (H11L1). Se calcula de acuerdo a la corriente en sentido directo I F del diodo del optoacoplador y la caída de voltaje en sus terminales en la misma condición de operación, es decir: R V V I (1) 1 p F F o V p Es el valor pico de la senoidal de entrada. o V F Voltaje en sentido directo del diodo del optoacoplador. o I F Corriente en sentido directo del diodo del optoacoplador. I F y V F se elegirán de, aproximadamente, un tercio del valor máximo permisible (I Fmax = 60 ma y V F = 9 V para I Fmax ), por lo que: 3 R1((127* 2) 3) Se elegirá un valor comercial de 10 k Ω, con lo que se limita la corriente en el diodo del optoacoplador a 17 ma. Considerando esta corriente y el valor de la resistencia, se obtiene una potencia disipada de 2.89 W, por lo que se elige un valor comercial de 3 W. 82

TEMA: PROTOCOLOS TCP/IP

TEMA: PROTOCOLOS TCP/IP TEMA: PROTOCOLOS TCP/IP HISTORIA: El Protocolo de Internet (IP) y el Protocolo de Transmisión (TCP), fueron desarrollados inicialmente en 1973 por el informático estadounidense Vinton Cerf como parte de

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET Cada capa de la pila añade a los datos a enviar a la capa inferior, información de control para que el envío sea correcto. Esta información

Más detalles

8 Conjunto de protocolos TCP/IP y direccionamiento IP

8 Conjunto de protocolos TCP/IP y direccionamiento IP 8 Conjunto de protocolos TCP/IP y direccionamiento IP 8.1 Introducción a TCP/IP 8.1.1 Historia de TCP/IP El Departamento de Defensa de EE.UU. (DoD) creó el modelo de referencia TCP/IP porque necesitaba

Más detalles

Capa de TRANSPORTE. Ing. José Martín Calixto Cely Original: Galo Valencia P.

Capa de TRANSPORTE. Ing. José Martín Calixto Cely Original: Galo Valencia P. Capa de TRANSPORTE Ing. José Martín Calixto Cely Original: Galo Valencia P. Capa de Transporte La Capa 1 crea y transporta las corrientes de bits; La Capa 2 encapsula los paquetes de datos en tramas, y

Más detalles

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. http://www.icc.uji.es. CAPÍTULO 8: El nivel de transporte en Internet

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. http://www.icc.uji.es. CAPÍTULO 8: El nivel de transporte en Internet Redes (IS20) Ingeniería Técnica en Informática de Sistemas http://www.icc.uji.es CAPÍTULO 8: El nivel de transporte en Internet ÍNDICE 1. Introducción Curso 2002-2003 - Redes (IS20) -Capítulo 8 1 1. Introducción

Más detalles

Arquitectura de Redes y Comunicaciones

Arquitectura de Redes y Comunicaciones DIRECCIONAMIENTO IP Una dirección IP es un número que identifica de manera lógica y jerárquica a una interfaz de un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo

Más detalles

DIRECCIONAMIENTO IPv4

DIRECCIONAMIENTO IPv4 DIRECCIONAMIENTO IPv4 Para el funcionamiento de una red, todos sus dispositivos requieren una dirección IP única: La dirección MAC. Las direcciones IP están construidas de dos partes: el identificador

Más detalles

Redes de alta velocidad. William Stallings Traducido por Horacio Goetendía Bonilla

Redes de alta velocidad. William Stallings Traducido por Horacio Goetendía Bonilla Redes de alta velocidad William Stallings Traducido por Horacio Goetendía Bonilla 16 de Noviembre de 2003 2 Capítulo 1 Protocolos y el conjunto de protocolos TCP/IP Para destruir la comunicación completamente,

Más detalles

TEMA 25: El Protocolo TCP/IP.

TEMA 25: El Protocolo TCP/IP. Tema 25 Protocolo TCP/IP TEMA 25: El Protocolo TCP/IP. Índice 1 INTRODUCCIÓN 1 1.1 Historia 1 2 CAPAS DEL PROTOCOLO 2 2.1 La capa de aplicación 2 2.2 La capa de transporte 3 2.2.1 El protocolo TCP Protocolo

Más detalles

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET 1 EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET La familia de protocolos TCP/IP fue diseñada para permitir la interconexión entre distintas redes. El mejor ejemplo es Internet: se trata

Más detalles

Capítulo 9 Redes y Teleinformática 9.1 Introducción

Capítulo 9 Redes y Teleinformática 9.1 Introducción 9.1 Introducción El objetivo principal de una red consiste en "compartir recursos", es decir, que todos los programas, datos y equipos estén disponibles para cualquiera de la red que así lo solicite, sin

Más detalles

INTRODUCCIÓN. El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI, proporcionando un transporte fiable de datos.

INTRODUCCIÓN. El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI, proporcionando un transporte fiable de datos. INTRODUCCIÓN Aunque poca gente sabe lo que es TCP/IP todos lo emplean indirectamente y lo confunden con un solo protocolo cuando en realidad son varios, de entre los cuales destaca y es el mas importante

Más detalles

MODELOS TCP/IP Y OSI

MODELOS TCP/IP Y OSI MODELOS TCP/IP Y OSI MODELO OSI El modelo de referencia de Interconexión de Sistemas Abiertos (OSI, Open System Interconnection) es el modelo de red descriptivo creado por la Organización Internacional

Más detalles

01/10/2010. 14. Conjunto de protocolos TCP/IP. Contenido. a. TCP/IP Internet OSI. a. TCP/IP Internet OSI. b. Nivel de red Protocolo IP

01/10/2010. 14. Conjunto de protocolos TCP/IP. Contenido. a. TCP/IP Internet OSI. a. TCP/IP Internet OSI. b. Nivel de red Protocolo IP 14. Conjunto de protocolos TCP/IP Contenido a. TCP/IP Internet OSI b. Nivel de red Protocolo IP c. Direccionamiento y subredes d. Otros protocolos en el nivel de red e. Nivel de transporte a. TCP/IP Internet

Más detalles

TELECOMUNICACIONES Y REDES

TELECOMUNICACIONES Y REDES TELECOMUNICACIONES Y REDES Redes Computacionales I Prof. Cristian Ahumada V. Unidad V: Capa de Red OSI 1. Introducción. 2. Protocolos de cada Red 3. Protocolo IPv4 4. División de Redes 5. Enrutamiento

Más detalles

Ejercicios Tema 1 1.- Supongamos que hay exactamente un switch de paquetes entre un host que envía y un host que recibe. Las tasas de transmisión entre el host que envía y el que recibe son R 1 y R 2 respectivamente.

Más detalles

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network) Conceptos de redes. Una red de ordenadores permite conectar a los mismos con la finalidad de compartir recursos e información. Hablando en términos de networking, lo importante es que todos los dispositivos

Más detalles

Unidad 3 Direccionamiento IP (Subnetting)

Unidad 3 Direccionamiento IP (Subnetting) Unidad 3 Direccionamiento IP (Subnetting) Las direcciones denominadas IPv4 se expresan por combinaciones de números de hasta 32 bits que permiten hasta 2 32 posibilidades (4.294.967.296 en total). Los

Más detalles

TEMA 1. Introducción

TEMA 1. Introducción TEMA 1 Introducción Contenidos: Visión estructurada de los sistemas de transmisión de datos. Arquitectura de protocolos. 1 Modelo simplificado de comunicaciones Fuente Transmisor Sistema de transmisión

Más detalles

8. Las VLAN 8.1. Visión general de las VLAN La solución para la comunidad de la universidad es utilizar una tecnología de networking

8. Las VLAN 8.1. Visión general de las VLAN La solución para la comunidad de la universidad es utilizar una tecnología de networking 8. Las VLAN 8.1. Visión general de las VLAN La solución para la comunidad de la universidad es utilizar una tecnología de networking denominada LAN virtual (VLAN). Una VLAN permite que un administrador

Más detalles

DIRECCIONAMIENTO DE RED. Direcciones IPv4

DIRECCIONAMIENTO DE RED. Direcciones IPv4 DIRECCIONAMIENTO DE RED Direcciones IPv4 Introducción La dirección de capa de red que permiten la comunicación de datos entre los hosts en la misma red o en diversas redes. El protocolo de internet versión

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

La vida en un mundo centrado en la red

La vida en un mundo centrado en la red La vida en un mundo centrado en la red Aspectos básicos de networking: Capítulo 6 1 Objetivos Explicar la estructura del direccionamiento IP y a convertir entre números binarios y números decimales. Clasificar

Más detalles

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE RED

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE RED FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE RED Dolly Gómez Santacruz dolly.gomez@gmail.com CAPA DE RED La capa de red se ocupa de enviar paquetes de un punto a otro, para lo cual utiliza los servicios

Más detalles

Tema 4.1: - TRANSPORTE-

Tema 4.1: - TRANSPORTE- Tema 4.1: - TRANSPORTE- -Introducción - Terminología OSI - Tipologia y complejidad - Servicios - Calidad de servicio - Conexiones de transporte - Transporte en Internet - Introducción. Su función básica

Más detalles

Redes de Datos 1er parcial año 2010

Redes de Datos 1er parcial año 2010 31 de julio de 2010 Redes de Datos 1er parcial año 2010 Las hojas se escriben de un solo lado y preguntas separadas se responden en hojas separadas. Letra clara y legible. Respuesta concisa. Nombre, número

Más detalles

Direccionamiento IPv4

Direccionamiento IPv4 Direccionamiento IPV4 Página 1 de 15 www.monografias.com Direccionamiento IPv4 1. Direccionamiento IP 2. Componentes de una dirección IP 3. Determinación de la clase de dirección 4. Determinación de los

Más detalles

Comunicación entre Procesos y Sockets

Comunicación entre Procesos y Sockets Temas de la clase de hoy Proceso Sockets Dominios, protocolos y tipos vinculados a los sockets Introducción a Stream y Datagram El modelo cliente-servidor Funciones del cliente Funciones del servidor Orientación

Más detalles

Redes de computadores. Práctica 3

Redes de computadores. Práctica 3 Ingenieria Informática. Redes de computadores Práctica 3 El protocolo TCP 1 El protocolo TCP Introducción a TCP TCP es un protocolo de nivel de transporte completo que proporciona un servicio de transferencia

Más detalles

Protocolos de red. IP: Internet Protocol

Protocolos de red. IP: Internet Protocol Protocolos de red Para comunicarse, bien sea entre personas, bien sea entre máquinas, es necesario establecer una serie de reglas (idioma, decidir quién habla primero, cómo se solicita turno para hablar,

Más detalles

Institución Educativa Inem Felipe Pérez de Pereira 2012 Estrategia taller. AREA: Sistemas de información Taller 1 2 3 4 Previsto 1 2 3 4 5 6 7 8 9 10

Institución Educativa Inem Felipe Pérez de Pereira 2012 Estrategia taller. AREA: Sistemas de información Taller 1 2 3 4 Previsto 1 2 3 4 5 6 7 8 9 10 Grado 10º Tiempo (semanas) GUÍA DE FUNDAMENTACIÓN Institución Educativa AREA: Sistemas de información Taller 1 2 3 4 Previsto 1 2 3 4 5 6 7 8 9 10 Fecha Real 1 2 3 4 5 6 7 8 9 10 Área/proyecto: es y Mantenimiento

Más detalles

Es un conjunto de dispositivos interconectados entre si que comparten recursos y/o servicios como video, voz y datos a través de medios guiados, no

Es un conjunto de dispositivos interconectados entre si que comparten recursos y/o servicios como video, voz y datos a través de medios guiados, no Es un conjunto de dispositivos interconectados entre si que comparten recursos y/o servicios como video, voz y datos a través de medios guiados, no guiados o una combinación de ambos. El medio de transmisión

Más detalles

Protocolo IP. Campos del paquete IP:

Protocolo IP. Campos del paquete IP: Protocolo IP Campos del paquete IP: _ - Versión - Longitud de cabecera. - Tipo de servicio (prioridad). - Longitud total. - Identificación. - Flags para la fragmentación. - Desplazamiento del fragmento.

Más detalles

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre 2014. Reporte De Lectura

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre 2014. Reporte De Lectura INSTITUTO TECNOLÓGICO DE SALINA CRUZ Fundamentos De Redes Semestre Agosto-Diciembre 2014 Reporte De Lectura Lectura Capítulo IV UNIDAD 3: Capa de red y direccionamiento de la red: IPv4 NOMBRE: Liña Quecha

Más detalles

Capítulo 6 Introducción a TCP/IP

Capítulo 6 Introducción a TCP/IP Introducción a TCP/IP El Departamento de Defensa (DoD) de EEUU creó el modelo de referencia TCP/IP. El modelo TCP/IP tiene cuatro capas: la capa de aplicación, la capa de transporte, la capa de internet

Más detalles

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN Los protocolos de capa de aplicación de TCP/IP más conocidos son aquellos que proporcionan intercambio de la información

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES:

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES: DIRECCIONES IP Y CLASES DE REDES: La dirección IP de un dispositivo, es una dirección de 32 bits escritos en forma de cuatro octetos. Cada posición dentro del octeto representa una potencia de dos diferente.

Más detalles

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

CAPÍTULO I. Sistemas de Control Distribuido (SCD). 1.1 Sistemas de Control. Un sistema es un ente cuya función es la de recibir acciones externas llamadas variables de entrada que a su vez provocan una o varias reacciones como respuesta llamadas variables

Más detalles

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA 3.1 INTRODUCCIÓN En un centro de llamadas de emergencia de nueve llamadas que se reciben solo una es real y las ocho restantes

Más detalles

Introducción al enrutamiento y envío de paquetes

Introducción al enrutamiento y envío de paquetes Introducción al enrutamiento y envío de paquetes Conceptos y protocolos de enrutamiento. Capítulo 1 Ing. Aníbal Coto 1 Objetivos Identificar un router como una computadora con SO y hardware diseñados para

Más detalles

La revolución del contenido multimedia de pies a cabeza.

La revolución del contenido multimedia de pies a cabeza. La revolución del contenido multimedia de pies a cabeza. Resumen Los streaming de video pasan por un buen momento, esto debido a la facilidad que se tiene a su acceso, esto se puede observar en que cerca

Más detalles

AUTORES: OBREGON CARLA 20.621.330 ROMERO MARIA 19.118.452 MARACAIBO FEBRERO 2012

AUTORES: OBREGON CARLA 20.621.330 ROMERO MARIA 19.118.452 MARACAIBO FEBRERO 2012 REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL DE LAS FUERZAS ARMADAS BOLIVARIANA DOCENTE: JOSE PARRA CATEDRA: REDES MARACAIBO FEBRERO

Más detalles

ARQUITECTURAS CLIENTE/SERVIDOR

ARQUITECTURAS CLIENTE/SERVIDOR Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza 1 ARQUITECTURAS CLIENTE/SERVIDOR Conceptos básicos Arquitecturas Cliente/Servidor, Sem 2016-1 M.I.Yasmine Macedo Reza 2 Conceptos básicos

Más detalles

16.36: Ingeniería de sistemas de comunicación. Clase 15: ProtocolosARQ. Eytan Modiano

16.36: Ingeniería de sistemas de comunicación. Clase 15: ProtocolosARQ. Eytan Modiano 16.36: Ingeniería de sistemas de comunicación Clase 15: ProtocolosARQ Eytan Modiano Solicitud de repetición automática (ARQ) Divide archivos de gran tamaño en paquetes ARCHIVO PKT H PKT H PKT H Comprueba

Más detalles

1. Solicitando una cuenta de correo a nuestro proveedor de Internet. 2. Adquiriendo una cuenta de correo a través de la web (webmail).

1. Solicitando una cuenta de correo a nuestro proveedor de Internet. 2. Adquiriendo una cuenta de correo a través de la web (webmail). CORREO ELECTRÓNICO NIVEL BÁSICO DE CORREO ELECTRÓNICO INICIACIÓN A CORREO ELECTRÓNICO OBTENER UNA CUENTA DE CORREO ELECTRÓNICO GRATUITA Al correo electrónico también se lo conoce como e-mail, abreviatura

Más detalles

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDADES DE ALMACENAMIENTO DE DATOS 1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo

Más detalles

CAPÍTULO 3 3 DISEÑO DE UN MECANISMO DE DETECCIÓN DE TRÁFICO MALICIOSO PARA REDUNAM

CAPÍTULO 3 3 DISEÑO DE UN MECANISMO DE DETECCIÓN DE TRÁFICO MALICIOSO PARA REDUNAM CAPÍTULO 3 3 DISEÑO DE UN MECANISMO DE DETECCIÓN DE TRÁFICO MALICIOSO PARA REDUNAM 59 En este tercer capítulo se presenta el diseño de un mecanismo de detección de tráfico malicioso para RedUNAM. Abarca

Más detalles

Objetivos. Comprender el funcionamiento de Internet y los protocolos que la hacen funcionar

Objetivos. Comprender el funcionamiento de Internet y los protocolos que la hacen funcionar Internet Jorge Juan Chico , Julián Viejo Cortés 2011-14 Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir y comunicar

Más detalles

INSTITUCIÓN EDUCATIVA JOSÉ EUSEBIO CARO ÁREA DE TECNOLOGÍA E INFORMÁTICA 2016 DOCENTE HARDWARE DE RED

INSTITUCIÓN EDUCATIVA JOSÉ EUSEBIO CARO ÁREA DE TECNOLOGÍA E INFORMÁTICA 2016 DOCENTE HARDWARE DE RED INSTITUCIÓN EDUCATIVA JOSÉ EUSEBIO CARO ÁREA DE TECNOLOGÍA E INFORMÁTICA 2016 DOCENTE JESÚS EDUARDO MADROÑERO RUALES CORREO jesus.madronero@hotmail.com TEMA REDES DE COMPUTADORES III GRADO NOVENO FECHA

Más detalles

MATERIAL 2 EXCEL 2007

MATERIAL 2 EXCEL 2007 INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta

Más detalles

GUÍA BÁSICA DE USO DEL SISTEMA RED

GUÍA BÁSICA DE USO DEL SISTEMA RED SUBDIRECCIÓN GENERAL DE INSCRIPCIÓN, AFILIACION Y RECAUDACIÓN EN PERIODO VOLUNTARIO GUÍA BÁSICA DE USO DEL SISTEMA RED Marzo 2005 MINISTERIO DE TRABAJO Y ASUNTOS SOCIALES TESORERÍA GENERAL DE LA SEGURIDAD

Más detalles

CSIR2121. Administración de Redes I

CSIR2121. Administración de Redes I CSIR2121 Administración de Redes I Objetivos: Al finalizar la clase el estudiante podrá: Mencionar el propósito del desarrollo del modelo TCP/IP. Explicar cada una de las capas del modelo TCP/IP. Comparar

Más detalles

Fundamentos de Ethernet. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia

Fundamentos de Ethernet. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia Fundamentos de Ethernet. Ing. Camilo Zapata czapata@udea.edu.co Universidad de Antioquia Ethernet es el protocolo del nivel de enlace de datos más utilizado en estos momentos. Se han actualizado los estandares

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

Índice general. Tipos de servicio de transporte. Por qué un nivel de transporte? TEMA 6 Funciones de los niveles superiores. Miguel A.

Índice general. Tipos de servicio de transporte. Por qué un nivel de transporte? TEMA 6 Funciones de los niveles superiores. Miguel A. Arquitectura de Redes, Sistemas y Servicios Curso 2007/2008 TEMA 6 Funciones de los niveles superiores Miguel A. Gómez Hernández ARITT/ITT-IT CURSO 07/08 TEMA 6 (2) Por qué un nivel de transporte? Tipos

Más detalles

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN Los protocolos de capa de aplicación de TCP/IP más conocidos son aquellos que proporcionan intercambio de la información

Más detalles

Capitulo 2: Enrutamiento Estático

Capitulo 2: Enrutamiento Estático Capitulo 2: Enrutamiento Estático 1. El resultado del comando show interfaces serial 0/1 de Router# muestra lo siguiente: Serial0/1 is up, line protocol is down Cuál es la causa más probable de que el

Más detalles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es

Más detalles

MANUAL DEL SISTEMA DE INFORMACIÓN DE EXPEDIENTES DEL GOBIERNO DE LA CIUDAD DE SANTA FE

MANUAL DEL SISTEMA DE INFORMACIÓN DE EXPEDIENTES DEL GOBIERNO DE LA CIUDAD DE SANTA FE MANUAL DEL SISTEMA DE INFORMACIÓN DE EXPEDIENTES DEL GOBIERNO DE LA CIUDAD Subsecretaría de Reforma y Modernización del Estado Programa Municipio Digital ÍNDICE Características del sistema... 2 Funcionalidades...

Más detalles

Capas del Modelo ISO/OSI

Capas del Modelo ISO/OSI Modelo ISO/OSI Fue desarrollado en 1984 por la Organización Internacional de Estándares (ISO), una federación global de organizaciones que representa aproximadamente a 130 países. El núcleo de este estándar

Más detalles

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS La introducción de las redes locales marca una nueva etapa en la evolución de las computadoras personales al permitir ligar varias

Más detalles

REDES AD HOC INFORME DE REDES DE COMPUTADORES I. Felipe Muñoz 201321074-0 Jonathan Porta 201321054-6 Matías Contreras 201321034-1

REDES AD HOC INFORME DE REDES DE COMPUTADORES I. Felipe Muñoz 201321074-0 Jonathan Porta 201321054-6 Matías Contreras 201321034-1 REDES AD HOC INFORME DE REDES DE COMPUTADORES I Nombre ROL Felipe Muñoz 201321074-0 Jonathan Porta 201321054-6 Matías Contreras 201321034-1 Profesor: Agustín González Fecha: 28 de Julio del 2014 Nota:

Más detalles

REDES DE COMPUTADORES FACULTAD DE INGENIERIA ELECTRONICA UNIVERSIDAD PONTIFICIA BOLIVARIANA. Profesor: Jhon Jairo Padilla Aguilar, Ph.D.

REDES DE COMPUTADORES FACULTAD DE INGENIERIA ELECTRONICA UNIVERSIDAD PONTIFICIA BOLIVARIANA. Profesor: Jhon Jairo Padilla Aguilar, Ph.D. REDES DE COMPUTADORES FACULTAD DE INGENIERIA ELECTRONICA UNIVERSIDAD PONTIFICIA BOLIVARIANA Profesor: Jhon Jairo Padilla Aguilar, Ph.D. PRACTICA DE LABORATORIO TITULO: MANEJO DE UN ANALIZADOR DE PROTOCOLOS

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Práctica de laboratorio 4.5.2: Protocolos de la capa de Transporte TCP/IP, TCP y UDP Diagrama de topología

Práctica de laboratorio 4.5.2: Protocolos de la capa de Transporte TCP/IP, TCP y UDP Diagrama de topología Práctica de laboratorio 4.5.2: Protocolos de la capa de Transporte TCP/IP, TCP y UDP Diagrama de topología Este documento es información pública de Cisco. Página 1 de 10 Tabla de direccionamiento Dispositivo

Más detalles

bla bla Guard Guía del usuario

bla bla Guard Guía del usuario bla bla Guard Guía del usuario Guard Guard: Guía del usuario fecha de publicación Viernes, 24. Julio 2015 Version 2.0.0 Copyright 2006-2015 OPEN-XCHANGE Inc., La propiedad intelectual de este documento

Más detalles

TEMA 7 PROTOCOLOS DE TRANSPORTE. TCP Y UDP.

TEMA 7 PROTOCOLOS DE TRANSPORTE. TCP Y UDP. TEMA 7 PROTOCOLOS DE TRANSPORTE. TCP Y UDP. 7.1 Generalidades El nivel de transporte proporciona un servicio extremo a extremo, puede ser. o Confiable, u orientado a conexión como TCP o No confiable, o

Más detalles

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE OBJETIVOS Aprender el manejo de entrada/salida con ficheros

Más detalles

NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN

NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN NOTIFICACIÓN DE MOVIMIENTOS DE ESTUPEFACIENTES POR PARTE DE LOS LABORATORIOS FARMACÉUTICOS Y ALMACENES MAYORISTAS DE DISTRIBUCIÓN GUÍA PARA LA PRESENTACIÓN DE NOTIFICACIONES Versión: 27/06/2012-1 ÍNDICE:

Más detalles

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...

Más detalles

1 adpto. de Teoría de la Señal, Comunicaciones e Ingeniería Telemática E.T.S.I. Telecomunicación Universidad de Valladolid

1 adpto. de Teoría de la Señal, Comunicaciones e Ingeniería Telemática E.T.S.I. Telecomunicación Universidad de Valladolid 1 adpto. de Teoría de la Señal, Comunicaciones e Ingeniería Telemática E.T.S.I. Telecomunicación Universidad de Valladolid Arquitectura de Redes, Sistemas y Servicios Ing. Técnica de Telecomunicación /

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Conceptos básicos 1 Conceptos básicos 1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea

Más detalles

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

INSTITUTO TECNOLÓGICO DE SALINA CRUZ INSTITUTO TECNOLÓGICO DE SALINA CRUZ MATERIA: Redes de Computadora TEMA: Enrutamiento estático y dinámico DOCENTE: M.C. Susana Mónica Román Nájera ALUMNO: RODOLFO LOPEZ ANOTA SEMESTRE: VI GRUPO: E CARRERA:

Más detalles

Dirección IP - Características

Dirección IP - Características Dirección IP - Características Las direcciones IP se denominan direcciones lógicas. Tienen un direccionamiento Jerárquico. Representan una conexión de la máquina a la red y no la máquina misma. Existen

Más detalles

REDES INFORMATICAS: Protocolo IP

REDES INFORMATICAS: Protocolo IP REDES INFORMATICAS: Protocolo IP 1. PRINCIPIOS BÁSICOS DE IP El protocolo IP se basa en tres principios básicos: Un direccionamiento de los ordenadores. Un tipo de dato: el datragrama IP. Un algoritmo

Más detalles

Universidad Central de Bayamón Colegio de Desarrollo Empresarial & Tecnología

Universidad Central de Bayamón Colegio de Desarrollo Empresarial & Tecnología Universidad Central de Bayamón Colegio de Desarrollo Empresarial & Tecnología Número de Estudiante: Fecha: Nombre: Examen Parcial #2- REDES 315 Prof. Carlos A Rodríguez Sánchez Parte I- Selección Múltiple.

Más detalles

(decimal) 128.10.2.30 (hexadecimal) 80.0A.02.1E (binario) 10000000.00001010.00000010.00011110

(decimal) 128.10.2.30 (hexadecimal) 80.0A.02.1E (binario) 10000000.00001010.00000010.00011110 REDES Internet no es un nuevo tipo de red física, sino un conjunto de tecnologías que permiten interconectar redes muy distintas entre sí. Internet no es dependiente de la máquina ni del sistema operativo

Más detalles

Caso práctico de Cuadro de Mando con Tablas Dinámicas

Caso práctico de Cuadro de Mando con Tablas Dinámicas 1 Caso práctico de Cuadro de Mando con Tablas Dinámicas Luis Muñiz Socio Director de SisConGes & Estrategia Introducción Hay una frase célebre que nos permite decir que: Lo que no se mide no se puede controlar

Más detalles

La vida en un mundo centrado en la red

La vida en un mundo centrado en la red La vida en un mundo centrado en la red Aspectos básicos de networking: Capítulo 3 1 Objetivos En este capítulo aprenderá a: Describir cómo las funciones de las tres capas superiores del modelo OSI que

Más detalles

Aspectos Básicos de Networking

Aspectos Básicos de Networking Aspectos Básicos de Networking ASPECTOS BÁSICOS DE NETWORKING 1 Sesión No. 4 Nombre: Capa de transporte del modelo OSI Objetivo: Al término de la sesión el participante aplicará las principales características

Más detalles

Capítulo 6: Conclusiones

Capítulo 6: Conclusiones Capítulo 6: Conclusiones 6.1 Conclusiones generales Sobre el presente trabajo se obtuvieron varias conclusiones sobre la administración del ancho de banda en una red inalámbrica, basadas en la investigación

Más detalles

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060

SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060 SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060 Elaborado por: Departamento de Informática Febrero 2012 SISTEMA InfoSGA _ Manual de Actualización 16/02/2012 ÍNDICE

Más detalles

Univ. de Concepción del Uruguay Facultad de Ciencias Agrarias Ingeniería Agrónoma

Univ. de Concepción del Uruguay Facultad de Ciencias Agrarias Ingeniería Agrónoma INFORMÁTICA Univ. de Concepción del Uruguay Facultad de Ciencias Agrarias Ingeniería Agrónoma Informática Teoría Unidad 5 Prof. Ing Ezequiel Benavente Ciclo lectivo 2014 Diferencias entre un Modem y un

Más detalles

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias Capítulo 5: Pruebas y evaluación del sistema 5.1 Definición de pruebas para la aplicación A continuación se muestran una serie de pruebas propuestas para evaluar varias características importantes del

Más detalles

Telnet Comunicaciones 1. Luis Alfredo da Silva 20.232.871 Gregori Gonzalez 21.218.739 Rhamin Elrhouate 19.777.404 July 2014

Telnet Comunicaciones 1. Luis Alfredo da Silva 20.232.871 Gregori Gonzalez 21.218.739 Rhamin Elrhouate 19.777.404 July 2014 Telnet Comunicaciones 1 Luis Alfredo da Silva 20.232.871 Gregori Gonzalez 21.218.739 Rhamin Elrhouate 19.777.404 July 2014 1 1 Telnet 1.1 Introducción Telnet es uno de los protocolos más antiguos de internet

Más detalles

Introducción a la Administración de una Red bajo IP

Introducción a la Administración de una Red bajo IP Introducción a la Administración de una Red bajo IP Introducción IP es un protocolo de la capa de red, que sirve para encaminar los paquetes de un origen a un destino Este protocolo es el que mantiene

Más detalles

Curso: FT433 - Introducción a la virtualización con VirtualBox

Curso: FT433 - Introducción a la virtualización con VirtualBox forumtecnico.com Curso: FT433 - Introducción a la virtualización con VirtualBox Configuración de red Uno de los aspectos de la virtualización con más número de opciones es la configuración de red. Recordemos

Más detalles

TRANSFERENCIA DE FICHEROS FTP

TRANSFERENCIA DE FICHEROS FTP TRANSFERENCIA DE FICHEROS FTP INTRODUCCIÓN Internet basa su funcionamiento en un conjunto de protocolos de red sin los cuales la comunicación, a cualquier nivel, sería imposible. Algunos de los protocolos

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

INTERNET. UN NUEVO MEDIO PARA LOS NEGOCIOS. ESCUELA UNIVERSITARIA DE INFORMÁTICA

INTERNET. UN NUEVO MEDIO PARA LOS NEGOCIOS. ESCUELA UNIVERSITARIA DE INFORMÁTICA INTERNET. UN NUEVO MEDIO PARA LOS NEGOCIOS. ESCUELA UNIVERSITARIA DE INFORMÁTICA Raúl Martín Martín 1 1.1. Qué es internet?. Conceptos básicos. b 1.1. Redes de ordenadores.- Una red es un conjunto de ordenadores

Más detalles

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP Práctica 9 GESTIÓN Y UTILIZACIÓN DE REDES LOCALES Curso 2001/2002 TCP/IP: protocolo TCP Introducción Como se ha comentado en la práctica anterior, el protocolo UDP es muy sencillo de implementar, pero

Más detalles

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE APLICACIÓN

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE APLICACIÓN FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE APLICACIÓN Mario Alberto Cruz Gartner malcruzg@univalle.edu.co Conceptos La última capa o Capa 7 del modelo OSI se denomina capa de aplicación. La capa de aplicación

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl 1 Colección de Tesis Digitales Universidad de las Américas Puebla Morales Salcedo, Raúl En este último capitulo se hace un recuento de los logros alcanzados durante la elaboración de este proyecto de tesis,

Más detalles

TELNET SSH FTP. Redes de Computadoras. 1º Cuatrimestre 2014. Adrian Juri Juan Pablo Moraes Patricio Tella Arena

TELNET SSH FTP. Redes de Computadoras. 1º Cuatrimestre 2014. Adrian Juri Juan Pablo Moraes Patricio Tella Arena Redes de Computadoras 1º Cuatrimestre 2014 TELNET SSH FTP Adrian Juri Juan Pablo Moraes Patricio Tella Arena TELNET Que es Telnet? Es la abreviatura de Telecommunication Network o Red de Telecomunicaciones.

Más detalles

CAPÍTULO IV. Paquetes y Rutinas de Transmisión y Recepción del Autómata

CAPÍTULO IV. Paquetes y Rutinas de Transmisión y Recepción del Autómata CAPÍTULO IV Paquetes y Rutinas de Transmisión y Recepción del Autómata En este capítulo hablaremos de los enlaces físicos de comunicación SCO y ACL siendo este último es que ocupará el Autómata en la conexión

Más detalles

Arquitectura de Redes

Arquitectura de Redes Arquitectura de Redes Problemas propuestos Raúl Durán Díaz Departamento de Automática Universidad de Alcalá ALCALÁ DE HENARES, 2011, 2012, 2013 Raúl Durán Díaz Departamento de Automática Universidad de

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

Funcionamiento del Correo Electrónico

Funcionamiento del Correo Electrónico file:///d /Mis%20Webs/miWeb2/PUBLIC/Temas%20de%20clase/primero/Entrega1/Como%20funciona%20el%20correo%20electronico/index.htm Funcionamiento del Correo Electrónico En esta página encontrarás la información

Más detalles