TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf ·...

97
INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INVESTIGACIÓN Y DESARROLLO DE TECNOLOGÍA DIGITAL “MONITOREO DE PARÁMETROS A TRAVÉS DE UN SISTEMA DE TELEMETRÍA” TESINA QUE PARA OBTENER LA ESPECIALIDAD EN SISTEMAS INMERSOS PRESENTA: DANIEL ISAÍAS MÍNGUEZ VITAL BAJO LA DIRECCIÓN DE: DR. ROBERTO HERRERA CHARLES FEBRERO 2009 TIJUANA, B.C., MÉXICO

Transcript of TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf ·...

Page 1: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

INSTITUTO POLITÉCNICO NACIONAL

CENTRO DE INVESTIGACIÓN Y DESARROLLODE TECNOLOGÍA DIGITAL

“MONITOREO DE PARÁMETROS A TRAVÉS DE UN SISTEMA DE TELEMETRÍA”

TESINAQUE PARA OBTENER LA

ESPECIALIDAD EN SISTEMAS INMERSOS

P R E S E N T A :

DANIEL ISAÍAS MÍNGUEZ VITAL

BAJO LA DIRECCIÓN DE:

DR. ROBERTO HERRERA CHARLES

FEBRERO 2009 TIJUANA, B.C., MÉXICO

Page 2: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas
Page 3: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas
Page 4: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Dedicatoria

A mis padres, Daniel I. Mínguez Rodríguez y Guadalupe Vital Ugalde, quienes siempre me han

brindado todo su apoyo en las decisiones que he tomado en mi vida; y por su esfuerzo, que me

ha servido de inspiración a lo largo de mi preparación como profesionista y ser humano.

A mi abuelita Ma. Eugenia Vital Ugalde quien ha sido como una segunda madre para mi. A mi

hermana Diana G. Mínguez Vital con quien he compartido mis mejores momentos y ha sabido

levantar mi ánimo en los peores.

Por último, pero no menos importante, a mi familia que sin importar la distancia que nos separa

hemos mantenido la misma unidad; siempre los conservaré en mi memoria ya que saben

transmitir su cariño, su apoyo y su alegría.

Page 5: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Agradecimientos

Al Dr. Roberto Herrera Charles quien como profesor, consejero y director de Tesina me ayudó

durante la Especialidad desde su inicio hasta la terminación del proyecto de Tesina. A mis

revisores el Dr. Jesús Francisco Córdoba, M.C. Adolfo Esquivel y Esp. Eduardo Barba por sus

observaciones y consejos. Al cuerpo académico de la especialidad, M.C. Teodoro Álvarez, M.C.

José Montoya, M.C. David Saucedo y M.C. Juan Tapia por compartir sus experiencias y

conocimientos.

A mis compañeros de especialidad Mizael López-Lucho, Aryán Serrano y Branko Ivankovic; a

Óscar Muñoz, Rodolfo Jiménez, Carlos Hernández y Sonia Casillas por compartir sus

experiencias, aportar sus ideas para la realización de este trabajo y por hacer de ésta una

experiencia muy enriquecedora.

A M.C. Armando Salas y a la empresa Karl Zeiss que a través del proyecto desarrollado entre

ambos nos sirvió como punto de partida para la propuesta del proyecto de Tesina.

A CONACYT por el apoyo brindado a través de la beca de programas inscritos en el PNPC; a los

proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas móviles”

SIP-20080851 del IPN y “Creación de una especialidad en Embedded Systems” Fondo Mixto

CONACYT BC Convocatoria 2006-2 Proyecto 63058. A CITEDI por aceptarme en su programa

de Especialidad y por los servicios que me permitió utilizar en sus instalaciones como estudiante.

Page 6: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Monitoreo de Parámetros a través de un Sistema de Telemetría

Resumen

En este trabajo se presenta un sistema de monitoreo que realiza la lectura de parámetros de

temperatura y enviarlos a un servidor para visualizarlos a través de un Applet generado en Java.

El sistema presentado hace uso de varias tecnologías de transmisión de datos que en los últimos

años a han evolucionado de manera importante. El sistema comienza con el uso de un sistema

embebido o microcontrolador para el muestreo de datos tomados de la salida de un sensor de

temperatura, el microcontrolador también se encarga de la comunicación serial bajo el estándar

RS-232, con un dispositivo transceptor (Starlert ST-1) el cual usa el protocolo de paquetes UDP

para realizar el envío de datos a través de la red de Internet por medio de la red celular GSM

utilizando el servicio de paquetes GPRS. La información es almacenada en un servidor Web

Apache que genera un archivo de datos el cual sirve para introducirlos a un Applet programado

en Java y utilizando sus elementos visuales poder observar el comportamiento de los parámetros

introducidos al microcontrolador.

Una característica sobresaliente de este trabajo es el uso de dispositivos de alto rendimiento que

conjuga tecnologías de comunicaciones, procesamiento e Internet utilizando las herramientas

adquiridas en el curso de especialidad para desarrollar un sistema que puede ser llevado a

muchas aplicaciones para la mejora de procesos industriales, sistemas de cultivo, dispositivos de

seguridad, servicios de salud, entre otros, que cabe mencionar que al contar con un control

supervisorio, se puede automatizar procesos, accesar a la información de manera remota y

reducir la carga de trabajo de los recursos humanos lo cual puede resultar en un mejor

rendimiento de los mismos.

Page 7: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Abstract

This work introduces a monitoring system which is able to make the reading of parameters such

as temperature and sends it to a server in order to visualize them with a Java Applet.

The presented system make use of several data transmission technologies which have evolved in

a significant way. The system starts with the use of an embedded system or microcontroller unit

(MCU) for taking samples of the signal generated by a temperature sensor, also it manages the

serial communication, following the RS-232 standard, with a transceiver device (Starlert ST-1)

which uses the UDP package protocol in order to send data over the Internet through the GSM

network using the package service GPRS. The information gathered is saved in a Web Apache

server and creates a log file with data which can be parsed to an Applet written in Java and using

its visual elements be able to watch the parameters' behavior.

An important feature of this work is the use of high-performance devices to combine

communications, processing and Internet technologies, and using the knowledge acquired in the

specialization course to develop a system that can be implemented in many applications in order

to improve industrial processes, crops systems, security devices and health care services, among

others, it bears mentioning that having a supervisory control leads to process automation, remote

data access and work reduction on human resources which may result in better performance.

Page 8: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Índice

1. Introducción........................................................................................11.1. Aplicaciones de los Sistemas de Telemetría...................................................................31.2. Objetivos del proyecto....................................................................................................6

1.2.1. Objetivo General......................................................................................................61.2.2. Objetivos específicos...............................................................................................61.2.3. Organización de la Tesina........................................................................................7

2. Antecedentes Teóricos..........................................................................82.1. Sistema Global de Comunicaciones Móviles (GSM).....................................................8

2.1.1. Historia de GSM......................................................................................................82.1.2. Arquitectura GSM....................................................................................................9

2.2. Servicio General de Paquetes por Radio (GPRS).........................................................122.3. Protocolo de Datagrama de Usuario (UDP)..................................................................15

3. Descripción del sistema....................................................................173.1. Características de los dispositivos................................................................................18

3.1.1. Sensor de Temperatura LM-35...............................................................................193.1.2. Starlert ST-1...........................................................................................................193.1.3. Microcontrolador Freescale MCF51QE128..........................................................20

4. Configuración y Programación del microcontrolador ColdFire.....234.1. Arquitectura V1 ColdFire.............................................................................................23

4.1.1. Modos de Direccionamiento..................................................................................264.1.2. Procesamiento de Excepciones..............................................................................26

4.2. Programación del microcontrolador.............................................................................264.2.1. Convertidor Analógico Digital...............................................................................26

4.3. Contador de Tiempo Real.............................................................................................324.3.1. Puerto Serie............................................................................................................34

4.4. Estructura del Proyecto en Code Warrior.....................................................................43

5. Resultados..........................................................................................515.1. Programación del Convertidor Analógico Digital........................................................535.2. Programación del Puerto Serie......................................................................................545.3. Programación del Applet en Java..................................................................................57

6. Conclusiones......................................................................................596.1. Trabajo Futuro...............................................................................................................61

Referencias.............................................................................................62Apéndice A.............................................................................................63Apéndice B.............................................................................................80Apéndice C.............................................................................................85Apéndice D.............................................................................................86

Page 9: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Índice de figurasFigura 1.1: Proceso de Telemetría................................................................................................1Figura 1.2: Sistema de RF de AgriNET [1]..................................................................................4Figura 1.3: Diagnóstico de servicio de un automóvil vía e-mail brindado por OnStar [11]. . .5Figura 1.4: Estetoscopio Electrónico Digital de AMD Telemedicine [2]...................................6Figura 2.1: Reuso de Frecuencias...............................................................................................10Figura 2.2: Arquitectura de una red GSM................................................................................11Figura 2.3: Internet y sus protocolos..........................................................................................15Figura 2.4: Paquete de datos UDP..............................................................................................16Figura 3.1: Transmisión de datos al servidor............................................................................17Figura 3.2: DEMOQE128 y Starlert ST-1.................................................................................18Figura 3.3: Microcontrolador Flexis 32-bit ColdFire...............................................................21Figura 3.4: DEMOQE128 [12]....................................................................................................22Figura 4.1: Segmentos del V1 ColdFire [5]................................................................................24Figura 4.2: Diagrama a Bloques del Convertidor A/D [5].......................................................29Figura 4.3: Registro de Estado y Control 1 (ADCSC1)............................................................30Figura 4.4: Registro de Estado y Control 2 (ADCSC2)............................................................31Figura 4.5: Registro de Configuración (ADCCFG)..................................................................31Figura 4.6: Registro de Estado y Control del Contador de Tiempo Real (RTCSC)..............33Figura 4.7: Distribución interna de la fuente de Reloj.............................................................36Figura 4.8: Registro de Control 1 del ICS (ICSC1)..................................................................37Figura 4.9: Registro de Control 2 del ICS(ICSC2)...................................................................37Figura 4.10: Registro de Estado y Control del ICS (ICSSC)...................................................38Figura 4.11: Registro de Control 1 del puerto serie (SCIxC1).................................................39Figura 4.12: Register de Control 2 del Puerto Serie (SCIxC2)................................................40Figura 4.13: Registro de Control 3 del Puerto Serie (SCIxC3)...............................................41Figura 4.14: Registro de Baud Rate del SCI. Arriba: SCIxBDH. Abajo: SCIxBDL.............42Figura 4.15: CodeWarrior para microcontroladores...............................................................43Figura 4.16: Código fuente implementado en el microcontrolador.........................................44Figura 5.1: Computadora Personal y Starlert ST-1..................................................................51Figura 5.2: Prueba del Convertidor A/D...................................................................................54Figura 5.3: Envío de caracteres a la Terminal Serial...............................................................55Figura 5.4: Sistema Completo.....................................................................................................56Figura 5.5: Visualización de gráfico de temperatura en Internet...........................................58

Page 10: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Acrónimos en inglés utilizados en la Tesina

3GSM Third-generation Services for GSM (Servicios de Tercera generación para GSM)

ADC Analog-to-Digital Converter (Convertidor Analógico Digital)

A-GPS Assited GPS (GPS Asistido)

APN Access Point Name (Nombre del Punto de Acceso)

ARP Address Resolution Protocol (Protocolo de Resolución de Direcciones)

ASCII American Standard Code for Information Interchange (Código Estadounidense

Estandarizado para el Intercambio de Información)

AuC Authentication Center (Centro de Autenticación)

AVL Automatic Vehicle Location (Localización Automática Vehicular)

BSC Base Station Controller (Controlador de Estaciones Base)

BSS Base Station Subsystem (Sub-sistema de Estaciones Base)

BTS Base Trasceiver Station (Estacion Base)

CEPT Conférence Européenne des Postes et Télécommunications (Organización de

estandarización Europea)

CDMA Code Division Multiple Access (Acceso Múltiple por División de Código)

CDPD Cellular Digital Packet Data (Paquetes de Datos Celular Digital)

DCS 1800 Digital Cellular System 1800 (Sistema Celular Digital 1800)

DCO Digitally Controlled Oscilators (Osciladores Digitalmente Controlados)

DNS Domain Name System (Sistema de Nombre de Dominio)

DMIPS Dhrystone Million Instruction per Second (Millones de Instrucciones por

Segundos Dhrystone)

EDGE Enhanced Data for a Global Enviroment (Datos Mejorados para un Ambiente

Global)

FIFO First In, First Out (Primero en entrar, primero en salir)

FLL Frequency-locked Loop (Lazo Enganchado por Frecuencia)

FTP File Transfer Protocol (Protocolo de Transferencia de Archivos)

GGSN Gateway GPRS Support Node (Puerta de Enlace del Nodo de Soporte GPRS)

GPRS General Packet Radio Service (Servicio General de Paquetes por Radio)

GPS Global Positioning System (Sistema de Posicionamiento Global)

GSM Global System for Mobile Communications (Sistema Global de Comuniaciones

Móviles)

Page 11: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

GSMA GSM Association (Asociación GSM)

HLR Home Location Register (Registro de Localización de usuarios Locales)

HSCSD High Speed Circuit Switched Data (Datos Conmutados por Circuitos de Alta

Velocidad)

HSPA High Speed Packet Access (Acceso a Paquetes de Alta Velocidad)

HTTP Hypertext Transfer Protocol (Protocolo de Transferencia de Hiper-texto)

I2C Inter-Integrated Circuit (Circuitos Inter-integrados)

ICMP Internet Control Message Protocol (Protocolo de Mensajes de Control de Internet)

ICS Internal Clock Source (Fuente de Reloj Interna)

IDE Integrated Development Enviroment (Ambiente Integrado de Desarrollo)

IGMP Internet Group Management Control (Control de Manejo del Grupo de Internet )

IP Internet Protocol (Protocolo de Internet)

ISDN Integrated Services Digital Network (Red Digital de Servicios Digitales)

LAN Local Area Network (Red de Área Local)

LIN Local Interconnect Network (Red de Interconexión Local)

M2M Machine-to-Machine (Máquina a Máquina)

MoU Memorándum of Understandig (Recordatorio de Entendimiento)

MS Mobile Station (Estación Móvil)

MSC Mobile services Switching Center (Centro de Conmutación y servicios Móviles)

NRZ Non-return to Zero (Sin Retorno a Cero)

PAN Personal Area Network (Red de Área Personal)

PCS 1900 Personal Communication System 1900 (Sistema de Comunicación Personal 1900)

PLMN Public Land Mobile Network (Red Móvil Pública Terrestre)

PPP Point-to-Point Protocol (Protocolo Punto a Punto)

PSTN Public Switched Telephone Network (Red de Telefonía Pública Conmutada)

RARP Reverse Address Resolution Protocol (Protocolo Inverso de Resolución de

Direcciones)

RF Radio Frequency (Radio frecuencia)

RTC Real-Time Counter (Contador en tiempo real)

SCI Serial Communications Interface (Interfaz Serial de Comunicaciones)

SGSN Serving GPRS Support Node (Servidor del Nodo de Soporte GPRS)

SIM Subscriber Identity Module (Módulo de Identidad de Usuario)

SMS Short Message Service (Servicio de Mensajes Cortos)

Page 12: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

SMTP Simple Mail Transfer Protocol (Protocolo de Transferencia de Correos Simple)

SPI Serial Peripheral Interface (Interfaz Serial de Periféricos)

SQL Structured Query Language (Lenguaje de Consulta Estructurado)

SSH Secure Shell (Intérprete de comandos Seguro)

TCP Transfer Control Protocol (Protocolo de Control de Transferencia)

TDMA Time Division Multiple Access (Acceso Múltiple por División de Tiempo)

TELNET Telecommunication Network (Red de Telecomunicaciones)

TFTP Trivial File Transfer Protocol (Protocolo de Transferencias de Archivos Triviales)

TRAU Transcoder Rate and Adaptation Unit (Unidad de Adaptación y Rango de Trans-

codificación)

UDP User Datagram Package (Paquete de Datagrama de Usuario)

UMTS Universal Mobile Telephone System (Sistema de Telefonía Móvil Universal)

USB Universal Serial Bus (Bus Universal en Serie)

VLR Visitor Location Register (Registro de Localización de usuarios Visitantes)

WAN Wide Area Network (Red de Área Ámplia)

W-CDMA Wideband – Code Division Multiple Access (Múltiple Acceso por División de

Código de Banda Ancha)

WPAN Wireless Personal Area Network (Red de Área Personal Inalámbrica)

Page 13: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

1. IntroducciónLa introducción de nuevas tecnologías ha sido crucial en el desarrollo del hombre, han

simplificado infinidad de labores donde era necesario contar con numerosos procesos antes de

obtener algún resultado. La observación y control de estos procesos es una tarea muy importante

para la obtención de resultados más precisos y puede ser más eficiente si se realiza de forma

automática y sin tener que contar con recursos humanos de manera presencial en el lugar donde

se realiza este proceso. Aquí es donde la telemetría nos ofrece una solución para esta clase de

problemas. La telemetría nos permite realizar mediciones de parámetros físicos a distancia los

cuales pueden ser posteriormente almacenados y visualizados por el usuario interesado.

De forma general, se puede describir el procedimiento con la Figura 1.1 y de acuerdo a la

ilustración, un sistema de telemetría básico puede ser muy simple, y sin embargo, efectivo; se

pueden nombrar varios ejemplos, desde una persona midiendo el tamaño de muestras

defectuosas en un lote de producción y enviando los resultados a la persona encargada del área,

hasta un sistema controlando una red inalámbrica de sensores monitoreando una zona forestal

para detectar posibles incendios y enviando reportes periódicos al guardabosques en turno. Sea el

caso de estudio, los componentes de un sistema de telemetría no varían en gran proporción.

El objeto de observación puede ser cualquier parámetro físico o químico, los cuales son

sensados para obtener finalmente ya sea un nivel de voltaje, una variación en frecuencia de

alguna señal o incluso datos serializados que cumplan con algún estándar de comunicaciones.

Cuando se trata con señales eléctricas analógicas es necesario acondicionarlas y digitalizarlas

para convertirse en entrada de un procesador y realizar las operaciones necesarias para colocar

1

Figura 1.1: Proceso de Telemetría

Page 14: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Introducción

los datos en el medio de transmisión. Se puede considerar, por ejemplo, la actividad eléctrica del

corazón medida en un intervalo de tiempo y es sensada con electrodos.

El proceso de transmisión de datos es muy parecido a un codificador de información. Los datos

que se requieren enviar a través del medio de transmisión deben de cumplir con ciertas

características para que puedan utilizar el canal de transmisión; si se envía en forma de paquetes,

puede ser requerida información adicional como la del destinatario o el método de envío que se

necesita usar; otro ejemplo puede ser cuando la cantidad de información que se envía excede las

capacidades del medio de transmisión (como el ancho de banda), entonces, es necesario utilizar

algoritmos de compresión o disminuir la tasa de transmisión.

El medio de transmisión de datos puede realizarse a través de cables o inalámbricamente. La

cantidad de protocolos de comunicación existentes es infinita, y cada uno se ha adaptado de

acuerdo a las características presentadas por el ambiente que rodea al medio de transmisión. A

través de un medio cableado, se añade a los datos mayor seguridad, integridad e inmunidad al

ruido comparado con los medios inalámbricos, además existen topologías diferentes para cumplir

con requerimientos de velocidad, acceso y otras características; los medios cableados ofrecen al

diseñador una rápida implementación y además sencilla como es el caso del estándar RS-232,

aunque para obtener mejores tasas de transmisión existen otros como Ethernet y se pueden

incluso formar redes de área local o LAN cuando existen varios usuarios interesados en los datos

enviados. Sin embargo, el uso de las frecuencias en el aire ha logrado que en el medio científico

se desarrollen sistemas muy complejos de codificación y compresión haciendo uso de protocolos

robustos como 802.11 y Bluetooth, aunque también existen otros menos complejos como

802.15.4, que es la base de la especificación de Zigbee, que a cambio del uso de perfiles y altas

tasas de transmisión, ofrece un alcance muy amplio en áreas abiertas así como un bajo consumo

de potencia y así se vuelve una solución altamente eficaz para formar redes de área personal

inalámbricas o WPAN. El uso de estos medios, a diferencia de los cableados, es que

proporcionan un uso eficiente del espacio haciendo que estos sistemas puedan utilizarse en

cualquier sitio; otra característica importante es el reuso de la infraestructura ya establecida,

como es el caso de este trabajo, en el que se utiliza la red móvil GSM/GPRS a través del

dispositivo transceptor Starlert ST-1 que realiza el envío de paquetes para hacerlos llegar al

servidor. Los medios de transmisión inalámbricos están en constante evolución, cada vez ofrecen

2

Page 15: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Introducción

mayor confiabilidad y tasas de transmisión tan altas que ahora vemos como un hecho el poder

realizar el envío de señales de video en tiempo real por donde hasta hace apenas algunos años

solo era posible transmitir voz.

La recepción de datos es similar a la transmisión en el sentido que se tienen que cumplir con los

mismos requerimientos de comunicación que están dados por el medio de transmisión, el sub-

sistema que recibe la información enviada por el transmisor, debe ser capaz de interpretar el

protocolo utilizado. En esta parte, si existiera alguna codificación en el envío de datos, el

dispositivo encargado de la recepción debe ser capaz de decodificarlos y almacenarlos para más

adelante se puedan visualizar como datos numéricos de manera tabular o con gráficos.

La visualización de datos puede estar relacionada con el sub-sistema que recibe los datos, ya

que un proceso puede estar encargado de la recepción y otro del despliegue de la información

que se reproduce en el dispositivo local visualizador. En el caso de la aplicación que se presenta

en esta Tesina, el proceso de despliegue está almacenado en el servidor y se ejecuta en la

máquina virtual de Java instalada en el cliente.

1.1. Aplicaciones de los Sistemas de Telemetría

Los sistemas de telemetría han logrado un aporte importante dentro de nuestra sociedad, y la

funcionalidad que ofrecen ha hecho que sea más fácil y rápido introducirlos a diversas áreas de

estudio y es por ello que cada vez es mas común encontrarlos a nuestro alrededor al grado que la

mayor parte del tiempo pasan desapercibidos siendo que en realidad convivimos con muchos de

ellos durante la vida cotidiana. Algunas áreas de en las que se han introducido estos sistemas son

la medicina (telemedicina), agricultura y la automotriz.

Como ejemplo, la empresa AgriNET ofrece soluciones para el monitoreo y control de recursos

utilizados en la agricultura. Existen muchas ventajas que un sistema de telemetría puede aportar

a este campo. Una red de sensores de humedad o una base meteorológica ofrecen mejoras en la

obtención de cultivos al tener un monitoreo completo de los mismos. El uso apropiado de

recursos para producir nuevas áreas de explotación agrícola también representa una mejora

significativa, por ejemplo, si se tiene controlada la cantidad de fertilizante disponible y además

3

Page 16: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Introducción

se puede tener acceso a esta información de manera remota por medio de bases de RF de control

(Figura 1.2) combinado con tecnologías como el Internet.

Otro ejemplo muy común que demuestra la importancia del uso de sistemas de telemetría se

puede observar en los sistemas de seguridad vehicular como los que desarrolla una compañía

llamada OnStar desarrollada por General Motors. El objetivo de OnStar es ofrecer a sus usuarios

gran rapidez de respuesta en caso de accidentes automovilísticos ya sean a causa de siniestros o

robo del vehículo. Los usuarios de vehículos equipados con este sistema como el de la Figura 1.3

pueden obtener de manera automática, por e-mail, diagnósticos mensuales, servicio de

navegación a través de voz, respuesta automática de un asesor en caso de que se desplieguen las

bolsas de aire a causa de un accidente y asistencia en caso de robo de vehículo. Todas los

servicios mencionados con anterioridad son posibles gracias al uso de un sistema que combina el

monitoreo constante del automóvil con tecnología GPS para la localización del vehículo así

como el uso de redes celulares. Básicamente el usuario puede contactar directamente a un asesor

de OnStar haciendo uso de los componentes básicos de un teléfono celular, es decir, un

micrófono integrado, una antena celular y la red celular; mientras tanto el asesor del servicios

localiza al vehículo utilizando el sistema de localización GPS. En otro caso, cuando las bolsas de

4

Figura 1.2: Sistema de RF de AgriNET [1]

Page 17: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Introducción

aire del vehículo son desplegadas, un mensaje es enviado al sistema de telemetría del vehículo

equipado el cual se comunica al centro de servicios utilizando la misma red celular.

La telemedicina es una de las áreas en la que se ha tenido un mayor desarrollo y ésto se debe

principalmente a las necesidades que como seres humanos presentamos; conforme crece la

población en el mundo, mayor es el número de gente que necesita tratamientos médicos de

manera inmediata y el personal especializado para el cuidado de cierto tipo de enfermedades no

es la suficiente para cubrir estas necesidades en todos los rincones del mundo, hay ocasiones que

personas necesitan ser examinadas por estos especialistas y tienen que viajar varios kilómetros

para poder tratar sus enfermedades lo cual se traduce en gastos muy grandes. La habilidad de la

telemedicina para proveer cuidado médico interactivo utilizando tecnología moderna y las

telecomunicaciones es fundamental para resolver este tipo de problemas que nuestra sociedad

enfrenta. Ya sea atención médica en tiempo real, para incrementar la efectividad en el uso de

camas en un hospital, atender comunidades rurales muy alejadas, la telemedicina es

definitivamente la mejor opción.

La empresa AMD Telemedicine es líder a nivel mundial como proveedor de instrumentos

médicos (Figura 1.4) usados en telemedicina. Los instrumentos médicos que esta empresa provee

pueden ser utilizados para distintas áreas del cuidado de la salud como son la cardiología,

odontología, dermatología, otorrinolaringología, oftalmología, patología, pediatría, tratamientos

de emergencia, salud de la mujer, cuidados primarios, radiología, ultrasonidos y monitoreo de

signos vitales.

5

Figura 1.3: Diagnóstico de servicio de un automóvil vía e-mail brindado por OnStar [11]

Page 18: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Introducción

Así como los mencionados aquí, existen otros ejemplos más en la actualidad (tratamiento y

distribución de gas, distribución de agua potable, control de incendios forestales, solo por

mencionar algunos) que poco a poco están ayudando a mejorar diversos procesos, acortando

distancias significativamente, reduciendo costos, mejorando tiempos y otros factores más que

están involucrados en este intercambio de información a larga distancia. Y una de las cosas más

importantes que cabe resaltar es el hecho de que somos capaces de implementar usos nuevos a

tecnologías existentes y, por lo tanto, mejorarla.

1.2. Objetivos del proyecto.

1.2.1. Objetivo General.

Desarrollar un sistema de adquisición de datos que puedan ser enviados a través de un módem

GSM/GPS usando el servicio de datos GPRS hacia un servidor y monitorearlos desde una

computadora con acceso a Internet.

1.2.2. Objetivos específicos.

1. Comprender el funcionamiento del sistema actual de telemetría [14].

6

Figura 1.4: Estetoscopio Electrónico Digital de AMD

Telemedicine [2]

Page 19: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Introducción

2. Configurar el módulo convertidor analógico digital del microcontrolador.

3. Configurar el módulo serial del microcontrolador.

4. Acoplamiento del sensor de temperatura al microcontrolador.

5. Enviar datos del microcontrolador al módem ST-1.

6. Desarrollar un Applet en Java para la visualización de datos en el servidor.

1.2.3. Organización de la Tesina.

Esta Tesina esta dividida principalmente en 6 capítulos. El presente capítulo fue una introducción

acerca de los sistemas de telemetría, desde su definición hasta algunos ejemplos existentes en la

actualidad, además se presentan los objetivos de la Tesina. El capítulo 2 explica brevemente la

red de telefonía inalámbrica GSM, así como algunos de sus componentes entre los que destaca el

GPRS del cual también se hace mención finalizando con una descripción del protocolo UDP. En

el capítulo 3 detalla las características de los componentes que conforman al sistema presentado

en este trabajo, así como su participación dentro del mismo. El capítulo 4 se centra en el

microcontrolador MCF51QE128 comenzando por la arquitectura V1 ColdFire y explicando los

periféricos usados, sus características, registros internos y la programación de los mismos. Los

resultados obtenidos y el desarrollo de las pruebas se detallan en el capítulo 5. Por último, las

conclusiones y trabajo futuro propuesto para este proyecto se mencionan en el capítulo 6.

7

Page 20: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

2. Antecedentes TeóricosPara la realización de este proyecto se hace uso de tecnologías desarrolladas para los sistemas de

telecomunicaciones; la red de telefonía celular GSM de la cual surge GPRS, que usando las

mismas radiofrecuencias y estaciones bases que ya existen de GSM, ofrece a sus usuarios,

negocios y otras organizaciones mejoras importantes en la transmisión inalámbrica de

información con el desempeño de conexiones cableadas. Además, también se hace mención al

Protocolo de Datagrama de Usuario (UDP) que es el protocolo utilizado por el Starlert ST-1 para

enviar sus datos a través de Internet.

2.1. Sistema Global de Comunicaciones Móviles (GSM)

GSM es un estándar a nivel internacional en las comunicaciones digitales a través de la telefonía

celular; por medio de los servicios que provee, es capaz de realizar la transmisión de voz y datos

entre dispositivos móviles a velocidades de hasta 9.6 kbit/s. Al ser reconocida como estándar en

la mayor parte del mundo, ofrece acceso a todos sus servicios fuera del territorio donde un

usuario radica como si estuviera en casa. De acuerdo al “GSM Brochure” expedido por la GSM

Asssociation, para Septiembre del 2007 ya habían más de 2,500 millones de suscriptores GSM,

cifra que representa el 85% del mercado móvil a nivel mundial. Hoy en día, “la familia de

tecnologías GSM está formada por GSM, Servicio de Paquetes por Radio (GPRS), Tasas de

Datos Mejoradas para la Evolución GSM (EDGE), y servicios de tercera generación (3GSM)

también conocido como Múltiple Acceso por División de Código de Banda Ancha (W-CDMA) y

su evolución móvil de banda ancha, HSPA (High Speed Packet Access)” [13].

2.1.1. Historia de GSM

Aunque la idea de un sistema radio móvil de comunicaciones basado en células surgió en los

laboratorios Bell en los años 70's, fue hasta 1982 cuando gracias al Conférence Européenne des

Postes et Télécommunications (CEPT) se formó el Groupe Spécial Mobile (nombre original de

GSM) para desarrollar un sistema móvil celular estandarizado que pudiera funcionar en el rango

de 900 MHz.

La causa principal de la necesidad de formar un estándar fue que cuando comenzaron a

desarrollarse diferentes sistemas de telefonía celular para cada país dentro de Europa, lo cual

resultaba problemático, principalmente porque los equipos se diseñaban con una especificación

8

Page 21: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Antecedentes Teóricos

funcional solo para el país donde se desarrollaban, de tal forma que éstos solo funcionaban

dentro de las fronteras del mismo.

Poco después, el 7 de Septiembre de 1987 cuando el acuerdo llamado “Memorandum of

Understandig” (MoU) fue firmado en Copenhagen por 15 operadores de telecomunicaciones de

13 países se logró fundar el primer sistema celular digital a través de Europa que más adelante se

convertiría en la Asociación GSM (GSMA). En la actualidad, la asociación representa a más de

740 operadores GSM a través de 219 países y territorios del mundo y sirve a más de 2,600

millones de usuarios.

En 1991, el primer sistema GSM estuvo listo para ser utilizado de manera amigable con los

usuarios y fue entonces cuando el significado del acrónimo GSM cambio a Sistema Global para

Comunicaciones Móviles. En ese mismo año se dio a conocer el Sistema Celular Digital 1800

(DCS 1800) que básicamente trasladaba al sistema GSM a la banda de 1800 MHz lo cual dio

pauta a establecer en Estados Unidos el mismo sistema a los 1900 MHz que sería llamado

Sistema de Comunicación Personal 1900 (PCS 1900).

Durante el siguiente año muchos operadores europeos ya contaban con redes de comunicaciones

basados en el sistema GSM el cual captaría la atención a nivel mundial y lograría establecerse en

esa índole provocando un éxito comercial para los proveedores del sistema.

2.1.2. Arquitectura GSM

La estructura de una red de telefonía celular ofrece una característica muy importante sobre

estructuras basadas en radio bases de alta potencia y largo alcance: el reuso eficiente de

frecuencias utilizando estaciones base de poca potencia y rango limitado. Debido a que el

suscriptor cuenta con un sistema que emite poca potencia, el rango de la señal será limitada, de

esta forma, para satisfacer la necesidad de cobertura amplia, se debe considerar una

infraestructura con una cantidad significativa de estaciones que forman la red celular, en la cual a

cada estación se le asigna una parte del espectro de frecuencias como en la Figura 2.1; al estar

limitadas en su rango de alcance, para que dos células puedan hacer uso de la misma frecuencia,

necesitan estar separadas por una o más células con el fin de evitar interferencias. El reuso

eficiente de frecuencias es una característica muy importante ya que el espectro de frecuencias es

9

Page 22: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Antecedentes Teóricos

un recurso bastante limitado.

A pesar de que el reuso de frecuencias es una ventaja sobresaliente, las redes celulares también

tienen algunas desventajas:

● Entre mayor es el número de células instaladas, mayor es el costo de la infraestructura y

líneas de acceso.

● Todas las redes celulares necesitan que conforme se mueve una estación móvil, la

llamada activa esté pasando de una célula a otra.

● La red debe de estar pendiente de la posición de la estación móvil, incluso cuando no hay

llamada en progreso, para que pueda entregar correctamente una llamada entrante cuando

se requiera [15].

La infraestructura de una red GSM, como se ilustra en la Figura 2.2, se puede describir a grandes

rasgos en tres partes: el usuario móvil que controla el equipo o Estación Móvil (MS) que lo

conecta a la infraestructura de la red; dicha conexión se establece mediante el Sub-sistema de

Estaciones Móviles (BSS); y por último, el Centro de Conmutación y servicios Móviles

10

Figura 2.1: Reuso de Frecuencias

Page 23: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Antecedentes Teóricos

(MSC) que se encarga de manejar los servicios móviles así como la conmutación de llamadas

entre usuarios móviles y otros usuarios móviles o fijos.

La estación móvil es el equipo físico que conecta al usuario GSM a la red, este equipo debe de

ser portátil y se presenta en varias formas y con distintas potencias. Para establecer una buena

comunicación con la red GSM es necesario realizar una autenticación por medio de un Módulo

de Identidad del Suscriptor (SIM) el cual es un chip que es insertado en el equipo móvil del

usuario con la finalidad de realizar llamadas así como recibirlas, y además, obtener acceso a

otros servicios que tenga registrado. La MS permite recibir servicios de voz y de datos, entre los

disponibles, se encuentra el Servicio General de Paquetes por Radio (GPRS) usando una

transferencia de datos IP o X.25 a velocidades de hasta 115 kbps.

Una Estación Base (BTS), de acuerdo a su rango de alcance, define el área ocupada de la célula

dentro del área de cobertura en la zona donde esta ubicada. Básicamente se trata de un

dispositivo transceptor, cuya función es proveer la conectividad entre la red y la estación móvil a

través de la interfaz de radio Um. El tamaño de la celda formada por la BTS es inversamente

proporcional a la densidad de población que exista en la zona y puede tener un rango desde

200m hasta 30 km aproximadamente. El Controlador de Estaciones Base (BSC) puede

controlar a una o varias BTS con el fin de proveer de funciones de operación y

telecomunicaciones como el manejo de las llamadas cuando atraviesan más de una celda, la

11

Figura 2.2: Arquitectura de una red GSM

Page 24: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Antecedentes Teóricos

configuración de los canales de radio y la conmutación entre frecuencias también conocido como

frequency hopping. Entre una o más BTS y el BSC, se forma el BSS el cual utiliza la interfaz A-

bis para formar esta conexión. Un elemento importante que se considera dentro del BSS o como

parte del MSC es la Unidad de Adaptación y Rango de Trans-codificación (TRAU) que sirve

para agregarle eficiencia al uso de las frecuencias realizando una compresión de datos con el fin

de tener un buen número de llamadas en cierto ancho de banda.

El conmutador MSC está basado en el diseño de un ISDN o un PSTN adaptado para brindar

funcionalidad extra para redes celulares, como registro, autenticación, ruteo de llamadas,

transferencia inter-celdas, entre otros. El MSC se encarga de conectar a la red de radio-teléfonos

a la red de teléfonos pública; además, da acceso a la base de datos de la red y al Centro de

Autenticación (AuC) el cual verifica los permisos de acceso del suscriptor.

Dentro de la red GSM también existe otro sub-centro llamado Registro de Localización de

usuarios Locales (HLR) el cual es una base de datos que almacena la información

administrativa de los suscriptores, por cada red GSM debe de existir como mínimo una HLR. El

Registro de Localización de usuarios Visitantes (VLR) fue ideada con el fin de evitar la

sobrecarga de información en el HLR; el VLR también contiene una base de datos con

información de los suscriptores y solo cuando el suscriptor se encuentra en otra área de cobertura

ajena a su área local, cuando el suscriptor abandona la red, entonces el HLR hace una petición

para borrar la información del suscriptor visitante del VLR. El área del VLR abarca la zona

cubierta por las BTS y su respectivo MSC para el cual el VLR provee servicios. El Registro de

Localización de usarios locales, el Registro de Localización de usuario Visitantes y el Centro de

Conmutación y servicios Móviles proveen el direccionamiento de las llamadas así como las

capacidades de roaming de GSM.

2.2. Servicio General de Paquetes por Radio (GPRS)

GPRS es un servicio de intercambio de datos en forma de paquetes por radio que aparece en la

especificación de la Fase 2+ de los servicios de GSM. Los usuarios TDMA también cuentan con

el servicio GPRS. Su aparición ocurre entre los años de 1999 y 2000 usando la misma

infraestructura de la red GSM ya existente; las soluciones ofrecidas por este nuevo servicio

12

Page 25: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Antecedentes Teóricos

marcó un paso más hacia las redes de tercera generación, también llamadas 3G, cuyo mayor

atractivo son las velocidades de transferencia de datos y la capacidad para transmitir video en

tiempo real.

Aunque el enfoque de GPRS era hacia las empresas, los servicios se han extendido hacia

usuarios en general. La tendencia hacia los dispositivos conectados a la red de Internet cada vez

parece ser marcada por los dispositivos móviles, sobrepasando a las computadoras personales

que han estado presentes desde antes.

GPRS permite acceso a los servicios de Internet con una tasa de transmisión de hasta 115 kbps

usando hasta ocho canales de radio los cuales son asignados a un usuario o compartido por varios

usuarios. La aceptación de este sistema ha hecho que cuente con una cobertura casi total a nivel

mundial, de esta forma los usuarios pueden tener acceso a su información en casi cualquier lugar.

Otra ventaja de este servicio es que la conexión de los usuarios GPRS con la red es de manera

permanente de modo que el acceso a la información sea instantánea, y así, aumentar su

productividad.

Para implementar el servicio GPRS en la red de GSM no es necesario realizar una inversión muy

grande para las compañías que proveen de estos servicios ya que GPRS fue diseñado para

coexistir con la Red Móvil Pública Terrestre GSM (PLMN). Esto significa que GPRS puede

convivir con los servicios de paquetes de datos ya existentes, incluso los componentes del

Servicio de Mensajes Cortos (SMS) pueden trabajar con GPRS de forma que permita realizar el

envío de SMS a través de GPRS.

Con la introducción de GPRS y el Protocolo de Internet (IP) a las redes móviles, los usuarios

pueden disfrutar mayor rapidez y tasas de transmisión de datos; además, GPRS permite realizar

llamadas de datos y de voz simultáneamente. Los usuarios que reciben estos servicios tienen la

capacidad de estar conectados siempre a Internet de tal forma que puedan enviar correos

electrónicos con archivos adjuntos grandes, contar con el servicio de oficina móvil, navegar por

Internet de manera rápida y telemetría.

Como se mencionó, la implementación de GPRS en los sistemas de GSM no implican cambios

13

Page 26: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Antecedentes Teóricos

muy drásticos en la red existente; para tal fin, se introducen dos nuevos elementos en la red y

modificaciones mínimas en los componentes existentes. El Servidor del Nodo de Soporte

GPRS (SGSN) y el Puerta de Enlace del Nodo de Soporte GPRS (GGSN) son los

componentes adicionales necesarios para agregar el servicio GPRS a la red GSM.

El SGSN fundamentalmente se encarga de rastrear la posición del usuario GPRS dentro de la

red, de esta manera el SGSN debe de ser capaz de almacenar información del usuario, el estado

del móvil, la identidad del equipo móvil, la información de la celda dentro de la que se encuentra

el usuario y el número del VLR que sirve a la estación móvil.

La GGSN como su nombre lo indica, sirve de puerta de enlace entre la red GPRS y otras redes

de paquetes de datos, como el Internet por ejemplo. Para cada red existe un Nombre del Punto de

Acceso (APN) que sirve al usuario de la red GPRS para enlazarlo, y de esa manera, intercambiar

paquetes de datos con la red de destino.

El servicio GSM/GPRS no es el único servicio que ofrece voz y datos en el mercado, existen

otros competidores proveedores de redes WAN, de los cuales se enuncian algunos a

continuación:

● Líneas Telefónicas usando módems. El acceso es limitado a zonas donde existan

conectores de teléfono, la tasa de transmisión de datos alcanzada es de 56 kbps y la

conexión se realiza por marcado, además se cobra por la duración de la conexión.

● Paquetes de Datos Celular Digital (CDPD). Esta tecnología ofrece tasas de transmisión

de hasta 19.2 kbps, el costo de implementación es más alto que GPRS, está diseñado para

implementarse sobre los servicios celulares analógicos existentes; es confiable cuando

hay pocas llamadas analógicas pero pueden haber pérdidas de datos cuando el volumen

de llamadas es grande.

● Acceso Múltiple por División de Código (CDMA). A diferencia de GSM/GPRS, CDMA

no asigna un canal específico al usuario, sino todo el espectro disponible, las velocidades

son muy parecidas a las ofrecidas por GPRS, pero su limitada cobertura hace que este

sistema no ofrezca el mismo roaming que su contraparte de origen europeo.

● Datos Conmutados por Circuitos de Alta Velocidad (HSCSD). Esta tecnología ofrece

14

Page 27: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Antecedentes Teóricos

velocidades de hasta cuatro veces 14.4 kbps. Este servicio no ofrece la característica de

conexión permanente de GPRS por lo que es necesario estableces un nuevo enlace con el

usuario cada vez que desee enviar o recibir datos; el servicio de cobrado por minutos y

por canales usados.

2.3. Protocolo de Datagrama de Usuario (UDP)

La arquitectura del Internet está compuesta por tres grupos de servicios. El primero es la IP que

es un servicio de entrega, le sigue la capa de transporte que utiliza el servicio IP y por último en

el nivel más alto esta la capa de aplicación. De esta manera, la capa física/enlace forma un

paquete de datos con el encabezado y el mensaje que se quiere enviar. La capa de transporte

pone, entonces, su mensaje en el campo de datos del IP. De la misma forma, la capa de

aplicación utiliza la sección de datos de la capa de transporte para colocar sus datos.

En teoría, al tener un diseño basado en capas, es posible realizar modificaciones o cambiar la

tecnología en cada capa sin afectar otras; la realidad es que durante la implementación del

Internet no se estableció independencia completa entre cada capa. En la Figura 2.3 se muestran

los protocolos utilizados en Internet así como sus respectivas capas.

En teoría cualquier protocolo de la capa de aplicación puede funcionar con el protocolo UDP y

TCP, ambos se encuentran en la capa de transporte y su distinción reside en la confiabilidad de

15

Figura 2.3: Internet y sus protocolos

Page 28: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Antecedentes Teóricos

cada uno, de modo que los requerimientos de confiabilidad de la capa de aplicación es el factor

principal para elegir entre un protocolo u otro. UDP es menos confiable que TCP al enviar varios

paquetes en secuencia debido a que no se puede asegurar que todos llegarán a su destino. A

través del encabezado del IP se puede identificar el protocolo que se utilizará. Hay aplicaciones

que funcionan igualmente con UDP y TCP, aunque también existen aplicaciones que solo podrán

utilizar un protocolo u otro.

El protocolo UDP es simple, eficiente e ideal para aplicaciones como TFTP y DNS. Básicamente

la dirección IP es usada para direccionar un datagrama a una máquina en particular, en el

encabezado del UDP va contenido un número correspondiente al puerto de destino que sirve para

enviar el datagrama UDP a la cola de un proceso dentro de la máquina; además también existe un

campo que contiene al puerto remitente que puede ser usado por el proceso receptor para

responder al datagrama del usuario. El formato del datagrama UDP se muestra a continuación en

la Figura 2.4.

Los puertos remitente y destino se utilizan para definir el punto final del envio de mensajes UDP;

si no se usa, el puerto remitente debe ser cero. La longitud de mensaje sirve para indicar el

número de octetos que contiene el datagrama, el valor mínimo que puede contener es 8 ya que es

el número de octetos que comprende el encabezado (puerto remitente, puerto destino, longitud de

mensaje y checksum). El campo de checksum es opcional, si no es usado debe contener un cero;

como el protocolo de IP solo protege su encabezado a través de su checksum, UDP provee

integridad de sus datos al tener su propio checksum.

16

Figura 2.4: Paquete de datos UDP

Page 29: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

3. Descripción del sistemaEn el trabajo presentado por R. Herrera [13] se muestra el desarrollo de un sistema de rastreo y

control de unidades remotas móviles. En este sistema se hace uso de un módem GSM/GPS

Starlert ST-1 para establecer comunicación con la red celular GSM y por medio del sistema

GPRS enviá paquetes UDP a un servidor que contiene programas de comunicación, seguimiento

y almacenamiento. Este mismo sistema es retomado en el trabajo de tesis de S. Casillas [14] en

el cual se añade una tarjeta de adquisición de datos NI USB-6009 de National Instruments

conectada a una computadora personal con el software LabView que a su vez se comunica con el

Starlert ST-1 mediante el estándar RS-232, con el objeto de medir señales de un dispositivo

electrocardiograma y que éstas puedan ser transmitidas al servidor antes mencionado como se

muestra en la Figura 3.1.

En la industria existen diversos procesos que pueden ser monitoreados por un sistema similar al

anteriormente mencionado. En el caso de este proyecto, se enfoca en la medición de temperatura,

presión y nivel de solución dentro de un tanque bulk-mix en el cual se hace una mezcla de

componentes químicos que después de varios procesos industriales, pasan a formar un lente

óptico que cumple con ciertas especificaciones. Dichos procesos son realizados dentro de una

empresa llamada Carl Zeiss.

Dentro de este sistema se sustituye el uso de la tarjeta de adquisición de datos y la computadora

personal con un dispositivo microcontrolador de Freescale MC9S08QE128 el cual se programa

con la tarjeta de desarrollo DEMOQE128 y con el software de desarrollo CodeWarrior Ver.6.0.

El sensor de temperatura es muestreado por el convertidor analógico-digital contenido en el

17

Figura 3.1: Transmisión de datos al servidor

Page 30: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Descripción del sistema

microcontrolador. Una vez procesados los datos, se envían a través del Puerto Serial de

Comunicaciones (SCI) siguiendo el estándar RS-232 para interfazarse con el módem Starlert

ST-1 (Figura 3.2). El proceso de envío de datos a través del Internet hacia el servidor es el mismo

que se implementó en el sistema descrito anteriormente.

Una vez que el sistema de la Figura 3.2 sea capaz de enviar datos al Internet, el servidor que se

encuentra en el laboratorio de Sistemas Inmersos del CITEDI será el encargado de recibir toda la

información. El servidor HTTP Apache 2.2.0 se encuentra actualmente ejecutándose en una

computadora con Fedora 9 que es una distribución de Linux basada en Red Hat. El servidor

contiene una base de datos que puede ser accedida y manipulada con SQL. Cuando un paquete

de datos UDP nuevo llega al servidor, hay un proceso que se encarga de recibirlo y colocarlo en

una cola temporal para que otro proceso lo tome, verifique que la información esté correcta para

finalmente depositarlo en la base de datos. En la verificación de la información, el mismo

proceso se encarga de generar y escribir a un archivo tipo bitácora llamado net.log donde coloca

el dato llegado junto con información adicional como la fecha y hora de llegada. El Applet que se

ejecute desde el servidor puede utilizar la información directamente de la base de datos en el

servidor o a través del registro generado.

3.1. Características de los dispositivos

El sistema se divide en varias etapas las cuales son realizadas por diferentes sub-sistemas. La

adquisición comienza con el sensor de temperatura LM-35 que se encuentra a la entrada del

convertidor analógico digital del microcontrolador MCF51QE128 el cual lleva a cabo cierto

procesamiento para más adelante enviar los datos obtenidos a través de la interfaz RS-232 hacia

el módem GPS/GSM Starlert ST-1. Las características más importantes se resaltan a

continuación.

18

Figura 3.2: DEMOQE128 y Starlert ST-1

Page 31: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Descripción del sistema

3.1.1. Sensor de Temperatura LM-35

El LM-35 es un sensor de temperatura de precisión cuya salida en voltaje es directamente

proporcional a una temperatura en grados centigrados. No es necesario calibración externa para

proveer una precisión de ±¼ ºC a temperatura dentro de una habitación y ±¾ ºC en un rango de

temperaturas de –55 a +150 ºC, el sensor LM-35 nos da a la salida un factor lineal de + 10.0

Vm/ºC y opera en el rango de 4 a 30 volts. Para más detalles consulte el Apéndice D.

3.1.2. Starlert ST-1

El módulo Starlert ST-1 es un dispositivo GPS/GSM de rastreo desarrollado para aplicaciones

máquina a máquina (M2M) las cuales proveen soluciones de bajo costo para el rastreo y

monitoreo de bienes en zonas amplias. El ST-1 está basado en la plataforma Siemens MC55/56

y además contiene un chipset GPS/A-GPS Marlin y dos antenas internas omnidireccionales que

sirven para conectarse a las redes GSM/GPRS y GPS. Las bandas GSM/GPRS en las que

funciona son 900/1800/1900 y 850/1800/1900. Admite los protocolos UDP y TCP/IP de

comunicación a través del Internet. Algunas características del dispositivo son las siguientes:

● Conector de dos pines de alimentación de 11 a 30 VDC.

● Interfaz RS-232 de 6 pines.

● Conector GPIO de 10 pines.

● Interfaz SIM.

● Compartimiento para batería.

El firmware del Starlert ST-1 esta dividido en tres bloques de software :

● El bootloader y self-test también conocido como ArcFlash.

● El bloque referido como ArcBase que se encarga de controlar las funciones del hardware

como el CPU, módem GPS, entre otros.

● La capa de de aplicación también llamada AVL Aplication la cual puede ser configurada

utilizando los comandos GP.

19

Page 32: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Descripción del sistema

3.1.3. Microcontrolador Freescale MCF51QE128

El microcontrolador MCF51QE128 de Freescale es un microcontrolador de 32 bits de bajo costo

y bajo consumo de energía, utiliza el núcleo V1 ColdFire y puede alcanzar hasta 50 MHz en

ciclos de reloj de CPU. Es utilizado en aplicaciones donde el ahorro de energía y el alto

desempeño sean especificaciones requeridas. Algunas características del microcontrolador

(Figura 3.3) se mencionan a continuación:

● Hasta 50 MHz ColdFire V1 CPU arriba de 2.4V, 40 MHz CPU con más de 2.1V y 20

MHz con 1.8V.

● Su desempeño es de 0.91 Dhrystone 2.1 MIPS por MHz corriendo desde la RAM interna

(0.76 DMIPS/MHz desde la memoria flash).

● Memoria On-Chip

● Dos modos stop con bajo consumo de energía y un modo wait con consumo reducido de

energía.

● Típicamente le toma 6 μs recuperarse de los modos stop.

● Reset del watch dog.

● Detector de voltajes bajos.

● Detector de código de operación y dirección ilegal.

● Convertidor A/D de 24 canales y 12 bits de resolución.

● Dos comparadores analógicos.

● Dos puertos seriales con full-duplex NRZ.

● Dos interfaces SPI con full-duplex.

● Dos interfaces I2C que puede alcanzar una tasa de 100 kbps.

● Un temporizador de 6 canales y dos de 3 canales con input capture, output compare en

cada canal.

● Contador de tiempo real de 8 bits con prescalador (prescaler) decimal y binario.

● 70 E/S de propósito general, 16 interrupciones de teclado y 16 bits de E/S rápidos de

propósito general conectado al bus local del CPU de alta velocidad.

20

Page 33: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Descripción del sistema

Cabe mencionar que Freescale ofrece una tarjeta de desarrollo de bajo costo llamada

DEMOQE128 que sirve para programar y depurar los microcontroladores MCF51QE128 y

MC9S08QE128 ya que ofrecen compatibilidad en terminales y periféricos con esta tarjeta se

puede intercambiar fácilmente de un microcontrolador a otro. La tarjeta de desarrollo permite

que la programación del microcontrolador se pueda realizar mediante un cable USB además de

utilizarlo como fuente de voltaje. Entre otras características, el DEMOQE128 como el de la

Figura 3.4 tiene:

● Puerto serial RS232 con conector DB9.

● Switch de encendido y apagado con LED indicador.

● Botón de Reset y LED indicador con habilitador.

● Circuitería para un oscilador externo.

● Acelerómetro de 3 ejes con habilitador.

● 8 LED para usuario.

21

Figura 3.3: Microcontrolador Flexis 32-bit ColdFire

Page 34: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Descripción del sistema

● 4 botones de presión para usuario.

● 1 zumbador con habilitador.

● Potenciómetro de 10 KΩ.

● Dimensiones: 3.5” x 4”.

● Entrada de alimentación:

○ Cable USB: 5VDC, 500 mA.

○ Conector de DC: conector de 2.5/5.5mm tipo barril, 5VDC a 12 VDC.

○ Dos baterías tipo AAA.

22

Figura 3.4: DEMOQE128 [12]

Page 35: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

4. Configuración y Programación del microcontrolador ColdFireEl microcontrolador MCF51QE128 es parte de la familia QE de microcontroladores de Freescale

que se caracterizan por su bajo costo, bajo consumo de potencia y alto desempeño; además, junto

con las familias de microcontroladores JM y AC forman parte de la serie Flexis la cual ofrece

microcontroladores de 8 bits y 32 bits compatibles en pines, periféricos y herramientas. Esto

significa que las aplicaciones desarrolladas para el microcontrolador de 8 bits S08QE128 pueden

ser totalmente migradas al microcontrolador de 32 bits MCF51QE128 con el fin de agregar

mayor velocidad y desempeño.

El MCF51QE128 utiliza el núcleo mejorado V1 ColdFire que es una versión simplificada del V2

ColdFire cuya arquitectura está basada en la M68000 de Motorola. El reloj del CPU para este

microcontrolador puede alcanzar los 50.33MHz y sus periféricos operan hasta 25.165MHz.

4.1. Arquitectura V1 ColdFire

El núcleo del ColdFire tiene como principal característica su organización formada por dos

bloques independientes de segmentos separados por un buffer de instrucciones. El primer bloque

es el instruction fetch pipeline (IFP) que sirve para pre-cargar instrucciones, las cuales son

pasadas al operand execution pipeline (OEP) que se encarga de decodificar las instrucciones,

traer al operando y ejecutar la función requerida. El buffer que separa los dos segmentos sirve

como una FIFO, lo cual facilita al IFP traer instrucciones antes de ser usadas por el OEP y de

este modo minimizar el tiempo de espera de instrucciones.

Las etapas de los segmentos del V1 ColdFire, que se muestran en la Figura 4.1, son las

siguientes:

● IFP de dos etapas con un buffer de instrucciones opcional:

○ Generador de dirección de instrucción (IAG)

○ Ciclo de pre-carga de instrucción (IC)

○ Buffer de Instrucciones (IB)

● OEP de dos etapas:

23

Page 36: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

○ Decodifica y selecciona / Ciclo de pre-carga del Operando (DSOC)

○ Generador de Direcciones / Ciclo de Ejecución (AGEX)

El ColdFire cuenta con dos modelos de programación: el usuario y el supervisor. El modo de

programación es elegido a través del bit S del Registro de Estado del procesador.

El modelo de usuario esta basado en la arquitectura de la familia de procesadores M68000 y

contiene los siguientes registros:

● 16 Registros de propósito general de 32 bits (D0 – D7, A0 – A7).

○ De los cuales los primeros son conocidos como los registros de datos los cuales

pueden ser usados para operaciones de bit, byte, una palabra y una palabra larga,

además también son usados como índices para el cálculo direcciones efectivas. Los

registros de direcciones son usados como punteros a la pila, registros índices o

registros de base de direcciones. También pueden ser usados para realizar operaciones

de almacenamiento y operaciones de palabra corta y larga. El registro A7 funciona

como puntero a la pila durante llamadas a subrutinas y manejo de excepciones.

● Registro Contador de Programa (PC).

○ Que contiene la dirección de la instrucción en ejecución y el procesador

24

Figura 4.1: Segmentos del V1 ColdFire [5]

Page 37: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

automáticamente incrementa el contenido de este registro.

● Registro de Código de Condiciones (CCR).

○ Está compuesto por los 5 bits más bajos de Registro de Estado, lo cual hace que esta

porción del registro sea la única disponible en este modo de programación. Este

registro es afectado por algunas instrucciones de números enteros y el estado de este

registro ayuda a algunas instrucciones de control para realizar sus funciones de

control y flujo de programa.

● Registro Puntero a la Pila del Usuario/Supervisor (A7 y OTHER_A7).

○ ColdFire soporta dos registros punteros a pila de 32 bits, solo que la implementación

en hardware de ambos registros no identifica a un registro como Puntero a la Pila del

Supervisor (SSP) y Puntero a la Pila del Usuario (USP), en vez de eso, el hardware

usa un registro de 32 bits como el A7 activo y el otro como OTHER_A7.

El modelo de programación de supervisor es usado para funciones de sistemas operativos. Los

accesos que afectan las características de control del ColdFire deben ser efectuados en el modo

de supervisor. El modo supervisor comprende los mismos registros del modo de usuario junto

con los que a continuación se describen:

● Registro de Estado (SR) de 16 bits.

○ Como se mencionó antes, en modo usuario solo se puede acceder a los 5 bits

correspondientes del CCR, en modo supervisor, se tiene control de todos el registro

que adicionalmente contiene la máscara de prioridad de interrupciones así como otros

bits de control.

● Registro de base de vector (VBR) de 32 bits.

○ Este registro contiene la dirección base del vector de excepciones en la memoria. El

VBR puede, también, trasladar al vector de excepciones a otra localidad diferente a la

pre-definida en la memoria.

● Registro de Configuración del CPU (CPUCR) de 32 bits.

○ Este registro provee configuraciones del modo de supervisor para la funcionalidad de

un núcleo específico.

25

Page 38: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

4.1.1. Modos de Direccionamiento

El núcleo V1 ColdFire cuenta con 12 modos de direccionamiento y se listan a continuación:

● Directo

● Indirecto

● Indirecto con pos-incremento

● Indirecto con pre-incremento

● Indirecto con desplazamiento

● Indirecto con índice escalado y desplazamiento

● Indirecto al Contador de Programa con desplazamiento

● Indirecto al Contador de Programa con índice escalado y desplazamiento

● Direccionamiento absoluto corto

● Direccionamiento absoluto largo

● Inmediato de Byte y una palabra

● Inmediato de entero largo

4.1.2. Procesamiento de Excepciones

El procesamiento de excepciones está definido como condiciones detectadas por el procesador

que provocan que la instrucción en proceso sea interrumpida debido al programa o un error de

sistema, como una llamada de programa, una petición de interrupción o depuración de programa.

4.2. Programación del microcontrolador

Con el fin de realizar las funciones deseadas con el microcontrolador, se realiza la programación

de algunos de sus periféricos como se verá a continuación. Para la programación del

microcontrolador se utiliza el software Freescale CodeWarrior del cual también se mencionan

algunas de sus características.

4.2.1. Convertidor Analógico Digital

Es comúnmente sabido que los convertidores analógico digital (ADC) son usados en

aplicaciones donde es necesario realizar algún tipo de procesamiento de manera digital.

Básicamente la entrada de un ADC esta conectada con una fuente acondicionada de tal forma

cumpla con los requerimientos del ADC, esta señal analógica, de acuerdo al rango de voltajes del

26

Page 39: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

ADC, tendrá un equivalente digital y dependiendo de la resolución del ADC, será la precisión

que obtendremos de los datos adquiridos a través del ADC. Se pueden clasificar los ADC de

acuerdo a la técnica de conversiones que realizan de la siguiente forma: aproximaciones

sucesivas, escalera, delta-sigma, entre otros.

Característica Condiciones Sím Mín Típ1 Máx Unidad

Voltaje de Alimentación Absoluto VDDAD 1.8 -- 3.6 VDelta a VDD(VDD - VDDAD) ΔVDDAD -100 0 +100 mV

Voltaje de Tierra Delta a VSS(VSS - VSSAD) ΔVSSAD -100 0 +100 mVVoltaje de Referencia Alto VREFH 1.8 VDDAD VDDAD VVoltaje de Referencia Bajo VREFL VSSAD VSSAD VSSAD VVoltaje de Entrada VADIN VREFL -- VREFL VCapacitancia de Entrada CADIN -- 4.5 5.5 pFResistencia de Entrada RADIN -- 5 7 kΩ

Resistencia de la fuente analógica

Modo 12 bits fADCK > 4 Mhz fADCK < 4 MHz

RAS

----

----

25

kΩModo 10 bits fADCK > 4 Mhz fADCK < 4 MHz

----

----

510

Modo 8 bits (Cualquier fADCK

válida) -- -- 10

Frecuencia de reloj de conversión

Alta velocidad (ADLPC=0)fADCK

0.4 -- 8.0MHz

Baja potencia (ADLPC=1) 0.4 -- 4.01 Valores típicos asume VDDAD = 3.0V, Temp = 25C, fADCK = 1.0MHz a menos que se indique lo contrario.Nota: VDD y VSS corresponden al voltaje de alimentación y de la tierra del microcontrolador respectivamente.

Tabla 4.1 – Condiciones de operación del ADC.

El sistema de monitoreo está basado en la adquisición de datos, para ésto, el MCF51QE128 tiene

entre sus periféricos un módulo convertidor analógico digital con el cual se pueden tomar

muestras de una señal analógica, dichas muestras son procesadas en el microcontrolador para ser

enviadas por el puerto serial. Entre las características más importantes del ADC está su algoritmo

de aproximaciones sucesivas con 12 bits de resolución, 28 entradas analógicas, un selector de

longitud de datos de salida (8, 10 y 12 bits), conversión simple o continua, interrupción y

bandera de conversión completa, disparador asíncrono por hardware seleccionable y

comparación automática con interrupción para mayor que, menor que o igual que algún valor

programado. En la Tabla 4.1, se muestran algunas condiciones de operación del ADC.

27

Page 40: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

Característica Condiciones Sím Mín Típ1 Máx UnidadCorriente de AlimentaciónADLPC = 1 ADLSMP = 1 ADCO = 1

IDDAD -- 120 -- μA

Corriente de AlimentaciónADLPC = 1ADLSMP = 0ADCO = 1

IDDAD -- 202 -- μA

Corriente de AlimentaciónADLPC = 0ADLSMP = 1ADCO = 1

IDDAD -- 288 -- μA

Corriente de AlimentaciónADLPC = 0ADLSMP = 0ADCO = 1

IDDAD -- 0.532 -- mA

Corriente de Alimentación Stop, Reset, Módulo apagado IDDAD -- 0.007 0.8 μA

Fuente de reloj asíncrona Alta velocidad (ADLPC=0) fADACK2 3.3 5 MHzBaja potencia (ADLPC=1) 1.5 2 3.3

Tiempo de conversión (incluye tADS)

Muestreo corto (ADLSMP=0)tADC

-- 20 -- Ciclos ADCK

(Ver [4])Muestreo largo (ADLSMP=1) -- 40 --

Tiempo de muestreoMuestreo corto (ADLSMP=0)

tADS-- 3.5 -- Ciclos

ADCK (Ver [4])Muestreo largo (ADLSMP=1) -- 23.5 --

Error de escala cero

Modo 12 bits

EZS

-- ±1.5 --

LSB2Modo 10 bits -- ±0.5 ±1.5

Modo 8 bits -- ±0.5 ±0.5

Error de escala completa

Modo 12 bits

EFS

-- ±1.0 --

LSB2Modo 10 bits -- ±0.5 ±1

Modo 8 bits -- ±0.5 ±0.5

Error de cuantización

Modo 12 bits

EQ

-- -1 a 0 --

LSB2Modo 10 bits -- -- ±0.5

Modo 8 bits -- -- ±0.51 Valores típicos asume VDDAD = 3.0V, Temp = 25C, fADCK = 1.0MHz a menos que se indique lo contrario.2 1 LSB = (VREFH – VREFL)/2N

Tabla 4.2 – Características eléctricas del ADC.

El módulo ADC requiere algunas conexiones externas como son los canales de entrada

analógicos, voltajes de referencia, fuente de volaje y tierra analógicas. Los voltajes de referencia

28

Page 41: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

alto y bajo están internamente conectados a la fuente de voltaje y tierra respectivamente, a su

vez, las señales de fuente de voltaje del ADC, están internamente conectada a la fuente de voltaje

del microcontrolador. Debido a que el MCF51QE128 está integrado en la tarjeta de desarrollo

DEMOQE128, el voltaje que se conecta a la alimentación es de 3V, lo cual significa que

cualquier señal que se requiera conectar al microcontrolador a través del ADC, su voltaje de

salida no debe de superar al voltaje de alimentación. En la Tabla 4.2, se pueden observar algunas

características eléctricas del ADC. Las especificaciones que cumple el convertidor para funcionar

dentro del sistema es la longitud de datos de 10 bits. Esta entre otras características son

modificables en los registros correspondientes al módulo ADC. Este módulo contiene dos

registros de estado y control, uno de configuración, dos de datos y dos de comparación.

El ADC utiliza dos disparadores para comenzar el proceso de conversión; uno por software, en el

cual al escribir un valor válido de canal en el Registro de Estado y Control 1 (Figura 4.3) en los 5

29

Figura 4.2: Diagrama a Bloques del Convertidor A/D [5]

Page 42: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

bits referentes al ADCH (Canal del ADC); el otro disparador que se puede elegir es por

hardware, y depende de la señal interna del módulo llamada ADHWT que se ilustra en la Figura

4.2, cuando se presenta un flanco de subida en esta señal el ADC comienza las conversiones,

para provocar este flanco de subida, se utiliza al módulo Real-Time Counter (RTC). Cuando el

registro contador y el registro de módulo igualan sus valores, el RTC puede generar la condición

recién descrita para iniciar conversiones en el ADC.

El la Figura 4.3 se ilustra el registro de estado y control 1, al escribir un valor diferente de 0x1F

en el campo ADCH, se elige uno de los canales de entrada del ADC, además, se aborta cualquier

conversión en proceso y se inicia una nueva conversión si el ADC se encontraba inactivo. Para

esta aplicación con este registro se habilita la interrupción de conversión completa, también se

selecciona el canal 0 de entrada y se deshabilita la conversión continua, de esta forma cada vez

que ocurra un disparo de conversión solo realice una conversión, el módulo RTC actúa como

disparador de conversión.

● COCO (Conversion Complete Flag): Si está deshabilitada la opción de comparación la

bandera se enciende cuando una conversión se termina, de otra forma, se enciende

cuando se completa la conversión y el resultado de la comparación es verdadero.

● AIEN (Interrupt Enable ): Habilita y deshabilita la interrupción de conversión completa.

● ADCO (Continuous Conversion Enable): Selecciona entre una conversión o varias

conversiones después del disparo de conversión.

● ADCH (Input Channel Select): Selector de uno de los canales de entrada.

El registro de estado y control 2 controla la función de comparación, el disparo de conversión y

conversión activa del módulo ADC. Para que el contador de tiempo real pueda disparar al ADC

para convertir se escribe sobre el bit que configura esta opción como se muestra en la Figura 4.4.

30

Figura 4.3: Registro de Estado y Control 1 (ADCSC1)

Page 43: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

● ADACT (Conversion Active): Indica si una conversión está en proceso.

● ADTRG (Conversion Trigger Select): Selecciona entre disparo por hardware o software.

● ACFE (Compare Function Enable): Habilita y deshabilita la función de comparación.

● ACFGT (Compare Function Greater Than Enable): Configura la función de comparación

para disparar cuando el resultado de la conversión de entrada es mayor que o igual al

valor comparado.

Con el registro de configuración del ADC se configura el uso de la configuración de bajo

consumo de energía y la opción de muestreado largo. La estructura de este registro se observa en

la Figura 4.5.

● ADLPC (Low-Power Configuration): Controla la velocidad y potencia del convertidor.

● ADIV (Clock Divide Select): Configura el divisor del reloj para general el reloj interno

del ADC.

● ADLSMP (Long Sample Time Configuration): Selecciona entre tiempo de muestreo largo

o corto.

● MODE (Conversión Mode Selection): Selecciona entre el formato de 12, 10 u 8 bits de

salida.

● ADICLK(Input Clock Select): Selecciona la fuente de reloj para generar el reloj interno

del ADC.

Ya que después de un reset el registro de configuración contiene en todos sus campos ceros

31

Figura 4.4: Registro de Estado y Control 2 (ADCSC2)

Figura 4.5: Registro de Configuración (ADCCFG)

Page 44: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

lógicos, los bits que permanecen sin cambiar su estado indican que para generar el reloj interno

del ADC se toma el reloj del bus y se divide entre uno. De esta forma la frecuencia del reloj

interno del ADC es de 12 Mhz.

4.3. Contador de Tiempo Real

Otro de los periféricos necesarios para el funcionamiento de todo el sistema es el Contador de

tiempo real o Real-Time Counter (RTC). Este módulo comprende un contador de 8 bits, un

comparador de 8 bits, varios prescaladores binarios y decimales, tres fuentes de reloj y una

interrupción periódica programable. Como se hizo mención anteriormente, la función de este

módulo es actuar como disparador para el convertidor analógico digital y este último comience a

realizar conversiones que se considera como la primera tarea del microcontrolador.

Las características generales del contador de tiempo real contienen:

● Contador de 8 bits

○ Módulo de 8 bits para límite de coincidencia

○ Interrupción en coincidencia periódica controlada por software.

● Tres fuentes de reloj seleccionables para el prescalador con valores binarios y decimales

seleccionables.

○ Oscilador interno de bajo consumo de potencia de 1 kHz.

○ Reloj Externo.

○ Reloj Interno de 32 kHz.

La configuración de este módulo es bastante simple ya que consiste en solo tres registros: el

registro de estado y control, el registro contador y el de módulo. Cuando ocurre un reset en el

microcontrolador el registro contador y el de módulo obtienen los valores de 0x00, en cuanto al

registro de estado y control, queda de tal forma que el oscilador interno de 1KHz este

seleccionado y el prescalador también adquiere un valor de 0x00 que es interpretado como

prescalador apagado.

Cuando el registro de estado y control se le asignan valores a sus bits de configuración, es

posible cambiar la fuente de reloj para el RTC así como el valor prescalador a uno como los que

32

Page 45: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

se muestran en la tabla 4.3.

RTCPS Reloj interno 1 kHz(RTCLKS = 00)

Reloj externo 1 Mhz(RTCLKS = 00)

Reloj interno 32 kHz(RTCLKS = 00)

Reloj interno 32 kHz (RTCLKS = 00)

0000 Apagado Apagado Apagado Apagado0001 8 ms 1.024 ms 250 μs 32 ms0010 32 ms 2.048 ms 1 ms 64 ms0011 64 ms 4.096 ms 2 ms 128 ms0100 128 ms 8.192 ms 4 ms 256 ms0101 256 ms 16.4 ms 8 ms 512 ms0110 512 ms 32.8 ms 16 ms 1.024 ms0111 1.024 s 65.5 ms 32 ms 2.048 ms1000 1 ms 1 ms 31.25 μs 31.25 ms1001 2 ms 2 ms 62.5 μs 62.5 ms1010 4 ms 5 ms 125 μs 156.25 ms1011 10 ms 10 ms 312.5 μs 312.5 ms1100 16 ms 20 ms 0.5 ms 0.625 s1101 0.1 s 50 ms 3.125 ms 1.5625 s1110 0.5 s 0.1 s 15.625 ms 3.125 s1111 1 s 0.2 s 31.25 ms 6.25 s

Tabla 4.3 – Periodo del Prescalador

El registro de módulo puede contener un valor entre 0x00 y 0xFF los cuales sirven para

comparar el conteo que se lleva en el registro contador y su taza de cambio dependerá del

prescalador seleccionado. Cuando el valor contenido en el registro de módulo coincide con el

valor contenido en el registro de conteo, entonces el RTC provoca una petición de interrupción

activando la bandera de interrupción en el registro de estado y control.

En este módulo solo se escribe al registro de estado y control como el que se muestra en la

Figura 4.6 primeramente para elegir al reloj interno de 1KHz y obtener un conteo con un periodo

de 0.1 segundos.

33

Figura 4.6: Registro de Estado y Control del Contador de Tiempo Real (RTCSC)

Page 46: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

● RTIF (Real-Time Interrupt Flag): Bandera que indica que el registro contador, tiene el

mismo valor que el registro de módulo.

● RTCLKS (Real-Time Clock Source Select): Selector de fuentes de reloj para el RTC.

● RTIE (Real-Time Interrupt Enable): Habilita y deshabilita la interrupción del RTIE.

● RTCPS (Real-Time Clock Prescaler Select): Selector de valores divisorios para la fuente

de reloj.

Una característica muy importante del contador de tiempo real es que el reloj interno de 1KHz

que puede ser programada como fuente de reloj, está disponible en el modo de bajo consumo de

energía, lo cual significa que el microcontrolador puede mantenerse en ese estado y regresar a su

estado normal cada vez que el RTC provoque una petición de interrupción.

4.3.1. Puerto Serie

Los datos que son digitalizados por el ADC son usados por la unidad de proceso para aplicarles

algún procesamiento y puedan ser utilizados para alguna causa, la cual es tan importante en un

sistema de monitoreo como el procesamiento mismo, es decir, estos datos necesitan ser

transferidos hacia otro dispositivo fuera del microcontrolador por diversas razones, las más

comunes suelen ser el despliegue de la información procesada o el almacenamiento de datos.

Efectivamente en la parte final del proceso que desarrolla esta aplicación tiene como objetivo la

visualización de datos y almacenamiento de los mismos en una base de datos. Ya que el sistema

embebido del que se hace uso en este proyecto no cuenta con las características necesarias para

establecer comunicación con el servidor Linux instalado en el laboratorio de Sistemas Inmersos,

como se explicó antes, se utiliza el Starlert ST – 1.

En la actualidad, existen diversos protocolos que son usados para conectar dos o más

dispositivos. Algunos pueden ser muy robustos y contar con perfiles dependiendo del tipo de

dispositivo con el que se realice la interfaz y otros tan simples como enviar cadenas de 8 bits en

una linea de datos con o sin sincronización. Ha habido mucho auge en los protocolos basados en

la serialización de datos ya que representan mayor ahorro de espacio físico aunque sacrifican un

poco la velocidad de transferencia en comparación a su contraparte: datos en paralelo. Aunque

este mismo auge ha hecho que las tazas de transferencia no sean mucho problema para los

protocolos seriales alcanzando velocidades muy altas. Ejemplos de estos protocolos seriales que

34

Page 47: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

pueden encontrarse implementados en microcontroladores fabricados por Freescale son Serial

Communications Interface (SCI), Serial Peripheral Interface (SPI), Inter-integrated Circuit

(I2C), Universal Serial Protocol (USB), entre otros.

A continuación se enuncian las características incluidas en el módulo de comunicaciones

serializadas SCI:

● Full-duplex con formato estándar sin regreso a cero (NRZ).

● Transmisor y receptor con habilitadores separados.

● Baud Rates programables.

● Operación de interrupciones o por poleo para:

○ Registro de transmisión vacío y transmisión completa.

○ Registro de datos del receptor lleno.

○ Receptor sobrescrito, error de paridad, error de ruido.

○ Receptor inactivo detectado.

○ Flanco activo en el pin del receptor.

○ Detector de caracter break con soporte a LIN.

● Generador de paridad.

● Longitud de caracter de 8 y 9 bits programable.

● Polaridad de salida del transmisor seleccionable.

En la Figura 3.2 se muestra el esquema de comunicaciones entre el DEMOQE128 y el módem

Starlert ST-1 y se observa la interfaz de comunicación serial RS-232. Para establecer una

comunicación satisfactoria, el periférico SCI del microcontrolador se debe configurar con las

características que de acuerdo al Starlert ST-1 – Getting Started se listan en la Tabla 4.4:

Característica ValorBaud Rate 57600Bits de datos 8Paridad ningunoBits de paro 1Control de flujo ninguno

Tabla 4.4 – Propiedades del puerto serial del ST-1.

35

Page 48: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

En la configuración de reloj que el MCF51QE128 tiene de forma predeterminada, no se puede

obtener este baud rate, para conseguirlo, es necesario establecer una nueva frecuencia de reloj

para los periféricos que está derivada de la frecuencia con la que trabaja todo el sistema. La

generación del reloj ocurre en el mismo chip y depende del módulo de Fuente de Reloj Interna

(ICS). La Fuente de Reloj Interna, como se muestra en la Figura 4.7, se encarga de proveer todas

las fuentes de reloj usadas en el microcontrolador. Este módulo contiene un Lazo Enganchado

por Frecuencia (FLL) el cual es controlable ya sea por una referencia de reloj interna o externa.

Se pueden elegir una de tres fuentes de reloj para que sirve como reloj del sistema del

microcontrolador: el reloj generado por el FLL, una fuente de reloj interna o una externa.

Con los valores predefinidos, el microcontrolador nos ofrece como fuente de reloj la salida del

FLL controlado con una referencia interna de reloj. Los rangos de frecuencia son elegidos con

tres Osciladores Digitalmente Controlados (DCO) que se encuentran internamente en el FLL.

Con estas características se obtiene una frecuencia de reloj del sistema de 16MHz y dividido

entre dos que es el valor seleccionado en uno de los registros de ICS (BDIV), entonces se obtiene

una frecuencia de bus de 4MHz. Modificando los registros de este módulo se pueden conseguir

12MHz de frecuencia de bus con la cual se logra alcanzar el baud rate especificado en la guía de

inicio del Starlert ST-1.

36

Figura 4.7: Distribución interna de la fuente de Reloj

Page 49: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

En la Figura 4.8 se observa el Registro de Control 1 del ICS con la nomenclatura de cada bit que

se detalla a continuación:

● CLKS (Clock Source Select): Selector de la fuente de reloj.

● RDIV (Reference Divider): La cantidad para dividir a la referencia de reloj externa.

● IREFS (Internal Reference Select): Selector de fuente de reloj para el FLL.

● IRCLKEN (Internal Reference Clock Enable): Habilita la referencia de reloj interna para

ser usada como señal ICSIRCLK (Internal Clock Source Internal Reference Clock).

● IREFSTEN (Internal Reference Stop Enable): Controla si la referencia de reloj interna

permanece habilitada cuando el ICS entra en modo stop.

Para este proyecto los únicos bits que deben estar activados son los que habilitan a la referencia

de reloj interna para controlar el FLL del microcontolador (IREFS y IRCLKEN). Además

CLKS[7:6] deben tener el valor de 00 para seleccionar al FLL como salida de reloj.

El Registro de Control 2 del ICS se muestra en la Figura 4.9.

● BDIV (Bus Frequency Divider): Selecciona la cantidad para dividir a la fuente de reloj

elegida por CLKS.

● RANGE (Frequency Range Select): Selecciona el rango de frecuencia del oscilador

externo.

● HGO (High Gain Oscilator Select): Controla el modo de operación del oscilador externo.

37

Figura 4.8: Registro de Control 1 del ICS (ICSC1)

Figura 4.9: Registro de Control 2 del ICS(ICSC2)

Page 50: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

● LP (Low Power Select): Controla si el FLL es deshabilitado en los modos bypass del

FLL.

● EREFS (External Reference Select): Selecciona la fuente para la referencia de reloj

externa.

● ERCLKEN (External Reference Enable): Habilita la referencia de reloj externa para ser

usada como señal ICSIRCLK (Internal Clock Source Internal Reference Clock).

● EREFSTEN (External Reference Stop Enable): Controla si la referencia de reloj externa

permanece habilitada cuando el ICS entra en modo stop.

Para este registro en los bits BDIV[7:6] se selecciona el divisor de reloj por 2 escribiendo 01 a

estos bits.

El rango de frecuencia del FLL del microcontrolador es controlado mediante el registro de estado

y control del ICS y se muestra a continuación, en la Figura 4.10

● DRST/DRS (DCO Range Status/Select): Selecciona el rango de frecuencia de la salida

del FLL.

● DMX32 (DCO Maximum Frequency with 32.768kHz Reference): Controla el rango de

frecuencia del DCO de forma que sea reducido a su frecuencia máxima con una

referencia de 32.768kHz.

● IREFST (Internal Reference Status): Indica al fuente actual de referencia de reloj.

● CLKST (Clock Mode Status): Indica el modo actual de reloj.

● OSCINT (OSC Initialization): Si es seleccionado la referencia externa del reloj, este bit

es puesto en nivel alto después de que haya sido completado los ciclos de inicialización

del reloj del oscilador externo.

● FTRIM (ICS Fine Trim): Controla el ajuste más pequeño de la frecuencia de reloj de la

referencia interna.

38

Figura 4.10: Registro de Estado y Control del ICS (ICSSC)

Page 51: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

Para este registro solo se actualizan los valores de DRS y DMX32 y siguiendo la tabla 4.5

obtenemos una frecuencia de 50MHz.

DRS DMX32 Rango de Referencia Factor del FLL Factor del DCO

00 0 31.25 – 39.0625 kHz 512 16 – 20 MHz1 32.768 kHz 608 19.92 MHz

010 31.25 – 39.0625 kHz 1024 32 – 40 MHz1 32.768 kHz 1216 39.85 MHz

100 31.25 – 39.0625 kHz 1536 48 – 60 MHz1 32.768 kHz 1824 59.77 MHz

11 ReservadoTabla 4.5 – Rango de Frecuencia del DCO

Manipulando los registros mencionados se puede obtener la frecuencia de bus de 12MHz y es

posible cumplir con los requerimientos mencionados para la comunicación satisfactoria del

microcontrolador y el Starlert ST-1.

El módulo Serial Communications Interface (SCI) es el que controla las características de

comunicación siguiendo el protocolo RS-232. Para su configuración, este módulo contiene tres

registros de control y uno para seleccionar el baud rate.

El registro de control 1 del SCI se muestra en la Figura 4.11 con la nomenclatura de cada bit.

● LOOPS (Loop Mode Select): Selecciona entre el modo loop-back (la salida del transmisor

es conectado internamente a la entrada del receptor) y el modo normal full-duplex de 2

pines.

● SCISWAI (SCI Stops in Wait Mode): Selecciona si el reloj del SCI continua en operación

o se congela mientras el microcontrolador esta en modo de espera.

39

Figura 4.11: Registro de Control 1 del puerto serie (SCIxC1)

Page 52: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

● RSRC (Receiver Source Select): Este pin solo sirve si LOOPS = 1 y determina si es usado

o no el pin RxD.

● M (9-Bit or 8-Bit Mode Select): Selecciona entre modo de 8 bits o 9 bits de datos.

● WAKE (Receiver Wakeup Method Select): Selecciona entre Idle-line wakeup y Address-

mark wakeup (para más detalles consulte el manual de referencia [4]).

● ILT (Idle Line Type Select): Selecciona si el contador de bits de caracter incativo

comienza después del bit de inicio o después del bit de parada.

● PE (Parity Enable): Habilita la generación y revisión del bit de paridad en hardware.

● PT (Parity Type): Selecciona entre paridad par y paridad impar.

En este registro solo interesa configurar el SCI en modo de 8 bits y con el bit de paridad

deshabilitado.

El registro mostrado en la Figura 4.12 es el registro de control 2 del SCI.

● TIE (Transmitter Interrupt Enable): Hablita la interrupción por hardware de TDRE

(Transmitter Data Register Empty Flag).

● TCIE (Transmission Complete Interrupt Enable): Habilita la interrupción por hardware

de TC (Transmission Complete Flag).

● RIE (Receiver Interrupt Enable): Habilita la interrupción por hardware de RDRF

(Receive Data Register Full Flag).

● ILIE (Idle Line Interrupt Enable): Habilita la interrupción por hardware de IDLE (Idle

Line Flag).

● TE (Transmitter Enable): Enciende o apaga el transmisor.

● RE (Receiver Enable): Enciende o apaga el receptor.

● RWU (Receiver Wakeup Control): Pone al receptor en standby a la espera de una

condición de wakeup.

40

Figura 4.12: Register de Control 2 del Puerto Serie (SCIxC2)

Page 53: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

● SBK (Send Break): Pone en cola un break character en la cadena de datos del transmisor.

Para efectuar el intercambio de datos entre el Starlert ST-1 y el microcontrolador, se deben

habilitar tanto el transmisor y el receptor en el DEMOQE128, así como la interrupción del

receptor cuando el registro de datos contiene un dato nuevo. En el registro de control 3

simplemente mantenemos desactivadas las demás interrupciones por hardware que pudiera

ocurrir en las condiciones descritas en los bits de este registro que se observa en la Figura 4.13.

● R8 (Ninth Data Bit for Receiver): Cuando es configurado el SCI para datos de 9 bits, R8

se considera como el noveno bit del dato recibido.

● T8 (Ninth Data Bit for Transmitter): Cuando es configurado el SCI para datos de 9 bits,

R8 se considera como el noveno bit del dato a transmitir.

● TXDIR (TxD Pin Direction in Single-Wire Mode): Cuando el SCI es configurado para

operar como half-duplex con un solo cable, este bit determina la dirección del dato al pin

TxD.

● TXINV (Transmit Data Inversion): Invierte la polaridad a los datos que se desean

transmitir.

● ORIE (Overrun Interrup Enable): Habilita la bandera de sobreescritura para generar

peticiones de interrupción por hardware.

● NEIE (Noise Error Interrupt Enable): Habilita la bandera de error de recepción por ruido

para generar peticiones de interrupción por hardware.

● FEIE (Framing Error Interrupt Enable): Habilita la bandera de error en la trama de bits

para generar peticiones de interrupción por hardware.

● PEIE (Parity Error Interrupt Enable): Habilita la bandera de error de paridad para

generar peticiones de interrupción por hardware.

A continuación se debe configurar el baud rate siguiendo la fórmula tomada del manual de

referencia del microcontrolador:

41

Figura 4.13: Registro de Control 3 del Puerto Serie (SCIxC3)

Page 54: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

El vector de bits SBR12:SBR0 se encuentran en dos registros del módulo SCI como se ilustra en

la Figura 4.14.

● LBKDIE (LIN Break Detect Interrupt Enable): Habilita la interrupción por hardware para

la bandera LBKDIF (para más detalles consulte el manual de referencia [4]).

● RXEDGIE (RxD Input Active Edge Interrupt Enable): Habilita la interrupción por

hardware para la bandera RXEDGIF (para más detalles consulte el manual de referencia

[4]).

● SBR (Baud Rate Modulo Divisor): Fija el módulo divisor para el generador de baud rate

del SCI.

Escribiendo a los bits SBR el valor hexadecimal 0x0E que equivale a 14 decimal se obtiene el

baud rate requerido por el módem Starlert ST-1:

Una vez que el baud rate ha sido configurado correctamente, entonces es posible enviar datos al

Starlert-ST1. Para lograr un envio de datos satisfactorio, primero se debe verificar que el registro

de datos del puerto serie este listo para un dato nuevo y que no haya ningún envio en proceso; el

dato que se requiera ser enviado a través del puerto serie, debe de almacenarse en el registro de

datos del SCI o SCI Data Register (SCIxD). El módulo SCI también cuenta con un registro de

corrimiento de transmisión, cuando el SCI esta configurado para enviar datos de 8 bits, el

42

Figura 4.14: Registro de Baud Rate del SCI. Arriba: SCIxBDH. Abajo: SCIxBDL

Page 55: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

registro de corrimiento contendrá un bit de inicio, los ocho bits de datos y un bit de paro. Cuando

el registro de corrimiento esta listo para transmitir un dato, transfiere el dato del registro SCIxD

de forma sincronizada con el baud rate predefinido en la configuración y con la bandera de

estado transmt data register empty (TDRE) en nivel lógico alto que indica que se puede escribir

datos al registro de transmisión SCIxD.

Toda la información adicional acerca de los periféricos del microcontrolador se pueden encontrar

en el manual de referencia del MCF51QE128 [4].

4.4. Estructura del Proyecto en Code Warrior

Freescale CodeWarrior es un ambiente de desarrollo integrado (IDE) que sirve para crear e

implementar diseños en los sistemas desarrollados por Freescale. Esta versión en particular está

diseñada para trabajar con microcontroladores Freescale basados en las arquitecturas RS08,

HC(S)08 y ColdFire V1. Existen también diferentes versiones de suites que dependiendo de las

herramientas que contenga, cambia el costo del software; para este proyecto se utilizó el Special

Suite gratuita incluido con el microcontrolador.

43

Figura 4.15: CodeWarrior para microcontroladores

Page 56: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

CodeWarrior, mostrado en la Figura 4.15, no solo permite usar su interfaz para escribir código

fuente en C/C++ y ensamblador; también ofrece la capacidad de depurar proyectos de manera

gráfica, visualizando el código desensamblado, datos en memoria y en los registros de propósito

específico y general. Entre las características más importantes de esta versión tenemos:

● Ensamblador ilimitado

● Compilador C limitado en tamaño de código objeto a 32KB para RS08/HC(S)08 y 64KB

para ColdFire V1. Para C++ limitado a 1KB.

● Inicialización de dispositivos para ensamblador y C.

● Processor Expert con Basic Beans.

● Visualización de datos / Estimulación E/S permitido para 1 componente con 3

instrumentos.

● Programador de la memoria Flash HIWAVE.

44

Figura 4.16: Código fuente implementado en

el microcontrolador.

Page 57: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

Existen algunos archivos que se agregan al generar el proyecto con el wizard que incluye el

CodeWarrior y sirven para inicializar el microcontrolador. Entre los archivos que más conciernen

en la creación de nuevo código está el archivo de cabecera MCF51QE128.h el cual contiene

todas las declaraciones de variables que en memoria corresponden a los registros de

configuración de todos los periféricos incluidos en el microcontrolador. La estructura que se

utilizó es la que se muestra en la Figura 4.16.

CodeWarrior también genera otro archivo por el cual el desarrollador suele empezar a escribir

código que es el main.c. Los demás archivos dentro de la carpeta de Sources (a excepción de

primitive.c, primitive.h y bithandler.h) corresponden a los periféricos usados del

microcontrolador. Se utiliza un archivo de código fuente C para cada periférico y a cada uno le

corresponde un archivo de cabecera H. Los archivos de cabecera con terminación .h que

corresponden a cada periférico utilizado, contiene varias re-definiciones de los registros internos

así como algunas constantes y los prototipos de las funciones que se encuentran definidas en los

archivos fuente .c.

bithandler.h contiene algunas macros que pueden ser de utilidad para asignar valores a registros

completos o a un solo bit de algún registro.

● BITSET(REGISTER, BIT) – Escribe un '1' lógico en el bit 'BIT' del registro

'REGISTER'.

● BITCLR(REGISTER, BIT) – Escribe un '0' lógico en el bit 'BIT' del registro

'REGISTER'.

● BITTOGGLE(REGISTER, BIT) – Cambia el estado actual del bit 'BIT' del registro

'REGISTER' a su estado opuesto.

● BITWRITE(REGISTER, MASK, F) – Escribe al registro 'REGISTER' una máscara de

bits 'MASK', todos '1' o '0' dependiendo del valor de 'F'.

● REGSET(REGISTER, MASK) – Pone en nivel alto los bits seleccionados con 'MASK'

del registro 'REGISTER'.

● REGCLR(REGISTER, MASK) – Pone en nivel bajo los bits seleccionados con 'MASK'

del registro 'REGISTER'.

● REGWRITE(REGISTER, MASK) – Escribe el valor 'MASK' al registro 'REGISTER'.

45

Page 58: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

adc.c actúa como manejador del convertidor analógico digital del MCF51QE128.

● adc_init – Esta función escribe a los registros del convertidor A/D los datos necesarios

para configurarlo de acuerdo a las características mostradas en la tabla 4.6:

Característica ValorReloj de Entrada Bus ClockDivisor de Reloj del ADC 8Resolución 10 bitsCanal Activo Canal 0Disparador de conversión Hardware

Tabla 4.6 – Configuración del ADC

Para este microcontrolador la señal ADHWT depende del Real-Time Counter, es decir, cuando es

seleccionado el disparador por hardware del ADC con el bit ADTRG del registro de status y

control 2 (ADCSC2), el ADC es disparado cada vez que el registro de conteo del Real-Time

Counter RTCCNT iguala al valor contenido en el registro del módulo RTCMOD.

● adc_isr – Subrutina que da servicio a la interrupción del Convertidor analógico digital:

○ Leer las muestras obtenidas que están contenidas en el registro de datos.

○ Para mostrar el dato en los 8 LED's del DEMOQE128 se desechan 2 bits menos

significativos y se guarda el resultado en los bits correspondientes de cada LED en los

puertos E y C.

○ La muestra leída se acumula en un acumulador.

○ Un contador de conversiones se incrementa.

○ Si el contador de conversiones alcanzó un número preestablecido

■ El acumulador se divide entre el número de conversiones para obtener su

promedio.

■ Se regresa el contador de conversiones a cero

■ Se deshabilita el convertidor A/D escribiendo un valor predefinido a los bits que

seleccionan el canal activo.

rtc.c sirve para configurar los registros del módulo contador de tiempo real.

46

Page 59: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

● rtc_init – Realiza la configuración inicial del Real-Time Counter para que éste provoque

interrupciones cada 100 ms.

serial.c configura y realiza las funciones de escritura y lectura al puerto serie del

microcontrolador.

● serial_init – Configura al puerto serie de tal forma que cumpla con lo requerido en la

Tabla 4.4.

● send – Se encarga de enviar mensajes a través por el pin TxD del puerto serie. La

variable de entrada es un apuntador hacia la cadena de datos que se enviará:

○ Mientras el buffer no apunte hacia el carácter de fin de cadena,

■ Mientras que el registro de datos no este listo para ser escrito,

● Espera.

■ Se escribe el carácter al que apunta la variable de entrada.

■ Mientras la transmisión no este completa,

● Espera.

■ Se incrementa el apuntador.

● receive – Los mensajes que llegan al pin TxD son almacenados en un buffer

preestablecido. Esta función es proveída con la dirección al primer elemento del buffer y

a partir de ahí empieza a guardar los datos que llegan al microcontrolador:

○ Hacer, mientras el contenido del elemento actual del buffer sea diferente a un salto de

línea:

■ Mientras no exista un dato disponible en el registro de datos del puerto serie,

entonces

● Espera.

■ Transfiere el caracter en el registro de datos a la dirección del buffer.

■ Incrementa el apuntador del buffer.

○ Guardar un fin de cadena en el buffer.

47

Page 60: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

● registro_RX – Interrupt Service Routine del puerto serie que se encarga de leer el octeto

recién llegado al microcontrolador y borra la bandera que indica que el registro de datos

contiene un dato nuevo.

cpu.c contiene funciones relacionadas al funcionamiento de todo el sistema.

● cpu_init – Esta subrutina escribe a los registros relacionados con el CPU y su fuente de

reloj de forma que el perro guardián queda deshabilitado así como el modo wait, el pin de

Reset queda habilitado y de la misma forma el modo stop queda habilitado para que al

hacer un llamado a la macro que pone al microcontrolador en algunos de los modos de

bajo consumo de energía, éste responda de la forma que debe. Esta función hace el

llamado a otras dos funciones: InternalClockSource_init() y activateBusClock ().

● InternalClockSource_init – Esta función asigna valores a los registros del módulo de

selección de la fuente de reloj interno del sistema que necesita ser modificada dado que,

como se explicó anteriormente, con los valores predefinidos la interfaz de

comunicaciones seriales no puede alcanzar la velocidad de 57600 bauds:

○ Se selecciona la fuente la salida del FLL como fuente de reloj y a su vez se selecciona

al reloj interno como fuente para el FLL.

○ El reloj seleccionado se divide entre 1.

○ Mientras la referencia interna de reloj no este seleccionada,

■ Espera ya que el microcontrolador necesita realizar una sincronía con las señales

al hacer un cambio de referencia lo cual puede tomar un tiempo.

○ Se modifica al DCO de modo que tenga un rango de frecuencias alto de 48 – 60 MHz.

○ Mientras el rango del DCO no haya cambiado a alto,

■ Espera.

● activateBusClock – Esta función hace uso de una de las características importantes del

microcontrolador que es la habilitación y deshabilitación de fuente de reloj del bus para

los periféricos a través de los dos registros asignados para esta propiedad, de modo que

solo los periféricos seleccionados en la entrada de esta función (cpu.h contiene los

nombres válidos de los periféricos) utilicen los recursos del microcontrolador ahorrando

48

Page 61: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

energía de la fuente de alimentación.

gpio.c tiene la sola función de usar los LEDs del DEMOQE128 que están conectados al puerto C

y al puerto D, entonces, solo modifica los registros de dirección y los bits correspondientes a los

LED's se configuran como salidas y después escribiendo valores altos a los bits de cada LED de

los registros de datos se apagan los LED's.

main.c es el código que contiene la rutina principal del microcontrolador y es donde manda a

llamar las funciones dentro de los demás archivos que se acaban de describir.

● main – Rutina principal del proyecto:

○ Llama a las rutinas de inicialización del CPU, del convertidor A/D, del contador de

tiempo real, de los puertos de E/S y del puerto serial.

○ Habilita las interrupciones de todo el sistema; al hacer esto, el contador de tiempo real

comienza a generar interrupciones

○ Hacer de manera indefinida lo siguiente:

■ Espera el mensaje del ST-1 que indique que se realizó una conexión satisfactoria

con la red GSM/GPRS.

■ Cuando se escribe a los bits de selección de canal del ADC el valor del canal

activo, entonces las interrupciones del contador de tiempo real le sirven al ADC

como disparador y empezar a convertir datos analógicos en digitales.

■ Mientras el ADC sigue habilitado:

● Espera hasta que en la rutina de servicio de interrupción del ADC vuelva a

deshabilitar al ADC.

■ Convierte el dato en la variable que contiene el dato promediado del ADC en un

valor ASCII.

■ Se envía a través del puerto serie el valor ASCII obtenido seguido de un retorno

de carro.

● volt2temp – De acuerdo con lo especificado en la hoja de datos del sensor de

temperatura LM-35, esta función utiliza un factor multiplicativo para realizar la

conversión de los datos recibidos en el puerto serie a un valor ASCII que represente la

49

Page 62: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Configuración y Programación del microcontrolador ColdFire

temperatura.

○ El dato que se proporciona a esta función es de tipo int, de esta forma, se realiza el

casting del dato al tipo double.

○ El dato se multiplica por el valor correspondiente al voltaje de un paso de conversión

del ADC, esto es:

○ Tomando en cuenta que por cada 10 mV de incremento corresponde a 1°C, entonces,

el dato obtenido de la multiplicación pasada se multiplica ahora por 100.

○ Se realiza otro casting pero ahora con el valor resultante y al tipo float.

○ Finalmente, se transforma el dato tipo float a un dato tipo ASCII con 3 decimales.

● wait_for_GPRS_connection – Esta función contiene un bucle infinito dentro del cual

recibe una cadena del puerto serie y posteriormente las compara con unas cadenas

establecidas dentro de la memoria del microcontrolador, cuando la cadena recibida

coincida con alguna de las cadenas que indican que se pueden enviar paquetes UDP a la

red GSM/GPRS, entonces se termina el loop y continua el programa principal.

● led_blink – Utiliza el retardo generado con el temporizador del microcontrolador entre

cada cambio de estado del LED seleccionado en la entrada de esta función, el número de

veces indicado también en la entrada de esta función. Esta subrutina sirve para visualizar

eventos ocurridos durante la ejecución del programa principal: conexión GSM/GPRS

confirmada, conexión fallida con red GSM/GPRS y envío de datos del puerto serie al

ST-1 completo.

En el Apéndice A se puede observar con mayor detalle el código generado.

50

Page 63: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

5. ResultadosCon el fin de lograr los objetivos propuestos en la Introducción de este trabajo, se hicieron una

serie de pruebas a todo el sistema, sin embargo, aún existen pruebas que se requieren realizar de

forma que el sistema tenga como resultado un prototipo que cumpla con las funciones descritas

en esta tesina, dichas pruebas se pueden realizar conforme se le dé continuidad al proyecto actual

tomando como referencia los puntos que se revisan en el apartado de Trabajo Futuro.

En el trabajo de Tesis de S. Casillas [14] se logró establecer la configuración y el funcionamiento

correcto con del módem transceptor conectado a través del puerto serie a una computadora

funcionando como Terminal Serial. Existe software que puede realizar la función de terminal,

como PuTTY, HyperTerminal o Starlert Admin que, además, también puede ser utilizado para

programar firmware nuevo cuando haya alguno disponible.

Las primeras pruebas consistieron en comprobar el funcionamiento del Starlert ST-1 antes de

interfazarlo con el dispositivo microcontrolador. Utilizamos la computadora de la Figura 5.1

funcionando como Terminal Serial para recibir todos las cadenas de caracteres ASCII que envía

el ST-1 desde que es alimentado hasta que se conecta a la red GSM/GPRS, y así enviar al

servidor mensajes en código ASCII que pueden ser introducidos desde el teclado de la Terminal.

El objetivo principal de dichas pruebas es detectar los eventos que deben transcurrir antes de

51

Figura 5.1: Computadora Personal y Starlert ST-1

Page 64: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Resultados

empezar a enviar cadenas de caracteres del microcontrolador al Starlert ST-1. Los eventos son

generados por el ST-1 cuando el GPS y otros elementos dentro del ST-1 detectan actividad. Un

ejemplo de evento puede ser el GPRS Registration True que se genera cuando un registro GPRS

esta disponible desde el módem, si se genera un evento GPRS Registration False significa que el

módem ha perdido su registro GPRS.

En las primeras pruebas de observación del comportamiento del Starlert ST-1, como se ilustra en

la Figura 5.1, se usa el PuTTY para identificar las siguientes cadenas como indicadores de que se

ha realizado conexión con la red GSM/GPRS:

<AVL> GPRS Event (00000001 00000000) - <AVL> GPRS Registration 1<AVL> GPRS Event (00000001 00000000) - <AVL> GSM Registration 1 (was 1)

Una vez leídas estas cadenas se pueden enviar paquetes de datos a través de la red hasta el

servidor. En el PuTTY, con el teclado, introducimos la cadena “Prueba 1” y el ST-1 regresó las

siguientes cadenas a manera de confirmación:

<AVL> Serial Data: 992008Prueba 1<AVL> Sending ... Length – 17 Buffer – 992008Prueba 1Done<AVL> UDP Message Sent – Waiting For Write Complete<AVL> GPRS Event (81001424 00000000) - <AVL> Write Complete

El servidor del cual se hizo una breve mención en el Capítulo 3, captura la información de

recepción de datos y son guardados al archivo net.log que es generado por el servidor. Para

accesar a este archivo volvemos a utilizar PuTTY ya que además de poder actuar como terminal

para el puerto serie, es posible realizar una conexión SSH con el servidor desde la computadora.

De acuerdo a la misma cadena “Prueba 1” que se envió, el archivo net.log muestra en su

contenido la siguiente información: Mar 23, 2009 9:56:46 PM UDPNetworkReceive runINFO: UDP packet received from: /200.95.162.54:45934 at 1224552959 milliseconds Mar 23, 2009 9:56:46 PM UDPNetworkReceive runINFO: 992008Prueba 1

De tal forma, podemos ver que el Starlert ST-1 realiza correctamente las funciones de captura y

envío de caracteres ASCII al servidor. Las cadenas de caracteres que envía el ST-1 hacia la

52

Page 65: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Resultados

terminal pueden utilizarse como indicadores para el microcontrolador, de modo que sea posible

identificar ciertos eventos que ocurren en el módulo transceptor. Las cadenas que se acaban de

mostrar son suficientes para conocer la información que necesitamos acerca del ST-1 ya que una

vez que el microcontrolador sea capaz de muestrear el voltaje de salida del LM-35, debe de

poder enviar dicha información a través del puerto serie pero solo cuando el ST-1 se conecte a la

red GSM/GPRS y configurado apropiadamente.

Antes de utilizar la información recién dada, primero fue necesario programar los periféricos que

se mencionaron en el Capítulo 4. Los periféricos se configuraron, primeramente, de manera

separada para comprobar el funcionamiento correcto de los mismos.

5.1. Programación del Convertidor Analógico Digital.

El inicio de conversiones del ADC depende de los flancos de subida en la señal ADHWT (ver

Figura 4.5) que son provocados por el RTC, así que primeramente, para comprobar el

funcionamiento del RTC, se realizó un programa que genera interrupciones cada segundo

escribiendo 1's y 0's lógicos al puerto que está interfazado con los LED's del DEMOQE128.

El convertidor analógico digital se programó para utilizarlo con una fuente de poder y así poder

simular la salida de voltaje del LM-35 con una relación de 10 mV/C y utilizando los LED's

incluidos en la tarjeta de desarrollo DEMOQE128 se observó la forma digital leída por el

convertidor. La siguiente prueba consistía en hacer que el ADC del microcontrolador tomara

muestras de la fuente de voltaje y presentarlas en los diodos LED's con una periodicidad de un

segundo por medio de las interrupciones generadas por el RTC. En la Figura 5.2 se puede

observar con detalle la prueba recién descrita, la computadora personal ejecuta el CodeWarrior,

que como ya se mencionó, se utiliza para programar y depurar el código implementado en el

microcontrolador, y para realizar dichas funciones, se tiene un cable USB conectado

directamente al microcontrolador. En la parte inferior de la tarjeta de desarrollo, se encuentra el

conector llamado MCU_PORT en el cual se tiene acceso a varios pines del microcontrolador, de

esta forma, la fuente se conecta al canal 0 del ADC del microcontrolador. Para esta prueba, el

módulo ADC del microcontrolador fue configurado con una resolución de 8 bits; si se toma en

cuenta que el voltaje de alimentación del microcontrolador es de 3.3 V, se tiene que por cada

53

Page 66: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Resultados

incremento en el valor hexadecimal contenido en el registro resultante o ADR, se traduce en un

incremento de voltaje de 0.012890625 V, entonces, si se observa la Figura 5.2, se puede

distinguir en los LED's del DEMOQE128 un valor binario de 01100010 o 98 decimal, de tal

forma que al multiplicarlo por el valor del incremento de voltaje en el ADC, se obtiene

1.26328125 V. Se concluye que el módulo ADC realiza correctamente la conversión ya que en la

fuente de voltaje, se tiene un valor de 1.19 V lo cual es muy cercano al obtenido después de la

conversión.

5.2. Programación del Puerto Serie

Después de haber logrado la variación del voltaje y el muestreo de los cambios en el

microcontrolador en los tiempos indicados, lo que seguía era la configuración del puerto serie ya

que por medio del mismo se hizo la comunicación con el módulo ST-1. El primer problema se

presentó en este punto ya que el microcontrolador con la programación predefinida se tenía una

frecuencia de bus de 4 MHz, y dadas las características del puerto serie, no era posible alcanzar

el baud rate de 57600 que es el especificado en la información referente al Starlert ST-1. De

forma que fue necesario re-configurar los registros de la fuente de reloj interna (o, Internal Clock

Source) para obtener una frecuencia de bus mayor y de esta forma lograr la velocidad de

transmisión requerida ya que como se mencionó anteriormente, el baud rate depende de la

54

Figura 5.2: Prueba del Convertidor A/D

Page 67: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Resultados

frecuencia del bus. En el Capítulo 4 de este trabajo, se mencionan los registros utilizados para

conseguir las características necesarias para generar la frecuencia de bus que requería la

especificación, al programar dichos registros, fue posible alcanzar el baud rate de 57600.

Ya que se habían conseguido los primeros objetivos de esta aplicación, lo siguiente era integrar

todas las partes que se programaron y hacerlas funcionar en conjunto, primeramente, con la

terminal del puerto serie de la computadora para que de esta manera, se pudiera comprobar que

los mensajes del Starlert ST-1 y los provenientes del microcontrolador sean coherentes para la

terminal, lo cual implicaría que ambos dispositivos tienen las mismas características de

comunicación y así, al conectarlos a través de la interfaz RS-232, pudieran mantener

comunicación entre ambos. En la Figura 5.3 se puede observar al microcontrolador enviando

cadenas de caracteres ASCII a la terminal del puerto serie en la computadora.

55

Figura 5.3: Envío de caracteres a la Terminal Serial

Page 68: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Resultados

Establecida la comunicación entre el microcontrolador y la terminal, lo siguiente fue conectar el

microcontrolador con el Starlert ST-1. Anteriormente se hizo mención acerca de las eventos que

envía el Starlert ST-1 a la terminal del puerto serie, las cuales son importantes ya que el

transceptor al proveerle voltaje no se conecta de forma instantánea a la red GPRS, entonces a

través de los mensajes mostrados, es posible determinar el momento en el que el

microcontrolador puede comenzar a enviar datos al ST-1; otra ventaja de tener este parámetro

como indicador es que también podemos evitar que el microcontrolador envíe información sin

que el módem este conectado a la red lo cual puede ocurrir si la tarjeta SIM no está

apropiadamente insertada o ausente, o si no ha sido cubierta la cuota con el proveedor de

servicios de datos GPRS, en este caso, Telcel.

El monitoreo de temperatura se realiza con un sensor LM-35 de National Semiconductor

conectado al convertidor A/D del microcontrolador a través de un amplificador operacional

TL081 configurado como seguidor de voltaje, que como ya es sabido, sirve para acoplar

impedancias ya que al hacer la conexión directa, se perdía el voltaje de salida del sensor. En el

Apéndice C se encuentra contenido el diagrama esquemático del sistema donde se puede

observar lo descrito así como en la Figura 5.4 se observa de manera física el sistema.

Ahora que funciona correctamente el sistema conformado por el sensor de temperatura LM-35,

microcontrolador MCF51QE128 y el módem transceptor Starlert ST-1, es posible enviar todo

tipo de datos en hacia el servidor a través de la red GSM/GPRS, para esta aplicación, enviamos

56

Figura 5.4: Sistema Completo

Page 69: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Resultados

caracteres ASCII que representan una medida de temperatura en grados centígrados con punto

flotante y dos decimales de precisión. El envío de caracteres se hace en intervalos de 5 minutos

una vez que el módem ha establecido comunicación correcta con la red GSM/GPRS.

5.3. Programación del Applet en Java.

Para observar de manera gráfica los cambios de temperatura en los intervalos marcados con

cualquier cliente web se planteó el desarrollo de un Applet en Java. Se utilizó Eclipse IDE y un

complemento del mismo llamado Visual Editor para simplificar la programación del Applet en

Java con el fin de generar el panel donde se despliega la gráfica, que para generarla, se utilizó

una librería externa llamada JFreeChart disponible en el sitio web

http://www.jfree.org/jfreechart/. El proceso de despliegue de una gráfica con JFreeChart es

relativamente sencillo; se debe crear una colección de valores que representan todos los puntos

de la gráfica y se genera la gráfica creando una instanciación de la clase JFreeChart, donde se

agregan los nombres de los ejes así como el de la gráfica y la colección recién creada; para este

Applet se instancía un objeto de clase ChartPanel que se utiliza para colocar la gráfica generada y

poder desplegarla en el panel principal del Applet.

Aunque aún queda desarrollo para el Applet, se puede acceder en cualquier navegador de Internet

que tenga instalado el complemento necesario para ejecutar la máquina virtual de Java.

Básicamente desde el navegador, se accede a la página web del servidor,

http://movil.citedi.mx/~minguez y dependiendo del navegador, hará una petición para ejecutar la

clase perteneciente al Applet, y el resultado se debería de observar como en la Figura 5.5. Como

se ilustra, el Applet puede graficar con los valores indicados en la clase y en la escala de tiempo

descrita con intervalos de 5 minutos, los valores que se deben de tomar para la clase son los

contenidos en el archivo net.log que genera el servidor, los cuales son introducidos manualmente

en el código de la clase; la escala de tiempo se actualiza cada hora así como la fecha dada en el

título de la gráfica. El código escrito para el Applet así como el utilizado en la página web se

encuentran en el Apéndice B.

57

Page 70: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Resultados

58

Figura 5.5: Visualización de gráfico de temperatura en Internet

Page 71: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

6. ConclusionesDurante el desarrollo del sistema de monitoreo se tuvo la oportunidad de implementar

tecnologías del área de las comunicaciones y de la información. El módem GPS/GSM Starlert

ST-1 tiene como base un microcontrolador 8051 que controla las funciones de localización por

satélite GPS, además también realiza el control de las funciones de transmisión de datos GPRS

dentro de la misma unidad. El DEMOQE128 es un módulo de desarrollo que trae varios

dispositivos periféricos interfazados al microcontrolador MCF51QE128, lo cual facilita y agiliza

la implementación de numerosas aplicaciones. Además, el sistema también cuenta con un

servidor que se encuentra físicamente en el laboratorio de Sistemas Inmersos que fue utilizado

para almacenar la información enviada por el ST-1, los archivos de la página Web y la clase que

contiene el Applet.

Un problema técnico que se presentó fue en la comunicación serial entre el microcontrolador y el

ST-1 ya que la tasa de transmisión de bauds que el microcontrolador podía alcanzar con la

frecuencia de bus predefinida no era suficiente para sincronizarse con el Starlert ST-1 para

comunicarse; el módulo serial solo provee un registro para modificar el valor correspondiente al

baud rate así que fue necesario modificar los registros del CPU, principalmente el módulo que

controla la fuente de reloj interna del sistema a través del cual se incrementó la frecuencia. En lo

que respecta a la programación y configuración del microcontrolador, no hubo mayor

inconveniente, debido a la amplia documentación que existe en Internet y a la experiencia previa

con el uso de microcontroladores muy similares así como sus herramientas.

El desarrollo del Applet podría considerarse como la parte más compleja de alcanzar dentro de

este proyecto ya que la experiencia personal en programación orientada a objetos así como con el

lenguaje Java era muy escasa, así que tomo un poco mas del tiempo planeado encontrar la mejor

manera de realizar la programación y encontrar las librerías adecuadas para concluir con el

objetivo dado.

En esta Tesina se menciona el uso de varias tecnologías y es importante destacar el las

herramientas de software necesarias para la implementación, evaluar diferentes opciones y

compararlas entre sí. La que se utilizó en su mayor parte fue la herramienta de programación

Freescale CodeWarrior para el microcontrolador MCF51QE128 que en su versión gratuita

59

Page 72: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Conclusiones

ofrece los componentes necesarios para programación y depuración de código. El diseño de

páginas Web ha resultado muy popular debido al crecimiento del número de usuarios de Internet

que se ha presentado en la última década que en la actualidad, tan solo en México, es de

23,700,000 habitantes de acuerdo al Internet World Stats (http://www.internetworldstats.com/),

por consiguiente, existen muchas herramientas que cumplen dicha función como DreamWeaver

de Adobe, FrontPage de Microsoft y para nuestra aplicación dado el nivel de complejidad de la

página Web desarrollada, se utilizó el Composer de Mozilla que es parte del conjunto de

aplicaciones de Internet conocido como SeaMonkey que además del editor de HTML también

cuenta con un navegador de Internet, gestor de correo electrónico y grupo de noticias, entre otras

aplicaciones. Un editor HTML a diferencia de un editor de texto común, nos permite visualizar la

página Web y auto-generar las etiquetas apropiadas para que puedan ser interpretadas por el

navegador de Internet y así mostrar la página como se especifique. Las herramientas potenciales

para la programación del Applet son diversas, desde un simple editor de texto como Notepad, o

alguno otro más complejo como el SciTE que sin ser un ambiente de desarrollo pueden

compilarse y ejecutarse los códigos de C/C++ o Java especificando en la variable de ambiente

PATH la ubicación del compilador; otros programas que entran dentro de la categoría de IDE

(como el CodeWarrior) para programar en Java que existen pueden ser NetBeans IDE y Eclipse

IDE; estos dos al parecer son los más utilizados para realizar esta tarea, ambos gratuitos, de

código abierto y multiplataforma que facilitan la creación de código y el manejo de proyectos

extensos, así como el uso de librerías externas y depuración de código, una característica que

llama la atención es la revisión de sintaxis en tiempo real que a la vez, cuando es detectado algún

error, proporcionan sugerencias al programador para corregir errores en el código; NetBeans, de

manera predeterminada, ofrece la opción de programación utilizando herramientas visuales,

Eclipse ofrece algo similar solo que se instala como complemento del software llamado Visual

Editor. Basado en experiencias de otros programadores, Eclipse parece imponerse sobre

NetBeans, ambos soportan el uso de gran cantidad de tecnologías (Java, bases de datos, C/C++,

etc.), pero Eclipse IDE ofrece más soluciones orientadas al desarrollo de aplicaciones embebidas,

así que posiblemente sea por eso por lo que es más utilizado, por lo menos en el área de los

sistemas embebidos.

En conclusión, es posible desarrollar un sistema completo de monitoreo que puede ser aplicable

dentro de la industria u otra área, adquiriendo los conocimientos adecuados acerca de las

60

Page 73: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Conclusiones

tecnologías que existen en la actualidad y que cada día resultan más accesibles. Es importante

comprender estas tecnologías y seguir capacitando gente para alcanzar sistemas más complejos

que ayuden a las diferentes ramas del desarrollo humano.

6.1. Trabajo Futuro

Los puntos que a continuación se enuncian, se consideran como características que pueden

complementarse al trabajo presentado que como cualquier otro proyecto, el desarrollo va

evolucionando conforme se avanza y se pueden proponer nuevas características también

dependiendo de la forma en la que evolucionan las tecnologías así como el mercado al que va

dirigido; en este apartado se consideran las más factibles a corto y mediano plazo:

● Envío de comandos GP al Starlert ST-1 para configurar automáticamente la capa AVL

Aplication.

Optimización de código fuente C del microcontrolador para reducir el tamaño del mismo

y mejorar tiempos de ejecución.

Actualización del Applet cada hora o en cada intervalo de tiempo ya sea leyendo

automáticamente el archivo net.log generado por el servidor o acceder por medio de

consultas a la base de datos del servidor.

Imagen de salida generada por el Applet del gráfico en pantalla.

Crear un marco en el Applet para visualizar los valores de forma tabular y sea un marco

junto a la gráfica o generar una pestaña para cada tipo de visualización.

Diseño y construcción de prototipo del sistema con el fin de que pueda presentarse como

un producto final para comercializarse.

61

Page 74: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Referencias[1] AgriNET. Complete Hardware and Software systems. http://www.agrinet.us/ (Recuperado el

17 de Febrero de 2009).

[2] AMD Telemedicine. AMD Telemedicine Products. http://www.amdtelemedicine.com/

products.cfm (Recuperado el 17 de Febrero de 2009).

[3] Bates, Regis J. GPRS (General Packet Radio Service). McGraw-Hill, 2002.

[4] Freescale Semiconductor, ColdFire Family Programmer's Reference Manual. Rev. 3. 2005

[5] Freescale Semiconductor, MCF51QE128 MCF51QE64 MCF51QE32 Reference Manual.

Rev. 3. 2007.

[6] Freescale Semiconductor, MCF51QE128 Series Data Sheet: Technical Data. Rev. 6. 2008.

[7] Freescale Semiconductor, QE128 Quick Reference User Guide. Rev. 1.0. 2007.

[8] GSM Association, 2008 Corporate Brochure, 2008.

[9] Heine, Gunnar. GSM Networks: Protocols, Terminology, and Implementation. Artech House

Inc., 1999.

[10]Intel Corporation, GPRS Technology: Increasing productivity using packet-based data

service over the moble telephone network, 2002.

[11]OnStar by GM. Demonstration of OnStar Services. http://www.onstar.com/us_english/jsp/

services/index.jsp?make=onstar&model=homepage&deepLink=overview (Recuperado el 17

de Febrero de 2009).

[12]P&E Microcomputer Systems, Inc., DEMOQE128 User Manual. Rev 1.03. 2007.

[13]R. Herrera et. al., Rastreo de móviles con GSM/GPRS y GPS, CITEDI, 2007.

[14]S. Casillas et. al., Sistema de telemetría utilizando las redes GPS, GPRS e Internet, CITEDI,

2008.

[15]Starlert, Starlert Getting Starter Guide, Archetype Inc., 2006.

[16]Tisal, Joachim. The GSM Network. GPRS Evolution: One Step Towards UMTS. John Wiley

& Sons, Ltd., 2001.

[17]Wilder, Floyd. A Guide To The TCP/IP Protocol Suite. Artech House Inc., 1998.

62

Page 75: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice AEn este apartado se localiza todo el código fuente en lenguaje de programación C que se utilizó

para programar al microcontrolador:

/** main.c*/#include "primitive.h" // library for C procedures#include <string.h>#include <stdlib.h>#include <stdio.h>#include <hidef.h> // constantes simbolicas y macros generadas por CodeWarrior#include "derivative.h" // macros, estuctura de datos, constantes simbolicas, etc // para el microcontrolador MC9S08QE128k#include "serial.h" // para funciones del puerto serie#include "adc.h" // para funciones del convertidor analogico digital#include "gpio.h" // para funciones de los puertos paralelos#include "timer.h" // para funciones relacionadas a los temporizadores

#define MAX_BUF_SIZE 100#define GPRS_OK_LED 0#define DATA_SENT_LED 1#define UNKNOWN_STR_LED 7

char gprsError[28] = "<AVL> No GPRS Registration\r\n";char gsmError[27] = "<AVL> No GSM Registration\r\n";char udpDisconnected[46] = "<AVL> UDP Connection Disconnected\r\n";char gprsNoRegEvent[71] = "<AVL> GPRS Event (00000000 00000000) - <AVL> GPRS

Registration 0\r\n";char gsmNoRegEvent[73] = "<AVL> GPRS Event (00000000 00000000) - <AVL> GSM

Registration 0 (was 0)\r\n";char gprsReady[71] = "<AVL> GPRS Event (00000001 00000000) - <AVL> GPRS Registration

1\r\n";char gprsReady2[73] = "<AVL> GPRS Event (00000001 00000000) - <AVL> GSM Registration

1 (was 1)\r\n";char textBuffer[MAX_BUF_SIZE];

void wait_for_GPRS_connection (void);void volt2temp (int volt, char* t);void led_blink(unsigned char led, unsigned char num);

void main(void) {

// inicializa el CPU CPU_init(); // inicializa el timer para realizar la funcion de delay timer_init(); // configura al convertidor A/D pero se mantiene deshabilitado adc_init(ADC_DISABLED); // inicializa al contador en tiempo real

63

Page 76: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

rtc_init(); // inicializa el puerto paralelo gpio_init(); // inicializa al puerto serie serial_init(); EnableInterrupts; for(;;) { // Esperar hasta que el ST-1 pueda enviar paquetes UDP al servidor

wait_for_GPRS_connection(); // Habilita el ADC y selecciona el canal 0 de entrada ADC_CHANNEL = AD0; // Cuando el ADC quede deshabilitado el valor de // temperatura estara listo para ser enviado

while(ADC_ENABLED);

// Convierte el valor obtenido del ADC a temperaturavolt2temp(adcResult, textBuffer);

// Envia temperaturasend(textBuffer);

send("\r"); // Parpadeo del indicador de datos enviados led_blink(DATA_SENT_LED, 3); }}

/* * funcion de voltaje a temperatura en grados centrigrado* usando las especificaciones del sensor de temperatura LM-35. */void volt2temp (int volt, char* t) {

double temp;float x;

temp = (double) volt;temp = temp * 0.0007342;temp = temp * 100;x = (float) temp;ftoa(x, 3, t);

}

/** funcion que recibe los mensajes del ST-1 hasta que * el mensaje recibido indique que el MCU puede comenzar* a enviar el valor de la temperatura convertido a ASCII*/void wait_for_GPRS_connection (void) {

64

Page 77: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

int i = 0;for(;;) {

receive(textBuffer);if (textBuffer[1] == '<') {

do {i++;textBuffer[i - 1] = textBuffer[i];

} while(textBuffer[i] != '\0');i = 0;

}if (strcmp(textBuffer, gprsReady) == 0) {

led_off(UNKNOWN_STR_LED);led_off(GPRS_OK_LED);delay(100);led_on(GPRS_OK_LED);break;

}else

if (strcmp(textBuffer, gprsReady2) == 0) {led_off(UNKNOWN_STR_LED);led_off(GPRS_OK_LED);delay(100);led_on(GPRS_OK_LED);break;

}else {

led_off(GPRS_OK_LED);led_off(UNKNOWN_STR_LED);delay(100);led_on(UNKNOWN_STR_LED);

}}

}

/** Prende y apaga el LED indicado en el DEMOQE128 un numero* num de veces con un retardo entre cada evento de* aproximadamente 50 ms*/void led_blink(unsigned char led, unsigned char num) {

unsigned char i;for(i = 0; i <= num; i++) {

led_off(led);delay(50);led_on(led);delay(50);

}led_off(led);

}

65

Page 78: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/** cpu.h*/

#ifndef CPU_H#define CPU_H

/* Includes */ #include "derivative.h" /* Modos del DCO */ #define HIGH_RANGE 2 #define MID_RANGE 1 #define LOW_RANGE 0 /* Mascaras para seleccionar busclock a perifericos */ #define ADC_BUSCLK SCGC1_ADC_MASK // Mascara de bits para activar bus

// clock al ADC #define SCI1_BUSCLK SCGC1_SCI1_MASK // Mascara de bits para activar bus

// clock al SCI1#define TIMER_BUSCLK SCGC2_TPM1_MASK // Mascara de bits para activar bus

// clock al Timer 1 #define RTC_BUSCLK SCGC2_RTC_MASK // Mascara de bits para activar bus

// clock al RTC /* Redefiniciones */ #define INTERNAL_REFERENCE_SELECTED ICSSC_IREFST #define DCO_RANGE ICSSC_DRST_DRS #define ENABLE_WAIT_MODE SOPT1_WAITE #define ENABLE_STOP_MODE SOPT1_STOPE /* Macros */ #define DISABLE_WATCHDOG SOPT1_COPE = 0 #define ENABLE_RESET_PIN SOPT1_RSTPE = 1 /* Prototipos de funciones */ void CPU_init(void); void InternalClockSource_init(void);

void activateBusClock(int peripherals1, int peripherals2);

#endif

66

Page 79: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/** cpu.c - Subrutinas para la incializacion del sistema.*/

#include "cpu.h"

/* * CPU_init - Subrutina que deshabilita el watchdog, la frecuencia del bus de datos se * cambia a 12Mhz y se habilita el bus clock para los perifericos seleccionados.*/void CPU_init(void) {

DISABLE_WATCHDOG; ENABLE_RESET_PIN; ENABLE_WAIT_MODE = 0; asm(nop); ENABLE_STOP_MODE = 1; InternalClockSource_init(); peripheral_clk_sel(ADC_BUSCLK|SCI1_BUSCLK,RTC_BUSCLK); }

/* * InternalClockSource_init - Inicializacion de la fuente de reloj interna para el * reloj del sistema.*/void InternalClockSource_init(void) {

ICSC1 = 0x06; // La fuente de reloj del sistema es la salida del FLL // Referencia de reloj interna seleccionada como fuente para el FLL

ICSC2 = 0x00; // Dividir el reloj seleccionado por 1

while(!INTERNAL_REFERENCE_SELECTED) ;

ICSSC = (byte)0x80; // Rango alto de frecuencia seleccionado para la salida del FLL // DCO tiene un rango del 25% (48 - 60 MHz)

while(DCO_RANGE != HIGH_RANGE) ;}

/* * activateBusClock - Subrutina que habilita el bus clock para los perifericos * seleccionados.*/void activateBusClock(int peripherals1, int peripherals2) { /* Deshabilitando bus clock para todos los perifericos*/ SCGC1 = 0; SCGC2 = 0; /* Habilitando bus clock para los perifericos seleccionados */ SCGC1 |= peripherals1; SCGC2 |= peripherals2;}

67

Page 80: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/* gpio.h */

#ifndef GPIO_H#define GPIO_H

#include "derivative.h"#include "bithandler.h"

#define ALL_LEDS 13

void gpio_init(void);void led_on(unsigned char x);void led_off(unsigned char x);

#endif

/* gpio.c */

#include "gpio.h"

void gpio_init(void) {PTCDD = 0x3F;

PTEDD = 0xC0; PTCD = 0x3F; PTED = 0xC0;}

void led_on(unsigned char x) {unsigned char temp;if(x == ALL_LEDS) {

PTCD = 0x00;PTED = 0x00;

} else {temp = (unsigned char) ~(0x01 << x);PTED = (unsigned char) (temp & PTED);PTCD = (unsigned char) (temp & PTCD);

}}

void led_off(unsigned char x) {unsigned char temp;if(x == ALL_LEDS) {

PTCD = 0x3F;PTED = 0xC0;

} else {temp = (unsigned char) (0x01 << x);PTED = (unsigned char) (PTED | temp);PTCD = (unsigned char) (PTCD | temp);

}}

68

Page 81: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/** rtc.h*/

#ifndef RTC_H#define RTC_H

#include "derivative.h"#include "serial.h"#include "adc.h"

#define REAL_TIME_INTERRUP_FLAG RTCSC_RTIF

#define REAL_TIME_CLOCK_SOURCE RTCSC_RTCLKS#define RTC_INTERRUPT_ENABLE RTCSC_RTIE#define REAL_TIME_PRESCALER_SELECTOR RTCSC_RTCPS

#define LOW_POWER_OSC 0#define EXTERNAL_CLOCK 1#define INTERNAL_CLOCK_1 2#define INTERNAL_CLOCK_2 3

void rtc_init(void); #endif

/* * rtc.c */

#include "rtc.h"

void rtc_init(void) {REAL_TIME_CLOCK_SOURCE = LOW_POWER_OSC; // El oscilador de baja potencia

// de 1KHz seleccionado como // fuente de reloj de tiempo

RTC_INTERRUPT_ENABLE = 1; // Peticiones de interrupcion de tiempo real // son habilitadas

REAL_TIME_PRESCALER_SELECTOR = 0xD; // El valor divisorio del prescaler es // de 10^2, entonces, el valor del // real-time counter se incrementa cada // 100ms

RTCMOD = 1; // Con la configuracion anterior y el modulo del contador // en 1 decimal, se genera una peticion de interrupcion // cada 100ms

}

void interrupt VectorNumber_Vrtc rtc_isr(void) {REAL_TIME_INTERRUP_FLAG = 1; // Borra la bandera de interrupcion

}

69

Page 82: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/** serial.h*/

#ifndef SERIAL_H#define SERIAL_H

#include "derivative.h"#include "bithandler.h"

#define DATA_REGISTER_READY SCI1S1_TDRE#define TRANSMISSION_COMPLETE SCI1S1_TC#define FULL_DATA_REGISTER_FLAG SCI1S1_RDRF#define DATA_REGISTER SCI1D#define BAUDRATE_REGISTER_HIGH SCI1BDH#define BAUDRATE_REGISTER_LOW SCI1BDL

// SCI Baud Rate Register #define RX_INPUT_ACTIVE_EDGE_INTERRUPT_ENABLE SCI1BDH_RXEDGIE #define LIN_BREAK_INTERRUPT_ENABLE SCI1BDH_LBKDIE // SCI Control Register 1 #define PARITY_TYPE SCI1C1_PT_MASK #define PARITY_ENABLE SCI1C1_PE_MASK #define IDLE_LINE_TYPE SCI1C1_ILT_MASK #define WAKE_UP_METHOD SCI1C1_WAKE_MASK #define DATA_MODE SCI1C1_M_MASK #define RECEIVER_SOURCE SCI1C1_RSRC_MASK

#define SCI_STOPS_ON_WAIT_MODE SCI1C1_SCISWAI_MASK#define LOOP_MODE SCI1C1_LOOPS_MASK

// SCI Control Register 2#define SEND_BREAK SCI1C2_SBK_MASK#define RECEIVER_WAKEUP_CTRL SCI1C2_RWU_MASK#define RECEIVER_ENABLE SCI1C2_RE_MASK#define TRANSMITTER_ENABLE SCI1C2_TE_MASK#define IDLE_LINE_IRQ_ENABLE SCI1C2_ILIE_MASK#define RECEIVER_IRQ_ENABLE SCI1C2_RIE_MASK#define TRANSFER_COMPLETE_IRQ_ENABLE SCI1C2_TCIE_MASK#define TRANSMIT_IRQ_ENABLE SCI1C2_TIE_MASK

// SCI Control Register 3#define PARITY_ERROR_IRQ_ENABLE SCI1C3_PEIE_MASK#define FRAMMING_ERROR_IRQ_ENABLE SCI1C3_FEIE_MASK#define NOISE_ERROR_IRQ_ENABLE SCI1C3_NEIE_MASK#define OVERRUN_IRQ_ENABLE SCI1C3_ORIE_MASK#define TRANSMIT_DATA_INVERSION SCI1C3_TXINV_MASK#define TX_PIN_DIRECTION SCI1C3_TXDIR_MASK#define NINTH_BIT_TRANSMITTER SCI1C3_T8_MASK#define NINTH_BIT_RECEIVER SCI1C3_R8_MASK

void serial_init(void); void send (unsigned char *buffer);int receive(unsigned char *buffer);

#endif

70

Page 83: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/* * serial.c*/

#include "serial.h"

char serialBuffIn[80];

/* * serial_init - Rutina de configuracion del modulo SCI para intercambio de datos de 8 * bits con un bit de inicio, uno de paro y * y no se utilizan bits de paridad. Se habilita la interrupcion generada por el * receptor, las demas interrupciones* son deshabilitadas. El baud rate se configura a 57600 bauds.* Registros usados:* Registro de control 1 (SCI1C1) -* - Conecta internamente la salida del transmisor a la entrada del receptor.* - El reloj del puerto serie se congela cuando el CPU entra en "Wait Mode".* - Modo 8-bit o 9-bit.* - Habilita Paridad y tipo de paridad.* Registro de control 2 (SCI1C2) - * - Habilita o deshabilita interrupciones causadas por: transmisor listo, * transmision terminada, datos recibidos, idle line.* - Habilita o deshabilita el receptor y transmisor.* Registro de control 3 (SCI1C3) -* - Habilita o deshabilita interrupciones causadas por errores en recepcion * Registros de Baud Rate (SCI1BDH, SCI1BDL) - Contienen los bits [SBR12:SBR0] que * determinan el prescaler que genera el baud rate que utilizara el puerto serie * para comunicarse.** BUSCLK 23.90MHz * Baud rate = -------------------- = ------------ = 57600bps * [SBR12:SBR0] X 16 27 X 16** NOTA: El valor de SCI1BDH no cambia hasta que se escribe a SCI1BDL.*/void serial_init (void) {

BITWRITE(SCI1C1, DATA_MODE, 0); // 8-bit mode selected , no parityREGSET(SCI1C2,RECEIVER_ENABLE|TRANSMITTER_ENABLE|RECEIVER_IRQ_ENABLE);REGCLR(SCI1C3, FULL_REG); // Disable all errors interruptsREGWRITE(BAUDRATE_REGISTER_HIGH, 0);REGWRITE(BAUDRATE_REGISTER_LOW, 0x1B); // Baud Rate = 57600

}

/* send - Envio mensaje en el buffer a traves del puerto serie */void send(unsigned char *buffer) {

while(*buffer != '\0') {while(!DATA_REGISTER_READY)

; DATA_REGISTER = *buffer; while(!TRANSMISSION_COMPLETE)

71

Page 84: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

; buffer++;

}}

/* receive - Recibe mensajes del puerto serie y los almacena en el buffer */int receive(unsigned char *buffer) {

do {while(!DATA_AVAILABLE)

;*buffer = DATA_REGISTER;

} while((*buffer++ != '\n'));*buffer = '\0';

}

/* * registro_RX - Subrutina que da servicio a la interrupcion generada por el * receptor del puerto serie cada vez que el registro de datos reciba un dato nuevo.*/void interrupt VectorNumber_Vsci1rx registro_RX(void) {

unsigned char c; DATA_AVAILABLE = 0;c = DATA_REGISTER;

while(!DATA_REGISTER_READY);

DATA_REGISTER = c;led_on(4);

}

72

Page 85: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/** adc.h*/

#ifndef ADC_H#define ADC_H

#include "derivative.h" #include "serial.h" #include "bithandler.h"

#define ADC_DISABLED 31#define ADC_CHANNEL ADCSC1_ADCH#define ADC_ENABLED ADC_CHANNEL != ADC_DISABLED#define ADC_CLK_DIVIDE ADCCFG_ADIV#define ADC_RESOLUTION ADCCFG_MODE#define ADC_INPUT_CLK ADCCFG_ADICLK

#define CONTINUOS_CONVERSION_ENABLE ADCSC1_ADCO_MASK#define ADC_IRQ_ENABLE ADCSC1_AIEN_MASK#define CONVERSION_COMPLETE_FLAG ADCSC1_COCO_MASK

#define COMPARE_GEATER_THAN_ENABLE ADCSC2_ACFGT_MASK#define COMPARE_FUNCTION_ENABLE ADCSC2_ACFE_MASK#define CONVERSION_TRIGGER_SELECT ADCSC2_ADTRG_MASK#define CONVERSION_ACTIVE_FLAG ADCSC2_ADACT_MASK

#define CONVERTED_DATA ADCR;

#define BUS_CLK 0#define BUS_CLK_DIV_2 1#define ALTERNATE_CLK 2#define ASYNCHRONOUS_CLK 3#define RES_8BIT 0#define RES_12BIT 1#define RES_10BIT 2#define INPUT_CLK_DIV_1 0#define INPUT_CLK_DIV_2 1#define INPUT_CLK_DIV_4 2#define INPUT_CLK_DIV_8 3#define SAMPLE_TIME_CONFIG ADCCFG_ADLSMP_MASK#define LOW_POWER_CONFIG ADCCFG_ADLPC_MASK

#define PIN_0 APCTL1_ADPC0_MASK#define PIN_1 APCTL1_ADPC1_MASK#define PIN_2 APCTL1_ADPC2_MASK#define PIN_3 APCTL1_ADPC3_MASK#define PIN_4 APCTL1_ADPC4_MASK#define PIN_5 APCTL1_ADPC5_MASK#define PIN_6 APCTL1_ADPC6_MASK#define PIN_7 APCTL1_ADPC7_MASK

/** Se pueden utilizar las siguientes definiciones * para seleccionar el canal del ADC */

73

Page 86: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

#define AD0 0#define AD1 1#define AD2 2#define AD3 3#define AD4 4#define AD5 5#define AD6 6#define AD7 7#define AD8 8#define AD9 9#define AD10 10#define AD11 11#define AD12 12#define AD13 13#define AD14 14#define AD15 15#define AD16 16#define AD17 17#define AD18 18#define AD19 19#define AD20 20#define AD21 21#define AD22 22#define AD23 23

#define MAX_CONV 10

void adc_init (unsigned char chan); extern int adcResult; #endif

/* adc.c - Subrutinas para el funcionamiento del Analog-to-Digital Converter */

#include "adc.h"

int adcResult;unsigned char conversionCounter;

/* ADC_init - Esta funcion realiza la configuracion del convertidor analogico-digital */void adc_init (void) {

ADC_INPUT_CLK = BUS_CLK;ADC_CLK_DIVIDE = INPUT_CLK_DIV_8;ADC_RESOLUTION = RES_10BIT;// Long sample time and low power configuration selectedREGSET(ADCCFG, LOW_POWER_CONFIG|SAMPLE_TIME_CONFIG); // Hardware trigger selected, compare function disabledREGSET(ADCSC2, CONVERSION_TRIGGER_SELECT);REGSET(ADCSC1, ADC_IRQ_ENABLE); // Conversion Complete interrupt enabledREGCLR(ADCSC1, CONTINUOS_CONVERSION_ENABLE); // Single conversionADC_CHANNEL = chan;

if (chan != ADC_DISABLED) { if (chan < 8) // Deshabilita el control del puerto E/S de los

74

Page 87: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

BITSET(APCTL1,chan); // pines del MCU usados como entradas analogicas else if (chan < 16) BITSET(APCTL2,chan - 8); else if (chan >= 16) BITSET(APCTL3,chan - 16);

}adcResult = 0;conversionCounter = 0;

}

/* adc_isr - Interrupt Service Request del ADC */void interrupt VectorNumber_Vadc adc_isr(void) {

adcResult += (int) CONVERTED_DATA;conversionCounter++;if (conversionCounter == MAX_CONV) {

adcResult = adcResult / MAX_CONV;conversionCounter = 0; ADC_CHANNEL = ADC_DISABLED;

}}

75

Page 88: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/* timer.h */

#ifndef TIMER_H#define TIMER_H

#include "derivative.h"#include "bithandler.h"

#define COUNTER_OVERFLOW (TPM1SC_TOF == 1)

#define TIMER_CLK_SOURCE TPM1SC_CLKSx#define TIMER_PRESCALER TPM1SC_PS#define TIMER_IRQ_ENABLED TPM1SC_TOIE

#define COUNTER_MODULO TPM1MOD#define CURRENT_COUNT TPM1CNT

#define TIMER_OVERFLOW_FLAG 7

// Este valor en la fuente del reloj deshabilita el timer#define TIMER_DISABLED 0

#define BUS_RATE_CLK 1#define FIXED_SYS_CLK 2#define EXTERNAL_SCR 3

#define DIVIDE_BY_1 0#define DIVIDE_BY_2 1#define DIVIDE_BY_4 2#define DIVIDE_BY_8 3#define DIVIDE_BY_16 4#define DIVIDE_BY_32 5#define DIVIDE_BY_64 6#define DIVIDE_BY_128 7

void timer_init(void);void delay(unsigned int t);

#endif

76

Page 89: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/* timer.c - Subrutinas para realizar funciones con el temporizador */

#include "timer.h"

void timer_init(void) {COUNTER_MODULO = 752;TIMER_CLK_SOURCE = BUS_RATE_CLK;TIMER_PRESCALER = TIMER_DISABLED;

}

/** funcion de retardo de aproximadamente 1 mS por cada entero introducido*/void delay(unsigned int t) {

unsigned int i;CURRENT_COUNT = 0;TIMER_PRESCALER = DIVIDE_BY_32;for(i = 0; i <= t; i++) {

while(!COUNTER_OVERFLOW);

// Antes de escribir un '0' a la bandera TIMER_OVERFLOW_FLAG, es// necesario leer primero el registro TPM1SC. Si no se hace esto, // entonces, TIMER_OVERFLOW_FLAG continuara en '1' indicando que// ya ocurrio un sobreflujo en el contador.TPM1SC;BITCLR(TPM1SC, TIMER_OVERFLOW_FLAG);

}

}

77

Page 90: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice A

/* bithandler.h - macros for bit manipulation on registers */

#ifndef BITHANDLER_H

#define FULL_REG 0xFF #define BITSET(REGISTER, BIT) ((REGISTER) |= (unsigned char)(1 << (BIT))) #define BITCLR(REGISTER, BIT) ((REGISTER) &= (unsigned char)(~(1 << (BIT)))) #define BITTOGGLE(REGISTER, BIT) ((REGISTER) ^= (unsigned char)(1 << (BIT))) #define BITWRITE(REGISTER, MASK, F) ((REGISTER) = (unsigned char)((F)?((REGISTER)|

(MASK)) : ((REGISTER) & ~(MASK)))) #define REGSET(REGISTER, MASK) ((REGISTER) |= (unsigned char)(MASK)) #define REGCLR(REGISTER, MASK) ((REGISTER) &= (unsigned char)(~(MASK))) #define REGWRITE(REGISTER, MASK) ((REGISTER) = (unsigned char)(MASK))

#endif

78

Page 91: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice BA continuación se muestra el código escrito en Java utilizado para la programación del Applet

seguido del código en HTML para mostrar el Applet en http://movil.citedi.mx/~minguez/.

import java.awt.BorderLayout;import javax.swing.JPanel;import javax.swing.JApplet;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartFrame;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.data.time.Day;import org.jfree.data.time.Hour;import org.jfree.data.time.Minute;import org.jfree.data.time.TimeSeries;import org.jfree.data.time.TimeSeriesCollection;

public class graficaDatosTS extends JApplet {

private static final long serialVersionUID = 987654321123456789L;private JPanel jContentPane = null;

/** * This is the default constructor */public graficaDatosTS() {

super();}

/** * This method initializes this * * @return void */public void init() {

this.setSize(640, 480);this.setContentPane(getJContentPane());

}

/** * This method initializes jContentPane * * @return javax.swing.JPanel */private JPanel getJContentPane() {

if (jContentPane == null) {jContentPane = new JPanel();jContentPane.setLayout(new BorderLayout());jContentPane.add(getTSChartPane(), getTSChartPane().getName());

}return jContentPane;

}

79

Page 92: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice B

private ChartPanel getTSChartPane() {Day hoy = new Day();Hour hora = new Hour();TimeSeries series = new TimeSeries("Temperatura", Minute.class);series.add(new Minute(0, hora), 1.0);series.add(new Minute(5, hora), 2.3);series.add(new Minute(10, hora), 1.8);series.add(new Minute(15, hora), 9.8);series.add(new Minute(20, hora), 10.3);series.add(new Minute(25, hora), 5.3);series.add(new Minute(30, hora), 9.5);series.add(new Minute(35, hora), 8);series.add(new Minute(40, hora), 4.5);series.add(new Minute(45, hora), 4.9);series.add(new Minute(50, hora), 10.5);series.add(new Minute(55, hora), 7.7);// Add the series to your dataTimeSeriesCollection dataset = new TimeSeriesCollection();dataset.addSeries(series);// Generate the graphJFreeChart chart = ChartFactory.createTimeSeriesChart(

"Grafica de Temperatura " + hoy.getDayOfMonth() + "/" + hoy.getMonth() + "/" + hoy.getYear(),

"Tiempo (hrs)","Temperatura (^C)",dataset,true,true,false);

ChartFrame frame = new ChartFrame("Temperatura", chart);frame.pack();//frame.setVisible(true);ChartPanel chartPane = new ChartPanel(chart);

return chartPane;}

}

80

Page 93: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice B

<html><head><meta name="Author" content="Daniel Minguez"><meta name="Description" content="Grafica de Temperatura"><meta name="Keywords" content="telemetry, GSM, GPRS, Telemetria"><title>Grafica de Temperatura</title><style type="text/css">

body {background: #ffe url("background.png");margin: 40px 0px;padding: 0;

}h1 {

font-family: Verdana, Helvetica, Arial, sans-serif;color: #ffe;border-bottom: 2px solid #ffe;border-top: 2px solid #ffe;margin: 10px 0px;padding: 0;text-align: center;

}div {

font-family: Tahoma, Arial, sans-serif;top: 2px;bottom: 2px;color: #ffe;margin: 10px 0px;

}#info {

font-size: 0.7em;background-color: #96dc00;color: #ffe;text-align: center;

}#main{

background-color: #ff7f2a;border: 4px solid #96dc00;margin: 0 auto;padding:20px;text-aling: left;width: 800px;text-align: justify;

}</style></head><body>

<div id="main"><h1><span style="font-weight: bold;">Sistema

de Telemetr&iacute;a</span></h1><div>El Applet que se muestra a

continuaci&oacute;n fue desarrollado para mostrar el funcionamiento del Sistema de Telemetr&iacute;a presentado en el trabajo de Tesina dentro de la Especialidad de Sistemas Inmersos en el Centro de Investigaci&oacute;n y Desarrollo de Tecnolog&iacute;a Digital del Instituto Polit&eacute;cnico

81

Page 94: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice B

Nacional.<br><br>Las gr&aacute;fica contenida en el Applet, es una representaci&oacute;ndel muestreo de una se&ntilde;al producida por un sensor de temperatura LM-35, la escala mostrada es grados Celsiuis y la diferencia de tiempo entre una y otra muestra es de 5 minutos.<br>

</div><hr><center><!--"CONVERTED_APPLET"--><!-- HTML CONVERTER --><script language="JavaScript" type="text/javascript"><!--var _info = navigator.userAgent; var _ns = false; var _ns6 = false;var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0);//--></script><comment><script language="JavaScript1.1" type="text/javascript"><!--var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0)));var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));//--></script></comment><script language="JavaScript" type="text/javascript"><!--if (_ie == true) document.writeln('<OBJECT classid="clsid:E19F9331-3110-11d4-991C-005004D3B3DB" WIDTH = 700 HEIGHT = 500 codebase="http://java.sun.com/products/plugin/1.3.0_02/jinstall-130_02-win32.cab#Version=1,3,0,2"><NOEMBED><XMP>');else if (_ns == true && _ns6 == false) document.writeln('<EMBED type="application/x-java-applet;jpi-version=1.3.0_02" CODE = graficaDatosTS.class ARCHIVE = "jcommon-1.0.15.jar,jfreechart-1.0.12.jar" WIDTH = 700 HEIGHT = 500 scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3.0_02/plugin-install.html"><NOEMBED><XMP>');//--></script><appletcode="graficaDatosTS.class"archive="jcommon-1.0.15.jar,jfreechart-1.0.12.jar" height="500"width="700"><param name="CODE" value="graficaDatosTS.class"><paramname="ARCHIVE" value="jcommon-1.0.15.jar,jfreechart-1.0.12.jar"><paramname="type" value="application/x-java-applet;jpi-version=1.3.0_02"><paramname="scriptable" value="false"></applet><!--<APPLET CODE = graficaDatosTS.class ARCHIVE = "jcommon-1.0.15.jar,jfreechart-1.0.12.jar" WIDTH = 200 HEIGHT = 200></APPLET>--><!--"END_CONVERTED_APPLET"--></center><hr><div id="info">

Creado por: <br>Daniel Isa&iacute;as M&iacute;nguez Vital<br>Tijuana, B.C. - Abril 2009<br>

</div></div></body></html>

82

Page 95: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice CEl diagrama esquemático del sistema se muestra a continuación:

83

Page 96: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice DHoja de datos del LM35.

84

Page 97: TESINA QUE PARA OBTENER LA - tesis.ipn.mxtesis.ipn.mx/.../123456789/5720/1/MONITOREOPARAMET.pdf · proyectos de investigación SIP-20071264, “Sistema de control de unidades remotas

Apéndice D

85