sistema de adquisicion de datos de sensores analogicos y digitales

175
INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA DEPARTAMENTO ACADÉMICO DE INGENIERÍA EN CONTROL Y AUTOMATIZACIÓN SISTEMA DE ADQUISICIÓN DE DATOS DE SENSORES ANALÓGICOS Y DIGITALES” T E S Í S QUE PARA OBTENER EL TÍTULO DE: INGENIERO EN CONTROL Y AUTOMATIZACIÓN PRESENTA: RAMIREZ NEYRA FERNANDO GABINO ASESORES: ING. LUIS ENRIQUE MURILLO YAÑEZ ING. ENRIQUE LOPEZ SANTINNI MEXICO D.F. NOVIEMBRE 2009

Upload: lekhuong

Post on 12-Feb-2017

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

DEPARTAMENTO ACADÉMICO DE INGENIERÍA EN CONTROL Y AUTOMATIZACIÓN

“SISTEMA DE ADQUISICIÓN DE DATOS DE SENSORES ANALÓGICOS Y DIGITALES”

T E S Í S

QUE PARA OBTENER EL TÍTULO DE: INGENIERO EN CONTROL Y AUTOMATIZACIÓN

PRESENTA:

RAMIREZ NEYRA FERNANDO GABINO

ASESORES:

ING. LUIS ENRIQUE MURILLO YAÑEZ ING. ENRIQUE LOPEZ SANTINNI

MEXICO D.F. NOVIEMBRE 2009

Page 2: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales
Page 3: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

-i-

AGRADECIMIENTOS

A Dios por darme la vida, la oportunidad de superarme día a día y la dicha de compartir y convivir

con mi familia, amigos y compañeros. A mis padres que me concibieron, a ti mamá por darme la

fuerza y aliento, por tus oraciones y sacrificios, por todo, te amo mucho. A mi familia por todo el

apoyo recibido, su esfuerzo, paciencia, dedicación y sacrificio hicieron de ese sueño, un logro

alcanzado. A mis amigos, aquellos que me acompañaron en momentos buenos y malos, las historias

vividas las tendré siempre presentes. A todos los profesores de la Escuela Superior de Ingeniería

Mecánica y Eléctrica por brindarme los conocimientos y experiencias, pero muy en especial al Ing.

Luis Enrique Murillo Yáñez por haberme guiado y apoyado durante la realización de este trabajo. Al

Instituto Politécnico Nacional.

Gracias a todos.

Page 4: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-i-

ÍNDICE GENERAL

Pagina

ÍNDICE GENERAL……………………………………………………………..…. i

ÍNDICE DE FIGURAS…………………………………………………………….. vi

ÍNDICE DE TABLAS……………………………………………………………… viii

INTRODUCCIÓN…………………………………………………………………. x

OBJETIVO GENERAL……………………………………………………………. xi

JUSTIFICACIÓN………………….……………………………………….………. xii

1 CAPITULO 1. MARCO TEÓRICO

1.1 Introducción……………………………………………………… 1

1.2 Interconexión Entre Ordenador Y Periféricos…………………..… 1

1.2.1 Interfaces Serie……………………………………………..……... 3

1.2.1.1 La interface RS-232……………………………………………….. 3

1.2.1.2 El Bus Serie Universal (USB)…………………………………….. 4

1.2.2 Interfaces Paralelas………………………………………………... 9

1.2.2.1 La interface Centronics…………………………………………….. 9

1.2.2.2 El estándar IEEE 1284…………………………………………….. 10

1.2.2.3 Small Computer Systems Interface (SCSI)……………………….. 10

1.2.3 Comunicación Inalámbrica. Bluetooth……………………………. 11

1.3 Microcontroladores………………………………………………… 12

2 CAPITULO 2. DISEÑO Y DESARROLLO DEL

HARDWARE DE ADQUISICIÓN DE DATOS

2.1 Introducción……………………….…………………………….... 17

2.2 Sistema De Adquisición De Datos………..………………………. 17

2.2.1 Especificaciones de las entradas analógicas…………………….... 18

2.2.2 El número de canales……………………………………………... 19

2.2.3 Velocidad máxima de muestreo…………………………………….. 19

Page 5: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-ii-

Pagina

2.2.4 Resolución de los datos……………………………............................ 19

2.2.5 Mecanismo de muestreo…………………………………………….. 20

2.2.5.1 Mecanismo multiplexado……………………………………………. 20

2.2.5.2 Mecanismo simultaneo de muestreo y retención………………........ 20

2.2.5.3 Mecanismo Simultáneo con múltiples convertidores……………....... 21

2.2.6 Aislamiento eléctrico del dispositivo………………………………... 21

2.2.7 Bus de comunicación con la PC……………………………………... 22

2.2.8 Software controlador o driver para comunicarse con el equipo…….. 23

2.3 Diseño Del Hardware De Adquisición De Datos…...……………… 24

2.3.1 Acondicionador de señales…………………………………………. 25

2.3.2 Convertidor analógico digita……………………………………....... 25

2.3.3 Controlador………………………………………………………...... 25

2.3.4 Comunicación……………………………………………………...... 26

2.3.5 Convertidor de Corriente/tensión…………………………………… 26

2.3.6 Seguidor de tensión………………………………………………….. 28

2.4 Desarrollo Del Hardware De Adquisición De Datos……………… 33

3 CAPITULO 3. CONFIGURACIÓN Y PROGRAMACIÓN

DEL ALGORITMO DEL MICROCONTROLADOR

3.1 Introducción………………………………………………………… 35

3.2 Configuración Del Puerto Serial Para Transmisión Y Recepción De

Información………………………………………………………….. 35

3.2.1 Modulo de Comunicación USART…………………………….…… 36

3.2.2 Registros de Configuración……………………………………….... 38

3.2.2.1 Registro TXSTA…………………………………………………....... 39

3.2.2.2 Registro RECTA……………………………………………………... 40

3.2.2.3 Registro SPBRG…………………………………………………....... 41

3.2.2.3.1 GENERADOR DE BAUDIOS……………………………………… 41

Page 6: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-iii-

Pagina

3.2.3 Transmisor asíncrono…………………………………………….….. 43

3.2.4 Receptor asíncrono…………………………………………………... 46

3.3 Conversión Y Almacenamiento De La Señal

Analógica/Digital…………………………….……….…….………... 50

3.3.1 Tipos de señales……………………………………………………… 50

3.3.1.1 Señales analógicas……………………………………………………. 50

3.3.1.2 Señales discretas…………………………………………………....... 51

3.3.2 Digitalización de señales analógicas……………………………......... 52

3.3.2.1 Muestreo de señales analógicas…………………………………....... 53

3.3.2.2 Cuantificación de la señal analógica…………………………….…… 55

3.3.2.2.1 Tipos de cuantificación……………………………………………. 55

3.3.3 Modulo de Conversión Analógica/Digital (ADC) del

Microcontrolador…………………………………………………….. 56

3.3.3.1 Registros de Configuración………………….……………………... 56

3.3.3.1.1 Registros ADRESH y ADRESL………………….………………….. 57

3.3.3.1.2 Registro ADCON0………………………………….………………... 57

3.3.3.1.3 Registro ADCN1……………………………………….…………….. 59

3.4 Configuración Y Selección De Los Canales De Entrada Del

Microcontrolador…………………………..………………….……... 63

3.4.1 Puertos disponibles en el microcontrolador………………….……... 63

3.4.1.1 El Puerto A……………………………………………………….…... 63

3.4.1.2 Puerto B…………………………………………………………….… 65

3.4.1.3 El puerto C…………………………………………………………… 66

3.4.2 Configuración de los canales de entrada y salida…………………… 67

3.4.3 Selección del canal de entrada (analógico y digital)……………........ 70

Page 7: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-iv-

Pagina

4 Capitulo 4. DISEÑO Y DESARROLLO DE LA

INTERFACE GRAFICA.

4.1 Introducción……………………..…………………………………… 72

4.2 Software De Monitoreo……………………..……………………….. 72

4.2.1 Sistema HMI………………………………………………………… 73

4.2.1.1 Funciones de un Software HMI……………………………………… 74

4.2.2 Software y lenguajes de programación para el desarrollo de

interfaces graficas…………………………………………...….……. 75

4.2.2.1 LabView…………………………………………………………….... 75

4.2.2.2 Measurement Studio…………………………………………………. 75

4.2.2.3 Visual Basic 6.0……………………………………………………… 76

4.2.2.3.1 Diseño con Visual Basic…………………………………………....... 77

4.2.2.3.2 Crear una aplicación con Visual Basic…………………………........ 78

4.2.2.3.3 Creación De Un Formulario………………………………………….. 78

4.2.2.3.4 Agregar Controles al formulario……………………………………... 79

4.2.2.3.4.1 Propiedades de los Objetos…………………………………………... 80

4.2.2.3.4.2 Unir Código a los Objetos…………………………………………… 81

4.3 Diseño De La Interface Grafica Del Sistema De Adquisición De

Datos…………………………………………………………............. 82

4.3.1 Interface Grafica Local (servidor)……………………………………. 83

4.3.2 Tareas y Funciones De Las Pantallas……………………………........ 83

4.3.2.1 Pantalla1. (Principal)…………………………………………………. 83

4.3.2.2 Pantalla 2. (Sensor Analógico 1)…………………………………….. 84

4.3.2.3 Pantalla 3. (Sensor Analógico 2)…………………………………….. 84

4.3.2.4 Pantalla 4. (Sensor Analógico 3)……………………………………. 84

4.3.2.5 Pantalla 5. (Sensor Analógico 4)…………………………………….. 85

4.3.2.6 Pantalla 6. (Sensores Digitales)…………………………………....... 85

4.3.2.7 Pantalla 7. (Portada)……………………………………………….… 85

Page 8: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-v-

Pagina

4.4 Desarrollo De La Interface Grafica Local……………….……….. 86

4.4.1 Pantalla 1. Principal………………………………………………. 86

4.4.2 Pantalla 2. (Sensor Analógico 1)…………………………………. 92

4.4.2.1 Pantalla 3. Sensor analógico 2…………………………………….. 93

4.4.2.2 Pantalla 4. Sensor analógico 2…………………………………….. 93

4.4.2.3 Pantalla 5. Sensor analógico 3…………………………………….. 95

4.4.2.4 Pantalla 6. Sensor analógico 4……………………………………. 95

4.5 Desarrollo De La Interface Grafica Remota (CLIENTE)……….... 98

5 CAPITULO 5. COSTO DEL PROYECTO

5.1 Introducción…………………..………………………….………… 99

5.2 Costo Total Del Proyecto………………………………………….. 99

5.2.1 Costos directos…………………….………………….……………. 104

5.2.2 Costos indirectos…………………………………..……………….. 104

CONCLUSIÓNES……………………………………………….. 107

TRABAJOS FUTUROS…………………………………………. 108

REFERENCIAS BIBLIOGRAFICAS CONSULTADAS.…………... 109

ANEXOS………………………………………………………...………. 111

Page 9: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-vi-

ÍNDICE DE FIGURAS

Pagina

Figura 1.0 Topología de una conexión USB……………………………..………..6

Figura 1.2 Formato del cable USB…………………………………….……........ 7

Figura 1.3 Arquitectura Von Neumann………………………………..………... 14

Figura 1.4 Arquitectura Harvard……………………………………..………….. 15

Figura 2.0 Módulos internos del hardware del sistema de adquisición

de datos………………………………………………………………. 25

Figura 2.1 Convertidor de corriente a tensión…………………………………… 27

Figura 2.2 Seguidor de tensión…………………………………………………… 29

Figura 2.3 Circuito eléctrico……………………………………………………. 32

Figura 2.4 Diagrama de pistas del circuito impreso……………………………. 33

Figura 2.5 Prototipo de tarjeta de adquisición de datos…………………………. 34

Figura 2.6 Prototipo de tarjeta de adquisición de datos con fuente de voltaje….. 34

Figura 2.7 Prototipo de tarjeta de adquisición de datos en circuito impreso……. 34

Figura 3.0 Comunicación sincronía half duplex…………………………………. 36

Figura 3.1 Comunicación asíncrona full duplex……………………………….… 36

Figura 3.2 Estructura interna del transmisor asíncrono…………………….……. 37

Figura 3.3 Estructura interna del receptor asíncrono……………………………. 38

Figura 3.4 Procedimiento de configuración y programación del transmisor

Serial…………………………………………………………………. 44

Figura 3.5 Procedimiento de configuración y programación del Receptor

Serial…………………………………………………………….….... 48

Figura 3.6 Señal analógica……………………………………………………..… 51

Figura 3.7 Señal Discreta en Tiempo………………………………………..…. 51

Figura 3.8 Señal discreta en amplitud………………………………………..….. 51

Figura 3.9 Señal discreta en amplitud y tiempo……………………………….. 52

Figura 3.10 Alineamiento el resultado de conversión……………………………. 59

Page 10: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-vii-

Pagina

Figura 3.11 Procedimiento de configuración y programación del convertidor

analógico/digital………………………………………….…………...61

Figura 3.12 Estructura interna del puerto A………………………………………. 64

Figura 3.13 Estructura interna del puerto B…………………………………….… 66

Figura 3.14 Proceso para la selección del canal de entrada de señales………….. 71

Figura 4.0. Sistema básico de monitoreo………………………………………… 72

Figura 4.1 Selección del tipo de proyecto…………………………….………... 79

Figura 4.2 Controles intrínsecos de Visual Basic…………………………………79

Figura 4.3 Ventana de propiedades de un objeto………………………………….80

Figura 4.4 Ventana de código………………………………………………….… 81

Figura 4.5 Eventos asociados al objeto botón……………………………………. 82

Figura 4.6 Pantalla 1 de la interface grafica local……………………………..… 89

Figura 4.7 Diagrama de flujo (Pantalla 1)…………………………………….… 91

Figura 4.8 Pantalla 3 de la interface grafica……………………………………... 94

Figura 4.9 Pantalla 4 De La Interface Grafica……………………………………. 94

Figura 4.10 Pantalla 5 de la interface grafica……………………………………… 95

Figura 4.10 Pantalla 6 de la interface grafica…………………………………….. 95

Figura 4.12 Diagrama de flujo de funciones de las pantalla 2, 3, 4, y 5………..… 97

Figura 4.13 Pantalla 1 de la interface grafica remota…………………………..… 98

Page 11: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-viii-

ÍNDICE DE TABLAS

Pagina

Tabla 2.0 Dispositivos electrónicos del hardware de adquisición de datos….... 31

Tabla 3.0 Bits del registro TXSTA……………………………………………. 39

Tabla 3.1 Bits del registro RSCTA……………………………………………. 40

Tabla 3.2 Bits del registro SPBRG……………………………………………. 41

Tabla 3.3. Configuración de la frecuencia de transmisión…………………….. 41

Tabla 3.4. Bits del registro ADCON0………………………………………….. 57

Tabla 3.5 Frecuencia de trabajo del convertidor…………………………….... 57

Tabla 3.6 Tiempo de conversión………………………………………………. 58

Tabla 3.7 Selección de canal……...…………………………………………... 58

Tabla 3.8. Bits del registro ADCON1………………………………………….. 59

Tabla 3.9. Configuración de los canales de entrada analógica y digital………. 60

Tabla 3.10 Bits disponibles en el registro PORTA………………………….….. 63

Tabla 3.11 Canales y periféricos asociados al puerto C………………………... 67

Tabla 3.12 . Canales analógicos y digitales del microcontrolador……………... 68

Tabla 3.13 Carácter y número asociado a los canales del microcontrolador…... 70

Tabla 4.0. Controles internos de la pantalla 1……………………………….…. 86

Tabla 4.1. Controles internos de la pantalla 1………………………………….. 87

Tabla 4.2 Controles internos de la pantalla 1………………………………….. 88

Tabla 4.3. Controles internos de las pantallas 2, 3, 4 y 5……………………... 92

Tabla 4.4. Controles internos de las pantallas 2, 3, 4 y 5……………………… 93

Tabla 5.0 Dispositivos electrónicos que integran el sistema de adquisición de

datos…………………………………………………………............ 100

Tabla 5.1 Herramientas y equipo empleado para la construcción sistema de

adquisición de datos………………………………………………… 101

Tabla 5.2. Software utilizado para programar y desarrollar el software del

sistema de adquisición de datos…………………………………….. 101

Page 12: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-ix-

Pagina

Tabla 5.3 Material consumible utilizado durante el desarrollo del proyecto…. 102

Tabla 5.4 Fases de desarrollo y diseño del sistema de adquisición de datos….. 102

Tabla 5.5 Costo de mano de obra……………………………………………... 103

Tabla 5.6 Costos directos…………………………………………………….... 104

Tabla 5.7 Costos indirectos………………………………………………….… 104

Tabla 5.8 Costo total del proyecto con inversión privada ………………….... 104

Tabla 5.9 Costo total del proyecto desarrollado en la escuela………………… 105

Page 13: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

-x-

INTRODUCCION

En el presente trabajo se describe el diseño y desarrollo de un sistema de adquisición

de datos, el cual está enfocado, a cubrir una de las necesidades académicas que

existen dentro del laboratorio de control de procesos, de la Escuela Superior de

Ingeniería Mecánica y Eléctrica unidad Adolfo López Mateos, que al no contar con

un sistema de adquisición de datos para que cada uno de los alumnos, evita y frena al

alumno para que practique, compruebe, corrija o reafirme los conocimientos

adquiridos en las aulas de clase teórica.

Para cubrir dicha necesidad, en este trabajo primeramente se investigo y

documentaron, los componentes y características que componen un sistema de esta

índole para después seleccionar y definir los elementos necesarios para realizar dicho

sistema y reducir así, el costo de éste ya que la mayoría de los alumnos adquirir o

desarrollar un sistema de este tipo si tiene un costo muy elevado.

Page 14: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-xi-

OBJETIVOS

Objetivo General

Diseñar e implementar un sistema de monitoreo de señales digitales y analógicas a

través de un sistema de adquisición de datos basado en un microcontrolador, el cual

permita realizar diversos experimentos académicos, que permitan reafirmar los

conocimientos teóricos adquiridos en la clase de control de procesos, de la Escuela

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

Objetivos Particulares

• Desarrollar un sistema electrónico, que permita adquirir y registrar el

comportamiento de señales digitales y analógicas que estén dentro de un

rango de 0 a 5 volts provocadas por diversos sensores disponibles en el

mercado.

• Transmitir la información obtenida por este sistema a través del puerto serie y

USB, a una computadora personal que funcione bajo el sistema operativo

Windows.

• Desarrollar una interfaz grafica que permita visualizar el comportamiento de

los datos obtenidos por el sistema.

• Acceder de manera remota a la información registrada por la computadora

personal conectada al sistema de adquisición de datos, desde cualquier otra

computadora que cuente con acceso a Internet.

Page 15: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-xii-

JUSTIFICACION

El laboratorio de Control de Procesos de la Escuela Superior de Ingeniería Mecánica

y Eléctrica, unidad Adolfo López Mateos, cuenta con algunas tarjetas de adquisición

de datos para que los alumnos puedan realizar y desarrollar prácticas para reafirmar

sus conocimientos teóricos. Dichas tarjetas además de ser insuficientes para todos los

alumnos, requieren de una configuración en el software del procesador y de una

interface grafica que pueda interpretar y graficar los datos enviados por dicha

tarjeta. Por lo tanto es necesario desarrollar un sistema de adquisición de datos que

integre la interface grafica, el hardware de adquisición de datos y principalmente que

solo satisfaga las necesidades académicas de los estudiantes ya que esto trae como

consecuencia que el sistema sea barato ya que este no requiere componentes

electrónicos muy sofisticados o caros y por lo tanto pueda ser desarrollado por los

alumnos, para practicar y reafirmar los conocimientos obtenidos en las aulas de clase

teórica.

Page 16: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

CAPITULO 1

MARCO TEORICO.

Page 17: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-1-

Capitulo 1

MARCO TEORICO.

Introducción.

En el presente capítulo se exponen las bases teóricas para el diseño de periféricos,

para esto el capítulo se divide en dos secciones. En la primera sección se describen

los estándares más importantes y comunes que se utilizan para conectar los

periféricos al ordenador y en la segunda se describen algunas características más

importantes de los microcontroladores.

1.1. Interconexión entre ordenador y periféricos.

En cualquier ordenador existe una parte muy importante llamada subsistema de

Entrada/Salida, que es la que hace posible la comunicación con el mundo exterior.

Este sistema está formado por varios dispositivos periféricos que proporcionan un

medio para intercambiar datos con el exterior y que se comunican con el procesador a

través de una serie de módulos llamados de E/S. Cualquiera de estos módulos

contiene una serie de controladores que se encargan de manejar el funcionamiento de

uno o varios periféricos.

Los módulos de E/S no deben conectar directamente el periférico con el bus del

sistema, sino que deben tener un controlador para poder realizar la comunicación

entre el periférico y el procesador de forma eficiente.

• Existe una gran diversidad de periféricos que utilizan métodos de operación

diferentes. No sería lógico que la CPU tuviera que incorporar toda la lógica

necesaria para controlar este rango de dispositivos.

Page 18: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-2-

• La velocidad de transferencia de los datos de los periféricos es a menudo

mucho más lenta que la que tiene el procesador con el sistema de memoria,

por lo tanto resulta poco práctico usar el bus del sistema de alta velocidad para

comunicarse directamente con los periféricos.

• A menudo los periféricos utilizan formatos y longitudes de palabra de datos

diferentes a los que utiliza el procesador. Debe haber por tanto algún

mecanismo para adecuar las señales de ambos dispositivos.

Los módulos de E/S establecen una serie de reglas (llamadas interfaces) que les

permiten por un lado conectarse con la CPU y la memoria a través del bus del sistema

o al de expansión y, por otro lado, conectarse con los dispositivos periféricos a través

de enlaces dedicados para datos. Estos enlaces se caracterizan porque son más lentos,

tienen una menor longitud de palabra y menores velocidades de transferencia de

datos. Su diseño se basa en un estándar para permitir la interconexión de dispositivos

de diferentes fabricantes.

A continuación se describirán algunos de los estándares más importantes utilizados

en la interconexión del ordenador y los periféricos, haciendo para ello una distinción

entre interfaces serie e interfaces paralelas:

Interfaz serie: Se utiliza una única línea para transmitir los datos.

Interfaz paralela: Se utilizan varias líneas de datos para transmitir múltiples

bits de forma simultánea.

Page 19: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-3-

1.1.1. Interfaces serie.

La conexión a través de esta interfaz es muy importante debido a su gran flexibilidad.

En los ordenadores personales la interfaz serie se utiliza para conectar múltiples

dispositivos como plotters, módems, ratones y también impresoras.

En la transmisión serie se van transfiriendo los bits de información de uno en uno a

través de una línea de datos, pudiendo ser las transferencias síncronas o asíncronas.

Si se utilizan señales adicionales (reloj o señales de petición y reconocimiento) para

indicar cuándo el bit siguiente es válido, entonces se dice que la transmisión se realiza

de forma síncrona. La principal ventaja de este tipo de transferencias es que el

receptor puede funcionar a varias frecuencias de reloj (siempre que no sobrepase su

frecuencia máxima de funcionamiento). Simplemente bastará con retrasar el envío de

la señal de reconocimiento para ralentizar el protocolo. En las transferencias

asíncronas, por el contrario, tanto el receptor como el transmisor deben funcionar a la

misma frecuencia. En este caso se envía también información de sincronización a

través de la línea de datos, que se corresponde con un bit de comienzo (bit de start),

que indica el comienzo de una unidad de datos, un bit de fin (bit de stop) indicando su

finalización y, opcionalmente, un bit de paridad para controlar los posibles errores.

El bit de paridad lo generan los controladores serie de forma automática, pudiendo

configurarse entre las opciones de: sin paridad, paridad par (odd), paridad impar

(even), siempre un nivel alto (mark) o siempre un nivel bajo (space).

La tasa de transferencia de datos se mide en baudios. Los baudios indican el número

de veces que puede cambiar una señal en la línea de transmisión por segundo.

1.1.1.1. La interface RS-232.

Este estándar lo incorporan todos los ordenadores personales y está definido por la

EIA (Electronic Industries Association) aunque en Europa se le conoce como el

estándar V.24 definido por la CCITT (Consultative Committee for Internacional

Page 20: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-4-

Telephone and Telegraph). En él se definen todas las características mecánicas,

eléctricas y los protocolos necesarios para conectar un equipo terminal de datos

(DTE- Data Terminal Equipment) con un equipo transmisor de datos (DCE – Data

Carrier Equipment). Inicialmente se definió para realizar la comunicación entre un

ordenador personal y un módem, aunque actualmente se utiliza con muchos otros

propósitos para enviar datos de forma serial.

El estándar define voltajes que oscilan entre + [3-15] V para el nivel alto y – [3- 15]

V para el nivel bajo. Debido a la gran diferencia de voltaje que existe entre los niveles

altos y bajos, se permiten tasas de transferencia de hasta 115.200 baudios si la

longitud del cable es de unas pocas decenas de metros.

Si se utiliza este estándar para conectar otros periféricos diferentes de los módems,

éstos se comportan como dispositivos DTE y, por lo tanto, las señales cambian de

significado.

1.1.1.2. El Bus Serie Universal (USB).

El USB es un estándar (1995) que define un bus utilizado para conectar periféricos al

ordenador. La principal característica que tiene es que la conexión es muy sencilla, ya

que utiliza un solo conector para conectar a través de un bus serie todos los

dispositivos. En él se definen los conectores y los cables, una topología especial tipo

estrella para conectar hasta 127 dispositivos y protocolos que permiten la detección y

configuración automática de los dispositivos conectados. USB 1.0 soporta dos tasas

de transferencia diferentes, una baja de 1,5 Mbps para la conexión de dispositivos

lentos de bajo coste (joysticks, ratones) y otra alta de hasta 12 Mbps para la conexión

de dispositivos que requieren un mayor ancho de banda (discos o CD ROMS).

Page 21: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-5-

La especificación de este estándar ha sido respaldada por las empresas líderes

mundiales en el campo de la informática: Intel, IBM, DEC, Microsoft, Compac, NEC

y Northem Telecom, empresas que garantizan su continuidad y utilización.

A mediados del año 2000 aparece la versión 2.0, que fue creada por el conjunto de

compañías mencionadas, a las cuales se unieron Hewlett Packard, Lucent y Philips.

USB 2.0 multiplica la velocidad del bus por un factor de 30 o 40, llegando a alcanzar

una velocidad de 480 Mbps, con una diferencia de coste casi inapreciable. Es

compatible con la versión anterior y utiliza los mismos cables y conectores,

únicamente se necesitan nuevos hubs que soporten la versión 2.0. Estos hubs son algo

más complejos que los anteriores, ya que tienen que manejar el tráfico de datos de

tres velocidades distintas sin ser excluyentes entre ellas.

Cabe también destacar que USB 2.0 nunca llegará a reemplazar completamente a

USB 1.0, ya que existen algunos tipos de dispositivos, como los HID (teclados,

ratones,…), que no requieren las altas velocidades que alcanza esta nueva versión y

que únicamente encarecerían el dispositivo.

Anteriormente los periféricos se conectaban mapeados directamente en direcciones de

E/S, se les asignaba una dirección específica y en algunos casos un canal DMA. Esta

situación conducía a tener conflictos en la asignación de estos recursos, puesto que

siempre han estado bastante limitados en el ordenador. Además cada dispositivo tenía

su propio puerto de conexión y utilizaba sus cables específicos, lo que daba lugar a un

incremento de los costes. Debido a que a cada dispositivo se le tenían que asignar

unos recursos específicos la detección del mismo debía hacerse a la hora de arrancar

el sistema y nunca se podía incorporar un nuevo dispositivo cuando el sistema estaba

en marcha.

Este estándar define una topología de conexión en estrella, tal como se muestra en la

figura 1.0 , por medio de la incorporación de varios concentradores (hubs) conectados

Page 22: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-6-

en serie. Cada concentrador se conecta por un lado al ordenador, que contiene una o

dos interfaces de este tipo en la placa base, o a otro concentrador y, por otro lado, se

conecta a varios dispositivos o incluso a otro concentrador. De este modo pueden

existir periféricos que vengan ya preparados con nuevos conectores USB para

incorporar nuevos dispositivos, hasta un total de 127, todos ellos funcionando

simultáneamente. Los hubs tienen la misión de ampliar el número de dispositivos que

se pueden conectar al bus. Son concentradores cableados que permiten la conexión

simultánea de múltiples dispositivos y lo más importante es que se pueden concatenar

entre sí ampliando la cantidad de puertos disponibles para los periféricos. El

concentrador detecta cuándo un periférico es conectado o desconectado a/de uno de

sus puertos, notificándolo de inmediato al controlador de USB. También realiza

funciones de acoplamiento de las velocidades de los dispositivos más lentos.

Figura 1.0. Topología de una conexión USB

El host decide qué dispositivo puede acceder al bus, utilizando un protocolo parecido

al de paso de testigo. Este protocolo se caracteriza porque entre los diferentes

Page 23: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-7-

dispositivos se va pasando un identificador a lo largo del tiempo que permite la

utilización del bus.

El host USB tiene las funciones de:

Detectar la conexión/desconexión de dispositivos y configurarlos.

Controlar las transferencias de datos y de control que tienen lugar en el bus.

Realización de auditorias sobre la actividad del sistema.

Servir como fuente de alimentación a los dispositivos.

El USB define dos líneas para transmitir datos y otras dos para transmitir potencia,

observe la figura 1.2. Los datos de transmiten de forma balanceada a velocidades

entre 1,5 Mbps y 12 Mbps. La señal se transmite codificada en un código autoreloj de

no retorno a cero invertido (NRZI) para poder incluir junto con los datos información

de sincronización. Las líneas de alimentación (Vbus y GND) evitan la necesidad de

utilizar fuentes de alimentación externas. Tiene una tensión de 5 V y la corriente se

limita a un máximo de 3 a 5 amperios por razones de seguridad, siendo el consumo y

la configuración eléctrica totalmente transparente al usuario. La distancia entre dos

periféricos conectados al mismo cable no debe ser superior a 5 metros para evitar

problemas de caídas de tensión.

Figura 1.2. Formato del cable USB

Page 24: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-8-

El computador identifica automáticamente el dispositivo que se conecta mientras

opera y lo configura sin tener que instalar drivers específicos del fabricante. Al

comienzo se detectan los dispositivos conectados midiendo los niveles de voltaje de

las líneas. Si un dispositivo está conectado, entonces el dispositivo envía información

sobre el tipo o la clase a la que pertenece, el modo de transferencia utilizará y cuáles

son sus necesidades de ancho de banda. El host reconocerá el dispositivo buscando en

la lista de drivers del sistema operativo y teniendo en cuenta los demás dispositivos

conectados les asignará un ancho de banda determinado. De la misma forma también

se pueden desconectar los dispositivos del sistema. El controlador USB del host

asigna un número diferente de dispositivo a cada uno de los periféricos que se

conectan a este bus. Para empezar la transferencia, éste envía un paquete que

identifica al dispositivo objeto de la transferencia. El protocolo soporta cuatro tipos

de transferencias:

Control. Son transferencias que se utilizan para leer información de los

descriptores en los registros de los dispositivos (llamados endpoints).

Interrupción. Usadas en los periféricos del tipo de los controladores de

juegos, teclados y ratones, cuya comunicación es unidireccional y poco

frecuente.

Masiva. Son transferencias no periódicas que precisan de todo el ancho de

banda disponible. Utilizadas por las impresoras y los scanners.

Isócrona. Dedicadas a las transferencias de telecomunicaciones, como voz o

vídeo, que garantiza unas tasas de transferencia constantes. Se caracterizan

porque el número de pulsos de reloj que transcurren entre la transmisión de

dos caracteres es constante, por lo tanto, se está enviando información

constantemente entre el host y el dispositivo.

Page 25: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-9-

1.1.2. Interfaces paralelas.

Los ordenadores personales incorporan tradicionalmente un puerto paralelo

consistente en un conector DB25. Este tipo de interfaz se caracteriza porque se envían

simultáneamente los bits de datos por medio de diferentes líneas. Desde siempre se ha

considerado la interfaz paralela como el puerto utilizado para conectar la impresora,

pero desde comienzos de la década de los noventa se viene utilizando con otros fines,

ya sea para comunicar diferentes sistemas informáticos o bien para conectar

dispositivos de almacenamiento masivo. La clave para su expansión fue la utilización

de estándares que permitían la comunicación bidireccional por las líneas de datos.

1.1.2.1. La interface Centronics.

Inicialmente se diseñó una interfaz con 36 pines, que utilizaba la casa Centronics

Data Computer Corporation en sus impresoras. Sin embargo, la interfaz Centronics

de los ordenadores personales actuales fue diseñada por Epson Corporation.

La interfaz consta de 8 pines para datos más 5 señales que controlan la impresora y

cinco que vienen de la misma. Se utilizan voltajes TTL con señales no balanceadas,

por lo que son susceptibles de recibir ruido y producir errores. El bus soporta tasas de

transferencia de datos de hasta 100 Kbytes/s.

Actualmente se han diseñado dos estándares que tratan de aumentar el ancho de

banda de la interfaz Centronics sin perder la compatibilidad con el mismo,

permitiendo además la comunicación bidireccional. Son las interfaces ECP (Extended

Capabilities Port) y EPP (Enhanced Capabilities Port) que se definen en el estándar

del IEEE 1284. ECP se utiliza en las impresoras y escáners, puesto que permite

mayores tasas de transferencia con protocolos sencillos, mientras que EPP sirve para

los demás dispositivos en donde se necesita un control de errores más exhaustivo.

Page 26: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-10-

1.1.2.2. El estándar IEEE 1284.

Este nuevo estándar define 5 modos de transferencia de datos, desde el viejo

Centronics hasta dos métodos que permiten la comunicación bidireccional entre el

ordenador y el dispositivo. Debido a que los protocolos se implementan por

hardware, EPP y ECP permiten tasas de transferencia de datos mucho mayores,

llegando incluso al Megabyte por segundo. Los 5 modos de transferencia de datos

que define el estándar son: modo compatible, 4 bits, 8 bits (modo byte), ECP y EPP.

El estándar describe el formato de las señales, la asignación de pines y los

mecanismos de detección y corrección de errores, sin embargo las funciones de la

BIOS, la interfaz software y el control de los puertos están a cargo de los fabricantes.

El puerto paralelo se configura inicialmente en el modo compatible. Después se

establece un diálogo con el periférico para decidir el modo de funcionamiento final,

aunque debido a la facilidad con la que se puede cambiar el modo, es posible realizar

transferencias cambiando los modos de emisión y de recepción de datos de forma

dinámica. Los modos byte, ECP y EPP son opcionales en el estándar.

1.1.2.3. Small Computer Systems Interface (SCSI).

La interface SCSI es paralela, con 8, 16 o 32 líneas de datos, que se utiliza para

comunicar dispositivos rápidos, como discos CD-ROM, dispositivos de audio y

dispositivos de almacenamiento externo de datos. Normalmente se considera a la

configuración SCSI como un bus (conexión multipunto), sin embargo, los

dispositivos están conectados entre sí formando una conexión daisy-chain. Cada

dispositivo tiene dos conectores, uno de entrada y otro de salida. El comienzo del bus

se conecta con el host y el último dispositivo incorpora un terminado para evitar

problemas de reflexiones de las señales. Los dispositivos funcionan de forma

independiente y pueden intercambiar datos tanto entre sí como con el host.

Page 27: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-11-

Este bus puede soportar múltiples procesadores y múltiples dispositivos periféricos.

Soporta hasta 8 dispositivos, de los cuales cada uno puede unidades lógicas, cada una

de las cuales soporta 256 subunidades lógicas.

La especificación original se llamó SCSI-1 y usaba 8 líneas de datos a una frecuencia

de 5 MHz, permitiendo una transferencia de datos de 5 Mb/s. SCSI-1 soporta hasta 7

dispositivos que pueden ser encadenados al bus.

En 1991 surgió una extensión estándar, el SCSI-2, que incrementaba el número de

líneas de datos a 16 o 32 bits e incrementaba la frecuencia de reloj a 10 MHz. Así se

logran tasas de transferencia máxima de hasta 40 Mbytes/s.

Las transferencias en el bus siempre tienen lugar entre un iniciador (dispositivo que

manda comandos) y un objetivo (dispositivo que ejecuta los comandos).

Normalmente el host es el iniciador y el controlador del dispositivo es el objetivo,

aunque puede haber algún dispositivo que sea ambas cosas a la vez. Las señales que

se transmiten por el bus pueden estar implementadas utilizando un solo cable cada

una y compartiendo una masa común en el caso de un single-ended SCSI o utilizando

dos cables cada una en el caso del differential SCSI. El primero se utiliza para

distancias menores a 6 metros y el segundo para distancias menores a 25 metros. Los

conectores son de 50 pines.

1.1.3. Comunicación inalámbrica. Bluetooth.

Bluetooth es la norma que define un estándar global de comunicación inalámbrica

que posibilita la transmisión de voz y datos entre diferentes equipos mediante un

enlace por radiofrecuencia. Los principales objetivos que se pretende conseguir con

esta norma son:

Facilitar las comunicaciones entre equipos móviles y fijos.

Eliminar cables y conectores entre éstos.

Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la

sincronización de datos entre nuestros equipos personales.

Page 28: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-12-

La especificación de Bluetooth define un canal de comunicación de máximo 720Kb/s

(1 Mbps de capacidad bruta) con rango óptimo de 10 metros (opcionalmente 100 m

con repetidores).

La frecuencia de radio con la que trabaja está en el rango de 2,4 a 2,48 GHz con

amplio espectro y saltos de frecuencia con posibilidad de transmitir en full duplex con

un máximo de 1600 saltos/seg. Los saltos de frecuencia se dan entre un total de 79

frecuencias con intervalos de 1 MHz; esto permite dar seguridad y robustez.

La potencia de salida para transmitir a una distancia máxima de 10 metros es de 0

dBm (1 mW), mientras que la versión de largo alcance transmite entre 20 y 30 dBm

(entre 100 mW. y 1 W).

1.2. Microcontroladores.

Un controlador es un dispositivo que se emplea en el gobierno de uno o varios

procesos. Aunque el concepto de controlador ha continuado inalterable a través del

tiempo, su implementación física ha variado frecuentemente. Hace tres décadas, los

controladores se construían exclusivamente con componentes de lógica discreta,

posteriormente se utilizaron los microprocesadores, que se rodeaban con chips de

memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los

elementos del controlador se han podido incluir en un chip que recibe el nombre de

microcontrolador.

En definitiva, un microcontrolador es un circuito integrado programable que contiene

todos los componentes de un computador. Se utiliza para controlar el funcionamiento

de una tarea determinada y, debido a su reducida medida, suele ir incorporado en el

propio dispositivo que gobierna. Esta última característica es la que le confiere la

denominación de controlador incrustado (embedded controller).

El microcontrolador es un computador dedicado. En su memoria reside un programa

destinado a gobernar una aplicación determinada; sus líneas de entrada/salida

soportan la conexión de los sensores y actuadores del dispositivo a controlar y todos

Page 29: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-13-

los recursos complementarios disponibles tienen como única finalidad atender sus

requerimientos. Una vez programado y configurado el microcontrolador solamente

sirve para gobernar la tarea asignada.

Un microcontrolador posee todos los componentes de un computador pero con unas

características fijas que no pueden alterarse. Todos disponen de los bloques

esenciales: procesador, memoria de datos y de instrucciones, módulos de E/S,

oscilador de reloj y módulos controladores de periféricos. Además de estos

elementos, existen una serie de recursos especiales que los fabricantes pueden ofertar,

algunos amplían las capacidades de las memorias, otros incorporan nuevo recursos y

hay quienes reducen las prestaciones al mínimo para aplicaciones muy simples.

Depende del programador el encontrar el modelo mínimo que se ajuste a sus

requerimientos y así minimizar el coste. Algunos de los principales recursos

específicos que incorporan los microcontroladores son:

• Temporizadores (Timers).

• Protección frente a fallo de alimentación (Brown-out).

• Estado de bajo consumo.

• Conversores AD y DA.

• Modulador de anchura de pulsos PWM.

• Comparadores analógicos.

• Puertos de E/S digital.

• Puertos de comunicación: serie, CAN, USB, I2C.

Los microcontroladores pueden clasificarse según su arquitectura, que puede ser

Von Neumann o Harvard. La arquitectura Von Neumann se caracteriza por disponer

de una sola memoria principal donde se almacenan datos e instrucciones de forma

indistinta. A dicha memoria se accede a través de un solo bus, esta arquitectura

puede observarse en la figura 1.3.

Page 30: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-14-

Figura 1.3 Arquitectura Von Neumann.

Hay aspectos positivos en esta configuración como los accesos a tablas almacenadas

en memoria ROM y un set de instrucciones más ortogonal. El bus de direcciones es

usado para identificar qué posición de memoria esta siendo accedida, mientras que el

bus de datos es utilizado para trasladar información entre la CPU y alguna dirección

de memoria o viceversa. Con un único bus, la arquitectura Von Neumann es usada

secuencialmente para acceder a instrucciones de la memoria de programa y

ejecutarlas regresando desde/hacia la memoria de datos. Esto significa que el ciclo de

instrucción no puede solaparse con ningún acceso a la memoria de datos.

La Arquitectura Harvard se caracteriza por disponer de dos memorias independientes,

una que contiene sólo instrucciones y otra sólo datos. Ambas disponen de sus

respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso

(lectura o escritura) simultáneamente en ambas memorias. Una de las ventajas de esta

arquitectura es que la operación del microcontrolador puede ser controlada más

fácilmente si se presentara una anomalía en el contador de programa. Esta

arquitectura se muestra en la siguiente figura.

Figura 1.4 Arquitectura Harvard.

Page 31: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-15-

Existe otra arquitectura que permite accesos a tablas de datos desde la memoria de

programa. Esta arquitectura es la llamada arquitectura Harvard modificada.

Esta arquitectura es la dominante en los microcontroladores actuales ya que la

memoria de programa es usualmente ROM, OTP, EPROM o FLASH mientras que la

memoria de datos es usualmente RAM. Consecuentemente, las tablas de datos

pueden estar en la memoria de programa sin que sean perdidas cada vez que el

sistema es apagado. Otra ventaja importante en la arquitectura Harvard modificada es

que las transferencias de datos pueden ser solapadas con los ciclos de decodificación

de instrucciones. Esto quiere decir que la siguiente instrucción puede ser cargada de

la memoria de programa mientras se está ejecutando una instrucción que accede a la

memoria de datos. La desventaja de la arquitectura Harvard modificada podría ser

que se requieren instrucciones especiales para acceder a valores en memoria RAM y

ROM haciendo la programación un poco complicada.

Las principales ventajas que se pueden encontrar en el uso de

microcontroladores son:

Gestión eficiente de procesos.

Aumento de la fiabilidad.

Reducción del tamaño, consumo y coste.

Mayor flexibilidad (únicamente se requiere la reprogramación).

Existe una gran diversidad de microcontroladores. Quizá la clasificación más

importante sea entre microcontroladores de 4, 8, 16 o 32 bits. Aunque las

prestaciones de los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8

bits, la realidad es que los microcontroladores de 8 bits dominan el mercado y los de

4 bits se resisten a desaparecer. La razón de esta tendencia es que los

microcontroladores de 4 y 8 bits son apropiados para la gran mayoría de las

aplicaciones, lo que hace innecesario emplear microcontroladores más potentes y

consecuentemente más caros.

Page 32: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-16-

En cuanto a las técnicas de fabricación, cabe decir que prácticamente la totalidad de

los microcontroladores actuales se fabrican con tecnología CMOS 4 (Complementary

Metal Oxide Semiconductor). Esta tecnología supera a las técnicas anteriores por su

bajo consumo y alta inmunidad al ruido.

La instrumentación y la electromedicina son dos campos idóneos para la implantación

de estos circuitos integrados.

Page 33: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

1

CAPITULO 2

DISEÑO Y DESARROLLO DEL HARDWARE DE

ADQUISICIÓN DE DATOS.

Page 34: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-17-

Capitulo 2

DISEÑO Y DESARROLLO DEL HARDWARE DE ADQUISICIÓN DE

DATOS.

2.1 Introducción

En el presente capitulo de describen y seleccionan las características, elementos y

funciones necesarias para el desarrollo del hardware del sistema de adquisición

de datos.

2.2 Sistema de adquisición de datos.

En general, cuando se habla de un sistema de adquisición de datos, se pueden

identificar cuatro partes o elementos principales: hardware, software, PC y

sensores. Las características y funciones de cada uno de estos elementos determinan

en gran parte el adecuado desempeño del sistema. Por ejemplo, la PC debe contar

con un buen procesador o suficiente memoria RAM para poder transferir y procesar

continuamente todos los datos adquiridos, de lo contrario la velocidad máxima de

lectura se limitará. El software de aplicación debe ser poderoso para analizar y

presentar la información correctamente al usuario, además debe ser flexible para

poder evolucionar conforme cambien las necesidades de la aplicación. Por otro lado,

una elección correcta de los sensores y del hardware para el acondicionamiento y

conversión de señales es clave para obtener una lectura correcta de las señales.

Page 35: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-18-

A continuación se presentaran de manera general algunas de las características y

funciones más sobresalientes de un sistema de adquisición de datos.

• Especificaciones de las entradas analógicas.

• Número de canales.

• Velocidad máxima de muestreo.

• Resolución de los datos.

• Mecanismo de muestreo de las entradas analógicas.

• El bus de comunicación con la PC

• El aislamiento eléctrico del dispositivo.

• Software controlador o driver para comunicarse con el equipo.

Conocer cómo afecta cada una de las funciones y características anteriores, el

rendimiento total del sistema de adquisición de datos, es clave para determinar si el

sistema cumple con los requisitos que el proceso demanda. A continuación se

describirán algunas de las funciones y características anteriores.

2.2.1 Especificaciones de las entradas analógicas.

Las especificaciones de la entrada analógica, sirven para determinar la capacidad y

precisión del dispositivo de adquisición de datos. Las especificaciones más básicas

son: el número de canales, la máxima velocidad de muestreo, la resolución y el rango

de entrada.

Page 36: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-19-

2.2.2 El número de canales.

El número de canales analógicos de entrada se especifica en número de entradas

diferenciales y entradas de terminal sencilla. Las entradas de terminal sencilla están

referenciadas a una terminal de tierra común. Es recomendable utilizar este tipo de

entrada analógica cuando las señales de voltaje son mayores a 1 V, las terminales de

la fuente de la señal están a menos de 5 metros y todas las entradas comparten la

misma tierra. Si las señales no cumplen con los criterios anteriores, se recomienda

utilizar los canales de entrada en modo diferencial. Con entradas diferenciales, cada

entrada tiene su propia referencia a tierra; de esta forma los errores por ruido se

reducen debido a que el ruido captado normalmente por una sola terminal se cancela

entre las terminales.

2.2.3 Velocidad máxima de muestreo.

La velocidad máxima de muestreo de un convertidor analógico/digital determina la

velocidad en que ocurren las conversiones. A mayores velocidades de muestreo, se

adquieren más datos en un periodo de tiempo y por lo tanto se representa mejor la

señal original.

Para aplicaciones de múltiples canales, existen dos arquitecturas principales de los

convertidores de señal analógica/digital para adquirir las señales: muestreo

multiplexado y simultáneo.

2.2.4 Resolución de los datos.

La resolución es el número de bits que el convertidor analógico/digital utiliza para

representar la señal analógica. A mayores resoluciones, mejor será la detección en

los cambios mínimos de voltaje de la señal.

Page 37: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-20-

2.2.5 Mecanismo de muestreo.

Para configurar un sistema de adquisición de datos de múltiples canales, es

importante no sólo considerar la máxima velocidad de muestreo y el número de

canales, sino también el mecanismo de muestreo de los canales ya que éste también

determinará la velocidad de lectura de los canales de entrada y la precisión del

dispositivo de adquisición de datos. En términos generales, se pueden identificar tres

mecanismos para el muestreo de los canales analógicos: multiplexado, simultáneo de

muestreo y retención y simultáneo con múltiples convertidores de señal

analógica/digital. A continuación se describirá cada uno de estos mecanismos y sus

áreas de aplicación.

2.2.5.1 Mecanismo multiplexado.

Este tipo de mecanismo solo cuenta con un convertidor analógico-digital y un

amplificador para todos los canales. Para cubrir todas las entradas, el dispositivo de

adquisición de datos utiliza un multiplexor, que barre todos los canales y arroja una

única salida a la vez. Una característica de este tipo de arquitecturas es que la

velocidad máxima de muestreo que se especifique en el dispositivo de adquisición de

datos se debe dividir entre el número de canales muestreados.

2.2.5.2 Mecanismo simultaneo de muestreo y retención.

Este mecanismo cuenta con un preamplificador y un circuito de retención antes del

multiplexor, este circuito constantemente está registrando el valor de la señal de

entrada antes de la lectura. Justo antes de que se realice el muestreo, el dispositivo de

adquisición de datos retiene simultáneamente el valor de voltaje de los circuitos

mediante un condensador interno. Posteriormente, el multiplexor y el convertidor

Page 38: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-21-

analógico/ digital muestrean todos los canales en orden y liberan los circuitos para

que continúen registrando las entradas. Utilizando este mecanismo, los voltajes de

entrada son simultáneos aún cuando el muestreo propiamente sea de forma

secuencial.

2.2.5.3 Mecanismo Simultáneo con múltiples convertidores.

Permite lograr mayores velocidades de muestreo por canal, mayor precisión

dinámica y menor complejidad en los circuitos. Esta arquitectura no requiere de

multiplexores para enrutar todos los canales a un solo convertidor analógico/digital.

Con esta arquitectura es posible muestrear las señales de entrada de manera

independiente (a velocidades distintas) o de manera simultánea a alta velocidad.

Además, la velocidad máxima de muestreo no se divide entre el número de canales

de entrada. Este tipo de arquitecturas es ideal para aplicaciones donde se necesita

tener altas velocidades de muestreo y mediciones 100% simultáneas; ejemplos de

estas aplicaciones son medición de sonido de micrófonos, o medición de señales de

vibración en aplicaciones de mantenimiento predictivo de maquinaria.

2.2.6 Aislamiento eléctrico del dispositivo.

En muchas aplicaciones industriales donde se miden señales de voltaje, corriente,

temperatura, presión, tensión y flujo, es común encontrar elementos que pueden

dañar los sistemas de medición y perjudicar las mediciones como voltajes peligrosos,

señales transitorias, voltajes de modo común y referencias a tierra fluctuantes. Para

solucionar o prevenir estos problemas, los sistemas de medición para aplicaciones

industriales deben contar con aislamiento eléctrico. El aislamiento separa

eléctricamente las señales del sensor, que pueden estar expuestas a voltajes

peligrosos, del plano del sistema de medición. De esta forma, el aislamiento protege

Page 39: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-22-

contra todas las situaciones mencionadas: protege al equipo de medición, al usuario y

los datos, contra picos de voltaje; mejora la inmunidad al ruido; remueve los

diferentes lazos de tierra y rechaza el voltaje de modo común.

Un sistema de medición aislado cuenta con planos de tierra separados para la parte

de entradas analógicas y la conectividad con el resto del sistema. De esta forma, la

terminal de tierra de las entradas analógicas puede operar a niveles de potencial de

voltaje diferentes a la tierra del sistema ya que es una terminal que está flotada.

El aislamiento requiere que las señales sean transmitidas a través de la barrera de

aislamiento sin tener ningún contacto eléctrico directo. Para implementar esta

transmisión, existen tres componentes comúnmente utilizados: diodo emisor de luz,

condensadores e inductores.

2.2.7 Bus de comunicación con la PC.

El propósito principal de un bus de comunicación es enviar comandos y datos entre

el dispositivo de medición y una unidad central, como una PC, o entre diferentes

dispositivos, como tarjetas insertables. Hoy en día, existe una gran variedad de buses

de comunicación disponibles para dispositivos de adquisición de datos: desde buses

antiguos, como GPIB o serial hasta buses populares externos como USB.

Terminando con buses internos de muy alta velocidad como PCI y PXI Express. La

elección del bus de comunicación en el dispositivo de adquisición de datos

dependerá mucho de las características de las aplicaciones en donde se utilizara. En

cuestiones de velocidad de transferencia, un bus de comunicación se puede definir

por dos características: el ancho de banda y la latencia. El ancho de banda mide la

velocidad a la cual los datos son enviados a través del bus, regularmente en mega

bytes por segundo, o MB/s. Un mayor ancho de banda es importante para

aplicaciones donde se trabaja con señales complejas o señales de RF. La latencia

mide el retraso en la transmisión de datos a través del bus. Una menor latencia

Page 40: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-23-

introducirá menos tiempo de retraso entre los datos que son transmitidos desde un

extremo de comunicación hasta que son procesados en el otro extremo.

2.2.8 Software controlador o driver para comunicarse con el equipo.

El controlador es la capa de software que permite la comunicación con el hardware

desde el software de aplicación en la PC. El controlador permite al usuario indicar al

hardware de adquisición de datos cuáles son los parámetros bajo los cuales debe

operar (como el rango o la velocidad de muestreo) además de indicarle las

operaciones que debe realizar (configurar la memoria de entrada, leer uno o

múltiples canales, etc.). Uno de los beneficios de contar con un controlador es que

previene al ingeniero de programar a nivel de registro o enviar comandos

complicados de manera manual para acceder a las funciones del hardware.

Comúnmente el controlador es uno de los factores menos considerado al momento

de elegir un sistema de adquisición de datos; sin embargo, un software controlador

intuitivo y con acceso completo al hardware es crucial para asegurar un rápido

desarrollo de la aplicación de medición.

Una vez que se conocieron y comprendieron los elementos y funciones que

componen un sistema de adquisición de datos, se procederá a diseñar el hardware

del sistema de adquisición de datos de este proyecto.

Page 41: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-24-

2.3 Diseño del hardware de adquisición de datos.

Las características y funciones que se pretenden obtener con el diseño y desarrollo

del hardware del sistema de adquisición de datos son las siguientes:

• Comunicación con otros dispositivos a través del puerto USB.

• Conexión o entrada de señales analógicas y digitales no mayores a 5 volts.

• Acoplamiento de señales analógicas de 4 a 20 mA, para que estas puedan

ser conectadas directamente a un convertidor analógico/digital.

• Conversión de señales analógicas a digitales con una resolución de 10 bits y

velocidad de muestreo mayor o igual a 10 khz.

• Voltaje de alimentación de la tarjeta de 5 Volts D.C.

Para realizar y obtener las características y funciones anteriores será necesario

emplear diversos dispositivos electrónicos como: microcontroladores,

convertidores de señal analógica a digital, optoacopladores, amplificadores

operacionales, reguladores, etc.

Estos dispositivos se agruparan y conectaran por módulos, con la finalidad de

facilitar el diseño y dividir las funciones anteriores.

Los módulos que componen el hardware del sistema de adquisición de datos son los

siguientes:

• Acondicionador de señales analógicas y digitales.

• Convertidor analógico/digital.

• Controlador.

• Comunicación serial.

• Alimentación.

Page 42: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-25-

En la figura siguiente figura 2.0, se muestra el diagrama de bloques de los

módulos que componen el hardware del sistema de adquisición.

Figura 2.0. Módulos internos del hardware del sistema de adquisición de datos.

A continuación se describirá las tareas y funciones que se llevaran a cabo,

dentro de cada uno de los módulos anteriores.

2.3.1 Acondicionador de señales

Se encargara de aislar, ajustar y acondicionar las señales procedentes de los

sensores analógicos y digitales, para que estas puedan ser manipuladas

directamente por el microcontrolador y por el convertidor de señales analógicas.

2.3.2 Convertidor analógico digital.

Será el encargado de transformar las señales analógicas a digitales, que

previamente fueron acondicionadas.

2.3.3 Controlador

Realizara el control, los cálculos y coordinación de los diversos dispositivos que

componen el hardware de adquisición de datos.

Page 43: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-26-

2.3.4 Comunicación

Enviara los datos generados en los módulos: acondicionamiento de señales

digitales y conversión de señales analógicas, hacia la computadora empleando el

puerto USB.

A continuación se hará la selección, descripción y configuración que adoptaran,

algunos de los dispositivos más sobresalientes del hardware de adquisición de

datos.

Dentro del modulo acondicionador de señales, se implementaran optoacopladores

y amplificadores operacionales, el arreglo y configuración de estos dependerá

directamente de las características de la señal (analógica y digital), que se desea

manipular o monitorear.

Para manipular la señales analógicas se requerirá emplear un arreglo o

configuración de amplificadores que permitan aislar y convertir la corriente en

tensión, ya que las señales que transmiten los sensores varían de 4 a 20 mA., a

esta configuración de amplificadores operacionales se le conoce como:

2.3.5 Convertidor de Corriente/tensión

Un amplificador con este tipo de configuración tiende a actuar como un perfecto

convertidor de corriente/tensión, dispositivo con impedancia o resistencia de entrada

cero, impedancia o resistencia de salida de cero y una razón de tensión/corriente

estable y constante. Este circuito se caracteriza como una fuente ideal de tensión

controlada por corriente. En la figura siguiente se muestra un amplificador de

este tipo.

Page 44: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-27-

iI

iI

Figura 2.1. Convertidor de corriente a tensión

La tensión de salida en el amplificador se puede obtener mediante el siguiente

análisis:

La resistencia de entrada de un amplificador operacional característico es muy

grande, del orden de megaohms, por esta razón, la corriente de entrada fluye a

través de la resistencia Rf, produciendo una caída de tensión. Del circuito anterior se

deduce:

00 ====−−−−−−−−−−−− VfRiIdV …….….…….…………….. (Ecuación 7)

Como dVA00V ==== se sustituye en la ecuación anterior.

fiRIVA

V====−−−−−−−− 0

0

0 …………….….…………… (Ecuación 8)

Ordenando la ecuación anterior, se obtiene:

(((( )))) fiRIAAV 000 1 ====++++−−−− ……………….………. (Ecuación 9)

Page 45: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-28-

fi

RA

A

I

V

0

00

1 ++++====−−−− ………………..…………. (Ecuación 10)

Como 10 >>>>>>>>A se obtiene:

fRiI

V====−−−− 0 ……………………….……………. (Ecuación 11)

Ordenando esta última ecuación se obtiene que la tensión de salida en el

amplificador es:

fio RIV −−−−==== ……………….……………….. (Ecuación 12)

De acuerdo a lo anterior la resistencia que se necesita para convertir una

corriente de 20 mA., a una tensión de 5 volts es la siguiente:

ΩΩΩΩ======== 25020

5

mA

vfR …………………………. (Ecuación 13)

La configuración: convertidor de corriente se desarrollara utilizando el circuito

integrado LM339 ya que este posee las características que se requieren en este

proyecto.

Page 46: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-29-

2.3.6 Optoacoplador

Para tratar y procesar las señales digitales se utilizara un optoacoplador, ya que

simplemente se desea aislar el circuito de entrada de señal y el microcontrolador,

para evitar que este se dañe al ocurrir una sobrecarga. Este optoacoplador

necesitara de algunas resistencias para funcionar, la configuración de estas

resistencias y del optoacoplador se muestran en la figura 2.2.

Figura 2.2. Circuito de aislamiento.

El circuito mostrado en la figura anterior funciona de la forma siguiente:

La línea de señal de salida que genera el sensor digital se conecta a una

resistencia para reducir la corriente que circulara a través del diodo emisor de luz

interno del optoacoplador evitando que este se dañe, el pin que corresponde al

cátodo de este diodo se conectara a la línea negativa de alimentación del sensor,

esto aislara el circuito de control (microcontrolador) y el circuito de

acondicionamiento de señales, evitando que el circuito de control, comunicación y

la PC se dañen si llega a producirse una sobrecarga en la línea de entrada de

señal provocada por el sensor digital. El transistor interno del optoacoplador se

configurado como emisor común y de esta línea se tomara la señal de salida que

será conectada a alguno de los canales de entrada digital del microcontrolador.

Page 47: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-30-

Ahora se continuará con los módulos: convertidor analógico/digital, controlador y

comunicación, en los que se utilizara el microcontrolador PIC16F873A, ya que

este cuenta con un modulo interno para convertir señales analógicas en digitales y

otro para transmitir y recibir información de forma serial. La configuración y

programación de este dispositivo se realizara el siguiente capítulo, por lo que a

continuación solo se describirá el funcionamiento de manera general.

Tanto las señales digitales como analógicas (previamente acondicionadas), se

conectaran directamente al microcontrolador, el cual establecerá si la señal entrante

tendrá que ser digitalizada o no, posteriormente se almacenara y enviara hacia el

modulo de comunicación externo, a través del modulo de comunicación serial que

contiene el microcontrolador. Es importante aclarar que el modulo de

comunicación que contiene el microcontrolador, permite enviar y recibir

información de forma serial, empleando el protocolo RS232 por lo que será

necesario hacer uso de otro dispositivo que convierta y adapte las señales

establecidas por este protocolo, para que puedan ser transmitidas a través del

puerto USB. El dispositivo que se utilizara para realizar esta función es el

RS232/USB FT232L, este y otros dispositivos electrónicos, mencionados

anteriormente requerirán de algunos otros elementos, para que puedan

desempeñar correctamente sus funciones. Por lo que será necesario definir y realizar

una lista de todos los dispositivos electrónicos que serán necesarios para el diseño

y desarrollo del hardware del sistema adquisición de datos de este proyecto. Estos

dispositivos se muestran en la tabla 2.0

Page 48: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-31-

Dispositivos electrónicos No.

De Piezas

Microcontrolador PIC16F873A 1

Interface RS232/USB FT232L 1

Amplificador operacional LM339 4

Regulador LM7805 1

Convertidor de voltaje Max 232 1

Resistores de precisión de 100 kΩ a un 1⁄4 de watts 10

Resistores de precisión de 1⁄2 W 10

Cristal de cuarzo de 4Mhz 1

Capacitor de electrolítico 100µf a 16 V 1

Capacitor de 10µf a 25 V 1

Capacitor Cerámico 22 pf 6

Conector USB tipo A 1

Conector DB25 1

Leds de 50mw a 1.5 volts 2

Tabla 2.0 Dispositivos electrónicos del hardware de adquisición de datos.

La conexión de los dispositivos electrónicos que integran el hardware de

adquisición de datos, se puede observar en la figura siguiente:

Page 49: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

32

Page 50: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-33-

2.4 Desarrollo del hardware de adquisición de datos.

Antes de la fabricación del circuito impreso final se creará una placa de prueba para

comprobar que la selección de los componentes y el diseño del esquema eléctrico son

correctos. La placa de prueba se realizara montando los componentes electrónicos,

sobre una tarjeta de prueba (Protoboard), tomando en cuenta el diagrama eléctrico

mostrado en la figura 2.3. Si el diseño funciona correctamente se procederá a la

creación del circuito impreso partiendo del diagrama eléctrico. Esta tarea será

dividida en dos fases, que son:

• Diseño del circuito impreso. El diseño de las pistas del circuito impreso se

realizara con el software Eagle Win.

• Fabricación y montaje del PCB. Se imprimirá el fichero generado por el

software Eagle Win, sobre hojas para circuito impreso y se vulcanizara sobre

la tablilla fenolica, finalmente se perforara y colocaran los componentes.

En la figura 2.4, se muestra el diagrama físico de las pistas del hardware del

sistema de adquisición de datos.

Figura 2.4. Diagrama de pistas del circuito impreso.

Page 51: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-34-

Una vez que se obtuvo el hardware (observe figura 2.5) se procederá, al diseño

y desarrollo del algoritmo que será programado en el microcontrolador, para

que este pueda comunicarse con la PC y realice la función o tarea que

seleccione el usuario a través de un interface grafica(software). Las tareas y

funciones que realizara el microcontrolador serán definidas, configuradas y

programadas en el siguiente capítulo.

Figura 2.5. Prototipo de Tarjeta de Adquisición de Datos.

Page 52: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

Figura 2.6. Prototipo de Tarjeta de Adquisición de Datos con fuente de alimentación.

Figura 2.7. Prototipo de Tarjeta de Adquisición de Datos en Circuito Impreso.

Page 53: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

34

CAPITULO 3

CONFIGURACIÓN Y PROGRAMACIÓN DEL

ALGORITMO DEL MICROCONTROLADOR

Page 54: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-35-

Capitulo 3

CONFIGURACIÓN Y PROGRAMACIÓN DEL ALGORITMO DEL

MICROCONTROLADOR

3.1 Introducción

En el presente capítulo se describe el desarrollo del algoritmo que gobierna el

comportamiento y funcionamiento de la parte central de procesamiento

(Microcontrolador PIC16F873A), del sistema de adquisición de datos. Está dividido

en tres partes que son: configuración del puerto serial para transmisión y recepción

de información, conversión y almacenamiento de la señal analógica y por último,

configuración y selección de los canales de entrada.

3.2 Configuración del Puerto Serial para Transmisión y Recepción de

Información.

Actualmente la implementación de la comunicación serial entre dispositivos, con el

protocolo RS232C está desapareciendo, esto se debe principalmente a que la

velocidad de transmisión y recepción de datos, es demasiado ineficiente, si se

desea transmitir grandes cantidades de información en tiempos muy cortos. Para el

desarrollo del sistema de adquisición de datos de este proyecto, el problema anterior,

no afectara el funcionamiento y desempeño, ya que la velocidad con la que se desea

transmitir, la información hacia la computadora personal, es relativamente baja en

comparación con la velocidad máxima permitida por este protocolo. La frecuencia

de muestreo del sistema será de 5 Khz, por lo que seguiremos haciendo uso de este

protocolo omitiendo los niveles de voltaje establecidos, ya que se implementara un

dispositivo electrónico para emular la comunicación con el puerto USB, debido a que

los procesadores personales actuales no contienen un puerto serial, ya que los

grandes fabricantes de computadoras personales han adoptado el uso y distribución

del puerto USB, por sus grandes prestaciones y desempeño. Por lo tanto para

obtener las funciones y características anteriores será necesario utilizar, configurar y

Page 55: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-36-

programar el modulo interno de comunicación del microcontrolador, llamado

USART (Universal Syncronous Asyncronous Recepttion Transmision).

3.2.1 Modulo de Comunicación USART

Este modulo se caracteriza por permitir que el microcontrolador interactué y se

comunique con dispositivos externos. Esta comunicación puede ser sincronía o

asíncrona. Si la comunicación es síncrona, solo se puede recibir o transmitir

información en un tiempo(Half duplex o unidireccional, no se puede hacer ambas

tareas al mismo tiempo, ya que solo se cuenta con una sola línea, llamada DT para

la transmisión y recepción de datos .En la figura 3.0 se muestra la estructura física

de esta forma de comunicación.

Figura 3.0 Comunicación síncrona half duplex.

La comunicación asíncrona puede ser bidireccional o Full Duplex, por lo tanto

puede transmitir y recibir información al mismo tiempo, debido a que hay una línea

para transmisión TX y otra para recepción de información RX. La estructura física de

esta forma de comunicación se puede observar en la figura siguiente.

Figura 3.1 Comunicación asíncrona full duplex.

Page 56: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-37-

Debido a las características y funciones que ofrecen las dos formas de

comunicación serial anteriores se opto por implementar, la comunicación serial

asíncrona por: disponer de dos líneas separadas para transmisión y recepción de

información, ya que el dispositivo que se va a utilizar para emular el puerto

USB requiere de estas dos líneas.

El módulo Asíncrono de la USART consta de 4 módulos internos fundamentales:

• El circuito de muestreo.

• El generador de frecuencia de transmisión (Baud Rate).

• El transmisor asíncrono.

• El receptor asíncrono.

Debido a la complejidad que tienen los dos últimos dos módulos anteriores serán

mostradas las estructuras internas de estos módulos, ya que mas adelante será

necesario tener un conocimiento previo sobre estos módulos. En la figura 3.2 se

muestra la estructura del transmisor asíncrono y el la figura 3.3 se observa la

estructura del receptor asíncrono.

Figura 3.2. Estructura interna del transmisor asíncrono.

Page 57: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-38-

Fi

gura 3.3. Estructura interna del receptor asíncrono.

3.2.2 Registros de Configuración

El comportamiento del modulo interno USART, en la transmisión y recepción de

información de forma serial asíncrona, está gobernado principalmente por tres

registros:

• TXSTA. Registro de configuración de la transmisión serial.

• RSCTA. Registro de configuración de la recepción serial.

• SPBRG. Contador Programable que configura la velocidad de

transmisión.

A continuación se describirá el funcionamiento y configuración de los registros

anteriores.

Page 58: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-39-

3.2.2.1 Registro TXSTA

Este registro permite configurar la transmisión serial.

CSRC TX9 TXEN SYNC ------ BRGH TRT TX9D

Tabla 3.0 Bits del registro TXSTA.

Función ejercida por los bits de este registro:

CSRC: No se configura cuando se utiliza la comunicación asíncrona.

TX9: Habilita la transmisión de un noveno bit.

1 = selección de transmisión de 9 bits.

0 = selección de transmisión de 8 bits.

TXEN: Activa la transmisión

1 = Transmisión activada.

0 = Transmisión desactivada.

SYNC: Bit de selección del modo USART

1 = Modo síncrono.

0 = Modo asíncrono.

BRGH: Bit de selección de la velocidad de baudios.

1 = Alta velocidad.

0 = Baja velocidad.

TRMT: Bit de estado del registro de desplazamiento de transmisión.

1 = TSR vacío.

0 = TSR lleno.

TX9D: Bit 9 del dato a transmitir (puede ser el noveno bit de paridad).

Page 59: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-40-

3.2.2.2 Registro RSCTA

Este registro permite configurar la recepción de datos de forma serial.

SPEN RX9 SREN CREN ADDEN FERR OERR RX9D

Tabla 3.1 Bits del registro RSCTA.

Función ejercida por los bits de este registro:

SPEN: Habilita el puerto serie.

1= Puerto serie habilitado.

0= Puerto serie deshabilitado

RX9: Habilita el 9 bit de recepción

1 = Selecciona recepción de 9 bits.

0 = Selecciona recepción de 8 bits.

SREN: No se configura cuando se utiliza la comunicación asíncrona.

CREN: Configura la recepción continua.

1 = Habilita la recepción.

0 = Deshabilita la recepción.

ADDEN: Detección de dirección. Modo asíncrono con 9 bits (RX9 =1).

1 = Activa la detección de dirección y descarga el buffer de recepción.

0 = Desactiva la detección, todos los bits son recibidos y el noveno puede ser

utilizado como bit de paridad.

FERR: Bit de error de trama.

1= Error de trama.

0 = No hay error.

Page 60: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-41-

OERR: Bit de sobrepaso.

1 = Error de sobrepaso.

0 = No hay error de sobrepaso.

RX9D: Bit 9 del dato recibido (puede ser el bit de paridad).

3.2.2.3 Registro SPBRG

SPBRG I I I I I I I I

Tabla 3.2 Bits del registro SPBRG.

Este registro es el encargado de establecer la velocidad con la que se va a

transmitir y recibir la información, para esto es necesario utilizar el generador de

baudios, el cual será descrito en el siguiente párrafo.

3.2.2.3.1 Generador de Baudios.

En el protocolo asíncrono RS232C, la frecuencia en baudios (bits por segundo) a la

que se realiza la transferencia se debe efectuar a un valor normalizado: 330, 600,

1200, 2400, 4800, 9600, 19200, 38400, etc. Para generar esta frecuencia, el USART

dispone del generador de frecuencia en baudios, cuyo valor es controlado por el

contenido grabado en el registro SPBRG. De tal forma que el valor que se tiene que

almacenar, en el registro SPBRG para obtener la frecuencia de transmisión deseada,

se calcula de acuerdo a la siguiente tabla:

SYNC BRG=0(Baja Velocidad) BRG=1(Alta Velocidad)

0 (modo asíncrono) Baud rate= Fosc/(64(X +1)) Baud rate= Fosc/(64(X+1))

1 (modo síncrono) Baud rate= Fosc/(4(X +1)) -----------------------------

Tabla 3.3. Configuración de la frecuencia de transmisión

Page 61: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-42-

Como puede observase en la tabla anterior, además del valor X cargado en el

registro SPBRG, la frecuencia del generador depende del bit BRGH del registro

TXSTA. En el caso de que BRGH sea 0 se trabaja en baja velocidad y si BRGH es 1

se trabaja en alta velocidad. Según este bit se obtendrá el valor de una constante K

necesaria en la determinación de la frecuencia de funcionamiento. A continuación se

calculara el valor que será almacenado en el registro SPBRG:

Frecuencia en Baudios = FOSC / ( K * (X + 1) )……(Ecuación 1)

X es el valor cargado en el registro SPBRG (valor expresado en decimal y que debe

ser un número entero entre 0 y 255).

Si BRGH = 0, baja velocidad y K = 64.

Si BRGH = 1, baja velocidad y K = 16.

Despejando X de la ecuación 1 se obtiene:

X = (FOSC / Frecuencia / K ) - 1. =Valor del registro SPBRG……..(Ecuación 2)

La frecuencia que se empleara para transmitir y recibir datos es de 9600

Baudios/segundo y se trabajara a baja velocidad por lo tanto, el valor que se

cargara en el registro SPBRG es:

( )116

4/9600

+=

x

Mhzsegbaudios

250416.25116*9600

4 ≅=−= MhzX

Por lo tanto el dato que se almacenara en el registro SPBR es 25, el cual

permitirá transmitir y recibir datos a una frecuencia de 9600 bits por segundo.

Page 62: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-43-

3.2.3 Transmisor asíncrono.

El dato que se debe transmitir a través de la USART, se deposita en el registro

TXREG y automáticamente se traspasa al registro de desplazamiento TSR, el cual

finalmente envía el dato al exterior del microcontrolador a la frecuencia establecida

por el programador.

En este proyecto el transmisor asíncrono será utilizado para enviar hacia la PC, los

datos obtenidos de la lectura de las señales analógicas y digitales enviadas por los

sensores, a través de los canales analógicos y digitales del microcontrolador . Por lo

tanto para obtener esta función será necesario configurar los registros : TXSTA,

RCSTA, SPBRG Y TXREG tomando en cuenta los siguientes pasos y

condiciones:

• Configurar la linea Rc7/Rx para que trabaje como salida digital, ya que por

esta línea serán enviados los datos de forma serial hacia la PC.

• El modulo USART deberá trabajar como transmisor asíncrono de 8 bits.

• Establecer una frecuencia de transmisión de datos igual a 9600 bits/segundo.

• Después de haber configurado las condiciones y pasos anteriores será

necesario almacenar en el registro TXREG, el dato que se desea transmitir

hacia la PC e inmediatamente iniciara la transmisión y una vez que esta haya

finalizado podrá desactivarse el transmisor o nuevamente podrá enviarse

otro dato.

Page 63: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-44-

En la figura 3.4 se muestra el diagrama de flujo del procedimiento que se realizara

para configurar y programar el transmisor asíncrono.

Figura 3.4 Procedimiento de configuración y programación del transmisor serial.

Page 64: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-45-

En base a lo anterior y con el empleo de lenguaje ensamblador, se desarrollara la

configuración final de los registros asociados con el transmisor serial.

bcf STATUS, RP0 Banco 0 movlw b’00000000’ movwf TRISC Configura la línea Rc6 como salida. bsf STATUS, RP0 Banco 1 movlw b’00011001’

movwf SPBRG Frecuencia de transmisión 9600 baudios/segundo.

bcf STATUS, RP0 Banco 0. movlw b'10000000' movwf RCSTA Habilita el puerto serie. bsf STATUS, RP0 Banco 1. movlw b'00100100'

movwf TXSTA

Habilita: ocho bits de datos para transmisión, modulo asíncrono, alta velocidad del generador de baudios y habilita el modulo para la transmisión.

bcf STATUS,RP0 Banco 0 movf DATO5,W

movwf TXREG Carga el dato que va ser transmitido e inicia la transmisión.

bsf STATUS, RP0 Banco 1 Esperar btfss TXSTA,TRMT Revisa si ha concluido la transmisión.

goto Esperar No ha terminado la transmisión y regresa nuevamente a verificar si ya concluyo

bcf. TXSTA, TXEN Deshabilita la transmisión.

El código ensamblador completo que se obtuvo se muestra en el apéndice B.

Page 65: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-46-

3.2.4 Receptor asíncrono.

A través del receptor asíncrono del modulo USART del microcontrolador serán

recibidos los datos que envíe la PC, para que sean almacenados y procesados por el

microcontrolador para determinar y activar el canal del microcontrolador que se

desea monitorear. En esta parte del capitulo solo será descrita la forma de recibir los

datos del modulo USART y mas adelante se tratara y describirá el proceso para

determinar y activar las tarea y funciones asignadas a cada uno de los canales del

microcontrolador, por lo tanto iniciaremos con la descripción del funcionamiento

del receptor asíncrono.

Los bits que componen el dato enviado desde el exterior del microcontrolador se

reciben en serie por la línea RC7/Rx y se almacenan secuencialmente en el registro

de desplazamiento RSR, el cual funciona a una frecuencia 16 veces mas rápido

que la de trabajo. Una vez que se han recibido del exterior (PC) todos los bits,

este registro los traslada al registro RCREG donde quedaran disponibles para su

posterior procesamiento.

Los registros que gobiernan el comportamiento y funcionamiento del receptor

asíncrono del modulo USART son: RSCTA, SPBRG y RCREG. La configuración de

estos y otros registros asociados a este modulo, para que el receptor asíncrono

realice la recepción de datos de 8 bits, estará basada en el siguiente procedimiento:

• Configurar la línea Rc6/Rx para que trabaje como entrada digital, ya que por

esta línea se recibirán los datos de forma serial enviados por la PC.

• Establecer una frecuencia de recepción de datos igual a 9600 bits/segundo.

• Limpiar el bit de indicación de recepción de datos.

• Habilitar la interrupción asociada el receptor asíncrono del modulo

USART.

Page 66: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-47-

• Configurar el modulo USART para que trabaje de forma asíncrona, y

además que solo reciba 8 bits.

• Habilitar el modulo para recibir datos.

• Al producirse la interrupción, por la recepción de datos, se guardara el

dato en otro registro, para que este quede disponible para su posterior

procesamiento y no sea borrado al recibir un nuevo dato..

• Limpiar el bit que produjo la interrupción por recepción de datos para que

esta nuevamente se pueda producir al recibir otro dato.

Page 67: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-48-

En la figura 3.5 se muestra el diagrama de flujo del procedimiento que se realizara

para configurar y programar el receptor asíncrono.

Figura 3.5. Procedimiento de configuración y programación del Receptor Serial.

Page 68: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-49-

En base a lo anterior y con el empleo de lenguaje ensamblador, se desarrollara la

configuración final de los registros asociados con el receptor serial.

bcf STATUS, RP0 Banco 0 movlw b’10000000’ movwf TRISC Configura la línea Rc7 como entrada. bsf STATUS, RP0 Banco 1 movlw b’00011001’ movwf SPBRG Frecuencia de transmisión igual a 9600 baudios/segundo. bcf STATUS, RP0 Banco 0 movlw b’00000000’

movwf PIR1 Limpia las banderas de indicación de interrupción

movlw b’11000000’ movwf INTCON Habilita las interrupciones globales. bsf STATUS, RP0 Banco 1 movlw b’00100000’ movwf PIE1 Habilita la interrupción por recepción de Dato. bcf STATUS, RP0 Banco 0. movlw b'10010000' movwf RCSTA Habilita el puerto serie y la recepción de datos. Esperar1 goto Esperar1

El programa principal termina en esta parte y espera hasta que se produzca la interrupción. La rutina de interrupción almacenara el dato recibido en otro registro y además limpiara el bit que produjo la interrupción, por lo que la configuración de los registros quedara de la siguiente forma:

movf RCREG,W movwf DATO_REC Guarda el dato recibido en otro registro bcf PIR1, RCIF Limpia el bit que produjo la interrupción

El código ensamblador completo que se obtuvo se muestra en el apéndice B.

Page 69: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-50-

3.3 Conversión y almacenamiento de la señal analógica/digital.

El modulo convertidor de señales analógicas a digitales (ADC) del

microcontrolador será el encargado de convertir y cuantificar las señales analógicas,

presentes en alguno de los canales del microcontrolador que fueron generadas por

alguno de los sensores analógicos.

Actualmente la mayoría de los sensores utilizados, para realizar la medición de

alguna variable física como: flujo, nivel, presión y temperatura, se valen de señales

eléctricas- analógicas, para transmitir a otros dispositivos el cambio que han

detectado. Debido a la naturaleza de estas señales, no pueden ser tratadas

directamente por un procesador o controlador, ya que estos trabajan con señales

digitales por lo que en estas condiciones difícilmente se podría llevar a cabo la

comunicación entre estos dos dispositivos. Para lograr que estos dispositivos

puedan comunicarse es necesario acoplar y convertir las señales analógicas a

digitales, con ayuda de amplificadores operaciones. El acoplamiento de las señales se

explico en el capitulo II, por lo tanto en esta parte solo se explicara y tratara la

conversión de señales analógicas a digitales, para esto se consideraran algunos

conceptos y definiciones sobre señales.

3.3.1 Tipos de señales

Se consideran como señales a las variaciones a lo largo del tiempo de las entradas o

salidas de un sistema. Obviamente, estas señales pueden ser de distinta naturaleza, y

por tanto sus unidades físicas pueden ser diversas. Según cómo sea la variación de

estas señales, pueden ser clasificadas dentro de dos grandes grupos: señales

analógicas y señales discretas (digitales).

3.3.1.1 Señales analógicas: Son aquellas cuya variación, tanto en amplitud como a lo

largo del tiempo, es continua. Es decir, pueden tomar cualquier valor real, en

cualquier instante de tiempo.

Page 70: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-51-

Figura 3.6. Señal analógica.

3.3.1.2 Señales discretas: Este tipo de señales no tiene una variación continua como

las anteriores, sino que su evolución se rige por un determinado conjunto finito de

valores posibles. Según dónde se tome este conjunto de valores, podrá hacerse la

distinción entre señales discretas en amplitud y las señales discretas en tiempo.

• Señales discretas en tiempo (figura 3.7): Sólo tienen valor en instantes de

tiempo predeterminados y aunque su amplitud puede ser cualquier valor

dentro del rango de los reales, el valor de la señal entre dos instantes de

tiempo consecutivos no está definido.

Figura 3.7 Señal Discreta en Tiempo.

• Señales discretas en amplitud (figura 3.8): En este caso, la señal toma valor en

cualquier instante de tiempo, pero estos valores de amplitud pueden

encontrarse entre los definidos en el conjunto predeterminado.

Figura 3.8. Señal discreta en amplitud.

Page 71: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-52-

• Señales discretas en amplitud y tiempo (figura 3.9): Son una mezcla de los

dos tipos anteriores, es decir, la señal sólo podrá tomar valores

predeterminados en instantes de tiempo predeterminados.

Figura 3.9. Señal discreta en amplitud y tiempo.

El interés de digitalizar una señal puede surgir por varios motivos, por ejemplo:

almacenarla en un dispositivos, transmitirla a un lugar remoto, procesarla y

analizarla para tomar una acción de control si es necesario para tratar de

corregir o modificar el comportamiento de dicha señal.

3.3.2 Digitalización de señales analógicas

La digitalización o conversión analógica-digital (conversión A/D) consiste

básicamente en realizar de forma periódica medidas de la amplitud de la señal y

traducirlas a un lenguaje numérico. La conversión analógico/digital también es

conocida por el acrónimo inglés ADC (analogic to digital conversion).

En esta definición están patentes los cuatro procesos que intervienen en la conversión

analógica-digital:

• Muestreo: El muestreo (en inglés, sampling) consiste en tomar muestras

periódicas de la amplitud de onda. La velocidad con que se toman esta

muestra, es decir, el número de muestras por segundo, es lo que se conoce

como frecuencia de muestreo.

Page 72: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-53-

• Retención (En inglés, Hold): Las muestras tomadas han de ser retenidas

(retención) por un circuito de retención (Hold), el tiempo suficiente para

permitir evaluar su nivel (cuantificación). Desde el punto de vista matemático

este proceso no se contempla ya que se trata de un recurso técnico debido a

limitaciones prácticas y carece, por tanto, de modelo matemático.

• Cuantificación: En el proceso de cuantificación se mide el nivel de voltaje de

cada una de las muestras. Consiste en asignar un margen de valor de una señal

analizada a un único nivel de salida. Incluso en su versión ideal, añade, como

resultado, una señal indeseada a la señal de entrada: el ruido de cuantificación.

• Codificación: La codificación consiste en traducir los valores obtenidos

durante la cuantificación al código binario. Hay que tener presente que el

código binario es el más utilizado, pero también existen otros tipos de códigos

que también son utilizados.

En base a la importancia que tiene el muestreo y la cuantificación de un señal

estos temas se abordaran un poco mas.

3.3.2.1 Muestreo de señales analógicas

El teorema demuestra que la reconstrucción exacta de una señal periódica continua en

banda base a partir de sus muestras es matemáticamente posible si la señal está

limitada en banda y la tasa de muestreo es superior al doble de su ancho de banda.

Dicho de otro modo, la información completa de la señal analógica original que

cumple el criterio anterior está descrita por la serie total de muestras que resultaron

del proceso de muestreo. No hay nada, por tanto, de la evolución de la señal entre

muestras que no esté perfectamente definido por la serie total de muestras.

Page 73: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-54-

Si la frecuencia más alta contenida en una señal analógica es:

)(txa es Bf =max …………………….(Ecuación 3)

Y la señal se muestrea a una tasa

Bff s 22 max ≡> ……..………………… (Ecuación 4)

Entonces )(txa se puede recuperar totalmente a partir de sus muestras mediante la

siguiente función de interpolación:

Bt

Bttg

ππ

2

2sin)( = …………..………………(Ecuación 5)

Así, )(txa se puede expresar como:

Σ=−= ss

an

af

ntg

f

nxtx

α

α)( ……………………(Ecuación 6)

Donde:

)()( nxnTxf

nx a

sa ≡=

……………………(Ecuación 7)

Son las muestras de:

)(txa ………………………….......(Ecuación 8)

Hay que notar que el concepto de ancho de banda no necesariamente es sinónimo del

valor de la frecuencia más alta en la señal de interés. A las señales para las cuales esto

sí es cierto se les llama señales de banda base, y no todas las señales comparten tal

característica (por ejemplo, las ondas de radio en frecuencia modulada).

Page 74: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-55-

3.3.2.2 Cuantificación de la señal analógica.

El proceso de cuantificación es uno de los pasos que se sigue para lograr la

digitalización de una señal analógica. Básicamente, la cuantificación lo que hace es

convertir una sucesión de muestras de amplitud continua en una sucesión de valores

discretos preestablecidos según el código utilizado.

Durante el proceso de cuantificación se mide el nivel de tensión de cada una de las

muestras, obtenidas en el proceso de muestreo, y se les atribuye a un valor finito

(discreto) de amplitud, seleccionado por aproximación dentro de un margen de

niveles previamente fijado. Los valores preestablecidos para ajustar la cuantificación

se eligen en función de la propia resolución que utilice el código empleado durante la

codificación. Si el nivel obtenido no coincide exactamente con ninguno, se toma

como valor el inferior más próximo.

En este momento, la señal analógica (que puede tomar cualquier valor) se convierte

en una señal digital, ya que los valores que están preestablecidos, son finitos. No

obstante, todavía no se traduce al sistema binario. La señal ha quedado representada

por un valor finito que durante la codificación (siguiente proceso de la conversión

analógico digital) será cuando se transforme en una sucesión de ceros y unos.

3.3.2.2.1 Tipos de cuantificación

Para minimizar los efectos negativos del error de cuantificación, se utilizan distintas

técnicas de cuantificación:

• Cuantificación uniforme o lineal. Se utiliza un bit constante (rate). A cada

muestra se le asigna el valor inferior más próximo, independientemente de lo

que ocurra con las muestras adyacentes.

• Cuantificación logarítmica. Se hace pasar la señal por un compresor

logarítmico antes de la cuantificación. Como en la señal resultante la amplitud

del voltaje sufre variaciones menos abruptas la posibilidad de que se produzca

Page 75: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-56-

un ruido de cuantificación grande disminuye. Antes de reproducir la señal

digital, esta tendrá que pasa por un expansor.

• Cuantificación vectorial. En lugar de cuantificar las muestras obtenidas

individualmente, se cuantifica por bloques de muestras. Cada bloque de

muestras será tratado como si se tratara de un vector, de ahí, el nombre de esta

tipología.

3.3.3 Modulo de Conversión Analógica/Digital (ADC) del Microcontrolador.

En base a lo anterior se tomo la decisión de utilizar el modulo interno

A/D(convertidor analógico/digital) del microcontrolador PIC16F873A, ya que este

puede trabajar a una frecuencia máxima de 52 Khz, lo cual permite que obtener una

frecuencia de muestreo buena y aceptable para las señales que se desean convertir,

además cuenta con 5 canales de entrada, utiliza el método de aproximaciones

sucesivas para la conversión , el voltaje de referencia mínimo permitido es de 2 volts

y el máximo 5 volts, el dato generado de la conversión tiene una resolución de 10

bits, y aunque en el mercado existen otros microcontroladores con una resolución

mayor no se decidió implementar alguno de ellos ya que los fines perseguidos por

este trabajo se alcanzan con este dispositivo.

3.3.3.1 Registros de Configuración

El comportamiento y funcionamiento del modulo convertidor analógico/digital, del

microcontrolador PIC16F873A esta gobernado por los registros: ADRESH,

ADRESL, ADCON0 y ADCON1, estos registros tienen que ser configurados de

acuerdo a las necesidades del programador. A continuación se describirá el

funcionamiento y características de los registros anteriores.

Page 76: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-57-

3.3.3.1.1 Registros ADRESH y ADRESL

Los registros ADRESH y ADRESL son de 8 bits cada uno y almacenan el resultado

de la conversión analógico/digital, que es de 10 bits, por lo que 6 bits no serán

utilizados, los cuales almacenaran un cero.

3.3.3.1.2 Registro ADCON0

Este contiene los bits con los cuales se configura la frecuencia de operación y canal

de entrada. En la tabla 3.4 se muestran los bits que componen este registro.

ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE# - ADON

Tabla 3.4. Bits del registro ADCON0.

Función ejercida por los bits de este registro:

• ADCS1 y ADCS0: Establecen la frecuencia de reloj utilizada para la

conversión analógica/digital como muestra la siguiente tabla:

ADCS1 ADCS0 Frecuencia

0 0 Fosc/2

0 1 Fosc/8

1 0 Fosc/32

1 1 Fosc (procede del oscilador interno)

Tabla 3.5. Frecuencia de trabajo del convertidor.

Para establecer la frecuencia de trabajo es necesario tomar en cuenta que el

tiempo mínimo requerido por el microcontrolador para realizar la conversión

analógico/digital, es de 10TAD, pero es necesario esperar a que el capacitor se

descargue completamente para iniciar una nueva conversión por lo que tomaremos

un tiempo mínimo de 12 TAD.

Page 77: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-58-

Donde TAD nunca debe ser menor a 1.6 microsegundos, y se selecciona por

software, a través de los bits ADCS1 y ADCS0 mostrados en la siguiente tabla.

ADCS1 ADCS0 Tosc

0 0 2 Tosc

0 1 8 Tosc

1 0 32 Tosc

1 1 FRC

Tabla 3.6 Tiempo de conversión.

• CHS2, CHS1 y CHS0: Permiten seleccionar el canal de entrada por donde se

introduce la señal analógica.

CHS2 CHS1 CHS0 CANAL

0 0 0 Canal 0 (RA0)

0 0 1 Canal 1 (RA1)

0 1 0 Canal 2 (RA2)

0 1 1 Canal 3 (RA3)

1 0 0 Canal 4 (RA4)

1 0 1 No accesible

1 1 0 No accesible

1 1 1 No accesible

Tabla 3.7. Selección de canal.

• GO/DONE#: Indica el estado actual de la conversión analógico/digital, es

decir cuando este bit tiene valor de 1 indica que aun se esta realizando la

operación de conversión y cuando toma el valor de 0 indica que ha finalizado

la conversión.

• ADON: Activa o inhibe el funcionamiento del convertidor analógico/digital.

Page 78: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-59-

3.3.3.1.3 Registro ADCN1

Este registro permite configurar las líneas y canales de entrada del convertidor

analógico/digital.

ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0

Tabla 3.8. Bits del registro ADCON1.

Función ejercida por los bits de este registro:

• ADFM: Permite seleccionar el formato del resultado de la conversión

analógico/digital, es decir si tiene valor de 1, es resultado esta justificado en

el registro ADRESH, por lo que sus 6 bits de mas peso tienen un valor de 0 y

si tiene un valor de 0 la justificación se realiza sobre el registro ADRESL,

quedando los 6 bits de menos peso con un valor de 0. En la siguiente figura

se muestran las dos formas posibles de alineamiento del resultado.

Figura 3.10. Alineamiento el resultado de conversión.

• PCFG3, PCFG2, PCFG1 y PCFG0: Configuran los pines de entrada al

convertidor analógico/digital, ya sea como entradas analógicas o digitales, de

acuerdo con la siguiente tabla.

Page 79: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-60-

Tabla 3.9. Configuración de los canales de entrada analógica y digital.

A continuación se describirán las condiciones y pasos que serán considerados

para configurar y programar el convertidor de señales analógicas/digitales del

microcontrolador.

• Configurar las líneas o pines que actuaran como: entradas analógicas y

digitales.

• Selección de frecuencia con la cual trabajara el convertidor analógico/digital

tomando en cuenta que el tiempo mínimo debe ser de 12TAD.

• Seleccionar el canal del que se desea adquirir la señal analógica.

• Activar el modulo convertidor analógico/digital.

• Tiempo de espera suficiente para leer la señal analógica entrante.

• Iniciar la conversión analógico/digital.

• Tiempo de espera suficiente para completar la conversión de la señal

analógica.

• Leer el resultado en los 10 bits validos de los registros ADRESH y

ADRESL.

• Limpiar el bit que indica que la conversión analógico/digital ha finalizado.

• Desactivar el modulo de conversión analógico/digital.

Page 80: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-61-

En la figura 3.11 se muestra el diagrama de flujo del procedimiento que se

realizara para configurar y programar el convertidor analógico/digital.

Figura 3.11. Procedimiento de configuración y programación del convertidor analógico/digital.

Page 81: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-62-

En base a las condiciones anteriores y con el empleo de lenguaje ensamblador, se

desarrollara la configuración final de los registros asociados al convertidor

analógico/digital del microcontrolador.

bsf STATUS, RP0 Selección del banco 1. movlw b’00000111’ movwf OPTION_REG Activación y configuración del TMR0. movlw b’00000000’

movwf ADCON1 Establece los cinco canales del puerto A para trabajar como entradas analógicas

bcf STATUS, RP0 Selección del Banco 0 movlw b’01000001’

movwf ADCON0 Establece la frecuencia de trabajo, selecciona el canal 0 y además habilita el modulo convertidor analógico/digital.

bsf ADCON0,2 Inicia la conversión de la señal analógica presente en el canal analógico 0

Esperar btfsc ADCON0,2

Revisa si ha concluido la conversión

goto Esperar No ha terminado la conversión y salta a la instrucción anterior para verificar nuevamente si ha concluido la conversión

movf ADRESH,W Guarda los 8 bits de mayor peso del resultado de la conversión.

bsf STATUS, RP0 Selección del banco 1.

movf ADRESl,W Guarda los 2 bits restantes de menor peso del resultado de la conversión.

bcf PIR1, ADIF Limpia el bit que indica el final de la conversión analógica/digital

El código ensamblador completo que se obtuvo se muestra en el apéndice B.

Page 82: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-63-

3.4 Configuración y selección de los canales de entrada del microcontrolador

Esta parte del algoritmo permitirá: configurar la forma en la que trabajara cada uno

de los canales del microcontrolador, seleccionara y activara cualquier canal

(analógico y digital) del microcontrolador, en base al dato que envié la PC hacia el

microcontrolador a través del receptor asíncrono del modulo USART.

3.4.1 Puertos disponibles en el microcontrolador.

El microcontrolador PIC16f873A cuenta con tres puertos: Puerto A, Puerto B

Puerto C. Estos puertos son totalmente programables, es decir, sus líneas pueden ser

configuradas para trabajar como entradas o como salidas a criterio del programador.

A continuación se describirá el funcionamiento y configuración de cada uno de

los puertos anteriores.

3.4.1.1 El Puerto A

Es un puerto analógico/ digital de seis bits, esto significa que puede aceptar señales

analógicas y digitales por cada uno de sus canales, el funcionamiento de este

puerto depende de la configuración de los registros: registro de datos PORTA,

registro de dirección de datos TRISA y ADCON. A continuación se describirá el

funcionamiento y características de los registros anteriores.

• PORTA: Este es el registro de estado del Puerto A. En la siguiente tabla se

muestran los bits que componen este registro.

---- ---- RA5 RA4 RA3 RA2 RA1 RA0

Tabla 3.10 Bits disponibles en el registro PORTA.

Page 83: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-64-

• TRISA: Cada bit de este registro configura la dirección en que fluye la

Información del canal correspondiente al puerto A. Es decir permite

establecer si el canal o pin del puerto A trabajara como entrada o como

salida. del Puerto A. Esto se obtiene almacenando un “1” en un bit del

registro TRISC para que este quede configurado como canal entrada y

almacenado un “0” se configura el canal correspondiente como salida

• ADCON1: Los canales RA0, RA1, RA2, RA3 y RA5 están multiplexados

con las entradas analógicas AN0, AN1, AN2, AN3 y AN4, de manera que

antes de utilizarlas se deben configurar para que trabajen como entradas

analógicas o como entradas y salidas digitales.

En la figura 3.12 se muestra la estructura interna de los canales del puerto A.

Figura

3.12. Estructura interna del puerto A.

Page 84: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-65-

3.4.1.2 Puerto B.

El puerto B es un puerto digital de 8 bits, todos sus canales son bidireccionales y el

funcionamiento de este, depende de tres registros: PORTB, TRISB y OPTION_REG.

A continuación se describirá el funcionamiento y las características de los tres

registros anteriores.

• PORTB: Los ocho bits que contiene reflejan directamente el estado de las

ocho canales del puerto B: RB0, RB1, RB2, RB3, RB4, RB5, RB6 y RB7.

• TRISB: Registro de control de dirección de los canales del puerto B.

almacenando un “1” en un bit del registro TRISC se configura el canal

correspondiente como entrada y almacenado un “0” se configura el canal

correspondiente como salida.

• OPTION_REG: El bit 7 de este registro, denominado RBPU es usado para

conectar/desconectar una resistencia “pull-up” a cada canal del puerto B.

Poniendo un 0 en este bit todas las resistencias se conectan. Para desconectar

las resistencias “pull-up” se debe poner este bit en 1.

Los canales RB4, RB5, RB6 y RB7, tienen la capacidad de generar una solicitud de

interrupción a la CPU cuando están configuradas como entradas. El estado de estos es

comparado con el último estado que tenían durante la última lectura a PORTB. Los

bits que indican que hay una diferencia entre estos valores están conectados a una

puerta OR cuya salida activa el bit RBIF del registro INTCON solicitando con esto

una interrupción. En la figura 3.13 se muestra la estructura interna de este puerto.

Page 85: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-66-

Figura 3.13. Estructura interna del puerto B.

3.4.1.3 El puerto C.

El puerto C consta de 8 canales bidireccionales y el funcionamiento de este depende

de dos registros, los cuales tendrán que ser configurados de acuerdo a las necesidades

del programador. A continuación serán descritos los dos registros de los cuales

depende este puerto.

• PORTC: Es el registro de datos cuyos 8 bits RC7, RC6, RC5, RC4, RC3,

RC2, RC1 y RC0 reflejan directamente el valor lógico de las líneas físicas del

puerto C.

• TRISC: Registro de control de dirección de los canales del puerto C.

Poniendo un 1 en un bit del registro TRISC se configura el canal correspondiente

como entrada y poniendo un 0 se configura el canal correspondiente como salida.

Los canales del puerto C se encuentran multiplexados con varias líneas controladas

por otros periféricos, cuando se habilita la línea del periférico respectivo puede ser

Page 86: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-67-

ignorada la configuración de TRISC, de hecho, algunos periféricos configuran la

línea como salida mientras que otros la configuran como entrada. En la tabla 3.11 se

resumen los canales del puerto C y los periféricos con los que están multiplexados.

Nombre Función multiplexada

RC0/T1OSO/T1CKI Salida oscilatoria del Timer1/reloj de entrada del Timer 1

RC1/T1OSI/CCP2 Entrada oscilatoria del Timer1/entrada de captura2 o salida

de comparación2 o salida PWM2

RC2/CCP1 Entrada de captura1 o salida de comparación1 o salida

PWM1

RC3/SCK/SCL Reloj para los modos de comunicación serie síncrona SPI e

I2C

RC4/SDI/SDA Dato de entrada (en modo SPI)/ Dato de entrada-salida

(modo I2C).

RC5/SDO Dato de salida (en modo SPI)

RC6/TX/CK Línea de transmisión asíncrona de la USART/reloj síncrono

Tabla 3.11 Canales y periféricos asociados al puerto C.

3.4.2 Configuración de los canales de entrada y salida

El numero total de canales de entrada y salida que se utilizaran en este proyecto,

para la comunicación, monitoreo de señales externas y activación del

microcontrolador será de 16, de los cuales cinco serán analógicos, en estos se

conectaran las señales externas procedentes de los sensores analógicos siempre y

cuando estén dentro de los limites de 0 a 5 volts, los canales digitales utilizados serán

once de los cuales cinco se emplearán para recibir señales de sensores digitales,

dos se emplearan para la comunicación del microcontrolador con la PC, uno para

activar el microcontrolador, otro para el interruptor de paro emergente y las

restantes se emplearan para activar leds para indicar que la tarjeta se esta

activada y otro para indicar que el sistema estableció comunicación con la PC.

Page 87: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-68-

En la tabla 3.12 se muestra el número y tipo de canal (analógico o digital) que se

le asignara a cada uno de los puertos del microcontrolador.

Canal Puerto Entrada/salida Tipo De Canal

C1 PA0 Entrada Analógico

C2 PA1 Entrada Analógico

C3 PA2 Entrada Analógico

PA3 Entrada Voltaje de Referencia Analógico

C4 PA4 Entrada Analógico

PB0 Entrada Interrupción Emergente

C5 PB1 Entrada Digital

C6 PB2 Entrada Digital

C7 PB3 Entrada Digital

C8 PB4 Entrada Digital

PB5 Entrada Digital

PB6 Salida Digital Led indicador de tarjeta encendida

PB7 Salida Digital Led indicador de comunicación activa

C9 PC0 Salida Digital

C10 PC1 Salida Digital

C11 PC2 Salida Digital

C12 PC3 Salida Digital

C13 PC4 Salida Digital

C14 PC5 Salida Digital

PC6 Salida Digital Transmisión serial de información.

PC7 Salida Digital Recepción serial de información.

Tabla 3.12. Canales analógicos y digitales del microcontrolador

Page 88: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-69-

De acuerdo al número de canales de entrada y salida mostrados en la tabla anterior,

será necesario utilizar los tres puertos disponibles en el microcontrolador, por lo

que la configuración final en lenguaje ensamblador de los registros asociados a los

puertos, quedara de la siguiente forma:

movlw b’00000011’

movwf ADCON1 Establecen cinco líneas del puerto A, como entradas

analógicas de las cuales una se utilizara como voltaje

entrada de referencia.

movlw b’00111111’

movwf TRISB Establecen dos líneas de del puerto B para trabajar

como salidas y seis como entradas digitales.

movlw b’10000000’

movwf TRISC Establecen las líneas de transmisión y recepción de

datos y las restantes trabajaran como salidas.

3.4.3. Selección del canal de entrada (analógico y digital).

La selección del canal de entrada de señales al microcontrolador, estará basada en

los datos recibidos del exterior(PC), por lo cual se establecerá un numero

hexadecimal y un caracter que identificara a cada uno de estos canales. Estos datos

serán recibidos a través del modulo de comunicación serial (USART) del

microcontrolador, se almacenaran y procesaran para determinar cuál es el canal

que será activado.

El número y caracter asociado a cada uno de los canales, se muestra en la

siguiente tabla.

Page 89: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-70-

Canal Función Entrada/salida Caracter Num. Hexadecimal

C1 Analógica Entrada A 0x41

C2 Analógica Entrada B 0x42

C3 Analógica Entrada C 0x43

C4 Analógica Entrada D 0x44

C5 Digital Entrada E 0x45

C6 Digital Entrada F 0x46

C7 Digital Entrada G 0x47

C8 Digital Entrada H 0x48

C9 Digital Entrada I 0x49

C10 Digital Entrada J 0x4A

C11 Digital Salida K 0x4B

C12 Digital Salida L 0x4C

C13 Digital Salida M 0x4D

C14 Digital Salida N 0x4E

Tabla 3.13 Carácter y número asociado a los canales del microcontrolador

El proceso que se llevara a cabo para la selección del canal es el siguiente:

1. Esperar y leer el primer dato que enviara la PC a través del receptor

asíncrono del modulo USART.

2. Comparar el primer dato que se recibió, con un dato almacenado en el

microcontrolador y si los datos son iguales se habilitara la selección de

alguno de los canales, de lo contrario regresara al paso anterior.

3. Esperar, leer y comparar el segundo dato que enviara la PC a través del

modulo USART, con el dato que se le asigno a cada uno de los canales, para

establecer que canal se utilizara.

4. Poner en funcionamiento la tarea asignada al canal seleccionado.

Page 90: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-71-

El proceso anterior se presenta de manera grafica en la siguiente figura:

Figura 3.14. Proceso para la selección del canal de entrada de señales.

El código ensamblador completo que se obtuvo se muestra en el apéndice B. Éste código será grabado en el microcontrolador PIC16F873A con el grabador de Pic’s JDM a través del software IC-Prog.

Page 91: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

CAPITULO 4

DISEÑO Y DESARROLLO DE LA INTERFACE

GRAFICA DE ADQUISICIÓN DE DATOS.

(SOFTWARE)

Page 92: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-72-

Capitulo 4

DISEÑO Y DESARROLLO DE LA INTERFACE GRAFICA DE

ADQUISICIÓN DE DATOS. ( SOFTWARE)

4.1 Introducción

El presente capitulo muestra el diseño y desarrollo del software mediante el cual el

usuario podrá monitorear e interactuar con el hardware del sistema adquisición de

datos.

4.2 Software de monitoreo

Para la elaboración de un excelente sistema de adquisición de datos que cumpla

con todas las exigencias, desde su versatilidad de operación hasta la viabilidad

económica, se deben contemplar todos y cada uno de los equipos de control que

interactuaran con el sistema de visualización de la o las maquinas, así como

también el software que intervendrá como herramienta compatible con los equipos

de instalación de campo. La figura 4.0 muestra la forma básica y general de cómo

fluye la información en un sistema automático visualizado.

Figura 4.0. Sistema básico de monitoreo.

Page 93: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-73-

Al estudiar profundamente la configuración de los sistemas de adquisición de datos

modernos (DAQ: Data Acquisition System), basados en equipos PC (Personal

Computer), se aprecia que una de las partes que componen dichos sistemas, es el

software quien controla y administra los recursos del computador, presenta los datos,

y participa en el análisis.

Analizado de este modo, el software es un tópico muy importante que requiere de

especial cuidado ya que buen diseño agiliza el uso de una aplicación, tanto al

visualizar aquella información más importante, como al realizar aquellas tareas más

habituales con sólo unos pocos clicks de ratón. El diseño de la interface debe

realizarse de manera que esta resulte simple e intuitiva de utilizar.

4.2.1 Sistema HMI

La sigla HMI es la abreviación en ingles de Human Machine Interface. Es el

dispositivo o sistema que permite la interacción entre la persona y la máquina.

Tradicionalmente estos sistemas consistían en paneles compuestos por indicadores y

comandos, tales como luces pilotos, indicadores digitales y análogos, registradores,

pulsadores, selectores y otros que se interconectaban con la máquina o proceso. En la

actualidad, dado que las máquinas y procesos en general están implementadas con

controladores y otros dispositivos electrónicos que dejan disponibles puertas de

comunicación, es posible contar con sistemas de HMI bastantes más poderosos y

eficientes, además de permitir una conexión más sencilla y económica con el proceso

o máquinas. Las señales de los procesos son conducidas al HMI por medio de

dispositivos como tarjetas de entrada/salida digitales y analógicas.

Page 94: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-74-

4.2.1.1 Funciones de un Software HMI

• Permitir una comunicación con dispositivos de campo.

• Monitoreo. Es la habilidad de obtener y mostrar datos de la planta en tiempo

real. Estos datos se pueden mostrar como números, texto o gráficos que

permitan una lectura más fácil de interpretar.

• Supervisión. Esta función permite junto con el monitoreo la posibilidad de

ajustar las condiciones de trabajo del proceso directamente desde la

computadora.

• Alarmas. Es la capacidad de reconocer eventos excepcionales dentro del

proceso y reportarlo estos eventos. Las alarmas son reportadas basadas en

límites de control preestablecidos.

• Control. Es la capacidad de aplicar algoritmos que ajustan los valores del

proceso y así mantener estos valores dentro de ciertos límites. El Control va

mas haya del control de supervisión removiendo la necesidad de la interacción

humana. Sin embargo la aplicación de esta función desde un software

corriendo en una PC puede quedar limitada por la confiabilidad que quiera

obtenerse del sistema.

• Históricos. Es la capacidad de muestrear y almacenar en archivos, datos del

proceso a una determinada frecuencia. Este almacenamiento de datos es una

poderosa herramienta para la optimización y corrección de procesos.

El software y los lenguajes de programación que cumplen con las características

anteriores, existen en gran número en el mercado actual, como por ejemplo Visual

Basic, C, C++, Visual C++, Pascal, LabWindows CVI, Labview, y algunos otros

confeccionados específicamente para sistemas que requieran además de la

adquisición de datos, el control, algunos de estos son: Fix, WinCC, Wonderware ya

que estos cumplen con los estándares necesarios para realizar dichas funciones.

Page 95: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-75-

4.2.2 Software y lenguajes de programación para el desarrollo de interfaces

graficas.

A continuación se hará una breve descripción del software que será utilizado para

el diseño y desarrollo de la interface grafica del sistema de adquisición de datos de

este proyecto.

4.2.2.1 LabView

El LabView es un software de programación gráfico, enfocado al uso de

instrumentación, pero debido a que cuenta con todas las estructuras, puede ser usado

para elaborar cualquier algoritmo que se desee, en cualquier aplicación, como en

análisis, telemática, juegos, manejo de textos, etc. Es muy sencillo de manejar, debido

a que está basado en un nuevo sistema de programación gráfica, llamado lenguaje G,

esta enfocado hacia la instrumentación virtual, por lo que cuenta con numerosas

herramientas de presentación, en gráficas, botones, indicadores y controles, los cuales

son muy esquemáticos y de gran elegancia. Cuenta con librerías especializadas para

manejos de DAQ, Redes, Comunicaciones, Análisis Estadístico, Comunicación con

Bases de Datos (Útil para una automatización de una empresa a nivel total).

4.2.2.2 Measurement Studio

Measurement Studio es el conjunto de herramientas más productivas para crear

aplicaciones de medición y automatización usando ambientes de programación

basados en texto estándar. Es una solución completa que incluye herramientas en

ANSI C, Visual Basic y Visual C++ para realizar adquisición de datos, análisis,

presentación de datos y capacidades de Internet con su compilador. Este conjunto de

herramientas le provee funciones específicamente diseñadas para realizar

Page 96: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-76-

aplicaciones de pruebas, mediciones y automatización, contiene numerosas

bibliotecas de controles que añaden diferentes herramientas de instrumentación y

medición a ambientes compatibles. Los controles de instrumentación incluyen GPIB

(IEEE-488.2), Serial (RS-232/485) y VISA (Virtual Instrument Software

Architecture). Además de añadir las operaciones básicas de lectura/escritura, los

controles añaden herramientas de productividad como un probador interactivo y

herramientas de parseo automático. Para el desarrollo de manejadores de

instrumentos, las herramientas para Visual Basic en Measurement Studio contienen la

fábrica de manejadores de instrumentos. La biblioteca de controles de análisis incluye

manipulación de arreglos y matrices, estadísticas, procesamiento digital de señales y

otras funciones avanzadas de análisis. Para conectividad, las herramientas incluyen

DataSocket para añadir soporte para intercambio de datos entre aplicaciones y

sistemas en una red.

4.2.2.3 Visual Basic 6.0

Es un lenguaje de programación visual, también llamado lenguaje de 4ª generación.

Esto quiere decir que un gran número de tareas se realizan sin escribir código,

simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla es un

programa basado en objetos, aunque no orientado a objetos como C++ o Java. La

diferencia está en que Visual Basic 6.0 utiliza objetos con propiedades y métodos,

pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos

lenguajes orientados a objetos como Java y C++. Prácticamente todos los elementos

de interacción con el usuario de los que dispone Windows 95/98/NT pueden ser

programados. Es un lenguaje de fácil aprendizaje, guiado por eventos, y centrado en

un motor de formularios que facilita el rápido desarrollo de aplicaciones gráficas. Su

sintaxis, derivada del antiguo BASIC, ha sido ampliada con el tiempo al agregarse las

características típicas de los lenguajes estructurados modernos. Para soportar este

Page 97: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-77-

tipo de desarrollos, Visual Basic utiliza fundamentalmente dos herramientas, una que

permite realizar diseños gráficos y un lenguaje de alto nivel.

Algunas de las características más sobresalientes de este software, son las

siguientes:

• Es un entorno de desarrollo integrado (editor de texto, intérprete, depurador,

examinador de objetos, explorador de proyectos, compilador, etc.).

• Fue diseñado para ser un intérprete, lo que favorece a la creación y

depuración de una aplicación.

• Permite crear una interface para múltiples documentos (MDI- Múltiple

Document Interface), es decir permite la creación de una aplicación con una

ventana principal y múltiples ventanas de documento.

• Soporte para la programación de aplicaciones para Internet.

• Acceso a bases de datos a través del control de datos ADO, utilizando un

monitor de Access o controladores ODBC.

A continuación se describirá la forma de diseñar una aplicación con Visual Basic

6.0 ya que este es el software que se utilizara para desarrollar la interface

grafica del sistema de adquisición de datos.

4.2.2.3.1 Diseño con Visual Basic

La unidad fundamental de una aplicación en Visual Basic es el formulario. Un

formulario es realmente una ventana sobre la que se dibujan otros objetos llamados

controles, tales como etiquetas, cajas de texto, marcos, casillas de verificación

botones de opción, botones de pulsación, etc., con fines de aceptar, ejecutar o

visualizar datos.

En una aplicaron se pueden utilizar tantos formularios como se necesiten y

dependiendo de la utilidad que se les de, estos serán de diferentes tipos.

Page 98: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-78-

4.2.2.3.2 Crear una aplicación con Visual Basic.

Para crear una aplicación con Visual Basic, hay tres pasos fundamentales que se

deben realizar:

1. Crear la interface grafica de usuario.

2. Establecer las propiedades de los objetos.

3. Escribir el código asociado a cada uno de los objetos.

Par diseñar la interface grafica (medio de comunicación entre el usuario y la

aplicación) se deben seguir los siguientes pasos:

1. Crear un formulario.

2. Añadir los controles al formulario.

4.2.2.3.3 Creación De Un Formulario

La figura 4.1 muestra la pantalla que se despliega cuando iniciamos Visual Basic

y dentro de esta se muestran los diferentes tipos de proyectos que se pueden

realizar con este software, algunos de estos son:

• Exe Estándar. Este tipo de aplicación se construye a partir de uno o más

formularios, módulos y clases.

• Exe ActiveX. Crea un componente ActiveX (fichero.exe). Un componente

ActiveX es una unidad de código ejecutable, como un fichero.exe, .dll.

• Exe de documento ActiveX. Se trata de un formulario que puede aparecer en

un explorador Web.

Page 99: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-79-

Figura 4.1 Selección del tipo de proyecto.

Una vez que se creó el formulario es necesario agregar los controles, estos

pueden ser: cajas de texto, botones, etiquetas, marcos, listas y temporizadores los

cuales permiten introducir o extraer datos.

4.2.2.3.4 Agregar Controles al formulario.

Para añadir un control a un formulario, utilizaremos la caja de herramientas. Cada

herramienta de la caja crea un único control. Estos controles se muestran en la

figura 4.2 y se les nombra controles intrínsecos.

Figura 4.2 Controles intrínsecos de Visual Basic.

Page 100: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-80-

4.2.2.3.4.1 Propiedades de los Objetos.

En Visual Basic, tanto los formularios como cada uno de los controles tienen

predefinidos un conjunto de propiedades o datos y un conjunto de procedimientos

para actuar sobre sus datos. Cada tipo de objeto tiene predefinido un conjunto de

propiedades, como titulo, nombre, color, tamaño, etc. Las propiedades de un objeto

presentan todos los datos que por definición están asociados con ese objeto.

En la figura 4.3 se muestra la ventana de propiedades, en la cual se puede observar

que todas las propiedades de un objeto tienen un valor por defecto, las cuales

pueden ser modificadas si se desea.

Figura 4.3. Ventana de propiedades de un objeto.

Page 101: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-81-

4.2.2.3.4.2 Unir Código a los Objetos.

El nombre de un objeto, propiedad Name, nos permite referirnos a ese objeto dentro

del código de la aplicación es decir:

Objeto.Propiedad

Donde Objeto es el nombre del formulario o control y Propiedad es el nombre de la

propiedad del objeto que se desea modificar. Las aplicaciones con Visual Basic

son conducidas por eventos, esto significa que nosotros tenemos que ligar unidades

de código escritas para un determinado objeto a eventos que pueden ocurrir sobre

dicho objeto, de tal forma que cuando ocurra un evento se ejecute la unidad de

código correspondiente. Por ello, la unidad que agrupa ese código recibe el nombre

de procedimiento conducido por un evento.

Para observar mientras diseñamos una aplicación, los posibles eventos que se pueden

asociar con un objeto, se hace un doble clic sobre el objeto y enseguida aparece una

nueva ventana como la que se muestra en la figura 4.4 la cual es llamada ventana de

código.

Figura 4.4. Ventana de código.

La figura anterior muestra el procedimiento, vacío, que se ha de ejecutar cuando

sobre el objeto Botón, ocurra el evento Click.

Page 102: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-82-

Además del evento Click, hay otros eventos asociados con un botón de pulsación.

La figura 4.5 muestra la lista de los eventos que se pueden dar para el objeto Botón.

Figura 4.5 Eventos asociados al objeto botón

Una vez que la aplicación tiene el aspecto deseable y que su ejecución transcurre

satisfactoriamente, se puede generar un fiero ejecutable que permita ejecutar dicha

aplicación fuera del entorno de Visual Basic. Para generar este fichero, se tiene que

ejecutar la orden Generar proyecto.exe del menú Archivo.

4.3 Diseño De La Interface Grafica del sistema de adquisición de datos.

La operación y visualización de los datos adquiridos a través del hardware de

adquisición de datos, se podrá realizar de manera local y remota, esta ultima se

realizara a través de Internet (TCP/IP), empleando una aplicación

Cliente/Servidor, es decir, será necesario emplear una interface grafica que resida

en la computadora en donde se encuentra conectado el hardware de adquisición de

datos (servidor) y otra (cliente) que resida en la computadora de donde se desea

controlar y monitorear.

Page 103: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-83-

Tanto la interface grafica local como la remota estarán integradas por siete

pantallas graficas, ya que las dos realizaran funciones muy similares, la única

diferencia que existirá entre ellas es que la interface local(servidor) podrá

restringir el acceso a la tarjeta por medio de interface grafica remota.

El software que se empleara para desarrollar dicha interface será Visual Basic 6.0 y

Measurement Studio, de este último solo se emplearan algunos instrumentos

virtuales, aprovechando la compatibilidad que estos ofrecen con Visual Basic 6.0.

4.3.1 Interface Grafica Local (servidor)

La interface grafica local estará integrada por siete pantallas visuales y cada una

de estas deberá realizar alguna tarea o función especifica.

4.3.2 Tareas y Funciones De Las Pantallas

A continuación se asignaran las tareas y funciones que deberá realizar cada una

pantallas que integran la interface grafica:

4.3.2.1 Pantalla1. (Principal).

• Encender y apagar el hardware de adquisición de datos.

• Habilitar las conexiones remotas (interface local o servidor).

• Introducir dirección IP de la interface local (interface remota o cliente).

• Selección del sensor que se desea monitorear.

• Salir de la interface grafica.

Page 104: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-84-

4.3.2.2 Pantalla 2. (Sensor Analógico 1).

• Iniciar la lectura de las variaciones detectadas por el sensor de analógico 1

que esta conectado al hardware de adquisición de datos.

• Mostrar los datos transmitidos por el hardware de adquisición de datos,

correspondientes a las variaciones detectadas por el sensor analógico 1.

• Deshabilitar la lectura de las variaciones detectadas por el sensor de

analógico 1.

• Regresar a la pantalla principal.

4.3.2.3 Pantalla 3. (Sensor Analógico 2).

• Iniciar la lectura de las variaciones detectadas por el sensor analógico 2 que

esta conectado al hardware de adquisición de datos.

• Mostrar los datos transmitidos por el hardware de adquisición de datos,

correspondientes a las variaciones detectadas por el sensor de analógico 2.

• Deshabilitar la lectura de las variaciones detectadas por el sensor

analógico 2.

• Regresar a la pantalla principal.

4.3.2.4 Pantalla 4. (Sensor Analógico 3).

• Iniciar la lectura de las variaciones detectadas por el sensor analógico 3 que

esta conectado al hardware adquisición de datos.

• Mostrar los datos transmitidos por el hardware de adquisición de datos,

correspondientes a las variaciones detectadas por el sensor analógico 3.

• Deshabilitar la lectura de las variaciones detectadas por el sensor analógico

3.

• Regresar a la pantalla principal.

Page 105: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-85-

4.3.2.5 Pantalla 5. (Sensor Analógico 4).

• Iniciar la lectura de las variaciones detectadas por el sensor analógico 4 que

esta conectado al hardware adquisición de datos.

• Mostrar los datos transmitidos por el hardware de adquisición de datos,

correspondientes a las variaciones detectados analógico 4.

• Deshabilitar la lectura de las variaciones detectadas por el sensor analógico

4.

• Regresar a la pantalla principal.

4.3.2.6 Pantalla 6. (Sensores Digitales).

• Iniciar la lectura de las variaciones detectadas por los sensores digitales

conectados al hardware de adquisición de datos.

• Mostrar los datos transmitidos por el hardware de adquisición de datos,

correspondientes a cada una de las variaciones detectadas por los sensores

digitales conectados.

• Deshabilitar la lectura de las variaciones detectadas por los sensores

digitales.

• Regresar a la pantalla principal.

4.3.2.7 Pantalla 7. (Portada).

• Mostrar la información referente al autor de este proyecto.

• Regresar a la pantalla principal.

• Salir de la interface grafica.

Una vez que se definieron las tareas y funciones que realizara cada una de las

pantallas que componen la interface grafica, se procederá al desarrollo de cada

una de ellas.

Page 106: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-86-

4.4 Desarrollo De La Interface Grafica local

Para iniciar una aplicación con Visual Basic 6.0 es necesario definir el tipo de

proyecto que se desea realizar, por lo tanto se creara un proyecto Exe.

Estándar, ya que la interface grafica estará compuesta por siete pantallas y este

tipo de proyecto tiene la facilidad de agregar varios formularios, en el mismo

proyecto. Ahora se procederá al desarrollo de cada una de las pantallas que

componen la interface grafica.

4.4.1 Pantalla 1. Principal

En las tablas: 4.0, 4.1 y 4.2 se muestran los controles y propiedades que se

utilizaran para desarrollar la pantalla principal de la interface grafica del sistema

de adquisición de datos.

No. Control Procedencia Propiedad Valor

1 CWButton Measurement Studio

Name swInicio

On Text On

Off Text Push

Mode Switch until released

2 CWButton Measurement Studio

Name swReset

On Text On

Off Text Push

Mode Switch until released

Tabla 4.0. Controles internos de la pantalla 1.

Page 107: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-87-

No. Control Procedencia Propiedad Valor

3 CWButton Measurement Studio Name LED_ENCENDIDO

Mode Indicator

4 CWButton Measurement Studio Name LED_LINEA

Mode Indicator

5 CWButton Measurement Studio Name LED_PARO

Mode Indicator

6 Frame Visual Basic Name fra_inicio

7 Frame Visual Basic Name fra_canales

Enabled false

8 Form Visual Basic Name ADQUISCION DE

DATOS

9 Timer Visual Basic

Name Timer1

Enabled False

Interval 10

10 Timer Visual Basic

Name Timer1

Enabled False

Interval 100

11 Timer Visual Basic

Name Timer1

Enabled False

Interval 100

12 ComboBox Visual Basic

Name combAnalogico

Text SENSORES

Enabled False

AddItem SENSOR 1

SENSOR 2

SENSOR 3

SENSOR 4

Tabla 4.1. Controles internos de la pantalla 1.

Page 108: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-88-

No. Control Procedencia Propiedad Valor

13 ComboBox Visual Basic

Name combDigital

Text SENSORES

Enabled False

AddItem SENSOR 1

SENSOR 2

SENSOR 3

SENSOR 4

SENSOR 5

14 MSComm Visual Basic

Name comu

Settings 9600,n,8,1

InBuffereSize 1

InputLen 1

PortOpen False

15 Picture Visual Basic

Name Picture1

Picture “Mapa de bits

deseado”

16 Winsock Visual Basic

Name Winsock

Protocol sckTCProtocol

RemotePort 888

17 Texbox Visual Basic Name Text1

Text “ ”

Tabla 4.2. Controles internos de la pantalla 1.

Después de agregar los controles anteriores al formulario, la forma final de la

pantalla principal, que corresponde a la interface grafica del servidor, se puede

observar en la figura siguiente:

Page 109: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-89-

Figura 4.6. Pantalla 1 de la interface grafica local.

Las aplicaciones con Visual Basic son conducidas por eventos, por lo que es

necesario, ligar unidades de código de programación, a un determinado objeto, de

tal forma que cuando ocurra algún evento sobre este objeto, se ejecute la unidad de

código correspondiente.

El código de programación de Visual Basic 6.0, que se agregara a cada uno de los

controles estará basado en las tareas o funciones que se describieron al inicio de este

capitulo, pero para que se realicen dichas tareas en necesario tomar en cuenta las

siguientes condiciones y pasos:

• Al ejecutar la aplicación se bloquearan los controles que permitirán

seleccionar el tipo de canal (analógico o digital) que se desea monitorear.

• Al ejecutar un click con el Mouse sobre el botón que permitirá activar la

tarjeta (hardware del sistema de adquisición de datos), se habilitara el puerto

Page 110: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-90-

serie de la PC y enviara un dato hacia el hardware de adquisición de datos.

Una vez que el hardware del sistema de adquisición de datos haya recibido y

procesado el dato que envió la PC a través del puerto serie, este regresara el

mismo dato hacia la PC para indicar que la comunicación se ha realizado

correctamente y activara los controles que permitirán seleccionar el canal

analógico o digital que se desea monitorear.

• Cuando sea seleccionado un canal analógico o digital, se ocultara esta

pantalla (1) y se abrirá una nueva pantalla (ventana), que permitirá activar

y visualizar los datos que esta enviado el hardware de adquisición de datos,

hacia la computadora. Las tareas o funciones que deberá realizar cada una

de las pantallas se describió al inicio de este capítulo.

• Al ejecutar un click con el Mouse sobre el botón que permitirá cerrar la

aplicación, se enviara un dato a través del puerto serie de la PC, hacia el

hardware de adquisición de datos, para que este se deshabilite y después de

completarse la transmisión, el puerto serie de la PC se deshabilitara y

finalmente cerrara esta pantalla (1).

• El botón destinado a la recepción de peticiones de conexión remota,

permitirá activar la conexión y comunicación a través de Internet, entre la

computadora que tenga instalada la interface local y la que tenga instalada

la interface remota, ésta última se desarrollara mas adelante. La

comunicación entre estas dos interfaces permitirá seleccionar y activar

cualquier canal del hardware de adquisición de datos que se desee

monitorear a través de Internet.

Page 111: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-91-

Las condiciones y pasos anteriores se muestran en forma de diagrama de flujo en la

siguiente figura:

Figura 4.7. Diagrama de flujo (Pantalla 1).

Page 112: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-92-

4.4.2 Pantalla 2. (Sensor Analógico 1).

Las pantallas: 2, 3, 4 y 5 realizaran tareas y funciones muy similares, la única

diferencia entre ellas estará en la forma de presentar los datos, por lo cual solo se

presentara el desarrollo de una ellas. La tabla 4.3 y 4.4 muestran los controles y

propiedades que se emplearan para desarrollar estas pantallas, haciendo notar

aquellos controles que solo se utilizaran en la pantalla 4 y 5, los cuales permitirán

visualizar de manera diferente a las pantallas 2 y 3, los datos adquiridos a través

del hardware de adquisición de datos.

No. Control Procedencia Propiedad Pantalla

1 Form Visual Basic

Name “De acuerdo a la

pantalla”

2, 3, 4

Y 5

Height 6300

width 10800

2 CwButton Measurement

Studio

Name Inicio

On Text On

Off Text Push

Mode Switch until released

3 CwButton Measurement

Studio

Name Reset

On Text On

Off Text Push

Mode Switch until released

4 CwButton Measurement

Studio

Name VERDE

On Text

Off Text

Mode Indicator

Tabla 4.3. Controles internos de las pantallas 2, 3, 4 y 5.

Page 113: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-93-

No. Control Procedencia Propiedad Pantalla

5 CwGraph Measurement

Studio

Name Grafica

2, 3,5 graph 0

6 CwKnob

Measurement

Studio

Name Termómetro

Mode Indicator

7 Timer Visual Basic

Name Timer1

2, 3, 4

Y 5

Enabled False

Interval 10

8 Timer Visual Basic

Name Timer2

Enabled False

Interval 100

9 Timer Visual Basic

Name Timer3

Enabled False

Interval 10

10 Label Visual Basic Text Iniciar captura

11 Label Visual Basic Text Reset

12 CwSlide Measurement

Studio

Name CWSlide1

4 y 5 Mode Indicator

Style 3D Termometer

Tabla 4.4. Controles internos de las pantallas 2, 3, 4 y 5.

Después de agregar los controles anteriores a cada formulario, la forma final de las

pantallas 2, 3, 4 y 5 pueden observarse en las siguientes figuras:

Page 114: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-94-

4.4.2.1 Pantalla 3. Sensor analógico 2.

Figura 4.8. Pantalla 3 de la interface grafica.

4.4.2.2 Pantalla 4. Sensor analógico 3.

Figura 4.9 Pantalla 4 de la interface grafica.

Page 115: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-95-

4.4.2.3 Pantalla 5. Sensor analógico 3.

Figura 4.10. Pantalla 5 de la interface grafica.

4.4.2.4 Pantalla 6. Sensor analógico 4.

Figura 4.11. Pantalla 6 de la interface grafica.

Page 116: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-96-

El código de programación de Visual Basic 6.0, que se agregara a cada uno de los

controles estará basado en las tareas o funciones que se describieron al inicio de este

capítulo, pero para que se realicen dichas tareas en necesario tomar en cuenta las

siguientes condiciones y pasos:

• Al ejecutar un click con el Mouse sobre el botón de inicio, se habilitara el

puerto serial y enviara un dato hacia el hardware de adquisición de datos

que permitirá establecer y activar el canal que se desea monitorear.

• Una vez que se haya enviado el dato para activar el canal del hardware de

adquisición de datos, el puerto serie de la PC estará en espera de un dato

que enviara el hardware de adquisición de datos, en respuesta a la petición

de inicio de lectura o monitoreo del canal seleccionado. Este dato servirá

como indicador de que la comunicación se realizo correctamente y

además iniciara la lectura y graficación de los datos existentes en el puerto

serial.

• Al ejecutar un click con el Mouse sobre el botón de reset, iniciara

nuevamente el proceso descrito anteriormente.

• Al ejecutar un click con el Mouse sobre el botón que permitirá cerrar la

aplicación, se enviara un dato hacia el hardware adquisición de datos, el cual

permitirá deshabilitar el canal establecido del hardware de adquisición de

datos y además regresara a la pantalla principal.

Page 117: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-97-

Las condiciones y pasos anteriores se muestran en forma de diagrama de flujo

en la siguiente figura:

Figura 4.12. Diagrama de flujo de funciones de las pantalla 2, 3, 4, y 5

Page 118: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-98-

4.5 Desarrollo De La Interface Grafica Remota (CLIENTE).

Esta interface al igual que la anterior (interface local) deberá contener el mismo

numero de pantallas, la única diferencia que habrá entre ellas estará en la pantalla

1, ya que esta contendrá algunos controles mas, que permitirán introducir la

dirección IP de la maquina donde reside la interface grafica local y se realice la

petición de conexión a la interface grafica local para y si esta ha permitido las

conexiones remotas, se podrá seleccionar y activar los canales del hardware de

adquisición de datos desde la interface remota a través de Internet. La forma final

de la pantalla principal de la interface grafica remota se muestra en la siguiente

figura.

Figura 4.13. Pantalla 1 de la interface grafica remota.

En el apéndice C se muestra el código de visual Basic que se utilizo para realizar

cada una de las pantallas que componen la interface grafica del sistema de

adquisición de datos.

Page 119: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

CAPITULO 5

COSTO TOTAL DEL PROYECTO.

Page 120: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-99-

Capitulo 5

COSTO DEL PROYECTO.

5.1 Introducción.

Cualquier proyecto que se desee realizar o desarrollar, requiere del análisis de

diversos elementos, entre ellos el estudio económico, el cual tiene por objetivo:

presentar, describir y analizar los elementos necesarios, para determinar si es

factible realizar el proyecto propuesto.

En este proyecto no se realizara un estudio económico detallado, ya que solo se

trata de un prototipo, sin embargo se hará notar la diferencia entre el costo

total del proyecto si es desarrollado utilizando el equipo disponible en los

laboratorios de la Escuela Superior de Ingeniería Mecánica Eléctrica y el costo

total de este proyecto si se desarrolla adquiriendo todo el equipo y software con

capital privado.

5.2 Costo total del proyecto

Para conocer el costo total del proyecto es necesario determinar el costo del

material, equipo y mano de obra involucrada para desarrollarlo. Por lo tanto

se iniciara la cotización de precios del material, equipo y dispositivos

electrónicos, necesarios para el desarrollo de este proyecto.

A continuación se presentaran las tablas de precios unitarios de los materiales,

equipo, software y dispositivos electrónicos que fueron seleccionados, para

desarrollar el hardware y software del sistema de adquisición de datos de este

proyecto.

Page 121: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-100-

Dispositivos Electrónicos.

Dispositivos electrónicos

No.

de

Piezas

Precio

Unitario($) Distribuidor

Microcontrolador PIC16F873A 1 120 A.G. Electrónica

Interface RS232C/USB FT232L 1 105.50 A.G. Electrónica

Amplificador Operacional LM339 4 8.45 A.G. Electrónica

Regulador LM7805 1 5.15 A.G. Electrónica

Max 232 1 6.30 A.G. Electrónica

Resistores de precisión de 1⁄4 watt 10 1.30 A.G. Electrónica

Resistores de precisión de 1⁄2 watt 10 2.10 A.G. Electrónica

Cristal de cuarzo de 4Mhz 1 6.50 A.G. Electrónica

Capacitor electrolítico 100µf, 16 V 1 1.30 A.G. Electrónica

Capacitor de 22µf 1 1.30 A.G. Electrónica

Capacitor Cerámico 22 pf 2 1.20 A.G. Electrónica

Leds de 50mw a 1.5 volts 2 1.80 A.G. Electrónica

Bases para C. Integrado 16 pines 1 1.30 Steren

Bases para C.Integrado 28 pines 1 1.95 Steren

Conector hembra USB tipo A 1 10.00 Steren

Conector DB25 1 6.35 Steren

Botón pulsador 2 1.95 Steren

Headers 4 4.00 Steren

Cable con conectores USB tipo A

macho/macho de 80cm. 1 28.00 Steren

Cable con conectores DB25

macho/macho de 2.5 m 1 25.00 Steren

Total 339.45

Tabla 5.0 Dispositivos electrónicos que integran el sistema de adquisición de datos.

Page 122: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-101-

Herramientas y Equipo Electrónico

No.

Herramientas y Equipo Electrónico

No.

De

Piezas

Precio

Unitario($) Distribuidor

1 PC Pentium IV a 2.5 GHz, 515 Mb de

memoria RAM, disco duro 80Gb y

sistema operativo Windows XP incluido.

1 3500.00 PC CHIPS

2 Impresora de Inyección Electrónica

HP610 1 350.00 Hellet Packard

3 Grabador de Microcontroladores JDM. 1 250.00 Steren

4 Fuente de alimentación variable

de 5 – 25 volts. 1 200.00 Steren

5 Multimetro digital. 1 450.00 Steren

6 Cautín eléctrico de 30 Watts. 1 320.00 Weller

7 Juego de desarmadores joy-30. 1 150.00 Truper

8 Pinzas de corte para electricista. 1 100.00 Truper

Total $5320.00

Tabla 5.1 Herramientas y equipo empleado para la construcción sistema de adquisición de

datos.

Software.

No Software No. de

Licencias

Precio

Unitario($) Distribuidor

1 Microchip Mplab 7.5 1 Libre Microchip

2 Microsoft Visual Basic 6.0 1 4280.00 Microsoft

3 NI LabView 6.0 1 2640.00 National Instruments

4 NI Meassurements Studio 6.0 1 2399.00 National Instruments

5 IC Prog 1 Libre IC Prog

Total 9319.00

Tabla 5.2. Software utilizado para programar y desarrollar el software del sistema de

adquisición de datos.

Page 123: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-102-

Varios y Consumibles.

No. Varios y Consumibles Precio

Unitario($)

1 Tablilla Fenolica de 10x15 cm 6.50

2 Cloruro ferrico 25.00

3 Barniz 16.00

4 Solvente 5.00

5 Soldadura de estaño 50.00

6 Pasta limpiadora 20.00

7 Otros costos 100.00

Total 222.50

Tabla 5.3. Material consumible utilizado durante el desarrollo del proyecto.

Los precios de los materiales y equipos mostrados en las tablas anteriores

incluyen I.V.A.

Mano de obra de diseño y construcción. (Ingeniería).

El proyecto se dividió en dos fases:

• Diseño y desarrollo del hardware.

• Diseño y desarrollo del software.

A cada una de las fases anteriores se le asigno un tiempo determinado para su

realización, aunque por diversas circunstancias se tuvo que aumentar el tiempo

para terminar su desarrollo. El tiempo que requirió cada una de las fases

anteriores se muestra en la tabla siguiente:

|No. Fase Tiempo de Desarrollo

1 Diseño y desarrollo del Hardware

25 Hrs

2 Diseño y desarrollo del software

20 Hrs

Total 45 Hrs

Tabla 5.4 Fases de desarrollo y diseño del sistema de adquisición de datos.

Page 124: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-103-

Como se observa en la tabla anterior el número de horas de trabajo es de

cuarenta y cinco horas, estas incluyen el tiempo de pruebas y mejoramientos

que se le hicieron al proyecto, el personal encargado de realizar cada una de

las fases anteriores cobrara por honorarios, por lo tanto no será considerado

algún otro factor o elemento para determinar el costo de mano de obra. En la

tabla siguiente se muestra el costo de mano de obra de las fases que integran el

proyecto.

|No. Fase Tiempo de Desarrollo

Costo ($) por hora de

trabajo

Costo($) total de mano de obra

1 Diseño y desarrollo

del Hardware 25 Hrs 200 5000.00

2 Diseño y desarrollo

del software 20 Hrs 200 4000.00

Total 45 Hrs $ 9000

Tabla 5.5 Costo de mano de obra.

Una vez que se obtuvo el precio de los materiales y mano de obra se

procederá a calcular el costo total del proyecto, para esto se utilizara la

formula siguiente:

IndirectosCostosdirectosCostosTotalCosto ___ ++++====

Como se puede observar en la formula anterior, para obtener el costo total del

proyecto es necesario determinar y obtener, los costos directos e indirectos que

se realizaron durante el desarrollo del proyecto. A continuación se clasificara y

obtendrá el costo de los elementos y factores que serán considerados para

obtener los costos directos e indirectos, si el proyecto es desarrollado con capital

privado:

Page 125: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-104-

5.2.1 Costos Directos

En la siguiente tabla se muestran los elementos y factores que serán considerados

para obtener los costos directos de este proyecto:

Costos Directos

No. Elemento Costo

1 Dispositivos electrónicos 339.45

2 Herramientas y equipo de trabajo 5320.00

3 Software 9319.00

4 Mano de obra de construcción y diseño. 9000.00

Total 23978.45

Tabla 5.6 Costos directos.

5.2.2 Costos Indirectos

En la tabla 5.7 se muestran los elementos y factores que serán considerados para

obtener los costos indirectos de este proyecto.

Costos Indirectos

No. Elemento Costo

1 Consumibles y varios 222.50

2 Energía eléctrica 100.00

Total 322.50

Tabla 5.7 Costos indirectos

Una vez que se obtuvieron los costos directos e indirectos, lo siguiente es sumar

estos costos y el resultado será el costo total del proyecto. En la tabla 5.8 se

muestra el costo total del proyecto.

Costo Total

No. Concepto Costo ($)

1 Costos Directos 23978.45

2 Costos Indirectos 322.50

Total $24300.95

Tabla 5.8 Costo total del proyecto.

Page 126: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-105-

De acuerdo a los datos anteriores, si el proyecto es desarrollado adquiriendo

todo el equipo, herramienta y software con capital privado, este tendrá un costo

de $24,300.95.

Como se puede observar el proyecto tiene un costo muy elevado en

comparación a los nuevos sistemas de adquisición de datos existentes en el

mercado, este costo se debe a que se hará una inversión para adquirir el equipo y

herramienta para diseñar y desarrollar el proyecto, pero si se desea llevar a cabo

la producción en serie el costo del producto disminuiría notablemente, aunque

esta no es la finalidad de este proyecto ya que este solo, solo pretende cubrir una

necesidad académica. A continuación se obtendrá el costo total del proyecto si

este, se desarrolla utilizando el equipo, software y herramientas disponibles en los

laboratorios de la escuela.

El equipo electrónico, software y herramienta que se utilizo para desarrollar

tanto la interface grafica como el hardware de adquisición de datos de este

proyecto, se encuentra dentro de los laboratorios de la Escuela Superior de

Ingeniería Mecánica y Eléctrica unidad Adolfo López Mateos, por lo que no fue

necesario adquirir el equipo electrónico, herramientas y licencias de software,

además el costo de mano de obra no se tomara en cuenta, ya que se trata de un

proyecto desarrollado dentro de la escuela con ayuda de los profesores, dando

como resultado una reducción en el costo total del proyecto. Por lo tanto para

determinar el costo total del proyecto solo será considerado el material y

dispositivos electrónicos utilizados durante el desarrollo del proyecto. En la

siguiente tabla se muestran los elementos que serán considerados para obtener el

costo total del proyecto.

Costo Total

No. Elemento Costo ($)

1 Dispositivos Electrónicos 339.45

2 Consumibles y Varios 222.50

1 Grabador de microcontroladores JDM 250.

Total $821.95

Tabla 5.9 Costo total del proyecto desarrollado en la escuela.

Page 127: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-106-

Como puede observarse aprovechando el equipo y herramienta que hay dentro de

los laboratorios de la escuela, el costo total del proyecto es de $821.95, el cual

resulta demasiado bueno, ya que para los alumnos y la escuela es más fácil

adquirir un sistema de este tipo para que los alumnos practiquen y reafirmen los

conocimientos teóricos adquiridos en clase teórica.

Page 128: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

CONCLUSIONES

Page 129: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-107-

CONCLUSIONES

• El sistema de adquisición de datos desarrollado en este proyecto es un

sistema muy básico, ya que se desarrollo para cubrir una necesidad

académica y aunque puede ser utilizado en algún proceso industrial donde

la exactitud de los datos obtenidos no sea muy crítica, no es muy

recomendable ya que requiere de algunos ajustes extras para su correcto

funcionamiento.

• El costo total del proyecto es muy bajo en comparación a otros sistemas

como: Microlab, DAQ-6024E, NI USB-6009, NI USB-6216, entre otras,

por lo que resulta más fácil adquirir o desarrollar un proyecto de este tipo,

para que los alumnos reafirmen sus conocimientos adquiridos en clase,

practicando y comprobando directamente sobre un sistema físico.

• La interface grafica desarrollada en Visual Basic muestra la flexibilidad y

facilidad en el manejo de la información que el sistema operativo Windows

ofrece, aunque las aplicaciones desarrolladas bajo esta plataforma, no son

muy recomendables para controlar o monitorear procesos, donde se requiera

un alto nivel de confiabilidad y seguridad en la información a procesar.

• La comunicación serie con el protocolo RS232C en la actualidad sigue siendo

muy utilizada en la industria a pesar de la baja velocidad de transmisión y

recepción de información en comparación con otros protocolos de

comunicación, esto se debe principalmente a que es uno de los protocolos de

comunicación más seguros para transmitir y recibir información y además

porque en bastantes procesos industriales no se requiere recibir y transmitir

información a gran velocidad.

Page 130: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-108-

TRABAJOS FUTUROS

• Se programaran algunos algoritmos de control en el microcontrolador, para

algunos canales analógicos y controlar la posición y velocidad de giro de

motores de corriente directa y la intensidad de luz de algunas lámparas.

• Migrar la interface grafica desarrollada en el lenguaje de programación Visual

Basic 6.0, a la plataforma .NET, ya sea con el lenguaje C# o Visual Basic.

• Desarrollar el circuito impreso del hardware de adquisición de datos.

Page 131: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-109-

REFERENCIAS BIBLIOGRAFICAS CONSULTADAS

Domingo Ajenjo. Dirección y Gestión de Proyectos. RA-MA, 1ª edición, 2000.

Características de FireWire. Disponible en Internet:

http://www.apple.com/la/firewire/.

Jan Axelson. USB complete. Lakeview Research, 1ª edition, 1999.

J. Antonio Boluda. Notas de la asignatura “Periféricos”. Ingeniería

G. Martín, C.W. Dawson. El Proyecto Fin de Carrera en Ingeniería

Informática. Una guía para el estudiante. Prentice-Hall, 1ª edición,2002.

Windows Driver Development Kit (DDK). Disponible en Internet:

http://www.microsoft.com/whdc/devtools/ddk/default.mspx

R.J. Martínez, J.A. Boluda, J.J. Pérez. Estructura de computadores y

periféricos. RA-MA, 1ª edición, 2001.

Características de Microsoft Visual Basic, Visual C++ y Visual C#.

Disponible en Internet: http://www.microsoft.com

Entorno de desarrollo MPLAB de Microchip. Disponible en Internet:

http://www.microchip.com.

Datasheet del microcontrolador PIC16F873A. Disponible en Internet:

http://ww1.microchip.com/downloads/en/DeviceDoc/39632c.pdf

USB Implementers Forum, Inc. Disponible en Internet:

http://www.usb.org

Page 132: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

-110-

Especificación de USB 1.1. Disponible en Internet:

http://www.usb.org/developers/docs/

FT232BM USB UART (USB- SERIAL) I.C. http://www.ftdichip.com/ IC-PROG Prototype Programmer http://www.ic-prog.com/index1.htm

Page 133: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

APENDICE A

DESCRIPCIÓN GENERAL MICROCONTROLADOR PIC16F873A

Page 134: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -2-

APENDICE A

DESCRIPCIÓN GENERAL MICROCONTROLADOR PIC16F873A 1 Microcontrolador PIC16F873 Este microcontrolador forma parte de la familia de los PIC16F87X.

Figura 1.4 Pic16f873. 1.1 Principales características

• Set de instrucciones reducido (RISC). Sólo 35 instrucciones. • Las instrucciones se ejecutan en un sólo ciclo de máquina excepto los saltos que

requieren 2 ciclos. • Opera con una frecuencia de reloj de hasta 20 MHz (ciclo de máquina de 200ns). • Memoria de programa: 4096 posiciones de 14 bits. • Memoria de datos: Memoria RAM de 192 bytes (8 bits por registro). • Memoria EEPROM: 128 bytes (8 bits por registro). • Stack de 8 niveles. • 22 Terminales de I/O que soportan corrientes de hasta 25 mA. • 5 Entradas analógicas de 10 bits de resolución. • 3 Timers. • Módulos de comunicación serie, comparadores, PWM.

Page 135: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -3-

1.2 Características especiales:

• La memoria de programa se puede reescribir hasta 1000 veces. • La memoria EEPROM se puede reescribir hasta 1000000 de veces. • Los datos almacenados en la memoria EEPROM se retienen por 40 años y no se

borran al quitar la alimentación al circuito. • 13 fuentes de interrupción: • Señal externa (RB0). • Desborde de TMR0 • Cambio en el estado de los terminales RB4, RB5, RB6 o RB7. • Ciclo de escritura en la memoria EEPROM completado. • Ciclo de conversión A/D finalizado

1.3 Descripción De Terminales Este microcontrolador consta de 28 pines de los cuales 22 se pueden utilizar como entradas o salidas digitales/analógicas. 1.4 Porta: Ra0-Ra5: Los terminales RA0-RA3 y RA5 son bidireccionales y manejan señales TTL. Pueden configurarse como entradas analógicas El terminal RA4 como entrada es Schmitt Trigger y cómo salida es colector abierto. Este terminal puede configurarse como clock de entrada para el contador TMR0. 1.5 Portb: Rb0-Rb7: Los terminales RB0-RB7 son bidireccionales y manejan señales TTL. Por software se pueden activar las resistencias de pull-up internas, que evitan el uso de resistencias externas en caso de que los terminales se utilicen como entrada (esto permite, en algunos casos, reducir el número de componentes externos necesarios). RB0 se puede utilizar como entrada de pulsos para la interrupción externa. 1.6 Portc: Rc0-Rc7: Los terminales RC0-RC7 son bidireccionales y manejan señales TTL. Se utilizan en los módulos de PWM, comparadores y transmisión serial. 1.7 Otros terminales VDD: Positivo de alimentación. 2-6 Vcc. VSS: Negativo de alimentación. MCLR: Master Clear (Reset). Mientras en este terminal haya un nivel bajo (0 Vcc), el microcontrolador permanece inactivo. OSC1/CLKIN: Entrada del oscilador (cristal). Entrada de oscilador externo. OSC2/CLKOUT: Salida del oscilador (cristal).

Page 136: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -4-

Arquitectura Interna Como se observa en la figura el diagrama de bloques del PIC, este consta de un procesador con una ALU y un Decodificador de Instrucciones, una memoria de programas tipo FLASH de 4K palabras de 14 bits, una memoria de datos SRAM on 192 posiciones de 8 bits. También existe una zona de 128 bytes de EEPROM para datos no volátiles. Finalmente dispone de interrupciones, un temporizador, WDT (perro guardián), los terminales de E/S (PORTA, PORTB y PORTC) configurables por software y los módulos especiales (timers, comparadores, puerto serie).

RD0/PSP0

RD1/PSP1

RD2/PSP2

RD3/PSP3

RD4/PSP4

RD5/PSP5

RD6/PSP6

RD7/PSP7

RC0/T1OSO/T1CKI

RC1/T1OSI/CCP2RC2/CCP1

RC3/SCK/SCL

RC4/SDI/SDA

RC5/SDO

RC6/TX/CK

RC7/RX/DT

PUERTA D

RB0/INT

RA0/AN0

PUERTA B

RE0/ANS/RD#

RE1/AN6/WR#

RE2/AN7/C5#

PUERTA A

RA1/AN1

RA2/AN2

RA3/AN3/VREF

RA4/T0CKI

RA5/AN4/SS#

RB1

RB2

RB3/PGM

RB4

RB5

RB6/PGC

RB7/PGD

PUERTA C

PERTA E

TIMER 0 TIMER 1CONVERSOR A/DDE 10 BITS

TIMER 2

MEMORIA EEPROM

USARTCCP1CCP2

PUERTA SERIESÍNCRONA

MEMORIA DE

CÓDIGO(FLASH)

REGISTRO DEINSTRUCCIONES

PC

MEMORIA DE

DATOS(SRAM)

PILA DE 8 NIVELESDE 13 BITS

MPX

FR

ESTADO

MPXDECODIFICADOR DEINSTRUCCIONES

TEMPORIZADOR DECONEXIÓN DE POTENCIA

TEMPORIZADOR DE INICIO

RESETPOWER-ON

PERROGUARDIÁN

RESETBROWN-OUT

DEPURACIÓN EN CIRCUITO

PROGRAMACIÓN CON BAJO VOLTAJE

MCRL# VDD VSS

PUERTA PARALELAESCLAVA

ALU

W

RELOJ

OSC1/CLKIN

OCS2/CLKOUT

Figura No. 1.5 Arquitectura Interna del Pic16F873.

Page 137: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -5-

1.8.1 EL Procesador o CPU El procesador responde a la arquitectura RISC, que se identifica porque el juego de instrucciones se reduce a 35, donde la mayoría se ejecutan en un ciclo de reloj, excepto las instrucciones de salto que necesitan dos ciclos. La ALU (Unidad Aritmético Lógica), ubicada dentro del procesador realiza las operaciones lógicas y aritméticas con dos operandos, uno que recibe desde el registro W (registro de trabajo) y otro que puede provenir de cualquier registro interno. 1.8.2 Memoria de Programa La memoria de programa es del tipo flash. La memoria flash es una memoria no volátil, de bajo consumo que se puede escribir y borrar eléctricamente. Es programable en el circuito como la EEPROM pero de mayor densidad y más rápida. Posee una memoria de 4K palabras, es decir permite hasta 4096 instrucciones de 14 bits cada una. 1.8.3 Memoria de Datos Se encuentra en dos zonas diferentes: 1- Memoria tipo RAM (SRAM): Se divide en 4 bancos o paginas de 128 registros de 8 bits cada uno, aunque no todos los registros están implementados físicamente. Los registros se dividen en: Registros especiales: Cada uno tiene una función específica que se analizará más adelante. Registros de uso general: Son los registros que le permiten al usuario almacenar valores temporalmente (variables) durante la ejecución del programa. 2- Memoria de datos tipo EEPROM: esta compuesta de por 128 registros de 8 bits cada uno. Este tipo de memoria es capaz de guardar la información más de 40 años. La memoria de datos tipo RAM. Está compuesta por registros de 8 bits y dividida en 2 áreas: Registros especiales: Cada uno tiene una función específica que se analizará más adelante. Registros de uso general: Son los registros que le permiten al usuario almacenar valores temporalmente (variables) durante la ejecución del programa. La memoria está dividida en 4 bancos. Banco 0: 000H-07FH Banco 1: 080H-0FFH Banco 2: 100H-17FH Banco 3: 180H-1FFH Cada banco se compone de 128 registros de 8 bits cada uno. Los primeros 20 registros se reservan para los registros especiales, los restantes se utilizan para uso general. No todos los registros están implementados físicamente. El banco se debe seleccionar por software. Para ello se utilizan los bits RP0 y RP1 del registro STATUS.

Page 138: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -6-

1.8.3.1 Registros de uso general. Estos registros sólo están implementados físicamente los registros del banco 0 y el 1. Son 192 registros. Las direcciones en el banco 2 y 3 están mapeadas a las direcciones correspondientes del banco 0 y 1 respectivamente. Por ejemplo, la dirección 02CH (banco 0) y 12CH (banco 2) acceden al mismo registro (02CH). Los registros especiales están repartidos en los 4 bancos. A continuación veremos las funciones de los principales. 1.8.3.1.1 Registro STATUS

Tabla 2 Registro STATUS

Este registro contiene algunos bits que representan el estado de la ALU (operaciones aritméticas y lógicas), el estado de Reset y el bit de selección del banco de la memoria. Descripción de los bits: IRP: Se utiliza para el direccionamiento indirecto(permite seleccionar el banco). RP0=0 y RP1=0: Banco 0 seleccionado. RP0=0 y RP1=1: Banco 1 seleccionado. RP0=1 y RP1=0: Banco 2 seleccionado. RP0=1 y RP1=1: Banco 3 seleccionado. TO: Bit de Time-out: Este bit se coloca automáticamente en 1 luego de ejecutarse la instrucción CLRWDT, SLEEP o de finalizado el ciclo de Power-up (inicialización). El bit vuelve a 0 automáticamente cuando ocurre un evento de time-out de WDT. PD: Bit de Power-down: Este bit se coloca automáticamente en 1 luego de ejecutarse la instrucción CLRWDT o de finalizado el ciclo de Power-up (inicialización). El bit vuelve a 0 automáticamente cuando se ejecuta la instrucción SLEEP. Z: Bit Cero Z=1: Si el resultado de una operación aritmética o lógica es cero. Z=0: Si el resultado de una operación aritmética o lógica no es cero. DC: Bit de acarreo del 4to bit (útil para trabajar con dígitos BCD) DC=1: En una operación de suma, el resultado de la operación entre los 4 bits menos significativos de los sumandos es mayor a 15. El resultado en una resta es igual o mayor a 0.

Page 139: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -7-

DC=0: En una operación de suma, el resultado de la operación entre los 4 bits menos significativos de los sumandos es mayor a 15. El resultado en una resta es menor a 0. C: Bit de acarreo C=1: El resultado de una suma es mayor a 255. El resultado de una resta es igual o mayor a 0. C=0: El resultado de una suma es menor o igual a 255. El resultado de una resta es menor a 0.

1.8.3.1.2 Registro OPTION

Tabla No. 3 Registro OPTION

A este registro lo etiquetaremos OPTION_REG. Este cambio se debe a que OPTION es una etiqueta reservada (la instrucción OPTION se utiliza en algunos microcontroladores de la línea). El registro contiene una serie de bits de control relacionados con la configuración de TMR0, la interrupción externa y la habilitación de las resistencias de pull-up del PORTB. Todos los bits del registro se pueden leer o escribir desde el software.

1.8.3.1.3 Registro INTCON

Tabla No. 4 Registro INTCON

La misión principal de este registro es gobernar el comportamiento de las interrupciones, es decir permitir que el microcontrolador permita o no atender una rutina cuando se produce una interrupción.

1.8.4 Circuito de reloj. Para que el PIC 16F873 procese instrucciones, necesita un reloj cuyos impulsos determinen la velocidad de trabajo. El oscilador que genera esos impulsos esta implementado dentro del circuito integrado, pero para regular, seleccionar y estabilizar

Page 140: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -8-

la frecuencia de trabajo hay que colocar externamente cierta circuiteria entre los pines OSC1/CLKIN y OSC2/CLKOUT. La frecuencia de reloj principal determina el ciclo de instrucción (tiempo que tarda una instrucción en ejecutarse). En los PICs, un ciclo de instrucción emplea cuatro periodos de oscilación del reloj principal. Por ejemplo si la frecuencia del reloj principal es de 4 MHz, un ciclo de instrucción tardara en realizarse:

T oscilación del reloj principal = 1/F del reloj principal = 1/4MHz = 250ns

Ciclo de instrucción = T oscilación x4 = 250ns x 4 = 1µs

Tabla 1 Tiempo de Oscilación. Según los componentes externos que se coloquen se configuran cuatro tipos de osciladores: Tipo RC: Es un oscilador de bajo costo y poca estabilidad. Solo precisa una resistencia y un capacitor externos. Tipo HS: Es un oscilador de alta velocidad y muy estable funciona en frecuencias comprendidas entre 4 y 20MHz. Utiliza un cristal de cuarzo o un resonador cerámico. Tipo XT: También emplea el cristal de cuarzo o el resonador cerámico. Trabaja en frecuencias medias, comprendidas entre 100KHz y 4MHz. Tipo LP: Empleado en aplicaciones de bajo consumo, lo que conlleva una frecuencia pequeña. A mas velocidad, mas consumo. Usa cristal o resonador, y las frecuencias de trabajo oscilan entre 35 y 200KHz. 1.8.5 Perro guardián (Watchdog) El temporizador perro guardián (watchdog) es independiente del reloj principal (posee su propio oscilador), por lo tanto en el modo en bajo consumo puede seguir funcionando. Cuando llegue al valor máximo FFh, se produce el desbordamiento del perro guardián, se iniciara tomando el valor 00h y provocara un reset. El tiempo típico es de 18ms, pero utilizando un divisor de frecuencia (programable por software) se pueden alcanzar2.3 segundos. La utilización del perro guardián permite controlar los posibles cuelgues del programa, esto es si durante el programa hemos previsto poner a cero el perro guardián para evitar que se genere un reset, en el momento que por un fallo no previsto el programa se quede en un bucle sin fin, al no poder poner a cero el perro guardián, este generara un reset sacando al programa del bucle. 1.8.6 Temporizadores

Este microcontrolador consta de tres temporizadores: TMR0, TMR1 y TMR2.Pueden funcionar de dos modos que so: contador o temporizador.

Page 141: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -9-

1.8.7 Temporizador TMR1

De los tres temporizadores disponibles en los PIC16F87X éste es el único que tiene un tamaño de 16 bits y que actúa como un Temporizador/Contador. Para manejar 16 bits es preciso concatenar dos registros de 8 bits: TMR1H:TMR1L, que son los encargados de guardar la cuenta en cada instante. Dicho valor evoluciona desde 0000H hasta FFFFH y al regresar nuevamente al valor 0000H se acciona la señalización TMRlF, y si se desea se puede provocar la petición de una interrupción. El valor existente en TMR1H:TMR1L puede ser leído o escrito y los pulsos de reloj que originan la cuenta ascendente pueden provenir del exterior o de la frecuencia de funcionamiento del microcontrolador(Fosc/4).

El TMR1 puede funcionar de tres maneras:

1) Como temporizador. 2) Como contador síncrono. 3) Como contador asíncrono.

En el modo temporizador el valor concatenado TMRI :TM1L se incrementa con cada ciclo de instrucción (Fosc/4). En el modo contador, el incremento se puede producir con los flancos ascendentes de un reloj, cuya entrada se aplica a las líneas RCO y RCI de la puerta C, o por los impulsos aplicados en la línea RCO.

1.8.8 Temporizador TMR2

El TMR2 es un temporizador ascendente de 8 bits y que también puede realizar operaciones especiales para el Puerto Serie Síncrono (SSP) y para los módulos de Captura y Comparación. La señal de reloj del TMR2 es la interna Fosc/4, y antes de ser aplicada pasa por un pre-divisor de frecuencia con rangos 1:1, 1:4 y 1:16. La salida del TMR2 atraviesa un post-divisor de frecuencia con rangos comprendidos entre 1:1 hasta 1:16, pasando por los 16 valores posibles. Al entrar el microcontrolador en modo de reposo, se detiene el oscilador interno y TMR2 deja de funcionar.

1.8.9 Módulos de captura y comparación Los PIC16F87X disponen de dos módulos CCP, que se diferencian por su nomenclatura, CCP1 y CCP2, dado que su funcionamiento prácticamente es igual. 1.8.9.1 Módulos CCP en modo captura En modo captura, una pareja de registros captura el valor que tiene TMR1 cuando ocurre un evento especial en el pin RC2/CCP1 para el módulo CCP1 y en el pin RC1/T1OSI/CCP2 para el módulo CCP2. Los eventos posibles que pueden ocurrir sobre dichas pines son:

Page 142: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -10-

• Un flanco ascendente. • Un flanco descendente. • Cada 4 flancos ascendentes. • Cada 16 flancos ascendentes.

Al efectuar la captura se activa el señalizador CCP1F para el módulo CCP1, y si el bit de permiso está activado también se puede originar una petición de interrupción. Una interesante aplicación del modo de captura es la medición de los intervalos de tiempo que existen entre los impulsos que se aplican a un pin del PIC. 1.8.9.2 Módulos CCP en modo comparación En esta forma de trabajo, la pareja de registros CCPR1H-L compara su contenido, de forma continua, con el valor del TMR1. Cuando coinciden ambos valores se pone si el señalizador CCP1IF, y el pin RC2/CCP 1, que se halla configurada como salida, soporta uno de los siguientes eventos:

• Pasa a nivel alto. • Pasa a nivel bajo. • No cambia su estado pero se produce una interrupción.

1.8.12 PWM Con este modo de trabajo se consiguen pulsos cuyo ancho en el nivel alto es de duración variable y que son enormemente útiles en el control de los motores. La pata RC2/CCP 1 está configurada como salida y la oscilación entre los niveles lógicos 0 y 1 a intervalos variables de tiempo. Se intenta obtener un pulso cuyo nivel alto tenga un ancho variable (Duty Cicle), dentro del intervalo fijo del período del pulso. Para conseguir la oscilación de la pata se usa un comparador que pone a 1 (Set) un flip-flop cuando el valor del registro PR2 coincide con la parte alta del TMR2, momento en que TMR2 toma el valor 00H. Luego el flip-flop sé resetea y se pone a 0 cuando otro comparador detecta la coincidencia del valor existente en CCPR1H con el de la parte alta de TMR2. Variando los valores que se cargan en PR2 y en CCPR1L se varía el intervalo de tiempo en que la pata de salida está a 1 y a 0 . 1.8.13 Conversor A/D Los PIC16F87X disponen de un conversor A/D de 10 bits de resolución y 5 canales de entrada. A través de una entrada seleccionada se aplica la señal analógica a un condensador de captura y mantenimiento y luego dicho valor se introduce al conversor, que usando la técnica de aproximaciones sucesivas proporciona un resultado digital equivalente de 10 bits. La tensión de referencia puede implementarse con la tensión interna de alimentación del PIC o bien con una externa introducida por los pines Ra3/An3/Vref+ y Ra2/An2/Vref-.

Page 143: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE A

APENDICE A -11-

1.8.14 Puerto de comunicación serie síncrono (MSSP). Este módulo, llamado MSSP, integrado en los PIC16F87X proporciona un excelente medio de comunicación con otros microcontroladores o periféricos que trabajan en serie. Tiene dos alternativas de trabajo:

• SPI (Serial Peripheral Interface). • I2C (Inter-Integrated Circuit).

La comunicación en modo SPI la utilizan principalmente las memorias RAM y EEPROM y utiliza tres líneas. En el modo I2C sólo se emplean dos líneas y se usa en la comunicación de circuitos integrados diversos. Básicamente el módulo MSSP está basado en dos registros: el SSPSR, que es un registro de desplazamiento que transforma la información serie en paralelo y viceversa, y el registro SSPBUF, que actúa como buffer de la información que se recibe o se transmite en serie. En transmisión, el byte que se desea enviar se carga en el SSPBUF y automáticamente se traspasa a SSPSR, donde se va desplazando bit a bit, sacándolo al exterior al ritmo de los pulsos de reloj. En recepción, los bits van entrando al ritmo del reloj por una pata del PIC y se van desplazando en el SSPSR hasta que lo llenan, en cuyo momento se traspasa la información al SSPEUF. En el modo SPI se utilizan tres líneas del PIC, mientras que en el modo I2C sólo se emplean dos líneas para la comunicación del PIC maestro con los circuitos integrados que funcionan como esclavos. 1.8.15 USART El USART soporta la comunicación serie síncrona y asíncrona. Puede funcionar como un sistema de comunicación bidireccional asíncrono o full duplex, adaptándose a multitud de periféricos que transfieren información de esta manera. También puede trabajar en modo unidireccional o halfduplex. En resumen puede trabajar de tres maneras: Serie Asíncrona (Full duplex, bidireccional). Serie Síncrona-Maestro (Halfduplex, unidireccional). Serie Síncrona-Esclavo (Halfduplex, unidireccional). En el primero, las transferencias de información se realizan sobre dos líneas TX y RX, saliendo y entrando los bits por dichas líneas al ritmo de la frecuencia controlada internamente por el USART. En el modo síncrono la comunicación se realiza sobre dos líneas, la DT, que traslada los bits en ambos sentidos a la frecuencia de los pulsos de reloj que salen por la línea CK desde el maestro.

Page 144: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

APENDICE B

PROGRAMA ENSAMBLADOR DEL MICROCONTROLADOR PIC16F873A

Page 145: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -1-

APENDICE B

PROGRAMA ENSAMBLADOR DEL MICROCONTROLADOR PIC16F873A

INCLUDE <P16F873A.INC> LIST P=16F873A DATO EQU 0X21 DATO_CORRECTO EQU 0X22 DATO_A_TRANSMITIR EQU 0X23 DATO_REGRESO EQU 0X24 DATO_INICIO EQU 0X25 DATO2 EQU 0X26 TIEMPO EQU 0X27 DATO5 EQU 0X28 TIEMPO2 EQU 0X29 CONTADOR1 EQU 0X2A CONTADOR2 EQU 0X2B CONTADOR3 EQU 0X2C ORG 0X00 goto INICIO ;//////////////////////RUTINA DE INTERRUPCION///// /////////////////// ORG 0X04 INTER movf RCREG,W ; GUARDAR EL DATO RE CIBIDO EN W movwf DATO_CORRECTO ; GUARDA EL DATO DE W EN DATO_CORRECTO btfsc INTCON,INTF goto PARO_EMERGENTE call COMPARAR0 SALIR retfie ;RECUPERA DIRECCION DE INTERRUPCION ; ///////PARO EMERGENTE POR SWITCH EN HARDWARE///// /////////////////// PARO_EMERGENTE movlw .100 movwf TIEMPO clrf DATO_INICIO clrf DATO2 movlw 0x24 call TRANSMISION BSF STATUS,RP0 MOVLW 0X07 MOVWF OPTION_REG bcf STATUS, RP0 ESPERAR2 BCF INTCON,T0IF MOVLW .217 MOVWF TMR0 ESPERAR1 BTFSS INTCON,T0IF GOTO ESPERAR1 DECFSZ TIEMPO,F GOTO ESPERAR2 bcf INTCON, INTF ;LIMPIO BIT DE INTERRUP CION RB0 bcf STATUS,RP0 retfie

Page 146: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -2-

;///////////////RUTINA DE TRANSMISION DE DATOS//// ////////////////// TRANSMISION movwf DATO5 bsf STATUS,RP0 ;BANCO1 bsf TXSTA, TXEN ;HABILITO TRANSMISIO N bcf STATUS,RP0 ;BANCO 0 movf DATO5,W ; movwf TXREG ; CARGO EL DATO A TR ANSMITIR bsf STATUS, RP0 ; BANCO 1 TX_DAT_W btfss TXSTA,TRMT ;SE TERMINO TRANSMIS ION? goto TX_DAT_W ; NO bcf TXSTA, TXEN ; CIERRA LA TRANSMI SION bcf STATUS, RP0 ; BANCO 0 return ;//////////////////PROGRAMA PRINCIPAL////////////// ////////////// INICIO bsf STATUS,RP0 ;BANCO1 bcf STATUS,RP1 movlw 0x00 movwf INTCON movlw 0xD0 movwf INTCON ;INT GLOBAL, RB0 Y LAS DE OTRO TIPO ;******************* CONFIGURA PUERTOS ********** **************** movlw 0x03 movwf ADCON1 ; LINEAS DE ENTRADA ANALOGI CAS Y UN VREF+ movlw 0x3F movwf TRISB ;PUERTO B 2 SALIDAS =0 Y 6 ENTRADAS=1 movlw 0x80 movwf TRISC ;(BIT 7 RX Y 6 TX) Y 6 SAL IDAS DIGITALES ;**************/HABILITA RECEPCIÓN DE DATOS POR PUE RTO SERIE********** bsf STATUS, RP0 ; BANCO 1 movlw .25 movwf SPBRG ;DETERMINA VELOCIDAD DE TRAN SMISION 9600 B/S bcf STATUS, RP0 ;BANCO 0 movlw b'10010000' movwf RCSTA ; PUERTO SERIE Y RECEPCION CONTINUA ;************************** TIMER *************** ***************** movlw 0x07 movwf OPTION_REG ; TIMER0 ;********************HABILITA PUERTO SERIE EN MODO ASINCRONO******* bsf STATUS, RP0 ;BANCO 1 movlw b'00000100' movwf TXSTA ; MODO ASINCRONO ciclo bsf PIE1, RCIE ;HABILITO INTERRUPCION P OR BUFFER LLENO bcf STATUS, RP0 ; BANCO 0 clrf DATO2

Page 147: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -3-

;**************************REVISION DE SWICH******* ************ BUCLE2 btfss PORTB,5 ;REVIZA SWITCH goto APAGAR_TARJETA movlw 0x40 addwf DATO2,W movwf PORTB ; LED INDICADOR DE ENCENDID O goto BUCLE2 ;//////////////////FIN DE PROGRAMA PRINCIPAL/////// /////////////// ;RUTINA PARA APAGAR TARJETA POR INTERRUPCION DE SWI TCH/////// APAGAR_TARJETA bcf STATUS, RP0 ; BANCO 0 movlw 0x00 movwf PORTB ;APAGA LED clrf DATO_INICIO clrf DATO2 movf RCREG,W ; VACIAR DATO DE RECEPCION movlw 0X00 movwf RCSTA ; DESHABILITO PUERTO SERIE bsf STATUS, RP0 ; BANCO 1 bcf PIE1, RCIE ;DESHABILITO INTERRUPCIO N POR BUFFER LLENO goto INICIO ;///////////// SELECCION DE CANALES//////////////// // COMPARAR0 bcf PIR1,RCIF movf DATO_CORRECTO,0 sublw 0x52 ; R btfss STATUS,Z goto COMPARAR1 btfss STATUS,C goto COMPARAR1 movf DATO_CORRECTO,0 movwf DATO_INICIO movlw 0x80 movwf DATO2 ; SIRVE PARA INDICAR QUE YA HAY ; COMUNICACION movlw 0x52 call TRANSMISION ; TRANSMITE UNA R PARA ACTIVAR FOCO EN HMI movlw 0xC0 movwf PORTB ;ACTIVA EL LED INDICADOR DE COMUNICACION Y DE ENCENDIDO return COMPARAR1 movf DATO_INICIO,0 sublw 0x52 ; R btfss STATUS,Z

Page 148: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -4-

goto APAGAR_TARJETA btfss STATUS,C goto APAGAR_TARJETA goto COMPARAR2 COMPARAR2 movf DATO_CORRECTO,0 sublw 0x53 ; S btfss STATUS,Z goto EQUIVOCO0 btfss STATUS,C goto EQUIVOCO0 goto ES_S EQUIVOCO0 movf DATO_CORRECTO,0 sublw 0x41 ;A btfss STATUS,Z goto EQUIVOCO1 btfss STATUS,C goto EQUIVOCO1 goto ES_A ;CANAL ANALOGICO 1 SELEC CIONADO EQUIVOCO1 movf DATO_CORRECTO,0 sublw 0x42 ;B btfss STATUS,Z goto EQUIVOCO2 btfss STATUS,C goto EQUIVOCO2 goto ES_B ;CANAL ANALOGICO 2 SELEC CIONADO EQUIVOCO2 movf DATO_CORRECTO,0 sublw 0x43 ;C btfss STATUS,Z goto EQUIVOCO3 btfss STATUS,C goto EQUIVOCO3 goto ES_C ;CANAL ANALOGICO 3 SELEC CIONADO EQUIVOCO3 movf DATO_CORRECTO,0 sublw 0x44 ;D btfss STATUS,Z goto EQUIVOCO4 btfss STATUS,C goto EQUIVOCO4 goto ES_D ;CANAL ANALOGICO 4 SELE CCIONADO EQUIVOCO4 movf DATO_CORRECTO,0 sublw 0x45 ;E btfss STATUS,Z goto EQUIVOCO5 btfss STATUS,C goto EQUIVOCO5 goto ES_E ;CANAL DIGITAL 1 SELECC IONADO EQUIVOCO5 movf DATO_CORRECTO,0 sublw 0x46 ;F btfss STATUS,Z goto EQUIVOCO6 btfss STATUS,C goto EQUIVOCO6 goto ES_F ;CANAL DIGITAL 2 SELECCI ONADO

Page 149: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -5-

EQUIVOCO6 movf DATO_CORRECTO,0 sublw 0x47 ;G btfss STATUS,Z goto EQUIVOCO7 btfss STATUS,C goto EQUIVOCO7 goto ES_G ;CANAL DIGITAL 3 SELECC IONADO EQUIVOCO7 movf DATO_CORRECTO,0 sublw 0x48 ;H btfss STATUS,Z goto EQUIVOCO8 btfss STATUS,C goto EQUIVOCO8 goto ES_H ;CANAL DIGITAL 4 SELECC IONADO EQUIVOCO8 movf DATO_CORRECTO,0 sublw 0x49 ;I btfss STATUS,Z goto EQUIVOCO9 btfss STATUS,C goto EQUIVOCO9 goto ES_I ;CANAL DIGITAL 5 SELEC CIONADO EQUIVOCO9 movf DATO_CORRECTO,0 sublw 0x4A ;J btfss STATUS,Z goto EQUIVOCO10 btfss STATUS,C goto EQUIVOCO10 goto ES_J ;CANAL DIGITAL EXTRA AUN NO PROGRAMADO EQUIVOCO10 movf DATO_CORRECTO,0 sublw 0x4B ;K btfss STATUS,Z goto EQUIVOCO11 btfss STATUS,C goto EQUIVOCO11 goto ES_K ;CANAL DIGITAL EXTRA A UN NO PROGRAMADO EQUIVOCO11 movf DATO_CORRECTO,0 sublw 0x4C ;L btfss STATUS,Z goto EQUIVOCO12 btfss STATUS,C goto EQUIVOCO12 goto ES_L ;CANAL DIGITAL EXTRA A UN NO PROGRAMADO EQUIVOCO12 movf DATO_CORRECTO,0 sublw 0x4D ;M btfss STATUS,Z goto EQUIVOCO13 btfss STATUS,C goto EQUIVOCO13 goto ES_M ;CANAL DIGITAL EXTRA AUN NO PROGRAMADO EQUIVOCO13 movf DATO_CORRECTO,0 sublw 0x4E ;N btfss STATUS,Z

Page 150: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -6-

goto ES_INCOR btfss STATUS,C goto ES_INCOR goto ES_N ;CANAL DIGITAL EXTRA AUN NO PROGRAMADO return ;////////////////////////////////////////////////// /////////////////// ES_S clrf DATO_INICIO ; BORRA EL DATO DE INICIO clrf DATO2 ;SIRVE PARA APAGAR EL LED DE COMUNICACION movlw 0x53 call TRANSMISION movf RCREG,W movlw 0x00 movwf PIR1 goto SALIR ;////////////// CANAL ANALOGICO 1////////////////// /////// ES_A movlw 0x41 call TRANSMISION2 bcf STATUS,RP0 movlw 0x41 movwf ADCON0 ; FRECUENCIA, CANAL 1 Y MOD ULO ADC goto CANAL_ANA ;////////////// CANAL ANALOGICO 2////////////////// /////// ES_B movlw 0x42 call TRANSMISION bcf STATUS,RP0 movlw 0x42 movwf ADCON0 ; FRECUENCIA, CANAL 2 Y MOD ULO ADC goto CANAL_ANA ;//////////////CANAL ANALOGICO 3/////////////////// ////// ES_C movlw 0x43 call TRANSMISION2 bcf STATUS,RP0 movlw 0x43 movwf ADCON0 ; FRECUENCIA, CANAL 3 Y MOD ULO ADC goto CANAL_ANA ;//////////////CANAL ANALOGICO 4/////////////////// ////// ES_D movlw 0x44 call TRANSMISION2 bcf STATUS,RP0 movlw 0x44 movwf ADCON0 ; FRECUENCIA, CANAL 4 Y MOD ULO ADC goto CANAL_ANA

Page 151: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -7-

;///////////////////////////CANAL DIGITAL 1/////// ////////////////// ES_E movlw 0x45 call TRANSMISION2 bcf STATUS, RP0 LEC_P1 movf PORTB,W call TRANSMISION2 ;TRANSMITE EL DATO LEIDO movf RCREG,W ;VERIFICA SI HAY ALGUN NUEVO D ATO EN EL PUERTO sublw 0x45 ;E btfss STATUS,Z goto ES_S ;CANCELA LA LECTURA DEL PUERTO Y REGRESA AL INICIO btfss STATUS,C goto ES_S call RETAR1 ; RETARDO DE MUESTREO goto LEC_P1 ;RETORNA PARA HACER OTRA LECTU RA ;///////////////////////////CANAL DIGITAL 2//////// ///////////////// ES_F movlw 0x46 call TRANSMISION2 bcf STATUS, RP0 LEC_P2 movf PORTB,W call TRANSMISION2 ;TRANSMITE EL DATO LEIDO movf RCREG,W ;VERIFICA SI HAY ALGUN NUEVO D ATO EN EL PUERTO sublw 0x46 ;F btfss STATUS,Z goto ES_S ;CANCELA LA LECTURA DEL PUERTO Y REGRESA AL ;INICIO btfss STATUS,C goto ES_S call RETAR1 ;RETARDO DEL MUESTREO goto LEC_P2 ;RETORNA PARA HACER OTRA LECTU RA ;/////////////////////////CANAL DIGITAL 3////////// /////////////// ES_G movlw 0x47 call TRANSMISION2 bcf STATUS, RP0 LEC_P3 movf PORTB,W call TRANSMISION2 ;TRANSMITE EL DATO LEIDO movf RCREG,W ;VERIFICA SI HAY ALGUN NUEVO D ATO EN EL PUERTO sublw 0x47 ;G btfss STATUS,Z

goto ES_S ;CANCELA LA LECTURA DEL PUERTO Y REGRESA AL ;INICIO

btfss STATUS,C goto ES_S call RETAR1 ;RETARDO DE MUESTREO goto LEC_P3 ;RETORNA PARA HACER OTRA LECTU RA ;/////////////////////////CANAL DIGITAL 4////////// /////////////// ES_H movlw 0x48 call TRANSMISION2 bcf STATUS, RP0 LEC_P4 movf PORTB,W call TRANSMISION2 ;TRANSMITE EL DATO LEIDO movf RCREG,W ;VERIFICA SI HAY ALGUN NUEVO D ATO EN EL PUERTO sublw 0x48 ;H btfss STATUS,Z

Page 152: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -8-

goto ES_S ;CANCELA LA LECTURA DEL PUERTO Y REGRESA AL ; INICIO btfss STATUS,C goto ES_S call RETAR1 ; RETARDO DE MUESTREO goto LEC_P4 ;RETORNA PARA HACER OTRA LECTU RA ;/////////////////////////CANAL DIGITAL 5////////// /////////////// ES_I movlw 0x49 call TRANSMISION2 bcf STATUS, RP0 LEC_P5 movf PORTB,W call TRANSMISION2 ;TRANSMITE EL DATO LEIDO movf RCREG,W ;VERIFICA SI HAY ALGUN NUEVO D ATO EN EL PUERTO sublw 0x49 ;I btfss STATUS,Z goto ES_S ;CANCELA LA LECTURA DEL PUERTO Y REGRESA AL INICIO btfss STATUS,C goto ES_S call RETAR1 ;RETARDO DE MUESTREO goto LEC_P5 ;RETORNA PARA HACER OTRA LECTU RA ;;/////////////////////CANALES DIGITALES EXTRAS /// ////// ; ESTOS CANALES NO FUERON PROGRAMADOS SE DEJARAN PENDIENTES PARA NUEVAS FUNIONES ES_J movlw 0x4C call TRANSMISION ;call USART2 goto SALIR ES_K movlw 0x4C call TRANSMISION ;call USART2 goto SALIR ES_L movlw 0x4C call TRANSMISION ;call USART2 goto SALIR ES_M movlw 0x4D call TRANSMISION ;call USART2 goto SALIR ES_N movlw 0x4E call TRANSMISION ;call USART2 goto SALIR ES_INCOR movlw 0x40 call TRANSMISION bcf PIR1,RCIF goto SALIR

Page 153: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -9-

;////////////// RETARDO DE MUESTREO ANALOGICO////// /////////////////// RETAR movlw 0x0F movwf CONTADOR1 DEC3 movlw 0x0A movwf CONTADOR2 DEC2 movlw 0xFF movwf CONTADOR3 DEC1 decfsz CONTADOR3,F goto DEC1 decfsz CONTADOR2,F goto DEC2 decfsz CONTADOR1,F goto DEC3 goto INI_CONVER ;////////////// RETARDO DE MUESTREO DIGITAL//////// ///////////////// RETAR1 movlw 0x1F movwf CONTADOR1 DEC6 movlw 0xFF movwf CONTADOR2 DEC5 movlw 0xFF movwf CONTADOR3 DEC4 decfsz CONTADOR3,F goto DEC4 decfsz CONTADOR2,F goto DEC5 decfsz CONTADOR1,F goto DEC6 return ;//////////// INICIA LA CONVERSION DE SEÑALES ANAL OGICAS//// CANAL_ANA bsf STATUS, RP0 ;BANCO 0 movlw 0x00 movwf ADCON1 ; 5 CANALES ANALOGIC OS bcf STATUS, RP0 OTRA_CONVER goto RETAR INI_CONVER bsf ADCON0,2 ;INICIO CONVER SION ESPERA_CONVER btfsc ADCON0,2 goto ESPERA_CONVER ;NO HA TERMINA DO LA CONVERSION movf ADRESH,W ;YA TERMINO call TRANSMISION2 bcf PIR1, ADIF ;LIMPIO BANDER A DEL ADC movf RCREG,W ;VERIFICA SI HAY ALGUN NUEVO DATO ; EN EL PUERTO sublw 0x41 ;M btfss STATUS,Z goto ES_S ;CANCELA LA LECTURA DEL PUERTO Y ;REGRESA AL INICIO btfss STATUS,C goto ES_S ;CANCELA LA LECTURA DEL PU ERTO Y ;REGRESA AL INICIO goto OTRA_CONVER ;RETORNA PARA HACE R OTRA CONVERSION

Page 154: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE B

APENDICE B -10-

;/////////TRANSMITE LOS DATOS RESULTANTES DE LA CON VERSION ANALOGICA/ TRANSMISION2 movwf DATO5 bsf STATUS,RP0 ;BANCO1 bsf TXSTA, TXEN ;HABILITO TRANSMISIO N bcf STATUS,RP0 ;BANCO 0 movf DATO5,W movwf TXREG ; CARGO EL DATO A TR ANSMITIR bsf STATUS, RP0 ; BANCO 1 TX_DAT_W2 btfss TXSTA,TRMT ; TERMINO TRANSMISIO N? goto TX_DAT_W2 ; NO bcf TXSTA, TXEN ; CIERRO LA TRANSMIS ION bcf STATUS, RP0 ; BANCO 0 return ;///////////////////// FINAL DE PROGRAMA////////// //////////// END

Page 155: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

APENDICE C

PROGRAMA DE INTERFACE GRAFICA

Page 156: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 1 -

APENDICE C

PROGRAMA DE INTERFACE GRAFICA

INTERFACE GRAFICA (PANTALLA PRINCIPAL SERVIDOR) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim PUERTO As MSComm Dim indicadores As Control Dim SELEC_CANALES As Frame Dim TIMER_PRINC As Timer Dim basura As String Dim recibo As String ‘///////CONDICIONES INICIALES PARA INICIAR LA APLICACIÓN///////////// Private Sub Form_Load() fra_canales.Enabled = True FORM1.Width = 12000 FORM1.Height = 8800 fra_inicio.Height = 3615 fra_inicio.Width = 4915 comu.Settings = "9600,n,8,1" comu.PortOpen = True Timer1.Enabled = True combAnalogico.AddItem "SENSOR_ANALOGICO1" combAnalogico.AddItem "SENSOR_ANALOGICO2" combAnalogico.AddItem "SENSOR_ANALOGICO3" combAnalogico.AddItem "SENSOR_ANALOGICO4" Set PUERTO = comu Set indicadores = LED_LINEA Set indicadores = LED_PARO Set TIMER_PRINC = Timer1 End Sub HABILITA LAS CONECCIONES REMOTAS Private Sub escuchar_Click() Winsock1.Listen End Sub

Page 157: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 2 -

'AL OCURRIR EL EVENTO CLICK SOBRE EL BOTON INICIO ENVIA DATO AL ‘HARDWARE DE ADQUISICION DE DATOS PARA ‘ENCENDERLO Private Sub swInicio_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "R" comu.Output = "R" Timer1.Enabled = True 'HABILITA LA RECEPCION DE DATOS POR PUERTO SERIE End Sub ‘AL OCURRIR EL EVENTO CLICK SOBRE EL BOTON RESET ENVIA DATO AL ‘HARDWARE DE ADQUISICION DE DATOS PARA RESETEARLO Private Sub RESET_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "S" comu.Output = "S" Timer1.Enabled = True End Sub 'ESPERA EL DATO QUE ENVIARA EL HARDWARE DE ADQUISICION DE ‘DATOS ‘PARA INDICAR QUE EL HARDWARE SE HA ENCENDIDO CORRECTAMENTE Y ‘SI EL DATO ES CORRECTO ACTIVA LOS INDICADORES DE COMUNICACIÓN ‘ACTIVA Y HABILITARA LA SELECCIÓN DE LOS SENSORES. Private Sub Timer1_Timer() If comEvReceive = comu.CommEvent Then recibo = comu.Input If recibo = "R" Then LED_ENCENDIDO.Value = True LED_LINEA.Value = True LED_PARO.Value = False Timer1.Enabled = False fra_canales.Enabled = True Else LED_LINEA.Value = False LED_ENCENDIDO.Value = False LED_PARO.Value = True fra_canales.Enabled = False Timer1.Enabled = False End If End If End Sub '///////////SELECCIÓNA EL SENSOR QUE SE DESEA MONITOREAR//////////// Private Sub combAnalogico_Click() Select Case combAnalogico.Text Case "SENSOR ANALOGICO1" Call SENSOR_ANALOGICO1 'SELECCION DEL SENSOR 1 Text1.Text = "TEMPERATURA1" Case "SENSOR ANALOGICO2" Call SENSOR_ANALOGICO2 'SELECCION DEL SENSOR 2

Page 158: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 3 -

Text1.Text = "TEMPERATURA2" Case "SENSOR_ANALOGICO3" Call SENSOR_ANALOGICO3 'SELECCION DEL SENSOR 3 Text1.Text = "NIVEL" Case "SENSOR_ANALOGICO4" Call SENSOR_ANALOGICO4 'SELECCION DEL SENSOR 4 Text1.Text = "SENSOR ANALOGICO4" End Select End Sub 'RUTINA PARA HABILITAR LA PANTALLA 2 Y OCULTAR PANTALLA 1 Sub SENSOR_ANALOGICO1() Form2.Text3 = comu.Input fra_canales.Enabled = False Timer1.Enabled = False Form2.Show FORM1.Hide End Sub 'RUTINA PARA HABILITAR LA PANTALLA 3 Y OCULTAR PANTALLA 1 Sub SENSOR_ANALOGICO2() fra_canales.Enabled = False Timer1.Enabled = False Form3.Show FORM1.Hide End Sub 'RUTINA PARA HABILITAR LA PANTALLA 4 Y OCULTAR PANTALLA 1 Sub SENSOR_ANALOGICO3() fra_canales.Enabled = False Timer1.Enabled = False Form4.Show FORM1.Hide End Sub 'RUTINA PARA HABILITAR LA PANTALLA 5 Y OCULTAR PANTALLA 1 Sub SENSOR_ANALOGICO4() fra_canales.Enabled = False Timer1.Enabled = False 'Form5.Show FORM1.Hide End Sub

Page 159: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 4 -

'AL OCURRIR EL EVENTO CLICK SOBRE EL BOTON CERRAR 'ENVIA DATO AL HARDWARE DE ADQUISICION DE DATOS 'PARA APAGARLO Y ADEMAS CIERRA LA PANTALLA PRINCIPAL Private Sub cerrar_Click() comu.Output = "S" If comu.PortOpen = True Then comu.PortOpen = False End If Timer1.Enabled = False Unload Me End Sub

INTERFACE GRAFICA (PANTALLA 2 SERVIDOR) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim F As String Dim d As String Dim H As Integer Dim basura As String 'CONDICIONES INICIALES PARA ABRIR PANTALLA Private Sub Form_Load() Form2.Width = 10800 Form2.Height = 6300 Text3.Text = FORM1.comu.Input Text3.Text = FORM1.comu.Input End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE INICIO 'ENVIA EL CARACTER "A" HACIA EL MICROCONTROLADOR PARA ‘HABILITAR EL CANAL ANALOGICO 1 Private Sub INICIOCA_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "A" FORM1.comu.Output = ENVIAR_DATO Timer1.Enabled = True End Sub

Page 160: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 5 -

'ESPERA HASTA QUE SE RECIBA EL DATO ENVIADO POR EL 'MICROCONTROLADOR HACIA LA PC PARA, EN RESPUESTA A LA PETICION 'PARA ACTIVAR EL CANAL 1. INICIA LA VISUALIZACION Y GRAFICACION DE 'LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE DATOS. Private Sub Timer1_Timer() If comEvReceive = FORM1.comu.CommEvent Then F = FORM1.comu.Input If F = "A" Then VERDE.Value = True Text1.Text = F Timer2.Enabled = True Timer1.Enabled = False Text3.Text = FORM1.comu.Input Else End If End If End Sub 'GRAFICA LOS DATOS ENVIADOS POR EL HARDWARE DE ADUISICION DE ‘DATOS Private Sub Timer2_Timer() d = FORM1.comu.Input H = Val(d) Text2.Text = d GRAFICA.ChartY H reloj.Value = H End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE RESET 'ENVIA EL CARACTER "S" HACIA EL MICROCONTROLADOR PARA ‘DESHABILITAR EL CANAL ANALOGICO, CIERRA LA PANTALLA 2 Y REGRESA ‘A LA PANTALLA PRICIPAL Private Sub CWRESET_ValueChanged(ByVal Value As Boolean) Timer3.Enabled = True End Sub Private Sub Timer3_Timer() basura = FORM1.comu.Input If basura = "" Then Timer2.Enabled = False FORM1.comu.Output = "S" FORM1.LED_LINEA = False Text1.Text = FORM1.LED_LINEA FORM1.Text1 = FORM1.comu.Input FORM1.Timer1 = True Timer3.Enabled = False FORM1.Show Form2.Hide Unload Me Else End If End Sub

Page 161: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 6 -

INTERFACE GRAFICA (PANTALLA 3 SERVIDOR) ‘//////////////////////////////////DECLARACION DE VARIABLES ///////////////////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim F As String Dim d As String Dim H As Integer Dim basura As String 'CONDICIONES INICIALES PARA ABRIR PANTALLA Private Sub Form_Load() Form3.Width = 10800 Form3.Height = 6300 End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE INICIO 'ENVIA EL CARACTER "A" HACIA EL MICROCONTROLADOR PARA ‘HABILITAR EL CANAL ANALOGICO 1 Private Sub INICIOCA_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "B" FORM1.comu.Output = ENVIAR_DATO Timer1.Enabled = True End Sub 'ESPERA HASTA QUE SE RECIBA EL DATO ENVIADO POR EL 'MICROCONTROLADOR HACIA LA PC PARA, EN RESPUESTA A LA PETICION 'PARA ACTIVAR EL CANAL 1. INICIA LA VISUALIZACION Y GRAFICACION DE 'LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE DATOS. Private Sub Timer1_Timer() If comEvReceive = FORM1.comu.CommEvent Then F = FORM1.comu.Input If F = "B" Then VERDE.Value = True Timer2.Enabled = True Timer1.Enabled = False Text3.Text = FORM1.comu.Input Else End If End If End Sub

Page 162: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 7 -

'GRAFICA LOS DATOS ENVIADOS POR EL HARDWARE DE ADUISICION DE ‘DATOS Private Sub Timer2_Timer() d = FORM1.comu.Input H = Val(d) Text2.Text = d GRAFICA.ChartY H reloj.Value = H End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE RESET 'ENVIA EL CARACTER "S" HACIA EL MICROCONTROLADOR PARA ‘DESHABILITAR EL CANAL ANALOGICO, CIERRA LA PANTALLA 2 Y REGRESA ‘A LA PANTALLA PRICIPAL Private Sub CWRESET_ValueChanged(ByVal Value As Boolean) Timer3.Enabled = True End Sub Private Sub Timer3_Timer() basura = FORM1.comu.Input If basura = "" Then Timer2.Enabled = False FORM1.comu.Output = "S" FORM1.LED_LINEA = False Text1.Text = FORM1.LED_LINEA FORM1.Text1 = FORM1.comu.Input FORM1.Timer1 = True Timer3.Enabled = False FORM1.Show Form3.Hide Unload Me Else End If End Sub

INTERFACE GRAFICA (PANTALLA 4 SERVIDOR) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim F As String Dim d As String Dim H As Integer Dim basura As String

Page 163: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 8 -

'CONDICIONES INICIALES PARA ABRIR PANTALLA Private Sub Form_Load() Form4.Width = 10800 Form4.Height = 6300 End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE INICIO 'ENVIA EL CARACTER "A" HACIA EL MICROCONTROLADOR PARA ‘HABILITAR EL CANAL ANALOGICO 1 Private Sub INICIOCA_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "C" FORM1.comu.Output = ENVIAR_DATO Timer1.Enabled = True End Sub 'ESPERA HASTA QUE SE RECIBA EL DATO ENVIADO POR EL MICROCONTROLADOR HACIA LA PC PARA, EN RESPUESTA A LA PETICION PARA ACTIVAR EL CANAL 1. INICIA LA VISUALIZACION Y GRAFICACION DE LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE DATOS. Private Sub Timer1_Timer() If comEvReceive = FORM1.comu.CommEvent Then F = FORM1.comu.Input If F = "D" Then VERDE.Value = True Timer2.Enabled = True Timer1.Enabled = False Text3.Text = FORM1.comu.Input Else End If End If End Sub 'GRAFICA LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE ‘DATOS Private Sub Timer2_Timer() d = FORM1.comu.Input H = Val(d) Text2.Text = d GRAFICA.ChartY H reloj.Value = H End Sub

Page 164: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 9 -

'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE RESET 'ENVIA EL CARACTER "S" HACIA EL MICROCONTROLADOR PARA ‘DESHABILITAR EL CANAL ANALOGICO, CIERRA LA PANTALLA 2 Y REGRESA ‘A LA PANTALLA PRICIPAL Private Sub CWRESET_ValueChanged(ByVal Value As Boolean) Timer3.Enabled = True End Sub Private Sub Timer3_Timer() basura = FORM1.comu.Input If basura = "" Then Timer2.Enabled = False FORM1.comu.Output = "S" FORM1.LED_LINEA = False Text1.Text = FORM1.LED_LINEA FORM1.Text1 = FORM1.comu.Input FORM1.Timer1 = True Timer3.Enabled = False FORM1.Show Form4.Hide Unload Me Else End If End Sub

INTERFACE GRAFICA (PANTALLA 5 SERVIDOR) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim F As String Dim d As String Dim H As Integer Dim basura As String 'CONDICIONES INICIALES PARA ABRIR PANTALLA Private Sub Form_Load() Form5.Width = 10800 Form5.Height = 6300 End Sub

Page 165: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 10 -

'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE INICIO 'ENVIA EL CARACTER "A" HACIA EL MICROCONTROLADOR PARA ‘HABILITAR EL CANAL ANALOGICO 1 Private Sub INICIOCA_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "D" FORM1.comu.Output = ENVIAR_DATO Timer1.Enabled = True End Sub 'ESPERA HASTA QUE SE RECIBA EL DATO ENVIADO POR EL MICROCONTROLADOR HACIA LA PC PARA, EN RESPUESTA A LA PETICION PARA ACTIVAR EL CANAL 1. INICIA LA VISUALIZACION Y GRAFICACION DE LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE DATOS. Private Sub Timer1_Timer() If comEvReceive = FORM1.comu.CommEvent Then F = FORM1.comu.Input If F = "B" Then VERDE.Value = True Timer2.Enabled = True Timer1.Enabled = False Text3.Text = FORM1.comu.Input Else End If End If End Sub 'GRAFICA LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE ‘DATOS Private Sub Timer2_Timer() d = FORM1.comu.Input H = Val(d) Text2.Text = d GRAFICA.ChartY H reloj.Value = H End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE RESET 'ENVIA EL CARACTER "S" HACIA EL MICROCONTROLADOR PARA ‘DESHABILITAR EL CANAL ANALOGICO, CIERRA LA PANTALLA 2 Y REGRESA ‘A LA PANTALLA PRICIPAL Private Sub CWRESET_ValueChanged(ByVal Value As Boolean) Timer3.Enabled = True End Sub Private Sub Timer3_Timer() basura = FORM1.comu.Input If basura = "" Then Timer2.Enabled = False FORM1.comu.Output = "S" FORM1.LED_LINEA = False Text1.Text = FORM1.LED_LINEA

Page 166: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 11 -

FORM1.Text1 = FORM1.comu.Input FORM1.Timer1 = True Timer3.Enabled = False FORM1.Show Form5.Hide Unload Me Else End If End Sub

INTERFACE GRAFICA (PANTALLA PRINCIPAL CLIENTE) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim indicadores As Control Dim SELEC_CANALES As Frame Dim TIMER_PRINC As Timer Dim basura As String Dim recibo As String Dim datos As String ‘///////CONDICIONES INICIALES PARA INICIAR LA APLICACIÓN///////////// Private Sub Form_Load() fra_canales.Enabled = True FORM1.Width = 12000 FORM1.Height = 8800 fra_inicio.Height = 3615 fra_inicio.Width = 4915 Timer1.Enabled = True combAnalogico.AddItem "SENSOR_ANALOGICO1" combAnalogico.AddItem "SENSOR_ANALOGICO2" combAnalogico.AddItem "SENSOR_ANALOGICO3" combAnalogico.AddItem "SENSOR_ANALOGICO4" Set PUERTO = comu Set indicadores = LED_LINEA Set indicadores = LED_PARO Set TIMER_PRINC = Timer1 End Sub 'AL OCURRIR EL EVENTO CLICK SOBRE EL BOTON INICIO ENVIA DATO AL ‘HARDWARE DE ADQUISICION DE DATOS PARA ‘ENCENDERLO Private Sub swInicio_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "R" winsock1.SendData = "R" Timer1.Enabled = True 'HABILITA LA RECEPCION DE DATOS POR PUERTO SERIE End Sub

Page 167: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 12 -

‘AL OCURRIR EL EVENTO CLICK SOBRE EL BOTON RESET ENVIA DATO AL ‘HARDWARE DE ADQUISICION DE DATOS PARA RESETEARLO Private Sub RESET_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "S" winsock1.SendData = "S" Timer1.Enabled = True End Sub 'ESPERA EL DATO QUE ENVIARA EL HARDWARE DE ADQUISICION DE ‘DATOS ‘PARA INDICAR QUE EL HARDWARE SE HA ENCENDIDO CORRECTAMENTE Y ‘SI EL DATO ES CORRECTO ACTIVA LOS INDICADORES DE COMUNICACIÓN ‘ACTIVA Y HABILITARA LA SELECCIÓN DE LOS SENSORES. Private Sub Timer1_Timer() If comEvReceive = comu.CommEvent Then recibo = comu.Input If recibo = "R" Then LED_ENCENDIDO.Value = True LED_LINEA.Value = True LED_PARO.Value = False Timer1.Enabled = False fra_canales.Enabled = True Else LED_LINEA.Value = False LED_ENCENDIDO.Value = False LED_PARO.Value = True fra_canales.Enabled = False Timer1.Enabled = False End If End If End Sub '///////////SELECCIÓNA EL SENSOR QUE SE DESEA MONITOREAR//////////// Private Sub combAnalogico_Click() Select Case combAnalogico.Text Case "SENSOR ANALOGICO1" Call SENSOR_ANALOGICO1 'SELECCION DEL SENSOR 1 Text1.Text = "TEMPERATURA1" Case "SENSOR ANALOGICO2" Call SENSOR_ANALOGICO2 'SELECCION DEL SENSOR 2 Text1.Text = "TEMPERATURA2" Case "SENSOR_ANALOGICO3" Call SENSOR_ANALOGICO3 'SELECCION DEL SENSOR 3 Text1.Text = "NIVEL" Case "SENSOR_ANALOGICO4" Call SENSOR_ANALOGICO4 'SELECCION DEL SENSOR 4

Page 168: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 13 -

Text1.Text = "SENSOR ANALOGICO4" End Select End Sub 'RUTINA PARA HABILITAR LA PANTALLA 2 Y OCULTAR PANTALLA 1 Sub SENSOR_ANALOGICO1() Form2.Text3 = comu.Input fra_canales.Enabled = False Timer1.Enabled = False Form2.Show FORM1.Hide End Sub 'RUTINA PARA HABILITAR LA PANTALLA 3 Y OCULTAR PANTALLA 1 Sub SENSOR_ANALOGICO2() fra_canales.Enabled = False Timer1.Enabled = False Form3.Show FORM1.Hide End Sub 'RUTINA PARA HABILITAR LA PANTALLA 4 Y OCULTAR PANTALLA 1 Sub SENSOR_ANALOGICO3() fra_canales.Enabled = False Timer1.Enabled = False Form4.Show FORM1.Hide End Sub 'RUTINA PARA HABILITAR LA PANTALLA 5 Y OCULTAR PANTALLA 1 Sub SENSOR_ANALOGICO4() fra_canales.Enabled = False Timer1.Enabled = False 'Form5.Show FORM1.Hide End Sub 'AL OCURRIR EL EVENTO CLICK SOBRE EL BOTON CERRAR 'ENVIA DATO AL HARDWARE DE ADQUISICION DE DATOS 'PARA APAGARLO Y ADEMAS CIERRA LA PANTALLA PRINCIPAL Private Sub cerrar_Click() winsock1.SendData = "S" If comu.PortOpen = True Then comu.PortOpen = False End If Timer1.Enabled = False Unload Me End SuB

Page 169: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 14 -

INTERFACE GRAFICA (PANTALLA2 CLIENTE) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim F As String Dim d As String Dim H As Integer Dim basura As String 'CONDICIONES INICIALES PARA ABRIR PANTALLA Private Sub Form_Load() Form2.Width = 10800 Form2.Height = 6300 Text3.Text = FORM1.Winsock1.GetData datos Text3.Text = FORM1.Winsock1.GetData datos End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE INICIO 'ENVIA EL CARACTER "A" HACIA EL MICROCONTROLADOR PARA ‘HABILITAR EL CANAL ANALOGICO 1 Private Sub INICIOCA_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "A" FORM1.winsock1.SendData = ENVIAR_DATO Timer1.Enabled = True End Sub 'ESPERA HASTA QUE SE RECIBA EL DATO ENVIADO POR EL MICROCONTROLADOR HACIA LA PC PARA, EN RESPUESTA A LA PETICION PARA ACTIVAR EL CANAL 1. INICIA LA VISUALIZACION Y GRAFICACION DE LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE DATOS. Private Sub Timer1_Timer() If comEvReceive = FORM1.comu.CommEvent Then F = FORM1.Winsock1.GetData datos If F = "A" Then VERDE.Value = True Text1.Text = F Timer2.Enabled = True Timer1.Enabled = False Text3.Text = FORM1.Winsock1.GetData datos Else End If End If End Sub

Page 170: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 15 -

'GRAFICA LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE ‘DATOS Private Sub Timer2_Timer() d = FORM1.Winsock1.GetData datos H = Val(d) Text2.Text = d GRAFICA.ChartY H reloj.Value = H End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE RESET 'ENVIA EL CARACTER "S" HACIA EL MICROCONTROLADOR PARA ‘DESHABILITAR EL CANAL ANALOGICO, CIERRA LA PANTALLA 2 Y REGRESA ‘A LA PANTALLA PRICIPAL Private Sub CWRESET_ValueChanged(ByVal Value As Boolean) Timer3.Enabled = True End Sub Private Sub Timer3_Timer() basura = FORM1.Winsock1.GetData datos If basura = "" Then Timer2.Enabled = False FORM1.winsock1.SendData = "S" FORM1.LED_LINEA = False Text1.Text = FORM1.LED_LINEA FORM1.Text1 = FORM1.Winsock1.GetData datos FORM1.Timer1 = True Timer3.Enabled = False FORM1.Show Form2.Hide Unload Me Else End If End Sub

INTERFACE GRAFICA (PANTALLA 3 CLIENTE) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim F As String Dim d As String Dim H As Integer Dim basura As String

Page 171: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 16 -

'CONDICIONES INICIALES PARA ABRIR PANTALLA Private Sub Form_Load() Form3.Width = 10800 Form3.Height = 6300 End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE INICIO 'ENVIA EL CARACTER "A" HACIA EL MICROCONTROLADOR PARA ‘HABILITAR EL CANAL ANALOGICO 1 Private Sub INICIOCA_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "B" FORM1.winsock1.SendData = ENVIAR_DATO Timer1.Enabled = True End Sub 'ESPERA HASTA QUE SE RECIBA EL DATO ENVIADO POR EL MICROCONTROLADOR HACIA LA PC PARA, EN RESPUESTA A LA PETICION PARA ACTIVAR EL CANAL 1. INICIA LA VISUALIZACION Y GRAFICACION DE LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE DATOS. Private Sub Timer1_Timer() If comEvReceive = FORM1.comu.CommEvent Then F = FORM1.Winsock1.GetData datos If F = "B" Then VERDE.Value = True Timer2.Enabled = True Timer1.Enabled = False Text3.Text = FORM1.Winsock1.GetData datos Else End If End If End Sub 'GRAFICA LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE ‘DATOS Private Sub Timer2_Timer() d = FORM1.Winsock1.GetData datos H = Val(d) Text2.Text = d GRAFICA.ChartY H reloj.Value = H End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE RESET 'ENVIA EL CARACTER "S" HACIA EL MICROCONTROLADOR PARA ‘DESHABILITAR EL CANAL ANALOGICO, CIERRA LA PANTALLA 2 Y REGRESA ‘A LA PANTALLA PRICIPAL Private Sub CWRESET_ValueChanged(ByVal Value As Boolean) Timer3.Enabled = True End Sub

Page 172: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 17 -

Private Sub Timer3_Timer() basura = FORM1.Winsock1.GetData datos If basura = "" Then Timer2.Enabled = False FORM1.winsock1.SendData = "S" FORM1.LED_LINEA = False FORM1.Text1 = FORM1.Winsock1.GetData datos FORM1.Timer1 = True Timer3.Enabled = False FORM1.Show Form3.Hide Unload Me Else End If End Sub

INTERFACE GRAFICA (PANTALLA 4CLIENTE) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim F As String Dim d As String Dim H As Integer Dim basura As String 'CONDICIONES INICIALES PARA ABRIR PANTALLA Private Sub Form_Load() Form4.Width = 10800 Form4.Height = 6300 End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE INICIO 'ENVIA EL CARACTER "A" HACIA EL MICROCONTROLADOR PARA ‘HABILITAR EL CANAL ANALOGICO 1 Private Sub INICIOCA_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "C" FORM1.winsock1.SendData = ENVIAR_DATO Timer1.Enabled = True End Sub 'ESPERA HASTA QUE SE RECIBA EL DATO ENVIADO POR EL MICROCONTROLADOR HACIA LA PC PARA, EN RESPUESTA A LA PETICION PARA ACTIVAR EL CANAL 1. INICIA LA VISUALIZACION Y GRAFICACION DE LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE DATOS. Private Sub Timer1_Timer() If comEvReceive = FORM1.comu.CommEvent Then F = FORM1.Winsock1.GetData datos If F = "D" Then

Page 173: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 18 -

VERDE.Value = True Timer2.Enabled = True Timer1.Enabled = False Text3.Text = FORM1.Winsock1.GetData datos Else End If End If End Sub 'GRAFICA LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE ‘DATOS Private Sub Timer2_Timer() d = FORM1.Winsock1.GetData datos H = Val(d) Text2.Text = d GRAFICA.ChartY H reloj.Value = H End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE RESET 'ENVIA EL CARACTER "S" HACIA EL MICROCONTROLADOR PARA ‘DESHABILITAR EL CANAL ANALOGICO, CIERRA LA PANTALLA 2 Y REGRESA ‘A LA PANTALLA PRICIPAL Private Sub CWRESET_ValueChanged(ByVal Value As Boolean) Timer3.Enabled = True End Sub Private Sub Timer3_Timer() basura = FORM1.Winsock1.GetData datos If basura = "" Then Timer2.Enabled = False FORM1.winsock1.SendData = "S" FORM1.LED_LINEA = False FORM1.Text1 = FORM1.Winsock1.GetData datos FORM1.Timer1 = True Timer3.Enabled = False FORM1.Show Form4.Hide Unload Me Else End If End Sub

INTERFACE GRAFICA (PANTALLA CLIENTE) ‘//////////////////////////////////DECLARACION DE VARIABLES ////////////// Option Explicit Dim ENVIAR_DATO As String Dim RECIVIR_DATO As String Dim cadena As String Dim F As String

Page 174: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 19 -

Dim d As String Dim H As Integer Dim basura As String 'CONDICIONES INICIALES PARA ABRIR PANTALLA Private Sub Form_Load() Form5.Width = 10800 Form5.Height = 6300 End Sub 'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE INICIO 'ENVIA EL CARACTER "A" HACIA EL MICROCONTROLADOR PARA ‘HABILITAR EL CANAL ANALOGICO 1 Private Sub INICIOCA_ValueChanged(ByVal Value As Boolean) ENVIAR_DATO = "D" FORM1.winsock1.SendData = ENVIAR_DATO Timer1.Enabled = True End Sub 'ESPERA HASTA QUE SE RECIBA EL DATO ENVIADO POR EL MICROCONTROLADOR HACIA LA PC PARA, EN RESPUESTA A LA PETICION PARA ACTIVAR EL CANAL 1. INICIA LA VISUALIZACION Y GRAFICACION DE LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE DATOS. Private Sub Timer1_Timer() If comEvReceive = FORM1.comu.CommEvent Then F = FORM1.Winsock1.GetData datos If F = "B" Then VERDE.Value = True Timer2.Enabled = True Timer1.Enabled = False Text3.Text = FORM1.Winsock1.GetData datos Else End If End If End Sub 'GRAFICA LOS DATOS ENVIADOS POR EL HARDWARE DE ADQUISICION DE ‘DATOS Private Sub Timer2_Timer() d = FORM1.Winsock1.GetData datos H = Val(d) Text2.Text = d GRAFICA.ChartY H reloj.Value = H End Sub

Page 175: Sistema de Adquisicion de Datos de Sensores Analogicos y Digitales

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA APENDICE C

APENDICE C - 20 -

'AL PRODUCIRSE EL EVENTO CLICK SOBRE EL BOTON DE RESET 'ENVIA EL CARACTER "S" HACIA EL MICROCONTROLADOR PARA ‘DESHABILITAR EL CANAL ANALOGICO, CIERRA LA PANTALLA 2 Y REGRESA ‘A LA PANTALLA PRICIPAL Private Sub CWRESET_ValueChanged(ByVal Value As Boolean) Timer3.Enabled = True End Sub Private Sub Timer3_Timer() basura = FORM1.Winsock1.GetData datos If basura = "" Then Timer2.Enabled = False FORM1.winsock1.SendData = "S" FORM1.LED_LINEA = False FORM1.Text1 = FORM1.Winsock1.GetData datos FORM1.Timer1 = True Timer3.Enabled = False FORM1.Show Form5.Hide Unload Me Else End If End Sub