DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERÍA.148.206.53.84/tesiuami/UAMI12498.pdf · Otro de los...

107

Transcript of DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERÍA.148.206.53.84/tesiuami/UAMI12498.pdf · Otro de los...

DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERÍA.

PROYECTO FINAL DE LICENCIATURA EN

INGENIERÍA ELECTRÓNICA

TÍTULO DE PROYECTO:

ALUMNOS:

ASESOR:

!!"

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

ii

ÍNDICE 1. Objetivos e Introducción ……………………………………........................….... 1

1.1. Objetivos generales ........................................................................................... 2

1.2. Objetivos particulares ………………………………………………………… 2

1.3. Resumen ……………………………………………………………………… 2

1.4. Introducción ………………………………………………………………….. 3

2. Antecedentes Teóricos …………………………………………………………… 4

2.1. Sensores y transductores ……………………………………………………… 5

2.2. Microprocesadores y Microcontroladores ……………………………………. 7

2.3. Acondicionadores de señal …………………………………………………… 10

2.3.1. Amplificadores operacionales ………………………………………… 10

2.4. Convertidores Analógico – Digital. ………………………………………….. 11

2.5. Interfases de alto voltaje y potencia ………………………………………….. 13

2.6. Motores de pasos de CD …………………………………………………….... 16

2.7. Suministros de voltaje ………………………………………………………… 20

2.8. Comunicación remota, protocolos TCP/IP …………………………………… 21

2.9. Comunicación serial ………………………………………………………….. 24

2.9.1. Transmisión Serie Asíncrona …………………………………………. 26

2.9.2. Estándar de Comunicación RS-232 …………………………………… 27

3. Bases de Diseño …………………………………………………………………... 28

3.1. Selección de transductores según las variables a medir ……………………… 29

3.1.1. Temperatura (LM35) ………………………………………………….. 29

3.1.2. Luminosidad (OP550A) ………………………………………………. 32

3.1.3. Sensores de puerta (SPST) ……………………………………………. 34

3.2. Convertidor Analógico – Digital (ADC0809) ……………………………….. 34

3.2.1. Descripción funcional ………………………………………………… 34

3.2.2. Señales de control para conversión …………………………………… 37

3.2.3. Ecuaciones de conversión …………………………………………….. 38

3.3. Adaptación de las señales ……………………………………………………. 39

3.3.1. Señal del transductor de temperatura …………………………………. 39

3.3.2. Señal del transductor de luminosidad ………………………………… 40

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

iii

3.3.3. Señal de los sensores de puerta ………………………………….……. 41

3.4. Interfase para Motor a Pasos (MAP) …………………………………………. 41

3.5. Interfase de alto voltaje 110/125 VAC ………………………………………. 43

3.6. Interfaz RS-232 ……………………………………………………………... 44

3.7. Microcontrolador del sistema (AT89C51) …………………………………… 45

3.7.1. Recursos del AT89C51 ……………………………………………….. 45

3.7.2. Arquitectura del SDMC ………………………………………………. 47

3.7.3. Programación del sistema …………………………………………….. 50

3.8. Suministros de alimentación del SDMC …………………………………….. 51

3.9. Interfaz gráfica de usuario ……………………………………..…………….. 51

3.10. Interfaz remota vía TCP/IP …………………………………………………. 55

4. Resultados Obtenidos …………………………………………………………… 57

5. Conclusiones ……………………………………………………………………... 62

Referencias. …………………………………………………………………………... 64

Apéndice A. …………………………………………………………………………… 67

Diagramas a flujo y ensamblador del programa de

control, adquisición y comunicación (PCAC).

Apéndice B. …………………………………………………………………………… 81

Manual de uso de la interfaz gráfica del SDMC.

Apéndice C. …………………………………………………………………………… 87

Manual de uso de interfaces para conexión remota.

Apéndice D. …………………………………………………………………………… 94

Diagramas esquemáticos eléctricos y lista de materiales.

Apéndice E. …………………………………………………………………………… 102

Diagrama de tiempos para secuencia de conversiòn del ADC0809.

CAPÍTULO 1

OBJETIVOS E INTRODUCCIÓN

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

2

1.1. Objetivos generales Utilizar los conocimientos adquiridos en la licenciatura de ingeniería Electrónica para diseñar, desarrollar e implementar un Sistema Digital de Monitoreo y Control con una interfaz serie local, así como la conexión a una red TCP/IP para comunicación remota. Proyecto desarrollado como parte de las materias de: Proyecto de Ingeniería Electrónica I y II. 1.2. Objetivos particulares Estudio de la problemática de la ingeniería.

Propuesta y selección de la arquitectura del sistema digital a desarrollar, así como el tipo de microprocesador o microcontrolador y los circuitos integrados principales.

Desarrollo de los circuitos de acondicionamiento y adaptación de señales complementarios.

Integración preliminar del prototipo del Sistema Digital de Monitoreo y Control.

Programación en lenguaje ensamblador del programa de control del Sistema Digital de Monitoreo y Control.

Desarrollo en Visual C++ v.6.0 de las interfaces para Windows para el monitoreo, control e instrumentación de los datos a procesar.

Depuración del microcódigo de control y la interfaz del usuario.

Integración total del sistema y etapa de pruebas finales.

Análisis de los resultados finales obtenidos y sugerencias para nuevas aplicaciones.

1.3. Resumen

En este documento se hace una descripción detallada de los trabajos realizados para el diseño, desarrollo e implementación del Sistema Digital de Monitoreo y Control (SDMC), y que consta de tres partes fundamentales. La primera parte corresponde al desarrollo del Hardware necesario, tanto para el acondicionamiento de las señales procedentes de los sensores utilizados, como para el funcionamiento óptimo del SDMC, así como la elección entre un microprocesador o microcontrolador, según las necesidades y alcances del sistema. Además, en esta parte queda establecido el número de variables de las magnitudes físicas que se pretende medir y procesar por el SDMC. En la segunda parte, se documenta el tipo de interfaz de comunicación a utilizar entre el SDMC y la PC, o en forma remota por medio de una conexión TCP/IP (Cliente/Servidor). Esta etapa del proyecto, permite el intercambio de información entre el sistema digital y una o más computadoras personales que servirán, ya sea como un servidor y/o un conjunto de terminales. Finalmente, la última parte describe el tipo de interfaz gráfica de usuario en el monitor, desarrollado en Visual C++ versión 6.0. Además, de una interfaz remota TCP/IP utilizando

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

3

programación de sockets para establecer una conexión cliente/servidor con el objeto de leer las variables del sistema externo y modificar algunas de ellas a través de comandos.

1.4. Introducción

El avance vertiginoso en las últimas tres décadas de las computadoras y los microprocesadores, ha permitido el desarrollo de los sistemas de adquisición de datos, así como los sistemas de control y automatización. El control automático ha desempeñado una función vital en el avance de la ingeniería y la ciencia. Además de su extrema importancia en los sistemas de vehículos espaciales, de guiado de misiles, robóticos y similares, el control automático se ha vuelto una parte importante e integral de los procesos modernos industriales y de manufactura. El control por sistemas digitales basados en microprocesadores forma parte del desarrollo industrial actual.

El Sistema Digital de Monitoreo y Control SDMC, es un sistema basado en un microcontrolador de la familia MSC-51 que monitorea y controla algunas variables físicas de un medio externo, registrando dichas variables y actuando sobre elementos terminales como pudieran ser: motores de pasos, encendido de sistemas de luz y aire acondicionado, entre otros. En éste documento se encuentran los principios básicos, las consideraciones teóricas, desarrollos y la programación de todas las partes que conforman el sistema digital.

El SDMC es capaz de monitorear un número finito de magnitudes físicas, tanto de naturaleza analógica como de naturaleza discreta como por ejemplo: temperatura, humedad, presión, luminosidad, medida de presión y fuerza, campos eléctricos y magnéticos, entre muchas mas, y mostrarlas localmente en una PC o administrarlas en forma remota por medio de una conexión cliente/servidor.

Por lo que, aquí se hacen las consideraciones teórico – prácticas de los transductores utilizados, así como el acondicionamiento de las señales de salida que estos generan en proporción a la magnitud física medida. Se desarrollan rutinas en lenguaje ensamblador que permiten procesar y administrar dicha información. También se tratan los principios de funcionamiento y desarrollo de medios de comunicación local y remota, como son: RS-232 e intranet/internet.

Así mismo, se desarrolla una interfaz gráfica de usuario por medio del Visual C++ de 32 bits para la presentación de los datos obtenidos y transmitidos por el SDMC.

CAPÍTULO 2

ANTECEDENTES TEÓRICOS

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

5

2.1. Sensores y transductores Un transductor es en términos generales, un dispositivo que convierte una magnitud de

algún tipo de energía en otro tipo de energía diferente. La base es sencilla, se puede obtener la misma información de cualquier secuencia similar de oscilaciones, ondas sonoras (aire vibrando), vibraciones mecánicas de un sólido, corrientes y voltajes alternos en circuitos eléctricos, vibraciones de ondas electromagnéticas radiadas en el espacio en forma de: ondas de radio o marcas permanentes grabadas en un disco o cinta magnética.

El LED y los diodos sensibles a la luz; son dispositivos transductores que operan de modo tal que conforme aumenta la intensidad de luz, también aumenta la corriente en el circuito externo; por supuesto, este es el mismo fenómeno que se produce conforme aumenta la corriente de base en un transistor bipolar; dicho fenómeno da luz al fototransistor.

El número de transductores disponibles para las distintas magnitudes físicas es tan elevado que no se puede proceder racionalmente a su estudio sin clasificarlos previamente de acuerdo a algún criterio[PALLAS1998]. Uno de estos criterios es, según el aporte de energía del transductor, de aquí se desprenden dos tipos: transductores moduladores y transductores generadores. Los primeros son dispositivos cuya energía de salida procede de una fuente auxiliar ponderada por la excitación de entrada.

Otro de los criterios utilizados es el tipo de señal de salida. Hay transductores con salida analógica y transductores con salida digital. Naturalmente, los primeros proporcionan señales continuas en el tiempo y son adquiridas y acondicionadas por circuitos analógicos. Las segundas son señales que toman valores discretos o binarios codificados, y son manipulados y procesados por circuitos digitales.

El tercer criterio para clasificar los transductores es según su modo de operación. Estos se dividen en dos categorías: transductores de deflexión y transductores de comparación. Los primeros son dispositivos en que, a partir de la señal de entrada, se genera en forma indirecta la señal de salida por medio de algún tipo de variación en alguna variable del dispositivo. Por otro lado, los transductores de comparación generan la salida a partir precisamente de la comparación de la señal de entrada con una señal de referencia.

En la Tabla 2.1 se muestra la clasificación de los transductores según los criterios

anteriores.

Criterio Clase Ejemplos

Aporte de energía Moduladores Generadores

Termistor Termopar

Señal de salida Analógicos Digitales

Potenciómetro Codificador de posición

Modo de operación De deflexión De comparación

Acelerómetro de reflexión Servoacelerómetro

Tabla 2.1. Clasificación más general de los transductores[PALLAS1998].

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

6

Cualquiera de estas clasificaciones es exhaustiva, y cada una tiene un interés particular para diferentes situaciones de medida. Ahora bien, para el estudio de un gran número de transductores se suele acudir a su clasificación de acuerdo con la magnitud medida. Se habla en consecuencia de transductores de temperatura, presión, caudal, humedad, posición, velocidad, aceleración, fuerza, par, etc. Desde el punto de vista de la ingeniería electrónica, es más atractiva la clasificación de los sensores de acuerdo con el parámetro variable: resistencia, capacitancia, inductancia; así como los transductores generadores de tensión, carga o corriente.

Transductor con salida eléctrica

Variable Física Señal eléctrica

Figura 2.1. Conversión de energía en un transductor.

El término sensor es utilizado en la actualidad para referirse a los transductores de entrada a

un sistema o instrumento, es decir, son transductores que realizan la conversión señal física/señal eléctrica. La distinción entre transductor de entrada (señal física/señal eléctrica) y transductor de salida (señal eléctrica/presentación) está prácticamente en desuso. La tendencia actual, particularmente en robótica, es emplear el término sensor para designar el transductor de entrada, y el término actuador o accionamiento para designar el transductor de salida. Los tipos de sensores industriales se dividen según su principio de funcionamiento: Sensores inductivos, capacitivos y magnéticos. Sensores fotoeléctricos. Sensores Ultrasónicos. Sensores electromecánicos. Otra forma de clasificar los sensores es en categorías, según el tipo de aplicación más comúnmente utilizado en la industria y en los sistemas de control. Sensores de luz (Fotosensores). Sensores de humedad y temperatura (Higrómetros). Transductores de presión y fuerza (Manómetros). Sensores de caudal y flujo. Sensores de proximidad.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

7

2.2. Microprocesadores y Microcontroladores Como en la mayoría de los sistemas digitales, el microprocesador es el corazón de cualquier sistema que ejecute una serie de pasos para realizar alguna tarea específica, es decir, un programa. Un microprocesador o CPU puede definirse como un dispositivo lógico programable de arquitectura rígida y de propósito general, que está conformado por: registros de propósito general, registros de propósito especial (Stack Pointer, Program Counter, Instruction Register), una unidad de control y decodificación, y una unidad lógica aritmética [MCKENZIE1992].

Figura 2.2. Unidad Central de Procesamiento (CPU) o Microprocesador.

Un microprocesador se considera un sistema abierto, en el sentido que requiere un número

mínimo de elementos externos para su funcionamiento. A estos sistemas se les conoce como sistemas mínimos, y se componen de:

Microprocesador. Memoria de datos y memoria de programa. Sistema de buses externo (Bus de datos, Bus de direcciones, y Bus de control), y Puertos de entrada y salida.

Los parámetros principales de un microprocesador son:

Ancho del Bus de datos. Espacio de direccionamiento total. Tamaño de sus registros internos, y Conjunto de instrucciones.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

8

Figura 2.3. Sistema mínimo basado en un microprocesador.

El microprocesador se destina a sistemas donde su expansión a corto o mediano plazo es

factible. Éste tendrá la importante tarea de generar señales de control y de sincronización que gestionen adecuadamente al sistema, así como realizar transferencias sincrónicas y/o asincrónicas entre éste y dispositivos de almacenamiento y de entrada/salida; además de hacer operaciones aritméticas, transferir datos e instrucciones, y administrar toda la actividad del sistema entre muchas otras tareas más.

Existe una gran variedad de microprocesadores, desde aquellos con gran capacidad de procesamiento y que cuentan con arquitecturas Von Neumann clásica, y que poseen básicamente: una Unidad Lógica Aritmética, un conjunto de registros de propósito general y, una unidad de control y decodificación de instrucciones (Figura 2.2), hasta aquellos microprocesadores embebidos en un chip y con recursos propios, e.g. memoria EEPROM y/o FLASH, memoria RAM, Puertos de entrada/salida, Timers, UARTs, convertidores A/D, entre otros. A estos últimos sistemas embebidos se les conoce como Microcontroladores.

A saber, los microprocesadores se dividen en dos categorías principales de acuerdo a su arquitectura:

1. Microprocesadores con arquitectura CISC. 2. Microprocesadores con arquitectura RISC.

Los primeros son dispositivos cuya arquitectura está diseñada para manejar una gran

cantidad de instrucciones y que realizan operaciones complejas, apoyados básicamente en una unidad de control y decodificación. Y sus características principales son: 1. Modelo Von Neumann. 2. Unidad de Control compleja. 3. Instrucciones altamente decodificadas. 4. Extenso conjunto de instrucciones. 5. Diversos modos de direccionamiento, y 6. Ejecución de instrucciones en un ciclo de bus o de reloj del sistema.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

9

Algunos microprocesadores de arquitectura CISC son: MC68000 de Motorola. 8088 y 8086 de Intel. Z80 de Zilog ¿Qué es un microcontrolador? Un microcontrolador es un sistema cerrado que consta de un circuito integrado programable, y que contiene todos los componentes de un sistema mínimo y está encaminado básicamente hacia aplicaciones concretas en donde el espacio y el número de componentes son mínimos.

El microcontrolador es un microprocesador dedicado. En su memoria sólo reside un programa destinado a gobernar una aplicación determinada, sus líneas de entrada/salida soportan el conexionado de los sensores y actuadores de los dispositivos a controlar, y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos. Los microcontroladores son sistemas embebidos en un circuito integrado y que poseen los elementos mínimos para un determinado tipo de aplicación[ANGULO1999].

µµµµC = µµµµP + ROM + RAM + PUERTO SERIE + TIMER + ADC + Otros

Figura 2.4. Elementos internos que conforman un microcontrolador. Un microcontrolador puede ser utilizado con un número mínimo de componentes externos

para un amplio rango de aplicaciones tales como; sistemas de control de alarmas, tableros de control de la industria automotriz, en la instrumentación médica, en los teclados de computadoras, en los sistemas portátiles de almacenamiento de datos, en equipos de laboratorio; etc.

Por lo tanto, la diferencia que existe entre un microprocesador y un microcontrolador, es que mientras el microprocesador es un sistema abierto con el que puede construirse una computadora con características deseadas, acoplándole los módulos necesarios; el microcontrolador es un sistema cerrado que contiene un sistema mínimo completo y de prestaciones limitadas que no pueden modificarse (Figura 2.4).

Después del estudio previo entre microprocesadores y microcontroladores, se decidió elegir

un microcontrolador de la popular familia MCS–51 (ej. 8051, 8052, 8031, 8032, 8751, 8752, etc.), desarrollada por INTEL. Y que muchos fabricantes (Philips, Atmel, Texas, Dallas) han adquirido derechos como base para posteriores desarrollos de sus propios Microcontroladores.

Uno de estos fabricantes ha desarrollado una serie de microcontroladores basados en el 80C51 y que ha sido bien acogido entre los diseñadores de sistemas digitales en aplicaciones de control industrial.

Los microcontroladores desarrollados por ATMEL además de tener todas las características básicas, han incluido otras características adicionales como: memoria de programa

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

10

FLASH, memoria para datos EEPROM, Watch Dog Timer, temporizadores/contadores adicionales, además de aumentar la frecuencia de operación hasta 24 y 32 MHz. 2.3. Acondicionadores de señales Debido al principio básico con que funcionan la mayoría de los transductores, se requiere que la señal de salida de estos sea adaptada o acondicionada para su presentación y/o procesamiento. La tarea principal de los acondicionadores de señal es modificar el factor de escala, rango de medida, reducción del ruido e interferencia y hacer conversiones analógico/digital. 2.3.1. Amplificadores Operacionales Los amplificadores operacionales (mejor conocidos como opamp, por sus siglas en inglés) han resultado uno de los dispositivos electrónicos más populares de nuestros días. Estos son versátiles, fáciles de usar, y tienen una variedad de aplicaciones. El opamp es un amplificador de alta ganancia directamente acoplado que usa la retroalimentación para controlar características eléctricas. Internamente, éste consiste en un conjunto de amplificadores diferenciales, compensadores, trasladores de nivel básicamente. Externamente, el opamp se representa simbólicamente como se muestra en la Figura 2.5.

Figura 2.5. Símbolo del amplificador operacional.

Desde el punto de vista eléctrico el opamp ideal tiene un circuito equivalente de la siguiente

forma.

Figura 2.6. Circuito eléctrico equivalente del opamp ideal.

Funcionalmente, como se muestra en la Figura 2.6, el opamp contiene una salida que es controlada por dos entradas. Si un voltaje positivo es aplicado a la entrada positiva (+). La salida del opamp será positiva. De otra forma, si se aplica un voltaje positivo en la entrada negativa (-) provocará que la salida sea negativa. En general, las propiedades de los opamp como impedancia

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

11

de entrada y salida, ganancia de voltaje diferencial, ganancia de voltaje común y ancho de banda, son los parámetros [STOU1976] que hacen a este dispositivo tan popular.

Como vemos en la Figura 2.6, se supone que el opamp ideal no toma ninguna corriente de entrada, es decir, la señal de corriente presente en la terminal inversora y la señal de corriente en la terminal no inversora son ambas cero. En otras palabras, se supone que la impedancia de entrada de un opamp ideal es infinita. Por otro lado la salida se comporta como una fuente ideal de voltaje, es decir, el voltaje entre la terminal de salida y tierra siempre será igual a

( )12 vvAvo −= donde: 0 Tensión de salida. 2 Tensión en entrada positiva. 1 Tensión en entrada negativa. A Ganancia en voltaje de lazo abierto. Las aplicaciones más notables con los opamp son:

Amplificadores, controladores y generadores de señales.

Sumadores, restadores, multiplicadores y divisores.

Integradores y diferenciadores.

Amplificador diferencial y de instrumentación.

Es común su uso en sistemas de control e instrumentación. En estos sistemas la adquisición de la información procedente de los sensores, debe ser previamente adaptada y acondicionada para su procesamiento, ya sea para su presentación o como parámetro de medida de control de algún proceso[SEDRA1999].

En nuestro caso, usaremos los amplificadores operacionales para adaptar los niveles de voltaje procedentes de la señal de salida de los transductores dentro de valores tolerables y adecuados por el convertidor Analógico – Digital (ADC). 2.4. Convertidores Analógico - Digital (ADC) El corazón de un sistema de adquisición de datos es el convertidor A/D. La función principal de los convertidores Analógico – Digital es producir una palabra digital que representa la magnitud de algún voltaje o alguna corriente. El convertidor está diseñado para proporcionar conversiones rápidas, precisas y reproducibles en un amplio rango de la variable física, e. g., la temperatura.

Las especificaciones para los ADC son similares a aquellas de los Convertidores Digital/Analógico (DAC). La resolución de los ADC se refiere al número de bits de la palabra binaria de salida. Un ADC de 8 bits por ejemplo, tiene una resolución de 1 parte en 256. La precisión y la linealidad tienen algún significado para un ADC, otra especificación importante es el tiempo de conversión. Éste es simplemente el tiempo que le toma al convertidor producir un código binario salida válido para un voltaje de entrada aplicado.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

12

Cuando uno habla de un ADC de alta velocidad, se está refiriendo a que dicho convertidor tiene un tiempo corto de conversión. Hay muchas formas diferentes para hacer una conversión Analógica – Digital. Aquí se mencionan los 3 métodos más comúnmente utilizados.

1. Convertidor A/D con comparadores paralelos. 2. Convertidor A/D de doble pendiente. 3. Convertidor A/D de aproximaciones sucesivas.

Existen muchos métodos para realizar la conversión A/D. Una forma de obtener dicho

convertidor es incrementar un contador que alimenta a un DAC, y parar el contador cuando la salida del DAC exceda la tensión analógica en cuestión. La salida del convertidor D/A es una función escalera, se puede pensar como una serie de funciones en rampa discretas. El número de pasos antes de que la rampa cruce el valor analógico es proporcional a ese valor.

Un segundo método de generar una palabra digital a partir de una tensión analógica es

utilizar aproximaciones sucesivas. El bit más significativo en el número binario indica si la tensión se encuentra en la mitad superior o la mitad inferior del intervalo. El siguiente bit subdivide este intervalo a la mitad, y así sucesivamente. Esto equivale a la observación de que en un contador binario, cada bit oscila a la mitad de la frecuencia del bit anterior. La conversión se lleva acabo mediante una serie de comparaciones con los puntos de división regional. Un ejemplo de este tipo de conversión A/D es el ADC0809.

El tercer método y más utilizado para realizar conversiones A/D es el conocido como método de aproximaciones sucesivas. Este consiste en un registro de aproximaciones sucesivas (SAR), que realiza una serie de iteraciones para aproximar el voltaje de entrada. Para un convertidor tipo SAR se requiere n - iteraciones para una conversión de n – bits.

Además del SAR en los convertidores de éste tipo, se utiliza como entrada de dicho

convertidor, una red en escalera de resistencias (256R Ladder Network) que le da una alta monoticidad a la conversión y evita pérdidas en el código digital[STOU1976].

Figura 2.7. Curva de aproximación para un convertidor de 3 bits.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

13

La tercera etapa de un convertidor de este tipo es un comparador de alta estabilidad (chopper–stabilized comparator) que proporciona el método más efectivo para satisfacer todos los requerimientos del convertidor. Este comparador reduce considerablemente el error de cuantización debido al offset de entrada, además de que, hace al convertidor altamente insensible a los cambios de temperatura (Ver Figura 2.7).

Figura 2.8. Típico error de cuantización en los ADC.

2.5. Interfases de alto voltaje y potencia En muchas aplicaciones de los sistemas digitales se requiere que, una vez realizado el proceso de adquisición de datos por medio del ADC y procesados los datos por el microprocesador; según el algoritmo de control residente en la memoria de programa, se requerirá abrir/cerrar alguna válvula, alimentar el solenoide de un relevador o contactor, o simplemente mover un mecanismo por medio de un motor a pasos.

Para este propósito se utilizan interfases de alto voltaje, electromecánicos o de estado

sólido, que a partir de algún bit digital del sistema habilite un transistor como fuente de corriente que energice al solenoide de un relevador o contactor, o que alimente directamente algún dispositivo de estado sólido.

En la Figura 2.9, se muestra una interfase de alto voltaje utilizando un dispositivo electromecánico como elemento de salida.

VCC

Bit de activación

110/220 VAC

LOAD

Figura 2.9. Interfase de alto voltaje con relevador.

El transistor bipolar proporciona la corriente suficiente para energizar el solenoide del relevador. Así que cuando el bit de activación vale “0” el transistor se encuentra en corte (voltaje colector – emisor igual a VCC), y el relevador permanece abierto desactivando así la carga a la

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

14

salida. Cuando el bit de activación es igual a “1”, el BJT entra en saturación (voltaje colector – emisor es aproximadamente cero), energizando el solenoide del relevador.

Bit de activación

VCC

LOAD

110/220 VAC

Optoacoplador

Triac

Figura 2.10. Interfase de alta tensión con Triac y circuito de disparo aislado.

Otra forma de implementar una interfase de alto voltaje es por medio de un dispositivo de estado sólido, como se muestra en la Figura 2.10. La interfase está aislada eléctricamente a través del optoacoplador como medida de seguridad para el sistema digital.

Es común el uso del Triac para encender motores u otras cargas inductivas. El Triac esta formado básicamente por dos tiristores en antiparalelo, como se muestra en la Figura 2.11.

Figura 2.11. Construcción del Triac con dos tiristores.

No es el propósito de este reporte dar una explicación detallada de la construcción y

funcionamiento de los tiristores, un estudio detallado se puede encontrar en [RASHID1995].

Por la estructura mostrada en la Figura 2.11, el Triac es un dispositivo que conduce en ambos sentidos. Para poner el dispositivo en estado de conducción se requiere de una polarización adecuada y un voltaje mínimo inicial entre las terminales principales MT1 y MT2, así como una pequeña corriente en la compuerta (GATE) con la polaridad adecuada. En la Figura 2.12 se muestran las condiciones de polarización para la operación de un Triac (definición de cuadrantes).

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

15

Figura 2.12. Definición de cuadrantes para el disparo del Triac.

Por como está construido internamente el TRIAC, son los cuadrantes 1 y 3 las

configuraciones más eficientes de operación. Es decir, esto ocurre cuando la polaridad de la compuerta (GATE) es la misma a la polaridad de la terminal principal dos (MT2).

Figura 2.13. Característica voltaje – corriente del TRIAC.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

16

Donde tenemos las siguientes definiciones (Tabla 2.2).

Símbolo Parámetro

VDRM Voltaje pico en polarización directa en estado apagado.

IDRM Corriente pico en polarización directa de bloqueo.

VRRM Voltaje pico en polarización inversa en estado apagado.

IRRM Corriente pico en polarización inversa de bloqueo.

VTM Voltaje máximo en estado de conducción. IH Corriente de mantenimiento en estado

encendido.

Tabla 2.2. Parámetros involucrados en el encendido y apagado del TRIAC.

2.6. Motores de pasos de CD

Otro tipo de interfase, es aquella que se requiere para alimentar dispositivos de bajo voltaje

pero con gran demanda de corriente, como son los motores a pasos, pequeños motores de DC o algunos sistemas electromecánicos. Para esto se utilizan arreglos de transistores como fuentes de corriente, conocidos como “Drivers”. Estos dispositivos son arreglos Darlington de colector abierto que proporcionan corrientes relativas a 600mA. Estos “Drivers” son comúnmente usados para alimentar una amplia gama de cargas, como son: solenoides, motores de CD, Display de LED, lámparas de filamento, cabezas de impresión térmica y buffers de alta potencia.

Figura 2.14. Arreglo Darlington como interfase de potencia.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

17

Motores de pasos de CD. Los motores en general, son sistemas que realizan trabajo mecánico a partir de la

conversión de energía electromagnética. Los motores de pasos, a diferencia de otros motores, funcionan mediante una sucesión de impulsos aplicados secuencialmente a un conjunto de devanados que inducen una fuerza electromotriz; según la ley de Faraday.

En todos los tipos de motores de pasos se produce la rotación por conmutación de

devanados, conectados en forma adecuada en cierta secuencia predeterminada para producir pasos separados de giro que son esencialmente de magnitud uniforme. Los tres tipos más usados de motores de pasos son los siguientes[KOSOW1993]:

1. Motor de pasos de imán permanente, a veces llamados “de rotor activo”. 2. Motor de pasos de reluctancia variable o “de rotor reactivo”, y 3. Motor híbrido de pasos.

Motor de pasos de imán permanente.

El rotor de un motor de imán permanente tiene número par de polos, fabricado en aleación de acero de alta retentividad (Alinico) que produce un imán permanente de varios polos. Los devanados del estator son semejantes a los de un motor de inducción o sincrónico convencional de dos, tres o mas fases[KOSOW1993]. Tanto el rotor como el estator pueden emplear polos salientes o no salientes. Los motores de pasos que tienen ángulos pequeños son, en general, del tipo de polos no salientes.

En la Figura 2.15 se muestra un motor típico de pasos de imán permanente. Estando energizado sólo A1-A2 del estator, para la polaridad que se muestra, el rotor de imán permanente está “amarrado” en la posición que se indica también. Si se desenergiza la bobina del estator y se energiza B1-B2, la polaridad que aparece en produce un sur (S) en B1 y un norte (N) en B2, haciendo que gire 90° el rotor en respuesta al par de excitación que produce el devanado . El par de excitación es máximo cuando el ángulo entre el rotor y el devanado del estator es 90°.

Figura 2.15. Motor de pasos de imán permanente.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

18

Si se invierte la corriente en los devanados y en forma consecutiva, se tiene a su vez, una rotación continua del rotor de imán permanente en el sentido de las manecillas del reloj. En lugar de invertir los voltajes de suministro que alimentan cada fase, un dispositivo de conmutación simplificado que emplea dos interruptores de estado sólido (transistores o tiristores) logra las inversiones de corriente de cada fase de los devanados bifásicos.

Fase A

Fase B

1 3

45

2

2

a

b

- +

Vdc

Interruptor 1

Interruptor 2

R

Figura 2.16. Conexiones de estado de motor de 4 pasos.

La Figura 2.16 muestra la secuencia de conmutación del motor de cuatro pasos, adviértase que para un motor de pasos de dos polos y dos fases, el producto de polo por fase es 4. Si se divide éste entre 360°, se obtiene el ángulo de paso de 90°. Se puede demostrar que la longitud de paso o ángulo de paso para cualquier motor de pasos de imán permanente o de reluctancia variable, para cada cambio de excitación, es

nP°= 360α

Siendo el número de fases o grupos fase y el número de polos o dientes del rotor.

Paso de Conmutación

Interruptor 1

Interruptor 2

Ángulo de Rotación

1 1 4 90° 2 3 4 180° 3 3 5 270° 4 1 5 360° (0°) 1 1 4 90°

Tabla 2.3. Secuencia de conmutación para el funcionamiento de un motor de imán permanente como motor de pasos.

En [KOSOW1993] encontrará una explicación detallada tanto de los motores de pasos de

reluctancia variable, como los motores de pasos híbridos. El control de este tipo de motores se basa en un generador de secuencias y el

correspondiente amplificador de corriente de salida (Figura 2.17). Con cada impulso del reloj el eje del motor gira un paso (un cierto ángulo de giro).

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

19

Secuenciador

Figura 2.17. Estructura general para el control de motores paso a paso.

Existen motores con ángulos de paso que van desde menos de 0.5 grados hasta 90 grados.

Philips dispone de una gran variedad de motores paso a paso. Por ejemplo el modelo 9904.112.32001 es un motor de 12V y un ángulo de paso de 7.5.

Los motores de pasos son muy utilizados en impresoras, servomecanismos, máquinas,

herramientas, robótica, etc.

Un motor muy utilizado es el denominado unipolar, de cuatro fases, los cuales se caracterizan porque las bobinas del estator tienen toma media, por lo cual aparecen seis hilos. Existen también motores denominados bipolares, en los cuales las bobinas no tienen toma media. Un ángulo de paso de 7.5 grados es bastante normal, por lo cual una vuelta completa (360 grados) se realiza con 48 pasos. El ángulo de giro de los pasos lo determina la constitución mecánica del motor.

El giro del eje se consigue excitando en el orden adecuado las bobinas; cada cambio en la excitación produce un paso. Para conseguir el giro del motor, la activación de las bobinas se tiene que hacer, según una determinada secuencia. El giro en sentido contrario se consigue aplicando las combinaciones de excitación en orden inverso.

Según el orden de conexión de las bobinas, el motor también puede girar en un sentido u

otro. Cuando la secuencia de activación de las bobinas no es correcta, el motor no gira y permanecerá vibrando.

Así pues, se puede conseguir el control del motor mediante un circuito secuencial que genere las secuencias adecuadas de excitación de las bobinas. Y la velocidad de giro dependerá de la frecuencia de los impulsos aplicados.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

20

2.7. Suministros de voltaje Todos los circuitos semiconductores necesitan suministros de voltaje de corriente directa o corriente continua relativamente bajos, que en muchos casos deben ser obtenidos desde la red de 110/125 V o 220/240 V corriente alterna. La solución simple es usar un regulador lineal en serie como se muestra en la Figura 2.18.

Tales reguladores son utilizados ampliamente en gran número, y presentan características eléctricas importantes: pequeñas variaciones en la tensión de salida respecto a las variaciones de la tensión de línea o de la carga, un amplio rango en la tensión de salida, protección simple contra cortos circuitos, y de simple construcción con poco número de componentes. Las desventajas de este tipo de fuentes se encuentran en la necesidad de un costoso y “estorboso” transformador principal, y por lo tanto, esto aumenta el volumen y peso del equipo electrónico. Además, de que este tipo de fuentes poseen relativamente una baja eficiencia.

Figura 2.18. Fuente de voltaje con transformador, rectificador

y regulador lineal en serie que suministra una tensión de salida en corriente continua.

Este último factor es particularmente importante en el caso del suministro de alta potencia de corriente continua, y con frecuencia se usan para estos propósitos regulación conmutada. También conocido como fuentes de voltaje en modo conmutado; SMPS, por sus siglas en inglés (Switched-Mode Power Supply).

Figura 2.19. Fuente de voltaje con transformador principal, rectificador

y regulador conmutado en serie, que proporciona un voltaje de salida de corriente continua constante.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

21

En las SMPS, el suministro de corriente directa (CD) se obtiene ya sea desde, la red de 110 o 220 VAC o a través de un transformador principal, que es troceado a una frecuencia por encima del espectro audible, transformando y rectificando nuevamente. Esta técnica implica un circuito más complicado, sin embargo, la eficiencia alcanza valores en la región de 70 a 80%. Para una exposición más detallada sobre fuentes conmutadas consulte [KILGENSTEIN1989]. 2.8. Comunicación remota, protocolos TCP/IP Modelo para las Comunicaciones. En un sistema de comunicación, la función del sistema es transportar el contenido de la información de la señal del mensaje sobre un canal de comunicación y entregarla a un destinatario de manera confiable; además de que el objetivo principal de todo sistema de comunicaciones es intercambiar información entre dos entidades.

Para esto consideraremos un modelo sencillo de sistema de comunicación, mostrado en la Figura 2.20.

Figura 2.20. Modelo de la comunicación.

La fuente es el dispositivo que genera la información que se desea transmitir al dispositivo

destino. El objetivo del transmisor es convertir la señal del mensaje producido por una fuente de

información en una forma adecuada para la transmisión a través del canal. Normalmente los datos generados por la fuente no se transmiten directamente tal y como son generados, al contrario; el transmisor transforma y codifica la información, generando señales electromagnéticas susceptibles de ser transmitidas a través de algún sistema de transmisión.

El sistema de transmisión, son los medios utilizados para transportar la información entre la fuente y el destino.

La función del receptor es operar sobre la señal recibida del sistema de transmisión para

reconstruir una forma reconocible de la señal del mensaje original que pueda ser manejada por el dispositivo destino.

El destino es el dispositivo que toma la estimación de la información del receptor, que

fueron enviadas por el dispositivo fuente.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

22

En la Figura 2.21, se muestra un ejemplo particular de comunicación entre una estación de trabajo y un servidor a través de una red telefónica pública.

Figura 2.21. Comunicación Cliente - Servidor.

La fuente para este ejemplo es una computadora personal, el transmisor es un módem, el

sistema de transmisión sería la red pública de teléfonos, el receptor sería otro módem, y el destino es un servidor. Otro ejemplo posible consiste en el intercambio de señales de voz entre dos teléfonos a través de la misma red anterior. Internetworking. Una nueva tecnología que hace posible interconectar muchas redes físicas diferentes y hacerlas funcionar como una unidad coordinada, llamada internetworking (conexión entre redes); unifica diferentes tecnologías de hardware subyacentes al proporcionar un conjunto de normas de comunicación y una forma de interconectar redes heterogéneas.

La tecnología de red de redes oculta los detalles del hardware de red y permite que las computadoras se comuniquen en forma independiente de sus conexiones físicas de red. Toda la tecnología ha sido diseñada para permitir la comunicación entre máquinas que tengan arquitecturas diferentes de hardware, para utilizar cualquier hardware de red de paquetes conmutados y para incorporar muchos sistemas operativos de computadoras.

Una red de redes TCP / IP aparece como un grupo de programas de aplicación que utilizan la red para llevar a cabo tareas útiles de comunicación. Los programas de aplicación de Internet muestran un alto grado de interoperabilidad, es decir; la habilidad que tienen diversos sistemas de computación para cooperar en la resolución de problemas computacionales.

Los servicios de aplicación de Internet más populares y difundidos son: el correo electrónico, transferencia de archivos, acceso remoto, etc. Acceso remoto. Si se desea usar un ordenador situado al otro extremo del mundo como si estuviese sentado delante de él, a eso se le llama acceso remoto. El acceso remoto permite que un usuario que esté frente a una computadora se conecte a una máquina remota, establezca una sesión interactiva y trabaje como si estuviera sentado enfrente de ella.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

23

El servicio de comunicación remota se puede generalizar con la infraestructura de acceso remoto (remoto LOGIN), en la cual los usuarios tienen acceso a todos los comandos disponibles en el sistema remoto, y los diseñadores del sistema no necesitan proporcionar servidores especializados. Los protocolos de flujo confiable como el TCP / IP hacen posible el uso interactivo para las máquinas remotas. Protocolos TCP / IP. La familia de protocolos TCP / IP consiste en una extensa colección de protocolos que se han erigido como estándares de Internet; además de que ha conseguido consolidarse como la arquitectura comercial dominante para la interconexión de sistemas, a la vez que se ha convertido en la familia o conjunto de protocolos sobre la que se desarrollarán los protocolos futuros. Esta familia cuenta con una serie de ventajas sobre las que ha sido diseñado: Independencia de la tecnología de red. Ya que el TCP / IP está basado en una tecnología

convencional de conmutación de paquetes, es independiente de cualquier marca de hardware en particular. La Internet global incluye una variedad de tecnologías de red que van de redes diseñadas para operar dentro de un solo edificio a las diseñadas para abarcar grandes distancias. Los protocolos TCP / IP definen la unidad de transmisión de datos, llamada datagrama, y especifican cómo transmitir los datagramas en una red en particular.

Interconexión universal. Una red de redes TCP / IP permite que se comunique cualquier par

de computadoras conectadas a ella. Cada computadora tiene asignada una dirección reconocida de manera universal dentro de la red de redes, las computadoras intermedias de conmutación utilizan la dirección de destino para tomar decisiones de enrutamiento.

Acuses de recibo punto a punto. Los protocolos TCP / IP de una red de redes proporcionan

acuses de recibo entre la fuente y el último destino en vez de proporcionarlos entre máquinas sucesivas a lo largo del camino, aún cuando las dos máquinas no estén conectadas a la misma red física.

Estándares de protocolo de aplicación. Además de los servicios básicos de nivel de

transporte, los protocolos TCP / IP incluyen estándares para muchas aplicaciones comunes, incluyendo el correo electrónico, transferencia de archivos y acceso remoto. Por lo tanto, cuando se diseñan programas de aplicación que utilizan el TCP / IP, los programadores a menudo se encuentran con que el software ya existente proporciona los servicios de comunicación que necesitan.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

24

Se pueden mencionar cinco capas relativamente independientes de las que se compone el modelo TCP / IP.

1. La capa física define la interfaz física entre el dispositivo de transmisión de datos y el medio

de transmisión; se encarga de la especificación de las características del medio de transmisión, la naturaleza de las señales, la velocidad de datos.

2. La capa de acceso a la red o enlace es responsable del intercambio de datos entre el sistema

final y la red a la cual se está conectado. Determina la manera en que las estaciones (ordenadores) envían y reciben la información a través del soporte físico proporcionado por la capa anterior.

3. La capa de red define la forma en que un mensaje se transmite a través de distintos tipos de

redes hasta llegar a su destino. Esta capa proporciona el direccionamiento IP y determina la ruta óptima a través de los encaminadores (routers) que debe seguir un paquete desde el origen hasta el destino.

4. La capa de transporte proporciona una comunicación extremo a extremo entre programas de

aplicación. Esta capa incluye mecanismos de seguridad, además de que oculta los detalles de la red o redes subyacentes, a la capa de aplicación.

5. La capa de aplicación contiene la lógica necesaria para posibilitar las distintas aplicaciones de

usuario, en esta se encuentran las aplicaciones que acceden a servicios disponibles a través de Internet, como por ejemplo el correo electrónico, transferencia de ficheros, conexión remota entre computadoras.

2.9. Comunicación serial Una característica importante de los sistemas de adquisición de datos, es la necesidad de intercambiar información con otros dispositivos. Existen dos formas en que pueden intercambiar información los sistemas.

Una es la comunicación serie, y la otra es la comunicación paralelo. Ambos tipos de

comunicación son muy utilizados en la actualidad dependiendo de la aplicación. Por obvias razones, la comunicación en paralelo es más rápida, pero su campo de aplicación está restringido a cortas distancias entre los sistemas. Si bien la comunicación serie tiene la desventaja de transmitir la información bit a bit, ésta ha tenido un gran desarrollo en los últimos tiempos debido a la confiabilidad en la transmisión de la información cuando los dispositivos se encuentran a grandes distancias.

Aquí estamos interesados sólo en los tipos de interfaces serie de uso externo más utilizados

en la industria.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

25

Acrónimo Bus Tipo de

señalización Modo de transferencia Velocidad Longitud

RS-232 No No Diferencial Full Duplex Asíncrono

19.6kbps 15 m

RS-422 No Diferencial Half Duplex Asíncrono

1 – 4Mbps ~1200 m

RS-485 No Diferencial Half Duplex Asíncrono

10Mbps 1200 m

IEEE1396 Si Diferencial Full Duplex

Asíncrono/Isócrono 1.2Gbps 4.5 m

USB 1.1 Si Diferencial Half Duplex

Asíncrono/Isócrono 1.5Mbps 5 m

USB 2.0 Si Diferencial Half Duplex

Asíncrono/Isócrono 12Mbps 5 m

Ethernet Si Diferencial Asíncrono/Isócrono 100Mbps 500 m

Tabla 2.4. Especificaciones de los estándares industriales seriales. En la Tabla 2.4 se muestran algunas especificaciones de las interfaces serie industriales estandarizadas. Una característica que ha permitido la evolución de estas interfaces es el tipo de señalización.

Los estándares con señalización diferencial, son considerados como interfaces de alta

velocidad debido a que estos presentan más inmunidad al ruido que las interfaces no diferenciales como el RS-232. Es evidente que una desventaja de los estándares diferenciales es que son sistemas “half duplex”, es decir que, a diferencia de la transmisión “full duplex”, en la primera la transmisión y la recepción de datos se realizan en forma no simultánea. Aunque algunos de ellos pueden usarse como interfaces “full duplex” agregando más hilos al canal. En la Figura 2.22 y Figura 2.23 se muestra este hecho.

Figura 2.22. Transmisión Half Duplex entre dos dispositivos.

Figura 2.23. Transmisión Full Duplex entre dos dispositivos.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

26

2.9.1. Transmisión serie Asíncrona La transmisión en forma sincrónica en el intercambio de información entre dos dispositivos, se realiza enviando paquetes de datos a una tasa constante, es decir, en este tipo de transmisión existe una señal de temporización que sincroniza el envío de los paquetes en el transmisor con la recepción de los mismos en el receptor. A diferencia de la anterior, en la transmisión asincrónica cada dato o caracter se le agrega 1 bit que identifica su inicio, y 1 o 2 caracteres que identifican su final. Aunque cada caracter es individualmente identificado, los caracteres pueden ser enviados en cualquier momento (Asincrónicamente). En la Figura 2.24, se muestra el formato de la transmisión de datos en serie asincrónica. Cuando no se está enviando ningún caracter, la señal permanece en el nivel alto. El inicio de un caracter es indicado por una transición de la señal al nivel bajo por un tiempo de bit (un tiempo de bit se define como el ancho de cada uno de los bits del dato o caracter en segundos). A este bit se le conoce como bit de inicio (start bit). Los bits del caracter son enviados sucesivamente uno después del otro, comenzando por el bit menos significativo.

Dependiendo del sistema, el tamaño de la palabra del dato o caracter puede variar con 5,6,7 u 8 bits. Seguido de los bits del dato se encuentra el bit de paridad para la detección de errores en la transmisión de los datos. Después de los bits del dato y del bit de paridad, la señal regresa al nivel alto por lo menos un tiempo de bit para indicar al receptor el fin del caracter, a este bit se le conoce como bit de paro (Stop bit). Algunos sistemas utilizan dos bits de paro.

START D0 D1 D2 D3 D4 D5 D6 PARITY STOP STOP2

| |

TIEMPO DE BIT

Figura 2.24. Formato usado para enviar un dato en serie asincrónicamente.

Una desventaja de la transmisión asincrónica, es que tiene una eficiencia baja debido a que son requeridos 10 u 11 bits para transmitir un dato de 7 bits, por ejemplo un caracter ASCII. Baud Rate: este término es utilizado para indicar la razón o tasa con que se transmiten los datos. El Baud Rate se define como:

bitdetiempoRateBaud

1=

Si por ejemplo se tiene que el tiempo de bit es igual a 3.33ms, entonces el baud rate es igual a 300 Baudios. Los baud rate comúnmente usados son: 110, 300, 1200, 24000, 4800, 9600, y 19600 baudios.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

27

Para interconectar un microprocesador con líneas de transmisión serie, los datos deben convertirse de paralelo a serie y viceversa. Además de añadir los bits de control antes mencionados (bit de inicio, bits de paro, bit de paridad). Esta conversión la realiza el UART. UART (Universal Asynchronous Receiver/Transmitter): El Transmisor/Receptor Universal Asíncrono es un dispositivo electrónico programable, que convierte datos de paralelo a datos serie para su transmisión asincrónica.

Figura 2.25. Conversión para transmisión serie asincrónica de datos

Las características como: baud rate, bit de paridad (par/impar o sin paridad), bit de paro,

etc., son establecidos por software que permiten programar los registros internos del UART. 2.9.2. Estándar de comunicación RS-232

Figura 2.26. Características eléctricas del estándar RS-232. En la Figura 2.26 se muestra el formato y las características eléctricas del estándar RS-232. Para el nivel alto TTL, el estándar maneja un rango de voltaje entre –3 hasta –15 Volts de corriente continua, y para el nivel bajo TTL, el rango de voltaje se encuentra entre 3 hasta 15 Volts.

CAPÍTULO 3

BASES DE DISEÑO

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

29

3.1. Selección de transductores según las variables a medir Existe la posibilidad de incluir tantas variables físicas, como transductores y sensores podamos encontrar y disponer, además, esto depende en gran medida de la capacidad del microcontrolador y del número de canales del convertidor Analógico – Digital. Hemos incluido tres variables sencillas como diseño básico del SDMC. Estas son: Temperatura local. Luminosidad local. Sensor de puerta.

En la Figura 3.1 se muestra un diagrama a bloques de estas variables, su acondicionamiento,

y su adaptación al sistema. La adaptación o acondicionamiento, consiste en determinar que tipo de señal está entregando

cada uno de los transductores utilizados, para medir la magnitud física en cuestión. Por ejemplo, si es de naturaleza analógica o digital, su grado de linealidad, sensibilidad o factor de escala, si presenta histéresis o no, etc. En la Figura 3.1, el bloque de adaptación de niveles, consiste en acondicionar y modificar estas características que entregan los transductores a niveles tolerados por el convertidor analógico - digital.

Figura 3.1. Diagrama a bloques del proceso de conversión.

3.1.1. Temperatura (LM35) Existe en la actualidad una gran variedad de transductores comerciales que miden temperatura. Transductores resistivos, capacitivos, inductivos y monolíticos, entre otros. Cada uno de ellos con características propias, costosos o económicos según su aplicación. Un transductor versátil y de bajo coste, es el sensor monolítico de temperatura LM35 fabricado por National, cuya tensión de salida es linealmente proporcional a la temperatura en la escala Celsius (°C).

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

30

El LM35 no requiere ningún tipo de calibración externa y proporciona una exactitud de ± ¼ °C a temperatura ambiente, y ± ¾ °C fuera del rango de –55 a +150 °C. Las características principales del LM35 son:

• Calibrado directamente en grados Celsius.

• Sensibilidad o factor de escala lineal de +10.0 mV/°C.

• Precisión garantizada de 0.5 °C (a +25 °C).

• Rango a escala completa de –55 a +150 °C.

• Adecuado para aplicaciones remotas.

• Tensión de operación desde 4 a 30 Volts.

• Bajo autocalentamiento, 0.08 °C en aire seco.

• No - linealidad típica de ± ¼ °C.

• Baja impedancia de salida, 0.1 Ω por 1 mA de carga.

El LM35 no requiere elementos externos para trabajar con media escala de la medida, con rangos de temperatura de 2 a 150 °C. Para que pueda trabajar en escala completa en todo el rango de temperatura, el transductor requiere una resistencia de polarización negativa como se muestra en la Figura 3.2.

!

!"#

$%

&!

'$%(&!)!"#( %*))! %)+

( ,)! ,+(&)! &+

Figura 3.2. Transductor de temperatura en escala Celsius completa.

En la Figura 3.3, se muestra el grado de linealidad de la corriente de salida respecto a la

temperatura en grados Celsius.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

31

Figura 3.3. Corriente de salida del LM35.

En la Figura 3.4, se muestra el valor RMS de la tensión de ruido por ancho de banda debido a factores intrínsecos del transductor. Como se puede observar el valor máximo es de 0.8 µV a frecuencia muy bajas. Para aplicaciones no remotas se puede obtener una relación señal a ruido grande. Para aplicaciones remotas, es decir, cuando el transductor esta lejos del ADC o del instrumento de medida, es necesario introducir guardas y blindajes adecuados.

Figura 3.4. Tensión de ruido del LM35.

Temperatura (°C) Salida (mV) 0..256 0...2600

Tabla 3.1. Rango de la señal de salida del LM35.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

32

3.1.2. Luminosidad (OP550A) La serie de dispositivos OP550 de Optek consiste de fototransistores NPN encapsulados epóxicamente. El amplio ángulo de desplazamiento del dispositivo proporciona una gran área en la recepción, como se puede ver en la Figura 3.5.

La respuesta espectral del fotosensor se define como la curva de excitación o de emisión del mismo en términos de la frecuencia; en la Figura 3.6, se puede observar que para el OP550A la curva de excitación tiene dos picos, uno cuando la longitud de onda de la luz incidente es de 850 nm y otro cuando ésta vale 650 nm (la longitud de onda de la luz percibida por el ojo humano se encuentra en el rango desde 450 hasta los 700 nm).

Las versiones OP550B y OP550C tienen sólo un máximo, que se encuentran muy por

encima de la región visible del espectro electromagnético como se observa en la Figura 3.6. Por otro lado en la Figura 3.7, se muestra la corriente de salida del fototransistor en función

de la irradiancia en mW/cm2. Se puede ver que la salida tiene un comportamiento lineal hasta que la irradiancia alcanza un valor de 10 mW/cm2, teniendo como salida máxima una corriente de 10 mA. Después de este rango, la salida del fototransistor ya no se comporta en forma lineal.

Figura 3.5. Desplazamiento angular del OP550A.

Irradiancia (mW/cm2) Salida (mA)

0..10 0..10 Tabla 3.2. Rango de la señal de salida del OP550A.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

33

Figura 3.6. Curva de excitación del fototransistor OP550A.

Figura 3.7. Corriente de salida fototransistor

según la irradiancia incidente.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

34

3.1.3. Sensores de Puertas El sensor de puerta es muy simple, debido a que sólo tiene dos estados. Uno es el estado que indica puerta cerrada y el otro estado que indica puerta abierta. Se puede utilizar desde un interruptor mecánico simple, hasta un fotosensor.

Aquí utilizamos un simple interruptor simple de un polo un tiro (1P1T). Por lo tanto, los

valores eléctricos que conforman la salida de este sensor son 0 y 5V.

Estado Salida (Volts) Puerta cerrada 0 Puerta Abierta 5

Tabla 3.3. Valores de salida del sensor de puerta. 3.2. Convertidor analógico – digital (ADC0809) 3.2.1. Descripción funcional

El ADC0809 es un convertidor analógico/digital de 8 bits, 8 canales multiplexados, y compatible con los microprocesadores fabricados por National.

El ADC utiliza aproximaciones sucesivas como técnica de conversión y tiene un

comparador “chopper” estabilizado de alta impedancia a la entrada del convertidor. Además de un divisor de tensión 256R con interruptores analógicos. El ADC0809 requiere señales lógicas de control para realizar una conversión, así como, una palabra de 3 bits para seleccionar el canal adecuado. Algunas características importantes se mencionan a continuación. De fácil interconexión con microprocesadores.

Opera con 5 Volts CD.

8 canales multiplexados con una dirección lógica.

Rango de entrada de 0 a 5 Volts CD con una sola fuente.

Salidas compatibles con TTL.

Resolución de 8 bits.

Error total ±½ LSB y ±1 LSB.

Baja potencia de consumo 15 mW.

Tiempo de conversión 100 µs.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

35

-./#0/102

"230./

$/.

/"/$

"$"4002

$0/"##.#55/$

66$6

30.$//

,7$/0"$/$

&0$/

$/.//

-"20#

-&0"##

/"5"!/$0"80/$$#9

$ ":

! 2 $/58 9 $/58&9 "##//

"$"$

-0

Figura 3.8. Estructura interna del convertidor A/D ADC0809.

Como se puede ver en la Figura 3.8, el dispositivo tiene un multiplexor 8 a 1 conformado por un conjunto de interruptores analógicos. Un canal en particular es seleccionado usando un decodificador de direcciones de 3 bits.

En la Tabla 3.4, se muestra el estado de la dirección de entrada en el decodificador para la selección del canal analógico. La dirección es enclavada (“Latched”) en el decodificador con una transición positiva de la señal ALE (“Address Latch Enable”).

Una vez que se ha enclavado la dirección del canal por la señal ALE, el ciclo de conversión inicia con la transición negativa del pulso de inicio de conversión (START); el proceso de conversión sólo será interrumpido por el inicio de otro pulso START. La conversión termina cuando el ADC0809 cambia el estado de la señal de fin de conversión (EOC) de 1 a 0 lógico. En las hojas técnicas del fabricante se establecen los tiempos mínimos de los pulsos START y ALE.

Línea de Direcciones

Canal analógico

Seleccionado C B A IN0 L L L IN1 L L H IN2 L H L IN3 L H H IN4 H L L IN5 H L H IN6 H H L IN7 H H H

Tabla 3.4. Bits de estado para la selección del canal de entrada.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

36

La Figura 3.9 resume la secuencia de los pulsos de control y los tiempos típicos requeridos.

0

;

/

$

;

/

; $

5

%)) %))

%))

Figura 3.9. Diagrama a bloques de la secuencia de conversión.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

37

3.2.2. Señales de control para conversión Como se estableció en el epígrafe 3.2.1, el ADC0809 requiere de tres señales fundamentales para el proceso de conversión, a saber:

i) Señal de reloj o sincronización. ii) Pulso ALE, y iii) Pulso START.

Además de establecer la dirección de canal analógico a la entrada por medio de una palabra

de 3 bits. La señal de reloj se genera por medio de Hardware debido a que es una señal sin mayor

complejidad, se utiliza un simple oscilador basado en un par de inversores lógicos tipo Schmitt de la familia TTL (74HC14).

Las hojas técnicas del ADC0809 indican un rango de frecuencias de esta señal que va desde los 10 hasta 1280 kHz. Por lo tanto, en virtud de las características dinámicas del 74HC14, la frecuencia generada por el oscilador es de 300 kHz, como se muestra en la Figura 3.10.

Figura 3.10. Oscilador generador de señal de reloj para el ADC0809.

Donde los valores de la resistencia y del capacitor están determinados por la siguiente relación.

RCfC

3.0≈

Las señales ALE y START, así como, la dirección del canal analógico a la entrada del

ADC0809 son generadas por software a través del microcontrolador, según la secuencia de conversión de la Figura 3.9 y del diagrama de tiempos del APÈNDICE E.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

38

3.2.3. Ecuaciones de conversión La resolución de un ADC se define como la cantidad de bits a la salida del mismo. En otras palabras, la resolución establece el tamaño en que se debe incrementar el voltaje a la entrada de tal forma que en la salida ocurra una transición entre códigos adyacentes N y N+1. Entonces, estos incrementos a la entrada establecen la resolución en Volts para dicha transición. Por lo tanto esta resolución esta dada como:

LSBmVV

Rn

REF

2=

Donde: VREF = Voltaje de referencia del convertidor. N = Número de bits del convertidor.

La exactitud del convertidor está determinada por la elección del voltaje de referencia VREF. Por lo tanto, para estar dentro de los rangos eléctricos sugeridos por el fabricante del ADC0809, elegimos un voltaje de referencia de 5.12 Volts, que no afectan la integridad del dispositivo. Entonces, la resolución queda establecida como:

LSBmVVolts

R 20256

12.5==

El código de salida, para un voltaje de entrada arbitrario son los enteros dentro del rango:

LSBxV

N IN ±= 25612.5

Donde VIN es el voltaje de entrada en Volts en un canal en particular. Ejemplo. Si en el canal IN0 del ADC0809 entra un voltaje de 250mV, a la salida se tendrá una palabra de 8 bits igual a:

=

===

210

210

0000111014

0000110113

25612.525.0

óxN

Es decir, el máximo error en la conversión es un LSB (o sea, el valor está entre cualquiera de dos palabras adyacentes).

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

39

3.3. Adaptación de señales En el epígrafe 2.2.3 se estableció que la resolución del ADC es de 20 mV/LSB. Es decir, que se debe acondicionar las señales de entrada procedentes de los transductores, de tal forma que todo el rango de medida este distribuido uniformemente en incrementos de la salida de 20 mV. 3.3.1. Señal del transductor de temperatura Como se vio anteriormente, el transductor de temperatura utilizado tiene una sensibilidad de 10 mV/°C, es decir, la tensión de salida se incrementa 10 mV cada vez que el entorno del LM35 se incrementa un grado centígrado. Por lo tanto, para que ocurra una transición en la palabra de salida del ADC0809, se necesita acondicionar la salida del LM35 tal que el incremento sea 20 mV por cada grado centígrado. El circuito de la Figura 3.12 se encarga de hacer la adaptación antes mencionada, este circuito es básicamente un amplificador no inversor utilizando un opamp. El amplificador tiene una ganancia en lazo cerrado G = 2, de tal forma que transforma la sensibilidad del LM35 de 10 mV/°C a 20 mV/°C.

Figura 3.12. Circuito acondicionador para la señal procedente del LM35. El valor de R1 y R2 se obtiene fácilmente del cálculo de la ganancia del amplificador. Esta

está dada como[SEDRA1999]:

12

1RR

Gv +=

Se puede ver que si R1 = R2, entonces Gv = 2, que es precisamente el resultado que se busca.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

40

3.3.2. Señal del transductor de luminosidad En la Tabla 3.2 del epígrafe 3.1.2, se establece el rango de la señal de salida del transductor de luminosidad. Se puede ver que es la corriente y no la tensión la que cambia conforme cambia la luminosidad. Así que, primero se convierte ésta corriente en un voltaje proporcional. Esto se realiza con el circuito de la Figura 3.13.

Figura 3.13. Convertidor de corriente a voltaje. Donde la tensión de salida está dada como:

LE RIVout =

El voltaje máximo VE del fototransistor debe ser muy próximo a VCC. Además, de la Figura 3.7, se observa que la salida tiene un comportamiento lineal hasta cuando IE ronda en los 10 mA, por lo tanto, podemos calcular el valor de la resistencia de carga RL de la siguiente forma.

Ω== 50010

5mAV

RL

De esta forma, se obtendrán 5V (10 mW/cm2) repartidos en 250 pasos. (Si VCC fuera 5.12 V, se obtendrían 256 pasos). Por lo tanto, los incrementos tienen un valor de 20 mV.

Se puede utilizar un opamp como amplificador de ganancia unitaria o seguidor de voltaje.

Figura 3.14. Circuito acondicionador procedente del transductor OP550A.

Donde efectivamente, la ganancia Gv = 1[SEDRA1999].

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

41

3.3.3 Señal de los sensores de puertas. Debido a que los sensores de puertas sólo poseen dos estados (abierto/cerrado), la salida tiene valores de 0 o 5 Volts. Esta señal es conectada directamente al canal de entrada IN3 del ADC0809. Por lo tanto, la salida de este último reproduce sólo dos palabras, 00000000 o 11111111 para los dos estados.

Figura 3.15. Sensor de puerta implementado con un interruptor mecánico.

3.4. Interfase para Motor a Pasos (MAP) La interfase para el motor a pasos está conformada por: circuitos lógicos secuenciales, señales de control y dispositivos electrónicos de potencia.

Figura 3.16. Estructura a bloques de la interfase para motor PAP.

En la Figura 3.16, se muestra un diagrama a bloques de las partes y señales que son utilizadas en la interfase de potencia. La primera etapa es un registro de corrimiento o secuenciador usando el 74HC194, cuya salida está dada como se muestra en la Tabla 3.5.

La entrada CLK es la señal de reloj de temporización del circuito, y su frecuencia

determina la velocidad de corrimiento de los bits de salida del 74HC194, y por lo tanto, la frecuencia de CLK determina la velocidad del motor de pasos. Como se mencionó en el epígrafe

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

42

2.5, el funcionamiento básico del motor de pasos, consiste en cambiar las conexiones de estado de los devanados internos, y es el 74HC194 el que realiza esa tarea en forma autónoma.

INPUTS OUTPUT MODE

CLR S0 S1

CLK 1 2 3 4

0 X X X Deshabilita chip

1 0 0 X No cambian las salidas

1 0 1 ↑ Desplazamiento a la derecha

1 1 0 ↑ Desplazamiento a la izquierda

1 1 1 ↑ Carga en paralelo

Tabla 3.5. Tabla de estados lógicos de 74HC194.

La señal CLR se utiliza para habilitar o limpiar el chip. Como se observa en la Tabla 3.5, si CLR está a un nivel lógico bajo, el circuito es limpiado, es decir su salida es igual a 0000. Para habilitar la operación del sistema CLR = 1.

Las entradas S0 y S1 se usan para cambiar los estados lógicos de la salida de los registros. Como se observa en la Tabla 3.5, cuando S0=S1=1, la palabra 0001 en la entrada en paralelo se carga a la salida con una transición de la señal CLK. Una vez que esta palabra se encuentra enclavada en la salida, la dirección de desplazamiento de 0001 está determinada por S0=0 y S1=1 o S=1 y S=0, para desplazamiento a la derecha y desplazamiento a la izquierda respectivamente. Por lo tanto, la secuencia de pasos para hacer funcionar el motor de pasos es: 1. Limpiar los registros del 74HC194 poniendo CRL=0.

2. Habilitar el circuito estableciendo CLR=1.

3. Cargar la palabra 0001 a la salida haciendo S0=1 y S1=1.

4. Fijar S0=0 y S1=1 para giro a la derecha, o

5. Fijar S0=1 y S1=0 para giro a la izquierda.

La segunda etapa de la interfase consiste de un conjunto de amplificadores operacionales como medio de acoplamiento entre la etapa secuencial y la salida de potencia. Estos opamp trabajan como comparadores[DRISCOLL1993], cuya salida toma dos valores dependiendo del valor de la entrada. Como la entrada solo puede tener dos valores; “0” o “1” (es decir, 0V ó 5V), la salida tenderá al voltaje de saturación positiva o al voltaje de saturación negativa, respectivamente. Este hecho se muestra en la Figura 3.17.

Figura 3.17. Opamp de acoplamiento.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

43

Donde:

<−=

>=

refentsal

refentsal

VVsiVCCV

VVsiVCCV

Se puede observar que si Vref = 2.5 V, entonces se cumple la condición anterior. La última etapa de ésta interfase consiste en el circuito de salida y que es finalmente, la etapa que proporciona la potencia para mover al motor de pasos. De lo visto en el epígrafe 2.5, se sabe que un motor a pasos o paso a paso, requiere que sus devanados se polaricen en forma alternada según una secuencia. El circuito de la Figura 3.18, muestra un amplificador de clase B o Push–Pull [SEDRA1999] que energiza en forma alterna los devanados del motor de pasos.

Figura 3.18. Circuito que energiza un devanado en el motor de pasos.

3.5. Interfase de alto voltaje 110/125 VAC La interfase de alto voltaje está conformada de dos dispositivos importantes, uno es un TRIAC comercial capaz de soportar una corriente de carga máxima de 12 A. Y el otro es, un optoacoplador con DIAC que sirve como circuito de disparo del primero, garantizando la corriente suficiente en la compuerta del TRIAC para meterlo en conducción, Además de aislar físicamente la etapa de alto voltaje y la etapa digital. En la Figura 3.19 se muestran las características necesarias para poner en conducción al TRIAC. Para el TRIAC 2N6344, la corriente mínima IGT en la compuerta tiene un valor típico de 6.0 mA, un voltaje pico repetitivo máximo en estado apagado VDRM y VRRM de 600 V (ver la Figura 2.13). El optoacoplador es el MOC3020 que contiene un DIAC que puede soportar una corriente máxima de 100 mA y una caída de voltaje de 3 V. El transmisor es un LED que requiere una corriente de 10 mA, a un voltaje de 1.5 V. De lo antes mencionado se puede calcular Rd.

Ω=−= 35010

5.15mA

VVRd

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

44

MT2

MT1GATE

ILED

IT(RMS)

IGT

Figura 3.19. Circuito básico de disparo con optoacoplador.

3.6. Interfaz RS-232 Como el microcontrolador AT89C51 contiene un puerto serie asincrónico, lo único que resta para crear una comunicación serie, es adaptar los niveles TTL con el canal de comunicación RS232 y viceversa (ver la Figura 2.26 del epígrafe 2.9). Para este fin se usa el adaptador MAX232 manufacturado por MAXIM. Este chip es un convertidor doble de TTL a RS-232 y viceversa. La Figura 3.20 muestra la estructura interna del adaptador.

Figura 3.20. Estructura interna del MAX232.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

45

Una propiedad interesante del MAX232 es que sólo requiere una fuente de alimentación de +5V, y por medio de unos cuantos capacitores externos, internamente se generan los niveles de voltaje negativos necesarios que requiere el estándar RS232. En la Figura 3.21, se describe la forma de conectar el adaptador de niveles con el microcontrolador AT89C51 y con el puerto serie de una PC a través de un cable de módem nulo (Null Modem).

Figura 3.21. Interfaz de comunicación serie entre el SDMC y la PC.

3.7. Microcontrolador del sistema (AT89C51) El corazón del SDMC es el microcontrolador AT89C51 manufacturado y distribuido por Atmel Corporation. Éste microcontrolador pertenece a la familia de microcontroladores MCS-51 de Intel Corporation.

El AT89C51 es un dispositivo que combina un CPU de 8 bits y memoria interna usando

tecnología no volátil de alta densidad (memoria FLASH), compatible pin a pin y en su conjunto de instrucciones con el estándar industrial MCS-51.

3.7.1. Recursos del AT89C51

El AT89C51 de Atmel es una poderosa microcomputadora que proporciona soluciones altamente flexibles y a bajo coste para muchas aplicaciones de control y comunicación entre módulos.

En la Figura 3.22 se muestra la estructura interna del microcontrolador, así mismo, se puede apreciar su arquitectura interna. Se observa que los 4 puertos están enclavados (Latched), y eso hace fácil la interconexión con los dispositivos externos.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

46

Figura 3.22. Diagrama a bloques de la estructura interna del AT89C51.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

47

El AT89C51 posee las siguientes características: Compatible con productos MCS-51.

4 kBytes de memoria Flash para programa.

128 × 8 bits de memoria RAM.

32 líneas de entrada/salida programables (4 puertos de 8 bits).

2 contadores / temporizadores de 16 bits con 4 modos de operación.

Un canal o puerto serie “full duplex” programable.

6 fuentes de interrupción.

Oscilador “On-chip” y circuitería de Temporización.

Operación completamente estática: 0 Hz a 24 MHz. .

3.7.2. Arquitectura del SDMC En esta sección se describe la arquitectura del sistema digital tomando en cuenta los recursos del microcontrolador. En la Figura 3.23, se muestra el diagrama a bloques de la conexión de los puertos del AT89C51 con las diferentes partes que conforman SDMC.

Figura 3.23. Arquitectura del SDMC.

Una de las mayores virtudes del microcontrolador 89C51 es que los 4 cuatro puertos bidireccionales que posee pueden ser direccionados bit a bit. De esta forma, como se puede observar en la Figura 3.23, ésta característica permite economizar y optimizar el uso de dichos puertos. En la Tabla 3.6 se especifica cada una de las líneas de los puertos utilizados en el diseño del SDMC.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

48

Señal Puerto Función

A0..A2 P0..P2 Selección del canal en la entrada del ADC0809.

ALE P0.3 Address Latch Enable.

Start P0.4 Señal de inicio de conversión.

D0..D7 P1.0..P1.7 Dato de salida del ADC0809

EOC P2.0 Señal confirmación del fin de conversión.

CLR P2.1 Señal que limpia el 74HC194

CLK P2.2 Señal de reloj para el 74HC194

S0 y S1 P2.3 y P2.4

Selección de la dirección de giro del motor PAP

HV P2.5 Bit que enciende/apaga la interfase de 115/125 VAC

Tabla 3.6. Descripción de la arquitectura del SDMC. Generación del BAUD RATE del puerto serie. Para utilizar el puerto serie del microcontrolador se requiere establecer una velocidad de transmisión y recepción de datos. La función esencial del puerto serie es realizar la conversión paralelo – serie para datos de salida, y la conversión serie – paralelo para datos de entrada. Debido a que el puerto serie puede realizar una transmisión Full Duplex, éste posee un buffer bidireccional SBUF.

El AT89C51 utiliza uno de sus TIMERS para generar el BAUD RATE o frecuencia de operación como se muestra en la Figura 3.24.

Figura 3.24. Diagrama a bloques del puerto serie.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

49

Generación de la señal CLK para la interfase MAP. La interfase del motor a pasos (MAP) requiere una señal de reloj que determina la velocidad de dicho motor. Esta señal es generada por software, programando interrupciones en el TIMER 0 y por medio de una ISR (Rutina de Servicio a Interrupción) crea CLK a través de una línea del puerto P2 del microcontrolador. En la Figura 3.25 se muestra este proceso.

Figura 3.25. Diagrama a bloques de cómo se genera la señal CLK para la interfase MAP.

Como se puede ver en la Figura 3.25, el TIMER 0 tiene dos registros de 8 bits, TL0 y TH0. Estos registros son configurados por medio de software para trabajar como un solo registro de 16 bits[MACKENZIE1998]. De esta manera, el valor máximo que se puede alcanzar es de 216.

El desbordamiento de TIMER 0 se da cuando caduca el valor almacenado en ambos

registros (cabe señalar que el desbordamiento también depende de la frecuencia del reloj del sistema), activando la bandera TF0 y por lo tanto provocando una interrupción al sistema.

Como en la mayoría de los microprocesadores comerciales con manejo de interrupciones,

el fabricante establece una tabla de excepciones o interrupciones. A ésta tabla se le asocia un vector de interrupción que no es mas que una dirección, dirección que se encuentra en la memoria del programa y que corresponde al inicio de la rutina de servicio a interrupción (ISR), para mayor detalle sobre manejo de interrupciones ver [DRISCOLL1993].

La ISR es un fragmento de software que modifica el estado del puerto P2.2, y con esto crea

una señal cuadrada periódica que controla la velocidad del MAP. Ver el APÉNDICE A para más detalle.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

50

3.7.3. Programación del sistema El programa almacenado en la memoria FLASH del AT89C51 tiene como objetivo generar señales de control, interpretar y manipular información procedente tanto del convertidor analógico/digital, como del canal de comunicación serie. Además de transmitir por dicho canal la información requerida por el usuario. A continuación se describe el algoritmo del programa de control PCAC.

1. Espera comando válido en el buffer del puerto serie.

2. Identifica comando y selecciona el canal en el convertidor analógico/digital.

3. Genera las señales de control para el inicio de la conversión; es decir, las señales START y ALE.

4. Verifica el fin de la conversión a través de EOC (End of Conversion).

5. Lee dato de conversión (8 bits) a la salida del ADC.

6. Si el comando leído del puerto serie es de temperatura, entonces:

Convierte el dato de la conversión a código BCD.

Convierte el código BCD en caracteres ASCII.

Escribe caracteres ASCII en SBUF del puerto serie.

7. Si el comando leído del puerto serie es de Luminancia, entonces:

Convierte el dato de la conversión a código BCD.

Convierte el código BCD en caracteres ASCII.

Escribe caracteres ASCII en SBUF del puerto serie.

8. Si el comando leído del puerto serie es señal de puerta, entonces:

Convierte el dato de la conversión a código BCD.

Convierte el código BCD en caracteres ASCII.

Escribe caracteres ASCII en SBUF del puerto serie.

9. Si el comando leído es la habilitación de MAP, entonces:

Habilita la interfase de potencia.

Si comando leído es “gira a la derecha”, entonces:

Habilita rutina de giro a la derecha. En el APÉNDICE A se muestran los diagramas de flujo del programa principal y de las Subrutinas del programa de control, adquisición y comunicación PCAC.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

51

3.8. Suministros de alimentación del SDMC Los suministros de voltaje del SDMC son proporcionados por una fuente de voltaje conformada por un transformador principal aislado, 3 reguladores lineales monolíticos que proporcionan los 3 voltajes necesarios.

El LM7805 es un regulador en C.I. cuyo voltaje de salida es de +5 Volts con una corriente

máxima de 1 A, el LM7905 es un regulador en C.I. con un voltaje de salida de –5 Volts con una corriente de 1 A, y el LM7812 es un regulador con un voltaje de +12 Volts, también a 1 A. 3.9. Interfaz gráfica de usuario Comunicación Serial. El puerto serie en Windows32 se puede acceder por varias técnicas como son: ActiveX, Access I/O y por operación de archivo. La comunicación serial en nuestra interfaz fue implementada con operación de archivo. El diseño completo de la interfaz de usuario se realizó con Microsoft Visual C++ 6.0, con la MFC (Microsoft Foundation Class)

En Microsoft Windows (2000, Me, XP y 95/98) el puerto serie puede ser tratado como un archivo, por lo tanto, es posible abrir un puerto serial usando la función de Windows “crear archivo”.

El primer paso en la apertura de un puerto serial es, la inicialización y selección de una configuración de puerto. El propósito de esto es crear el “agente” de puerto serie. Se usará un manejador de puerto como agente del puerto serie. Creación del manejador de puerto. La función que se usa para crear un manejador de puerto serial es la función CreateFile. El siguiente código muestra la función que se utiliza para crear un manejador: HandlePort = CreateFile(portName, //Especifica puerto: por defecto “COM1” GENERIC_READ | GENERIC_WRITE, //Especifica modo de apertura de componente 0, //El componente no es compartido NULL, //El objeto obtiene seguridad por defecto OPEN_EXISTING, //Especifica que acción tomar en archivo 0, //Por defecto NULL); //Por defecto

Listado 3.1. Manejador del Puerto Serie.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

52

Figura 3.26. Función CreateFile.

Restauración de la configuración. La función GetCommState se usa para obtener el control actual del componente, y entonces llenar el bloque de control del componente (una estructura DBC) con las configuraciones nuevas para un componente especificado de comunicaciones. //fragmento que obtiene la configuración actual del puerto serial de comunicaciones. if(GetCommState(handlePort_, &config_)==0) AfxMessageBox(“Problemas al obtener configuración de componente.”); Return FALSE;

Listado 3.2. Restauración de configuración.

Modificación de la configuración. Cuando ya se tiene una configuración de puerto serial en el formato DCB, se tienen que modificar parámetros a bit. El siguiente código muestra los parámetros modificados: //Asigna parámetros de usuario. config_.BaudRate = dcb.BaudRate; //Especifica “Baudrate” de comunicación. config_.StopBits = dcb.StopBits; // Especifica bit de paro de la comunicación. config_.Parity = dcb.Parity; // Especifica parida de la comunicación. config_.ByteSize = dcb.ByteSize; //Especifica tamaño de byte.

Listado 3.3. Modificación de configuración.

DWORD BaudRate: Current baud rate (default = 9600) BYTE StopBits: 0,1,2 = 1, 1.5, 2 (default = 0) BYTE Parity: 0-4 = no, odd, even, mark, space (default = 0) BYTE ByteSize: Number of bits/byte, 4-8 (default = 8)

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

53

Figura 3.27. Configuración del puerto serie.

Almacenamiento de la configuración. El siguiente paso es el almacenamiento de la nueva configuración que es modificada dentro de componente de control. La función SetCommState configura un componente de comunicación de acuerdo a las especificaciones del bloque de control del componente (una estructura DBC). La función reinicializa todo el hardware y configuraciones de control, pero no vacía las colas de entrada o salida. if(SetCommState(handlePort_, &config_)==0) AfxMessageBox(“Error al establecer configuracion de puerto”); Return FALSE;

Listado 3.4. Almacenamiento de configuración. Programación de un “time-out” en la comunicación. El paso final en la apertura del puerto serie es establecer un time-out en la comunicación usando la estructura de datos COMMTIMEOUTS y llamando a la función SetCommTimeouts. COMMTIMEOUTS comTimeOut; //Instancia, un objeto de COMMTIMEOUTS. ComTimeOut.ReadIntervalTimeout = 3; //Especifica time-out entre cada carácter //recibido. ComTimeOut.ReadTotalTimeoutMultiplier = 3; //Especifica el valor que será //multiplicado

el número requerido de bytes a leer. comTimeOut.ReadTotalTimeoutConstant = 2; //Especifica el valor que le es sumado al //producto del miembro ComTimeOut.WriteTotalTimeoutMultiplier = 3; //Especifica el valor por el que es //multiplicado el número de bytes enviados. ComTimeOut.WriteTotalTimeoutConstant = 2; //Especifica el número que es sumado al //producto del miembro SetCommTimeouts (handlePort_,&comTimeOut); //Establece el parámetro time-out dentro //del

componente de control.

Listado 3.5. Programación de un Time – Out.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

54

Después que el usuario ha establecido el time-out de comunicación sin ningún error, el puerto serial ya ha sido abierto. Transmisión de datos. La mayoría de los datos de transmisión del puerto serie se hacen como escritura a archivo. El programador puede aplicar las funciones de operación de archivo para enviar datos por el puerto serie. La función WriteFile es la función usada para enviar datos en la comunicación serial. If(WriteFile(handlePort_, //Manejador de archivo a leer OutputData, //Puntero para datos a escribir a archivo SizeBuffer, //Número de bytes a escribir &length, NULL)==0) //Puntero al número de bytes a escribir AfxMessageBox(“Problemas al escribir al puerto.”); Return FALSE;

Listado 3.6. Transmisión de datos. Si la función tiene éxito, el valor de retorno es distinto de cero. Recepción de datos. La mayoría de los datos recibidos en una comunicación serial se hacen como lectura de archivo. El programador puede aplicar las funciones de operación de archivo para recibir datos del puerto serie. La función ReadFile es la función que maneja lectura de datos en comunicación serial. If(ReadFile(handlePort_, //Manejador del archivo a leer inputData, //Puntero para datos a leer de archivo sizeBuffer, //Número de bytes a leer &length, //Puntero a número de bytes a leer NULL)==0) //Puntero a la estructura para datos AfxMessageBox(“Problemas al leer del puerto.”); return FALSE;

Listado 3.7. Establecimiento de Recepción de datos. Si la función tiene éxito, el valor de retorno es distinto de cero. Cancelación o cierre del puerto serie. If(CloseHandle(handlePort_)==0) AfxMessageBox(“No se pudo cerrar el puerto.”); return FALSE;

Listado 3. 8. Cierre del puerto serie.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

55

3.10. Interfaz Remota vía TCP/IP Windows Sockets. La especificación de Windows Sockets define una interfaz de programación de aplicaciones de red con compatibilidad binaria para Microsoft Windows. Windows Sockets se basa en la implementación de sockets de UNIX de Berkeley Software Distribution (BSD, versión 4.3), desarrollada en la Universidad de California en Berkeley. Esta especificación incluye rutinas de socket de tipo BSD y extensiones específicas de Windows. Windows Sockets permite a las aplicaciones comunicarse a través de cualquier red compatible con la API de Windows Sockets. En Win32, Windows Sockets proporciona seguridad para subprocesos.

Muchos proveedores de software de red ofrecen compatibilidad con Windows Sockets mediante protocolos de red como Protocolo de control de transporte /Protocolo de Internet (TCP/IP), Xerox Network System (XNS), Protocolo DECNet de Digital Equipment Corporation e Internet Packet Exchange/Sequenced Packed Exchange de Novell Corporation (IPX/SPX), entre otros. Aunque la especificación actual de Windows Sockets define la abstracción de sockets para TCP/IP, se puede conseguir la compatibilidad de cualquier protocolo de red con Windows Sockets mediante una biblioteca de vínculos dinámicos (DLL) que implemente Windows Sockets. Algunos ejemplos de aplicaciones comerciales programadas con Windows Sockets son servidores X Windows, emuladores de terminal y sistemas de correo electrónico.

La biblioteca Microsoft Foundation Class (MFC) ofrece dos clases para programar aplicaciones con la API de Windows Sockets. Una de estas clases, CSocket, proporciona una abstracción de alto nivel que simplifica la programación de comunicaciones a través de una red.

Un grupo numeroso de especialistas y empresas relacionados con TCP/IP desarrolló la

especificación de Windows Sockets, Windows Sockets: An Open Interface for Network Computing Under Microsoft Windows (la versión vigente actualmente es la 1.1), como un estándar abierto y que está disponible para su uso gratuito. El modelo de programación de sockets admite actualmente un "dominio de comunicaciones" mediante Internet Protocol Suite. La especificación está disponible en Platform SDK.

Como los sockets utilizan Internet Protocol Suite, son la ruta preferida para las aplicaciones que admiten comunicaciones por Internet en la "autopista de la información". Definición de “socket”: Un “socket” es el extremo de una comunicación; un objeto por el cual una aplicación compatible con Windows Sockets envía o recibe paquetes de datos a través de la red. Un socket tiene una especificación de tipo, y está asociado a un proceso en ejecución. También un “socket” puede tener un nombre. Actualmente, los sockets sólo suelen intercambiar datos con otros sockets del mismo "dominio de comunicación" que utilicen Internet Protocol Suite. Hay dos tipos de sockets:

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

56

Sockets de secuencias. Los sockets de secuencias proporcionan un flujo de datos sin límite de

registros: una secuencia de bytes. Las secuencias ofrecen la garantía de que se entregarán en el orden correcto y sin duplicar.

Sockets de datagramas. Los sockets de datagramas admiten un flujo de datos en forma de registros,

sin garantías de entrega y que podrían llegar desordenados y duplicados. "En orden" significa que los paquetes se entregan en el orden en que se envían. "Sin duplicar" significa que se recibe cada paquete una sola vez.

Los dos tipos de sockets son bidireccionales, es decir, los flujos de datos pueden transmitir simultáneamente en las dos direcciones (dúplex completo). El tipo de datos SOCKET: Cada objeto “socket” de MFC encapsula un identificador de objeto de Windows Sockets. El tipo de datos de este identificador es SOCKET. Un identificador SOCKET es análogo al identificador HWND de una ventana. Las clases de socket de MFC proporcionan operaciones para el identificador encapsulado.

El tipo de datos SOCKET se describe de forma detallada en Platform SDK. Usos de los sockets: Los sockets son de gran utilidad en al menos tres contextos de comunicaciones: Modelos cliente - servidor.

Escenarios de comunicación entre interlocutores del mismo nivel, como las aplicaciones de conversación.

Al hacer llamadas a procedimientos remotos (RPC, Remote Procedure Call) en las que la aplicación receptora interpreta un mensaje como una llamada a función.

CAPÍTULO 4

RESULTADOS OBTENIDOS

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

58

4. RESULTADOS OBTENIDOS La Figura 4.1 muestra el sistema mínimo del SDMC. Éste sistema mínimo basado en el microcontrolador AT89C51 de Intel, consta de varios módulos, entre los más importantes se pueden mencionar: el módulo para generar la señal de reloj del microcontrolador, el módulo de adaptación de señales analógicas obtenidas por los sensores, el módulo de conversión analógica - digital con el ADC0809 y el módulo para la comunicación serial con una PC.

Los módulos en los que se tuvieron más problemas al realizar el diseño fueron: el módulo de generación de señal de reloj y el módulo de adaptación de señales. En el módulo de generación de señal de reloj, se pueden presentar problemas por la elección aproximada de componentes pasivos además de la influencia de variables externas que pueden afectar al diseño del oscilador; para resolver este problema, se decidió implementar un cristal oscilador con la frecuencia deseada. Para el módulo de adaptación de señales, se pueden presentar problemas relacionados con linealidad, para ello, las señales deben ser adaptadas en rangos tolerables y adecuados. El detalle de los componentes del sistema mínimo se puede consultar en los diagramas esquemáticos eléctricos del prototipo en el APÉNDICE D.

Figura 4.1. Sistema mínimo SDMC.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

59

La Figura 4.2 muestra el alcance actual del SDMC. El sistema cuenta con tres sensores: temperatura, luminosidad y sensor de puerta (Switch). Cuenta con dos interfaces de salida: Motor de pasos (Movimientos a favor y en contra de las manecillas del reloj a velocidad constante) e interfase de alto voltaje (activación de dispositivos de 110/125 VAC). Se observa a su vez en la Figura 4.2, la implementación de hardware necesaria para realizar las interfaces de potencia y alto voltaje que controlan el motor a pasos, así como el módulo de alimentación principal del sistema.

Figura 4.2. SDMC e interfaces para control de MAP y alto voltaje.

El programa de la interfaz gráfica de usuario que se muestra en la Figura 4.3, hace posible

la adquisición de datos del SDMC. En dicha figura, el programa se encuentra adquiriendo valores de temperatura.

Los parámetros de la comunicación serial son los siguientes: Puerto: COM1 Velocidad: 2400 baudios Bits de parada: 1 Bit de paridad: Ninguno

El SDMC se comunica de manera predeterminada a una velocidad de 2400 baudios, el puerto puede elegirse entre COM1 y COM2.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

60

La ejecución de otros comandos para el SDMC así como la opción de guardar datos en disco entre otros, puede consultarse a detalle en el manual de usuario de la interfaz en el APÉNDICE B.

Figura 4.3. Interfaz gráfica de usuario del SDMC.

La Figura 4.4, muestrael entorno genérico Cliente - Servidor y el acceso remoto a nuestro sistema. Aunque en esta figura las aplicaciones se ejecutan en PC mono - usuario, se sabe que esto es cierto en general sólo para el Cliente, en tanto que un Servidor puede ser una computadora o estación de trabajo muy potente.

Mediante la programación de sockets de secuencias o TCP en Microsoft Visual C++, se cuenta con las aplicaciones Cliente (Sockcommander) y Servidor (Socklistener) que hacen posible la adquisición de datos y que cuentan con un grupo de comandos para controlar al motor a pasos conectado al sistema en forma remota. El detalle del manejo de ambas aplicaciones se explica en el APÉNDICE C.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

61

*30

<3=1

< 3=1

->%

$,,

,?))

0

0

Figura 4.4. Modelo Cliente - Servidor y acceso remoto al SDMC.

CAPÍTULO 5

CONCLUSIONES

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

63

5. CONCLUSIONES Todo diseño implica el uso de una metodología y la realización de este proyecto no ha sido la excepción, el trabajo realizado está respaldado por una serie de técnicas que se utilizan tanto en el diseño Digital como en el desarrollo de software, y que sirven para satisfacer los requerimientos de un cliente.

El SDMC es un sistema que conjuntamente con el software de aplicación desarrollado, realiza adquisición de datos y es capaz de controlar dispositivos externos en tiempo real. En resumen, el SDMC cuenta con tres entradas analógicas: sensores de Temperatura, Luminosidad y Contacto. Cuenta con dos salidas: Motor a pasos y activación de dispositivos de 110/125 V AC. El software de aplicación comprende además la creación de sockets con el modelo Cliente - Servidor para hacer posible la adquisición y control de datos en forma remota a través de la red.

Las dificultades que se presentaron en la realización del sistema digital, corresponden en su mayoría a agentes externos que afectan el comportamiento del sistema y por tanto el diseño. Las incidencias en la realización del software de aplicación se encuentran propiamente documentadas. Desde la perspectiva de la ingeniería, el objetivo más importante fue lograr un diseño satisfactorio y un desempeño eficiente del sistema realizado. SUGERENCIAS PARA TRABAJOS FUTUROS El sistema desarrollado es capaz de soportar requerimientos de automatización y control de una planta, un laboratorio, o la instalación en la que se implante, para ello, es posible que sean necesarias adiciones al sistema. Se listan a continuación algunas de las mejoras o adiciones que se pueden hacer al SDMC.

• Adición de entradas al sistema. Se pueden añadir hasta 5 entradas más al sistema, puesto que se hallan usados hasta ahora solo 3 de los 8 canales disponibles en el ADC.

• Adición de salidas al sistema. Adicionalmente a la salida del motor a pasos, se puede agregar un número finito de salidas de control relacionadas o no con las señales de entrada.

En cuanto al software se contemplan las siguientes mejoras. • Autenticación en aplicaciones Cliente – Servidor.

• Transferencia de archivos grandes en aplicaciones Cliente – Servidor.

• Manejo más flexible de puerto serie en aplicaciones Cliente – Servidor (actualmente solo es posible comunicarse por COM1).

Con las modificaciones al SDMC, será necesario realizar modificaciones a su programa principal y posiblemente a las aplicaciones de interfaz realizadas; en ambos casos, se requiere del conocimiento del lenguaje ensamblador del Microcontrolador y del conocimiento en el desarrollo de aplicaciones para Windows en Visual C++ 6.0.

REFERENCIAS

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

65

Textos. [ANGULO1999]. Angulo, J.M., Angulo I., Microcontroladores PIC, diseño práctico de aplicaciones, McGraw Hill, 2a Edición, Madrid 1999. [CEBALLOS2000]. Ceballos, Javier Sierra, Visual C++ 6 Aplicaciones para Win32, Alfaomega, Colombia, 2000. [DRISCOLL1993]. Driscoll, Frederick F., Amplificadores Operacionales y Circuitos Integrados Lineales, Prentice Hall, 4ª Edición, México 1993. [HALL1986]. Hall, Douglas V., Microprocessors and interface. Programming and Hardware, McGraw-Hill, Singapore, 1986. [KILGENSTEIN]. Kilgenstein, Otmar, Switched-mode power supplies in practice, John Wiley & Sons,1991. [KOSOW1993]. Kosow, Irving L., Máquinas eléctricas y transformadores, 2ª edición, Prentice Hall Iberoamericana, M’exico 1993. [MCKENZIE1998]. Mackenzie, I. Scott, The 8051 microcontroller, Macmillan Publishing Company, New York, 1992. [PALLAS1998]. Pallas, Ramón Areny, Sensores y Acondicionadores de señal, Marcombo editores, Barcelona, 1998. [PAPPAS1999]. Pappas, Chris H., Murray, William H., Visual C++ 6.0 Manual de referencia, McGraw-Hill, Madrid España, 1999. [RASHID1995]. Rashid, M.H. Electrónica de potencia, 2da edición, Prentice Hall, México 1995. [SALINAS1992]. Salinas, Alejandro Vega, Manual y Aplicaciones del Microcontrolador 8051, Centro de Investigación y de Estudios Avanzados del IPN, Departamento de Ingeniería Eléctrica, México D.F; Agosto de 1992. [SEDRA1999] Sedra, Adel S., Circuitos microelectrónicos, 4ª Edición, Oxford University Press, México 1999. [STOU1976]. Stou, David F., Milton Kaufman, Handbook of Operational Amplifier Circuit Design, McGraw-Hill, USA, 1976.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

66

Documentación y hojas técnicas en sitios WEB.

1. LM35 Precision Centigrade Temperature Sensors Datasheet, National Semiconductor, November 2000.

http://www.national.com/pf/LM/LM35.html

2. ADC0809, 8-bit Microprocessor A/D Converters with 8-Channel multiplexor.

http://www.national.com/pf/AD/ADC0809.html

3. +5V-Powered, Multichannel RS-232 Drivers/Receivers.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1798

4. 3-Terminal 1A Positive Voltage Regulator.

http://www.fairchildsemi.com/pf/LM/LM7805.html

5. 3-Terminal 1A Positive Voltage Regulator.

http://www.fairchildsemi.com/pf/LM/LM7812.html

6. 3-Terminal 1A Negative Voltage Regulator.

http://www.fairchildsemi.com/pf/LM/LM7905.html

7. Hojas técnicas del microcontrolador AT89C51.

http://www.atmel.com/atmel/acrobat/doc0265.pdf

8. Recursos de Programación y depuración para el microcontrolador 8051.

http://www.8051.com

Sitios WEB sobre recursos y programación Visual C++: 1. Microsoft Visual C++ Developer Center. http://msdn.microsoft.com/visualc/ 2. CodeGuru. The number one developer site. http://www.codeguru.com/ 3. The Code Project. Free Source Code and Tutorials. http://www.codeproject.com/ 4. Serial Communication Under Windows. http://prism.mem.drexel.edu/stanciu/web_page/windows_comm.htm

APÉNDICE A.

DIAGRAMAS DE FLUJO Y ENSAMBLADOR DEL PROGRAMA DE CONTROL, ADQUISICIÓN Y COMUNICACIÓN (PCAC)

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

68

0

@$0(%A

00)

2/.$89

0(%

(BB

$/89

$(,

0,89

()

.!"89 .!"5589

0

"

0 "

@$0(%A

0

""$89

@$0(%A

2/.$89

(B'B

$"89

0

"!89

"

0

"

0

0

"

"

"

"

$/$"89%

0C0"!()$"/()

00#$

"

Figura A.1. Programa principal del PCAC vr 1.4.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

69

00)

"(D,%.

)(DE.

.)(D)/.

0/(D,.

$/

Figura A.2. Subrutina que inicializa el TIMER 0 y TIMER 1.

00#$

"(D)).

"(D,.

.%(D&%

$%(%

$/

Figura A.3. Subrutina que inicializa UART para transmisión serie.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

70

2/.$

$0()

(#5

$/

Figura A.4. Subrutina que lee comando del puerto serie.

#.$

0()

#5(

$/

Figura A.5. Subrutina que escribe datos al puerto serie.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

71

"

$(D)). 0(%

(

$/

$(D)%. 0(%

$(D),. 0(%

0()

Figura A.6. Subrutina que verifica si es comando de monitoreo y selecciona canal del ADC.

$/$"

$/

$,()55.

$%()55.

$%($%&%

$,($,&%

Figura A.7. Subrutina de retardo.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

72

$/

/(%

$(%

/()

$/

$()

(%

Figura A.8. Subrutina que genera las señales de control para el ADC.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

73

""$

$"/(%

%(%

)(%

$/

0C$E8 9

0C$%8F9

$%($%&%

$E($E&%

Figura A.9. Subrutina que habilita la interfase de potencia del MAP.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

74

"!

$/

()

$$

%(%

)(%

$"/(%

(G,&%(G,&%

$( $(

%()

)(%

0"!(%

%(%

)()

0"!(%

!

!"#

Figura A.10. Subrutina que mueve MAP.

$"

%(%

)(%

$/

$"/()

Figura A.11. Subrutina que detiene el accionamiento del MAP.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

75

0,

("

(&%))

$%(

($)

$/

$

( %))

%&

($%

(&%)

$

( %)

$%(

($)

%&

$)($) %

$)($) %

($%

(&%

$

( %

$%(

($)

%&

$)($) %

Figura A.12. Subrutina que convierte dato binario de 8 bits a carácter ASCII.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

76

; Proyecto de Ingeniería Electrónica ; Octubre/2005 ; Programa de Control, Adquisición y Comunicación PCAC ; Versión 1.4 ; Programa de control y adquisición del SDMC embebido en el AT89C51 ; ; Funciones principales: ;- Generación de señales de control para ADC ;- Adquisición de datos de 8 bits del ADC ;- Conversión de datos de 8 bits a datos BCD ;- Conversión de datos BCD a caracteres ASCII ;- Control de interfase de Motor a pasos(MAP) e interfase de alto voltaje ;- Comunicación serial RS232 (Lectura de comandos y envío de datos) ;================================================================================================ ; DEFINICIÓN DE PUERTOS Y REGISTROS ;================================================================================================ PCON DATA 87H ;Power Control Register SCON DATA 98H ;Serial Port Control Rregister TMOD DATA 89H ;Timer Mode Operation Register TL0 DATA 8AH ;Timer 0 Low Byte Control Reg. TH0 DATA 8CH ;Timer 0 High Byte Control Reg. TR0 BIT 8CH ;Timer 0 Run Control bit TH1 DATA 8DH ;Timer 1 High Byte Control Reg. TR1 BIT 8EH ;Timer 1 Run Control Bit TI BIT 99H ;Transmit Interrupt Flag RI BIT 98H ;Receive Interrupt Flag SBUF DATA 99H ;Serial Buffer Output/Input IE DATA 0A8H ;Interrupts Enable Register P0 DATA 80H ;Port 0 - Selección de canal en el ADC P1 DATA 90H ;Port 1 - Entrada de Dato STROBE BIT 0A1H ;Port 2.1 - Control de CLR en el Shift Register 74194 CLK BIT 0A2H ;Port 2.2 - Genera CLK en Shift Register 74194 S1 BIT 0A3H ;Port 2.3 - Entrada S1 del Shift Register 74194 S0 BIT 0A4H ;Port 2.4 - Entrada S0 del Shift Register 74194 BHV BIT 0A5H ;Port 2.5 - Bit de salida para interfase de HV B DATA 0F0H ;Registro de propósito general para datos temporales ;------------------------------------------------------------------------------------------------ ALE BIT 083H ;Port P0.3 - Define la señal de control ALE del ADC START BIT 084H ;Port P0.4 - Define la señal de Inicio de Conversión EOC BIT 0A0H ;Port P2.0 - Define la señal de Fin de Conversión ;------------------------------------------------------------------------------------------------ CR EQU 0DH ;Caracter de Retorno de Carro LF EQU 0CH ;Caracter de Salto de Línea ISCM BIT 00H ;Bandera que indica si es comando de monitoreo ISMOV BIT 01H ;Bandera que indica si se esta moviendo MAP ;================================================================================================ ORG 00H LJMP MAIN ;Salta zona de ISR's ;================================================================================================ ; VECTORES DE INTERRUPCION ;================================================================================================ ORG 0BH ;Vector de entrada a la ISR del TIMER 0 ISRT0: ;Rutina de Servicio a Interrupción para TIMER 0 CPL CLK JNB ISMOV,LOAD DJNZ R5,LOAD CLR ISMOV LOAD: MOV TL0,#78H ;Recarga Byte bajo del Reg. de Control MOV TH0,#0ECH ;Recarga Byte alto del Reg. de Control RETI ;Punto de salida de la ISR ;================================================================================================ ; PROGRAMA PRINCIPAL ;================================================================================================ ORG 30H MAIN: CLR ISMOV CLR STROBE ;Limpia registro de corrimiento CALL INIT0 ;Inicializa TIMER 0 para clock y TIMER 1 para UART CALL INIUART ;Inicializa UART POLL:

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

77

JNB RI,POLL ;Espera comando de interfaz gráfica(cuando RI=1) NEWC: CALL GETCHAR ;Se obtiene caracter del puerto, retorno en registro B CALL COMMAND ;Verifica si es comando de monitoreo y selecciona canal del ADC JNB ISCM,ISMAP ;Salta a ISMAP si no es comando de monitoreo ;------------------------------------------------------------------------------------------------ ; Ejecuta Comando de Monitoreo ;------------------------------------------------------------------------------------------------ READ: CALL ADCREAD ;Se lee del ADC, canal en R3 y valor leido en A CJNE R3,#02,CONVV ;Salta a covertir dato a ASCII si no es switch CJNE A,#00,HVOFF ;Salta a apagar HV si A<>0 SETB BHV ;Enciende HV SJMP CONVV HVOFF: CLR BHV ;Apaga HV MOV A,#01 CONVV: CALL BINN2 ;Llama a rutina que convierte de binario a ASCII y envia dato CALL RETARDO ;Retraso de aproximadamente un segundo CALL RETARDO CALL RETARDO CALL RETARDO CALL RETARDO CALL RETARDO CALL RETARDO JNB RI,READ ;Mientras no haya char en puerto, sigue leyendo del ADC LJMP NEWC ;Salta a leer nuevo comando ;------------------------------------------------------------------------------------------------ ISMAP: CJNE A,#'A',POLL ;Si no es comando para encender MAP salta a esperar otro char ;------------------------------------------------------------------------------------------------ ; Ejecuta Comandos para MAP hasta que se apague ;------------------------------------------------------------------------------------------------ CALL MOTOR ;Encender MAP NEWCMAP: JNB RI,NEWCMAP ;Espera hasta que haya nuevo comando para MAP CALL GETCHAR ;Retorno de char en B MOV A,B ;Copia comando al acumulador CJNE A,#'h',MOVEMAP ;Si no es comando para apagar MAP, entonces mover MAP CALL PARO ;Apaga MAP LJMP POLL ;Salida a espera de comando general MOVEMAP: CALL MOVMAP ;Mueve MAP derecha o izquierda determinados pasos SJMP NEWCMAP ;Salta a esperar nuevo comando para MAP ;================================================================================================ ; FIN DE PROGRAMA PRINCIPAL E INICIO DE SUBRUTINAS ;================================================================================================ ; ;================================================================================================ ; RUTINA QUE INICIALIZA EL TIMER 0 Y MODO DE OPERACIÓN DEL TIMER 1 ;================================================================================================ INIT0: MOV TMOD,#21H ;Establece modo 1 TIMER 0 y modo 2 TIMER 1 MOV TL0,#78H ;Carga byte bajo del Reg. de Control de TIMER 0 MOV TH0,#0ECH ;Carga byte alto del Reg. de Control de TIMER 0 MOV IE,#82H ;Habilita bit de interrupción del TIMER 0 SETB TR0 ;Habilita TIMER 0 RET ;================================================================================================ ; RUTINA QUE INICIALIZA UART ;================================================================================================ INIUART: MOV PCON,#00H ;Pone SMOD 0 y Divide BAUD RATE ö 32 MOV SCON,#52H ;Puerto Serie en Modo 1 MOV TH1,#-13 ;"OVERFLOW RATE" Del Timer 1 Para 2400 Baud SETB TR1 ;Inicia Operación del Timer 1 RET ;================================================================================================ ; RUTINA QUE LEE COMANDO DEL PUERTO SERIE ;================================================================================================

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

78

GETCHAR: WAITI: JNB RI,WAITI ;Espera Llegada de comando al Puerto Serie CLR RI ;Limpia Flag activada por llegada de comando MOV B,SBUF ;Copia caracter leido al registro temporal RET ;================================================================================================ ; RUTINA QUE ESCRIBE DATOS AL PUERTO SERIE ;================================================================================================ PUTCHAR: WAIT: JNB TI,WAIT ;Espera que buffer del Puerto Serie este vacío CLR TI ;Limpia Flag activada por envío de caracter MOV SBUF,A ;Escribe Dato o Caracter al Puerto RET ;================================================================================================ ; RUTINA QUE COMPRUEBA SI ES COMANDO DE MONITOREO Y SELECCIONA CANAL DEL ADC ;================================================================================================ ;Definición de comandos procedentes de la comunicación remota: ; 'T'´- Temperatura. ; 'L' - Luminancia. ; 'S' - Sensor de puerta. ;------------------------------------------------------------------------------------------------ COMMAND: CLR ISCM MOV A,B ;Copia comando al acumulador CJNE A,#'T',C1 ;Compara y salta a C1 si A <>'T' MOV R3,#00 ;Selecciona canal 0 del ADC en R3 SETB ISCM ;Habilita ISCM RET C1: CJNE A,#'L',C2 ;Compara y salta a C2 si A <>'L' MOV R3,#01 ;Selecciona canal 1 del ADC SETB ISCM ;habilita ISCM RET C2: CJNE A,#'S',OUT ;Compara y termina subrutina si A <>'S' MOV R3,#02 ;Selecciona canal 2 del ADC SETB ISCM ;Habilita ISCM OUT: RET ;El char leido no es comando de monitoreo ;================================================================================================ ; RUTINA QUE GENERA SE¥ALES DE CONTROL PARA EL ADC ;================================================================================================ ADCREAD: MOV P0,R3 ;Selecciona canal de ADC NOP SETB ALE ;Sube ALE NOP NOP SETB START ;Sube START NOP CLR ALE ;Baja ALE NOP CLR START ;Baja START EOCLOW: JB EOC,EOCLOW ;Verifica el valor del bit EOC EOCHIGH: JNB EOC,EOCHIGH ;Verifica el valor del bit EOC NOP MOV A,P1 ;Lee Dato convertido de ADC RET ;================================================================================================ ; SUBRUTINA QUE ACTIVA EL MOTOR ;================================================================================================ MOTOR: SETB STROBE ;Habilita Shift Register SETB S1 ;Habilita S1 del Shift Register SETB S0 ;Habilita S0 del Shift Register MOV R7,#20 ;Valor inicial del contador CNT CNT: MOV R1,#0FFH ;Valor inicial del retardo DELAY DELAY:

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

79

DJNZ R1,DELAY DJNZ R7,CNT RET ;================================================================================================ ; SUBRUTINA QUE MUEVE AL MAP ;Con la rotación de A a través del Carry, en A el número de pasos y en C la dirección de giro ;C=1 => Mover MAP a la izquierda ;C=0 => Mover MAP a la derecha ;================================================================================================ MOVMAP: CLR C ;Ponemos un 0 en Carry RRC A ;Rotamos acumulador a la derecha a través del carry JNC DER ;Si carry <> 1, mover a la derecha CLR C RLC A ;Multiplicar por dos el Acumulador DEC A MOV R5,A SETB S0 ;Mover a la izquierda MAP CLR S1 SETB ISMOV ;Indicar que se mueve el MAP CICLO1: JB ISMOV,CICLO1 ;Espera hasta que gire los pasos deseados SJMP AMARRAR DER: CLR C RLC A ;Multiplicar por dos el Acumulador DEC A MOV R5,A SETB S1 ;Mover a la derecha MAP CLR S0 SETB ISMOV CICLO2: JB ISMOV,CICLO2 ;Espera que gire los pasos deseados AMARRAR: ;Amarra MAP SETB STROBE SETB S1 SETB S0 RET ;================================================================================================ ; SUBRUTINA QUE DETIENE MOTOR ;================================================================================================ PARO: CLR STROBE ;Deshabilita Shift Register SETB S1 ;Habilita S1 SETB S0 ;Habilita S0 RET ;================================================================================================ ; SUBRUTINA DE RETARDo ;================================================================================================ RETARDO: MOV R2,#0FFH CONT: MOV R1,#0FFH ESPERA: DJNZ R1,ESPERA DJNZ R2,CONT RET ;================================================================================================ ; RUTINA QUE CONVIERTE DATO BINARIO EN CARACTER ASCII ;================================================================================================ BINN2: MOV R2,A ;Carga dato a convertir en R2 MOV DPTR,#TABLA ;Pone puntero al primer valor de TABLA CLR A ;Limpia Acumulador MOVC A,@A+DPTR ;Pone primer valor de TABLA en A MOV R0,A ;Copia valor de A a R0 MOV R1,#0 ;Inicializa contador R1 MOV A,R2 ;Restablece Dato a convertir al Acumulador CJNE A,#100,NEQ100 ;Compara y salta a NEQ100 si A <> 100 NEQ100: JNC CONV ;Salta a CONV si A < 100

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

80

INC DPTR ;Incrementa puntero MOV R2,A ;Copia temporalmente valor a convertir a R2 CLR A ;Limpia Acumulador MOVC A,@A+DPTR ;Carga segundo valor de TABLA MOV R0,A ;Copia valor de TABLA a R0 MOV A,R2 ;Restablece valor a convertir al Acumulador CJNE A,#10,NEQ10 ;Compara y salta a NEQ10 si A <> 10 NEQ10: JNC CONV ;Salta a CONV si A < 10 INC DPTR ;Incrementa puntero MOV R2,A ;Copia temporalmente valor a convertir a R2 CLR A ;Limpia Acumulador MOVC A,@A+DPTR ;Carga tercer valor de TABLA MOV R0,A ;Copia valor de TABLA a R0 MOV A,R2 ;Restablece valor a convertir al Acumulador CONV: CLR C ;Limpia Flag de acarreo SUBB A,R0 ;A = A - R0 JC NEW ;Salta a NEW si A < 0 INC R1 ;Incrementa R1 SJMP CONV ;Salta incondicionalmente a CONV NEW: ADD A,R0 ;A = A + R0, Restablece valor MOV R2,A ;Copia temporalmente valor a convertir a R2 MOV A,R1 ;Copia contador a A ADD A,#30H ;Convierte numero a ASCII CALL PUTCHAR ;Envía dato en ASCII INC DPTR ;Incrementa puntero CLR A ;Limpia Acumulador MOVC A,@A+DPTR ;Carga siguiente valor de TABLA JZ FIN ;si valor de TABLA es 0, salta a FIN MOV R0,A ;Copia valor de TABLA a R0 MOV A,R2 ;Restablece valor a convertir MOV R1,#0 ;Inicializa contador SJMP CONV ;Salta incondicionalmente a CONV FIN: RET ;================================================================================================ TABLA: DB 100,10,1,0 ;================================================================================================ END

Listado A.1. Ensamblador del programa de control, adquisición y comunicación del SDMC.

APÉNDICE B

MANUAL DE USUARIO DE INTERFAZ GRÁFICA LOCAL DEL SDMC

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

82

En este manual de usuario se explica el funcionamiento de la interfaz de usuario local, esta interfaz se encarga de controlar al SDMC mediante comunicación serial. Su instalación solo se realiza en la estación de trabajo o computadora en la que se encuentre conectado el SDMC.

DIÁLOGO PRINCIPAL Y ESTRUCTURA DE MENÚS

Figura B.1. Diálogo principal de aplicación serial del SDMC.

Figura B.2. Menú Archivo de aplicación serial.

Figura B.3. Menú Ayuda de aplicación serial.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

83

Figura B.4. Pantalla Acerca De... en aplicación serial.

OPERACIÓN DE LA INTERFAZ SERIAL

Mediante esta interfaz, el usuario será capaz de controlar al SDMC desde la estación de trabajo en la que se encuentre conectado el Sistema. El Monitoreo y Control en esta interfaz difiere a la forma en que se realiza en las interfaces remotas. ESTABLECIENDO LA COMUNICACIÓN SERIAL

Una vez realizada la conexión física entre el SDMC y la PC, procedemos a ejecutar la interfaz local o aplicación Serial. Antes de ejecutar comandos de monitoreo o de control, debemos establecer la conexión serial con el Sistema. Lo primero que debe hacerse es configurar la conexión serial, para ello, elija la velocidad de conexión y el puerto de las listas desplegables como se muestra en la Figura B.5.

Figura B.5. Configuración de conexión serial.

Después de configurar la conexión, estamos listos para abrir el puerto serie. Oprima el botón Abrir Puerto, si se produce un mensaje de error en la apertura del puerto, haga click en el botón Cerrar Puerto, modifique la configuración y vuelva a intentarlo. El estado del puerto se puede visualizar en la parte superior de Control Serial, ver Figura B.6.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

84

Figura B.6. Secciones de Estado y Control del Puerto serie.

Los valores por defecto para la velocidad de comunicación y puerto en la interfaz son 2400 baudios y COM1 respectivamente. La velocidad a la que comunica el SDMC es precisamente a 2400 baudios, por lo que es recomendable no modificar este valor en la interfaz, el puerto puede seleccionarse entre COM1 o COM2 dependiendo del puerto al que se haya conectado el sistema. COMANDOS DEL SDMC

Los comandos con los que cuenta la Aplicación Serial se dividen en dos grupos, un grupo de comandos de monitoreo y otro grupo de comandos para controlar un motor a pasos.

Figura B.7. Comandos para el SDMC.

La ejecución de los comandos de monitoreo es muy simple, basta con oprimir el botón de la variable que se quiera monitorear y la interfaz mostrará los valores adquiridos en cajas de texto, la lectura es secuencial de acuerdo a un intervalo de tiempo. La Figura B.8 muestra el monitoreo de la Temperatura.

Para detener el monitoreo, oprima el botón Detener. Es posible cambiar el monitoreo de una variable a otra sin detenerlo, los valores obtenidos para distintas variables se mostrarán en la misma caja de texto. Puede además limpiar esta pantalla si desea datos nuevos en ésta, esta utilidad puede ser útil cuando este decidiendo que lecturas guardar a disco.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

85

Figura B.8. Monitoreo de Temperatura.

Explicaremos ahora la manera en que se deben utilizar los comandos para controlar el motor a pasos conectado al SDMC. El orden de operaciones es el siguiente:

1. Encender el Motor.

2. Seleccionar grados de giro.

3. Mover el Motor a la derecha o a la izquierda el número de grados que eligió.

4. Apagar el Motor.

El encendido y apagado del motor se muestran en la Figura B.9 con los iconos de semáforos en verde y rojo respectivamente. Los movimientos a la derecha o a la izquierda se realizan con los iconos de flechas, en tanto que la velocidad de giro puede seleccionarse de la lista desplegable. Cada uno de estos botones cuenta con texto explicativo, de manera que si tiene duda en la ejecución de un comando, coloque el cursor del mouse un momento sobre el botón para leer su función como en la Figura B.9.

Figura B.9. Texto explicativo en botones para controlar Motor a pasos.

El monitoreo de variables y el control de motor a pasos, no debe realizarse al mismo tiempo. Detenga el monitoreo si desea controlar el motor a pasos, o apague el motor para realizar monitoreo de variables.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

86

GUARDAR LECTURA DE VARIABLES

Si desea guardar a disco la lectura de las variables monitoreadas, debe detener en primer lugar el monitoreo del SDMC, enseguida debe ir al menú Archivo y elegir la opción Guardar Lectura de Variables. Los valores que se guardarán serán los que contenga en ese momento la caja de texto Monitor Recibiendo Datos (Figura B.8). Se recomienda guardar estos datos en un archivo con la extensión .txt.

Figura B.10. Opción de Menú Archivo Guardar Lectura de Variables a disco.

Figura B.11. Especificar tipo de Archivo.

MANUAL DE AYUDA

Si desea abrir este manual de ayuda desde la aplicación, debe ir al menú Ayuda y seleccionar la opción Manual de Usuario. La ejecución del programa para abrir este manual es independiente de la interfaz, por lo que no se cerrará cuando se termine la aplicación serial.

Figura B.12. Ejecutar Manual de ayuda.

CERRAR LA APLICACIÓN

Antes de salir de la aplicación serial, debe asegurarse que el SDMC no se encuentre realizando monitoreo de variables o controlando el motor a pasos. Debe detener el monitoreo y apagar el motor. El sistema verificará esta situación pero es responsabilidad del Usuario realizar esto.

Puede cerrar la aplicación desde la barra de título, accediendo al menú Archivo y eligiendo la opción Salir u oprimiendo el botón Salir de la sección serial (Figura B.6).

APÉNDICE C

MANUAL DE USUARIO DE INTERFACES PARA CONEXIÓN REMOTA

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

88

En este manual de usuario se explica el funcionamiento de las interfaces de conexión remota, dichas interfaces son Sockets TCP que implementan el modelo cliente-servidor. Estas interfaces permiten que a través de una red de computadoras como Internet, podamos controlar al SDMC.

DIÁLOGOS PRINCIPALES

Figura C.1. Diálogo principal de Aplicación Cliente.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

89

Figura C.2. Pantalla Acerca de en aplicación Cliente.

Figura C3. Diálogo principal de Aplicación Servidor.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

90

Figura C.4. Pantalla Acerca de en Aplicación Servidor

OPERACIÓN DE LAS INTERFACES ESTABLECIENDO LA CONEXIÓN

La aplicación Servidor deberá ejecutarse en la estación de trabajo en la que se encuentre conectado el SDMC. La aplicación Cliente se ejecutará en otra estación remota asumiendo que el Servidor esta activo y listo para aceptar una conexión TCP/IP.

La primera tarea que realiza el Servidor al ejecutarse, es obtener el nombre y la dirección IP de la computadora en la que se está ejecutando como se muestra en la Figura C.5, después de esto, el Servidor está listo para atender una solicitud de conexión. Si ocurre algún error de la aplicación Servidor al tratar de obtener el nombre o la dirección IP del equipo, cierre la aplicación y ejecútela de nuevo.

Figura C.5. Nombre y dirección IP de PC obtenidos por la aplicación Servidor.

Para que la aplicación Cliente pueda conectarse al Servidor deben proporcionarse correctamente los parámetros de conexión que se muestran en la Figura C.6.

Figura C.6. Parámetros de conexión en el Cliente.

La aplicación Servidor está configurada para trabajar por el puerto 3000, por lo que no es necesario modificar el valor de puerto por defecto en la aplicación Cliente, en tanto que el puerto comando se asigna automáticamente. La dirección IP será la misma que obtenga la Aplicación Servidor.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

91

Cuando haya especificado correctamente los valores para la conexión, oprima el botón conectar. El resultado de la conexión se mostrará en la parte inferior de la aplicación Cliente.

DESCARGAR ARCHIVOS

Una vez que se establecido una conexión exitosa, la aplicación Cliente presenta varias funciones para trabajar con el Servidor. En esta sección, se explica la forma en que pueden descargarse archivos de la PC remota.

Para descargar un archivo desde el ordenador remoto, el Cliente debe usar el comando FILEGET tal como se muestra en la Figura C.7. El comando se encuentra bajo prueba y es recomendable solo para descargar archivos pequeños. El éxito o fracaso de la ejecución del comando se mostrará a través de un diálogo de mensaje. Debe ponerse especial cuidado en la especificación de los directorios para guardar el archivo, para evitar la pérdida accidental de datos.

Figura C.7. Descargar Archivo de PC remota.

EJECUCIÓN DE COMANDOS

Los comandos disponibles en la aplicación Cliente se agrupan de la siguiente manera:

a) CMD:<comando> b) SHUT c) SDMC:<comando>

Descripción:

a) CMD:<comando> Se usa para enviar comandos a ejecutar en la PC remota.

Figura C.8. Ejecutar programa notepad en PC remota.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

92

Si se escribe en aplicación Cliente CMD:notepad.exe, el ordenador remoto ejecutará el programa notepad.exe. Se pueden especificar directorios para ejecutar otras aplicaciones. Debe tenerse especial cuidado en el envío de este tipo de comandos, para evitar acciones mal intencionadas en la PC remota.

b) SHUT. Se utiliza para cerrar la aplicación Servidor.

c) SDMC:<comando> Se usa para enviar comandos al SDMC, estos se agrupan de la siguiente manera:

Manejo de puerto serie. OpenPort. Abre el puerto serie en ordenador remoto (COM1 a 2400 baudios) ClosePort. Cierra el puerto serie en ordenador remoto.

Obtención de valores de variables en SDMC. Temperature. Obtiene el valor de la temperatura. Brightness. Obtiene el valor de luminosidad. Switch. Obtiene el valor, abierto o cerrado del switch. Stop. Detiene actividad del SDMC.

Control del motor a pasos. TurnOnMotor. Enciende el motor a pasos. TurnOffMotor. Apaga el motor a pasos. MoveRight. Indica al motor a pasos moverse a la derecha. MoveLeft. Indica al motor a pasos moverse a la izquierda.

Figura C.9. Ejecución de comando para abrir puerto serie remoto.

Los comandos para el SDMC son case sensitive, es decir que se distingue entre mayúsculas y minúsculas, por lo que deben escribirse correctamente de otra forma el Servidor los tomará como simples mensajes.

La lectura de variables del SDMC difiere de la interfaz local, en este caso, solo podrá obtenerse un valor a la vez de la variable solicitada. La ejecución de comandos para controlar al motor de pasos sigue la misma lógica que en la aplicación serial: encender motor, seleccionar grados de giro, mover a la derecha o a la izquierda y apagar el motor.

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

93

CERRAR LA CONEXIÓN

Antes de cerrar la conexión entre la aplicación Cliente y el Servidor deben detenerse las operaciones en el SDMC. Detenga la operación de motor ejecutando el comando apagar motor, si realizó monitoreo de variables puede ejecutar el comando Stop. Finalmente debe cerrar el puerto serie remoto con el comando correspondiente.

Para terminar la conexión entre la aplicación Cliente y el Servidor debe oprimir el botón Desconectar (Figura C.6). El comando SHUT solo debería utilizarse si desea cerrar tanto el Servidor como el Cliente.

INCIDENCIAS EN INTERFAZ GRÁFICA DEL SDMC Y APLICACIONES DE CONEXIÓN REMOTA. La interfaz de usuario se desarrolló en Microsoft Visual C++ 6.0 con la biblioteca MFC (Microsoft Foundation Class), el código puede compilarse para cualquier procesador Intel con SO Windows (NT, 9X o superior), la interfaz es portable en este caso solo para procesadores iguales para el que se compiló, además de la posible adición de algunas librerías. Para el procesador Pentium IV y SO Microsoft Windows XP, a menos que se tenga instalado Microsoft Visual C++ 6.0 en el sistema, es posible que sea necesario agregar las siguientes librerías dinámicas al sistema para ejecutar las aplicaciones desarrolladas. MFCO42D.DLL MFC42D.DLL MFCN42D.DLL MSVCRTD.DLL

APÉNDICE D

DIAGRAMAS ESQUEMÁTICOS ELÉCTRICOS Y LISTA DE MATERIALES

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

95

FJMR-03/2004 1.0

CPU, ADC, ADC CLK, VCC, -VCC, ADC VREF Y RS232

B

1 4Monday, January 17, 2005

Proyecto de ingeniería Electrónica I y II (Sistema Digital de Control y Monitoreo)Title

Size Document Number Rev

Date: Sheet of

VCC

VCC

VCC

+5 V

VCC

VCCVCC

VCC

VCC

VCC

VCC

-12 V

+12 V

+12 V

-12 V

+12 V

- VCC

EOC

START

A2A1A0

ALE

5.12 V

ADC CLOCK

P2.1P2.3P2.5P2.7

P3.3(/INT1) P3.4(TO)

P3.7(/RD)

P2.2P2.4P2.6P3.2(/INT0)

P3.5(T1) P3.6(/WR)

P2.1P2.2P2.3P2.4P2.5P2.6P2.7

P3.2(/INT0)P3.3(/INT1)P3.4(T0)P3.5(T0)

P3.7(/RD)P3.6(/WR)

SENSOR DE LUMINOSIDAD

SENSOR DE TEMPERATURA

SENSOR DE PUERTA

LM35

(5.12 V)

U1 AT89C52

EA/VP31

X119

X218

RESET9

INT012

INT113

T014

T115

P1.01

P1.12

P1.23

P1.34

P1.45

P1.56

P1.67

P1.78

P0.039

P0.138

P0.237

P0.336

P0.435

P0.534

P0.633

P0.732

P2.021

P2.122

P2.223

P2.324

P2.425

P2.526

P2.627

P2.728

RD17

WR16

PSEN29

ALE/P30

TXD11

RXD10

C233 pF

C333 pF

X1

12 MHz

U4A

74LS14

1 2

U4B

74LS14

3 4

R31k

C90.001uF

C80.1 uF

P1

SERIAL DB9

594837261

C510 uF

C710 uF

C610 uF

U2

ADC0809

IN026

IN127

IN228

IN31

IN42

IN53

IN64

IN75

REF+12

REF-16

CLK10

OE9

EOC7

D017

D114

D215

D38

D418

D519

D620

D721

A025

A124

A223

START6

ALE22

RP1

1k

116

215

314

413

512

611

710

89

U3

RS232C

T1OUT14

T2OUT7

R1IN13

R2IN8

V-6V+2C2-5C2+4C1-3C1+1

R2OUT9

R1OUT12

T1IN11

T2IN10

C410 uF

S1

C110uF

R28.2 k

R1100

JP1

HEADER 10X2

1 23 45 67 89 1011 1213 1415 1617 1819 20

C120.1 uF

C111 uF

C1010 uF

U5LM7805

VIN1

GND

3

VOUT2

OPTO0P550

R105k

S2

SW SPST

R141K

R91k

R85.1

D1

5.1V

R121k

R111k

R132k

+

-

U8

LM741

3

26

74

+

-

U7

LM741

3

26

74

R610k

+

-

U6

LM741

3

26

74

R41k

C12 Tantalum10 uF

D1

LM329

R52k

R710k

C120.1 uF

U9LM7905

VIN3

GND

1

VOUT2

C1010 uF

C101uF

RESET

SENSORES

ADC VREF

RESET

SENSORES

ADC VREF

VCC +12V -12v - VCC

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

96

FJMR-03/2004 1.0

DRIVER STEPPER MOTOR

B

2 4Tuesday, January 18, 2005

Proyecto de Ingeniería Electrónica I y II (Sistema Digital de Control y Monitoreo)Title

Size Document Number Rev

Date: Sheet of

VCC- VCC

-VHC

VHC

VHC

-VHC

VCC

VCC

VCC

VCC

VCC

-VCC

P2.1P2.3P2.5P2.7

P3.3(/INT1) P3.4(TO)

P3.7(/RD)

P2.2P2.4P2.6P3.2(/INT0)

P3.5(T1) P3.6(/WR)

P2.1P2.3P2.4P2.2

JP2

HEADER 10X2

1 23 45 67 89 1011 1213 1415 1617 1819 20

U10

74HC194

SR2

A3

B4

C5

D6

SL7

CLK11

S09

S110

CLR1

QA15

QB14

QC13

QD12

+

- U11ALM324

3

21

411

Q2TIP130

Q4TIP130

Q3TIP135

Q5TIP135

R26

2 ohms @ 5W

R27

2 ohms @5W

FASE AMOTOR

FASE BMOTOR

R28

2 ohms @5w

R29

2 ohms @5w

R221.2k

R231.2k

R241.2k

R251.2k

R1510k

R1610k

D2LED

D4

LED

D3LED

R17220

R18220

R21

1k

R20220

Q12N2222A

R19470

+

- U11BLM324

5

67

+

- U11CLM324

10

98

+

- U11DLM324

12

1314

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

97

FJMR-03/2004 1.0

Stepper Motor Supply

B

3 4Tuesday, January 18, 2005

Proyecto de Ingeniería Electrónica I y II (Sistema Digital de Control y Monitoreo)Title

Size Document Number Rev

Date: Sheet of

125 VAC

VCH = 12V

T1

1:20

F1125 V @ 5A

S1SW SPST

C172200

U13LM317

VIN3

ADJ

1

VOUT2

C2110u

C22

10u

U12LM317

VIN3

ADJ

1

VOUT2

U14LM317

VIN3

ADJ

1

VOUT2

R310.1 @2W

R320.1 @2W

R330.1 @2W

C231u

R37120

R382.2k

R360.1 @2W

R350.1 @2W

R340.1 @2W

R40120

R392.2k

C241u

D6

LED

R30820

C180.1u

C192200

- +

D55 Amp

U15

LM337H

VIN3

ADJ

1

VOUT2

U17

LM337H

VIN3

ADJ

1

VOUT2

C200.1u

U16

LM337H

VIN3

ADJ

1

VOUT2

+ VHC

- VHC

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

98

FJMR-03/2004 1.0

High Voltage Interface, +12V & -12V Supply

B

4 4Tuesday, January 18, 2005

Proyecto de Ingeniería Electrónica I y II (Sistema Digital de Monitoreo y Control)Title

Size Document Number Rev

Date: Sheet of

VCC- VCC

(1)

(2)

(2)

(1)125 VAC

125 VAC

P2.1P2.3P2.5P2.7

P3.3(/INT1) P3.4(TO)

P3.7(/RD)

P2.2P2.4P2.6P3.2(/INT0)

P3.5(T1) P3.6(/WR)

P2.5

T2

10:1

- +

D72 Amp

C252200u

C262200u

U18LM7812

VIN1

GN

D3

VOUT2

U19

LM7912

VIN3

GN

D1

VOUT2

C270.1u

C280.1u

C291u

C301u

F2

125V @2 A

S3

SW SPST

U20MOC3020

1

2

64

Q6TRIAC

R391k

LP1LAMP

F3

125 VAC @ 5A

JP3

HEADER 10X2

1 23 45 67 89 1011 1213 1415 1617 1819 20

R382.4k

R37180

C310.1k

+12 V

- 12 V

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

99

CPU, ADC, ADC CLK, VCC, -VCC, ADC VREF Y RS232 Revised: Tuesday, January 18, 2005 FJMR-03/2004 Revision: 1.0 Proyecto de ingeniería Electrónica I y II (Sistema Digital de Control y Monitoreo) Bill Of Materials January 18,2005 13:40:49 Page1 Item Quantity Reference Part ______________________________________________ 1 1 C1 10u 2 2 C2 33p C3 33p 3 7 C4 10u C5 10u C6 10u C7 10u C10 10u C13 10u C16(tan) 10u 4 3 C8 0.1u C12 0.1u C15 0.1u 5 1 C9 0.001u 6 1 C11 1u 7 1 C14 1u 8 2 C17 2200u C19 2200u 9 4 C18 0.1u C20 0.1u C27 0.1u C28 0.1u 10 2 C21 10u C22 10u 11 4 C23 1u C24 1u C29 1u C30 1u 12 2 C25 2200u C26 2200u 13 1 C31 0.1k 14 1 D1 5.1V 15 1 D1 LM329 16 4 D2 LED D3 LED D4 LED D6 LED 17 1 D5 5 Amp 18 1 D7 2 Amp 19 2 FASE A MOTOR FASE B MOTOR 20 1 F1 125V @5A 21 1 F2 125V @2A 22 1 F3 125V @5A

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

100

23 3 JP1 HEADER 10X2 JP2 HEADER 10X2 JP3 HEADER 10X2 24 1 LP1 LAMP 25 1 OPTO 0P550 26 1 P1 SERIAL DB9 27 1 Q1 2N2222A 28 2 Q2 TIP130 Q4 TIP130 29 2 Q3 TIP135 Q5 TIP135 30 1 Q6 2N6344A 31 9 RP1 1k R3 1k R4 1k R9 1k R11 1k R12 1k R14 1K R21 1k R39 1k 32 1 R1 100 33 1 R2 8.2k 34 2 R13 2k R5 2k 35 4 R6 10k R7 10k R15 10k R16 10k 36 1 R8 5.1 37 1 R10 5k 38 3 R17 220 R18 220 R20 220 39 1 R19 470 40 4 R22 1.2k R23 1.2k R24 1.2k R25 1.2k 41 1 R26 2 @5W 42 3 R27 2 @5W R28 2 @5w R29 2 @5w 43 1 R30 820 44 6 R31 0.1 @2W R32 0.1 @2W R33 0.1 @2W R34 0.1 @2W R35 0.1 @2W R36 0.1 @2W 45 2 R37 120 R40 120 46 1 R37 180 47 2 R38 2.2k R39 2.2k 48 1 R38 2.4k 49 3 S1 SW SPST

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

101

S2 SW SPST S3 SW SPST 50 1 S1 PUSH BUTTON (N.O.) 51 1 T1 1:20 52 1 T2 10:1 53 1 U1 AT89C51 54 1 U2 ADC0809 55 1 U3 MAX232C 56 1 U4 74LS14 57 1 U5 LM7805 58 3 U6 LM741 U7 LM741 U8 LM741 59 1 U9 LM7905 60 1 U10 74HC194 61 1 U11 LM324 62 3 U12 LM317 U13 LM317 U14 LM317 63 3 U15 LM337H U16 LM337H U17 LM337H 64 1 U18 LM7812 65 1 U19 LM7912 66 1 U20 MOC3020 67 1 X1 12MHz

APÉNDICE E

DIAGRAMA DE TIEMPOS PARA SECUENCIA DE CONVERSIÒN DEL ADC0809

Proyecto De Ingeniería Electrónica

Universidad Autónoma Metropolitana – Departamento de Ingeniería Eléctrica

103