Date post: | 19-Jan-2016 |
Category: |
Documents |
Upload: | aguevara29 |
View: | 50 times |
Download: | 6 times |
1
UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA ELÉCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMÁTICA
DESARROLLO DE UN MÓDULO DE ALMACENAMIENTO MASIVO DE DATOS PARA
SEÑALES ANALÓGICAS DE CONTROL CON COMUNICACIÓN USB
ALUMNO:
BR. ANGEL GUEVARA
BÁRBULA, NOVIEMBRE 2012
2
UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA ELÉCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMÁTICA
DESARROLLO DE UN MÓDULO DE ALMACENAMIENTO MASIVO DE DATOS PARA
SEÑALES ANALÓGICAS DE CONTROL CON COMUNICACIÓN USB
Trabajo especial de grado presentado ante la ilustre Universidad de Carabobo para optar
por el título de Ingeniero Electricista
PROFESOR GUÍA: ALUMNO:
ING. ANGEL VILLEGAS BR. ANGEL GUEVARA
BÁRBULA, NOVIEMBRE 2012
3
UNIVERSIDAD DE CARABOBO
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA ELÉCTRICA
DEPARTAMENTO DE SISTEMAS Y AUTOMÁTICA
CERTIFICADO DE APROBACIÓN
Los abajo firmantes, miembros del jurado designados para evaluar el proyecto de grado
titulado: “DESARROLLO DE UN MÓDULO DE ALMACENAMIENTO MASIVO DE
DATOS PARA SEÑALES ANALÓGICAS DE CONTROL CON COMUNICACIÓN USB”
realizado por el bachiller Angel Ernesto Guevara Sanchez, hacemos constar que hemos revisado y
aprobado dicho proyecto.
ING. ANGEL VILLEGAS
TUTOR
ING. ORIANA BARRIOS ING. DEMETRIO REY LAGO
BÁRBULA, NOVIEMBRE 2012
4
Agradecimientos
Mi primer agradecimiento es a Dios Todo poderoso
quien con su infinita bondad hizo posible que
toda adversidad y obstáculo durante mi desarrollo
profesional se viera pequeña ante él.
A mi madre Deborah por su amor incondicional
y su paciencia en todo momento.
A mi padre Henry por su apoyo incalculable
y sus consejos que siempre fueron alentadores.
A mis abuelos paternos Carmen y Ángel
por estar siempre allí para atenderme y recibirme
con mucho amor.
Al profesor Angel Villegas que con su
amplia experiencia y conocimiento me sirvió de guía
para la realización de este trabajo de investigación.
A mis amigos de la universidad con quienes compartí tantas
experiencias invaluables durante la carrera, a ellos
mis más sinceros agradecimientos.
5
Dedicatoria
Este trabajo de grado está dedicado especialmente a mi sobrina Isabella Valentina quien dio
luz y felicidad a toda la familia, que Dios siempre cuide y te guie para que seas una persona
de bien sobrina amada.
A mi mejor amigo Juan Daniel, quien fue de muy gran ayuda en uno de los momentos más
significativos y marcados de mí vida y que además fue durante el desarrollo de este
proyecto, a ti dedico este logro amigo.
A mis padres Henry y Deborah y a mi hermana Milvia con todo mi amor, por ser partícipes
directos de este gran triunfo. Lo hemos logrado juntos.
6
Universidad de Carabobo
Facultad de Ingeniería
Escuela de Ingeniería Eléctrica
Departamento de Sistemas y Automática
Desarrollo de un módulo de almacenamiento masivo de datos
para señales analógicas de control con comunicación USB
Elaborado por: Br. Angel Guevara
Tutor guía: Ing. Angel Villegas
Fecha: Noviembre 2012
RESUMEN
El presente trabajo especial de grado tiene como objetivo desarrollar un módulo de
almacenamiento masivo de datos para señales analógicas de control con comunicación USB. Este
módulo está compuesto por un hardware y un software; en el hardware se encuentran dos tarjetas
electrónicas: la tarjeta (a) donde reside el microcontrolador, la pantalla alfanumérica, botones de
interacción con el usuario y la memoria SD para el almacenamiento de las variables adquiridas.
Cuenta con un conector USB como bus de comunicación con la computadora para la transmisión de
la cadena de información adquirida y/o registrada por el dispositivo.; en la tarjeta (b) está la interfaz
física para conectar las señales analógicas, el conversor A/D, el reloj de tiempo real y demás
dispositivos que hacen posible la captura y acondicionamiento de las señales provenientes del
proceso.
En el software se tiene una interfaz visual creada con la finalidad de presentar los datos
registrados por el hardware de manera ordena, dichos datos son mostrados gráfica y numéricamente
y además provee opciones de configuración típicos de un dispositivo de esta índole, como son:
configuración de los tiempos de registro, configuración de misiones de registro, selección particular
de canales para el registro, ver el estado de la memoria del dispositivo, así como borrarla.
Este módulo fue desarrollado para ser implementado en las prácticas que se desarrollan en
la cátedra del Laboratorio de Instrumentación y Control de Procesos de la Escuela de Eléctrica de la
Universidad de Carabobo, donde se verificó exitosamente su funcionamiento permitiendo realizar el
registro de las señales analógicas de corriente de [4-20] mA. [0-5] V y [-10 – 400] ºC
Palabras claves: Registro de datos, Datalogger, Adquisición de datos, Interfaz visual,
Comunicación USB, Variables analógicas de control, Termocupla tipo “K”.
vi
7
TABLA DE CONTENIDO
INTRODUCCIÓN ................................................................................................................ 14
CAPÍTULO I ........................................................................................................................ 16
PROBLEMA ..................................................................................................................... 16
1.1 Planteamiento del problema ........................................................................................ 16
1.2 Justificación de la investigación ................................................................................. 20
1.3 Objetivos ..................................................................................................................... 21
1.3.1 Objetivo generales ................................................................................................ 21
1.3.2 Objetivos específicos............................................................................................ 22
1.4 Alcance ....................................................................................................................... 22
CAPÍTULO II ....................................................................................................................... 26
2.1 Antecedentes del problema ......................................................................................... 26
2.2 Marco teórico .............................................................................................................. 28
2.2.1 Sistema de adquisición de datos .............................................................................. 29
Fundamento ................................................................................................................... 29
Transductor.................................................................................................................... 30
Acondicionamiento de la señal ..................................................................................... 30
Conversión A/D............................................................................................................. 31
Sistema de registro de datos (Datalogger) ........................................................................ 32
Fundamento ................................................................................................................... 32
El microcontrolador PIC18F4550 ................................................................................. 35
Arquitectura del PIC18F4550 ....................................................................................... 35
Manejo de la pantalla LCD ........................................................................................... 37
Reloj de tiempo real (RTC) el DS1307 ......................................................................... 39
Módulo de conversión A/D el ADS1113 ...................................................................... 45
Memoria SD .................................................................................................................. 55
Módulo de conexión USB ............................................................................................. 57
Protocolos de comunicación.......................................................................................... 66
Modulación Delta - Sigma ............................................................................................ 72
Software Visual Studio.................................................................................................. 74
Software PROTON IDE ................................................................................................ 77
8
CAPÍTULO III ..................................................................................................................... 79
MARCO METODOLÓGICO ........................................................................................... 79
Tipo de investigación ........................................................................................................ 79
Procedimiento metodológico ............................................................................................ 79
Etapa I: Identificación de las características técnicas de dispositivos comerciales ...... 79
Etapa II: Descripción del sistema de registro de datos a implementar .......................... 80
Etapa III: Elaboración del dispositivo físico (hardware) ............................................ 81
Etapa IV: Creación de la interfaz visual........................................................................ 82
Etapa V: Pruebas operativas y calibración del instrumento .......................................... 82
CAPÍTULO IV ..................................................................................................................... 84
ANALISIS ........................................................................ ¡Error! Marcador no definido.
Manejo de la memoria SD de manera sectorizada, como memoria EEPROM ............. 84
RESULTADOS................................................................. ¡Error! Marcador no definido.
Etapa I: Identificación de las características técnicas de dispositivos comerciales ...... 88
Etapa II: Descripción del sistema de registro de datos a implementar .......................... 89
Etapa III: Elaboración del dispositivo físico (hardware) .......................................... 104
Etapa IV: Creación de la interfaz visual...................................................................... 109
Comandos más usados en el programa del hardware ..................................................... 127
Etapa V: Calibración del instrumento y pruebas operativas ....................................... 156
CAPÍTULO V..................................................................................................................... 165
CONCLUSIONES .......................................................................................................... 165
RECOMENDACIONES ................................................................................................. 167
BIBLIOGRAFÍA ................................................................................................................ 168
ANEXO A .......................................................................................................................... 171
9
INDICE DE FIGURA
Figura 1.1: Diagrama de bloque del equipo desarrollado. .................................................. 24
Figura 2.1: Estructura de un sistema de adquisición de datos. ............................................ 29
Figura 2.2: Esquema básico de un Datalogger. .................................................................... 34
Figura 2.3: Esquema de conexión de la pantalla LCD al PIC18F4550. ............................... 38
Figura 2.4: Asignación de los terminales del RTC DS1307................................................. 40
Figura 2.5: Conexión del RTC DS1307 al PIC18F4550 ...................................................... 41
Figura 2.6: Transferencia de datos en el BUS. ..................................................................... 42
Figura 2.7: Modo de escritura del dispositivo RTC DS1307. .............................................. 42
Figura 2.8: Modo de lectura del dispositivo RTC DS1307. ................................................. 44
Figura 2.9: Orden de transferencia de datos del dispositivo RTC DS1307. ......................... 44
Figura 2.10: Esquema de Operación del ADS1113. ............................................................. 45
Figura 2.11: Esquema de configuración de terminales del ADS1113. ................................. 46
Figura 2.12: Respuesta en frecuencia del ADS1113. ........................................................... 47
Figura 2.13: Diagrama de la trama de bits en modo de lectura del ADS1113. .................... 51
Figura 2.14: Diagrama de la trama de bits en modo de escritura del ADS1113. ................. 54
Figura 2.15: Diagrama de conexionado del ADS1113/14/15............................................... 54
Figura 2.16: Dimensiones de la memoria de almacenamiento masivo. ............................... 55
Figura 2.17: Esquema de conexión de la memoria SD con el PIC. ...................................... 56
Figura 2.18: Esquema de los terminales del Bus USB para él PIC18F4550. ....................... 63
Figura 2.19:Conector USB. .................................................................................................. 63
Figura 2.20: Distribución de los terminales (Tipo A a la derecha y Tipo B a la izquierda). 64
Figura 2.21: Esquema de conexión del PIC18F4550 con el conector USB. ........................ 64
Figura 2.22: Esquema de conexión del PIC18F4550 con los dispositivos I2C. ................... 66
Figura 2.23: Modos de transición de condiciones para dispositivos I2C. ............................ 68
Figura 2.24: Direccionamiento y formato de transferencia de dispositivos I2C. ................. 69
Figura 2.25: Conexión típica de un grupo de dispositivos en un bus SPI. ........................... 71
Figura 2.26:Parámetros CPOL (Clock Polarity) y CPHA (Clock Phase) bus SPI. .............. 72
Figura 2.27: Modulación/Demodulación Delta .................................................................... 73
Figura 2.28: Operación de diezmado digital. ....................................................................... 74
Figura 2.29: Logotipo de Microsoft Visual Studio............................................................... 75
Figura 2.30: Logotipo del software Proton IDE. .................................................................. 78
Figura 4.1: Partición de la memoria SD ............................................................................... 85
Figura 4.2: Registro de errores enviado por la memoria ...................................................... 87
Figura 4.3: Diseño en bloque del registrador DataLabUC ................................................... 90
Figura 4.4: Esquema de conexión de los led's ...................................................................... 91
Figura 4.5: Esquema de conexión de los pulsadores ............................................................ 91
10
Figura 4.6: Esquema de conexión de los lazos de corriente y de voltaje ............................. 92
Figura 4.7: Esquema de conexión del canal 4 (Termocupla tipo K) .................................... 94
Figura 4.8: Terminales de configuración del AD8495 ......................................................... 94
Figura 4.9: Diagrama de bloque ........................................................................................... 95
Figura 4.10: Incorporación de un filtro RC aguas arriba del AD8495 ................................. 96
Figura 4.11: Correcta configuración del voltaje de referencia del AD8495 ........................ 97
Figura 4.12: Esquema de conexión del multiplexor analógico y conexión del conversor
ADS1113 ....................................................................................................................... 98
Figura 4.13: Esquema de conexión del DS1307................................................................. 100
Figura 4.14: Esquema de conexión de la alimentación principal del DataLabUC ............ 100
Figura 4.15: Conexión del muestreo de la señal de alimentación del DataLabUC ............ 101
Figura 4.16: Esquema de conexión de la LCD 16x2 .......................................................... 102
Figura 4.17: Esquema de conexión del USB ...................................................................... 102
Figura 4.18: Esquema de conexión de la memoria SD....................................................... 103
Figura 4.19: Esquema de conexión del microcontrolador PIC18F4550 con el módulo. .... 104
Figura 4.20: Disposición de los elementos electrónicos en la tarjeta uno (I) ..................... 105
Figura 4.21: Vista de plano de las pistas "Top" (rojo) y “Bottom” (verde) de a tarjeta uno
(I) ................................................................................................................................. 105
Figura 4.22: Disposición de los elementos electrónicos en la tarjeta uno (II).................... 105
Figura 4.23: Vista de plano de las pistas “Top” (rojo) y "Bottom" (verde) de la tarjeta dos
(II)................................................................................................................................ 106
Figura 4.24: Tarjeta (I) finalizada....................................................................................... 107
Figura 4.25: Tarjeta (II) finalizada ..................................................................................... 107
Figura 4.26: Acabado final del dispositivo DataLabUC .................................................... 107
Figura 4.27: Ventana principal de la interfaz DataLabUC ................................................. 110
Figura 4.28: Ventana de configuración del dispositivo ...................................................... 111
Figura 4.29: Ventana de visor de la adquisición (registro en el DataLabUC) .................... 113
Figura 4.30: Ventana de gráficos por canal, evento que ocurre al ..................................... 114
Figura 4.31: Ventana de configuración de la misión .......................................................... 116
Figura 4.32: Estructura del buffer de datos del dispositivo físico hasta la interfaz visual . 118
Figura 4.33: Disposición de los comandos en la transmisión desde la interfaz al dispositivo
..................................................................................................................................... 119
Figura 4.34: Estructura del byte de configuración del dispositivo ..................................... 122
Figura 4.35: Estructura del byte de configuración en modo misión ................................... 122
Figura 4.36: Estructura del duración del tiempo de espera del canal ................................. 123
Figura 4.37: Estructura de duración de tiempo de registro del canal ................................. 124
Figura 4.38: Tiempos de registro en modo misión ............................................................. 126
Figura 4.39: Diagrama de flujo del programa principal del dispositivo ............................. 135
11
Figura 4.40: Diagrama de flujo lazo de selección en el menú principal del dispositivo ... 136
Figura 4.41: Diagrama flujo de la configuración del ADS1113 ......................................... 137
Figura 4.42: Diagrama de flujo del dispositivo al conectarse vía USB .............................. 138
Figura 4.43: Diagrama de flujo rutina de inicio de misión ................................................. 140
Figura 4.44: Diagrama de flujo rutina de modo solitario ................................................... 141
Figura 4.45: Diagrama de flujo de envió de registro a tiempo real .................................... 142
Figura 4.46: Diagrama de flujo de la rutina de lectura de la memoria SD ......................... 144
Figura 4.47: Diagrama de flujo de subrutina de conversión del ADS1113 ........................ 145
Figura 4.48: Diagrama de flujo de subrutina de lectura del conversor ADS113 ................ 146
Figura 4.49: Diagrama de flujo programa principal de la interfaz ..................................... 148
Figura 4.50: Diagrama de flujo de la ventana de recepción de datos de la interfaz ........... 150
Figura 4.51: Diagrama de flujo rutina del evento de recepción de datos en la interfaz ..... 152
Figura 4.52: Diagrama de flujo rutina de configuración de misión.................................... 153
Figura 4.53: Diagrama de flujo envió de la configuración de datos de la misión .............. 154
Figura 4.54: Diagramas de flujo para sincronización de datos de hora y fecha del RTC. . 155
Figura 4.55: Montaje para calibración de entrada de corriente .......................................... 156
Figura 4.56: Grafica para la calibración de las entradas de corriente del dispositivo ........ 157
Figura 4.57: Horno de calibración de temperatura con el dispositivo DataLabUC ........... 159
Figura 4.58: Grafica de la curva de reacción de temperatura ............................................. 159
Figura 4.59: Grafica de datos exportados a Microsoft Excel desde la aplicación .............. 160
Figura 4.60: Esquema de conexión del registrador con el ModCad y el UDC1000 .......... 161
Figura 4.61: Registro de la prueba con los dispositivos ModCad y UDC1000 .................. 161
Figura 4.62: Gráficos de la respuesta escalón desde Microsoft Excel ............................... 162
Figura 4.63: Esquema para aplicar el método de ganancia ultima de Ziegler & Nichols .. 163
Figura 4.64: Registro de estado oscilatorio del sistema en la planta de flujo..................... 163
Figura 4.65: Grafico aplicando el método de ganancia ultima de Ziegler & Nichols en
Microsoft Excel ........................................................................................................... 164
Figura A.1: Diagrama de configuración del dispositivo y el RTC .................................... 171
Figura A.2: Diagrama de configuración de la misión y lectura del RTC ........................... 171
Figura A.3: Diagrama de la rutina de borrar datos de la memoria SD ............................... 172
Figura A.4: Diagrama de funcionamiento de la ventana de configuración del dispositivo 173
Figura A.5: Diagramas de envío de configuración de datos, ventana de modo misión ..... 174
Figura A.6: Diagrama de modo importar datos y envío de dato para borrar la memoria SD
..................................................................................................................................... 174
Figura A.7: Esquemático plano (I) ..................................................................................... 174
Figura A.8: Esquemático plano (II) .................................................................................... 174
12
INDICE DE TABLA
Tabla 2.1: Dispositivos comerciales de registro de datos ..................................................... 33
Tabla 2.2: Características del dispositivo. ............................................................................ 36
Tabla 2.3: Descripción de los terminales de la LCD. ........................................................... 38
Tabla 2.4: Configuración de los bits para acceder a los vectores de registro del ADS1113.48
Tabla 2.5: Registro de conversión (Solo lectura). ................................................................ 49
Tabla 2.6: Configuración de los registros (Escritura y lectura). ........................................... 49
Tabla 2.7: Resumen bit a bit de la configuración registro del ADS1113. ............................ 50
Tabla 2.8: Tipo de identificadores de paquetes (PID). ......................................................... 60
Tabla 2.9: Token packets. ..................................................................................................... 60
Tabla 2.10: Data packets. ..................................................................................................... 61
Tabla 2.11: Handshake packets. ........................................................................................... 61
Tabla 2.12: Tabla de función de cada terminal del conector USB. ...................................... 64
Tabla 4.1: Aplicación para cada terminal de la memoria SD en modo de comunicación SPI
....................................................................................................................................... 86
Tabla 4.2: Secuencia de comandos SPI ................................................................................ 86
Tabla 4.3: Comando más usados para la comunicación de la memoria SD ......................... 87
Tabla 4.4: Descripción de los terminales del AD8495 ......................................................... 93
Tabla 4.5: Rango de temperatura del AD8495 ..................................................................... 95
Tabla 4.6: Tabla de la verdad para la selección de canales .................................................. 98
Tabla 4.7: Descripción de los terminales del ADS113 ......................................................... 99
Tabla 4.8: Distribución de las líneas del módulo SD con el PIC18F4550 ......................... 103
Tabla 4.9: Tabla resumen de los componentes de ambas tarjetas ...................................... 108
Tabla 4.10: Descripción de los controles usados en la ventana 1 del DataLabUC ............ 110
Tabla 4.11: Continuación de la tabla de descripción de los controles usados en la ventana 1
del DataLabUC ............................................................................................................ 111
Tabla 4.12: Descripción de los controladores participantes en la ventana de configuración
del dispositivo ............................................................................................................. 112
Tabla 4.13: Descripción de los controles participantes en la ventana de visor de la
adquisición del DataLabUC ........................................................................................ 112
Tabla 4.14: Descripción de los controles participantes en la ventana de configuración de
misión .......................................................................................................................... 116
Tabla 4.15: Continuación de la tabla de descripción de los controles que participantes en la
ventana de configuración de misión ........................................................................... 117
Tabla 4.16: Tipos de comandos posibles en el Byte 15 del buffer enviados desde el
dispositivo. .................................................................................................................. 118
13
Tabla 4.17: Continuación de los tipos de comandos posibles en el Byte 15 del buffer
enviados desde el dispositivo. ..................................................................................... 119
Tabla 4.18: Tipos de comandos posibles en el Byte 15 del buffer enviados desde la interfaz
..................................................................................................................................... 119
Tabla 4.19: Continuación de los tipos de comandos posibles en el Byte 15 del buffer
enviados desde la interfaz ........................................................................................... 120
Tabla 4.20: Disposición de la información almacenada en la memoria EEprom del
microcontrolador ......................................................................................................... 120
Tabla 4.21: Valores que toman los bits de configuración para configurar el muestreo de las
señales ......................................................................................................................... 122
Tabla 4.22: Ejemplo de configuración de los tiempos en el modo misión ......................... 124
Tabla 4.23: Resultados de la calibración del dispositivo.................................................... 157
Tabla 4.23: Continuación de la tabla de resultados de la calibración del dispositivo ....... 158
Tabla 4.24: Errores del dispositivo DataLabUC ................................................................ 158
14
INTRODUCCIÓN
El presente trabajo especial de grado consistió en la elaboración de un módulo de
almacenamiento masivo de datos de señales eléctricas analógicas de control. El mismo,
tendrá la capacidad de exportar dichos datos a una computadora comunicándose vía USB a
una aplicación virtual, realizada con el fin de poder ver reflejados los históricos, así como
también, los estados de estas señales de manera gráfica y numérica. El módulo será
utilizado para el registro de datos de las variables eléctricas de control que se presentan en
las prácticas efectuadas en el Laboratorio de Instrumentación y Control de Procesos de la
Escuela de Eléctrica de la Facultad de Ingeniería de la Universidad de Carabobo.
En mencionado laboratorio, se imparten una serie de prácticas las cuales tienen
como objetivo simular procesos industriales a través de plantas pilotos, para el control de
variables reales como: flujo de líquidos, nivel de tanque, flujo de gas, presión de aire, entre
otros, así como también, definir la instrumentación de campo y el sistema de control para
alcanzar su buen funcionamiento.
Entre las labores que el estudiante realiza en las practicas se encuentra el capturar,
analizar y modificar las variables controladas en estas plantas pilotos, por lo tanto, es
imprescindible que la adquisición y registro de datos sea eficiente, confiable y segura.
Los sistemas de registro electrónico de datos, llamado también Datalogger, son
dispositivos capaces de reunir valores de medición de diferentes parámetros de forma
autónoma. Estos dispositivos, se pueden encontrar en una gran variedad de versiones, las
cuales, se adaptan a una determinada necesidad.
Estos pueden ofrecer a su vez una herramienta visual, que normalmente son
aplicaciones para un computador de escritorio o un computador portátil, en los que se
pueden apreciar, de manera gráfica y numérica, el comportamiento de estos parámetros
15
registrados, y posibilitan un almacenamiento masivo de estos datos en periodos de tiempo
prolongados.
En la actualidad, dentro de este laboratorio, se han incorporado instrumentos
electrónicos dedicados a la medición, adquisición, transmisión y registro de datos de
señales eléctricas analógicas y digitales, tal como sistema de adquisición de datos por
computador para la supervisión de procesos industriales (abreviado SADUC 1.1), pero no
existe hasta el momento uno que registre de manera autónoma estas señales, lo que hace
que la labor de registro de datos se realice de manera manual, lo cual trae un inherente error
sistemático durante el proceso de medición y además una inversión de tiempo por parte del
estudiante cursante de la materia y personal docente para la adquisición y registro de datos.
Con el propósito del continuo desarrollo tecnológicodel Laboratorio de
Instrumentación y Control de Procesos, fue necesario proponer una alternativa que mejore
el proceso de registros de datos y permita mejorar el desarrollo de las actividades que se
realizan dentro este, posibilitando la idea al estudiante de su aplicabilidad en el campo
industrial.
Es por ello, que se propuso el desarrollo de un módulo de almacenamiento masivo
que realice la tarea de registrar datos de señales eléctricas analógicas de control, donde se
permita realizar dicha labor de forma automática con la utilización tecnológica basada en
microcontroladoresy además, poseerá una interfaz visual (software) para el computador, en
donde se apreciarán los históricos gráficos y numéricos del comportamiento de estas
señales eléctricas en los procesos que se desarrollen en el laboratorio una vez almacenados
de forma autónoma.
16
CAPÍTULO I
PROBLEMA
1.1 Planteamiento del problema
En las industrias de hoy, la búsqueda de mejoras en la producción, control de
calidad, facilidad en el acceso de manejo de información mediante sistemas de
comunicación, son elementos prácticamente universales dentro de cualquier proceso. Esto
ha permitido que en los últimos tiempos, el concepto de automatización haya evolucionado
rápidamente debido a que ella puede mejorar las operaciones de un proceso productivo,
además de la calidad de los bienes producidos, garantizando a las empresas, lograr sus
objetivos con un desempeño óptimo. [1]
Como resultado de esta búsqueda, se ha incrementado el uso de equipos o sistemas
que logren dicho objetivo, en estos sistemas, existen elementos conformados por
instrumentos utilizados para medir variables físicas, los cuales realizan labores como:
adquirir, registrar, trasmitir e incluso ejercer acciones de control, pudiendo nombrar entre
ellos: controladores lógicos programables (PLC), sistemas para la adquisición, registro y
transmisión de datos, entre otros.
Un sistema de registro de datos, llamado también Datalogger, es un aparato capaz
de reunir valores de medición de diferentes parámetros de forma autónoma. En ellos, se
puede encontrar una gran variedad de versiones, las cuales, se adaptan a una determinada
necesidad. Pueden ofrecer a su vez una herramienta para el computador (software) que
permite visualizar los datos registrados por él.
Un Datalogger ofrece la posibilidad de almacenar valores medidos (siendo
simultáneamente en caso de que sea de múltiples entradas) como señales normalizadas
durante un periodo de tiempo prolongado, algunos, en lapsos que pueden llegar a ser años.
17
La gama de aplicaciones para estos dispositivos es muy amplia, pero a modo de
evidenciar su aplicabilidad se mencionan las más destacadas: en registro de sonido,
temperatura, nivel, acidez, distancia, humedad, luz, gases, flujo de líquidos, corriente,
tensión, presión, entre otros. [2]
En la Facultad de Ingeniería de la Universidad de Carabobo, específicamente en la
Escuela de Ingeniería Eléctrica, se encuentra el Laboratorio de Instrumentación y Control
de Procesos, el cual es un área de estudio esencial dentro de la cátedra de instrumentación
de procesos, adscrita al Departamento de Sistemas y Automática.
En mencionado laboratorio se imparten una serie de prácticas las cuales tienen
como objetivo definir simulaciones de control de procesos industriales, con la medición por
medio de instrumentación de campo y control a través de módulos de control para su buen
funcionamiento.
Por lo que, las labores durante el desarrollo de dichas prácticas a la luz de los
procesos son: capturar, analizar, modificar, controlar y traducir las variables que se reflejen
en dichos procesos, es por esta razón, que el registro de datos durante su desarrollo es de
suma importancia. Bajo esta perspectiva es imprescindible que estos registros se realicen de
manera eficiente, confiable y segura. [3]
En el laboratorio se han incorporado, a lo largo del tiempo, instrumentos dedicados
a la adquisición, trasmisión y registro de datos, los cuales, se mencionan a continuación.
Un transmisor inteligente de temperatura para termocupla y detectores de
temperaturas por resistencia, basado en microcontroladores, estas lecturas son
enviadas bajo una transmisión analógica de (4-20) mA y tiene la capacidad de
exportar los datos a un servidor OPC.
18
Un transmisor de presión diferencial, convertidor presión a corriente y un
controlador basado en algoritmo PID.
Un sistema de adquisición de datos vía internet basado en microcontroladores,
corresponde a una combinación de hardware y software, diseñado para
comunicarse con una computadora que tenga acceso a internet, donde se visualiza
con una computadora en tiempo real las señales del laboratorio.
Un sistema de adquisición de datos por computador para la supervisión de procesos
industriales (abreviado SADUC 1.1), tarjeta de adquisición habilitada para recibir 8
señales analógicas en el rango de (4-20) mA, (0-20) mA, (0-5) V y (0-10) V,
además dos (2) salidas analógicas con rango de (4-20) mA y un puerto de
comunicación serial RS232, que además posee un software que configura, calibra,
gráfica y registra los datos obtenidos de la tarjeta.
Una estación de control de procesos industriales, que usa como interfaz el sistema
de adquisición de datos SADUC 1.1.
Por lo antes expuesto, se evidencia el hecho que hasta el momento, no existe un
dispositivo capaz de realizar el registro de datos de manera autónoma en el laboratorio,
siendo explícitos en cuanto a que sólo el sistema SADUC 1.1 llega a ser capaz de registrar
los datos obtenidos en el momento en que esté conectado al computador, ya que, es
ejecutado el software de dicho dispositivo que almacena los datos obtenidos en el
computador.
Es de importancia resaltar a este punto que el registro de datos necesariamente
incluye la adquisición de los datos pero la adquisición de los datos no necesariamente
implica el registro de las mismas.
Actualmente, la toma de datos en el laboratorio se realiza de forma manual, esta
situación permite hacer las siguientes aseveraciones:
19
Inversión de tiempo por parte del estudiante cursante de la materia y personal
docente para la adquisición y el registro de datos.
Un inherente error sistemático durante el proceso de medición de las señales
analógicas presentes.
Aplicación de estrategias de control tardías debido a la dependencia directa de la
duración del proceso de adquisición y registro de datos.
Necesidad de varios estudiantes.
Debido a las necesidades de mejora continua, los procesos deben ir desarrollándose
progresivamente, lo que trae a destacar que es necesario un impulso en cuando al grado de
automatización en los procesos que se realizan en el laboratorio, lo cual, demuestra que un
instrumento de registro de datos autónomo permite la mejora significativa en el desarrollo
de las actividades que se realizan en dicha área. Es por ello que se volvió ineludible brindar
una solución que esté al alcance de todos para la adquisición y registro de los datos. [3]
Por lo tanto, se vuelve substancial el proponer una alternativa que esté basada en
resolver la necesidad de mejora para el registro de los datos dentro del mencionado
laboratorio.
Es por ello, que se propuso el desarrollo de un módulo de almacenamiento masivo
que realice la tarea de registro autónomo para señales analógicas de control presentes en el
Laboratorio de Instrumentación y Control de Procesos con la utilización tecnológica basada
en microcontroladores.
Además, dicho módulo posee una interfaz para la computadora que permite
visualizar los registros de estas señales a tiempo real o importando la información ya
existente en el equipo.
20
1.2 Justificación de la investigación
Debido a que el Laboratorio de Instrumentación y Procesos no cuenta con un
dispositivo que realice la adquisición y el registro de los datos de manera autónoma y de
no promover una solución fiable para la mejora de este proceso, los efectos seguirían
siendo los siguientes:
Alta necesidad de mejora en la implementación de instrumentos de campo
que permitan atender la actualización continúa en el Laboratorio de
Instrumentación y Control de Proceso.
La inexperiencia practica en el uso de un dispositivo de registro de datos por
parte del ingeniero egresado en esta área, ya que para el momento, no existe
un dispositivo capaz de realizar el registro de datos de manera autónoma en
el laboratorio.
Registro de datos de manera manual, situación que apremia la necesidad de
invertir tiempo, estudiantes y personal docente para realizar dicha labor.
Por lo tanto, la implementación de un dispositivo de registro de datos de manera
autónoma con comunicación USB proporciona una alternativa viable, atendiendo a la
necesidad de utilizar un equipo electrónico como herramientas de monitoreo aplicado en
un proceso industrial a escala.
Esto facilita el proceso registro de datos para todas aquellas señales eléctricas
provenientes de dispositivos de campo, ya que se realizará de manera automática y
confiable, utilizando un dispositivo electrónico que está constituido de componentes de
fácil alcance en el mercado.
Se puede decir que la implementación de este equipo traerá a la luz los siguientes
beneficios:
21
Adquisición y registro de datos automatizado, lo cual no hará necesario la presencia
permanente por parte de los estudiantes en el proceso de recolección de datos.
Facilidad en la visualización de los datos obtenidos por el equipo, ya que es
presentado de manera clara bajo un entorno (software) amigable destinado para
dicha labor.
Disminución en el tiempo por parte del estudiante cursante de la materia y personal
docente para la adquisición y el registro de datos.
Disminución en el error sistemático de los datos registrados.
Aumento de nuevas ideas y aplicaciones en futuros desarrollos dentro y fuera del
laboratorio, debido a que el estudiante está familiarizado con los componentes
electrónicos que constituyen el equipo, ya que conforman tema de estudio en
asignaturas vistas en el área digital dentro de la escuela.
El equipo posee características que posibilitan su utilización en el campo industrial,
esto contribuye al desarrollo de dispositivos dedicados aplicados dentro y fuera de
la Universidad.
Evitará que la Universidad de Carabobo invierta recursos económicos en la
adquisición de un dispositivo comercial de mencionada índole para fines didácticos,
dándole más valor y uso a los dispositivos propios desarrollados dentro de la casa
de estudio.
1.3 Objetivos
1.3.1 Objetivo generales
Desarrollar un módulo de almacenamiento masivo de datos, para señales
analógicas de campo con capacidad de comunicación USB para el Laboratorio de
Instrumentación y Control de Procesos.
22
1.3.2 Objetivos específicos
Identificar las características técnicas y prestaciones de algunos sistemas de
registros de datos disponibles comercialmente.
Describir el funcionamiento, características y limitaciones del sistema de registro
de datos del equipo a implementar.
Diagramar el sistema de almacenamiento masivo para la construcción del hardware,
considerando el instrumental de los procesos instalados en el laboratorio.
Crear una interfaz para el módulo de almacenamiento masivo para ser usado en un
computador capaz de configurar la operación del prototipo, descargar y visualizar
los datos almacenados por él.
Ejecutar una serie de pruebas operativas y de calibración para verificar el correcto
funcionamiento del sistema y el protocolo de comunicación bidireccional entre el
dispositivo y la aplicación.
1.4 Alcance
El alcance de la elaboración de este trabajo especial de grado contempló, el
desarrollo de un módulo diseñado para el registro de datos con capacidad de
almacenamiento masivo de señales analógicas de control, considerando los procesos
instalados en el Laboratorio de Instrumentación y Control de Procesos de la Escuela de
Eléctrica de la Universidad de Carabobo de manera que se puedan adaptar y monitorear
dichas plantas.
El diseño del hardware se concibió de tal manera que dos de sus cuatro entradas al
dispositivo las señales de corrientes respeten el estándar americano ISA-S50.1. [4]
Además de una entrada de voltaje que manejará niveles de entre 0 a 5 V y la entrada
restante en la cual se puede medir valores adquiridos por un sensor de temperatura
(termopar) tipo K.
23
Este dispositivo contempló la elaboración de dos placas de circuitos impresos con
la colocación de todos sus componentes electrónicos necesarios para su correcto
funcionamiento, estas tarjetas, están dispuestas de tal manera que en una se ubicó todo lo
correspondiente a los dispositivos encargados de la digitalización de la señal, estos fueron
los conversores analógicos-digital, además de su respectiva electrónica analógica la cual
actuó de filtro pasa bajo para eliminar el ruido de las señales que ingresen al aparato y un
dispositivo de junta de referencia compensada que actúa como linealizador de la señal del
termopar tipo K conectado al dispositivo de registro.
La segunda tarjeta posee la electrónica digital restante del equipo, en ella se aprecia
el microcontrolador y los dispositivos periféricos que actúan a través de él, entre ellos se
observan el conector de alimentación jack al equipo, el conector USB con el que se puede
comunicar con la computadora que posea la aplicación, pulsadores para que el usuario
realice todas sus configuraciones y tareas, indicadores luminoso, pantalla alfanumérica de
2x16 caracteres, memoria externa y el reloj de tiempo real.
Se incluye un manual del equipo donde se explica de manera clara y sencilla las
distintas etapas que conforman, diagramas de conexión, pruebas operativas y sugerencias
en caso de fallas.
El dispositivo de almacenamiento masivo cuenta con una interfaz gráfica para el
usuario, donde se mostraran los históricos tanto alfanuméricamente, como de manera
gráfica, de las señales registradas por el dispositivo.
A continuación se explica mediante un diagrama de bloque, la estructura del equipo
desarrollado. En el diagrama mostrado en la Figura 1.1se observa de manera resumida todo
lo correspondiente a la función del módulo desarrollado. Obsérvese que el hardware está
conformado por un microcontrolador, el que actúa como unidad de procesamiento central
24
de toda la funcionalidad del proceso de adquisición y registro de datos, enviando y
recibiendo información de todos los dispositivos periféricos que tiene a su alrededor.
Figura 1.1: Diagrama de bloque del equipo desarrollado.
Este dispositivo tiene la opción de conectarse de tal manera para que realice el
registro de datos de las señales de corriente en un rango de 4-20 mA, 0-5 V y medición de
temperatura, procedente de las señales del laboratorio, realizando el debido registro de cada
una de ellas. El proceso realiza el hardware, descrito de forma secuencial, se muestra a
continuación:
1. Adquisición y acondicionamiento de la señal analógica de control.
2. Digitalización por medio del bloque de conversión analógico-digital.
3. Adquisición de los valores de temperatura y tiempo de los bloque respectivos.
4. Registro de toda la información adquirida en el bloque de memoria (esto incluye la
lectura del reloj de tiempo real).
25
5. Envió de los registros a través de la comunicación USB a la computadora (si está
habilitado).
En la interfaz del usuario (software) presentado en la ¡Error! No se encuentra el
origen de la referencia. de la página¡Error! Marcador no definido., posee funciones
como:
1. Visualización todos los datos procedentes del dispositivo físico (Hardware) de
manera gráfica y numérica.
2. Configuración de la frecuencia de muestreo del dispositivo.
3. Programación de misiones para programar el dispositivo en cuanto al inicio y fin del
registro de una determinada adquisición.
4. Sincronizar el reloj del dispositivo con la fecha y hora del computador.
5. Eliminar los datos almacenados en la memoria del módulo físico.
6. Iniciar o detener la adquisición y registro de datos.
26
CAPÍTULO II
2.1 Antecedentes del problema
El proyecto previo a la obtención del título de ingeniero en electrónica e
instrumentación del Br. Rivera Fárez Jorge Luis de la Escuela Politécnica del
Ejército, sede Latacunga - Ecuador, en Septiembre del 2010, referente al“Diseño e
implementación de un módulo Datalogger para el registros de datos obtenidos de
variables analógicas y/o digitales mediante el módulo USB del PIC18F2550 y el
software Labview para comunicación con un PC”, muestra como objetivo
principal el diseño de un módulo de registro de datos, con una interfaz visual
realizada en Labview a través de una comunicación vía USB 2.0, permite
monitorear en tiempo real dos entradas analógicas y cuatro entradas digitales,
además que permite cambiar el tiempo en que el módulo pueda tomar las muestras
de dichas señales hasta un máximo de 24 horas entre toma y toma, los datos son
descargados y guardados en la PC en un archivo “.xls”que tendrá el nombre
definido por el usuario.
Así como en este trabajo de grado, Este proyecto presenta un enfoque similar en
cuanto al uso un microcontrolador PIC, además se extrajo la idea de incluirle una interfaz
visual en el computador con una comunicación entre ellos vía USB 2.0 para el monitoreo a
tiempo real de datos dándole al equipo un doble funcionamiento, el registro de los datos de
manera autónoma (objetivo principal del proyecto) así como el registro y monitoreo a
tiempo real con la computadora, constituyendo a este equipo, como una potente
herramienta a graficación.
El proyecto previo a la obtención del título de ingeniero en electrónica e
instrumentación de la Br. Amparo Meythaler Naranjo de la Escuela Politécnica del
27
Ejército, sede Latacunga - Ecuador, en Agosto del 2005 referente a un “Diseño e
implementación de un sistema de adquisición de datos para instrumentación
virtual utilizando un microcontrolador PIC”, cuyo objetivo es realizar un diseño e
implementación de una tarjeta de adquisición de datos que pueda recibir datos
analógicos y que sea controlada por un software diferente a los tradicionales, la
adquisición de datos por puerto serial, cuyo argumento se basó en que es una
situación de un proceso real, se ejemplifica el trabajo en el protocolo de
comunicación, utilizando el código ASCII en la estandarización de la
comunicación entre el microcontrolador y el computador.
Este trabajo apalanco el planteamiento del hardware basado en microcontroladores
PIC en cuanto al enfoque que le dieron en el direccionamiento que debe existir entre los
dispositivos maestro-esclavo, como es el protocolo utilizado, la recepción de los datos en la
aplicación a través de la computadora.
El proyecto previo a la obtención del título de ingeniero en electrónica e
instrumentación del Br. William Patricio Tigse Bravo, de la Escuela Politécnica del
Ejército, sede Latacunga - Ecuador, en Junio del 2010 referente al “Diseño e
implementación de un módulo Datalogger enlazados con una red Zigbee, para
registro de datos de variables ambientales”, en el cual su objetivo principal fue el
de desarrollar un prototipo para el adquisición y almacenamiento de datos
utilizando tecnología Zigbee que es un protocolo inalámbrico.
En este sentido, se menciona el aporte que realizó este proyecto a la investigación
que se llevó a cabo, ya que, en este trabajo se encuentra de mucho interés, el enfoque que le
dan al momento de explicar la manera como se especifica como fue el proceso de
construcción des prototipo de manera artesanal, que fue la manera como se realizó en este
proyecto.
28
Melillo S. Katiuska A. y Ramírez Q. Carlos E. cuyo trabajo fue titulado
“Desarrollo de un sistema de adquisición de datos vía internet utilizando
microcontroladores”. Fue un proyecto de grado para optar al título de Ingeniero
Electricista para la Universidad de Carabobo, Valencia Edo. Carabobo Venezuela.
Sistema de adquisición de datos que brinda al estudiante una herramienta que
combina hardware y software, en donde se permite la observación a tiempo real las
señales del Laboratorio de Instrumentación y Control de Proceso, utiliza un
servidor web embebido para él envió de entradas y salidas de la tarjeta de señales
analógicas y digitales a la computadora a través de un protocolo TCP/IP, pudiendo
monitorear dichas señales de manera gráfica bajo un entorno JAVA.
En este proyecto, se tomó en cuenta la metodología usada para el protocolo de
comunicación entre el microcontrolador y el computador, ya que se especifica claramente
un flujo de correspondencia en la recepción y transmisión de los datos, también el orden en
como vienen estos y la manera en cómo estos paquetes de datos se desglosa e interpretan.
También sirvió de utilidad el diseño de la interfaz gráfica en la que los autores controlan y
monitorean (que es el interés de este proyecto) las variables de estudio.
2.2 Marco teórico
En esta sección del capítulo se pretende resaltar, todos aquellos conceptos y
fundamentos necesarios que se utilizaron para comprender y aplicar el sistema de registro
de datos, esto abarca su definición, conocimiento básicos que se deben tener con el
microcontrolador PIC y los módulos periféricos del hardware, necesarios para la ejecución
de dicha tarea.
También se hace énfasis en el lenguaje de programación PROTON IDE, en el cual
se realizó la programación del microcontrolador PIC para realizar sus labores de
29
recolección de datos, además del uso del software de Visual Studio para la creación de la
interfaz visual.
2.2.1 Sistema de adquisición de datos
Fundamento
Un sistema de adquisición de datos es un equipo que permite tomar señales físicas
del entorno y convertirlas en datos que posteriormente se procesan y presentan. A veces el
sistema de adquisición es parte de un sistema de control, y por tanto la información recibida
se procesa para obtener una serie de señales de control. [5]
En la figura mostrada a continuación (Figura 2.1) se observa la estructura en
bloques fundamental que debe existir en un sistema de adquisición de datos, se aprecia
como primeramente la señal analógica pasa por una etapa en la cual ocurre una
transducción de esta, luego pasa al acondicionamiento de señales para finalmente entrar en
la etapa de conversión analógica-digital que emite la señal de salida digitalizada. A
continuación se describe en detalle la funcionalidad de cada uno de estos bloques.
Figura 2.1: Estructura de un sistema de adquisición de datos.
30
Transductor
Es un elemento que convierte la magnitud física en una señal de salida
(normalmente tensión o corriente), la cual, puede ser procesada por el sistema. Salvo que la
señal de entrada sea eléctrica, se dice que el transductor es un elemento que convierte
energía de un tipo en otro. Por tanto, el transductor debe tomar poca energía del sistema
bajo observación, para no alterar la medida. [5]
Acondicionamiento de la señal
Es la etapa encargada de filtrar y adaptar la señal proveniente del transductor a la
entrada del convertidor analógico-digital. Esta adaptación suele ser doble y se encarga de
adaptar el rango de salida del transductor al rango de entrada del convertidor (normalmente
en tensión) y acoplar la impedancia de salida de uno con la impedancia de entrada del otro.
La adaptación entre los rangos de salida y de entrada del convertidor tiene como
objetivo el aprovechar el margen dinámico de este, de modo que, su máxima señal de
entrada debe coincidir con la máxima del rango de tensión admisible, y además un rango
permisible de tolerancia adicional que forma parte de la protección que el convertidor lleva
integrada.
Por otro lado, la adaptación de impedancias es imprescindible ya que los
transductores presentan una salida de alta impedancia, que normalmente no puede excitar la
entrada de un convertidor analógico digital, cuya impedancia típica suele estar entre 1 y 10
k. [5]
31
Conversión A/D
Es un sistema que presenta en su salida una señal digital a partir de una señal
analógica de entrada, (normalmente de tensión) realizando las funciones de cuantificación y
codificación.
La cuantificación implica la división del rango continuo de entrada en una serie de
pasos, de modo que para infinitos valores de la entrada la salida sólo puede presentar una
serie determinada de valores. Por tanto la cuantificación implica una pérdida de
información que se puede olvidar. [5]
La codificación es el paso por el cual la señal digital se ofrece según un determinado
código binario, de modo que las etapas posteriores al convertidor puedan leer estos datos
adecuadamente. Este paso hay que tenerlo siempre en cuenta, ya que puede hacer que
obtengamos datos erróneos, sobre todo cuando el sistema admite señales positivas y
negativas con respecto a la referencia tierra, momento en el cual la salida binaria del
convertidor da tanto la magnitud como el signo de la tensión que ha sido medida. [5]
La etapa de salida es el conjunto de elementos que permiten conectar el sistema de
adquisición de datos con el resto del equipo, y puede ser desde una serie de buffers digitales
incluidos en el circuito convertidor, hasta un interfaz RS 232, RS 485, USB 2.0 o Ethernet
para conectar a un computador o estación de trabajo, en el caso de sistemas de adquisición
de datos comerciales.
32
2.2.2 Sistema de registro de datos (Datalogger)
Fundamento
Es una unidad la cual está conformada por dispositivos electrónicos debidamente
configurados para ser capaz de obtener mediciones de magnitudes diversas señales de
manera ordenada en el tiempo. [6, 7]
La adquisición de datos puede realizarse desde diversas fuentes de información
como sensores, termómetros digitales, detectores de humedad, entre otros, o puede también
que sean equipos de transmisión en el cual las señales vengan acondicionadas a señales
eléctricas (corriente o tensión). [6]
Dichos datos pasan por un proceso de registro en una memoria conjuntamente con
los datos de fecha y hora a la cual fueron tomados. Luego, los datos pueden ser estudiados
en forma textual, estadística o gráficamente, posee un campo de aplicación ilimitado en
procesos de monitoreo de variables, ya sea en el ámbito industrial, doméstico o como
ensayo de laboratorio a nivel educacional.
Casi todos los sistemas de registradores de datos digitales están basados en
microcontroladores. Por lo general son pequeños, con batería propia que suministra la
energía a los componentes del dispositivo, memoria interna para almacenamiento de datos
y sensores.
Algunos registradores de datos se comunican con un computador y utilizan software
específico para activar el registrador de datos, ver y monitorear los datos recogidos,
mientras que otros tienen un dispositivo de interfaz local (teclado, pantalla LCD) y puede
ser utilizado como un dispositivo independiente. A modo de ilustración se mencionan
algunos dispositivos actualmente comerciales con lo cual se busca presentar una idea de las
bondades de este tipo de dispositivos en la Tabla 2.1. [7]
33
Tabla 2.1: Dispositivos comerciales de registro de datos
Figura Marca Modelo Descripción Características Precio Fuente
LogicBus LGR-5320
Registrador de datos
de alta velocidad
para señales
analógicas y
digitales
- Soporta hasta 200 kS /s de muestreo de datos
- Cuenta con 16 entradas analógicas de hasta ± 30 V
- 16-bits de resolución
- 16 entradas digitales industriales de hasta 30
V - Cuenta con una salida de relay (tipo C)
configurable
- 4 entradas de contador
- Conexiones con terminales a tornillo - Incluye tarjeta de memoria SD de 4 GB,
soporta hasta 32 GB
- Controles con botón pulsador
$1,499.00
LGR 5320 Series, Stand
Alone, High Speed,
Multifunction Datalogger.
Datasheet
Monarch QuadTemp
Registrador de 4
canales de
termocuplas tipo J,
K, T, E, R, B, S, N
- Compensación automática
- 4 Entradas configuradas para Termocuplas
- Almacenamiento hasta 26.214 datos
- Tiempo de inicio programable
- Fácil de configurar - Comunicación USB
- Permite almacenar datos para su posterior
descarga
- Cuenta con interfaz de visualización
$ 599.00
DataChart QuadTemp4
Channel Thermocouple Based
Temperature
Data Logger. Datasheet
Extech RH520A Registrador
autónomo de
temperatura
- Rango de temperatura de -28 a 60 ºC
- Rango de humedad 10 a 95%
- Almacena 49.000 datos para descargar en el
computador - Posee una alarma visual y audible para set
point alto y bajo
- Módulo de salida opcional para SSR( relay
de estado sólido)
$299.99 http://www.termocuplas.com
SuperLogics WL-USB-1 Registrador de
temperatura
- Registrador de temperatura - Modo de descarga vía USB
- Incluye software de configuración
- Posee 2 alarmas configurables
- Indicadores lumínicos para verificar el
estado del Datalogger
$59.95 http://www.superlogics.com
34
Como se aprecia en la Figura 2.2el concepto explicado en la sección se esquematiza
de manera resumida de como es el proceso de adquisición del Datalogger. Para empezar, la
señal analógica ingresa al módulo de conversión A/D, dispositivo esclavo que ante la orden
del maestro (microcontrolador) le envía la señal digitalizada que está leyendo para ese
momento.
Figura 2.2: Esquema básico de un Datalogger.
Una vez realizada esta labor, el maestro vuelve a ordenar, pero esta vez al módulo
que mantiene los datos de fecha y hora del dispositivo para que le envíe esos datos. Seguido
de esta tarea, se podría decir que el microcontrolador posee la cadena de datos que contiene
todo lo referente a la señal (magnitudes, fecha y hora a la cual fue adquirida) entonces,
realiza la tarea de almacenamiento en el dispositivo de almacenamiento masivo.
Si está conectado a la computadora (en caso de tener software como una aplicación)
envía por un buffer de datos la información que será procesado por dicha aplicación y
mostrada en pantalla de manera gráfica y/o numérica, y así dependiendo de su
configuración hará esta tarea cíclicamente hasta que el operador o la programación
establecida lo hayan permitido.
35
2.2.3 El microcontrolador PIC18F4550
En esta sección se describen algunas características resaltantes del microcontrolador
PIC18F4550 utilizado como unidad de procesamiento central del sistema de adquisición y
registro de datos usados en esta investigación.
Los microcontroladores PIC (Peripheral interface Controller), son fabricados por la
empresa MICROCHIP Technology INC. cuya central se encuentra en Chandler, Arizona,
esta empresa ocupa el primer lugar en venta de microcontroladores de 8 bits desde el año
2002. Su gran éxito se debe a la gran variedad (más de 180 modelos), gran versatilidad,
gran velocidad, bajo costo, bajo consumo de potencia, y gran disponibilidad de
herramientas para su programación. [8]
- Arquitectura del PIC18F4550
Posee una amplia cantidad de puertos, permitiendo el uso de todos los dispositivos
periféricos que se necesitan para cumplir con el objetivo.
Tiene un módulo de conversión analógico-digital cuya resolución es de 10-bits,
aceptables en implementaciones donde no se requiera un alto grado de resolución. [9]
Tiene un módulo USB con el cual se realizó la conexión con el computador para que,
con la interfaz, gestión y monitoreo los datos que se reciban.
36
En la Tabla 2.2se muestra las características más resaltantes de este modelo en
particular.
Tabla 2.2: Características del dispositivo. Fuente: Microchip, PIC18F2455/2550/4455/4550 Data Sheet.
Características PIC18F4550
Frecuencia de operación DC – 48 MHz
Memoria del programa (Bytes) 32768
Memoria del programa (Instrucciones) 16384
Memoria de datos (Bytes) 2048
Memoria de datos EEPROM (Bytes) 256
Fuentes de interrupciones 20
Puertos de E/S Puertos A, B, C, D, E
Temporizadores 4
Captura/Compara/MÓDULO PWM 1
Captura mejorada/Compara/MÓDULO
PWM 1
Comunicación serial MSSP, USART mejorado
MÓDULO USB 1
Puerto paralelo (SPP) Si
Módulo de conversión A/D 10-bits 13 entradas (Canales)
Comparadores 2
Reset (y Delays)
POR, BOR, RESET
Instrucciones, Stack Full, Stack
Underflow, (PWRT, OST),
MCLR (opcional),
WDT
Detección programable de bajo voltaje Si
Programación Brown-outReset Si
Set de instrucciones
75 Instrucciones
Set de 83 instrucciones
habilitadas
Paquete
40 – terminal PDIP
44 – terminal QFN
44 - terminal QFP
37
2.2.4 Manejo de la pantalla LCD
La pantalla de cristal líquido o LCD (Liquid Crystal Display) es un dispositivo
controlado por un microcontrolador de visualización grafica utilizado de caracteres
simbólicos o incluso dibujos. Para este caso se muestra una pantalla de dos filas de 16
caracteres cada fila (se habla entonces de una pantalla LCD de 2x16) donde cada caracteres
dispone de una matriz de 5x7 pixeles. [10]
Este dispositivo está gobernado internamente por un microcontrolador que regula
todos los parámetros de presentación. Las principales características de la LCD son las
mostradas a continuación:
o Pantalla de caracteres ASCII, además de los caracteres Kanji y griegos.
o Desplazamiento de los caracteres hacia la izquierda o a la derecha.
o Proporciona la dirección de la posición absoluta o relativa de los caracteres que se
impriman en él.
o Memoria de cuarenta caracteres por línea de pantalla.
o Permite que el usuario pueda grabar hasta 8 caracteres.
o Conexión de un procesador usando una interfaz de 4 u 8 bits.
La comunicación con la pantalla LCD se puede hacer por medio de sus terminales
de entrada con un bus de 8 bits. [10]
En la tabla anexa (Tabla 2.3) se muestra la descripción y símbolo de cada uno de los
terminales de la pantalla de cristal líquido mostrada en la¡Error! No se encuentra el origen de
la referencia..
38
Tabla 2.3: Descripción de los terminales de la LCD. Fuente: Proyecto de grado del Br. Morillo Gregorio José [10].
Figura 2.3: Esquema de conexión de la pantalla LCD al PIC18F4550.
Fuente: Architecture and programming of 8051 MCU's.
En la ¡Error! No se encuentra el origen de la referencia.se aprecia la manera de cómo
se conectara la pantalla LCD con el PIC18F4550. Aclarando que la conexión establecida
para el microcontrolador corres-pondrá en el puerto D del mismo.
Terminal
N° Símbolo Descripción
1 Vss Tierra de alimentación GND
2 Vdd Alimentación de +5V
3 Vo Contraste del cristal líquido (0 a +5V)
4 RS
Selección del registro de control/registro de datos:
RS = 0 Selección registro de control
RS = 1 Selección registro de datos
5 R/W
Señales de lectura/escritura
R/W = 0 Escritura
R/W = 1 Lectura
6 E
Habilitación del MÓDULO
E = 0 MÓDULO deshabilitado
E = 1 MÓDULO habilitado
7-14 D0-D7 Bus de datos bidireccional
39
2.2.4 Reloj de tiempo real (RTC) el DS1307
Características
o 56 – byte de memoria EEPROM, detección de consumo por batería (estado de bajo
consumo).
o Comunicación I2C.
o Dispositivo programable.
o Detección automática de fuente de consumo (en el caso de que sea por la fuente
principal del circuito o por la batería).
o Consumo de 500 nA en modo de bajo consumo.
o Rango de temperatura industrial -40°C a +85°C.
o Disponible en 8-terminal DIP o SOIC.
Descripción
El DS1307 es un reloj de tiempo real de bajo consumo, cuyo formato hora y fecha
esta expresado en código BCD. La dirección y los datos que contienen son transferidos vía
serial I2C (véase página 58). La información de la hora y fecha viene expresadas en la
siguiente forma, segundos, minutos, horas, días, mes y año, ajustándose automáticamente
los meses al llegar al final de los días del mes anterior, de igual manera, pasa con la
información del año. [11]
El reloj puede operar en formato de 24 horas o 12 horas con un indicador de
AM/PM, además que el dispositivo posee un circuito sensor que detecta automáticamente
la falta de fuente externa y pasa al modo de bajo consumo con la batería que se le
suministra al circuito (batería de +3V).
40
En la ¡Error! No se encuentra el origen de la referencia.se puede apreciar la
distribución de cómo están organizados los terminales del RTC DS1307, a continuación se
mencionara la labor de cada uno de estos terminales:
o Vcc fuente principal de poder.
o X1, X2 terminales de conexión del cristal (32.768 KHz).
o Vbat entrada de la batería de +3V.
o SDA datos seriales.
o SCL señal de reloj
o SQW/OUT señal cuadrada.
Terminales asignados
Figura 2.4: Asignación de los terminales del RTC DS1307.
Fuente: DS1307 64x8 Serial Real-Time Clock Data Sheet.
Conexión con el PIC18F4550
Como se observa en laFigura 2.5, la típica conexión usada para el RTC DS1307
con el microcontrolador es de esta manera, acotando que es de suma importancia para la
comunicación con el dispositivo, la ubicación de las resistencias de pull-up que se
41
encuentran ubicadas en las líneas SDA, SCL y SQW/OUT (comúnmente se utilizan de 4.7
KOhm), aunque en la práctica, basta con conectar las líneas SDA y SCL para el
funcionamiento correcto del DS1307.
Figura 2.5: Conexión del RTC DS1307 al PIC18F4550
Fuente: DS1307 64x8 Serial Real-Time Clock Data Sheet.
Transferencia de datos en el BUS.
En la figura anexada (¡Error! No se encuentra el origen de la referencia.) se observa
cómo cada transferencia de datos inicia con una condición de START y termina con una
condición de STOP, necesarios en toda comunicación I2C donde, el número de datos
transmitido entre estas dos condiciones no está limitado, solo siendo determinado por el
dispositivo maestro. [11]
Cada información transferida (en bloques de bytes) siempre estará acompañada de
un bit de refrescamiento llamado “ACKNOWLEDGES” pudiendo generarse
automáticamente por el dispositivo esclavo o como el caso de este dispositivo, para el
modo de lectura, manual por el maestro. [11]
42
Figura 2.6: Transferencia de datos en el BUS.
Fuente: DS1307 64x8 Serial Real-Time Clock Data Sheet.
En esta ocasión se tendrá dos tipos de transferencias que dependerán del estado del
bit de lectura y escritura R/W del dispositivo.
1. Transferencia de datos desde el maestro hacia el esclavo.
2. Transferencia de datos desde el esclavo hacia el maestro.
Vale destacar que el dispositivo maestro genera la señal de reloj con la finalidad de
sincronizar al dispositivo esclavo con él y que además el RTC DS1307 puede operar en los
siguientes modos. [11]
1. Modo de escritura:
Figura 2.7: Modo de escritura del dispositivo RTC DS1307.
Fuente: DS1307 64x8 Serial Real-Time Clock Data Sheet.
43
Como se observa en la¡Error! No se encuentra el origen de la referencia., los
datos y la señal de reloj son recibidos a través de los terminales SDA y SCL
respectivamente, después de cada byte recibido, se transmite un bit de
reconocimiento. Las condiciones de START y STOP organizan el comienzo y final
de la transmisión entre ambos dispositivos.
Primeramente, para cada reconexión entre los dispositivos, es necesario la
transmisión del byte de dirección para que el dispositivo esclavo sepa que se están
dirigiendo a él en la comunicación (ver ¡Error! No se encuentra el origen de la
referencia.esta dirección contiene los 7 bits de reconocimientos del esclavo luego el
bit de R/W (para la escritura, es un 0 lógico), después de este byte, el bit de
reconocimiento “ACKNOWLEDGES” seguida de la dirección del registro al cual el
maestro pretende escribir.
Nuevamente un bit de reconocimiento es transmitido por el dispositivo
esclavo para dar paso a la transmisión de los bytes de cada uno de los datos que se
desean transmitir, finalmente la condición de STOP de da final a la transmisión. [11]
Vale la pena destacar que para el caso de este dispositivo, los bits de
condiciones START y STOP además del bit de reconocimiento son totalmente
transparentes para la programación en BASIC que se realizó.
Solo fue necesaria la dirección del dispositivo con el cual se sostuvo la
comunicación, la dirección de memoria a la que se accede y los datos que se
transmitirán al dispositivo esclavo para su funcionamiento.
2. Modo de lectura:
44
En este caso como se observa en la ¡Error! No se encuentra el origen de la referencia.la
forma de comunicarse con el dispositivo esclavo es exactamente igual a la vista en el
modo de escritura (ver Figura) con la diferencia que luego de los 7 bits de dirección del
dispositivo el siguiente bit cambio de ser 0 en el caso de ser escritura a ser 1 (modo de
lectura), acá no se direcciona hacia el registro de memoria al cual se pretende acceder,
el dispositivo, de manera automática envía los byte de datos correspondientes de la hora
y fecha dados por el orden mostrado en la Figura.
Figura 2.8: Modo de lectura del dispositivo RTC DS1307.
Fuente: DS1307 64x8 Serial Real-Time Clock Data Sheet.
Vale la pena mencionar que el orden en que los datos son recibidos desde esclavo
hasta el dispositivo maestro, es en el orden en que serán escritos en el modo de lectura
luego de apuntar a la dirección correspondiente de su ubicación.
45
Figura 2.9: Orden de transferencia de datos del dispositivo RTC DS1307.
Fuente: DS1307 64x8 Serial Real-Time Clock Data Sheet.
46
2.2.5 Módulo de conversión A/D el ADS1113
Es un dispositivo de la Texas Instruments, entre cuyas características más
destacables es su alta precisión a la hora de realizar conversiones analógicas-digitales,
posee una resolución de 16 bits y viene en un pequeño empaque MSOP-10. [12]
Su rango de conversión no depende del voltaje de referencia que se le suministre, ya
que, es programado por software, evitado cambios en la salida del conversor por causa de
fluctuaciones en dicho voltaje de referencia, además, se comunica bajo la comunicación
síncrona I2C con un rango de operación desde los 2.7 V a los 5.5 V. [12]
Uno de los atributos más resaltantes es la máxima cantidad de muestreos por
segundos que posee este dispositivo, el cual llega a ser hasta las 860 muestra manteniendo
la resolución fija en 16 bits, también, tiene un amplificador de ganancia programable (PGA
siglas en inglés) que ofrece una ganancia de hasta 16 veces el valor original de la señal, en
la ¡Error! No se encuentra el origen de la referencia.se observa un esquema de operación del
ADS1113.
Figura 2.10: Esquema de Operación del ADS1113.
Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
47
En la ¡Error! No se encuentra el origen de la referencia.se muestra la vista real de
configuración de los terminales del dispositivo.
Figura 2.11: Esquema de configuración de terminales del ADS1113.
Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
La conversión ADS1113 consiste en un tipo de conversión Delta-Sigma, ajuste de
ganancia como se mencionó anteriormente, generador de señal de reloj y una interfaz I2C
para su comunicación.
A continuación, se definirá brevemente la teoría correspondiente a las características
mencionadas del dispositivo.
Conversión analógica-digital
La conversión del ADS1113 consiste en un capacitor de descarga diferencial, un
módulo Delta-Sigma seguido de un filtro digital. El módulo toma la media del voltaje
entre la entrada analógica y genera una comparación con el estado anterior, recreando a
través de flancos ascendentes y descendentes una seguidilla de la señal original, que
básicamente es el principio de la modulación Delta, luego de esto, el filtro digital recibe
la señal a alta velocidad de los unos (1) y ceros (0) generada por este, también llamado
bitstream (que no es más que la seguidilla de cambios de estados de la señal), del
48
modulador de señal digital, esta es procesada por el filtro y finalmente genera el código
de salida digital que es proporcional a la entrada de voltaje.
En la ¡Error! No se encuentra el origen de la referencia. anexa, se observa la respuesta
en frecuencia del filtro digital del ADS1113, observando que este dispositivo por
tratarse de conversiones analógicas-digitales a través de un módulo Delta-Sigma,
trabaja con señales analógicas de entradas de baja frecuencia. Dado que una de las
características del estos conversores es en los tiempos de conversión, ya que cumplen
esta labor en lapsos relativamente lentos, a pesar de esto y como bien se sabe, en la
aplicación se buscó que el registrador de datos posea una rata de muestreo mayor a 4
muestras por segundos, debido a la rutina realizada por software y todas las actividades
estimadas para él hardware, por lo tanto, será suficiente para alcanzar el objetivo en que
se quiso poner en funcionamiento el dispositivo Datalogger.
Figura 2.12: Respuesta en frecuencia del ADS1113.
Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet
49
Escritura/Lectura del registro del ADS1113
Para el acceder a un registro especifico desde maestro al ADS1113, se debe realizar
primero una escritura del valor apropiado del vector de registro. Este vector de registro es
escrito directamente después de la dirección (en byte) del conversor, seguido del bit de
escritura o lectura (R/W), esto hará que el esclavo envié un bit de reconocimiento llamado
“ACKNOWLEDGES” el cual le indica al dispositivo maestro que fue recibido
satisfactoriamente el vector de registro.
Antes de cada lectura o escritura del ADS1113, se debe escribir previamente el
vector de registro que se quiere leer o escribir respectivamente.
El conversor ADS1300 posee cuatro (4) registros que son accesibles por el maestro
a través del protocolo I2C. El registro de conversión solo contiene la última conversión
realizada por el dispositivo. La configuración del registro permite que el usuario programe
el dispositivo maestro de forma tal que pueda cambiar el modo de operación del ADS1113
y además, pueda preguntar por el estatus del dispositivo esclavo. En la Tabla 2.4 se puede
observar las cuatros (4) combinaciones que se pueden realizar en el registro de la Tabla 2.
que apunta a los vectores de registros mostrados en la Tabla 2.5 y la Tabla 2.6.
Tabla 2.4: Configuración de los bits para acceder a los vectores de registro del ADS1113. Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
Tabla 2.13: Vector del registro que apunta a los vectores de interese del ADS1113. Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
50
Tabla 2.5: Registro de conversión (Solo lectura). Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
Tabla 2.6: Configuración de los registros (Escritura y lectura).
Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
En la Tabla 2.7 se muestra el resumen bit a bit de la configuración de registro del
ADS1113 que corresponde con el tipo y velocidad de muestreo, entre otras configuraciones
de este dispositivo.
Lectura desde el ADS1113
Como bien se mencionó anteriormente, en la lectura del ADS1113 se puede acceder
tanto a los bits de configuración mostrados en la Tabla 2.7, como a los bits que conforman
el registro de la conversión realizada por el dispositivo.
Para realizar esta labor de lectura, se debe seguir la secuencia de comandos tal como
se muestra en la ¡Error! No se encuentra el origen de la referencia., la cual se explicara a
continuación.
51
Tabla 2.7: Resumen bit a bit de la configuración registro del ADS1113. Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
52
Figura 2.13: Diagrama de la trama de bits en modo de lectura del ADS1113.
Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
Como ya se ha mencionado en la sección del estudio del RTC, a pesar de que la
filosofía de la comunicación entre el dispositivo maestro y el dispositivo esclavo es la
misma que en el caso del DS1307, en esta clase de dispositivo los bits que condicionan la
comunicación STAR, STOP y el bit de reconocimiento “ACKNOWLEDGES”, tienen que
realizarse de forma más específica por el usuario que programe al dispositivo maestro, lo
que generaría una secuencia del programa un poco más extensa que en el caso del DS1307,
esto también es aplicado para el caso de escritura del dispositivo.
53
Como se observa en la¡Error! No se encuentra el origen de la referencia.¡Error! No se
encuentra el origen de la referencia., la comunicación comienza con una condición de
START por parte del dispositivo maestro, seguido de los siete (7) bits de direccionamiento
del dispositivo esclavo (1 0 0 1 0 A1 A0) y el bit de R/W = 1 (para el caso de realizar la
lectura) obteniendo la trama 1 0 0 1 0 A1 A2 1, donde A1 y A2 es la dirección a nivel de
hardware que se haya dispuesto el dispositivo en la tarjeta del Datalogger.
Esto nos da a entender que solo se puede conectar cuatro (4) dispositivos de esta
clase, ya que:
Numero de dispositivos = 2n
Se tiene que n = 2 (ya que solo es A1 y A0), por lo que:
Numero de dispositivos = 22 = 4 dispositivos
Una vez enviada esta trama, el dispositivo esclavo envía al dispositivo maestro un
bit de reconocimiento “ACKNOWLEDGES”, nuevamente el maestro envía una trama de un
byte que no es más que el vector de registro que indica cuál de los registro se quiere leer, en
este punto, el maestro impone la condición de STOP del proceso que prepara al dispositivo
esclavo a enviar la trama de bytes que se desea leer.
Nuevamente se inicia la comunicación con el ADS1113 a través de la condición
START realizada por el maestro, responde el esclavo con un bit de reconocimiento
“ACKNOWLEDGES” para luego recibir un primer byte con los bits más significativos del
registro leído visto como (D15 D14 D13 D12 D11 D10 D9 D8), un bit ACKNOWLEDGES
de parte del maestro, que permite al dispositivo esclavo enviar los bits menos significativos
del registro (D7 D6 D5 D4 D3 D2 D1 D0), para finalizar con un bit ACKNOWLEDGES por
parte del dispositivo maestro y la condición STOP por el mismo que finaliza la
comunicación en modo de lectura.
54
Escritura hacia el ADS1113
Para el modo de escritura, a pesar que es muy parecido al realizado en el modo de
lectura, la secuencia es más fácil de realizar, tal como se observa en la¡Error! No se
encuentra el origen de la referencia.4, se procede con una condición de START dada por el
maestro que da el inicio con la comunicación por I2C.
Se envía de igual manera la trama de la dirección correspondiente al dispositivo,
más el bit R/W = 0, quedando 1 0 0 1 0 A1 A0 0, inmediatamente el dispositivo esclavo
responde con un ACKNOWLEDGES de reconocimiento y queda a la espera del envió de la
trama el vector que apunta al registro el cual se quiere escribir.
Una vez enviado este byte, por parte del dispositivo maestro, el esclavo responde
con un bit de reconocimiento “ACKNOWLEDGES”, en este momento el maestro envía el
byte más significativo del registro que desea configurar (D15 D14 D13 D12 D11 D10 D9
D8), espera un ACKNOWLEDGES por parte del dispositivo esclavo y luego envía la otra
trama de byte con los menos significativos (D7 D6 D5 D4 D3 D2 D1 D0), al realizar esta
operación, el esclavo responde con el ACKNOWLEDGES permitiendo al maestro terminar
la comunicación con la condición de STOP.
55
Figura 2.14: Diagrama de la trama de bits en modo de escritura del ADS1113.
Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
Conexionado del ADS1113
Figura 2.15: Diagrama de conexionado del ADS1113/14/15.
Fuente: Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet.
Como se aprecia en la Figura 2.15 conexión se lleva a cabo con un bus tipo usado
para la comunicación I2C, para este ejemplo ADDR = 0 por lo que la dirección adjunta
de este dispositivo vendrá determinada como 1 0 0 1 0 0 0 R/W.
56
2.2.6 Memoria SD
Secure Digital (SD) es un formato de tarjeta de memoria inventado por Panasonic
[13]. Se utiliza en dispositivos portátiles como cámaras digitales, teléfonos móviles,
computadoras portátiles (laptop) entre otros equipos. Estas tarjetas vienen en distintas
dimensiones, tal como se observa en la ¡Error! No se encuentra el origen de la referencia..
Estas tarjetas son utilizadas como soporte de almacenamiento por los dispositivos
electrónicos portátiles que lo ameriten, poseen una alta capacidad de almacenamiento
llegando a ser de 32 GB para el 2008. [13]
Técnicamente todas las tarjetas SD necesitan soportar el antiguo modo SPI/MMC
que soporta la interfaz de serie de cuatro señales ligeramente más lenta (reloj, entrada
serial, salida serial y selección de chip), compatible con los puertos SPI de muchos
microcontroladores. [14]
Figura 2.16: Dimensiones de la memoria de almacenamiento masivo.
Fuente:http://es.wikipedia.org/wiki/Archivo:SD_Cards.svg
A través de la Figura 2.16anexa se muestra la manera de conexión de la memoria de
almacenamiento masivo con el microcontrolador, aclarando que, con dicha figura no se
pretende comprometer los terminales del microcontrolador como tal, sino dar la vista de la
distribución de los terminales de la memoria SD.
Se observa además la necesidad de implementar un regulador de voltaje que baje la
tensión a 3.3 V, en el caso ilustrado por la Figura 2.17 están trabajando con un LM3940,
57
pero perfectamente podría utilizarse cualquier otro modelo que se adapte a las exigencias
ya vistas.
Figura 2.17: Esquema de conexión de la memoria SD con el PIC.
Fuente: Proton IDE, librería de uso de la memoria SD.
La distribución de las resistencias son un tema importante que destacar, a pesar de
que en la Figura 2.17, muestre una diferencia de casi el doble de su valor de las resistencias
que están en serie con los terminales del microcontrolador 1.5 KOhm con las que van a
masa 3.3 KOhm, perfectamente se pueden usar resistencias de igual valor y en un valor
hasta menor al mostrado en dicha figura, para el caso de la implementación, con unas
resistencias de valor igual a 3 KOhm perfectamente el circuito funciona, lo que sí es
importante destacar es la resistencia de pull-up el terminal DO de la memoria SD, ese valor
si se recomienda mantenerlo entre 1 a 10 KOhm.
58
2.2.7 Módulo de conexión USB
Universal Serial Bus, es un bus de comunicación creado durante los años 90s (1995)
diseñado para interconectar de forma fácil, flexible y a alta velocidad dispositivos
periféricos a un computador. [15]
Entre los beneficios más destacados se tiene:
Fácil uso.
Velocidad adecuada para muchas aplicaciones.
Confiabilidad.
Bajo costo.
Flexibilidad.
Soporte en el sistema operativo.
Entre sus desventajas se tienen:
Necesidad de controladores en el sistema operativo para el reconocimiento del equipo.
Distancia limitada, menor a 5 metros, máximo de 30, con el uso de repetidores (Hub)
alimentados con fuentes externas.
Dependencia de un host que generalmente es un computador e imposibilidad de
comunicación entre dispositivos esclavos.
Protocolo de datos complejo que exige al desarrollador.
La creación de drivers para el dispositivo.
Para obtener la patente del equipo a fabricar con este Bus de comunicación el costo para
la obtención de los VID y PID son elevados.
Entre las especificaciones técnicas se tiene que:
59
No requiere de recursos adicionales del hardware (del computador) por cada dispositivo
USB que se le añade al equipo, ya que todos utilizan una sola IRQ y un conjunto de
direcciones asignadas por el computador.
Los cables USB son polarizados y requieren de 4 a 5 conductores.
Se puede desconectar/conectar los dispositivos en caliente sin importar si el computador
o el periférico esta energizado o no.
En muchos casos no se requiere de fuente de alimentación externa ya que puede
suministrar +5V y hasta 500 mA. [13]
La interconexión física es una topología estrella.
En total, el USB 2.0 soporta tres tipos de velocidades:
1. Hi-Speed 480 Mbps.
2. Full-Speed 12 Mbps.
3. Low-Speed 1.5 Mbps.
Funciones del Host USB
El computador Host actúa como maestro del bus USB, entre sus funciones se
encuentran [15]:
1. Detectar los dispositivos mediante un proceso llamado enumeración, en la cual la PC
asigna una dirección y solicita la información necesaria de cada dispositivo.
2. Controla el flujo de datos, ya que, al existir múltiples dispositivos conectados en el bus,
varios de ellos querrán transmitir información al mismo tiempo, por lo que el Host
divide estos tiempos llamados frames y microframes y le da a cada transmisión una
porción de estos. El Host garantiza que la transferencia tenga los tiempos necesarios
dentro de cada frame, estos tiempos se establecen durante el proceso de enumeración.
60
3. Control de errores, el Host añade bits de detección de errores en los datos transmitidos,
por lo que, los dispositivos al recibir los datos, comparan estos con los bits de detección
de errores y si los datos no son correctos, envían un reconocimiento.
4. Suministrar energía a los dispositivos USB e intercambiar datos con los periféricos, que
vendría siendo la función principal del Host, esto se puede llevar a cabo de forma
periódica o solo en respuestas a eventos en el software.
Proceso de Enumeración
Cuando un dispositivo se conecta al bus USB, el Host lo encuesta pidiéndole una
serie de descriptores, que como su nombre lo indican, describen sus características y le
asignan una dirección que se utilizara para identificarlo posteriormente. Luego de esta
identificación, se procede a seleccionar los drivers a instalar, pudiendo ser los provistos por
el sistema operativo o por el fabricante. Todo este proceso se le conoce como enumeración.
Una vez que el dispositivo ha sido enumerado, cualquier aplicación podrá
interactuar con el mismo a través de los drivers mencionados. [14]
Paquetes de datos
La transferencia de datos USB se hace en forma de paquetes, debido a la diversidad
de periféricos que puede soportar existen varios tipos de formato de datos.
Los paquetes de datos comienzan con un byte de sincronización e inmediatamente
un identificador de paquete, cuyas siglas son (PID), este es de 4 bits (los cuales son
enviados con su complemento, el cual indicara el tipo de dato que vendrá a continuación,
en la Tabla 2.8se puede apreciar los distintos valores que este identificador de paquete
puede tener.
61
Tabla 2.8: Tipo de identificadores de paquetes (PID).
Fuente: Advanced PIC Microcontroller Projects in C.
Existiendo entonces cuatro formas de paquetes, estos son Toquen paces, data paces,
handshake packets, and special packets. [15]
Ahora en las siguientes tablas: Tabla 2.9, Tabla 2.10 y Tabla 2.11se apreciara la
forma como vienen distribuidos estos datos para cada forma del paquete Token, data y
handshake respectivamente.
Tabla 2.9: Token packets.
Fuente: Advanced PIC Microcontroller Projects in C.
62
Tabla 2.10: Data packets.
Fuente: Advanced PIC Microcontroller Projects in C.
Tabla 2.11: Handshake packets.
Fuente: Advanced PIC Microcontroller Projects in C.
Estos datos pueden ser transferidos en el Bus USB in 4 maneras, estas son las que se
presentan a continuación [15]:
1. Formato Bulk Asynchronous
Se utiliza para transmitir datos que son de tiempo crítico, la gran mayoría de los
periféricos utilizan este modo de transmisión. Los paquetes de datos pueden llegar en
tiempos diferentes dependiendo de la congestión del bus,
2. Formato Isochronous
Se utiliza cuando se requiere una velocidad de transferencia de datos constante y
conocida, por ejemplo al enviar audio a cornetas digitales o a un modem.
3. Formato control
Es usado por el computador Host USB para enviar paquetes de comandos (llamados
Tokens) para controlar la operación del bus. Los dispositivos USB también usan este
63
formato para enviar paquetes de control y sincronización (handshake) para indicar al Host
si los datos fueron recibidos de forma correcta, comando ACK o incorrecta NACK.
4. Formato Interrupt
Lo utilizan dispositivos que requieren atención específica del computador, es poco
utilizado. No tiene que ver con las interrupciones del computador. Se utiliza para enviar
pequeñas cantidades de información en el menor tiempo posible.
Todos los dispositivos USB tienen un árbol jerárquico de descriptores que indican
varias características de los dispositivos como lo es: la identificación del fabricante, versión
del dispositivo, versión del USB soportada, identificación de que es el dispositivo, sus
requerimientos de potencia, cantidad y tipos de endpoints, entre otras cosas.
Microcontroladores PIC18 con interfaz USB
Algunos de los microcontroladores PIC18 soportan la interfaz USB directamente,
para el caso del PIC18F4550 contiene dos tipos de velocidades compatibles, la full-speed y
la low-speed. [15]
Como se puede observar en la Figura 2.18el puerto C del PIC18F4550
específicamente los terminales RC4 (terminal 23) y RC5 (terminal 24) son los usados para
la transferencia de datos USB. El terminal RC4 es el terminal de datos USB D- y RC5es el
terminal de datos D+. [18]
Además se aprecia que internamente estos terminales pueden funcionar con unas
resistencias internas de pull-up, de igual forma, estas pueden ser deshabilitada el registro
UPUEN = 0 si se decide usar las resistencias de manera externa, haciendo valiosa la
acotación que si desea una conexión full-speed una resistencia interna o externa deberá ser
64
conectada a el terminal D+, si por el contrario se desea low-speed, una resistencia deberá
ser conectada de igual forma pero en el terminal D-. [15]
Figura 2.18: Esquema de los terminales del Bus USB para él PIC18F4550.
Fuente: Advanced PIC Microcontroller Projects in C.
Los dos tipos de conectores a usar serán el tipo A y B como se muestra en laFigura
2.19, además, los nombres de los terminales y su distribución se podrán apreciar en la
Figura 2.20y en laTabla 2.12.
Figura 2.19: Conector USB.
Fuente: Advanced PIC Microcontroller Projects in C.
65
Figura 2.20: Distribución de los terminales (Tipo A a la derecha y Tipo B a la izquierda).
Fuente: Advanced PIC Microcontroller Projects in C.
Tabla 2.12: Tabla de función de cada terminal del conector USB. Fuente: Advanced PIC Microcontroller Projects in C.
El esquema de conexión del bus USB con el PIC18F4550 es mostrado en laFigura
2.21, esta conexión es muy sencilla, el terminal 1 conectado al Vcc del microcontrolador y
el terminal 4 a masa, solo las dos líneas son conectadas al puerto C del PIC18F4550 como
se mencionó anteriormente, la alimentación del microcontrolador vendrá entonces
directamente del puerto USB del computador al cual esté conectada.
Figura 2.21: Esquema de conexión del PIC18F4550 con el conector USB.
Fuente: Advanced PIC Microcontroller Projects in C.
66
Para llevar a cabo dicha labor de configuración es necesario acceder a tres controles
de registros y un total de 22 registros a modificar para el buen funcionamiento del bus USB
en el microcontrolador, esta configuración tiene que ser minuciosamente realizada para que
no ocurra ningún tipo de inconveniente. [15]
Por suerte, existe una herramienta en Proton IDE que realiza de manera automática
esta configuración permitiendo concentrar la labor en la programación como tal del
Datalogger. Es archivo se encuentra en el directorio propiamente del programa C:\Archivos
de programa\Proton\MCLoader\LoaderHex, cuyo nombre es PLL_18F4550_20_48.hex, es
un bootloader que además permite hacer la programación del microcontrolador vía serial
desde el mismo Proton.
67
2.2.8 Protocolos de comunicación
Protocolo I2C
Es un bus de comunicaciones seriales sincrónicas sobre el cual se implementa un
protocolo de comunicaciones desarrollado por la Phillips Semiconductors a principios de
los años 80’s. Este bus se creó con la finalidad de reducir la complejidad del cableado
interno encontrado en las tarjetas electrónicas de equipos digitales de radio y TV.
Actualmente, su uso se ha extendido a innumerables aplicaciones en el área digital,
hecho que lo convierte, en uno de los más populares estándares de comunicación serial
síncrona. Existe una gran variedad de productos y fabricantes que producen circuitos
integrados con esta tecnología.
El término I2C es una simplificación comercial y practica de su nombre, el cual es
Inter-Integrated Circuit bus, es decir, bus de interconexión de circuitos integrados. [16]
Figura 2.22: Esquema de conexión del PIC18F4550 con los dispositivos I2C.
Fuente:iBoard II. Sistema de Desarrollo para Microcontroladores PIC con interfaz USB.
Como se mencionó anteriormente, la Figura 2.22muestra la manera como se
conectan los distintos dispositivos esclavos al microcontrolador (dispositivo maestro) a
través de dos (2) líneas SDA y SCL, además, y a manera de ejemplo, se presenta un
68
dispositivo medidor de temperatura, un reloj de tiempo real y una memoria de
almacenamiento masivo, estos funcionando bajo este protocolo de comunicación serial
sincrónica.
Entre las características principales se tiene [16]:
Utiliza dos líneas para la comunicación, una para datos llamada (SDA) y otra para la
señal de reloj (SCL).
Cada dispositivo conectado al bus es identificado por una única dirección (dentro del
bus). Esta queda establecida a través de una combinación de Hardware/Software.
El bus I2C es multi-maestro y aun cuando esta característica es poco utilizada, se define
un mecanismo para la detección de las colisiones y arbitrajes, el cual, busca prevenir la
perdida de información si dos o más maestro inicializan comunicaciones de manera
simultánea.
Las transferencias de información se realizan en paquetes de 8 bits, en forma bi-
direccional y pueden ser efectuadas a tres velocidades: la normal (Standard) a unos 100
Kbit/s (definición original), a 400 Kbit/s (implementado a partir de la versión 1.1 del
año 1992) en el modo rápido (fast) a 3,4 Mbit/s en el modo de alta velocidad (High-
Speed) disponible desde la versión 2.0 del año 1998.
La generación de los pulsos de reloj es siempre responsabilidad del maestro que
controla el bus. El maestro comienza y termina todas las transferencias de datos y para ello
hace uso de dos condiciones especiales denominadas INICIO y PARADA (STRAT y STOP)
que pueden ser únicamente generadas por él.
Una transición de 1 a 0 (un flanco de bajada) es la línea SDA mientras SCL se
mantiene en alto determina la condición de INICIO; una vez que ocurre esta condición, el
bus se considera ocupado (BUSY). Una transición de 0 a 1 (un flanco de subida) en la línea
SDA mientras SCL se mantiene en alto, determina la condición de PARADA, transcurrido
69
un tiempo luego de ocurrir esa condición, el bus se considera libre (FREE). Esto se puede
apreciar bien laFigura 2.23mostrada a continuación. [19]
Figura 2.23: Modos de transición de condiciones para dispositivos I2C.
Fuente: iBoard II. Sistema de Desarrollo para Microcontroladores PIC con interfaz USB.
Todos los bytes de información colocados sobre la línea SDA deben tener 8 bits. El
número máximo de bytes que pueden ser enviados en una transición no está restringido,
siendo el esclavo quien fija esta cantidad de acuerdo a sus características. [16]
Él envió de los bits se efectúa siempre desde el MSB hacia LSB. Aun cuando el
maestro es quien siempre controla el estado de la línea de reloj. Un esclavo de baja
velocidad o que deba detener la transferencia de datos mientras efectúa otra función, puede
forzar la línea SCL a nivel bajo. Esto hace que el maestro entre en un estado de espera,
durante el cual, no transmite información esperando a que el esclavo esté listo para
continuar la transferencia en el punto donde había sido detenida. [16]
En cuanto al direccionamiento y formato de transferencia de información, los
dispositivos que trabajan bajo la comunicación I2C se identifican por medio de una
dirección única que forma parte de un byte de control enviado por el dispositivo maestro al
iniciar la comunicación. La definición inicial del I2C preveía la existencia de 7 bits para
direccionar al esclavo, de esta forma, se pueden conectar hasta 128 dispositivos en el bus.
70
A partir de la versión 1.0 del año 1992, existe un formato de direccionamiento de 10
bits y se ha incrementado significativamente el número de dispositivos que pueden
conectarse simultáneamente al bus. Cabe mencionar que el compilador a usar no da soporte
para dispositivos con direccionamiento de 10 bits. [16]
Figura 2.24: Direccionamiento y formato de transferencia de dispositivos I2C.
Fuente: iBoard II. Sistema de Desarrollo para Microcontroladores PIC con interfaz USB.
Como se muestra en la Figura 2.24, los siete bits de identificación del dispositivos
son los primeros en ser enviados hacia el bus sobre la línea SDA, desde el MSB hasta LSB
seguido del bit de lectura o escritura R/W mencionado ya en secciones anteriores,
dependerá del tipo de dispositivo esclavo y del modo en el cual se esté trabajando (por si es
modo de lectura o escritura) los bit de reconocimiento(ACKNOWLEDGES) se realizaran de
manera automática, o realizados por el dispositivo maestro, seguido de los bits de datos
enviados al dispositivo esclavo o recibidos del mismo al dispositivo maestro. En las hojas
técnicas de los dispositivos con esta comunicación, indican con mayor detalle cómo se
realiza esta transferencia de datos.
Protocolo SPI
El protocolo SPI (del inglés Serial Peripheral Interface) “Interfaz periférica serial”
es un estándar establecido por Motorola que utiliza un bus de 4 líneas para interconectar
71
dispositivos periféricos de baja y media velocidad. La comunicación se realiza siguiendo un
modelo maestro/esclavo donde el maestro selecciona al esclavo y comienza el proceso de
transmisión/recepción de la información. [16]
SPI constituye un bus full-dúplex, es decir, que se puede enviar y recibir
información de manera simultánea, lo cual, eleva la tasa de transferencia de los datos. En
este popular estándar no existe ningún medio de direccionamiento de los dispositivos
esclavos y mucho menos reconocimiento (ACKNOWLEDGEMENT) de la recepción de los
datos, así que, no existe forma alguna para que el dispositivo maestro pueda detectar la
presencia de un esclavo o establecer un medio de control de flujo de datos. La Figura
2.25muestra la conexión típica de un grupo de dispositivos en un bus SPI. [16]
Los nombres de las señales son definidos dentro del estándar como: SCLK reloj del
bus, MOSI (Master Output Slave Input) salida de datos del maestro, entrada de datos a los
esclavos, MISO (Master Input Slave Output) salida de datos de los esclavos, entrada de
datos al maestro y SS (Slave Select) habilitación del esclavo por parte del maestro. [16]
Dependiendo del número de esclavos presentes en el bus, se requerirán más o
menos líneas de selección para estos, cada una de ellas será nombrada como SS1, SS2, SS3,
etc. Este medio de selección permite conectar varios esclavos de manera muy simple.
Se definen dos parámetros CPOL (Clock Polarity) y CPHA (Clock Phase) con los
cuales se determina, con respecto al pulso de reloj, el momento en el cual se considera
válido un dato de entrada o se genera un dato de salida. Estos parámetros ofrecen hasta
cuatro (4) combinaciones distintas, estas se pueden apreciar en laFigura 2.26.
72
Figura 2.25: Conexión típica de un grupo de dispositivos en un bus SPI.
Fuente: iBoard III. Sistema de Desarrollo para Microcontroladores PIC con interfaz USB.
Estas cuatro combinaciones constituyen los cuatro (4) modos de trabajo del bus SPI
para lograr una comunicación exitosa, cada par maestro-esclavo dentro del bus tiene que
operar en el mismo modo, en el cual, está definido generalmente por el dispositivo esclavo.
El estándar SPI no define un protocolo para la transmisión de los datos y aunque
especifica que el número de bits que componen cada dato a transmitir sea de ocho (8) bit,
existen muchos dispositivos SPI compatibles que no emplean exactamente esta definición.
Ante esto, se hace indispensable recurrir a los diagramas y especificaciones de tiempo
propias del circuito integrado por el fabricante. [16]
73
Figura 2.26: Parámetros CPOL (Clock Polarity) y CPHA (Clock Phase) bus SPI.
Fuente: iBoard II. Sistema de Desarrollo para Microcontroladores PIC con interfaz USB.
2.2.9Modulación Delta - Sigma
El modulador Sigma Delta se introdujo por primera vez en 1962, pero hasta
recientes desarrollos digitales en tecnologías VLSI era muy difícil fabricarlo de forma
rentable. Una de las mayores ventajas de la técnica sigma delta es que se pude usar para
filtrado digital y aproximadamente en un 90% de su tamaño, es totalmente digital.
Como resultado los convertidores sigma delta actuales proporcionan altas
resoluciones y buenas características de ruido a unos precios competitivos. Los ADC’s
sigma delta se benefician de todas las ventajas de ser digitales en su totalidad, es decir, alta
fiabilidad, gran estabilidad, funcionalidad creciente. [17]
74
Usan un ADC de baja resolución (cuantificador de un bit) con una frecuencia de
muestreo muchas veces por encima de la de Nyquist. A esto le sigue un diezmado en el
dominio digital que baja la frecuencia de salida y aumenta la precisión.
La cuantización de un bit de los ADC’s sigma delta usa un método que fue derivado
como una extensión de una técnica de modulación a la que se llama modulación
delta. Se basa en cuantizar la diferencia entre muestras sucesivas, en lugar del valor
absoluto de la muestra (ver Figura 2.27).
En la Figura 2.27se muestra el diagrama de bloque de primer orden de un
convertidor Sigma-Delta (ADC). La entrada viene precedida del valor X que llega a un
punto sumador, de allí, pasa a través del integrador el cual alimenta a un comparador que
actúa como un cuantificador de un bit, en la salida del comparador, la señal D es
retroalimentada a la entrada para generar, pasando previamente por un convertidor
analógico digital (DAC), hace que el promedio de la señal W busque ser igual a la señal X,
generando la señal B (vendría siendo una señal de “error”). La salida de la señal D pasa a
través de un filtro digital donde se promedia los valores y produce un resultado de n bits a
menor frecuencia (ver Figura 2.28).
Figura 2.27: Modulación/Demodulación Delta
Fuente: Nota de aplicación, Introducción a la conversión Sigma-Delta, Mayo 2009
75
Figura 2.28: Operación de diezmado digital.
2.2.10Software Visual Studio
Microsoft Visual Studio (verFigura 2.29) es un entorno de desarrollo integrado
(cuyas siglas en ingles son IDE) para sistemas operativos Windows. Soporta varios
lenguajes de programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y
Visual Basic.NET, aunque actualmente se han desarrollado las extensiones necesarias para
muchos otros.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones
web, así como servicios web en cualquier entorno que soporte la plataforma .NET. Así se
pueden crear aplicaciones que intercomuniquen entre estaciones de trabajo, páginas web y
dispositivos móviles utilizando una programación orientada a objetos.
76
Figura 2.29: Logotipo de Microsoft Visual Studio
Fuente:http://www.returngis.net/2011/01/anadir-web-references-en-visual-studio-2010/
La programación orientada a objetos entra en el conjunto que conforman un
paradigma de programación donde el núcleo central de este paradigma es la unión de datos
y procesamiento en una entidad llamada “objeto”, relacionable a su vez con otras entidades
“objetos”. [18]
Estos “objetos” son entidades que tienen un determinado estado, comportamiento
(método) e identidad [18]:
El estado está compuesto de datos, será uno o varios atributos a los que
habrán asignado unos valores concretos (datos).
El comportamiento está definido por los métodos o mensajes a los que sabe
responder dicho objeto, es decir, que operaciones se pueden realizar con él.
La entidad es una propiedad de un objeto que lo diferencia del resto, dicho
con otras palabras, es su identificador (concepto análogo al de identificador
de una variable o una constante).
Un objeto contiene toda la información que permite definirlo e identificarlo frente a
otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al
poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de
77
mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos.
Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta
característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado
y el comportamiento. [18]
Los métodos (comportamientos) y atributos (estados) están estrechamente
relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de
métodos para poder tratar los atributos con los que cuenta. El programador debe pensar
indistintamente en ambos conceptos, sin separar ni darle mayor importancia a algunos de
ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de
información por un lado y clases con métodos que manejen a las primeras por el otro. De
esta manera se estaría realizando una programación estructurada camuflada en un lenguaje
de programación orientada a objetos.
En conclusión la programación orientada a objetos difiere de la programación
estructurada tradicional, en la que los datos y los procedimientos están separados y sin
relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para
obtener otros de salida. La programación estructurada anima al programador a pensar sobre
todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de
datos que esos procedimientos manejan.
En la programación estructurada solo se escriben funciones que procesan datos. Los
programadores que emplean lengua orientado a objetos, en cambio, primero definen objetos
para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismo- [18]
78
2.2.11Software PROTON IDE
El Proton IDE(ver Figura 2.30) es un software que permite escribir código en
BASIC, usado para realizar todas las tareas asociadas al uso del microcontrolador, como
escribir y editar el código, compilarlo, programarlo y depurar, este potente entorno de
desarrollo integrado (IDE) ha sido diseñado específicamente para el compilador del Proton
Plus. Protón IDE posee una interfaz con un entorno visual cómodo a la hora de ser utilizado
por el usuario sin comprometer el rendimiento, la flexibilidad o el control. Este compilador
es actualmente el compilador de Basic para microcontroladores PIC más potente del
mercado ya que permite realizar operaciones que con otros compiladores no se puede. [19]
El Protón Development Suite es el resultado de una colaboración entre tres
empresas británicas que llevan su campo, Crownhill Associates, Mecanique y Labcenter.
[20]
Entre los dispositivos soportados se incluyen los microcontroladores: 16F870,
16F871, 16F873 (A), 16F874 (A), 16F876 (A), 16F877 (A), 16F87, 16F88, 18F242,
18F248, 18F252, 18F258, 18F442, 18F448, 18F452, 18F458, 18F1220, 18F1320, 18F2220,
18F2320, 18F4220, 18F4320, 18F6620, 18F6720, 18F8620 y 18F8720.
Entre las capacidades del software, se puede observar [16]:
Programación en alto nivel, estructurado y modular en lenguaje Basic.
Facilidad para la definición y manejo de memoria RAM, EEprom y Flash,
definición de variables y modificadores de formato.
Funciones matemáticas, trigonométricas y lógicas incluidas.
Funciones incluidas para facilitar el manejo de “string”.
Manejo directo de pantallas LCD alfanuméricas y gráficas.
Generación de múltiples tonos y sonidos de alarma.
Medición de pulsos, frecuencia y conteo de eventos.
79
Manejo de pulsadores e interruptores de forma fácil y eliminando rebotes.
Manejo total de interrupciones para todos los periféricos incluidos.
Aritmética en punto flotante para las variables así definidas.
Manejo de motores servo y de paso mediante comandos, especializados.
Manejo de tablas y estructuras condicionales de repetición y decisión.
Acceso a los registros internos del microcontrolador para lectura y/o escritura.
Gran número de librerías disponibles.
Manejo de los protocolos de comunicación serial:
o 1-Wire de Dallas Semiconductors.
o I2C de Phillips Semiconductors.
o 3-Wire de Dallas-Maxim.
o SPI de Motorola.
Amigable IDE de programación.
Figura 2.30: Logotipo del software Proton IDE.
Fuente:http://www.protonbasic.co.uk
80
CAPÍTULO III
MARCO METODOLÓGICO
En este capítulo se describe de manera resumida las etapas a realizadas para
asegurar el cumplimiento de los objetivos propuestos y culminar eficientemente el trabajo
de grado, esto se hizo posible debido a que se dividió el proyecto en las etapas nombradas a
continuación:
Tipo de investigación
Considerando las características del presente trabajo especial de grado, éste se
encuentra clasificado dentro de los diferentes tipos de investigación como proyecto factible,
el cual consiste en “la investigación, elaboración y desarrollo de una propuesta de modelo
operativo viable para solucionar problemas, requerimientos o necesidades de
organizaciones, instituciones o grupos sociales; puede referirse a la formulación y
desarrollo de políticas, programas, tecnologías, métodos o procesos”.[21]
Procedimiento metodológico
En función al cumplimiento de los objetivos propuestos, el trabajo se desarrolló en
cinco (5) etapas, las cuales se describen a continuación:
Etapa I: Identificación de las características técnicas de dispositivos comerciales
En esta etapa del proyecto, se fijó todos estos contenidos teóricos con respecto al
diseño del módulo de almacenamiento masivo, primeramente valiéndose de la
81
identificación de las características técnicas de algunos dispositivos de esta índole que estén
en mercado o ya creados en investigaciones o aplicaciones anteriores.
Esta información ya apuntada para su estudio se encontró en libros de sistemas
digitales, catálogos de estos equipos, hojas técnicas de los dispositivos electrónicos
similares al que se desarrolló y páginas de internet.
Actividades Sub-tareas
Definición del proyecto de investigación
realizada
Definición del título del proyecto de grado
Definición del objetivo general.
Recolección y selección de material teórico inicial.
Análisis de la información.
Identificar las características técnicas y
prestaciones de algunos sistemas de
registros de datos disponibles
comercialmente
Análisis los diferentes sistemas de registro de datos que se
encuentren disponibles en la red.
Identificar las señales analógicas existentes en los lazos de
control del Laboratorio de Instrumentación y Control de
Procesos.
Analizar la información obtenida y en base a ella, evaluar las
posibles tipos de entradas presente en el módulo de registro
de datos a desarrollar.
Etapa II: Descripción del sistema de registro de datos a implementar
Una vez recolectada la información y precisado los elementos electrónicos que
participan en un dispositivo de esta índole, se procedió a en marcar todo lo concerniente a
los conceptos en donde se fija la teoría necesaria para entender el funcionamiento del
mismo, de allí se puntualiza los límites de cómo estará estructurado el MÓDULO físico
fijando las características técnicas del funcionamiento del dispositivo desarrollado,
tomando en cuenta las señales vista con mayor frecuencia dentro del Laboratorio de
Instrumentación y Control de Procesos.
82
Actividades Sub-tareas
Describir el funcionamiento, características
y limitaciones del sistema de registro de
datos que se utilizó para el equipo
implementado
Evaluación de las señales analógicas más comunes existentes
en los lazos de control de las plantas pilotos del Laboratorio de
Instrumentación y Control de Procesos.
Definición las entradas que están presentes en el módulo de
adquisición de datos a implementar.
Evaluación la conversión analógica-digital del
microcontrolador y de otros dispositivos de conversión para
establecer diferencias entre ellos y así, determinar cuál es el
más recurrente para realizar la digitalización de las señales en
el dispositivo.
Etapa III: Elaboración del dispositivo físico (hardware)
Esta etapa conforma el diseño de los esquemáticos, el diseño de las tarjetas, ambos
realizados en el software ExpressPCB y la construcción de las mismas. Para la fabricación
del dispositivo se escogió los dispositivos electrónicos estudiados en las etapas anteriores,
tomando en cuenta también los ya vistos en la cátedra de Diseño Digital.
Actividades Sub-tareas
Diagramar el sistema de almacenamiento
masivo para la construcción del hardware,
considerando el instrumental de los
procesos instalados en el laboratorio.
Estudio del software ExpressPCB
Esquematizar el módulo de adquisición de datos en dos (2)
tarjetas
Evaluar las dimensiones de las tarjetas conforme a los
materiales adquiridos
Diseñar las tarjetas en el software estudiado
Fabricación del diseño de las tarjetas en las pcb's
Soldadura de todos los componentes de las tarjetas
Evaluación de continuidad en las pistas para la reparación de
las posibles anomalías o discontinuidades presentes
83
Etapa IV: Creación de la interfaz visual
Esta etapa está enmarcada en la elaboración de la interfaz visual que comunica al
módulo físico con un computador, mediante el desarrollo de una aplicación que ofrece una
aplicación amigable de los datos obtenidos por el equipo, visualizando las señales del
proceso de adquisición y registro de datos tanto numérica como gráficamente. Se concreta
el protocolo de comunicación bidireccional (equipo de almacenamiento masivo y el
computador), con referente al dimensionamiento del paquete de datos y como estos vendrán
organizados, lo que permitirá el intercambio de información que soportara la operación del
sistema de registro de datos.
Actividades Sub-tareas
Creación de la interfaz para el módulo de
almacenamiento masivo para ser usado en
un computador capaz de configurar la
operación del prototipo, descargar y
visualizar los datos almacenados por él.
Estudio del software Visual Studio 2010
Elaboración de la interfaz del módulo de adquisición y
registro de datos la cual incluirá algunas de las herramientas
de configuración más importantes de esta clase de sistemas
Programación cada uno de los objetos insertados en la sub-
tarea anterior
Depuración posibles anomalías presentes hasta el momento
de la interfaz, ya que se debe tomar en cuenta que aún no se
ha establecido la comunicación con el hardware
Estudio del software MikroBasic para la programación del
hardware
Realización sub-rutinas en el software estudiado para la
implementación de los componentes que conforman el
hardware
Incorporación en el programa principal del dispositivo, todas
las sub-rutinas creadas en la sub-tarea anterior
Etapa V: Pruebas operativas y calibración del instrumento
Verificación del correcto funcionamiento mediante la realización de pruebas, las
cuales se hicieron bajo la selección de la planta de flujo y el banco de calibración de
termocuplas del laboratorio de Instrumentación y Control de Procesos, en donde se puso en
84
funcionamiento, bajo el control del dispositivo Honeywell UDC5000 en el lazo de control.
Acá, se programó el dispositivo Datalogger para que realice la adquisición y registro de
datos de manera autónoma y llevada a tiempo real, en la cual se lo tuvo conectado al
computador para la visualización de los datos a través del software.
Por lo tanto, se obtuvo con estas pruebas, los patrones de comportamiento del
dispositivo fabricado y bajo el instrumento patrón establecer el error estático y así definir la
clase del registrador construido y levantar la curva de calibración para asegurar que el
dispositivo este dentro de la clase.
Realizada la prueba, depurado posibles errores en el código del dispositivo,
verificación de la recepción de los datos en la interfaz y obteniendo la curva de calibración,
se procedió, en esta etapa, a realización del análisis y resultados obtenidos de las pruebas
realizadas durante la etapa , con la intención de plasmar toda esta información y realizar
las conclusiones pertinentes y recomendaciones para futuros estudios y/o aplicaciones de
dispositivos que se puedan trabajar con este trabajo de grado como antecedente.
Actividades Sub-tareas
Ejecución una serie de pruebas operativas y
de calibración para verificar el correcto
funcionamiento del sistema y el protocolo
de comunicación bidireccional entre el
dispositivo y la aplicación.
Establecer la dimensión del buffer de datos para la recepción y
él envió de información tanto para el dispositivo físico como
para la interfaz del MÓDULO
Establecer para ambos módulos (hardware y software) los
identificadores que serán utilizados para el reconocimiento de
la información que manejara el MÓDULO
Descartar posibles anomalías en durante la puesta en marcha
del equipo
Seleccionar una planta del laboratorio e implementar el equipo
con los dispositivos de campo presentes en ella
Calibración y ajuste de parámetros del sistema
Análisis de resultados obtenidos
Recolección de los datos técnicos del equipo
Extraer información referente a la estructura de un manual de
usuario para esta clase de equipos (hardware y software)
presentes en otras tesis o equipos encontrados en la web
85
CAPÍTULO IV
RESULTADOS
4.1 Manejo de la memoria SD de manera sectorizada, como memoria EEPROM
En casos en donde un proceso determinado sea necesario almacenar grandes
cantidades de datos en donde la memoria EEPROM suele ser insuficiente, es por ello, que
el uso de las memorias tipo flash (SD/MMC) brindan una gran ventaja, otorgando gran
capacidad de almacenamiento y una gran disponibilidad en el mercado a muy bajo costo.
[23]
Por lo cual, para el uso que se le dio en el proyecto, encaja perfectamente la
definición anteriormente mencionada ya que se dispone de un proceso donde se almacenan
grandes cantidades de muestras de las señales analógicas de corriente, voltaje y
temperatura.
La manera como se efectúa la partición la memoria se ilustra en la Figura 4.1 en
donde se aprecia la unidad básica de transferencia de datos, todas las operaciones de datos
requieren una escritura completa en el sector el cual se está realizando dicha escritura, este
es previsto de 512 bytes por el fabricante el cual fue SanDisk, de manera que no hay forma
de manipular el tamaño de la memoria en el caso de la escritura, quiere decir que en el
momento de escribir en un sector permisible por la memoria, deberá ser realizada la
escritura desde el bloque 0 (byte 0) hasta el bloque n (byte 512). [24]
La manera de escribir de manera sectorizada, es realizando una indicacion desde la
rutina de escritura en el programa principal del microcontrolador, donde un apuntador tal
realiza la asignación del sector que se va a escribir tal como la escritura en la memoria
EEPROM, por lo que se podria realizar tantas escrituras en un mismo sector como sean
necesarias, y estas sobre escriben las ya existentes.
86
En este proyecto, se realiza la escriturade los sectores con el siguiente orden de
información:
1. Las 4 señales analógicas: canal 1 [4 – 20] mA, canal 2 [4 – 20] mA, canal 3 [0 – 5] V y
canal 4 [-10 – 400] ºC.
2. Los datos de fecha y hora en el siguiente orden: dia (dd), mes (mm), año (yyyy), hora
(hh), minuto (mm), segundo (ss) y milisegundo (sss).
Figura 4.1: Partición de la memoria SD
Fuente: SanDisk SD Card, Product Manual Version 2.2 November 2004
Para la comunicación con la tarjeta utilizando este modo, son necesarias solo las
cuatro líneas de comunicación, DATA IN, DATA OUT, CS y CLK. La memoria recibe los
87
datos y los comandos por DATA IN y envía datos por DATA OUT. Para habilitar la tarjeta
se debe poner en nivel bajo el terminal CS. La señal de CLK que envía desde el
microcontrolador, también conocido como dispositivo maestro, la señal de reloj que será la
velocidad de la comunicación. [23]
Como los datos se envían solo por un terminal, se tiene menor utilización del
potencial de la memoria. La aplicación de cada uno de estos terminales se muestra en la
Tabla.
Tabla 4.1: Aplicación para cada terminal de la memoria SD en modo de comunicación SPI
Fuente: MANEJO DE UNA MEMORIA SD/MMC CON UN PIC16F87x. Carlos Alberto Henao
Número del terminal Nombre Descripción
1 CS Activación de la tarjeta
2 DATA IN Comandos de datos desde el host
3 VSS GND
4 VDD Alimentación
5 CLK Reloj
6 VSS GND
7 DATA OUT Datos hacia el host
8 RSV Reservado
9 RSV Reservado
La secuencia de comandos para la tarjeta en modo SPI consiste de 6 bytes tal como
se ilustra en la Tabla 4.2. A continuación se define lo contenido en dicha tabla.
Tabla 4.2: Secuencia de comandos SPI
Fuente: MANEJO DE UNA MEMORIA SD/MMC CON UN PIC16F87x. Carlos Alberto Henao
1. El primer byte es el comando (escritura, lectura, etc.).
2. Del segundo byte al quinto son datos adicionales, por ejemplo direcciones, tamaño, etc.
88
3. El sexto byte es de verificación.
Con respecto a los comandos utilizados para la comunicación SPI, la memoria
contiene varios de estos que funcionan por comunicación SPI, se citan como ejemplo la
Tabla 4.3
Tabla 4.3: Comando más usados para la comunicación de la memoria SD
Fuente: MANEJO DE UNA MEMORIA SD/MMC CON UN PIC16F87x. Carlos Alberto Henao
Comando Descripción
CMD0 Reset de la memoria
CMD1 Inicialización de la memoria
CMD16 Configuración del bloque de 512 bytes
CMD17 Lectura de un bloque de 512 bytes
CMD24 Escritura de un bloque de 512 byte
Una vez enviado el respectivo comando, la memoria responde por medio de un
registro llamado R1, tal como se muestra en la Figura.
Según dicha figura, la memoria debe responder con 0x00 para todos los comandos
antes mencionados, pero para el comando 0 (CMD0) la memoria responde con un 0x01
debido a su estado inicial.
Figura 4.2: Registro de errores enviado por la memoria
Fuente: MANEJO DE UNA MEMORIA SD/MMC CON UN PIC16F87x. Carlos Alberto Henao
89
Se exhorta al lector a remitirse a la bibliografía citada [23] para estudiar más a
fondo el estudio de la secuencia de inicialización de la memoria SPI ya que para efectos del
proyecto, este material cubre las necesidades de análisis en su estudio.
A continuación se presentaran los resultados correspondientes a cada una de las etapas
planteadas en el procedimiento metodológico:
4.2 Etapa I: Identificación de las características técnicas de dispositivos comerciales
Reforzando lo antes mencionado en el marco teórico (véase la página 19 del
Capítulo II), el funcionamiento secuencial de un dispositivo de esta naturaleza al momento
de realizar su labor son:
1. Adquiere al valor de la variable (señal eléctrica) en su forma analógica) del lazo
del proceso (ejemplo lazo de corriente de [4-20] mA) o del transductor que esté
conectado al dispositivo (ejemplo un termopar).
2. Realiza el proceso de digitalizar la señal analógica.
3. Toma los datos de fecha y hora del RTC que posea como dispositivo esclavo.
4. Registra la cadena en la memoria no volátil que posea el dispositivo, bien sea,
una memoria EEPROM, una SD o MMC.
5. Si el dispositivo posee una interfaz visual a nivel físico (una Display 7
segmentos, pantalla alfanumérica o pantalla grafica), presenta los datos
registrados más alguna información adicional.
6. Transmite de datos a través de un bus de comunicación hacia una aplicación
realizada en el computador para generar un archivo interpretable por el usuario
de manera coherente.
Como parte del hardware, un registrador de datos estaría compuesto de los
siguientes componentes:
90
1. Un dispositivo maestro el cual realice la gestión del proceso (comúnmente
un microcontrolador o un microprocesador).
2. Un reloj de tiempo real (RTC) que mantiene la información de la fecha y
hora.
3. Una batería para realizar sus funciones de manera autónoma.
4. Un dispositivo de conversión de la señal analógica a digital (AD) de gran
resolución en bits.
5. Multiplexor analógico que realiza de manera secuencial el cambio de canal
para ser leído por el conversor AD.
6. Una electrónica analógica para filtrar la señal de ruidos electromagnéticos
(comúnmente formado por circuitos RC y/o amplificadores operacionales).
7. Una memoria no volátil para almacenar la trama de datos adquiridos en el
proceso.
8. Una serie de botones, indicadores lumínicos y/o pantalla alfanumérica para
interactuar de manera física con él.
4.3 Etapa II: Descripción del sistema de registro de datos a implementar
Tomando en consideración los estudios realizados en la etapa I, se desarrolló un
dispositivo registrador de las variables analógicas ya mencionadas (dos (2) canales de
corriente de [4-20] mA, un (1) canal de voltaje de [0-5] V y una entrada para leer un
termopar tipo K [-10-400] ºC), tal como se muestra en la Figura 4.3.
91
Figura 4.3: Diseño en bloque del registrador DataLabUC
Los esquemas de conexión usada para la interfaz física del dispositivo (pulsadores e
indicadores lumínicos) que tendrá el usuario son como los mostrados en las Figura 4.4y
Figura 4.5respectivamente.
92
Figura 4.4: Esquema de conexión de los led's
Figura 4.5: Esquema de conexión de los pulsadores
La interfaz utilizada para la conexión de las entradas analógicas de los canales de
medición de corriente se muestra en la Figura 4.6. La resistencia de 180OHM se utiliza
para producir una caída de tensión entre sus terminales y medirla mediante el convertidor
ADC del Datalogger. Los diodos D1 y D2, junto con la resistencia R2 (de 1KOHM),
conforman un circuito de protección del circuito de entrada contra polaridad inversa y sobre
voltaje. Seguidamente el circuito incluye un seguidor de voltaje y un filtro pasa bajas de
primer orden encargados de acondicionar la señal antes de ser entregada al ADC. El filtro
se comporta como un filtro anti- aliasing, ajustado aproximadamente en 720 Hz, según la
ecuación mostrada:
93
Figura 4.6: Esquema de conexión de los lazos de corriente y de voltaje
Para e canal cuatro (4) que sirve como entrada para un termopar tipo K se
implementoel esquema de laFigura 4.7. El circuito se compone de dos etapas, las se
describen a continuación.
94
La etapa A: la conforman principalmente un amplificador de precisión de
termopares con compensación de junta fria modelo AD8495 y un circuito seguidor de
tensión que funciona como acoplador de impedancias.El AD8495 es un ciruito integrado
que produce niveles de (5 mV/ºC) a la salida, directamente de la cominación de la señal
recibida del termopar y la junta fria de referencia precalibrada, pudiendo ser usado como un
compensador“standalone” o habilitado por una señal se control. [22]
Puede realizar mediciones por debajo de los 0 ºC debido a un offset de referencia y
típicamente opera con una corriente de 180 uA, calibrado para linealizar termopares tipo K
(cromel-aluminio). Viene en un empaque de 8 terminalescomo se muestra en laFigura
4.8.La descripción de las funciones asociadas a cada terminal se describen en laTabla 4.4.
Tabla 4.4: Descripción de los terminales del AD8495
Fuente: AD8495 Precision Thermocouple Amplifiers with Cold Junction Compensation datasheet
Terminal Nº Nemonico Descripción
1 -IN Entrada negativa
2 REF Referencia. Este terminal debe ser
puesto en baja impedancia
3 -VS Fuente negativa
4 NC No se usa
5 SENSE Terminal sensor. Para realizar la
medición de la temperatura
6 OUT Salida
7 +VS Entrada positiva de la fuente
8 +IN Entrada positiva
95
Figura 4.7: Esquema de conexión del canal 4 (Termocupla tipo K)
Figura 4.8: Terminales de configuración del AD8495
Fuente: AD8495 Precision Thermocouple Amplifiers with Cold Junction Compensation datasheet
La Figura 4.9 muestra el diagrama del bloque de los conversores de la serie
AD849x, fíjese que consiste de un juego de amplificadores operacionales que proporcionan
a la salida un voltaje que es proporcional a la temperatura de entrada o de la junta caliente
(Tmi). Este voltaje viene regido bajo esta ecuación:
B
A
96
Por lo tanto, al realizar el despeje del valor de tensión de salida Vout de la ecuación
anterior, la ecuación queda expresada de la siguiente manera:
Su salida produce una incertidumbre de ± 2ºC de acuerdo con la información del
fabricante, tal como se presenta en la Tabla 4.5mostrada a continuación.
Tabla 4.5: Rango de temperatura del AD8495
Fuente: AD8495 Precision Thermocouple Amplifiers with Cold Junction Compensation datasheet
Dispositivo Tipo de
termocupla
Max
Error
Rango de
Temperatu
ambiente
Rango de medición
De la temperatura
AD8494 J ± 2ºC 0ºC a 50ºC -35ºC a 95ºC
AD8495 K ± 2ºC 0ºC a 50ºC -25ºC a 400ºC
AD8496 J ± 2ºC 25ºC a 100ºC 55ºC a 565ºC
AD8497 K ± 2ºC 25ºC a 100ºC -25ºC a 295ºC
Figura 4.9: Diagrama de bloque
Fuente: AD8495 Precision Thermocouple Amplifiers with Cold Junction Compensation datasheet
Entre las recomendaciones que realiza el fabricante para la conexión del dispositivo
se observa en la Figura 4.10 un filtro paso bajo colocado antes del AD8495 el cual tiene la
97
finalidad de reducir considerablemente el ruido eléctrico ajeno a la señal, ya que, debido a
la naturaleza del termopar, funcionaría como un receptor de señales eléctricas (antena).
Además requiere de la conexión de una resistencia de 1MOhm para cuando no haya
termopar conectado y evitar un punto flotante en la entrada del circuito.
Figura 4.10: Incorporación de un filtro RC aguas arriba del AD8495
Fuente: AD8495 Precision Thermocouple Amplifiers with Cold Junction Compensation datasheet
La etapa B: tal como es mostrado en la Figura 4.7se identifica un conexionado que
produce la señal de voltaje a la entrada de referencia del AD8495, tal como se muestra en la
Figura 4.11este es la conexión correcta que recomienda el fabricante de este dispositivo
para proporcionarle al sistema Vref, nótese que luego de regular la tensión de entrada a
través del MCP1525 esta pasa por un divisor de tensión que pone a la entrada del seguidor
de voltaje una señal de 1.25 Vdc, visto de otra forma Vref = 1.25 V será el cero (0) ºC del
sistema.
98
Figura 4.11: Correcta configuración del voltaje de referencia del AD8495
Fuente: AD8495 Precision Thermocouple Amplifiers with Cold Junction Compensation datasheet
Estas cuatro (4) señales se concentran al circuito integrado CD74HC4067 mostrado
en la Figura 4.12. Este dispositivo es un multiplexor de señales analógicas que tiene como
objetivo darle paso a las señales hacia el conversor ADS1113 de manera individual y
secuencial. Con esta forma de trabajo, se disminuyó el uso de dispositivos digitalizadores
en el diseño del hardware, permitiendo utilizar un sólo ADC para todos los canales de
entrada.
Posee un rango de temperatura de trabajo de entre -25 ºC a 125 ºC y solo necesita de
una señal de habilitación (terminal 15) y las dieciséis combinaciones posibles a la entrada
(terminales 10, 11, 13y 14) para hacer la acción de multiplexado de las señales a la entradas
y emitirla a través del terminal CMMN (terminal 1) tal como se muestra en la ¡Error! No se
encuentra el origen de la referencia..
Ya que son muestreadas cuatro (4) señales, sólo es necesario el uso de los
terminales de entrada S0 y S1, esto se debe a que el dispositivo actúa tal como un
multiplexor de señales digitales. Por ello, los terminales S2 y S3 son llevados a cero lógico
(0 V) y a la entrada, se usaron desde el terminal 9 hasta el 13 para los canales tal como se
muestra en la Figura.
99
La tabla de la verdad usada para esta tarea, se muestra en la Tabla 4.6anexada a
continuación:
Tabla 4.6: Tabla de la verdad para la selección de canales
Fuente: CD74HC4067 High-Speed CMOS Logic 16-Channel Analog Multiplexer/Demultiplexer
S0 S1 S2 S3 E CANAL
0 0 0 0 0 0
1 0 0 0 0 1
0 1 0 0 0 2
1 1 0 0 0 3
Figura 4.12: Esquema de conexión del multiplexor analógico y conexión del conversor ADS1113
El conexionado del conversor ADS1113 se muestra en la Figura 4.12 donde se
aprecia que a la entrada del terminal 4 (Ain0) arriva la señal saliente del multiplexor
analógico CD74HC4067. El terminal 2 (RDY) aunque no sea usado en los ADS1113 se
conectó al PORTC.1 en caso de utilizar otro ADC de la misma familia como el ADS1114 o
ADS115, esta salida digital (RDY) anuncia que la conversión analógica-digital del
100
dispositivo ya está lista para ser leída, esto lo realizan haciendo un pull-down a la línea de
entrada del dispositivo maestro del cual estén conectados.
Para mayor ilustración de la configuración utilizada, se anexa en la Tabla 4.7¡Error!
No se encuentra el origen de la referencia. la distribución de los terminales del ADS1113.
Tabla 4.7: Descripción de los terminales del ADS113
Fuente: ADS1113 Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER DataSheet
TERMINAL ADS1113 I/O Descripción
1 ADDR Entrada digital Selección de la dirección del esclavo en el protocolo I2C
2 NC Salida digital Salida de comparación digital o de anuncio de conversión
lista.
3 GND Analógica Tierra común
4 AIN0 Entrada analógica Canal diferencial 1: entrada positiva o señal de entrada
5 AIN1 Entrada analógica Canal diferencial 1: entrada negativa (0 V)
6 NC Entrada analógica Canal diferencial 2: NC
7 NC Entrada analógica Canal diferencial 3: NC
8 VDD Analógica Entrada de alimentación: 2.0 a 5.5 V
9 SDA I/O digital Transmisión y recepción de datos serial
10 SCL Entrada digital Señal de reloj, sincronización de la comunicación con el
microcontrolador
En el mismo orden de ideas se aprecia en la Figura 4.13 el esquema de conexiones
del reloj de tiempo real DS1307. Nótese que las líneas del I2C están en los terminales cinco
(5) está la línea SDA y en el terminal seis (6) la línea de la señal de reloj SCL, el oscilador
usado fue el de 32.768KHz conectado en los terminales uno (1) y dos (2), además de
suministrarle energía eléctrica a través del terminal tres (3) por medio de una batería de 3.3
V para cuando el sistema completo este sin energía, este se mantenga alimentado y así,
conserve actualizado los datos de fecha y hora en sus registros.
101
Figura 4.13: Esquema de conexión del DS1307
El dispositivo tiene la posibilidad de ser alimentado de dos formas tal como se
muestra en la Figura 4.14, a traves de un transformador DC de 9 V o por medio del terminal
de +Vcc del puerto USB.
Figura 4.14: Esquema de conexión de la alimentación principal del DataLabUC
En el caso de que el dispositivo esté conectado a ambas fuentes de forma
simultánea, el diodo shockley colocado a la entrada de la alimentación de los +5Vusb
mostrados en la Figura 4.14entra en un estado de corte aislando la alimentación USB del
sistema.
102
Finalmente la señal +5V.ya sea que provenga de la fuente externa o del puerto USB,
es la que suministra la energía a todos los dispositivos que trabajen en este rango de voltaje,
un segundo regulador a +3V permite suministrarle la energía a la SD que opera en ese valor
de tensión.
Figura 4.15: Conexión del muestreo de la señal de alimentación del DataLabUC
El muestreo de la señal de entrada es realizado por el microcontrolador en el bit 0de
puerto A para verificar cuál de las fuentes de alimentación está habilitada. Esto se hace por
medio de un divisor de tensión tal como se muestra en la Figura 4.15.
Tal como se muestra en la ¡Error! No se encuentra el origen de la referencia.Figura
4.16 se muestra el esquema de conexión utilizado para la pantalla LCD de 16x2 donde se
contempla un MOSFET BSS1308 controlado por el terminal RC2 del microcontrolador,
este al enviarle un 1 lógico al MOSFET habilita el flujo de corriente por el terminal 16 de la
pantalla, cerrando de esta manera, el circuito que gobierna el control lumínico de la
retroalimentación (backlight) del LCD.
103
Figura 4.16: Esquema de conexión de la LCD 16x2
Continuando con la explicación, se aprecia en la Figura 4.17 la conexión del
MÓDULO USB al microcontrolador, tal como indica el esquema, los terminales de D+ y
D- van conectados en los terminales correspondientes para establecer la comunicación con
el PIC18F4550 (RC4 y RC5 respectivamente), la salida de energia, visto en el terminal 1
del módulo USB, va al circuito regulador de tension tal como se hablo en la Figura 4.14 y
un capacitor electrolitico de Cusb = 10 uF es conectado en el terminal 18 (del PIC18F4550)
para habilitar el oscilador del módulo USB del microcntrolador.
Figura 4.17: Esquema de conexión del USB
104
Figura 4.18: Esquema de conexión de la memoria SD
La conexión del módulo de memoria SD es tal como se muestra en la Figura 4.18 se
realizó según se indicó en el capítulo II (véase Figura 2.17) donde a la salida del módulo se
aprecian resistencias del orden de 1,5 KOhm y en paralelo una de 3 KOhm para las líneas
CS, Din y SCLK y una resistencia de 10 KOhm para la pull-up a la salida del terminal 7 del
módulo (Dout) cuyo valor, al igual que el que alimenta es de 3.3 Vdc, es suministrado por
el regulador.
La distribución de la conexión de este módulo con el microcontrolador se presenta a
continuación en la Tabla 4.8:
Tabla 4.8: Distribución de las líneas del módulo SD con el PIC18F4550
Etiqueta de la línea Puerto del microcontrolador
CS RC6
SDO RC7
SCK RB1
SDI RB0
105
Finalmente se presente el esquema de conexión de todos los módulos presentados
en esta etapa al microcontrolador tal como se muestra en la Figura 4.19.
Figura 4.19: Esquema de conexión del microcontrolador PIC18F4550 con el módulo.
Etapa III: Elaboración del dispositivo físico (hardware)
Una vez finalizada la etapa dos (II) de esquematizar los planos correspondientes a
las tarjetas que se usaron para el dispositivo llamado DataLabUC se procedió a la
elaboración del prototipo.
Se elaboraron los planos en el software ExpressPCB disponiendo los elementos
participantes de tal forma de obtener una compatibilidad con las dimensiones de la caja que
106
protege al circuito, una vez realiza la labor se obtuvo los diseños mostrados desde la Figura
4.20 hasta la Figura 4.23.
Figura 4.20: Disposición de los elementos electrónicos en la tarjeta uno (I)
Figura 4.21: Vista de plano de las pistas "Top" (rojo) y “Bottom” (verde) de la tarjeta uno (I)
Figura 4.22: Disposición de los elementos electrónicos en la tarjeta uno (II)
107
Figura 4.23: Vista de plano de las pistas “Top” (rojo) y "Bottom" (verde) de la tarjeta dos (II)
Para elaborar la PCB se implementó un método artesanal por transferencia térmica
que consiste en llevar estos planos a un papel transfer a través de una impresora láser, estos
se planchan sobre laminas virgen de pertinax, quedando, por transferencia térmica, el tóner
del papel adherido a las láminas.
Acto seguido, se sumergen estas laminas en una mezcla de ácido percloruro férrico,
que es un oxidante metálico el cual elimina el cobre de la superficie de la lámina excepto,
las áreas cubiertas por el tóner. Luego de verificar este paso, se retiran las láminas del ácido
se dejan escurrir bien y se limpian para eliminar el tóner de ellas solvente.
Luego, con brocas acordes a los diámetros de los orificios, se perfora la lámina con
un taladro, se colocan los componentes y se sueldan estos con estaño a la lámina. En la
Figura 4.24 y la Figura 4.25 se aprecian el trabajo de las tarjetas.
Los componentes requeridos se resumen en la Tabla 4.9 como una breve descripción,
cantidad y costo.
108
Figura 4.24: Tarjeta (I) finalizada
Figura 4.25: Tarjeta (II) finalizada
El acabado final del dispositivo se puede apreciar en la Figura 4.26.
Figura 4.26: Acabado final del dispositivo DataLabUC
109
Tabla 4.9: Tabla resume de los componentes de ambas tarjetas
Componentes Descripción Cantidad Costo c/u
[BsF]
Costo total
[BsF]
Papel transfer Panel utilizado para realizar la impresión
sobre la lámina de cobre las pistas 4 4.4 8.8
PIC18F4550 Unidad cerebro del dispositivo fabricado, 32
KB ROOM, 2KB RAM, 40 I/O 1 83.0 83.0
Conector RJ45
Conector para PCB, conexión de
alimentación con transformador externo de
corriente DC
1 12.0 12.0
Conector Headers Headers hembra para el PIC18F4550 1 13.0 13.0
Mechas Mechas para brocas PCB 1 30.0 30.0
LCD 16x2 Pantalla alfanumérica de 16x2 caracteres 1 58.0 58.0
Resistencias SMD 4.7KOhm Resistencias de montaje superficial
4,7KOhm 8 0.5 4.0
Resistencias
SMD 1KOhm Resistencias de montaje superficial 1KOhm 11 0.5 5.5
Resistencia
SMD 10KOhm Resistencias de montaje superficial 10Kohm 6 0.5 3.0
Resistencias
SMD varias
Resistencias de montaje superficial de varios
valores (1.5, 2.2, 3) KOhm y 180 Ohm 11 0.5 5.5
DS1307 Reloj de tiempo real 1 45.0 45.0
Condensador cerámico 0.1uF
SMD
Condensador cerámico de 0.1uF/50 V de
montaje superficial 8 0.5 4.0
Condensadores varios Condensadores electrolíticos y cerámicos
varios 7 0.5 3.5
Pulsadores Pulsadores para la interfaz con el usuario,
normalmente abierto 5 3.0 15.0
Led standart Indicadores lumínicos para la interfaz física 3 1.0 3.0
AD8495 Linealizador de temperatura de termocupla
tipo K 1 22.0 22.0
ADS1113 Conversor AD de 16Bit de resolución,
protocolo I2C 1 51.0 51.0
CD74HC4067 Multiplexor analógico de 16 canales 1 9.0 9.0
MCP1525 Regulador de tensión a 2.5 V 1 9.6 9.6
1N4148 Diodos 6 1.5 9.0
Memoria SD 2GB Memoria de almacenamiento masivo 1 55.0 55.0
Fusible reseteable
500 mA/24V Fusible reseteable de montaje superficial 1 1.46 1.46
MCP1541T-I/TT Regulador de tensión 4.096V 1 4.3 4.3
Pulsadores Pulsadores normalmente abiertos (NO) 6 3.0 18.0
Caja plástica Caja plástica para resguardar las tarjetas 1 60.0 60.0
Cristal de cuarzo de 20 MHz Cristal de cuarzo para el PIC18F4550 1 8.0 8.0
Terminal block 2.54 mm Terminales para conectar las señales al
dispositivo color verde 4 5.0 20.0
Costos varios Costos de fabricación del PCB 1 100.00 100.00
-- -- -- Total 660.66
110
Etapa IV: Creación de la interfaz visual
Para la creación de la interfaz visual, se tomó en cuenta las siguientes características
de uso para un sistema de registro de datos:
Una ventana principal con todas las opciones mencionadas a continuación:
selección del tiempo de muestreo, canales muestreados, sincronización con el reloj
de la computadora, registrar a tiempo real, leer la memoria SD del dispositivo,
ventana de gráfico de los canales, exportar datos a un documento en Microsoft
Excel.
Una ventana para visualizar los datos de entrada que permita la opción de ver
gráficos independientes de cada uno de los canales.
Una ventana de configuración de misiones donde se pueda programar los distintos
tiempos de espera, desde el momento que se comienza la misión, y los tiempos de
registro de datos, esto, se realizó de manera independiente para cada uno de los
canales, a fin de tener una independencia entre cada uno de ellos al realizar el
proceso de registro de datos en modo misión.
En esta etapa se realizó la elaboración de la interfaz sin realizar la programación de
cada uno de los controladores participantes en ella, a continuación se muestra cada una de
las ventanas realizadas y adicionalmente se presenta, para cada una ella una tabla
descriptiva donde se precisa la función de cada uno de los controles.
Tal como se observa en la Figura 4.27 se tiene una ventana donde se presenta los
controles de configuración previstos para el uso del dispositivo físico conectado al
programa, además de una ayuda visual en la parte inferior de esta donde se presenta el
estado del dispositivo, es decir, si el dispositivo está conectado o no a la interfaz, además de
una rejilla donde se presentan los datos numéricamente y un visor grafico para ver las
111
señales de los canales, en la Tabla 4.10 se deja bien claro según la numeración puesta de la
Figura 4.27¡Error! No se encuentra el origen de la referencia..
Figura 4.27: Ventana principal de la interfaz DataLabUC
Tabla 4.10: Descripción de los controles usados en la ventana 1 del DataLabUC
Numero de
descripción Descripción
1 Configuración del dispositivo: tiempos de muestreos y selección de canales a muestrear
2 Exporta los datos almacenados en el rejilla que presenta los datos numéricamente de la interfaz
(7) a un documento en Microsoft Excel
3 Sincronización del reloj de la computadora con el reloj del dispositivo DataLabUC
4 Abre la ventana para configurar la misión del dispositivo físico
5 Borra los datos almacenados en la memoria SD
6 Permite borrar la información presentada en visor grafico (axisplot) y en la rejilla (datagrid)
7 Sale de la aplicación
8 Barra de estado que aparece al momento de descargar la información de la memoria SD del
dispositivo
9 Controlador Tooltip usado para otorgarle información del uso a los controladores de la ventana
al momento de colocar el mouse sobre ellos
10 Toolstipstatuslabel son usados para agregar información del estado del dispositivo en la interfaz,
es decir, si está conectado o no, además indica el estado de la memoria del dispositivo.
11 UsbHidPort es el controlador usado para generar los eventos necesarios para las tareas de
recepción y transmisión de datos, retiro y conexión del dispositivo
1
2
3
4
5
6
7
16
8 9
10
11 12
13
14
15
112
Tabla 4.11: Continuación de la tabla de descripción de los controles usados en la ventana 1 del
DataLabUC
Numero de
descripción Descripción
12 statusStrip es el control utilizado para gestionar el estado de barra (8) y el toolstipstatuslabel
(10)
13 Importa los datos de la memoria SD del dispositivo a la interfaz
14 Comienza el proceso de registro de datos a tiempo real, mostrando el visor de los canales de
manera automática (ventana 2)
15
Controlador exportado del paquete de componentes gráficos IOCOMP llamado Axisplot
contiene la información necesaria para presentar los estados de las señales analógicas
recibidas por el dispositivo
16 Datagrid se usa para presentar los datos de manera numérica en la interfaz, se imprime el
número de muestra dato de hora y fecha del registro y los valores de los cuatros canales
Al presionar la configuración del dispositivo (descripción número 1 de la Tabla
4.12) se abre una ventana de configuración mostrada en la Figura 4.28, en la Tabla 4.12 se
describe cada uno de sus controladores.
Figura 4.28: Ventana de configuración del dispositivo
Como se mencionó anteriormente, al momento de presionar el control de la Figura
4.27¡Error! No se encuentra el origen de la referencia. enumerado con 14 se realiza un
1
2
3
4
5
6
7
113
proceso de registro de datos a tiempo real, en donde el dispositivo, conectado a la
computadora, realiza el proceso de muestreo y captura de las señales a los tiempos pre
configurado.
Todo esto, a través del control y transmisión de cada uno de los datos obtenidos, que
son interpretados por la interfaz y los presenta en la ventana principal de manera gráfica y
numérica en la ventana principal del programa.
Tabla 4.12: Descripción de los controladores participantes en la ventana de configuración del
dispositivo
Numero de
descripción Descripción
1 Envía la configuración establecida en la ventana al dispositivo
2 Cancela la configuración y regresa a la ventana principal
3 Otorga valores por default al la ventana, los cuatro (4) canales a una muestra por segundo
(1 MSP)
4 Selección del tiempo de muestreo del dispositivo (5;4;2;1) MPS y (10;30;60) segundos
5 Selección del tipo de muestreo, checkbox seleccionado está en el rango de (5;4;2;1) MPS y
deseleccionado en el rango de (10;30;60) segundos
6 Habilitar o deshabilitar la sobre escritura del dispositivo de registro de datos, borra los
valores anteriores de la memoria
7 Selección de los canales a muestrear
La pantalla de visor de adquisición (Figura 4.29) donde se observa los valores que
toman estas señales por medio de un visor analógico y uno digital como se aprecia en los 8
indicadores. En la Tabla 4.13 se describe los controles de dicha figura.
Tabla 4.13: Descripción de los controles participantes en la ventana de visor de la adquisición del
DataLabUC
Numero de
descripción Descripción
1 Controlador que detiene el evento de registro de datos en el dispositivo, regresa a la venta
de inicio
2 Visor analógico del canal, se aprecia el rango, la apreciación y la unidad de medida para la
señal
3 Visor digital del canal, se aprecia el entero y los decimales correspondientes
4 Indicador visual de la fecha y hora del registro
5 Controlador Tooltip usado para otorgarle información del uso a los controladores de la
ventana al momento de colocar el mouse sobre ellos
114
6 Controlador Timer usado para ejecutar interrupciones cada intervalo de tiempo a modo de
actualizar los valores de los datos obtenidos de la ventana principal a la ventana 2
Figura 4.29: Ventana de visor de la adquisición (registro en el DataLabUC)
En el momento en que el usuario decida ver las graficas en una ventana
independiente, lo podra realizar al presionar un doble clic en cada uno de los visores
digitales, automaticamente se abre la ventana vista en la Figura 4.30, aquí saldra el nombre
del canal al cual corresponde la señal.
Para cerrar esta parte de la descripción se tiene la ventana de configuracion de la
misión observada en la Figura 4.31, esta se encarga de programar al DataLabUC de una
forma tal que, para cada una de las señales de manera independiente, se le diga cuanto sera
el tiempo de espera para comenzar el registro de dicha variable y en cuanto tiempo este
registro se realizará.
1
2
3
4
6
5
115
Figura 4.30: Ventana de gráficos por canal, evento que ocurre al
hacer doble clic a los visores digitales de la Figura 4.29
Una vez programado el dispositivo, este entrara en un lazo de espera, el cual
preguntara al usuario si realizara o no la misión, una vez ocurrida la selección, la
temporizacion de los tiempos de espera y de registros del DataLabUC en modo misión
comenzarán.
Ademas, si se llegase a desconectar el dispositivo, es decir desenergizarlo, este
mantendra en su memoria no volatil del microcontrolador, la configuración establecida en
el programa de misión, por lo que, al energizar nuevamente, el dipositivo mostrará que hay
una misión pendiente que debe ser atendida o ignorada.
Tal como se muestra en la Figura 4.31, la presentacion de esta ventana busco ser lo
mas amigable e intuitiva posible. El usuario, tendra la opcion de escoger el canal a
muestrear al hacer clic en cualquiera de los numeros indicatorios a mano derecha, ademas,
tendra la opcion de decidir si tener un tiempo de espera en minutos o en horas, para ello, se
debe realizar la selección en cualquiera de las opciones mencionadas y aumnetar o
disminuir el control correspondiente a la selección usada.
116
Esta descripcion se aprecia en la Figura 4.31 en los numeros indicadores 11 y 12
respectivamente.
Una vez configurado los canales, se realizara la verificación del calculo del espacio
en la memoria SD con respecto al numero de muestras que se incorporaran en ella, esto se
lleva a cabo, haciendo la selección en el control de verificar de MPS (indicado con el
nmero 2 de la Figura 4.31).
La aplicación dispone de una rutina donde compara el espacio de la memoria
almacenada con la que se quiere incorporar, e indicarasi dispone de espacio sufieciente, de
ser afirmativo, son presentados los tiempos posibles a ser usados en la ventana tal como se
indica en el numero 1 de la Figura 4.31.
Una ayuda visual estará disponible al presionar en controlador “Verificar MPS”, por
lo que, una vez verificado los datos, se procede a enviar la programación de la misión a
través del control mostrado con el numero 4 de la Figura 4.31. El resto de las características
de esta ventana se describen en la Tabla 2.1.
117
Figura 4.31: Ventana de configuración de la misión
Tabla 4.14: Descripción de los controles participantes en la ventana de configuración de misión
Numero de
descripción Descripción
1 Tiempos disponibles de muestreo, dependerá del espacio disponible en la memoria SD del
dispositivo
2 Verifica que haya espacio suficiente en la memoria SD del dispositivo para presentar los
tiempos de muestreos disponibles bajo esa configuración de misión establecida
3 Ayuda visual que indicara por colores [Verde: ok; Amarillo: Advertencia y Rojo: No Ok]
el estado de la memoria SD y si se podrá realizar la misión configurada
4 Envía la información verificada al dispositivo DataLabUC para ser usado en modo misión
5 Cancela la misión y regresa a la página principal
6 Muestra datos de fecha hora de la configuración
7 Controlador Tooltip usado para otorgarle información del uso a los controladores de la
ventana al momento de colocar el mouse sobre ellos
8 Controlador Timer usado para ejecutar interrupciones cada intervalo de tiempo a modo de
actualizar los valores de los datos obtenidos de la ventana actual
9 statusStrip es el control utilizado para gestionar el estado de barra y el toolstipstatuslabel
1
2
3
4
5
6 7
8 9
10
11
14
12 13
118
Tabla 4.15: Continuación de la tabla de descripción de los controles que participantes en la ventana
de configuración de misión
Numero de
descripción Descripción
10 Ayuda visual que indica, por el estado de barra, el espacio cubierto de la memoria SD del
dispositivo
11
Selección del canal a configurar para la misión, [Negro: no incluido en la misión; Rojo:
incluido en la misión] además de habilitar el conjunto de controladores que rigen a este
canal
12
-Numericupdown usado para establecer la cantidad de horas de espera en el momento en
que se inicia la misión
- Numericupdown usado para establecer la cantidad de minutos de espera en el momento
en que se inicia la misión
- Selección de tiempo de espera en horas
- Selección de tiempo de espera en minutos
- Selección de tiempo de registro en horas
13
-Numericupdown usado para establecer la cantidad de horas de registro en el momento en
que se inicia la misión
-Selección de tiempo de registro en minutos
- Numericupdown usado para establecer la cantidad de minutos de registro en el momento
en que se inicia la misión
- Numericupdown usado para establecer la cantidad de horas de registro en el momento en
que se inicia la misión
14 Resumen de la configuración del canal
Implementación del protocolo bidireccional entre el hardware y el software
Para establecer la comunicación bidireccional entre el dispositivo físico (hardware)
y la interfaz visual (software) fue necesario la creación un protocolo de comunicación, que
le permitiese a ambos entender la información recibida y también organizar la información
que se envía.
Para ello, se estableció un paquete de datos que ambos trabajan sobre un buffer de
16 bytes, los cuales vienen presentados de la siguiente manera:
Desde el dispositivo físico a la interfaz siempre será un paquete fijo representado a
continuación en la Figura 4.32.
119
Byte15 Byte4 Byte13 Byte12 Byte11 Byte10 Byte9 Byte8 Byte7 Byte6 Byte5 Byte4 Byte3 Byte2 Byte1 Byte0
CH1
MSB
CH1
LSB
CH2
MSB
CH2
LSB
CH3
MSB
CH3
LSB
CH4
MSB
CH4
LSB DIA MES AÑO HOR MINU SEG
mili
SEG COMD
Figura 4.32: Estructura del buffer de datos del dispositivo físico hasta la interfaz visual
Como se muestra en la Figura 4.32, los canales vienen repartidos en pares de byte,
esto es lógico ya que el conversor analógico-digital posee una resolución de 16 bits, por lo
que se recurre realizar la escritura acorde al tamaño de la lectura realizada sin realizar
truncamiento.
De esta manera organizada se agrupan los cuatros canales del dispositivo, se pueden
apreciar desde el byte 9 hasta el byte 15, a partir del byte 1 hasta el byte 7 se organiza los
datos de hora y fecha de la captura de la señal y finalmente el byte 0 el cual tendrá como
objetivo identificar la procedencia del buffer.
De igual forma se realizo la escritura del reloj de tiempo real (RTC), el cual posee
una resolución mínima de 1 segundo. Para registrar tiempos de muestreos mayores a esta
resolución, se procedió a escribir en el byte 1del paquete mostrado en la Figura 4.32 un
tiempo en milisegundos que fue realizado por software a través de tiempos de espera
programados.
En la Tabla 4.17 se muestra la explicación de cada uno de los comandos del byte 15
del buffer del paquete:
Tabla 4.16: Tipos de comandos posibles en el Byte 15 del buffer enviados desde el dispositivo.
COMD
Byte[15] del Buffer Descripción
$FF Envío del paquete de datos a tiempo real
$FE Envío del estado de la memoria SD del dispositivo (almacenado en la memoria
EEprom del microcontrolador)
$FD Envío de la data almacenada en la memoria SD del dispositivo
120
Tabla 4.17: Continuación de los tipos de comandos posibles en el Byte 15 del buffer enviados desde el
dispositivo.
COMD
Byte[15] del Buffer Descripción
$FC Finalización de envío de datos de la lectura SD del dispositivo
$EC Interrupción de la lectura de la memoria SD, retorna al menú principal
$DC Indica a la aplicación que fue interrumpida la misión
$DB Indica antes del inicio de la misión que deshabilite la pantalla principal de la interfaz
$DA Cierra la ventana de la aplicación y el dispositivo empieza la misión en modo
solitario
Para el caso de la transmisión de información desde interfaz al dispositivo, el
paquete posee una estructura parecida, solo que para este caso, dependerá de la función a
realizar, ya que, para cada caso, se cargan diferentes datos en los demás bytes del buffer. Lo
que sí es fijo es el byte 15 mostrado en la Figura 4.33 donde se envía el control COMD.
Byte1
5
Byte1
4
Byte1
3
Byte1
2
Byte1
1
Byte1
0
Byte9
Byte8
Byte7
Byte6
Byte5
Byte4
Byte4
Byte3
Byte2
Byte1
Byte0
CO
MD
Byte1
4
Byte1
3
Byte1
2
Byte1
1
Byte1
0
Byte9
Byte8
Byte7
Byte6
Byte5
Byte4
Byte4
Byte3
Byte2
Byte1
Byte0
Figura 4.33: Disposición de los comandos en la transmisión desde la interfaz al dispositivo
En la Tabla 4.18 se muestra la explicación de cada uno de los comandos de del byte
1 del buffer del paquete y en la Figura 4.33 la información que se anexa en cada uno de los
byte del buffer:
Tabla 4.18: Tipos de comandos posibles en el Byte 15 del buffer enviados desde la interfaz
COMD
Byte[15] del Buffer Descripción
$FF Borra la memoria contenida en el dispositivo.
Coloca por defecto la configuración del equipo.
$FE Da inicio al registro de datos que se presentan a tiempo real en la interfaz.
121
Tabla 4.19: Continuación de los tipos de comandos posibles en el Byte 15 del buffer enviados desde la
interfaz
COMD
Byte[15] del Buffer Descripción
$FD Realiza la lectura de la memoria SD del dispositivo.
$FC Configura la información de fecha y hora del dispositivo con respecto a la
suministrada por el computador.
$FB Establece la configuración del dispositivo con respecto al MPS y canales a
registrar.
$FA Establece la configuración de las misiones.
Con respecto a la disposición de la información almacenada en la EEprom del
microcontrolador, en la Tabla 4.20 se puede apreciar cómo se distribuye la distinta
información pertinente del dispositivo.
Tabla 4.20: Disposición de la información almacenada en la memoria EEprom del microcontrolador
Dirección Byte Descripción
$00 Est_SD1 (LSB) Byte 1(menos significativo) del estado de la memoria SD
$01 Est_SD2 Byte 2 del estado de la memoria
$02 Est_SD3 Byte 3 del estado de la memoria
$03 Est_SD4 (MSB) Byte 4 del estado de la memoria
$04 Confi_Dsp Byte donde se almacenara la información de la configuración de
memoria
$05 Modo_mis Byte donde se almacenara la información de la configuración de
memoria con respecto al modo de misión
$06 InicCH1 Tiempo de espera para el registro del CH1
$07 DurCH1 Tiempo de duración para el registro del CH1
$08 InicCH2 Tiempo de espera para el registro del CH2
$09 DurCH2 Tiempo de duración para el registro del CH2
$0A InicCH3 Tiempo de espera para el registro del CH3
$0B DurCH3 Tiempo de duración para el registro del CH3
$0C InicCH4 Tiempo de espera para el registro del CH4
$0D DurCH4 Tiempo de duración para el registro del CH4
Para la reconstrucción del DWord que representa el estado de la memoria o el
número del sector en el cual la memoria quedo al grabar, se realiza de la siguiente manera:
122
EEprom = 65535 * Est_SD1 + 256 * Est_SD2 + Est_SD3
Cabe destacar que a pesar de que la variable es de tipo DWord solo se utilizan los
tres (3) bytes primeros, esto se debe a que el número tope de muestras posible a almacenar
viene dado por esta condición de diseño:
“El dispositivo deberá almacenar de manera ininterrumpida, 96 horas a una tasa de
muestreo igual a 5 MPS que es la máxima rata alcanzada en él.”
Por lo tanto al realizar los cálculos se obtuvo los siguientes resultados:
Por lo que el número en capacidad representado en hexadecimal es:
El valor quedara almacenado solo en tres bytes de la memoria aunque se tiene que
respetar el espacio del DWord para esta variable en la EEprom.
Ahora bien en la Figura 4.34 se muestra la forma como viene estructurado el byte de
configuración del dispositivo.
123
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Ch0 Ch1 Ch2 Ch3 SW MPS3 MPS2 MPS1
Figura 4.34: Estructura del byte de configuración del dispositivo
Donde cada uno de sus bits son explicados a continuación:
Ch0…Ch4 (Bit 7 hasta Bit 4): Habilitar canal.
1 Canal habilitado
0 Canal Deshabilitado
SW (Bit 3): Habilitar sobre escritura
1 Sobre escritura habilitada
0 Sobre escritura Deshabilitada
MP2…MPS0 (Bit 2 hasta Bit 0): Numero de muestras, viene representada por la
siguiente Tabla 4.21.
Tabla 4.21: Valores que toman los bits de configuración para configurar el muestreo de las señales
Numero Muestre Valor en binario
MSP2 MPS1 MPS0
1 1 MPS 0 0 0
2 2MPS 0 0 1
3 4 MPS 0 1 0
5 10 seg 1 0 0
6 X X X X
7 60 seg 1 1 0
El byte que verifica la configuración de la misión está estructurado tal como se
muestra en la Figura 4.35.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
EM Ch4 Ch3 Ch2 Ch1 MPS3 MPS2 MPS1
Figura 4.35: Estructura del byte de configuración en modo misión
124
Donde cada uno de sus bits son explicados a continuación:
EM (Bit 7): Habilitar misión
1 Misión habilitada
0 Misión deshabilitada
Ch0…Ch4 (Bit 6 hasta Bit 3): Habilitar canal.
1 Canal habilitado
0 Canal Deshabilitado
MP2…MPS0 (Bit 2 hasta Bit 0): Numero de muestras, viene también representado
por la Tabla 4.21.
Tal como se observa en la Tabla 4.20 desde el sector $06 hasta el sector $0D se
tiene una serie de bytes los cuales indicaran al programa en modo misión, los tiempos
requeridos, tanto para la espera como para la duración del registro de dicho canal.
La idea es simple, conseguir que cada canal en el modo misión se active de manera
individual durante la ejecución del mismo, quiere decir, que dentro de una ventana de
tiempo que engloba el tiempo de espera y el tiempo de registro, se observara como se
activan los distintos canales configurados.
Ya que se puede realizar la configuración en modo de horas o en modo de minutos,
la estructura de cómo viene presentado cada uno de estos byte se muestra a continuación
con la Figura 4.36 y Figura 4.37.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Modo -- Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Figura 4.36: Estructura del duración del tiempo de espera del canal
125
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Modo Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Figura 4.37: Estructura de duración de tiempo de registro del canal
Para ambos casos se explica exactamente lo mismo con respecto a la información de
los bits, la cual es la siguiente:
Modo (Bit 7): Habilitar modo hora
1 Modo hora habilitada
0 Modo hora deshabilitada (minutos)
Bit6…Bit0 (Bit 6 hasta Bit 0): Numero adimensional,
Si Bit 7 = 1 entonces va desde 0 hasta 98
Si Bit 7 = 0 entonces va desde 0 hasta 90
Por lo que, el programa debe interpretar el bit 7 y realizar el ajuste respectivo para
dimensionar estos número de forma tal de llevarlos a horas o minutos.
A modo de ejemplificar lo antes expuesto para el modo misión se establece a
continuación un caso el cual posee estas características:
Se configura el modo misión para los canales 1, 2, 3 y 4 con los siguientes tiempos
de espera y de registro mostrados en la Tabla 4.22 con una tasa de muestreo de 4
MPS.
Tabla 4.22: Ejemplo de configuración de los tiempos en el modo misión
Canal Tiempo de espera Tiempo de registro
Ch1 1 hora 3 horas
Ch2 2 hora 90 minutos
Ch3 90 minutos 1 hora
Ch4 30 minutos 10 minutos
126
A continuación se muestra como estaría configurado el modo misión para cada uno
de los bytes tratados en esta sección.
Para el byte de configuración de misión:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1 1 1 1 1 0 1 0
Para los tiempos de espera de cada uno de los canales se tiene:
Tiempo de espera para el inicio del Ch1 (1 hora):
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1 0 0 0 0 0 0 1
Tiempo de espera para el inicio del Ch2 (2 horas):
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1 0 0 0 0 0 1 0
Tiempo de espera para el inicio del Ch3 (90 minutos):
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0 1 0 1 1 0 1 0
Tiempo de espera para el inicio del Ch4 (30 minutos):
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0 1 1 0 0 0 1 0
Para los tiempos de registro en cada uno de los canales se tiene:
Tiempo de registro del Ch1 (3 horas):
127
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1 0 0 0 0 0 1 1
Tiempo de registro del Ch2 (90 minutos):
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0 1 0 1 1 0 1 0
Tiempo de registro del Ch3 (1 hora):
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1 0 0 0 0 0 0 1
Tiempo de registro del Ch4 (30 minutos):
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0 0 0 1 1 1 1 0
Si se observa en una ventana de tiempo al empezar la ejecución de la misión, se
tendría algo como se muestra en la Figura 4.38 donde se aprecia en estado alto los tiempos
de registro para una ventana de tiempo de aproximadamente cuatro (4) horas, tomando en
cuenta el máximo tiempo de espera para el inicio y el máximo tiempo de registro.
Estados
Ch1
Ch2
Ch3
Ch4
0 1 2 3 4 Tiempo (horas)
Figura 4.38: Tiempos de registro en modo misión
128
Comandos más usados en el programa del hardware
Entre los comandos más destacados para la programación del microcontrolador
aplicado al hardware de DataLabUC2012 se tienen los usados para el manejo de la
memoria SD, los dispositivos que operan bajo el protocolo I2C, memoria EEPROM del
microcontrolador, manejo de la pantalla LCD, comunicación USB entre otros comandos de
condiciones, estos, serán expuestos a continuación:
IF…THEN…ELSE
Descripción: evalúa la comparación y si esta es verdadera ejecuta la instrucción,
pero si esta no lo es, la ignora. Se suele también utilizar el ELSE para realizar condiciones
que no cumplan la instrucción a comparar.
SELECT
Descripción: la selección evalúa una determinada expresión bajo distintas
condiciones llamadas CASE y en el caso en que la comparación de un resultado verdadero,
realizara la(s) instrucción(es) correspondiente.
IF Comparación THEN Instrucción: ELSE: Instrucción ENDIF
SELECT Expresión
CASE Condición(es)
Instrucción(es)
}
CASE Condición(es)
Instrucción(es)
CASE ELSE Condición(es)
Instrucción(es)
}
ENDSELECT
129
BUTTON
Descripción: comando utilizado para realizar retardos a la entrada de una señal
producida por la pulsación del botón (elimina el ruido o falsos pulsos a la entrada y a la
salida ocasionados por los elementos mecánicos del botón). Este se puede activar por nivel
alto (Vcc = 5 Vdc) o nivel bajo (Vcc = 0 Vdc), esto dependerá de cómo este hecho el
circuito en físico.
Los operadores de este comando son explicados a continuación:
Terminal: PORT: BITespecifica cuál es el bit de entrada o salida (0 - 15) del
terminal al cual se debe encuestar, este terminal, automáticamente se configurara en
entrada ante este comando.
DownState: variable que es representada como (0 o 1) y especifica el estado lógico
que se produce cuando se pulsa el botón.
Delay: es una variable comprendida entre 0 – 255 e indica que tanta espera debe
tener el retardo para evitar el rebote, siendo 0 la indicación menor la cual no realiza
retardo. Cabe destacar además que, si se configurara en 255 la función de auto
repetición queda anulada.
Rate: es una variable comprendida entre 0 – 255 e indica la cantidad de ciclos de
espera para la repetición automática.
Workspace: es una variable de ajuste inicial para que el comando BUTTON
funcione correctamente, debe ser ajustada en 0.
TargetState: variable representada en 0 – 1 para especificar el estado del botón
antes de que ocurra el cambio (0 = no presionado, 1 = presionado).
Label: es una etiqueta que especifica el salto o el destino en el programa, al ocurrir
el cambio de estado en el botón.
BUTTONTerminal, DownState, Delay, Rate, Workspace, TargetState,
Label
130
Descripción: envía una cadena de texto al módulo LCD. Utiliza un modificador
llamado (AT ypos, xpos,) que establecen en donde se ubicará el cursor durante la
impresión de la cadena en la LCD.
EREAD
Descripción: lee la información de la memoria EEPROM del dispositivo
microcontrolador. La expresión “Variable” es usada para ser definida como cualquier
variable del tipo bit, byte, word, dword o float. Su dirección indicará el sector en el cual se
deberá extraer la información, dependerá de las capacidades preestablecidas por el
fabricante del microcontrolador dicho número.
EWRITE
Descripción: escribe de manera ordenada según la disposición de la(s) variable(s)
definidas previamente del tipo bit, byte, word, dword o float en la memoria EEPROM del
dispositivo microcontrolador. De igual manera, su dirección indicará el sector en el cual se
deberá extraer la información, dependerá de las capacidades preestablecidas por el
fabricante del microcontrolador dicho número.
USBIN
Descripción: este comando es usado para realizar la recepción de los datos
provenientes del host de la computadora, recibe la cadena de bytes (buffer de datos).
PRINT AT ypos, xpos, Item { , Item}
Variable = EREADDirección
EWRITEDirección, [ Variable {, Variable…etc}]
131
Los operadores de este comando son explicados a continuación:
Endpoint: es una constante que indica la dirección del endpoint está comprendida
entre un numero 0 – 15.
Buffer: cadena de byte donde es almacenada la información.
Countvar: es una constante que indica cuantos bytes serán transferidos.
Label: es la etiqueta que usará el comando en caso de que el evento no logre la
recepción de los datos después de un tiempo determinado por el programa.
USBOUT
Descripción: este comando es usado para realizar la recepción de los datos
provenientes del host de la computadora, recibe la cadena de bytes (buffer de datos).
Los operadores de este comando son explicados a continuación:
Endpoint: es una constante que indica la dirección del endpoint está comprendida
entre un numero 0 – 15.
Buffer: cadena de byte donde es almacenada la información.
Countvar: es una constante que indica cuantos bytes serán transferidos.
Label: es la etiqueta que usará el comando en caso de que el evento no logre la
transmisión de los datos después de un tiempo determinado por el programa.
BUSIN
Descripción: usado para la recepción de los valores, la cadena de bytes provenientes
del bus I2C.
USBINEndpoint, Buffer, Countvar, Label
USBOUTEndpoint, Buffer, Countvar, Label
Variable = BUSINControl, {Dirección}
132
Los operadores de este comando son explicados a continuación:
Variable: una variable definida del bit bit, byte, cadena de bytes, Word, cadena de
words, dword o del tipo float. Usada para la recepción de los valores provenientes
del comando.
Control: valor constante que indica la tarea a fin del flujo de datos.
Dirección: indica de cual dispositivo esclavo es la procedencia del dato a la
recepción.
BUSOUT
Descripción: usado para la transmisión de los valores formado por un conjunto de
cadenas de bytes para un determinado dispositivo esclavo utilizando como medio el bus
I2C.
Los operadores de este comando son explicados a continuación:
Control: valor constante que indica la tarea a fin del flujo de datos.
Dirección: indica de cual dispositivo esclavo es la procedencia del dato a la
recepción.
Datos de Salida: es la lista de variables, constante, a la cual se le adjunta la
información a ser transmitida a un determinado dispositivo esclavo, esto dependerá
del direccionamiento de los datos.
BSTART
Descripción: representa de manera fragmentada, el comando de inicialización del
protocolo I2C. Podría verse el caso que, distintos dispositivos esclavos, trabajen con una
estructura del protocolo un tanto variable, y que los comandos de alto nivel BUSIN y
BUSOUT (con su estructura completa) no sean entendidos por mencionado dispositivo
esclavo. Sencillamente se establece una transmisión “guiada” por el programador, donde en
BUSOUT Control, {Dirección}, [Datos de Salida]
133
el flujo del programa, deberá realizar la nueva estructura para la comunicación del
dispositivo esclavo.
BUSACK
Descripción: representa de manera fragmentada, el comando de actualización o
reconocimiento (acknowledge) en el protocolo I2C. Como se mencionó en el comando
anterior, podría verse el caso que, distintos dispositivos esclavos, trabajen con una
estructura del protocolo un tanto variable, y que los comandos de alto nivel BUSIN y
BUSOUT (con su estructura completa) no sean entendidos por mencionado dispositivo
esclavo.
BSTOP
Descripción: representa de manera fragmentada, el comando de finalización de la
comunicación sostenida en el bus para el protocolo I2C.
SD_Init
Descripción: usado para la inicialización de la memoria SD o MMC en el programa,
y así, acceder a los distintos comandos utilizados para realizar las tareas de lectura y
escritura de dicha memoria.
BSTAR
BUSACK
BSTOP
[Variable =]SD_Init
134
Variable: puede ser un bit, byte, Word o dword. Es usado para retornar el valor que
indica si la inicialización se efectuó de manera satisfactoria, cero “0” indicará que si
se realizó la inicialización y uno “1” que el tiempo de espera para la inicialización
transcurrió y el programa no tuvo éxito en establecer comunicación con la tarjeta,
este comando también incluye que la tarjeta podría no estar insertada.
SD_Sector
Descripción: indica al programa desde que parte del sector de la memoria SD o
MMC serán utilizadas en las tareas de lectura y escritura de dicha memoria.
Número del Sector: indica el sector de interés in la SD/MMC. Puede ser una
constante o un valor variable dependiendo del interés en la ubicación del punto a ser
escrito y/o leído, y debido a que se consideran miles de sectores en la memoria, se
recomienda que esta variable sea declarada del tipo dword.
Operación: es la operación a realizar en la memoria SD/MMC, siendo “0” para
escribir y “1” para leer.
SD_WRITE
Descripción: escribe un simple byte en la memoria SD/MMC. Debe ser inicializada
previamente para realizar esta función y además, especificar el sector al cual se realizará
dicha tarea.
SD_SectorNumero del Sector, Operación
SD_WRITE Byte
135
SD_READ
Descripción: lee un simple byte en la memoria SD/MMC. Debe ser inicializada
previamente para realizar esta función y además, especificar el sector al cual se realizará
dicha tarea.
Variable: definida del tipo byte para la asignación de la información proveniente de
la lectura de la memoria SD/MMC.
Programación del equipo
Para cumplir con el protocolo planteado, el dispositivo fue programado utilizando
los algoritmos mostrados en los siguientes diagramas de flujo.
En la Figura 4.39 se detalla la estructura de inicio del programa principal, en la cual,
el microcontrolador al inicializar realiza un chequeo del estado de la memoria SD y además
verifica si se ha dejado determinada alguna misión la al usuario de activación de la misma,
en caso de que la condición de memoria este bien y no se introduzca al dispositivo en un
estado de modo misión, se dirigirá al menú principal mostrado a través de la Figura 4.40.
En la Figura 4.40 el usuario tendrá la posibilidad de realizar la selección del
subprograma que desea dirigirse, esto lo hará con la ayuda de los pulsadores normalmente
abiertos donde posee la opción de conectarse con la computadora o activar el modo
solitario o incluso verificar que la fecha y hora del dispositivo sean los acordes con los
reales, quiere decir que en caso que el RTC1307 este desconfigurado el usuario pueda
acceder a la computadora enviarle la información de fecha y hora, datos necesario para
realizar la sincronización del RTC1307 con los datos de fecha y hora del computador en el
cual se esté conectado.
Variable = SD_READ
136
PROGRAMA PRINCIPAL
DECLARA VELOCIDAD DEL MICROCONTROLADOR
DECLARAR PINES DE LA PANTALLA LCD
DECLARAR PINES DE COMUNICACION I2C Y SPI
CONFIGURACION DEL ADS1113
RECONOCIMIENTO DE LA MEMORIA SD
SD OK?IMPRIMIR PANTALLA:
«INSERTE SD»
NO
SI
LEER SECTOR DE EEPROM DE MISIÓN
MISIÓNPENDIENTE?
NO
SI
IMPRIMIR PANTALLA:«REINICIAR MISIÓN»
MENU
REINICIO MISIÓN?
NO
SI
INICIO MISION
Figura 4.39: Diagrama de flujo del programa principal del dispositivo
137
MENU
CONECTARSEUSB?
MODO SOLITARIO?
BORRARMEMORIA?
ESTADO RTC?
SI
NO
SI
NO
SI
NO
SI
NO
MISION?
SI
NO
CONECTARSE USB
MODOSOLITARIO
BORRAR MEMORIA SD
IMPRIMIR PANTALLA:
LECTURA RTC
10 SEG?
NO
SI
INICIO MISIÓN
Figura 4.40: Diagrama de flujo lazo de selección en el menú principal del dispositivo
Entre las tareas que debe realizar el dispositivo mostrado en la Figura 4.39 se
encuentra el configurar el conversor analógico-digital ADS1113, para ello, se requiere
realizar una secuencia de comandos a fin de lograr lo comentado, esta secuencia se muestra
con la Figura 4.41, donde a través del mencionado protocolo I2C, se establece la
138
comunicación con el dispositivo esclavo, y a partir de allí, se establece los byte de
configuración en el momento de ubicarse en vector de registro.
CONFIGURACION ADS113
INICIO DE LA CONICACIÓN «BStart»
ENVIAR DIRECCIÓN «BusOut»
ENVIAR VECTOR DE REGISTRO «BusOut»
ENVIO DE VALORES DE CONFIGURACION «BusOut»
RECIBIDO?
NO
SI
FIN DE LA COMUNICACIÓN «BStop»
REGRESAR AL PROGRAMA PRINCIPAL
Figura 4.41: Diagrama flujo de la configuración del ADS1113
Entrando en detalle con las acciones posibles a realizar en el menú principal se
destacan tres subprogramas los cuales son: Conectarse USB, Inicio Misión y Modo
Solitario. Por lo que en las próximas descripciones se focalizara el texto en estos tres
diagramas de flujo.
Al momento de que el usuario seleccione el conectarse por USB el dispositivo entra
en una subrutina donde realiza la conexión con la interfaz de la computadora tal como se
aprecia en la Figura 4.42.
139
CONECTARSE USB
CONECTAR DISPOSITIVO
ENVIAR ESTADO DE LA MEMORIA
BORRAR SD?
ENVIO DATOSTIEMPO REAL?
LEER SD?
CONFIGURAR RTC?
CONFIGURARDISPOSITIVO?
CONFIGURAR MISIÓN?
SALIR?
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
ENVIAR DATOSTIEMPO REAL
LEER SD
CONFIGURAR RTC
CONFIGURARDISPOSITIVO
CONFIGURARMISION
REGRESAR MENU
BORRAR SD
Figura 4.42: Diagrama de flujo del dispositivo al conectarse vía USB
Acto seguido envía sus datos de la memoria EEPROM referente al estado de la
memoria SD, logrado por un contador de sectores que al momento de almacenar en la
140
memoria la información, incrementa su valor y eso, inmediatamente se almacena en una
variable DWORD dentro de la memoria del microcontrolador.
Y así, tal como se muestra en la Figura 4.42 el dispositivo queda en una especie de
espera temporal en donde la interfaz envía una orden, el mismo es capaz de recibirlo y
evaluarlo para dirigirse al comando programado para ese fin.
Tal como se muestra en la Figura 4.43, una vez que el usuario da la aprobación del
inicio de la misión, el dispositivo verificará si está conectado a la computadora, por lo que
mostrará al usuario al conectarse con la interfaz, los datos que van siendo registrados
durante la misión.
Esta verificación es gracias a que el en el PORTA.1 (véase Figura 4.19 en la página
104) está conectado los +5Vdc del terminal de alimentación USB del dispositivo, por lo
cual, si está conectado a la computadora, este terminal puede ser medido, ya que a su
entrada tendrá un 1 lógico en caso de estarlo.
Lo que sigue es una conversión de los datos suministrados por la interfaz tal como
el tiempo de espera y el tiempo de registro, donde lleva todos esos valores a segundos, lo
que permite en el programa principal de inicio de misión, establecer una medida
comparativa en la cual se utilizan variables auxiliares con el objetivo de ir
incrementándolas e ir comparándolas con las ya establecidas, esto con el fin de determinar
el inicio y fin de cada una de las misiones por canal.
Con la ayuda del banderas auxiliares el programa puede verificar cuando una señal
debe comenzar a registrar y cuando debe dejar de hacerlo, tal como se muestra en la ¡Error!
No se encuentra el origen de la referencia., por lo que, en el momento en que las banderas de
fin de registro cambien de estado y modifique el byte de configuración de misión y que los
141
bits de los canales habilitados estén en 0 lógico para todos ellos, se habrá realizado en su
totalidad la misión.
INICIO MISIÓN
CONECTARUSB?
SI
NO
LEER VALORES DE CONFIGURACIÓN«EEPROM»
CONVERSION DE VALORES A SEGUNDOS
ESTADO <> 0?
NO
SIINCREMENTAR CONTADORES
DE CANALES HABILITADOS
ESPERA 1 SEG
TIEMPOS DEESPERA IGUALES?
NO
SI
BANDERA DEL CANAL = 1
ESTADO = 8*BanderaCH4 + 4*BanderaCH3 + 2*BanderaCH2 +
BanderaCH1
SELECCIONAR CANTIDAD DE MUESTRAS«EEPROM»
DECREMENTAR NUMERO MUESTRA
MUESTRAS = 0?
NO
SI
INCREMENTAR CONTADORES DE REGISTRO
CONTADORES DE REGISTRO IGUALES?
BANDERA DEL CANAL = 0
DESHABILITAR CANALES YA REALIZADOS
REGISTRO DE MISION = 0?
IMPRIMIR PANTALLA«FIN DE LA MISION»
MUESTREO SEÑALES MODO MISION
NO
SI
NO
SI
REGRESAR AL PROGRAMA PRINCIPAL
1
1
AttachToUSB
Figura 4.43: Diagrama de flujo rutina de inicio de misión
142
El registro de datos en modo solitario es tal como se muestra en la Figura 4.44, al
entrar en esta rutina, el dispositivo verifica la configuración pre-establecida para determinar
el tiempo de muestreo y los canales que deberá muestrear.
La diferencia del resto de las demás rutinas es que esta saldrá del lazo de registro al
verificar que el pulsador destinado para dicha misión este siendo presionado, y es en ese
momento que el dispositivo deja de registrar datos de los canales y regresa al lazo de
programa principal mostrado en la Figura 4.39.
MODO SOLITARIO
LEER CONFIGURACION DEL DISPOSITIVO«EEPROM»
CONVERSIÓN AD1113
ESCRIBIR REGISTRO EN LA MEMORIA SD
LEER CONTADOR MUESTRAS
DECREMENTAR CONTADOR MUESTRAS
MUESTRAS = 0?
NO
SI
BOTON SALIR = TRUE?
NO
SI
REGRESAR AL PROGRAMA PRINCIPAL
APLICAR ESPERA SEGÚN CONFIGURACION DE MPS
Figura 4.44: Diagrama de flujo rutina de modo solitario
143
ENVIAR DATOS A TIEMPO REAL
LEER LA CONFIGURACION DEL DISPOSITIVO«EEPROM»
MULTIPLEXAR CANAL
CONVERSION ADS1113
ARMAR BUFFER Y SECTOR DE LA SD A GRABAR
ESPACIO SD SUFICIENTE?
APLICAR ESPERA SEGÚN CONFIGURACION DE MPS
INCREMENTAR CONTADOR SECTOR
GRABAR MEMORIA SD
ENVIAR BUFFER«USBOut»
RECIBIO BUFFER?«USBIn»
PARAR REGISTRO?
ENVIAR ESTADO DE LA MEMORIA
REGRESAR PROGRAMA PRINCIPAL
IMPRIMIR LCD«NO HAY ESPACIO SUFICIENTE»
STOP
SOBRE ESCRITURA =
TRUE ?
NO
SI
NO
SI
NO
SI
NO
SI
BORRAR MEMORIA SD
Figura 4.45: Diagrama de flujo de envió de registro a tiempo real
En la Figura 4.42 se puede observar que existe la posibilidad que desde la interfaz
el usuario de la orden de registro de datos a tiempo real, por lo que el programa del
dispositivo entra en una rutina de envió de datos tal como se muestra en la Figura 4.45.
144
La rutina es, en casi su totalidad, parecida a la de registro de datos en modo solitario
mostrado en la Figura 4.44, solo que en esta oportunidad, el dispositivo al realizar el lazo
de registro envía el buffer a través del bus de comunicación USB a la computadora con su
debida etiqueta de procedencia en el byte 15 para su correcto procesamiento.
Durante la ejecución de la tarea de registro es posible que la disponibilidad de
espacio dispuesto se vea terminado por los datos ya existentes, por lo que se implemento
una subrutina que realiza una verificación del bit sobre-escritura de la memoria, por lo
tanto, en caso de que se haya habilitado, el contador de sectores será borrada, iniciando la
escritura desde sector 0.
En caso de estar deshabilitada, se presenta un mensaje en la pantalla LCD del
dispositivo un mensaje de que no hay más espacio para escribir en la memoria SD, por lo
que el proceso de registro se detiene.
Esta forma de trabajo se realiza con la intención de que es usuario tenga la
posibilidad de salvar los datos ya registrados por medio de su pronta descarga en la interfaz
del computador.
Finalmente, en el momento de que el usuario desee detener el proceso de registro,
podrá tener la posibilidad, desde la interfaz, de hacerlo a través del botón detener ubicado
en la ventana de “visor de la adquisición” (véase Figura 4.29 en la página 113) por lo que el
dispositivo envía inmediatamente el estado de la memoria a la interfaz, que no es más que
el contador de los sectores escritos en ella.
Al momento que el usuario ordene la exportación de los datos de la memoria SD a
la interfaz, el dispositivo entrara en una rutina de lectura tal como se muestra en la ¡Error!
No se encuentra el origen de la referencia.. Esta rutina verifica si existen datos en la memoria
145
y procede a leer sector a sector los bytes de los canales y de los datos de fecha y hora de
cuando fueron tomados, luego arma el paquete del buffer, lo etiquete en el byte 15 y lo
envía a la interfaz para su procesamiento.
Un contador auxiliar va incrementando a medida de que se va realizando la lectura,
lo que permite comparar con el número de sectores escritos y establecer el fin de la rutina al
momento de que esta se iguale con mencionada variable.
LEER SD
LEER ESTADO DE LA MEMORIA«EEPROM»
SECTORES ESCRITOS?
NO
SI
IMPRIMIR PANTALLA«NO HAY DATOS»
REGRESAR CONECTARSE USB
ENVIAR FIN DE LECTURA A LA PC«USBOut»
LEER SECTOR SD
ARMAR BUFFER DE DATOS
ENVIAR BUFFER DE DATOS«USBOut»
FIN DE SECTORES?
NOSI
Figura 4.46: Diagrama de flujo de la rutina de lectura de la memoria SD
146
Durante el registro en modo misión, modo solitario y envió de dato a tiempo real el
proceso de conversión de las señales analógicas es el mismo llamado, su secuencia es
mostrada en la Figura 4.47.
CONVERSION ADS1113
VERIFICAR CONFIGURACION DEL DISPOSITIVO«EEPROM»
CH1 = TRUE?
CH2 = TRUE?
CH3 = TRUE?
CH4 = TRUE?
MULTIPLEXAR ENTRADA
ESCRITURA NULA BUFFER DE LA MEMORIA SD
NO
SI
NO
SI
NO
SI
NO
SI
ESCRITURA DE LA CONVERSION BUFFER DE LA MEMORIA SD
ESCRITURA NULA BUFFER DE LA MEMORIA SD
DELAY 22 MSESPERA DEL FILTRO
ESCRITURA NULA BUFFER DE LA MEMORIA SD
MULTIPLEXAR ENTRADA
ESCRITURA DE LA CONVERSION BUFFER DE LA MEMORIA SD
DELAY 22 MSESPERA DEL FILTRO
ESCRITURA NULA BUFFER DE LA MEMORIA SD
MULTIPLEXAR ENTRADA
ESCRITURA DE LA CONVERSION BUFFER DE LA MEMORIA SD
DELAY 22 MSESPERA DEL FILTRO
MULTIPLEXAR ENTRADA
ESCRITURA DE LA CONVERSION BUFFER DE LA MEMORIA SD
DELAY 22 MSESPERA DEL FILTRO
LEER ADS1113
LEERADS1113
LEERADS1113
LEERADS1113
REGRESAR
Figura 4.47: Diagrama de flujo de subrutina de conversión del ADS1113
147
Lo primero que realiza la subrutina es almacenar el valor del byte de configuración
del dispositivo (byte almacenado en la EEPROM) en una variable auxiliar, posteriormente
los bits que determinen que canal está habilitado, como se muestra en la Figura 4.47, son
verificados uno por uno.
LEER ADS113
INICIAR COMUNICACIÓN CON EL CONVERSOR
«BStart»
ENVIAR DIRECCION DE REGISTROMODO ESCRITURA
«BusOut»
ENVIAR CONFIGURACION DEL REGISTRO«BusOut»
INICIAR COMUNICACIÓN CON EL CONVERSOR
«BStart»
ENVIAR DIRECCION DE REGISTROMODO LECTURA
«BusOut»
RECIBIR REGISTRO DE CONVERSION
MODO LECTURA HighByte«BusIn»
RECIBIR REGISTRO DE CONVERSION
MODO LECTURA LowByte«BusIn»
REGRESAR
FINALIZAR COMUNICACIÓN CON EL CONVERSOR
«BStop»
Figura 4.48: Diagrama de flujo de subrutina de lectura del conversor ADS113
148
Si el canal está habilitado, los terminales que gobiernan la entrada del multiplexor
analógico cambian a ese canal, después de una espera de 22 milisegundos se ejecuta la
subrutina donde se lee la señal (ver Figura 4.48), se realiza la escritura en el byte
correspondiente memoria SD y se pasa a verificar el estado del otro canal a través de la
variable auxiliar. Al realizar todo el recorrido de los cuatro (4) canales se finaliza el proceso
de conversión y se retorna al programa principal, el cual, seria cualquiera de los
mencionados anteriormente.
En la subrutina de lectura del ADS113 se establece la comunicación del dispositivo
a través de los comandos de inicio del protocolo I2C, se envía la dirección a la cual se
quiere apuntar, que este caso es los 16 bits de conversión y posterior se almacena en
variables del programa el byte alto y bajo de dicha conversión, para finalmente terminar la
comunicación tal como se presenta en la Figura 4.48.
Para efectos de la explicación, la relevancia de las otras subrutinas no posee tanto
peso en lo que se pretende en este capítulo, por lo que se deja a disposición del lector
verificar el resto de estos en los anexos (véase ANEXOS A) de este proyecto al igual que el
código de programación utilizado en el dispositivo físico.
Programación de la interfaz
Al igual que la programación del dispositivo físico, se tiene una programación en la
interfaz visual, la cual tendrá la tarea de ordenarle al dispositivo, al momento que esté
conectado, la rutina que deberá realizar, tal como se explicó en el protocolo de
comunicación entre la interfaz y el dispositivo.
La tarea de configurar al dispositivo con respecto al tiempo de muestreo y canales
habilitados, sincronización del reloj del dispositivo, lectura a tiempo real, lectura de la
memoria SD, configuración de la misión y borrar la memoria SD, todos estas funciones se
149
pueden llevar a cabo al momento de que ocurra un evento de pulsación en alguno de los
botones de la ventana principal de la interfaz (véase Figura 4.27 y página 110¡Error!
Marcador no definido.), la rutina se muestra en la Figura 4.49.
PROGRAMA PRINCIPAL
DESHABILITAR FUNCIONES
CONECTADO?
HABILITAR FUNCIONES
BOTONCONFIGURACION =
TRUE?
BOTON EXPORTAR =
TRUE?
BOTON SINCRONIZAR =
TRUE?
BOTONLIMPIAR =
TRUE?
BOTONMISION =
TRUE?
BOTONEMPEZAR =
TRUE?
BOTON IMPOTAR =
TRUE?
BOTONSALIR = TRUE?
DESHABILITAR FUNCIONES
FIN DEL PROGRAMA PRINCIPAL
VENTANACONFIGURACION
ENVIAR DATOSCONFIGURACION
«BufferUSB»
RECEPCION DE DATOS
«BufferUSB»
ENVIAR DATOS GRID A EXCEL
VENTANA«FINALIZO»
ACEPTAR = TRUE?
SINCRONIZARRTC
ENVIAR DATOSRTC
«BufferUSB»
LIMPIARDATAGRIDAXISPLOT
DESHABILITAR BOTON EXPORTAR
VENTANARECEPCION
RECEPCION DE DATOS
«BufferUSB»
VENTANA MISION
ENVIAR DATOSMISION
«BufferUSB»
RECEPCION DE DATOS
«BufferUSB»
CONECTADOMISION =
TRUE?
VENTANA MODO MISIÓN
RECEPCION DE DATOS
«BufferUSB»
CERRAR VENTANA
ENVIAR DATOSIMPORTAR
«BufferUSB»
MODO IMPORTAR
«BufferUSB»
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
NOSI
BOTONBORRAR SD =
TRUE?
SI
NO
ENVIAR DATOS BORRAR
«BufferUSB»
RECEPCION DE DATOS
«BufferUSB»
1
1
Figura 4.49: Diagrama de flujo programa principal de la interfaz
150
En el momento de que se abre la interfaz, los botones quedan totalmente
deshabilitados, de modo que, solo se podrá habilitar la ventana en el momento en que el
dispositivo se conecte y el usuario escoja la opción de contactarse por USB desde el
dispositivo.
Cuando ocurre ese evento, la ventana se habilitará e inmediatamente recibe los datos
del estado de la memoria, el cual presenta en la parte inferior de la ventana principal. Luego
de esto, la aplicación solo queda a la espera de la decisión del usuario, por lo que, al
momento que este pulse algún botón de los que se presentan en la Figura 4.27 deberá
realizarse la rutina pertinente a ese botón, tal como se muestra en el diagrama de la Figura
4.49.
Para efectos de la explicación basta con denotar las rutinas de ventana de recepción,
recepción de datos, ventana de misión y sincronización del reloj del dispositivo de modo de
tener una idea bastante amplia de que se trató la programación de la interfaz. Tanto el resto
de los diagramas y el código de programación se deja a disposición del lector en los anexos
(ANEXO A diagramas de flujo)
Al pulsar el botón de empezar registro (véase Figura 4.27 y página 110), la interfaz
entra en una rutina de recepción mostrado por el diagrama de la Figura 4.50y además abre
una ventada de visor de la adquisición tal como se explicó anteriormente
Aunque la recepción de los datos por USB siempre es a través de la ventana
principal de la aplicación, se habilita una interrupción en la ventana del visor de la
adquisición de modo que se pueda actualizar o refrescar los valores mostrados en estas a
través de las variables declaradas para las señales que son de carácter pública, que significa
que son manipulables entre las ventanas usadas.
151
VENTANA RECEPCION
LIMPIAR DATAGRIDLIMPIAR AXISPLOT
ARMAR EL RESTO DE DATOS EN EL BUFFER
USB_Byte[1] =$FE«BufferUSB»
MOSTRAR VENTANA DE VISOR DE ADQUISICIÓN
HABILITAR INTERRUPCIONEN VENTANA DE VISOR
INTERRUPCION = TRUE?
SI
NO
RECEPCION DE DATOS«BufferUSB»
REFRESCAR DATOS EN LA PANTALLA
DETENERADQUISICION =
TRUE?
SI
NO
ARMAR EL RESTO DE DATOS EN EL BUFFER
USB_Byte[1] =$F8«BufferUSB»
CERRAR VENTANA DE VISOR DE ADQUISICIÓN
REGRESAR PROGRAMA PRINCIPAL
DESHABILITAR INTERRUPCIONEN VENTANA DE VISOR
RECIBIO DATOSBUFFER?
SI
NO
RECEPCION DE DATOS
«BufferUSB»
Figura 4.50: Diagrama de flujo de la ventana de recepción de datos de la interfaz
152
Al momento de pulsar el botón detener del visor de la adquisición (véase Figura
4.27 y página 110), automáticamente se detiene el proceso de registro de datos a tiempo
real, se cierra la ventana del visor y se retorna al programa principal donde se recibe
nuevamente el estado de la memoria EEPROM del dispositivo y vuelve a quedar en un
estado de espera para realizar cualquiera de las ordenes ya antes mencionadas.
En la rutina de recepción de datos, tal como se muestra en la Figura 4.51 se recibe
todo el paquete del buffer enviado desde el dispositivo físico, por lo que, en el momento en
que es recibido cada uno de los bytes son almacenados en variables internas del programa y
la rutina verifica inicialmente el byte 15 de este para realizar la tarea predeterminada para
ese comando.
Fíjese entonces, como la rutina primeramente realiza una verificación del número de
este byte, y luego ejecuta la labor penitente para la misma.
Imagínese que se está recibiendo un buffer perteneciente a una conversión a tiempo
real, entonces luego de que la rutina verifica que, efectivamente se trata de que el byte [15]
= $FF procede a realizar la conversión de los datos de los canales recibidos desde el byte
[1] hasta el byte [8], luego estos son presentados de manera gráfica y numérica en la
ventana principal de la aplicación a través del axisplot y datagrid respectivamente y
finalmente son almacenadas en variables globales para ser utilizadas en la ventana del visor
de la adquisición.
Así como se explicó para este caso, ocurrirá para cada uno de los mostrados en la
Figura 4.51, este evento ocurrirá siempre al momento de que la interfaz reciba datos
procedentes del dispositivo. Se exhorta al lector a revisar la programación realizada para la
interfaz.
153
RECEPCION DE DATOS
RECIBIR BUFFER«DATAUSB[1]. . . DATAUSB[16]»
DATAUSB[15] = $FF?
CONVERSION DE DATOS DE LOS
CANALES
GRAFICAR SEÑALES«AXISPLOT»
MOSTRAR VALORES DE LOS DATOS
RECIBIDOS«DATAGRID»
GUARDAR EN VARIABLES GLOBALES«VENTANA DE ADQUISICION»
DATAUSB[15] = $FE?
CONVERSION DE DATOS DE LA
EEPROM
MOSTRAR VALOR DE ESTADO DE LA
MEMORIA SD
ACTUALIZAR VARIABLES DE ESTADO DE LA
MEMORIA
DATAUSB[15]=$FD?
CONVERSION DE DATOS DE LOS
CANALES
CONSTRUCCION DE LOS DATOS DE TIEMPOS DEL
REGISTRO
GRAFICAR SEÑALES«AXISPLOT»
MOSTRAR VALORES DE DATOS RECIBIDOS
«DATAGRID»
DATAUSB[15]=$FC?
HABILITAR BOTONES PANTALLA PRINCIPAL
MOSTRAR MENSAJE«DATOS RECIBIDOS»
RESTABLECER VALORES DE ESTADOS DE BARRA
DATAUSB[15]=$FB?
DESHABILITAR BOTONES DE VENTANA PRINCIPAL
CONVERSION DE DATOS DE LOS CANALES
GRAFICAR SEÑALES«AXISPLOT»
MOSTRAR VALORES DE LOS DATOS
RECIBIDOS«DATAGRID»
DATAUSB[15]=$AA?
HABILITAR BOTONES DE VENTANA PRINCIPAL
MOSTRAR MENSAJE«MISION REALIZADA»
BOTON ACEPTAR=
TRUE?
BOTON ACEPTAR=
TRUE?
REGRESAR
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
Figura 4.51: Diagrama de flujo rutina del evento de recepción de datos en la interfaz
Para la configuración de la misión se tiene una rutina como la mostrada en la Figura
4.52, en la que se va configurando canal por canal los tiempos de espera y registró, estos
deberán ser verificados antes de ser enviados al dispositivo, ya que, de no tener espacio en
la memoria SD, no podrá llevarse a cabo dicha misión.
154
VENTANA MISION
MOSTRAR VENTANA
CANAL 1HABILITADO?
HABILITAR BOTON VERIFICAR MPS
CANAL 2HABILITADO?
CANAL 3HABILITADO?
CANAL 2HABILITADO?
BOTONVERFICAR =
TRUE?
CALCULAR CAPACIDAD ALTUAL DEL DISPOSITIVO
CON RESPECTO A LA MISION
PUEDE GRABAR?
HABILITAR MUESTREO CON RESPECTO A LA
CAPACIDAD
HABILITAR BOTONENVIAR
BOTONCANCELAR =
TRUE?
REGRESAR AL PROGRAMA PRINCIPAL
CERRAR VENTANA
2
DESHABILITAR BOTON VERIFICAR MSP
BOTON ENVIAR HABILITADO?
BOTON ENVIAR =
TRUE?
MODIFICARON VALORES DE LOS
CANALES?
DESHABILITAR BOTON ENVIAR
DESHABILITARSELECCIÓN DE
MUESTRA
2
MOSTRAR INFORMACION«NO SE PUEDE REALIZAR ESTA
MISION»
2
2
MOSTRAR MENSAJE«HABILITAR
SOBREESCRITURA?»
ACEPTO?
BANDERA DE SOBREESCRITURA =
TRUE
BANDERA DE SOBREESCRITURA =
FALSE
CAPTURAR LOS DATOS DE
CONFIGURACION Y TIEMPOS DE LA
MISION
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
SI
NOSI
NO
Figura 4.52: Diagrama de flujo rutina de configuración de misión
155
Si se llegase a modificar algún canal para la configuración de la misión, la rutina
inmediatamente deshabilita la opción enviar, ya que se deberá volver a calcular los nuevos
valores de registro existentes para verificar si podrán ser registrados en la memoria SD.
Esto ocurrirá tantas veces sea modificado uno de los tiempos establecidos para los canales.
ENVIAR DATOS MISION
ARMAR BUFFER DE CONFIGURACION
«|HM|CH4|CH3|CH2|CH1|MPS2|MPS1|MPS0|»
USB_Bye[2]=CONFIGURACION
ARMAR EL RESTO DE DATOS EN EL BUFFER USB_Byte[1] =$FAUSB_Byte[3] =InicCH1USB_Byte[4] =DurCH1USB_Byte[5] =InicCH2USB_Byte[6] =DurCH2USB_Byte[7] =InicCH3USB_Byte[8] =DurCH3USB_Byte[9] =InicCH4USB_Byte[10] =DurCH4
BANDARESOBREESCRITURA =
TRUE?
USB_Byte[11] =$F0 USB_Byte[11] =$F8
ENVIAR BUFFER AL DISPOSITIVO
REGRESAR PROGRAMA PRINCIPAL
SI
NO
Figura 4.53: Diagrama de flujo envió de la configuración de datos de la misión
156
Una vez verificado los valores y pulsado el botón enviar de la ventana de
configuración de misión los valores de los tiempos son ordenados en el buffer de datos y
son enviados al dispositivo tal como se muestra en la Figura 4.53 además de colocar el
comando en el byte 1 (byte [1] = $FA), valor correspondiente a la configuración de misión.
SINCRONIZAR RTC
CAPTURAR FECHA Y HORA DEL SISTEMA
AISNAR LOS VALORES CORRESPORNDIATES A LAS VARIABLES
«DIA, MES, AÑO, HORA, MINUTO, SEGUNDO»
REGRESAR PROGRAMA PRINCIPAL
ENVIAR DATOS RTC
ARMAR BUFFER DE DATOS:USB_Byte[1] = $FCUSB_Byte[2] = SEGUNDOUSB_Byte[3] = MINUTOUSB_Byte[4] = HORAUSB_Byte[5] = DIAUSB_Byte[6] = MESUSB_Byte[7] = AÑO
ENVIAR BUFFER AL DISPOSITIVO
REGRESAR PROGRAMA PRINCIPAL
Figura 4.54: Diagramas de flujo para sincronización de datos de hora y fecha del RTC.
157
Finalmente, la rutina de sincronización de la misión se realiza tal como se presenta
en la Figura 4.54, en el momento de pulsar el botón de sincronización del RTC mostrado en
la ventana principal de la interfaz el programa captura los valores de la fecha y hora del
ordenador, luego arma dichos valores en el buffer con el identificar en el byte 1 (byte [1] =
$FC) y los envía al dispositivo para su debida configuración.
Etapa V: Calibración del instrumento y pruebas operativas
En cuanto a la calibración del dispositivo físico, se realizó el montaje mostrado en la
¡Error! No se encuentra el origen de la referencia.para calibrar la entrada analógica de
corriente (canales 1 y 2, rango [4 - 20 mA], se ejecutó una variación porcentual (en pasos
de 5%) en dicho rango, tomando 0% el valor de 0 mA y 100% el valor de 20 mA, luego se
procedió a tomar la lectura en bits a la entrada de mencionados canales, y enfrentándolos a
los que idealmente deberían ser.
Figura 4.55: Montaje para calibración de entrada de corriente
158
Esto produjo una curva como la mostrada en la Figura 4.56 luego se realizó la curva
de tendencia de dicha representación para obtener el valor proporcional necesario para
calibrar a nivel de software dichos canales, la Tabla 4.23 muestra los valores de dicho
proceso.
Figura 4.56: Grafica para la calibración de las entradas de corriente del dispositivo
Tabla 4.23: Resultados de la calibración del dispositivo
Nº
Porcentaje
de entrada
UDC5000
Equivalente
IDEAL a la
salida en
decimal de
corriente
Equivalente
LEIDO a la
salida en
decimal de
corriente
Valor en
corriente
[4 – 20]
mA
Error
dinámico en
decimal
1 0% 5760 5900 4 -140
2 5% 6912 7052 4,8 -140
3 10% 8064 8207 5,6 -143
4 15% 9216 9361 6,4 -145
5 20% 10368 10513 7,2 -145
6 25% 11520 11681 8 -161
7 30% 12672 12833 8,8 -161
8 35% 13824 13988 9,6 -164
9 40% 14976 15140 10,4 -164
10 45% 16128 16295 11,2 -167
159
Tabla 4.24: Continuación de la tabla de resultados de la calibración del dispositivo
Nº
Porcentaje
de entrada
UDC5000
Equivalente
IDEAL a la
salida en
decimal de
corriente
Equivalente
LEIDO a la
salida en
decimal de
corriente
Valor en
corriente
[4 – 20]
mA
Error
dinámico en
decimal
11 50% 17280 17443 12 -163
12 55% 18432 18598 12,8 -166
13 60% 19584 19752 13,6 -168
14 65% 20736 20906 14,4 -170
15 70% 21888 22059 15,2 -171
16 75% 23040 23226 16 -186
17 80% 24192 24380 16,8 -188
18 85% 25344 25532 17,6 -188
19 90% 26496 26684 18,4 -188
20 95% 27648 27836 19,2 -188
21 100% 28800 28991 20 -191
En la Tabla 4.25 se muestra los errores alcanzados con la calibración.
Tabla 4.25: Errores del dispositivo DataLabUC
mA %
Error estático máx. 0,1325 0,8281
Error promedio 0,1155 0,7222
Exactitud 0,0083 0,8281
PRUEBA 1: Registro de temperatura
En la Figura 4.57 se muestra el montaje para esta prueba, para ello se utilizó el
banco de calibración de temperatura existente en el Laboratorio de Instrumentación de
Procesos, es cual, progresivamente se calentaba. Se introdujo una termocupla tipo K en su
interior y se configuró para realizar el registro a tiempo real a una velocidad de muestreo de
1 MPS.
160
Figura 4.57: Horno de calibración de temperatura con el dispositivo DataLabUC
En la Figura 4.58 se presenta la captura de imagen de la pantalla principal hecha
desde la misma aplicación, fíjese que el dispositivo se dejó conectado aproximadamente 1
hora 40 minutos lo que equivale a 6000 muestras realizadas.
Figura 4.58: Grafica de la curva de reacción de temperatura
Tiempo (dd/MM/YY hh:mm:ss:ms)
Tem
pera
tura
(°C
)
Vo
ltaje
(V
)
Co
rrie
nte
(m
A)
DataLabUC - Canales de entrada
Temperatura
Voltaje
Corriente
Corriente
161
Luego detener el registro se exportaron los datos a Microsoft Excel lo que dio como
resultado al insertar la gráfica de los valores obtenidos durante el mismo la Figura 4.59 pero
presentándola tomando el eje “X” el número de muestras del registro.
Figura 4.59: Grafica de datos exportados a Microsoft Excel desde la aplicación
PRUEBA 2: Registro de respuesta escalón
Se registró la señal escalón procedente el módulo ModCad existente en el
laboratorio y se tomaron los valores de la respuesta PI del controlador UDC1000, en la
¡Error! No se encuentra el origen de la referencia..
Los valores dados para el control fueron los siguientes: Pb1 = 60%, rSet = 0,3 rAte
= 0. Los resultados gráficos obtenidos ante la prueba escalón son mostrados en la Figura
4.60 y luego de exportar los datos a Microsoft Excel y graficarlos son mostrados en la
Figura 4.61.
162
Figura 4.60: Esquema de conexión del registrador con el ModCad y el UDC1000
Figura 4.61: Registro de la prueba con los dispositivos ModCad y UDC1000
en funcionamiento (respuesta escalón)
Tiempo (dd/MM/YY hh:mm:ss:ms)
Tem
pera
tura
(°C
)
Vo
ltaje
(V
)
Co
rrie
nte
(m
A)
DataLabUC - Canales de entrada
Temperatura
Voltaje
Corriente
Corriente
163
Figura 4.62: Gráficos de la respuesta escalón desde Microsoft Excel
PRUEBA 3: Registro de flujo (Método de ganancia ultima de Ziegler &Nichols)
Considerada una de las pruebas de mayor interés en el desarrollo del dispositivo, fue
realizar el registro de flujo al aplicar el método de ganancia ultima de Ziegler &Nichols,
para sintonización de lazos de control realimentados. Esto se trata de colocar el sistema en
un estado oscilatorio con el cual se obtiene una respuesta periódica, está a través de una
medición de tiempos entre puntos, dará los valores que determinan, por medio de una
formulación ya establecida, el comportamiento que debe tener el controlador de manera
muy aproximada.
Para realizar esta prueba, se utilizó el esquema mostrado en la Figura 4.63, los
valores dados al controlador para poner el sistema en un estado oscilante fueron los
siguientes: Bp = 200 %, Td = 0 y Ti = Max.
164
Al introducir un punto de ajuste fuera muy alejado del punto en el que se encontraba
en modo automático y pasarlo a modo manual, el sistema entra en un estado oscilatorio tal
como fue capturado por el registrador en la Figura 4.64.
Figura 4.63: Esquema para aplicar el método de ganancia ultima de Ziegler & Nichols
Figura 4.64: Registro de estado oscilatorio del sistema en la planta de flujo
Tiempo (dd/MM/YY hh:mm:ss:ms)
Tem
pera
tura
(°C
)
Vo
ltaje
(V
)
Co
rrie
nte
(m
A)
DataLabUC - Canales de entrada
Temperatura
Voltaje
Corriente
Corriente
165
Luego de exportar estos datos a Microsoft Excel e insertar una gráfica para ellos, se
obtuvo el resultado mostrado claramente en la Figura 4.65.
Figura 4.65: Grafico aplicando el método de ganancia ultima de Ziegler & Nichols en Microsoft Excel
166
CAPÍTULO V
CONCLUSIONES
Se pudo constatar que con el uso microcontroladores 18F4550 se puede desarrollar
un prototipo el cual posea las características esenciales para realizar actividades referentes a
la adquisición, registro y comunicación de variables analógicas de control mediante
dispositivos periféricos que actuaban de manera secuencial.
La facilidad del uso de una comunicación USB 2.0 se basa en la confiabilidad en la
traza de datos que son transferidos de manera bidireccional entre el dispositivo y el
computador y que además ofrece la posibilidad de alimentar al dispositivo registrados a
través de los terminales +5V y GND, facilitando el conexionado.
Se logró satisfactoriamente diseñar, construir y programar un dispositivo que realice
las labores de registro de datos de las variables analógicas de control más usadas en las
practicas del Laboratorio de Instrumentación y Control de Procesos de la Escuela de
Eléctrica de la Universidad de Carabobo y además elaborar y programar una interfaz visual
para comunicar al dispositivo con el computador que permitiese configurar el dispositivo y
visualizar los registro que procedan del mismo bien sea a tiempo real como exportar los
registros almacenados en la memoria SD.
Para efectuar el registro de datos en la memoria SD se utilizó la librería pueda a
disposición del software PROTON IDE, pero se observó que su tamaño era ocupado en
memoria era muy grande e imposibilito la incorporación de más programación requerida
para que funcionara correctamente el dispositivo, por lo que se procedió a realizar una
edición de la librería donde se realizaría la escritura y lectura como una memoria
EEPROM, esto además conllevo a un aumento significativo de espacio de la memoria del
167
microcontrolador, aumentando las posibilidades de añadir mayor cantidad de líneas de
programación.
La forma en cómo se utilizó la memoria SD (aplicando la filosofía de memoria
EEPORM) facilito considerablemente su uso tanto en la escritura como en la lectura, solo
se destaca la desventaja de su uso durante la ejecución de la escritura, ya que el tiempo en
emplearla es muy largo, limitando el tiempo de muestreo de las señales de entrada.
Mediante las pruebas operativas realizadas con el equipo se logró verificar el
correcto funcionamiento en cuanto a la correspondencia de las señales analógicas de voltaje
y corriente asociadas a las mediciones realizadas en la medición de flujo, respuesta PI del
controlador UDC1000 ante una entrada escalón simulada por el ModCad y la curva
reacción de la termocupla tipo K en el banco de calibración existente en el laboratorio.
DataLabUC mostro una buena confiabilidad en la lectura de la memoria SD de estas
variables a través de los paquetes enviados desde el dispositivo a la aplicación con un error
en la apreciación de la lectura (para los tiempos de muestreos mayores a 1 MPS) dando
dicho error cada 100 muestras aproximadamente (alrededor del 2% de las muestras
tomadas), debido al desfasaje producido durante la ejecución del lazo completo realizado
con el dispositivo en cada una de las configuraciones, ya que se recurrió a rutinas
programadas que escribieran los tiempos por debajo del segundo en cada una de las
configuraciones, esto se debe a que el RTC1307 posee una apreciación de 1 segundo.
El costo realizado para la implementación de un dispositivo de esta naturaleza es
mucho menor al de uno adquirido comercialmente, además, fomenta el desarrollo de
proyectos de diseño e implementación en esta casa de estudio.
La versatilidad de estos sistemas de registros de datos no tiene fronteras en las
aplicaciones a todo nivel, ya que, si se pueda captar una variable determinada y convertirla
168
en una señal eléctrica, esta podrá ser registrada para su análisis, esto se debe a que el
proceso de registros de datos, bajo este esquema, seguirá siendo el mismo.
RECOMENDACIONES
Implementar el equipo en las distintas prácticas del Laboratorio de Instrumentación
y Control de Procesos.
Como cualquier dispositivo electrónico, DataLabUC es vulnerable a cualquier daño
permanente causado por conexiones incorrectas o condiciones de operación
diferentes a las indicadas en los rangos máximos y mínimos, por lo cual se debe
tener especial precaución en la utilización del mismo.
Realizar una investigación en la búsqueda de mejores RTC, es decir, con mayor
apreciación que el implementado en este prototipo, esto con la finalidad de
disminuir el error producido por rutinas empíricas basadas en el comportamiento del
dispositivo durante el muestreo de las señales.
Optimizar los tiempos de registros con otro software de programación de
microcontroladores a fin de evaluar los posibles aumentos en la velocidad de
muestreo con otras librerías implementadas para la lectura y escritura de la memoria
SD.
Ampliar la gama de señales analógicas a muestrear en un prototipo registrador de
datos como el que se diseñó en este proyecto y así, abarcar la totalidad de las
variables existentes en el Laboratorio de Instrumentación y Control de Procesos
Industriales.
169
BIBLIOGRAFÍA
[1] H.A.M.D, Instrumentación Virtual Industrial, Perú: INDECOPI, 2006.
[2] http://www.pce-iberica.es/instrumentos-de-medida/metros/data-logger.htm
[3] IDOM, Instrumentación y control de procesos, Autor: Juan Carlos Maraña. [En línea]
www.isa.cie.uva.es/ficheros/Instrumentacion_Control_Procesos.pdf
[Consulta: 2012, Enero 27]
[4] Industry Standard Architecture (ISA). [En línea]
http://www.isa.org/MSTemplate.cfm?MicrositeID=201&CommitteeID=4663.
[5] Nociones básicas sobre adquisición de señales.
Disponible: http://www.Redeya.com [Consulta: 2011, Septiembre 07]
[6] Adquisición de datos con un PIC
Disponible:http://marioguillote.blogspot.com/2010/07-/datalogger-adquisicion-de-datos-
con.html 18F2550 [Consulta: 2011, Septiembre 07]
[7] Br. Rivera Fárez Jorge Luis de la Escuela Politécnica del Ejército, “Diseño e
implementación de un módulo Datalogger para el registros de datos obtenidos de variables
analógicas y/o digitales mediante el MÓDULO USB del PIC18F2550 y el software
Labview para comunicación con un PC”, sede Latacunga - Ecuador, en Septiembre del
2010
[8] Carlos A. Reyes Microcontroladores PIC16F62XX, PIC16F81XX y PIC16F87XX
Programación en Basic, Tercera edición, volumen 1 2008.
170
[9] Microchip, 28/40/44-Terminal Data Sheet. High-Performance, Enhanced Flash USB
Micro-controllers with nanoWatt Technology
[10] Br. Morillo Gómez José Gregorio de la Universidad de Carabobo, “Diseño e
implementación de prácticas para aplicaciones avanzadas de diseño digital usando tarjetas
de desarrollo PICDEM, programador MPLAB ICD 2 y lenguaje de programación BASIC”,
sede Valencia – Venezuela, en Mayo del 2006.
[11] DS1307 64x8 Serial Real-Time Clock Data Sheet, Dallas semiconductor.
[12] Self-Calibraing, 16-Bit ANALOG-TO-DIGITAL CONVERTER Data Sheet, Burr-
Brown Products from Texas Instruments.
[13] Manejo de una memoria sd/mmc con un pic16f87x.Scientia et Technica Año XVI, No
44, Abril de 2010. Universidad Tecnológica de Pereira. ISSN 0122-1701
[14] Secure Digital Input/Output (SDIO) Card Specification, Version 1.00, October 2001.
[15] Advanced PIC Microcontroller Projects in C, Chapter 8
[16] iBoard III. Sistema de Desarrollo para Microcontroladores PIC con interfaz USB.
ROSO Electric Spply. Autores: José M. Rodríguez S. y Angel L. Villegas.
[17] INTERSIL, A Brief Introduction to Sigma Delta Conveter, Application Note AN9504,
Author: David Jarman, May 2009.
[18] C++/OOP, un enfoque practico, Autor: Ricardo Devis Botella [En linea]
http://www.a4devis.com/articulos/libros/Programaci%F3n%20Orientada-a-
Objetos%20en%20C++.pdf
[19] , Proton IDE. [En línea] http://www.picbasic.org/proton_ide.php.
[20] Crownhill Associates., Proton Development Suite. [En línea]
http://www.picbasic.org/proton_development_suite.php.
171
[21] Barrios Y., Maritza.Manual de trabajos de Grado de Especialización y Maestría y
Tesis Doctorales. s.l. : FEDUPEL, 2006.
[22] Precision Thermocouple Amplifiers with Cold Junction Compensation AD8495,
Analog Devices Datasheet.
[23] Scientia et Technica Año XVI, No 44, Abril de 2010. Universidad Tecnológica de
Pereira. ISSN 0122-1701 316 MANEJO DE UNA MEMORIA SD/MMC CON UN
PIC16F87x.Carlos Alberto Henao.
[24] SanDisk SD Card, Product Manual Version 2.2 November 2004.
172
ANEXO A
DIAGRAMA DE FLUJOS DEL DISPOSITIVO FISICO
CONFIGURAR RTC
Bit 0 CH PARA ACTIVAR RTC
ARMAR VECTOR RTC CON DATOS DEL BUFFER
«USBIn»
ESCRIBIR EL REGISTRO RTC
REGRESAR CONECTARSE USB
CONFIGURAR DISPOSITIVO
ESCRIBIR REGISTRO DE CONFIGURACION
«USBIn» -> «EEPROM»
IMPRIMIR PANTALLA«CONFIGURACION REALIZADA»LEER BYTE EEPROM DE CONFIGURACION
REGRESAR CONECTARSE USB
Figura A.1: Diagrama de configuración del dispositivo y el RTC
CONFIGURACION DE MISION
ESCRIBIR REGISTRO DE CONFIGURACION DE MISION
«USBIn» -> «EEPROM»
IMPRIMIR PANTALLA«CONFIGURACION REALIZADA»LEER BYTE EEPROM DE CONFIGURACION
REGRESAR CONECTARSE USB
INICIO MISION
LEER RTC
LEER REGISTRO RTC«BusIn»
CONVERTIR REGISTRO ENVALORES BINARIO
REGRESAR
Figura A.2: Diagrama de configuración de la misión y lectura del RTC
173
BORRAR SD
BORRAR BYTE DE CONFIGURACION«EEPROM»
REGRESAR
BORRAR BYTE DE MISION«EEPROM»
CONFIGURACION POR DEFECTO DISPOSITIVO $F0
«EEPROM»
IMPRIMIR PANTALLA«EEPROM BORRADA»
SECTORES DE ESCRITURA = 0«EEPROM»
Figura A.3: Diagrama de la rutina de borrar datos de la memoria SD
174
DIAGRAMA DE FLUJOS DE LA INFERFAZ VISUAL
VENTANA DE CONFIGURACION
MOSTRAR VENTANA
BOTON ACEPTAR =
TRUE?
BOTONCANCELAR =
TRUE?
BOTONDEFECTO =TRUE?
CAPTURAR EL NUMERO DE MUESTRAS SELECCIONADA
CAPTURAR CANALE
SOBREESCRITURA =
TRUE?
MOSTRAR MENSAJE«SOBREESCRITURA HABILITADA,
DESEA CONTINUAR?»
BOTON ACEPTAR =
TRUE?
MOSTRAR MENSAJE«CONFIGURACION ENVIADA
CORRECTAMENTE»
REGRESAR PROGRAMA PRINCIPAL
SI
NO
SI
NO
SI
NO
SI
NO
SI
NO
NUMERO DE MUESTRAS = 1 MPS
TODOS LOS CANALES
HABILITADOS
DESHABILITAR SOBREESCRITURA
Figura A.4: Diagrama de funcionamiento de la ventana de configuración del dispositivo
175
ENVIAR DATOS DE CONFIGURACION
ARMAR BYTE DE CONFIGURACION«|CH0|CH1|CH2|CH3|SW|MPS3|MPS2|MPS1|»
ARMAR BUFFER DE DATOSUSB_Byte[1] = $FBUSB_Byte[2] = CONFIGURACION
ENVIAR BUFFER AL DISPOSITIVO
REGRESAR PROGRAMA PRINCIPAL
ENVIAR DATOS DEL GRID A EXCEL
DECLARAR NUEVA APLICACIÓN() DE
EXCEL
HABILITAR HOJA DE CALCULO
IMPRIMIR DE MANERA MATRICIAL LOS VALORES DEL
DATAGRID EN LA HOJA
MOSTRAR MENSAJE«ARCHIVO
EXPORTADO CORRECTAMENTE»
BOTON ACEPTAR =
TRUE?
REGRESAR PROGRAMA PRINCIPAL
SI
NO
VENTANA MODO MISION
INHABILITAR OPCIONES DE CONFIGURACION
RECEPCION DE DATOS
«BufferUSB»
ULTIMO DATO?
MOSTRAR MENSAJE«MISION REALIZADA
SATISFACTORIAMENTE»
HABILITAR OPCIONES DE CONFIGURACION
REGRESAR PROGRAMA PRINCIPAL
SI
NO
LIMPIAR DATAGRID Y AXISPLOT
BOTON ACEPTAR =
TRUE?
SI
NO
Figura A.5: Diagramas de envío de configuración de datos, ventana de modo misión
176
MODO IMPORTAR
RECEPCION DE DATOS
«BufferUSB»
ULTIMO DATO?
MOSTRAR MENSAJE«DATOS DE LA MEMORIA RECIBIDOS
SATISFACTORIAMENTE»
HABILITAR OPCIONES DE CONFIGURACION
REGRESAR PROGRAMA PRINCIPAL
SI
NO
ENVIAR DATO BORRAR
ARMAR DATOS EN EL BUFFER USB_Byte[1] =$FF
ENVIAR BUFFER AL DISPOSITIVO
REGRESAR PROGRAMA PRINCIPAL
MOSTRAR MENSAJE«DATOS DE LA MEMORIA BORRADOS»
BOTON ACEPTAR =
TRUE?
SI
NO
Figura A.6: Diagrama de modo importar datos y envío de dato para borrar la memoria SD
177
Figura A.7: Esquemático plano (I)
178
Figura A.8: Esquemático plano (II)
179