149
UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA EN ELECTRICIDAD “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE SISTEMAS DE MONITOREO, SEGUIMIENTO Y/O ALARMA BASADO EN TELEFONIA MOVIL A BAJO COSTO”. Richard Francisco Ojeda Ilnao 2008

“ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

Embed Size (px)

Citation preview

Page 1: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA EN ELECTRICIDAD

“ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE SISTEMAS DE

MONITOREO, SEGUIMIENTO Y/O ALARMA BASADO EN TELEFONIA MOVIL A BAJO COSTO”.

Richard Francisco Ojeda Ilnao 2008

Page 2: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA EN ELECTRICIDAD

“ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE SISTEMAS DE

MONITOREO, SEGUIMIENTO Y/O ALARMA BASADO EN TELEFONIA MOVIL A BAJO COSTO”.

Trabajo de titulación presentado en conformidad a los requisitos para obtener el título de Ingeniero de Ejecución en Electricidad. Profesor Guía: Rolando Aguilar Cárdenas

Richard Francisco Ojeda Ilnao 2008

Page 3: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

i

RESUMEN

En este trabajo se presenta el diseño de un sistema de alarma, utilizando un

microcontrolador NXP LPC2106, el que tiene como función: monitorear, controlar, y realizar las

tareas de comunicación del sistema.

El sistema de alarma diseñado permite escoger dos modos de funcionamiento. Que permite

conectar una gran variedad sensores que se pueden activar por medio de: cambio de la

temperatura ambiente (PT100 ~100Ω - Termistor ~10k Ω), detección de movimiento mediante

PIR (Pyroelectric Infrared), detección de vibraciones mediante medidores de aceleración,

detección de presión mediante sensores de presión tipo puente con desequilibrios de ±0.25% ó

±4%, detección capacitiva de personas o elementos por cambios de la permitividad eléctrica,

detección desde otros circuitos lógicos TTL, y/o circuitos análogos por medio de conversor A/D

de 1 MSPS.

El sistema de alarma permite informar al usuario final por medio de su teléfono móvil

que la alarma se ha activado ya sea por: mensajes SMS o una llamada de voz. Adicionalmente, el

sistema de alarma permite que el usuario final pueda controlar en forma remota y decidir una

determinada acción tal como abrir el canal de voz para escuchar que está sucediendo,

almacenamiento del audio por un periodo corto de tiempo, solicitar la toma y envío de una

fotografía e incluso grabar un video y/o activación de bocina.

Finalmente se desea destacar que existen dos canales de comunicación disponibles para el

teléfono móvil del usuario: por medio del teléfono móvil conectado al sistema de alarma

mediante su módulo GSM (siendo la limitante el tener una señal celular) y por medio del módulo

Bluetooth integrado al sistema de alarma, con un rango de distancia nominal de 100mts

extensible a 1000mts con antena opcional.

Page 4: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

ii

ÍNDICE GENERAL

CAPÍTULO I. INTRODUCCION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.1 Identificación del problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2 Solución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3 Alcance del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

CAPÍTULO II. MICROCONTROLADOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.1 Selección del Microcontrolador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.2 Arquitectura ARM7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.3 Familia ARM7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

2.3.1 ARM7TDMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.2 ARM7TDMI-S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.3 ARM7EJ-S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.4 ARM720T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4 Modulo de aceleración de memoria MAM. . . . . . . . . . . . . . . . . . . . . .

15

2.5 Herramientas de desarrollo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

CAPÍTULO III. ACONDICIONAMIENTO DE SEÑALES. . . . . . . . . . . . . . . . . . . . . .

18

3.1 Módulo Universal Transducer Interface (UTI). . . . . . . . . . . . . . . . . .

18

3.1.1 Características Generales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1.2 Técnica de la tres señales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.1.3 Técnica de las dos puertas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.4 El Oscilador Martín Modificado. . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.1.5 Comunicación con el microcontrolador. . . . . . . . . . . . . . . . . . . . .

28

3.2 Módulo ADC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

3.2.1 Características. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.2 Aproximaciones sucesivas (SAR). . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.3 El Registro de control del convertidor. . . . . . . . . . . . . . . . . . . . . . 33 3.2.4 Interfaz serial SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2.5 Diagrama de conexión típico. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

3.3 Otras posibilidades de conexión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

CAPÍTULO IV. COMUNICACIÓN INALÁMBRICA BLUETOOTH. . . . . . . . . . . .

40

4.1 Generalidades del Protocolo Bluetooth. . . . . . . . . . . . . . . . . . . . . . . .

40

4.2 Ventajas de la tecnología Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . .

41

4.3 ¿Qué son los Protocolos?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

4.4 Protocolos fundamentales de Bluetooth. . . . . . . . . . . . . . . . . . . . . . . .

44

Page 5: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

iii

4.4.1 Banda Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.4.2 Protocolo de gestor de enlace (LMP). . . . . . . . . . . . . . . . . . . . . . . 46 4.4.3 Protocolo de adaptación y control del enlace lógico (L2CAP). . . . 46 4.4.4 Protocolo de descubrimiento de servicios (SDP). . . . . . . . . . . . . .

47

4.5 Protocolos de sustitución de cable. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

4.5.1 RFCOMM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.5.2 Protocolos de control de telefonía. . . . . . . . . . . . . . . . . . . . . . . . . .

48

4.6 Perfiles generales de Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

4.6.1 Perfil de acceso genérico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.6.2 Perfil de Puerto Serie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

CAPÍTULO V. MÓVILES GSM Y COMANDOS AT. . . . . . . . . . . . . . . . . . . . . . . . . .

56

5.1 GSM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

5.2 Comandos AT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

5.2.1 Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.2.2 Propósito de los comandos AT. . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.2.3 Notación de los comandos AT. . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.2.4 Ejecución de los comandos AT. . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

5.3 Mensajes SMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

5.3.1 Definición. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3.2 Comandos AT de SMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3.3 Modo texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.3.4 Modo PDU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

CAPÍTULO VI. FUNCIONAMIENTO DEL SISTEMA. . . . . . . . . . . . . . . . . . . . . . . . .

71

6.1 Diagrama de bloques del sistema de alarma. . . . . . . . . . . . . . . . . . . .

71

6.1.1 Interfaz de Acondicionamiento de Señales. . . . . . . . . . . . . . . . . . . 73 6.1.2 La Interfaz Bluetooth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

6.2 Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

6.3 Diagrama de bloque, flujo según aplicación. . . . . . . . . . . . . . . . . . . .

77

6.3.1 Interfaz Universal UTI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.3.2 Interfaz para señales análogas Conversor análogo/digital. . . . . . .

86

6.4 Activación de la alarma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

6.5 Aportes originales de este trabajo. . . . . . . . . . . . . . . . . . . . . . . . . . . .

96

6.6 Trabajos Futuros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Page 6: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

iv

CAPÍTULO VII. CONCLUSIONES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

BIBLIOGRAFÍA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

104

ANEXO A - Código fuente programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

106

ANEXO B - Características NXP LPC2106. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

127

B.1 Diagrama de bloques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 B.2 Descripción de pines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

129

ANEXO C - Esquemático y PCB del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

130

C.1 Esquemático del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 C.2 PCB del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

132

ANEXO D - Características ADXL103. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

133

D.1 Diagrama de bloques funcional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 D.2 Especificaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 D.3 Valores máximos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 D.4 Configuración de pines y descripción. . . . . . . . . . . . . . . . . . . . . . . . . . . 135

ANEXO E - Resumen de estado y resumen de comandos AT módulo Bluetooth . . . . . 136

E.1 Modos de operación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 E.2 Seguridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 E.3 Estado de operación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 E.4 Símbolos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 E.5 Categorías de los comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

138

Page 7: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

CAPÍTULO I

INTRODUCCIÓN

Page 8: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

1

1 Introducción

En este capítulo se presenta la introducción del proyecto de tesis “Estudio, optimización y

construcción de sistemas de monitoreo, seguimiento y/o alarma basado en telefonía móvil a bajo

costo”.

1.1 Identificación del problema

La percepción de los niveles de delitos de mayor connotación publica son dramáticamente

influenciados por los medios de comunicación. Un solo delito como un robo con características

extremadamente violentas y ampliamente difundidas, puede fácilmente incrementar el nivel de

inseguridad en una población, por un determinado periodo de tiempo.

Según estadísticas del ministerio del Interior de Chile, la Región de Magallanes y

Antártica Chilena presenta una tasa de denuncia promedio de 152.9 por cada 100 mil habitantes

para el periodo comprendido desde Enero del 2001 a Junio del 2006. Sin embargo las denuncias

de robo con fuerza y hurto simple representan mas del 60% de las denuncias (ver figura 1.1).

Estas denuncias se concentran principalmente en autos y casas. Sin embargo, actualmente no

existe en el mercado un sistema de monitoreo flexible de alarma optimizado a un usuario con

poder adquisitivo limitado.

Fig. 1.1. Distribución de tipos de denuncias en la región de Magallanes y Antártica Chilena.

Page 9: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

2

Por otro lado, actualmente Chile ocupa el primer lugar en el uso de celulares en Latinoamérica.

La cantidad de celulares llegó en marzo del 2007 a una proporción de 6.1 aparatos activos por

cada 10 habitantes, según datos difundidos por el Instituto Nacional de Estadística. El masivo uso de

los celulares ha logrado penetrar incluso hasta los estratos socioeconómicos mas bajo, con una gran

gama de accesorios disponibles en el mercado local.

En este trabajo se propone el estudio, optimización y construcción de un accesorio universal

para diferentes modelos de celulares que permita convertir un celular en un sistema de (a)

monitoreo, (b) seguimiento, y/o (c) alarma.

1.2 Solución

El sistema de seguridad propuesto para este estudio considera el diseño de módulos compatibles

con diferentes modelos de celulares. El objetivo final es que todo usuario de telefonía móvil podría

en el futuro aumentar sus prestaciones de servicio como:

1. monitoreo de niños,

2. seguimiento de vehículos o personas,

3. sistema de alarmas de bajo costo activadas por:

o detección de movimiento (sensor infrarrojo)

o vibración (sensor de impactos)

o detección de aumento de temperatura sobre un nivel preprogramado

o capacitiva (detección de la presencia humana).

Los usuarios más beneficiados serian aquellos con menos recursos, que ven la compra de un

sistema de alarma y/o seguimiento dedicado como un bien de no fácil acceso.

Page 10: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

3

1.3 Alcance del proyecto

El tamaño reducido del sistema, su gran flexibilidad y variedad de funcionalidades a diferentes

tipos de señales resulta en una amplia gama de posibles aplicaciones a detectar como:

1. Activación del sistema por cambios del nivel de sonido del ambiente: Este tipo de

función puede incorporar por ejemplo el monitoreo de bebés, quiebre de vidrios (autos,

casas y/o cabañas en localidades rurales pero con señal de telefonía móvil) y uso de fuerza

para abrir ventanas y/o puertas.

2. Activación del sistema por sensores de movimiento: El sistema detecta el

movimiento de personas basados en sensores infrarrojos conocidos como PIR

(Pyroelectric Infrared). Este tipo de función puede ser usado para el monitoreo de

espacios abiertos hasta alrededor de 15 metros de distancia.

3. Activación del sistema por sensores de vibraciones: El sistema detecta vibraciones

o impacto sobre objetos específicos basados en sensores de aceleración. Este tipo de

función puede ser usado desde el monitoreo de movimiento de un bebé y/o impacto sobre

un auto o caja fuerte.

4. Activación del sistema por sensores capacitivos: El sistema detecta cambios de la

constante dieléctrica en el medio ambiente en forma pasiva. Su gran ventaja con respecto

a los sensores de movimientos es su capacidad de monitoreo en espacios obstruidos por

objetos y la posibilidad de convertir el objeto que se desea proteger en parte del sensor.

Además su gran flexibilidad de instalación permite ser camuflado a un muy bajo costo.

Este tipo de función puede ser usado desde el monitoreo de casas hasta la protección de

objetos de alto valor como joyas, pinturas en un museo y obras de arte en general.

Page 11: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

4

5. Activación del sistema por cambios de temperatura: Al sistema se pueden conectar

sensores de temperatura tales como PT100, PT1000 y termistores. Un cambio de

temperatura a un determinado nivel podría ser considerado como un posible incendio, mal

funcionamiento de un equipo y/o proceso.

6. Activación del sistema desde otro sistema digital y/o análogo: El convertidor A/D

y sus entradas digitales TTL 5V y 3.6 V permite conectar directamente otros sistemas

electrónicos para complementar al sistema. Por ejemplo un anemómetro podría ser usado

para detectar condiciones de viento extrema, un sensor de humedad o el convertidor A/D

para detectar un problema de baja tensión en un banco de condensadores de un lugar

remoto.

Sin embargo las posibilidades no terminan aquí. La activación del sistema permite una gran

variedad de opciones de la forma de interacción con el usuario final tales como:

1. Programar el discado automático a un segundo celular del sistema: Esto permite en

un tiempo muy reducido (alrededor de 10 segundos) informar al usuario final que algún

evento está sucediendo. Durante el llamado existe la posibilidad de monitorear el tiempo

y tecla presionada en el celular modem, lo que el microcontrolador del sistema puede

traducir en un comando para activar o desactivar una sirena, toma y envío de una foto de

lo que está sucediendo, grabado de audio o video, bloquear el sistema eléctrico de un

auto, etc.

Page 12: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

5

2. Programar el envió de mensajes SMS (Short Message Service): Esto permite la

posibilidad de entregar mayores detalles sobre el origen específico que disparó la alarma.

En forma similar el usuario puede responder con un mensaje SMS, el que puede ser

interpretado por el microcontrolador para la ejecución de una acción similar a las

mencionadas en el punto 1. Programar el discado en modo de transferencia de datos: Esto

permitiría conectarse a un fax o modem para transferir el valor de una determinada

variable. Si una EEPROM se incluye en el sistema, se podría tener una datalogger remoto

con la capacidad de recuperar la información almacenada en un momento determinado.

Page 13: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

CAPÍTULO II

MICROCONTROLADOR

Page 14: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

6

2 Microcontrolador

Se ha decidido construir el sistema de alarma y/o monitoreo basado en un

microcontrolador por su versatilidad y bajo costo. El objetivo inicial es evitar la utilización de

PLCs (Programmable logic controller) debido a que su costo es superior al valor que debería

tener el sistema total terminado.

2.1 Selección del Microcontrolador

La mayoría de los microcontroladores modernos poseen en su interior un generador de

reloj integrado, memoria RAM y ROM/EPROM/EEPROM/FLASH. Adicionalmente, para

hacerlos funcionar necesitan una cantidad reducida de código para su configuración, alimentación

continua típicamente 1.8 V ó 3.3 V y cristal de sincronización. Adicionalmente según la

aplicación a la que se destine el microprocesador se puede encontrar un gran espectro de

dispositivos de entrada/salida, convertidores analógicos a digital, temporizadores, UARTs

(Universal Asynchronous Receiver-Transmitter) y buses de interfaz serie especializados como

I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface) y CAN (Controller Area

Network).

Por este motivo, las principales familias que más se utilizan según su aplicación son los:

• MSP430 (Mixed Signal Processors)

• PIC (Peripheral Interface Controller)

• AVR (Advanced Virtual Risc)

• ARM (Advanced RISC Machine)

A continuación se detallan brevemente.

Page 15: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

7

MSP430

El microcontrolador MSP430 de la empresa Texas Instruments es de ultra bajo consumo,

con un core de 16-Bit arquitectura RISC. Pueden correr hasta 8 Mhz y tiene un consumo de tan

solo 250uA por MIPS, lo que lo hace perfecto para dispositivos portátiles. Es posible, vía

software, configurar cada uno de los dispositivos que deberán desconectarse en forma

intermitente o permanente para la optimización del consumo energético.

Lo Positivo

• Muy bajo consumo: 250uA por MIPS

• Un producto muy desarrollado con una arquitectura limpia, permite portar código

a otro miembro de la familia MSP430 casi sin necesidad de modificación.

• Disponible en bajas cantidades a través de los distribuidores de Texas Instruments

• Muchas aplicaciones desarrolladas y códigos de ejemplo.

• Muy buen rango de periféricos: ADC y DAC de precisión, Comparadores,

OAMPs, LCD Drivers, SPI, UART, DMA.

• Extremadamente bajo costo por debajo del dólar americano en cantidades

industriales

Lo negativo

• Posee una arquitectura Von Neuman, las instrucciones se toman de 1 a 4 bytes y

utilizan de 1 a 6 ciclos de reloj.

• No existe versiones disponibles para aplicaciones de alta frecuencia (sobre 50

MHz)

Page 16: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

8

PIC

Los microcontroladores PIC son unos de los más populares de 8-bit para aplicaciones de

a nivel de principiante y aplicaciones de poco requerimiento tecnológico. La empresa Microchip

tiene cientos de diferentes microcontroladores desde los pequeños en encapsulados SOT23 hasta

los 84-PLCC. Ellos pueden correr hasta 40Mhz y ejecutar instrucciones cada 4 ciclos de reloj.

Lo Positivo

• Los dispositivos como el PIC10Fxx llegan a costar $0.40 cuando se compran en

volúmenes.

• Software de desarrollo en assembler gratuito (MPLAB)

• Se encuentra una gran gama de dispositivos con diferentes tamaños de memorias y

cantidad de periféricos.

• Los puertos GPIO pueden entregar hasta 20mA, permitiendo manejar LED`s y

otros dispositivos directamente.

• Hay disponibles para rangos de temperaturas extendidos de -40 a +125ºC

Lo Negativo

• Escribir un programa en assembler es un arte que no muchos dominan y puede

extender el código a cientos de líneas.

• Algunos de los nuevos dispositivos tienen bugs de hardware y no son tan estables

como los antiguos OTP (One-Time-Programmable).

Page 17: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

9

ARM

Los microcontroladores ARM [1] son dispositivos de altas prestaciones, con un core

RISC de 16/32bits. El mercado de los ARM es uno de los que ha crecido más rápido en cuanto a

microcontroladores se refiere. Los precios de los ARM son similares a los dispositivos de 8 bit,

sin embargo proveen mucho más poder de procesamiento y mayor número de periféricos que

cualquier dispositivo de 8 bit. Se encuentran disponibles desde distintos proveedores como:

Texas Instruments, Atmel, Philips, OKI, ST, Cirrus Logic, Analog Devices y otros.

Muchos expertos en el tema dicen que dentro de 5 años los ARM reemplazaran la

industria ocupada por la arquitectura 8051 en la mayoría de las aplicaciones. Actualmente la

arquitectura ARM está dominando en el uso de PDA y celulares inteligentes, y sus últimas

versiones están orientadas a los juegos como los Nintendos que requieren un gran potencial para

procesamiento de datos e imágenes.

Lo positivo

• Muy rápidos: la mayoría de los ARM7 trabajan al menos a 60 MHz reales (una

instrucción ejecutada por ciclo de reloj) y los ARM9 al menos desde 150MHz

siendo mucho más poderosos que los antiguos procesadores Intel 386.

• Bajo Consumo: Los ARM7 necesitan aproximadamente 0.5-1mA por Mhz.

• Gran rango de Periféricos: ADC, DAC, USB, SPI, UART, I2C, CAN, Ethernet,

SDRAM.

• Memoria Flash Interna: 32-512KB.

• Memoria Ram Interna: 4-64KB.

• Programación ISP (In-System Programming) sin necesidad de hardware adicional

pueden programarse incluso desde la puerta RS-232 de un computador personal.

• Acelerador de memoria por hardware con predicción de saltos.

Page 18: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

10

Lo Negativo

• Complejo de utilizar para principiantes: Definitivamente no es un

microcontrolador con el que se puedan dar los primeros pasos para aprender

sobre microcontroladores sin un guía a nivel de hardware y/o software.

Comparando las características de cada uno de los tipos de microcontroladores antes

expuestos se eligió un microcontrolador de la arquitectura ARM, debido principalmente a que

integra un módulo de aceleración de memoria (MAM). Este módulo hace que la frecuencia de

trabajo real sea la velocidad máxima de trabajo.

El modelo elegido fue el NXP LPC2106 [2] de la empresa Philips y tiene las siguientes

características:

Procesador 16/32-bit ARM7TDMI-S [3].

64 kB de RAM estática en el chip.

128 kB memoria de programación flash en el chip. Ancho de 128-bit con

interfaz/acelerador habilitado para una velocidad máxima de operación a 60 Mhz.

Programación en el sistema (ISP) y programación en aplicación (IAP) en el chip por

medio de software. La programación flash tiene un tiempo de 1mseg por líneas de 512 B.

En un sector o en todo el chip se borra en 400 mseg.

Controlador de interrupciones vectorizadas con configuración de prioridades y

direcciones de vectores.

Múltiples interfases serial las que incluyen dos UARTs (16C550), bus I2C (400 kbit/s) y

SPI.

Page 19: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

11

Dos temporizadores de 32-bit (7 canales de captura/comparación), un PWM (6 salidas),

reloj en tiempo real y Watchdog.

32 pines I/O de propósito general con 5 V de tolerancia con un encapsulado LQFP48 (7 ´

7 mm2).

60 Mhz máximo reloj de CPU disponible para programación en el chip con un tiempo de

configuración de 100 mseg.

Oscilador de cristal en el chip con un rango de operación de 1 Mhz a 30 Mhz.

Dos modos de bajo consumo de energía y de apagado

Procesador modo activo o modo apagado vía interrupción externa.

Activación/desactivación individual de función de periféricos para optimización de

energía.

Dos Fuentes de alimentación:

o CPU opera a un rango de tensión de 1.65 V a 1.95 V (1.8 V ± 8.3 %).

o I/O fuente de alimentación con un rango de 3.0 V a 3.6 V (3.3 V ± 10 %) con

pines I/O tolerantes a 5 V.

2.2 Arquitectura ARM

Se denomina ARM a una familia de microprocesadores RISC diseñados por la empresa

Acorn Computers en conjunto con la compañía Advanced RISC Machines Ltd., una empresa

derivada de la anterior.

El juego de instrucciones del ARM es similar al del MOS 6502, pero incluye

características adicionales que le permiten conseguir un mejor rendimiento en su ejecución.

Page 20: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

12

Para mantener el concepto tradicional de RISC, se incluyó el comando de ejecución en un

tiempo optimizado, siendo por lo general en un ciclo. La característica más interesante es el uso

de 4 bits como código condicional en la parte superior de cada instrucción, haciendo que cada

instrucción pueda ser una condición.

Este corte permite aumentar el espacio para algunos desplazamientos en el acceso a la

memoria, pero también permite evitar caer en ciclos fuera de control cuando la aplicación sea

para pequeñas instrucciones condicionadas. Además el procesador ARM tiene algunas

características que son raras en otras arquitecturas consideradas RISC, como el direccionamiento

relativo, y el pre y post incremento en el modo de direccionamiento.

Tiene dos modos de funcionamiento: el ARMI con instrucciones que ocupan 4 bytes, más

rápidas y potentes (hay instrucciones que sólo están en este modo) pero con mayor consumo de

memoria y de energía. Y el modo THUMB, más limitado, con instrucciones que ocupan 2 bytes y

con menor consumo de energía.

Quizás en parte por el uso condicional de usar 4 bits adicionales por cada instrucción, los

procesadores más recientes traen una instrucción de 16 bits, llamada Thumb. Este pretende

disminuir la cantidad de código escrito. Así como mejorar la densidad del código, el rendimiento

puede ser superior a un código de 32 bits en donde el puerto de memoria o ancho del bus de

comunicaciones son menores a 32 bits. El primer procesador con la tecnología Thumb fue el

ARM7TDMI.

La arquitectura ARM esta basada en los principios RISC.

• Posee 37 registros de 32 bits (16 disponibles)

• Algunas microprocesadores incluyen memoria caché.

• Estructura del bus tipo Von Neuman (ARM7), tipo Harvard (ARM9).

• Tipos de datos de 8/16/32 bits.

• Estructura simple que proporciona una excelente velocidad y un bajo consumo de potencia

• Todas las familias de procesadores ARM comparten el mismo conjunto de instrucciones.

Page 21: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

13

2.3 Familia ARM7

La familia ARM7 actualmente está formada por ARM7TDMI, ARM7TDMI-S, ARM7EJ

y ARM720T, cada uno de los cuales está dirigido a diferentes mercados; los que se describen a

continuación:

2.3.1 ARM7TDMI

ARM7TDMI es la versión más utilizada de la familia ARM7. Las siglas TDMI significan:

- T: “Thumb”, soporta esta extensión.

- D: “Debug-interface”.

- M: “Multiplier”, posee hardware multiplicador.

- I: “Interrupt”, la velocidad de interrupciones optimizadas.

Tiene una arquitectura de bus unificada, una lógica de depuración Embedded ICE-RT y

una Interfaz ETM (Embedded Trace Macrocell).

2.3.2 ARM7TDMI-S

Es la versión sintetizable del ARM7TDMI, con los mismos niveles de rendimiento y

características en conjunto. Está optimizado para las tendencias modernas de diseño donde

portabilidad y flexibilidad son clave, es decir, recorta el tiempo de entrega al mercado,

reduciendo el tiempo de desarrollo a la vez que aumenta la flexibilidad en diseño.

Page 22: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

14

2.3.3 ARM7EJ-S

Es la versión sintetizable, incorpora las bondades del ARM7TDMI. Su principal

característica es que soporta una ejecución acelerada de Java y operaciones DSP. Emplea

tecnología ARM Jazelle.

2.3.4 ARM720T

Está recomendado para los sistemas que requieren un manejo completo de memoria

virtual y espacios de ejecución protegidos, este es el caso de aplicaciones de plataforma abierta

como Windows CE, Linux, Palm OS y Symbian OS. Los aspectos destacables de este procesador

son:

• Memoria caché de 8K

• MMU: unidad controladora de memoria.

• Buffer de escritura.

• Bus de interfaz AMBA AHB.

• Coprocesador de interfaz ETM para expansión del sistema y debug en tiempo real.

• Coprocesador para control interno de la memoria caché y la MMU.

• Memoria externa puede soportar procesadores adicionales o canales DMA, con pérdida mínima

de rendimiento.

Page 23: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

15

2.4 Modulo de aceleración de memoria MAM

El Módulo del Acelerador de Memoria (MAM) es el encargado de optimizar la velocidad

de ejecución de instrucciones de la familia del LPC2100. Está presente en el bus local y se sitúa

entre la memoria Flash y la CPU (ARM). Básicamente permite acelerar el tiempo de acceso a la

Flash. La CPU es capaz de alcanzar una frecuencia de operación de 60 MHz, sin embargo la

memoria flash tiene un tiempo de acceso de 50ns (20 Mhz).

Debido a esto existen las siguientes posibilidades:

Solución 1. Ejecutar el programa en RAM.

Problema Escasa capacidad disponible

Solución 2. Memoria caché de instrucciones, almacena la zona de memoria más

reciente accedida.

Problema. Periférico complejo que consume un número elevado de

puertas lógicas.

MAM es un compromiso entre la complejidad de la caché y la facilidad para acceder la

CPU a la Flash.

Los modos de funcionamiento (ver figura 2.1) son:

o Deshabilitado (OFF): Los accesos a memoria se realizan directamente desde la

Flash.

o Parcialmente habilitado: Sólo los accesos a datos y los saltos se realizan

directamente desde la memoria flash.

o Habilitación total: Cada uno de los posibles accesos al módulo de memoria flash

están administrados por el MAM.

Page 24: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

16

ARM7

MAM

FLASH

ARM7

MAM

FLASH

ARM7

MAM

FLASH

MAM Disabled

Sequencial Code

Branches & Code Data

Instruction Prefetch Enable

All Code & DataPresent in Latches

Instruction Prefetch Enable

a) b) c)

Fig. 2.1: Modos de funcionamiento MAM a) Deshabilitado, b) Parcialmente habilitado, c)

Habilitación total.

Un único acceso a la memoria flash puede cargar 4 instrucciones (modo ARM) o hasta 8

(modo Thumb). La memoria de programa está interpolada entre 2 bancos de memoria (ver figura

2.2), haciendo que durante la ejecución de un código secuencial, una fase de búsqueda se ejecuta

en un banco, mientras se preparan los siguientes 128 bits. Esto asegura que estarán listos una vez

que los últimos 128 bits se hayan ejecutado.

Este mecanismo funciona mejor en modo ARM dónde el uso de los códigos de condición

para provocar los saltos, hace que el flujo del programa se mantenga lineal la mayor parte del

tiempo. En el caso de bucles o saltos cortos, los buffers intermedios retienen las instrucciones que

serán re-ejecutadas si así son requeridas.

Fig. 2.2: La memoria FLASH es arreglada como dos bancos interpaginados con un ancho de

memoria de 128 bit.

Page 25: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

17

2.5 Herramientas de desarrollo

Para el desarrollo de los programas se ha utilizado el software Keil µVisión 3, que

básicamente se trata de un compilador para lenguaje C, con la opción de herramientas tales como:

configuración del microcontrolador ARM LPC2106, depurador por simulación o en hardware,

programador y simulador de periféricos.

Se ha utilizado este software porque facilita la programación, la detección de errores en el

código y la simulación del funcionamiento de los programas. Cabe destacar que existe la

posibilidad de emular los periféricos existentes en el microcontrolador, y ver paso a paso los

procesos del programa.

Keil, permite escribir programas de más de 64 Kbytes, manejando de forma automática la

paginación que se haya podido implementar.

Los beneficios de Instrumentos de Desarrollo de Keil/ARM

Editor de código fuente

Base de datos del dispositivo para configurar el ambiente de desarrollo de herramientas.

Un administrador de proyecto que le permite crear y mantener los proyectos que se van

desarrollando.

Facilidad de desarrollo integrada para ensamblar, compilar, depurar y unir las

aplicaciones para sistemas embebidos.

Diálogos para todos los ambientes de herramientas para desarrollo.

Verdadera corrección de errores integrado con un simulador de CPU periférico de gran

velocidad.

Vínculos a los manuales, herramientas de desarrollo, hojas de datos de los dispositivos a

ser utilizados y guías de desarrollo.

Page 26: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

CAPÍTULO III

ACONDICIONAMIENTO DE SEÑALES

Page 27: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

18

3 Acondicionamiento de señales

En este capitulo se presentan las diferentes interfaces que serán utilizadas para adquirir

señales desde diferentes tipos de sensores y circuitos electrónicos. En la sección 3.1 se presentará

una interfaz Universal para sensores capacitivos, resistivos y desbalances de puentes resistivos.

Se explicará a grandes rasgos su principio de funcionamiento, eliminación de interferencias y

finalmente la auto-calibración de las mediciones en forma continua. En la sección 3.2 se

introduce el conversor análogo/digital utilizado para este proyecto. Finalmente, en la sección 3.3

se presentan las posibilidades de conectar este sistema a otro circuito digital.

3.1 Módulo Universal Transducer Interface (UTI)

En esta sección se describirán las características generales de la UTI, el método de

medición empleado, las técnicas de eliminación de efectos parásitos, principio de

funcionamiento, conexión con el microcontrolador y los diferentes modos de funcionamiento.

3.1.1 Características Generales

La UTI (Universal Transducer Interface) [4 - 5] es una interfaz que convierte señales

desde diferentes tipos de sensores a una señal modulada en el tiempo. Esta interfaz es

básicamente un oscilador de primer orden denominado Modified Martin-Oscillator, donde el

periodo es modulado por el sensor bajo medición. Los sensores bajo medición pueden ser

conectados directamente a la interfaz UTI sin necesidad de electrónica adicional.

Page 28: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

19

El UTI es una interfaz para:

• Sensores capacitivos en el rango de 0-2pF, 0-12pF, y 0-300pF

• Sensores resistivos tales como Pt100, Pt1000

• Termistores en el rango de 1-25KΩ

• Sensores basados en puentes resistivos en el rango de 250Ω-10KΩ con máximo

desequilibrio de +/- 4% ó +/- 0.25%

• Potenciómetros en el rango de 1KΩ-50KΩ

• Combinaciones de los sensores anteriores

Características más importantes:

Resolución y linealidad en el rango de 13-14 bits para los diferentes tipos de

sensores con un tiempo total de medición de 100ms

No requiere circuitos adicionales

Señal de salida simple que es compatible con casi todos los microcontroladores

Alimentación de 2.9 - 5.5 V (corriente < 2.5mA @ 5 V)

Interfaz para implementar medidas simultáneas que permiten la auto-calibración

de las mediciones mediante la técnica de las tres señales.

A continuación se describe el método de las tres señales, el que permite eliminar la

necesidad de implementar costosos procedimientos de calibración. Este método puede ser

utilizado en cualquier sistema lineal no-variable durante el período de medición.

3.1.2 Técnica de las tres señales

El método de las tres señales [6] se utiliza para implementar una calibración continua a

muy bajo costo. Supóngase un sistema lineal con una función de transferencia como:

i i offM k E M= ⋅ + (3.1)

Page 29: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

20

El principal requerimiento es que el sistema de medición debe tener una respuesta lineal

donde su sensibilidad y/o offset pueden cambiar en el tiempo con una constante de tiempo mucho

mayor al tiempo total de implementación de las tres mediciones.

Con el objetivo de obtener un resultado con alta resolución se tiene implementado en la

UTI la medición de tres mediciones: la del parámetro mensurado, la de una referencia y la del

offset del sistema de medición. Las tres señales medidas pueden ser representadas como:

off offM M= (3.2)

ref ref offM K E M= ⋅ + (3.3)

x x offM K E M= ⋅ + (3.4)

Al calcular el cuociente entre el parámetro mensurado y su referencia previa eliminación

de los offsets, se obtiene la siguiente proporción del resultado:

x off x

ref off ref

M M EMM M E

−= =

(3.5)

Cuando el sistema es lineal y no-variable durante las mediciones, se puede aseverar que el

offset y la ganancia (de la interfaz) permanecen constantes. Como resultado de la proporción

anterior, no depende de las constantes internas de la interfaz. Se desea enfatizar que la precisión

final de las mediciones depende de la precisión del elemento de referencia. Adicionalmente se

puede obtener 13-bit a 16-bit de resolución según el modo de operación. Como resultado el

sistema es más inmune a las variaciones de temperatura, envejecimiento de la electrónica, etc.

Según el principio de funcionamiento de la técnica de tres señales se necesita una memoria para

almacenar cada una de las mediciones.

Page 30: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

21

Por este motivo se utiliza un microcontrolador (NXP-LPC2106), que realiza el

almacenamiento de datos para hacer posteriormente el cálculo. Además, el microcontrolador se

utiliza para la medida de las señales moduladas en período. Tal sistema, combinado con un

elemento de sensado (sensor), el procesamiento de señal como la UTI, y un microcontrolador se

llama sistema inteligente de sensores basado en microcontrolador.

3.1.3 Técnica de las dos puertas

La técnica anterior permite eliminar los efectos de cambios lentos en la respuesta del

sistema, sin embargo no considera los efectos de conexiones. Comúnmente los alambres que se

conectan a los sensores agregan impedancias que se denominan impedancias parásitas, las que

afectan la exactitud del sistema. Por ejemplo, un cable coaxial típico de 50 ohms tiene una

capacidad asociada de alrededor de 100 pF/m que imposibilita cualquier medición si el sensor

trabaja en un rango de sólo 2 pF. Para una medida y conexión correcta del sensor, el efecto

parásito tiene que ser reducido al máximo o eliminado.

Una primera solución para la medición de impedancias es formar una red π como se

muestra en la figura 3.1.a donde el elemento sensado Zx con el elemento parásito son modelados.

Al elemento sensado se le aplica una tensión de excitación Vm y se mide la corriente de corto

circuito Im. La proporción Vm/Im depende sólo de la impedancia Zx si se tiene una fuente de

tensión ideal. El caso análogo para mediciones de admitancias se muestra en la figura 3.1.b.

Ahora Zx y los elementos parásitos forman una red escalera. Al elemento sensado se le aplica una

corriente de excitación Im y se mide la tensión Vm. Otra vez, la proporción Vm/Im depende sólo de

Zx. Ésta técnica se denomina la “Técnica de las dos puertas” [6], la que adicionalmente puede

generar excitaciones síncronas para eliminar los efectos de polarización en los electrodos.

Cuando el elemento sensado no puede ser modelado exactamente con uno de los circuitos

mostrado en figura 3.1, las mediciones finales son función del elemento sensado más las

impedancias parásitas.

Page 31: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

22

Vm Im

Zx

a)

VmIm Zx

b)

Zp1 Zp2

Zp1 Zp2

Zp4Zp3

Fig. 3.1: Dos tipos de mediciones del puerto para elementos sensados, donde el elemento sensado

y los elementos parásitos forman una red de π (a) y una red escalera (b)

En la práctica es usual tener que medir más de un elemento. El circuito mostrado en la

figura 3.2 muestra la medida de dos elementos sensados, donde los elementos parásitos y el

elemento sensado forman una red π. La tensión Vm es usada para detectar los elementos medidos

Zx1 y Zx2. Se desea destacar que este es el modelo simplificado, porque el interruptor mostrado en

la figura es multiplexado en el tiempo y la señal Vm es alterna sincronizada con cada fase.

Adicionalmente, es posible conectar a tierra los elementos que no están siendo sensados para

reducir los efectos entre impedancias. Lo más importante es que no se requiere multiplexación en

el lado del elemento sensado. La proporción Vm/Im depende sólo de Zx1 ó Zx2.

Page 32: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

23

VmIm

Zx1

Zx2

Fig. 3.2: Medida de dos elementos sensados donde el elemento sensado y los parásitos forman

una red π.

El circuito mostrado en la figura 3.3 muestra la medida de dos elementos sensados donde

los elementos sensados y los elementos parásitos forman una red escalera. La multiplexación en

el lado de excitación no se requiere, pero se necesita multiplexación adicional en el lado de los

elementos sensados. La proporción Vm/Im depende sólo de los elementos sensados Zx1 ó Zx2, y de

los interruptores. Se desea destacar que al aplicar el método de las tres señales, se necesita

implementar tres de estos circuitos en forma paralela con sus interruptores sincronizados.

Zx1

Zx2

Im Vm

Fig. 3.3: Medida de dos elementos de sensado donde el elemento sensado y los parásitos forman

una red escalera.

Page 33: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

24

Comúnmente, los modelos de los elementos sensados y los elementos parásitos son

mucho más complejos que los circuitos discutidos anteriormente. Los efectos extras de los

elementos parásitos pueden ser reducidos considerablemente usando señales correctas de

excitación y conexiones adecuadas. Consideraremos el circuito de la figura 3.4 como ejemplo.

Esta figura describe la medida de dos condensadores, donde Cx1 es seleccionado para la medida.

La capacitancia C1,2 modela el condensador parásito entre los dos electrodos transmisores. La

resistencia Ron,1 y Ron,2 modelan la resistencia equivalente de encendido de los interruptores.

R0

Vtr

Ron,1

Ron,2

C1,2

Vtr,1

Vtr,2

Im

Cx1

Cx2

Cp1a Cp1b

Cp2a Cp2b

Fig. 3.4: Medida de dos condensadores. La capacitancía C1,2 modela los condensadores parásitos

entre los dos electrodos transmisores.

Un buen método para reducir el efecto de C1,2 es conectar el electrodo transmisor de un

condensador no seleccionado a GND (el condensador Cx2 en la figura 3.4). Esto reducirá

notablemente la señal Vtr,i en el electrodo transmisor del condensador no seleccionado. El tipo de

señal adecuada para Vtr también puede ayudar.

Page 34: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

25

Aunque actualmente no existe un estándar del tipo de señal a utilizar, si se reconoce que la

señal sinuosidad pura y la señal cuadrada producen los mejores resultados. Cuando Vtr es una

onda cuadrada, la carga creada por Im representa el condensador Cx1 ó Cx2. Cuando Cx1 es

seleccionado, la contribución de Cx2 para esta carga decrece exponencialmente con el período de

Vtr, desde entonces la tensión Vtr,2 en el electrodo transmisor de Cx2 decrece exponencialmente.

Cuando Vtr es una onda sinusoidal, el tamaño de Im representa un condensador

seleccionado. Cuando Cx1 es seleccionado, la contribución de Cx2 para Im es proporcional a la

frecuencia de Vtr (para las frecuencias muy por debajo del polo de alta frecuencia).

Adicionalmente, cuando los valores de impedancias son función de la frecuencia de excitación se

debe considerar a lo menos la medición de la misma impedancia a diferentes valores de

frecuencias. Estos resultados más un complejo análisis de los resultados puede derivar en un

modelo más real del elemento sensado.

La aplicación de todas las técnicas anteriormente mencionadas en un solo sistema resulta

en un sistema de medición de bajo costo y robusto. La técnica de las tres señales es una auto-

calibración continua. La aplicación de esta técnica resulta en medidas con alta resolución con

respecto al elemento de referencia a un bajo costo. Adicionalmente la técnica de elemento

dinámico puede ser utilizada en circuitos integrados para mejorar la precisión de la ganancia de

los amplificadores a bajo costo. Por último la detección síncrona es poderosa para suprimir

interferencia entre señales. La aplicación de la medida de dos puertas es una técnica que reduce

fuertemente el efecto parásito de las conexiones de los elementos sensados como de los

elementos parásitos.

3.1.4 El Oscilador Martín Modificado

Uno de los modos de producir un corto-circuito y a la vez realizar la medición de esta

corriente como es requerido por el modelo de las dos puertas es usando un integrador. Su entrada

está virtualmente a tierra, por lo que la impedancia vista desde el elemento sensado es

prácticamente cero. Esta implementación se muestra en la figura 3.5.

Page 35: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

26

Cuando se agregan un comparador y un condensador de offset Coff al circuito mostrado en

la figura 3.5 y un lazo de retroalimentación negativo para generar una oscilación, se obtiene el

modulador mostrado en la figura 3.6. En esta figura se simplifica para efectos explicativos el lado

de excitación y se entrega información adicional de cómo el elemento sensado influye en la

frecuencia de oscilación. También se muestra la selección de fase que está obligada a aplicar la

técnica de tres señales. Este modulador es conocido como el Oscilador de Martín Modificado [6],

esta basado en el oscilador de primer orden de relajación. Todo lo anteriormente presentado se

utiliza con amplificadores de diferentes ganancias con la finalidad de realizar mediciones en

diferentes rangos capacitivos, resistivos y los desbalances en puentes.

Vtr,ref

Integrador+

-

Iint

Cint

Vint

Cref

Cx

Vtr,x

VLF

+-

Fig. 3.5: Posible medida de dos capacitancías.

Vtr

Integrador ComparadorSelección Fase+

-

+

-

+-Vcomp

Iint

Cint

Vint

Coff

Cref

Cx

Fig. 3.6: El Oscilador Martín Modificado, adaptado para aplicar la técnica de las tres señales.

Page 36: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

27

La salida del comparador Vtr se aplica directamente en los electrodos transmisores y

controla la corriente Iint. Un condensador Coff inyecta carga en el integrador en paralelo con Cref o

Cx. Esto asegura oscilación correcta cuando Cx es cero. Tres fases diferentes de medida son

seleccionadas sucesivamente, según la técnica de tres señales. Durante estas fases, Coff, Coff +Cref

y Coff +Cx se miden sucesivamente. Algunas señales son mostradas en la figura 3.7.

Tmm

VcompVint

Vtr

Iint

Vtr^

2Iint^

0

Fig. 3.7: Señales del Oscilador Martín Modificado

El período del Oscilador Martín Modificado Tmm,x durante la medida de Cx, es dada por:

( ),

int

2 x offmm x

V C CT

I

+=

ii

(3.6)

Donde V∧

tr es la amplitud peak- to- peak de Vtr e I∧

int la amplitud de Iint.

El Oscilador Martín Modificado es adecuado para medir condensadores, con un rango

completo de medida de 2pF, los artículos [6] reportaron a una linearidad de 14 el bit y una

resolución de hasta 50aF (casi 16 bits) dentro de un tiempo de medida de 100ms.

Page 37: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

28

Este tiempo se obtiene al introducir un contador digital de 10-bits a la salida del

comparador (no mostrado en la figura 3.7), cuya finalidad es reducir los errores de cuantización

de los períodos de oscilación y controlar el cambio de cada fase.

3.1.5 Comunicación con el microcontrolador

Como se explicó en la sección anterior, cada fase (medición de offset, referencia y

elemento sensado) finalmente genera un pulso cuyo periodo es proporcional y lineal

(requerimiento básico introducido para el sistema) en el rango de medición. Como ejemplo, la

figura 3.8 muestra dos ciclos completos de la señal de salida de nuestro transductor universal para

sensores UTI, cada uno consistente en tres fases.

Fig. 3.8: Señal de salida de la UTI, modo tres fases

En la primera fase Toff se mide el offset del sistema, sin embargo esta fase es doblemente

modulada con la intencionalidad de reconocer en tiempo-real cual modulación corresponde a la

medición del offset. Gran parte de la complejidad en la programación del microcontrolador

consiste en reconocer y sincronizar las fases de cada medición (más detalle será presentado en el

capitulo 6 de este trabajo). Durante la segunda fase Tref, se mide la señal de referencia y en la

última fase Tx se mide la señal sensada.

La duración de cada fase es proporcional a la señal que se midió durante esa fase, las que

para señales capacitivas puede ser representadas como:

Page 38: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

29

1 0offT N k C= ⋅ ⋅ (3.7)

( )1 0reff refT N k C C= ⋅ ⋅ + (3.8)

( )1 0x xT N k C C= ⋅ ⋅ + (3.9)

Para medidas resistivas:

2 0offT N k V= ⋅ ⋅ (3.10)

( )2 0reff refT N k V V= ⋅ ⋅ + (3.11)

( )2 0x xT N k V V= ⋅ ⋅ + (3.12)

Donde Cx ó Vx son las señales medidas, Cref ó Vref son las señales de referencia, C0 ó V0

son constantes (incluyendo las tensiones de offset, etc.) y K1 ó K2 son las ganancias. El factor N

representa el número de períodos internos del oscilador por cada fase que fue programado en el

contador digital de 10-bits explicado anteriormente. Finalmente existen dos modos de operación,

en el modo lento N = 1024 que representa que el contador digital utiliza sus 10-bits para reducir

los errores de cuantización y el modo rápido con N = 128 donde el contador digital utiliza sólo 8-

bits.

La señal de salida del UTI puede ser digitalizada por un contador de ciclos por parte del

microcontrolador, cuya resolución va directamente proporcional a la frecuencia de trabajo del

microprocesador. Para este trabajo el microprocesador LPC2106 se configuró para trabajar a una

frecuencia de 58.9824 MHz cuya resolución en el tiempo alcanza los 17 nseg. Esto tiene como

resultado los números digitales Noff, Nref y Nx correspondiente a cada fase. La proporción Cx/Cref

ó Vx/Vref ahora puede ser calculada internamente por el microcontrolador:

Page 39: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

30

REF

X

OFFREF

OFFX

CC

NNNNM =−−

=

ó

REF

X

OFFREF

OFFX

VV

NNNNM =−−

=

(3.13)

Esta proporción no depende del offset ni de la ganancia que tiene el sistema durante la

medición. Aun en el caso que existan variaciones en los valores del offset y la ganancia, estos

efectos son eliminados si los cambios se producen lentamente en el tiempo. Esta es una gran

ventaja para sistema que deben trabajar en un rango de temperaturas desde -30 C a +70 C.

El número de fases en un ciclo completo puede ser 3, 5 ó un número seleccionado por el

usuario en el modo 3, donde se utiliza un multiplexor externo [14]. Los modos de funcionamiento

se muestran en la siguiente tabla:

SEL1 SEL2 SEL3 SEL4 Función Num. de

fases 0 0 0 0 5 Condensadores, 0-2pF 5 0 0 0 1 3 Condensadores, 0-2pF 3 0 0 1 0 5 Condensadores, 0-12pF 5 0 0 1 1 Condensadores, 0-2pF/0-12pF, MUX externo - 0 1 0 0 3 Condensadores, 0-300pF 3 0 1 0 1 Resistencias de platino Pt100-Pt1000, 4 hilos 4 0 1 1 0 Termistores 1kΩ-25kΩ, 4 - hilos 4 0 1 1 1 2 ó 3 Resistencias de platino Pt100-Pt1000 5 1 0 0 0 2 ó 3 Termistores 1kΩ-25kΩ 5 1 0 0 1 Puentes resistivos, ref. es Vpuente, +/- 200mV 3 1 0 1 0 Puentes resistivos, ref. es Vpuente, +/- 12.5mV 3 1 0 1 1 Puentes resistivos, ref. es Ipuente, +/- 200mV 3 1 1 0 0 Puentes resistivos, ref. es Ipuente, +/- 12.5mV 3 1 1 0 1 Puentes resistivos y dos resistencias, +/-

200mV 5

1 1 1 0 Puentes resistivos y dos resistencias, +/- 12.5mV

5

1 1 1 1 3 Potenciómetros 1kΩ-25kΩ 5

Tabla 3.1. Modos UTI

Page 40: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

31

3.2 Módulo ADC

En esta sección se describirá el convertidor análogo digital, incluye sus características,

método de conversión, configuración y conexión con el microcontrolador.

3.2.1 Características

El convertidor análogo-digital seleccionado fue el AD7904 [7] de Analog Devices con 8-

bits de resolución, 4 canales multiplexados y una capacidad de muestrear hasta 1 MSPS. Este

dispositivo es compatible con la lógica de control del microprocesador seleccionado. El

convertidor A/D usa aproximaciones sucesivas como técnica de conversión. El multiplexor de 4

canales puede acceder directamente cualquier señal analógica en modo común.

Características:

Tasa máxima de rendimiento: 1 MSPS

VDD de 2.7 V a 5.25 V

Bajo consumo:

o 6 mW máx. a 1 MSPS con 3 V de alimentación

o 13.5 mW máx. a 1 MSPS con 5 V de alimentación

4 entradas con secuenciador

Amplio ancho de banda de entrada

o AD7904, 70 dB SNR con frecuencia de entrada de 50 kHz

Potencia Flexible / Gestión de la velocidad de reloj de serie

Alta velocidad de interfaz serie SPITM/QSPITM

Compatible MICROWIRETM/DSP

Modo de auto-apagado: 0.5 _A Max

Page 41: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

32

3.2.2 Aproximaciones sucesivas (SAR)

Los conversores por registros de aproximaciones sucesivas (SAR - successive

approximation register) son frecuentemente la arquitectura elegida por las aplicaciones de media

a alta resolución a tasas de muestreo medias (ver figura 3.9).

Fig. 3.9: Resolución Vs. Velocidad de muestreo

Los conversores SAR tienen una resolución entre los 8 y 18 bits, y usualmente no superan

las 10 millones de muestras por segundo (10MSPS). Una de sus ventajas es su bajo consumo

(tabla 3.2), razón por la cual fue seleccionado para este proyecto.

SAR Delta-Sigma Pipeline Flash

Velocidad ~ 10MSPS < 1MSPS ~ 100MSPS > GSPS

Resolución

hasta 16

bits

entre 10 y 16

bits

entre 8 y 14

bits

hasta 8~10

bits

Consumo

Bajo

(~10mW)

Muy bajo

(~1mW)

Medio

(~100mW)

Alto

(~1000mW)

Tabla 3.2. Comparación de tipos de muestreo

Page 42: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

33

Este tipo de conversores funcionan de una manera similar a una balanza antigua de

escalas. Es decir, de un lado se coloca el peso desconocido, y del otro se van colocando diferentes

pesos conocidos, hasta que se logra el equilibrio. Finalmente, el peso desconocido se obtiene por

la suma de los pesos conocidos colocados en el otro plato de la balanza. De igual forma ocurre

con los ADC del tipo SAR. La tensión analógica desconocida a la entrada es comparada con

diferentes tensiones sucesivas generadas por el ADC. Una vez completadas todas las

comparaciones, el resultado de cada comparación es exactamente la salida que entrega el

conversor. Sin embargo, al tratarse de un componente electrónico de alta velocidad, estas

comparaciones ocurren mucho más rápido que lo que esperamos de una balanza real.

Dado que estos tipos de conversores utilizan la técnica del sample & hold (muestreo y

retención), la arquitectura en ningún momento asume nada sobre la naturaleza de la señal de

entrada, y por lo tanto esta señal no tiene que ser continua. Esto hace que los SAR sean una

arquitectura ideal para aplicaciones donde se debe muestrear muchas señales y se utiliza un

multiplexor a la entrada del mismo, o bien cuando las muestras no son tomadas una seguida de la

otra sino que son tomadas cada algunos segundos o más, o también donde se requiera una

conversión rápida.

Los conversores SAR son ideales para aplicaciones de tiempo real, tales como el control

industrial, control de motores, instrumentos portables o a batería, y equipos de adquisición de

datos o señales.

Características más relevantes:

• Muy empleados (especialmente con μProcesadores)

• Alta resolución: 16 bits.

• Alta velocidad: Tc = n·TCLK ≈ μs (en teoría).

• Cada conversión es única e independiente de la anterior.

Page 43: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

34

• Su exactitud, linealidad y velocidad son el resultado directo de las características

del DAC (junto con su tensión de referencia) y del A.O.

3.2.3 El Registro de control del convertidor

Todas las operaciones del convertidor A/D son controladas por los bits del registro de

control (ver tabla 3.3). Los bits de este registro pueden seleccionar la entrada analógica a

convertir, el modo de conversión de un sólo canal o múltiples canales y el modo de conversión

continua o única.

Tabla 3.3. Registro de control

WRITE: El valor escrito en este bit del registro de control determina si los siguientes 11 bits van

a ser cargados en el registro de control o no.

SEQ1, SEQ0: El bit del SEQ1 en el registro de control es usado en conjunto con el bit del SEQ0

para controlar el uso de la función de secuencia (ver tabla 3.4).

SEQ1 SEQ0 Tipo de secuencia

0 X Con esta configuración la función de secuencia no se usa. El canal de entrada de

datos analógico seleccionado por cada conversión individual se determina por el

contenido de los bits de la dirección del canal ADD1, ADD0 antes de cada

operación de escritura. Este modo de operación refleja la operación tradicional

de un ADC multi-canal sin usar la función de secuencia, dónde se selecciona el

siguiente canal para la conversión (ver figura 3.10)

1 0 Si el SEQ1 y los bits SEQ0 se configura de este modo, entonces la función de

secuencia no será interrumpida en la finalización de la operación de escritura.

Esto permite que otros bits en el registro de control puedan ser modificados

Page 44: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

35

entre conversiones en una misma secuencia sin terminar el ciclo.

1 1 Esta configuración es usada en conjunto con los bits de la dirección del canal

ADD1, ADD0 para programar conversiones continuas en una secuencia

consecutiva de canales desde el Canal 0 hasta un canal final seleccionado por los

bits de la dirección del canal en el Registro de Control.

Tabla 3.4. Opciones para las funciones de secuencia

Fig. 3.10: Diagrama de flujo con SEQ1 Bit = 0, SEQ0 Bit = X.

ADD1, ADD0: Estos dos bits de la dirección están cargados al final de la secuencia de

conversión y seleccionan cuál canal analógico de entrada de datos debe ser convertido en la

siguiente transferencia serial, o pueden seleccionar el canal final en una secuencia consecutiva

descrito en la tabla 3. El canal seleccionado de entrada de datos es decodificado como se muestra

en tabla 3.5. Los bits de la dirección correspondiente al resultado de conversión son también

salida en DOUT antes de los 12 bits de datos. El siguiente canal en convertirse será seleccionado

por el MUX en el catorceavo ciclo por flanco de bajada de SCLK.

Page 45: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

36

ADD1 ADD0 Canales de entradas análogas

0 0 VIN0

0 1 VIN1

1 0 VIN2

1 1 VIN3

Tabla 3.5. Selección de canal.

PM1, PM0: Bits de Administración de Energía. Estos dos bits decodifican la modalidad de

operación del AD7904 como se muestra en la tabla 3.6.

PM1 PM0 Modo

1 1 Operación normal: En este modo, el AD7904 permanecer en el modo de máxima

potencia independientemente del estado lógico. Este modo permite que la tasa de

rendimiento sea la más rápido posible.

1 0 Apagado completo: En este modo, el AD7904 está en modo de apagado total con

todo el sistema de circuitos del AD7904 apagados. El AD7904 retiene la

información en el Registro de Control mientras esta apagado.

0 1 Auto apagado: En este modo, el AD7904 automáticamente entra modo apagado

total al final de cada conversión cuando el registro de control es actualizado. Se

enciende del apagado total en un tiempo de 1us y el usuario debería asegurar que

1us han transcurrido antes de tratar de realizar una conversión válida.

0 0 Operación inválida: Esta configuración no se admite.

Tabla 3.6. Modos de administración de energía.

Page 46: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

37

RANGE: Este bit selecciona el rango de la entrada analógica para ser usado en el AD7904. Si es

puesto a 0 el rango de la entrada analógica se extenderá de 0 V a 2 × REFIN. Si es puesto a 1 el

rango de la entrada analógica se extenderá de 0 V a REFIN (para la siguiente conversión). Para 0

V a 2 × REFIN, VDD 4.75 V a 5.25 V.

CODING: Este bit selecciona el tipo de codificación que se usara en la salida como resultado de

conversión. Si este bit es configurado como 0 se codificara la salida en complemento de dos. Si el

bit es configurado como 1 la salida será directamente binaria (para la siguiente conversión).

3.2.4 Interfaz serial SPI

Este conversor posee comunicación SPI (Serial Peripheral Interface) el que fue

implementado en el microprocesador LPC2106 [8] según las siguientes especificaciones:

La señal CS inicia la transferencia de datos y el proceso de conversión. Cuando se

produce un flanco de bajada en el CS se mantiene en el modo hold, saca al bus de datos del

tercer estado y procesa los datos analógicos a partir de ese momento. Se inicia la conversión en

este punto y se requiere de 16 ciclos SCLK para completar la conversión.

En los catorceavo flanco de caída SCLK termina el envió de los datos convertidos como

se muestra en figura 3.11 en Punto B. En el decimosexto flanco de bajada SCLK, la línea DOUT

regresará en tercer estado. Si se produce un flanco de subida en CS antes de que 16 SCLKs

hayan transcurrido, la conversión será finalizada, la línea DOUT regresará en tercer estado, y el

Registro de Control no estará actualizado; de otra manera DOUT regresa a tercer estado en el

decimosexto flanco de bajada de SCLK como se muestra en figura 3.11.

Fig. 3.11: Diagrama de tiempos del conversor AD7904

Page 47: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

38

El resultado de conversión en la salida DOUT es una palabra de 16 bits. Esta secuencia de

datos de 16 bits (ver figura 3.11) consiste de dos ceros al inicio, dos bits de la dirección indicando

el canal correspondiente a la conversión, seguido por 8 bits de datos de conversión y 4 ceros

seguidos, respectivamente.

3.2.5 Diagrama de conexión típico

La figura 3.12 muestra un diagrama de conexión típico para el AD7904. En este esquema

el pin GND está conectado en el plano analógico de tierra del sistema. En figura 3.12, REFIN está

conectado a 5V como fuente de referencia, para proveer un rango analógico de entrada de datos

de 0V a 5V (si el bit de RANGO es 1). Aunque el AD7904 está relacionado a un VDD de 5V, la

interfaz serial está relacionada a un microprocesador 3.3 V. El pin VDRIVE del AD7904 está

relacionado a la misma alimentación de 3.3 V del microprocesador para permitir una interfaz de

lógica de 3.3V.

Fig. 3.12: Conexión con el microcontrolador

Page 48: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

39

3.3 Otras posibilidades de conexión

El microcontrolador utilizado tiene 32 pines I/O de propósito general de los cuales 4 pines

están disponibles para otras aplicaciones. Estos pines soportan tensiones TTL de 5V. Existen

cinco fuentes de alimentación diferentes en el PCB que son: 1.8V, 3.3V, 5V, -15V y +15V. En

consecuencia se pueden agregar circuitos digitales externos que trabajen con tensiones de este

orden, los que pueden ingresar señales digitales que causen el disparo de la alarma (previa

reprogramación del microcontrolador).

Page 49: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

CAPÍTULO IV

COMUNICACIÓN INALAMBRICA BLUETOOTH

Page 50: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

40

4 Comunicación inalámbrica Bluetooth

Se implementó la comunicación inalámbrica Bluetooth principalmente por la

estandarización gradual que ha tenido esta tecnología en el mercado de los teléfonos móviles.

Actualmente casi todos los modelos de teléfonos móviles de gama media ya tienen integrado un

módulo Bluetooth. Esto facilita la tarea de selección del teléfono móvil el que es controlado por

el microcontrolador vía su MODEM Bluetooth.

En este capitulo se explicarán los conceptos relacionados a la comunicación inalámbrica

Bluetooth que se estudió para seleccionar el módulo Bluetooth y el teléfono móvil que se conecta

directamente al sistema de alarma. Además se describirán los protocolos y perfiles asociados que

se utilizaron para establecer la comunicación inalámbrica Bluetooth.

4.1 Generalidades del protocolo Bluetooth

Bluetooth define un estándar global, tanto a nivel de hardware como de software para la

comunicación inalámbrica. Esta Tecnología posibilita la transmisión de voz y datos entre

diferentes equipos mediante un enlace por radiofrecuencia a distancias cortas.

Uno de los objetivos de esta tecnología es la posibilidad de reemplazar o eliminar la gran

cantidad de cables y conectores que enlazan unos dispositivos con otros. Además esta tecnología

pretende facilitar la interacción y sincronización de los diferentes dispositivos tanto móviles

como fijos que se desee, todo ello sin necesidad de visión directa entre ellos.

Page 51: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

41

4.2 Ventajas de la tecnología Bluetooth

La especificación Bluetooth puede facilitar la conexión no sólo al sistema telefónico o a

Internet, sino también entre dispositivos. De hecho, el enfoque de alto nivel de tecnología

inalámbrica Bluetooth y facilidad de configuración tiene el potencial de cambiar los actuales

paradigmas de conectividad de redes y computadoras móviles. Además, como la tecnología

inalámbrica Bluetooth soporta tanto voz como datos y una amplia gama de aplicaciones reforzará

las ofertas de computadoras móviles de todos los fabricantes.

La elección de una red de área local inalámbrica que utilice las especificaciones

Bluetooth, de infrarrojos, HomeRF u 802.11 dependerá de las aplicaciones que haya que

soportar: A menudo se encontrará con que requiere más de una de esas tecnologías para cumplir

con sus necesidades. La Tabla 4.1 resume las aplicaciones típicas de estas tecnologías.

Existen puntos de convergencia entre Bluetooth y otras tecnologías inalámbricas. Por

ejemplo, las tecnologías inalámbricas, infrarroja y Bluetooth ofrecen implementaciones

complementarias para intercambio de datos y aplicaciones de voz. Las capacidades de los

dispositivos inalámbricos Bluetooth complementan las facilidades de uso, tipo apuntar y

disparar, de los infrarrojos con envío de señales omni-direccionales, comunicaciones a mayor

distancias y la capacidad de penetrar superficies sólidas. Para algunos dispositivos, tener

componentes Bluetooth e infrarrojos proporciona la solución óptima inalámbrica para corto

alcance. Para otros dispositivos, la elección de añadir componentes Bluetooth o infrarrojos se

basará en los modelos de aplicaciones y la utilización deseada. La Historia de las comunicaciones

inalámbricas de corto alcance aún se está escribiendo: tanto la infrarroja como la tecnología

Bluetooth serán los motores principales para el desarrollo de esta área.

Page 52: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

42

Tecnología Aplicaciones típicas

Bluetooth Eliminación de cables, comunicación entre dispositivos para voz y datos,

redes PAN, control remoto de dispositivos, comercio electrónico móvil.

Infrarrojos Eliminación de cables, transferencia de archivos a alta velocidad entre

dispositivos, control local de dispositivos.

HomeRF Eliminación de cables, comunicación de datos entre computadoras y entre

computadoras y periféricos, en el hogar o en una oficina pequeña.

Lan inalámbrica

802.11

Eliminación de cables, comunicación de datos entre computadoras y entre

computadoras y periféricos, en oficinas corporativas.

Tabla 4.1. Aplicaciones típicas de las tecnologías inalámbricas.

Principales ventajas del Bluetooth:

• Facilitar las comunicaciones entre equipos móviles y fijos.

• Eliminar cables y conectores entre éstos.

• Conecta entre sí teléfonos móviles, computadores portátiles, manos libres para el coche,

reproductores de MP3 y otros dispositivos.

• Las conexiones han mejorado con el Bluetooth y consigue transmitir sonido estéreo,

transferir datos o establecer comunicaciones de voz.

• El bajo consumo de energía, su reducido tamaño y el escaso coste de los chips debido a su

masificación permite emplearlo en los dispositivos más pequeños.

• Es sencillo de instalar y configurar. La conexión se realiza sin cables. El proceso resulta

muy sencillo para los nuevos usuarios: una vez adquirido el producto Bluetooth, basta con

comprobar los perfiles disponibles y conectarlo a otro dispositivo Bluetooth con los

mismos perfiles. A continuación, se debe introducir un código PIN, similar al que se

emplea al sacar dinero en un cajero.

Page 53: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

43

Principales desventajas del Bluetooth:

• Problemas de seguridad

• Necesidad de protocolos para la conectividad, que a nivel de usuario es simple, sin

embargo cuando se automatiza resulta en un gran desafío para el usuario principiante.

4.3 ¿Qué son los Protocolos?

Los protocolos son de una forma consensuada en la que los dispositivos intercambian

información. Para cada tipo de tecnología de red, incluyendo la de la especificación Bluetooth,

hay un conjunto de protocolos que definen exactamente cómo se pasan los mensajes por el

enlace. El protocolo define el formato de esos mensajes, incluyendo qué partes se reservan para

cosas como la dirección, el control de errores y los datos de usuario.

Los protocolos definen cómo se pasa el trafico de señales por el enlace, se parecen mucho

a los protocolos que todos observamos en la vida diaria.

Si no hubiera protocolos comúnmente aceptados, una red no podría funcionar

correctamente, ya que los fabricantes de hardware y los desarrolladores de software harían las

cosas a su manera. El resultado sería productos propios que no podrían comunicarse entre sí en la

misma red.

Page 54: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

44

4.4 Protocolos fundamentales de Bluetooth

Los protocolos fundamentales son específicos de la tecnología inalámbrica Bluetooth [9],

los que fueron desarrollados por el SIG Bluetooth. RFCOMM y el protocolo TCS BIN también

fueron desarrollados por el SIG Bluetooth, pero se basan en estándares existentes: ETSI TS 07.10

y la Recomendación ITU-T Q.931. Los protocolos fundamentales, mas la radio Bluetooth (como

se muestra en la figura 4.1), son requeridos por la mayoría de dispositivos Bluetooth, mientras

que el resto de protocolos sólo se utilizan cuando se necesitan.

vCard/vCal

OBEX

WAE

WAP

UDP TCP

IP

PPP

RFCOMM

ComandosAT

TCS BIN SDP

L2CAP

Audio

LMP

Banda Base

Radio Bluetooth

Fig. 4.1: Las aplicaciones interoperables que soportan los modelos de uso de Bluetooth se

construyen encima de esta pila de protocolos Bluetooth.

Page 55: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

45

4.4.1 Banda Base

El nivel de banda base permite el enlace físico de RF entre unidades Bluetooth dentro de

una Picorred (red formada por dos o más unidades o equipos que comparten un canal). Como los

sistemas RF Bluetooth utilizan la tecnología de expansión de espectro por saltos de frecuencia,

donde los paquetes se transmiten en franjas de tiempo predefinidas por frecuencias predefinidas,

este nivel utiliza procedimientos de averiguación y localización para sincronizar la frecuencia de

saltos de transmisión y los relojes de los diferentes dispositivos Bluetooth.

Este nivel proporciona los dos tipos diferentes de enlaces físicos, con sus

correspondientes paquetes de banda base: síncrono orientado a la conexión (SCO, Synchronous

Connetion-Oriented) y asíncrono sin conexión (ACL, Asynchronous Connetionless), que se

pueden transmitir de forma multiplexada sobre el mismo enlace RF. Los paquetes ACL sólo se

utilizan para datos, mientras que un paquete SCO puede contener sólo audio y de datos pueden

ofrecerse con diferentes niveles de corrección de errores, y se pueden cifrar para asegurar la

confidencialidad. Además, a los mensajes de control y de gestión de enlace se le asigna un canal

especial a cada uno.

Los paquetes que contienen datos de audio se pueden transferir entre uno o más

dispositivos Bluetooth, haciendo posible la existencia de varios modelos de uso. Los datos de

audio en los paquetes SCO se encaminan directamente hacia y desde la banda base, y no pasan

por L2CAP. El modelo de audio es relativamente sencillo dentro de la especificación Bluetooth;

dos dispositivos Bluetooth cualesquiera pueden enviar y recibir datos de audio entre ellos

simplemente abriendo un enlace de audio.

Page 56: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

46

4.4.2 Protocolo de gestor de enlace (LMP)

LMP es el responsable de la configuración y control del enlace entre dispositivos

Bluetooth, incluyendo el control y negociación del tamaño de los paquetes de banda base.

También se utiliza para la seguridad; autenticación y cifrado; generación, intercambio y

comprobación de las claves de cifrado y de enlace. LMP también controla los modos de

administración de energía y los ciclos de trabajo del dispositivo de radio Bluetooth, y los estados

de conexión de una unidad Bluetooth dentro de una picorred.

El gestor de enlace del lado receptor filtra e interpreta los mensajes LMP, por lo que

nunca pasan a los niveles superiores. Los mensajes LMP tienen una prioridad más elevada que

los datos del usuario. Si un gestor de enlace necesita enviar un mensaje, no se verá retrasado por

el tráfico L2CAP. Además, los mensajes LMP no se confirman explícitamente, ya que el canal

lógico ofrece un enlace suficientemente fiable, lo que hace a las confirmaciones innecesarias.

4.4.3 Protocolo de adaptación y control del enlace lógico (L2CAP)

El protocolo de adaptación y control del enlace lógico (L2CAP) soporta la multiplexación

de protocolos del nivel superior, la segmentación y reensamblado de paquetes, y los mecanismos

de calidad de servicio (QoS, Quality of Service). L2CAP permite que protocolos y aplicaciones

de nivel superior transmitan y reciban paquetes de datos de hasta 64 kilobytes de longitud.

Aunque el protocolo de banda base ofrece los tipo de enlace SCO y ACL, L2CAP está definido

sólo para enlaces ACL y no hay planeado soporte para enlaces SCO. Los canales con calidad de

voz para aplicaciones de audio y telefonía pueden funcionar sobre enlaces SCO de banda base.

Sin embargo, los datos de audio pueden ensamblarse en paquetes y enviarse utilizando protocolos

de comunicación que funcionen sobre L2CAP.

Page 57: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

47

4.4.4 Protocolo de descubrimiento de servicios (SDP)

Los servicios de descubrimientos son un elemento importante en la arquitectura Bluetooth

ya que proporcionan la base para todos los modelos de uso. Por medio de SDP, se puede

consultar la información de los dispositivos, los servicios que ofrecen las características de dichos

servicios. Habiendo localizado los servicios disponibles en las cercanías, el usuario puede elegir

cualquiera de ellos. Después de eso, se puede establecer una conexión entre dos o más

dispositivos Bluetooth.

4.5 Protocolos de sustitución de cable

La especificación Bluetooth incluye dos protocolos que suministran señalización de

control a través de enlaces inalámbricos, emulando el tipo de señalización que normalmente se

asocia con los enlaces por cable.

4.5.1 RFCOMM

RFCOMM es un protocolo de emulación de línea serie basado en un subconjunto del

estándar TS 07.10 del Instituto Europeo de Estándares de Telecomunicaciones (ETSI, European

Telecommunications Standards Institute), que también se utiliza para los dispositivos de

comunicaciones GSM (Global System for Mobile, sistema global para móviles). El ETSI es una

organización sin ánimo de lucro que elabora los estándares de telecomunicaciones que se utilizan

en Europa.

Page 58: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

48

El protocolo RFCOMM proporciona una emulación de los puertos serie RS–232 sobre el

protocolo L2CAP. Este protocolo de “sustitución de cable” emula las señales de control y datos

RS–232 sobre la banda base, proporcionando ambas capacidades de transporte a los servicios de

niveles superiores que utilizan el cable serie como mecanismo de transporte.

RFCOMM soporta aplicaciones que hacen uso del puerto serie de un dispositivo. En una

aplicación simple, el segmento de comunicaciones es un enlace Bluetooth de un dispositivo a

otro. Donde el segmento de comunicaciones es otra red, se utiliza la tecnología inalámbrica

Bluetooth para la ruta entre el dispositivo y un dispositivo de conexión a la red, como un módem.

RFCOMM solo se ocupa de la conexión entre dispositivos Bluetooth en el caso de una conexión

directa, o entre el dispositivo Bluetooth y un módem en el caso de una red. RFCOMM puede

soportar otras configuraciones, como módulos que se comunican vía tecnología inalámbrica

Bluetooth por un lado y ofrecen una interfaz de cable por el otro. Estos dispositivos no son

realmente un módem, pero ofrecen un servicio similar.

4.5.2 Protocolos de control de telefonía

TCS Binary o TCS BIN es un protocolo orientado a bit que define las señalizaciones de

control de llamada para establecer llamadas de voz y datos entre dispositivos Bluetooth. También

define los procedimientos de gestión de movilidad para manejar grupos de dispositivos TCS

Bluetooth. TCS BIN se basa en la recomendación Q.931 emitida por la Unión Internacional de

Telecomunicación (ITU-T), una agencia de las Naciones Unidas que coordina los estándares para

redes y servicios de telecomunicación globales. Q.931 es la especificación ITU-T para el control

básico de llamadas bajo RDSI (Red Digital de Servicios Integrados).

Page 59: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

49

Además de TCS BIN, el SIG Bluetooth ha definido un conjunto de comandos AT que

definen cómo pueden controlarse un módem y un teléfono móvil en varios modelos de uso; éstos

se verán más adelante. Los comandos AT están basados en las recomendaciones ITU-T V.250 y

ETS 300.916 (GSM 07.07).

4.6 Perfiles generales de Bluetooth

El SIG Bluetooth ha identificado varios modelos de uso, cada uno de los cuales está

acompañado por un “perfil”. Los perfiles definen los protocolos y características que soporta un

modelo de uso particular. Si dispositivos de distintos fabricantes cumplen con la misma

especificación de un perfil Bluetooth, podemos esperar que interactúen correctamente entre ellos

cuando se utilicen para un servicio y un uso particular.

Un perfil define los mensajes específicos y los procedimientos usados para implementar

una característica. Algunas características son obligatorias, otras son opcionales y algunas

pueden ser condicionales. Todas las características están definidas de manera unívoca, es decir,

que si una característica se halla implementada, debe estarlo de una manera específica. Esto

asegura que la misma característica trabaje de la misma forma en cada dispositivo, independiente

del fabricante.

Se usan cuatro perfiles generales en los diferentes modelos de uso: el Perfil de acceso

genérico (GAP, Generis Access Profile), el Perfil de puerto serie (SPP, Serial Port Profile), el

Perfil de aplicación de descubrimiento de servicios (SDAP, Service Discovery Application

Profile) y el Perfil genérico de intercambio de objetos (GOEP, Generic Object Exchange Profile).

Este capítulo trata dos perfiles generales: Perfil de acceso genérico y perfil de puerto serie.

Page 60: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

50

4.6.1 Perfil de acceso genérico (GAP)

El perfil de acceso genérico define los procedimientos generales para descubrir

dispositivos Bluetooth, así como los procedimientos de gestión de enlace para establecer una

conexión entre ellos. Así, el principal propósito de este perfil es describir el uso de los niveles

inferiores de la pila de protocolos Bluetooth: el control de enlace LC y el protocolo de gestión de

enlace LMP. También están definidos en este perfil los procedimientos relacionados con la

seguridad, en cuyo caso entran en juego los niveles más altos: L2CAP, RFCOMM y OBEX.

Además, el perfil contempla los requisitos de formato comunes para los parámetros

accesibles desde la interfaz de usuario. En otras palabras, el perfil de acceso genérico describe

como deben de comportarse los dispositivos mientras se encuentran en los estados de espera y de

establecimiento de conexión. Esto garantiza, a su vez, que siempre se puedan establecer enlaces y

canales entre dispositivos Bluetooth. Si los dispositivos operan de acuerdo con varios perfiles

simultáneamente, el perfil GAP describe los mecanismos para gestionarlos todos.

El perfil GAP define los procedimientos generales para descubrir las identidades, nombres

capacidades básicas de otros dispositivos Bluetooth que se encuentren en modo “descubrible”.

Un dispositivo en el modo descubrible está listo para aceptar conexiones y solicitudes de

servicios de otro dispositivo. Incluso si dos dispositivos Bluetooth no comparten una aplicación

común, deben ser capaces de comunicarse entre ellos para determinar esto. Cuando dos

dispositivos Bluetooth comparten la misma aplicación, pero pertenecen a fabricantes distintos, la

capacidad para establecer una conexión no debe verse impedida porque los fabricantes hayan

utilizado nombres diferentes para las capacidades básicas Bluetooth en el nivel interfaz de

usuario, o porque sus productos implementen los procedimientos básicos en una secuencia

diferente.

Page 61: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

51

Los dispositivos Bluetooth que no cumplan cualquier otro perfil Bluetooth deben, al

menos, cumplir con el perfil GAP. Esto asegura la interoperabilidad básica y la coexistencia entre

todos los dispositivos Bluetooth, independientemente del tipo de aplicación que soporten. Los

dispositivos que cumplan otro perfil Bluetooth pueden usar adaptaciones de los procedimientos

genéricos, tal como se especifiquen en ese perfil. Sin embargo, deben seguir siendo compatibles

con el perfil GAP en el nivel de los procedimientos genéricos (ver figura 4.2).

Perfil de acceso genérico Perfiles TCS BIN

Perfil de Telefoníainalámbrica

Perfil deintercomunicación

Perfil de descubrimientode servicios

Perfil genérico de intercambio de objetos

Perfil de sincronización

Perfil de carga de objetos

Perfil de transferenciade archivos

Perfil de acceso telefónicoa redes

Perfil de acceso a redes Lan

Perfil de Fax

Perfil de auriculares

Perfil de puerto serie

Fig. 4.2: Relación entre el perfil de acceso genérico y el resto de los perfiles y modelos de

uso Bluetooth.

Page 62: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

52

4.6.2 Perfil de Puerto Serie (SPP)

Cuando la tecnología inalámbrica Bluetooth se utiliza para sustituir el cable, se emplea el

Perfil de puerto serie (SPP) para el canal resultante orientado a conexión.

Este perfil está construido sobre el perfil de acceso genérico y define cómo deben

configurarse los dispositivos Bluetooth para emular una conexión a través de un cable serie

utilizando RFCOMM, un protocolo de transporte sencillo que emula los puertos serie RS-232

entre dos dispositivos homólogos (ver figura 4.3). RFCOMM se utiliza para el transporte de los

datos de usuario, de las señales de control de módem y de los comandos de configuración. La

sesión RFCOMM se ejecuta sobre un canal L2CAP.

Aplicación A

RFCOMM

LMP L2CAP

Banda base

Dispositivo A

Emulación del puerto serie u otra API

SDP

Aplicación B

RFCOMM

LMP L2CAP

Banda base

Dispositivo B

Emulación del puerto serie u otra API

SDP

Fig. 4.3: Modelo de protocolo para una conexión mediante cable serie emulado.

Las aplicaciones de ambos son normalmente aplicaciones heredadas que esperan que la

comunicación tenga lugar a través de un cable serie, que es el que emula el perfil. Cualquier

aplicación heredada puede ser ejecutada sobre cualquiera de los dos dispositivos, utilizando el

puerto serie virtual como si un cable serie físico, con señalización de control RS-232, estuviese

conectando los dos dispositivos.

Page 63: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

53

En una configuración de puerto serie simple, en la que haya dos computadoras conectadas

mediante el cable serie emulado, un dispositivo toma la iniciativa para crear una conexión con el

otro dispositivo. Este dispositivo se llama Iniciador, mientras que el dispositivo a que se le

solicita la conexión se denomina Aceptador. Cuando un Iniciador inicia el establecimiento del

enlace, se realizan procedimientos de servicios para establecer la conexión de cable serie

emulado.

Bajo el perfil SPP, se soportan velocidades de datos de hasta 128 Kbps. Aunque la

especificación Bluetooth describe una conexión de puerto serie emulado simple entre dos

dispositivos en una configuración punto a punto, nada evita que haya varias instancias del SPP

ejecutándose de forma concurrente en el mismo dispositivo para soportar varias conexiones. En

tales casos, los dispositivos pueden incluso tomar los dos papeles de Iniciador y Aceptador al

mismo tiempo. No hay papeles maestros–esclavos fijos en este perfil, ya que se supone que

ambos dispositivos son homólogos. Si se desear usar características de seguridad, los dos

dispositivos serán emparejados durante la fase de establecimiento de la conexión. El

acoplamiento no se usa explícitamente en el Perfil de puerto serie, por lo que el soporte para

acoplamiento es opcional.

En la especificación Bluetooth hay descritos tres procedimientos de nivel de aplicación,

que son necesarios para establecer una conexión de cable serie emulado entre dos dispositivos.

i) Establecimiento del enlace/configuración de la conexión serie virtual.

Este procedimiento describe los pasos necesarios para establecer una conexión con un

puerto serie emulado de un dispositivo remoto. Enviar una solicitud utilizando el protocolo de

descubrimiento de servicios SDP, para determinar el número de canal del servidor RFCOMM

correspondiente a la aplicación del dispositivo remoto.

Page 64: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

54

Si hay disponible algún tipo de capacidad de navegación, el usuario puede hacer una

selección entre los puertos (o servicios) disponibles en el dispositivo homólogo. Si el usuario

conoce exactamente con qué servicio quiere contactar, sólo es necesario buscar los parámetros

correspondientes, utilizando el identificador de clase de servicio asociado con ese servicio.

1. Como opción, el dispositivo remoto puede ser requerido para que se autentifique; también

el cifrado puede activarse de manera opcional.

2. Solicitar un canal L2CAP nuevo a la entidad RFCOMM remota.

3. Iniciar una sesión RFCOMM en el canal L2CAP.

4. Iniciar una conexión de enlace de datos nueva sobre la sesión RFCOMM, utilizando el

número del canal del servidor (mencionado en el paso 1).

Cuando este procedimiento está completo, la conexión de cable serie virtual está lista para

ser usada por las aplicaciones de ambos dispositivos. Si ya existe una conexión RFCOMM entre

los dispositivos cuando se establece una nueva conexión de enlace de datos, la nueva conexión se

establece sobre la sesión RFCOMM existente, en cuyo caso los pasos 3 y 4 son necesarios.

ii) Aceptación del enlace/establecimiento de la conexión serie virtual.

Este procedimiento requiere que el Aceptador realice los pasos siguientes:

1. Proporcionar autenticación si es requerido para ello y, si se produce la correspondiente

solicitud, activar el cifrado.

2. Aceptar la indicación de establecimiento de un nuevo canal desde L2CAP.

3. Aceptar el establecimiento de una sesión RFCOMM en ese canal.

4. Aceptar una nueva conexión de enlace de datos sobre la sesión RFCOMM.

Page 65: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

55

Si el usuario que solicita el puerto serie emulado necesita seguridad y los procedimientos

aún no han sido llevados a cabo, el último paso puede desencadenar una solicitud local de

autenticar al dispositivo remoto e iniciar el cifrado.

iii) Almacenamiento del registro de servicio en la base de datos SDP local.

Todos los servicios/aplicaciones accesibles a través de RFCOMM deben tener un registro

de servicio SDP que incluya los parámetros necesarios para acceder al correspondiente

servicio/aplicación. Esto requiere una base de datos de servicios y la capacidad de responder a

consultas SDP. Para soportar aplicaciones heredadas que se ejecuten sobre puertos series

virtuales, el registro de servicios es realizado por una aplicación auxiliar, la cual asiste al usuario

en la configuración del puerto.

Page 66: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

CAPÍTULO V

MÓVILES GSM Y COMANDOS AT

Page 67: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

56

5 Móviles GSM y comandos AT

En este capítulo se describe brevemente la tecnología móvil GSM (Global System for

Mobile communications), el cual fue utilizado en el sistema de alarma y monitorización. También

describen básicamente como son usados comandos AT, y posteriormente se explicará como se

envían los mensajes SMS a través de comandos AT.

5.1 GSM

En los comienzos de los años ochenta, muchos países en Europa habían desarrollado su

propio sistema de telefonía celular análoga que impedía la interoperabilidad más allá de las

fronteras de cada país. En 1982, el CEPT (Conference of European Postand

Telecommunications) estableció un grupo de trabajo para desarrollar un sistema paneuropeo al

que se denominó GSM-Groupe Speciale Mobile.

El grupo propuso desarrollar un nuevo sistema inalámbrico móvil con las siguientes

premisas: itinerancia (roaming) internacional, soporte para la introducción de nuevos servicios,

eficiencia espectral y compatibilidad con la ISDN (Integrated Services Digital Network). En

1989, la responsabilidad por el desarrollo de GSM fue transferida al ETSI-European

Telecommunications Standards Institute que denominó al proyecto como Global System for

Mobile Communications.

La evolución de GSM ha estado marcada por tres fases de evolución, la fase 1, en la que

se produjeron sus especificaciones; la fase 2, en la que se propuso la inclusión de servicios de

datos y de fax; y finalmente, la fase 3, en la que se realizan mejoras sobre la codificación de voz

y se implementan servicios de transmisión de datos avanzados, entre ellos GPRS (General Packet

Radio Service) y EDGE (Enhanced Data rates for Global Evolution).

GSM es un sistema de conmutación de circuitos, diseñado originalmente para voz, al que

posteriormente se le adicionaron algunos servicios de datos: servicio de mensajes cortos, un

Page 68: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

57

servicio de entrega de mensajes de texto de hasta 256 caracteres y un servicio de datos GSM, que

permite una tasa de transferencia de 9.6 kbps.

5.2 Comandos AT

En esta sección se describe el uso de los comandos AT, su propósito, las notaciones

básicas y los diferentes modos de ejecución.

5.2.1 Introducción

Los comandos AT son instrucciones codificadas que conforman un lenguaje de

comunicación entre el hombre y un terminal denominado modem. En un principio, el juego de

comandos AT fue desarrollado en 1977 por Dennis Hayes como un interfaz de comunicación con

un modem para así poder configurarlo y proporcionarle instrucciones, tales como marcar un

número de teléfono. Más adelante, con el avance del baudio, fueron las compañías Microcomm y

US Robotics las que siguieron desarrollando y expandiendo el juego de comandos hasta

universalizarlo. Los comandos AT se denominan así por la abreviatura de ATTENTION.

Aunque la finalidad principal de los comandos AT es la comunicación con módems, la

telefonía móvil GSM también ha adoptado como estándar este lenguaje para poder comunicarse

con sus terminales. De esta forma, todos los teléfonos móviles GSM poseen un juego de

comandos AT específico que sirve de interfaz para configurar y proporcionar instrucciones a los

terminales. Este juego de instrucciones puede encontrarse en la documentación técnica de los

terminales GSM y permite acciones tales como realizar llamadas de datos o de voz, leer y escribir

en la agenda de contactos y enviar mensajes SMS, además de muchas otras opciones de

configuración del terminal.

Page 69: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

58

La implementación de los comandos AT corre a cuenta del dispositivo GSM y no depende

del canal de comunicación a través del cual estos comandos sean enviados, ya sea cable de serie,

canal Infrarrojos, Bluetooth, etc. De esta forma, es posible distinguir distintos teléfonos móviles

del mercado que permiten la ejecución total del juego de comandos AT o sólo parcialmente. Por

ejemplo, algunos modelos de celulares no permite la ejecución de comandos AT relativos al

manejo de la memoria de agenda de contactos y llamadas pero sí que permite acceder al servicio

SMS; y otros modelos no permiten la ejecución de comandos AT relativos a la gestión de la

agenda ni de SMS pero si permiten hacer llamadas de voz y datos respectivamente.

5.2.2 Propósito de los comandos AT

Los Comandos AT se usan principalmente para ajustar las propiedades avanzadas del

teléfono. Esto lo podemos desglosar de la siguiente forma:

• Configurar el teléfono para una conexión inalámbrica, a través de infrarrojos o por el

sistema de bus o cable.

• Configurar el módem interno del teléfono para una conección inalámbrica, a través de

infrarrojos o por el sistema de bus o cable.

• Solicitar información sobre la configuración actual o estado operativo del teléfono o

módem.

• Probar la disponibilidad del teléfono o módem.

• Solicitar el rango valido de parámetros aceptados y cuando éstos son aplicables.

5.2.3 Notación de los comandos AT

El envío de comandos AT requiere la siguiente estructura:

Page 70: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

59

Petición:

AT + CMG <CR>

Carriage Return

Command

Respuesta correcta:

<CR> <LF> OK <CR> <LF>Start Sequence End Sequence

Line Feed

Respuesta Incorrecta:

<CR> <LF> ERROR<CR> <LF>Start Sequence End Sequence

5.2.4 Ejecución de los comandos AT

En el modo de comandos on-line, hay cuatro tipos de comandos para cada situación:

• Comando de Configuración: para ajustar los parámetros operativos del módem

integrado. Su formato estándar es:

AT<command>=<parameters><CR>

Page 71: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

60

Dónde:

AT: Notifica el módem incorporado que se ha ingresado una orden.

<command>: Nombre de la orden que se ha ingresado

<parameters>: Valores que son usados por el comando.

<CR>: Todas las líneas de comando terminan presionando la tecla <CR> (Return o

Enter).

• Comando de ejecución: Para una acción inmediata sin la necesidad de un parámetro.

Este tipo de comando es muy similar al anterior y usualmente no requiere de parámetros,

su formato es:

AT<command>

Por ejemplo para saber el estado de la batería del teléfono el comando a enviarle sería:

AT+CBC

Su respuesta sería:

CBC: 0,60

Lo que significa que su batería esta conectada (0) y que su carga remanente es de un 60%

(60).

• Comando de Lectura: Para ver la configuración del comando actual. Para comprobar la

configuración actual del comando, es necesario usar la opción “?”, su formato es:

AT<command>?

Page 72: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

61

Por ejemplo para ver la configuración actual se ingresa

AT+CBST?

Lo que eventualmente devolvería algo como:

+CBST: 0, 0, 1

Esto significa la configuración de baudios es automática (0), conección asíncrona

(0) y por defecto (1).

• Comando de Prueba: Para probar la accesibilidad de un comando y el rango de los

parámetros, se usa la opción de la “=?” con el comando, su formato es:

AT<command>=?

Por ejemplo para saber los formatos disponibles para redactar un mensaje SMS se

ejecuta el siguiente comando:

AT+CMGF=?

Su respuesta sería:

+CMGF: (list of supported<mode>)

Lo eventualmente podría devolver:

+CMGF: 0

+CMGF: 1

+CMGF: 0,1

Siendo “0” modo ACCII y “1” modo PDU.

Page 73: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

62

5.3 Mensajes SMS

En esta sección se describirá los comandos AT asociados al envío de los mensajes SMS y

los dos formatos posibles para la escritura de los mensajes con un ejemplo para cada caso.

5.3.1 Definición

SMS son las siglas de Servicio de Mensaje Corto. Disponible en redes digitales GSM

permitiendo enviar y recibir mensajes de texto de hasta 160 caracteres a teléfonos móviles vía el

centro de mensajes de un operador de red (como Entel, Claro o Movistar).

Si el teléfono al que se envía el mensaje está apagado o fuera de cobertura el mensaje se

almacena en la red y se entrega en cuanto el teléfono se conecta de nuevo a la red.

5.3.2 Comandos AT de SMS

En la tabla 5.1 se listan todos los comandos que se usan para la gestión de mensajes SMS

[10].

Comandos AT Función

AT+CSMS Selecciona los servicios de SMS

AT+CPMS Seleccionar lugar de almacenamiento de los SMS

AT+CMGF Seleccionar formato de los mensaje:

Modo ASCII o Modo PDU

AT+CSCA Establecer el Centro de mensajes a usar

AT+CSAS Guardar configuración

AT+CRES Restaurar configuración

AT+CNMI Activa indicación de mensajes entrantes

AT+CMGL Listar los mensajes almacenados

Page 74: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

63

AT+CMGR Leer un mensaje SMS almacenado

AT+CMGS Enviar mensaje SMS

AT+CMSS Enviar mensaje almacenado

AT+CMGW Almacenar mensaje en memoria

AT+CMGD Borrar Mensaje

AT+CMGC Enviar Comando

Tabla 5.1. Comandos AT para mensajes SMS

5.3.3 Modo Texto

Para enviar un mensaje SMS se puede realizar de dos maneras diferentes. Se puede

utilizar el modo texto (ASCII, acrónimo inglés de American Standard Code for Information

Interchange), en que sólo hay que indicar el número de teléfono y el contenido del mensaje y el

modo PDU. El modo texto es el que se usa por defecto y es que normalmente se emplea si sólo

queremos transmitir un mensaje.

La configuración del módem para funcionar en uno u otro modo se realiza mediante el

comando AT+CMGF=<modo>, donde <modo> puede tener los siguientes valores:

• <modo>=1: Modo ASCII

• <modo>=0: Modo PDU (Modo por defecto)

Para enviar un mensaje en modo texto, se utiliza el comando AT+CMGS. Primero se

especifica el número de teléfono, seguido de un carácter retorno carro <CR>. El modem responde

enviando el carácter “>” que indica que se puede escribir el mensaje que se quiere enviar. Para

delimitar el mensaje hay que enviar el carácter <control-z> (carácter ASCII 26).

Si el mensaje se ha enviado correctamente, devuelve la cadena “+CMGS:<nr>” seguida

de OK. El campo <nr> es el número de referencia del mensaje, que se va incrementando,

tomando los valores comprendidos entre 0 y 255, cada vez que se envía un SMS.

Page 75: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

64

AT+CMGS=" 85438822"<CR>

>Mensaje de prueba <control-z>

+CMGS: 2

OK

Puesto que se ha enviado un auto-mensaje (un mensaje SMS con destino al mismo móvil

que lo ha originado), al cabo de un cierto tiempo se recibe el mensaje, por lo que aparece en el

terminal lo siguiente:

+CMTI: "SM",14

Que indica que se ha recibido un mensaje SMS y se ha almacenado con el número 14. Si

ahora leemos el mensaje:

AT+CMGR=14

+CMGR: "REC UNREAD"," +5691600130"„"07/08/23,11:57:20+00"

Mensaje de prueba

OK

La información que se obtiene es la siguiente. Primero el estado del mensaje, “REC

UNREAD”, para indicar que es un mensaje nuevo que no se había leído. A continuación el

teléfono del remitente, la fecha y la hora en la que se ha recibido y finalmente el mensaje

recibido. Si ahora se vuelve a leer el mensaje, el estado será “REC READ”.

En caso de no haber cobertura a la hora de enviar el mensaje, el comando AT+CMGS

devuelve la cadena ERROR.

AT+CMGS="630672901"<CR>

Page 76: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

65

>Mensaje de prueba <control-z>

ERROR

5.3.4 Modo PDU

En el modo PDU los datos se transmiten mediante una cadena de caracteres codificados

en hexadecimal (excepto algunos datos que se transmiten en decimal).

Cada valor hexadecimal se representa por 4 bits. Esto implica que cada byte (8 bits)

contiene 2 valores hexadecimales. El modo PDU requiere de un formato especial. Para obtener

los datos necesarios se ha utilizado un conversor ya existente llamado Javascript PDU

Converter escrito por Swen-Peter Ekkebus.

Como ejemplo en la figura 5.2 se ha dividido este mensaje en PDU en tres grupos y

detallado sus aspectos más importantes:

06916519061003 01000891854388220000 04E8373B0C

InformaciónSMSC

InformaciónPDU

Mensaje

Fig. 5.2: Cadena de caracteres dividida en 3 grupos

Page 77: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

66

Información SMSC

Se ha denominado así al primer grupo de caracteres (ver figura 5.1) que se transmitirá al

terminal móvil conectado al computador. Estos datos contienen la información del número de

teléfono del centro de mensajería y la longitud de dicha información.

Como se puede observar en la figura 5.2, la longitud de los caracteres que contienen la

información del SMSC es de “06” bytes. Esta medida se obtiene dividiendo la cantidad de

caracteres que forman la información del SMSC (en este caso 12) por 2.

Esto se debe a que cada byte equivale a 2 de estos valores (éste también es el motivo de

que el resultado sea 06 en vez de 6, ya que el formato exige que se especifique mediante un byte

y, por lo tanto, se tiene que representar con 2 valores). Esta agrupación de 2 valores también se

conoce como octeto, debido a que está formado por 8 bits. Una vez se tiene la medida, llega el

momento de codificar el número del centro de mensajería. Se puede observar que antes de la

secuencia de números que llevan la información del número del SMSC, hay un octeto (91). Lo

que nos indica este valor es que el formato del número de teléfono que se está utilizando es el

internacional. Éste es el formato más común y se puede utilizar aunque el destinatario del

mensaje se encuentre en el mismo país que el remitente.

06 91 6519061003

Número del SMSCLongitud de la información

Fig. 5.2: Caracteres del grupo “Información SMSC”

Los octetos restantes son los que forman el número del SMSC. Como ya se vio en el

envío de mensajes en modo texto, el número es “5691600130”.

Page 78: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

67

Este número no se codificará a hexadecimal pero tampoco se escribe directamente. La

forma de enviar el número es la siguiente: Primero se separa el número en octetos empezando por

la izquierda y, en caso de que sea una cifra impar, se añade una F a la última cifra. Después, en

cada octeto se intercambia la secuencia de sus números y el resultado es la secuencia de

caracteres que se enviarán (ver figura 5.3).

5691600130

56 91 60 01 30

65 19 06 10 03

Número de teléfonooriginal

Intercambio de posiciónde los números de cadaocteto

Caracteres que indicanel numero de teléfonoen el formato PDU

Fig. 5.3: Codificación de un número de teléfono.

Información PDU

Los parámetros más importantes de este grupo son los que indican el número del

destinatario y el primer octeto, que permite especificar que se va a añadir una cabecera adicional.

Esta cabecera se conoce como UDH (User Data Header) y es la que nos permitirá especificar el

puerto por el que enviar el mensaje (ver figura 5.3).

01 08 9185438822 00 00000

Número de teléfono destinoLongitud número de teléfono

Parámetros del mensaje

Fig. 5.4: Caracteres del grupo “Información PDU”

Page 79: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

68

Si se utiliza un conversor para codificar los datos, el valor por defecto que se obtendrá en

el primer octeto será “11”. Si no se modifica este valor no se puede introducir la UDH (de hecho

sí que se podría introducir, pero el móvil no la interpretaría y el resultado sería un mensaje con

caracteres extraños y sin cumplir las especificaciones indicadas en la UDH). Sin embargo, al

modificar este valor y poner 01 ya se indica que en el campo de datos se incluirá una cabecera

adicional. La razón de este valor la encontramos en las especificaciones del formato PDU.

Cada bit del octeto hace referencia a diferentes parámetros de transferencia del mensaje.

El valor por defecto del octeto es 11 en hexadecimal, es decir 00010001 en binario. Las

especificaciones del formato dicen que para indicar que se añade una UDH, el valor de bit menos

significativo debe ser 1. De esta manera se obtiene en hexadecimal es 01. Éste deberá ser el valor

del octeto siempre que se desee enviar un mensaje con una cabecera adicional.

Por otra parte se observa que la longitud del número de teléfono en hexadecimal es 08. El

cálculo de esta longitud es diferente respecto al que se hacía en el de la información del SMSC.

La longitud de este grupo calcula el número de dígitos que componen el número de teléfono

donde se envía el mensaje. En nuestro ejemplo, este teléfono es “85438822” que se compone de 8

dígitos (de ahí se obtiene la longitud de “08”).

La codificación del número de teléfono sí que es idéntica al del caso anterior y también el

formato internacional se indica mediante el octeto 91 (aunque vemos que en este caso no se tiene

en cuenta este octeto a la hora de calcular la longitud, ya que no se considera un dígito del

número de teléfono). El resto de octetos de este grupo hacen referencia a la codificación de datos,

periodo de validez del mensaje, etc. En nuestro caso son valores que no se han modificado ya que

no afectan al diseño, así que se han dejado los valores típicos.

Page 80: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

69

Datos

El último grupo en que hemos dividido la cadena de caracteres incluye la longitud del campo de

datos y el mensaje a enviar codificado (ver figura 5.5).

04 E8373B0C

Longitud del campo datos

Mensaje

Fig. 5.5: Caracteres de grupo datos

El primer octeto que forma el grupo “datos” es el que indica la longitud. Si se enviase un

mensaje sin cabecera adicional, este grupo sólo estaría formado por el mensaje. En tal caso la

longitud sería la de los caracteres que forman el mensaje a enviar (no los del mensaje codificado).

El mensaje “hola” tiene una longitud de 4 caracteres (los espacios también se cuentan), así que en

este caso el valor del primer octeto sería esta longitud en hexadecimal, es decir, “04”.

Se ha de tener en cuenta que los caracteres del mensaje que se desea enviar están

codificados en ASCII de 7 bits. Esto quiere decir que cada carácter del mensaje está representado

por 7 bits.

Por último tenemos el mensaje codificado. Esta codificación es necesaria ya que cada

carácter del mensaje está compuesto por 7 bits, pero el formato PDU está compuesto por octetos.

Por lo tanto se han de transformar los septetos de cada carácter en un conjunto de 8 bits.

Para realizar la transformación, se escribe cada carácter del mensaje en binario. El bit de la

derecha del segundo carácter se inserta en la izquierda del primero y así se obtiene el primer

octeto.

Como el segundo carácter ahora tiene 6 bits, se cogen los dos de la derecha del tercer

carácter y se añaden a la izquierda del segundo para así formar el segundo octeto.

Page 81: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

70

De esta forma se van creando los octetos (para codificar el último carácter, se añaden los

ceros necesarios hasta formar el octeto). Una vez se tiene el mensaje agrupado en octetos, se

convierte cada octeto a hexadecimal y así se obtiene el mensaje codificado. En la tabla 5.4 se

puede observar cómo se codifica la palabra “Hola ” (seguida de un espacio):

Hex E8 37 3B 0C 02

Octetos 11101000 00110111 00111011 00001100 00000010

Septetos 1101000 1101111 1101100 1100001 0100000

Carácter h o l a

Tabla 5.4. Codificación del mensaje

Envío del mensaje modo PDU

Una vez que se tiene toda la información codificada ya se pueden ejecutar los comandos

para enviar el mensaje. De nuevo, el primer comando que se ha de ejecutar es CMGF para indicar

el formato del mensaje. En este caso le pasaremos el valor “0” para indicar el modo PDU. Una

vez especificado el formato, se escribe el comando de envío del mensaje (CMGS). El parámetro

que hay que pasarle a este comando es la longitud de la cadena de datos que vamos a transmitir.

Al calcular esta longitud no se tienen en cuenta los octetos que componen la información del

SMSC. En nuestro caso, si contamos los octetos que forman los grupos “Información PDU” y

“Datos” obtenemos una longitud de 15.

Una vez ejecutado el comando se deberá escribir la cadena de caracteres entera y

presionar (Ctrl. Z) para enviar el mensaje y se obtiene lo siguiente.

AT+CMGS=15 <CR>

> 069165190610030100089158348822000004E8373B0C <Control-z>

+CMGS: 8

OK

Page 82: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

CAPÍTULO VI

FUNCIONAMIENTO DEL SISTEMA

Page 83: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

71

6 Funcionamiento del sistema

En este capitulo se describirá el funcionamiento general del sistema de alarma. Se

entregará más detalle del hardware empleado, y se indicaran los pasos necesarios para programar

el microcontrolador. Además se explicará cada uno de los modos de funcionamiento (UTI -

ADC), a través de diagramas de flujo y en el caso del convertidor ADC se explicará paso a paso

el código del programa.

6.1 Diagrama de bloques del sistema de alarma

En la figura 6.1 muestra el diagrama general de las diferentes funcionalidades del sistema.

Un microcontrolador ARM7 NXP LPC2106 es el encargado de monitorear y controlar cada una

de las funciones del sistema. Su bajo costo, alta velocidad y capacidad de predicción de saltos

implementada en hardware permite monitorear cualquier evento a una velocidad 58.9824 Mhz.

Page 84: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

72

MICROPROCESADOR32 - BITCON ACELERACIÓN DEMEMORIA POR HARDWARE

MODULOBLUETOOTH

CELULARGSM

CELULARGSM

INTERCAMBIO SMS

CAPTURAR FOTOGRAFÍA

GRABAR AUDIO

GRABAR VIDEO

ACTIVAR - DESACTIVAR ALARMA

LLAMADA DE DATO

POSIBILIDADES DE SELECCIÓN USUARIO

DetecciónInfrarroja

DetecciónVibración

DetecciónCapacitiva

DetecciónMovimiento

DetecciónTemperatura

DetecciónPresión

INTERFAZ

EntradaAnáloga

EntradaDigital

RS-232

RS-232SPI

Ciclo de trabajo

BluetoothLlamada de dato y/o vozSMS

Bluetooth

PC

RS-232

Fig. 6.1: Diagrama de bloques representando las funcionalidades del sistema.

El Microprocesador consta principalmente de tres canales de comunicación. El primero

está compuesto de un canal RS-232 que permite la actualización “In-System” del código fuente

del microcontrolador a ejecutar, sin la necesidad de ningún tipo de hardware externo. Sólo se

utiliza el programa “Philips LPC2000 Flash utility” [11] que permite cargar los archivos HEX

generados por el compilador Keil al microcontrolador. Este canal también se utiliza para realizar

la depuración del sistema en hardware, adicional al modo de depuración que existe en el

programa Keil.

Un segundo canal de comunicación es el encargado de interactuar con el módulo

Bluetooth del sistema, que es utilizado para controlar y comunicarse los diferentes estados desde

un celular. En realidad la comunicación se realiza con el MODEM del celular que incorpora

igualmente un módulo Bluetooth (medio de la comunicación), que es el medio para habilitar

diferentes funciones incorporadas en el celular; por ejemplo: comunicación a través del módulo

GSM.

Page 85: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

73

Finalmente y quizás el más importante, un tercer multi-canal de comunicación es el

encargado de acondicionar las señales eléctricas provenientes desde diferentes tipos de sensores,

sistemas análogos y/o digitales. Este canal multipropósito prácticamente es la interfaz que

permite aumentar el número de aplicaciones finales que se le puede dar al sistema como se verá

mas adelante.

6.1.1 Interfaz de Acondicionamiento de Señales

La interfaz de acondicionamiento de señales está compuesta por tres diferentes tipos de

interfaz para ingresar información externa al microcontrolador.

a) Interfaz digital: El sistema es capaz de reconocer directamente señales digitales TTL

de 5V y 3.6V (LowV). Esta alternativa permite conectar cualquier sistema con salida digital TTL

(Transistor–Transistor Logic) existente en el mercado para combinar con el presente sistema.

Adicionalmente, existen señales de ±15 V disponible en el sistema, las que podría ampliar el

espectro de sistema digitales que podrían interactuar con el presente trabajo.

b) Interfaz Universal a sensores de bajo costo (UTI): Esta interfaz es utilizada para

acondicionar señales eléctricas provenientes desde diferentes tipos de sensores al

microcontrolador. Esta interfaz es capaz de alcanzar una resolución entre 13-bit y 14-bit para

cualquiera de los siguientes tipos de sensores: PT100, PT1000, Termistor 1KΩ - 25KΩ, sensores

tipos puentes con desequilibrios de 0.25% ó 4%, sensores capacitivos en el rango de 0-2 pF,

sensores capacitivos en el rango 0-12 pF, sensores capacitivos en el rango de 300 pF y sensores

resistivos en el rango de 1 kΩ – 25 kΩ. Independiente del modo de operación de la interfaz

universal, la información de salida es convertida en ciclos modulados en el tiempo sin señal de

reloj, lo que permite separar la interfaz del microcontrolador a una distancia considerable y con

un sólo par de cables.

Page 86: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

74

Los ciclos modulados en el tiempo son muestreados a 58.9824 Mhz por el

microcontrolador para ser convertido de información en el dominio del tiempo al dominio

original de la variable bajo monitoreo.

Todo este proceso de recuperación de la información considera la utilización de señales

sincrónicas, filtros activos para la eliminación de interferencias de baja frecuencia tales como la

red de alimentación y la calibración de la información usando el método de las tres señales que

elimina errores acumulativos y multiplicativos del sistema. Además, con el objetivo de cubrir un

gran rango de aplicaciones se ha incorporado un circuito acondicionador de nivel en las señales

de excitación capacitivas que transforman señales de 0V a 5V en ±15V. Como consecuencia la

flexibilidad del sistema permite conectar sensores capacitivos desde un par de milímetros

cuadrados de área hasta 2x2 m de magnitud.

c) Interfaz a señales análogas: Se incorporó un conversor A/D de 8/bit con capacidad de

realizar muestreo hasta 1 MSPS, configurado y controlado vía comunicación serial SPI

(Comunicación Serial Sincrónica). Para esta aplicación se configuró el microprocesador como

maestro y el convertidor análogo digital como esclavo. Esta interfaz permite conectar sensores

análogos con señales de salida en el rango de 0-5 V.

6.1.2 La Interfaz Bluetooth

La interfaz Bluetooth está compuesta en dos partes. La primera parte considera la

comunicación bi-direccional entre el microcontrolador y el módulo Bluetooth [12] para el

intercambio de información. La segunda parte de la interfaz considera la comunicación del

módulo Bluetooth incorporado en el PCB con el módulo Bluetooth de un celular. Esto permite

utilizar un solo celular cuando el usuario se encuentra ubicado a una distancia inferior de 250m,

de otra forma la utilización de dos celulares permite eliminar la limitación de distancia.

Page 87: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

75

6.2 Hardware

La primera versión (demo) del sistema completo implementado en hardware se muestra

en la figura 6.2. El sistema consta de una tarjeta de evaluación [13] desarrollada por la empresa

OLIMEX para el microcontrolador NXP LPC2106. Con esta tarjeta se desarrolló la primera

etapa de configuración y programación del microcontrolador. Gran parte del tiempo significó

implementar los programas de adquisición y configuración para lectura de los sensores a bajo

costo.

Lo pasos empleados para la programación del microcontrolador son los siguientes:

1. Conectar el cable serial al DB9 de la placa al puerto del computador COM 1

2. Conectar la fuente de poder al conector PWR

3. Cerrar el Jumper BSL

4. Hacer clic en el botón RST

5. Cargar el archivo *.hex generado por el software Keil por medio de la aplicación

“LPC 2000 Flash Utility”

6. Quitar el Jumper BSL

7. Hacer clic en el botón RST (con este paso el microcontrolador sale del modo de

programación y ejecuta el programa )

Fig. 6.2: Primera versión del sistema de alarma.

Page 88: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

76

Después de haber completado la etapa de programación y conexión de todos los

componentes en la placa demo, se inició la etapa de diseño de la placa final por medio del

software NXP ALTIUM 2004 (ver anexo – C).

La figura 6.3 muestra la placa final la que comprende principalmente de las siguientes

partes:

a) Fuente de alimentación

b) Comunicación serial RS-232

c) Microcontrolador NPX LPC2106

d) Interfaz Universal para sensores de bajo costo (UTI)

e) Multiplexor Serial de la empresa Smartec Bv

f) Conversor ADC

g) Módulo Bluetooth

h) Buffers

Fig. 6.3: Versión final del sistema de alarma (dimensiones de la placa: 89.84mm x 127.46mm)

Page 89: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

77

Adicionalmente el sistema de alarma consta de:

a) 6 entradas análogas en la Interfaz universal UTI (A, B, C, D, E y F)

b) 4 entradas análogas acondicionadas para el conversor análogo-digital AD7904

c) 4 entradas digitales TTL de uso general controladas por el microcontrolador

d) 9 entradas adicionales acondicionadas por medio del multiplexor serie

6.3 Diagrama de bloque, flujo según aplicación

A continuación se describirán cada de las partes del programa principal a través de su

respectivo diagrama de flujo y código fuente que se considera más importante de mencionar

(código completo del programa principal se encuentra en el anexo A).

6.3.1 Interfaz Universal UTI

Esta interfaz entrega su información a través de modulación de pulsos, de acuerdo lo

explicado anteriormente en el capítulo 3.1. Esta información es una secuencia continua de pulsos

rectangulares (ver figura 6.4). Los intervalos de tiempo Txi (de acuerdo al modo seleccionado los

intervalos de tiempo podrían ser 1, 2 o 3) y el intervalo de tiempo Tref, están entre dos flancos de

subida adyacentes, contienen la información de los valores mensurados Mx (en la figura 6.4 se

muestra únicamente el intervalo de tiempo Tx) y el elemento de referencia Mx. El intervalo de

tiempo Toff se representa como la suma de dos períodos. Este intervalo de tiempo corresponde

usualmente al offset del sistema bajo una determinada condición y generalmente depende de la

tecnología de la placa, cables, etc. El orden de las fases se muestra en la figura 6.4.

Page 90: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

78

Tref

1 ciclo

TX

Toff

Tref TX ToffToff1 Toff2

Fig. 6.4: Señales moduladas en la salida de la Interfaz Universal.

En la figura 6.5 se muestra el diagrama de flujo representando los pasos más importantes

que el microcontrolador debe realizar para aplicar la técnica de las tres señales. Esto permite la

auto-calibración continua del sistema independiente del tipo de sensor conectado al sistema.

Inicio

Selección de modo

Captura de los datosmedidos durante los

n periodos consecutivos

Reconocimiento del número de fases más

sincronización

Cálculo del resultado

Mostrar Resultado

Salida de datos vía interface

RS-232

Configuración por medio de software o hardware

Fig. 6.5: Diagrama de flujo del proceso de captura y conversión del microcontrolador con la

Interfaz Universal UTI

Page 91: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

79

Selección de modo: El modo de funcionamiento de la interfaz universal se puede

seleccionar automáticamente por software o por hardware. La selección mediante software se

puede hacer de dos maneras: en el programa principal con el modo ya configurado o en el

hiperterminal de Windows vía comunicación RS-232. La selección por hardware puede ser

realizada a través de switches.

La Interfaz Universal UTI consta de 16 diferentes modos de operación (ver figura 6.6), los

que son seleccionables dependiendo del tipo de sensor(es) que se desea leer y su rango de

operación. Además en el modo 3 existe la posibilidad de configurar la opción de utilizar un

multiplexor externo, el que permite trabajar hasta con 9 sensores a la vez seleccionables a través

del microprocesador.

A nivel de usuario, el modo de operación de la Interfaz Universal es seleccionable a través

de 4-bits para los 16 modos disponibles. La selección del modo configura automáticamente un

número fijo n (n = 3, 4 o 5) de la cantidad máxima de mediciones a realizar denominada fases

Ph. Adicionalmente, se considera M períodos necesario obtener un ciclo completo de medida, el

cual es siempre igual a M = n + 1. Esto es debido a que la fase correspondiente a la medición del

offset del sistema Toff, es divida en dos fases. Como resultado, las fases generadas por las

mediciones del offset son muchos más pequeñas que las demás mediciones y aproximadamente

iguales. Esto permite su identificación en tiempo real por parte del microcontrolador, eliminando

la necesidad de sincronización y utilización de reloj (en la práctica permite transferir los datos en

un canal de sólo dos cables a muy bajo costo). Esta gran flexibilidad permite cambiar el modo

después de cada medición, para medir un conjunto de sensores de distintas naturalezas en forma

simultánea (multiplexada en el tiempo).

Además por medio de software es posible colocar la Interfaz Universal en ahorro de

energía, permitiendo incluso tener varias interfases en paralelo y activar cada una según la

aplicación.

Page 92: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

80

La Interfaz Universal UTI trabaja con dos velocidades de conversión diferentes: el modo

rápido (fast) y modo lento (slow). En el modo rápido un ciclo completo de medición toma

alrededor de 10 ms para cinco fases, mientras que en el modo lento un ciclo completo de

medición toma alrededor de 100 ms para cinco fases. Esto se explicó en más detalle en el capítulo

3.1.5, donde la diferencia entre las velocidades viene dado por la selección del número de bits

utilizado en el contador binario al final de la oscilación. Por lo tanto como es de esperar, la

resolución de la Interfaz Universal es alrededor de 2-bits de resolución mejor que su versión

rápida.

Fig. 6.6: Menú de selección de la UTI

Captura de los datos medidos: El número mínimo de períodos consecutivos a medir

para obtener al menos una ciclo completo de medición es: M = n + 1. Sin embargo, para

implementar la sincronización de la información se programó la medición de k ciclos sucesivos

(el número total de los períodos en este caso será L = k · (n + 1) = k · M), antes de obtener un

resultado.

En el programa principal se utilizó k = 2, debido a que se tomaron dos ciclos completos

para poder efectuar el reconocimiento de los intervalos de tiempos adquiridos.

Page 93: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

81

La medida de un número de períodos consecutivos puede ser efectuada de diferentes

maneras. Lo que se necesita es un contador que continuamente monitoree los pulsos del reloj. El

contador tiene que ser leído cada vez que aparece una nueva fase, el que es detectado por los

flancos de subida a la salida de la Interfaz Universal. Una forma simple para medir períodos de la

Interfaz es usar el modo "captura" disponible en los timers del microcontrolador. Cada flanco de

subida produce una interrupción que permite recuperar el valor del timer (32-bits) al momento de

la interrupción desde el registro de captura. Este método es sencillo y fácil de programar, sin

embargo es necesario implementar la detección de la condición de desbordamiento del contador.

El desbordamiento del contador se detectó implementando el modo de comparación, el

cual activa una interrupción cuando el contador es igual a un registro auxiliar programable (un

valor preestablecido igual a 0xFFFFFFFF es suficiente para cumplir esta función). La detección

de esta bandera permite la corrección de los tiempos entre interrupciones de la siguiente manera:

if (flag_overflow)

tie = 0xFFFFFFFF – timerold + timer;

flag_overflow = 0;

Siendo tie el periodo medido, timerold el tiempo capturado en la interrupción anterior y

timer el tiempo actual capturado.

Reconocimiento del número de fases más sincronización: Para reconocer las diferentes

fases entregadas por la Interfaz Universal, se muestra las diferentes posibilidades de información

según el modo de operación con excepción del modo con multiplexor externo (ver figura 6.7).

Dos ciclos completos son capturados para implementar vía software en el microcontrolador la

detección de cada fase.

Page 94: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

82

Fig. 6.7: Señales generadas por la Interfaz Universal según el número de fases a

reconocer.

Se definió físicamente una entrada de la Interfaz Universal como defecto para la medición

del offset del sistema, la que llamaremos terminal "B". De este modo, aún cuando los valores de

las otras señales del sensor son muy pequeños y casi igualan a la señal de offset, el período de

tiempo Txi, correspondiente a estas fases, será aproximadamente el doble con respecto a los dos

períodos Toff. Esto permite fácilmente realizar el reconocimiento de las fases que se muestran en

la figura 6.7.

Se pueden aplicar diferentes técnicas para el método de reconocimiento de fases. La

técnica empleada consiste en medir dos ciclos completos (2 · (Phases + 1)) almacenados en

forma consecutiva en un arreglo de captura en el microcontrolador. Los datos almacenados en el

arreglo de captura se asignan a un nuevo arreglo auxiliar para poder identificar las fases. Por

medio de un ciclo “For” se buscar el periodo de tiempo más pequeño (Tmin), que puede ser Toff1 o

Toff2 como se muestra en la figura 6.8.

Toff Tref TX Toff Tref TX Toff Tref TX Toff Tref TX

Toff Tref Tx1

Toff Tref TX

Tx2 Toff Tref Tx1 Tx2

Toff Tref Tx1 Tx2

Toff Tref Tx1 Tx2 Toff Tref Tx1

Tx3 Toff Tref Tx1 Tx2 Tx3Toff Tref Tx1 Tx2 Tx3

3 Fases

4 Fases

5 Fases

Page 95: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

83

TXn Toff1 Toff2

Tmin-1 Tmin Tmin+1

Tref

Fig. 6.8: Señales analizadas para la búsqueda del offset.

Para que el periodo de tiempo Tmin sea Toff1 se tiene que cumplir lo siguiente:

Tmin-1 > Tmin+1

Esto se debe a que el periodo de tiempo Txn debería ser siempre mayor que Toff2, si se

reconociera como mínimo a Toff2 no se cumpliría esta condición debido a que el periodo de

tiempo anterior a este es Toff1 y este es siempre menor a Tref.

Con esto se asegura el reconocimiento del primer offset (Toff1). Al momento de reconocer

la posición donde se encuentra el primer offset, se almacena la posición a la variable bp (en el

programa principal). Si bp es mayor de cero entonces se ajusta el índice de posición del arreglo

de captura para que sea retrasado bp veces, de tal manera que en la próxima captura sean

capturados dos ciclos completos comenzando el almacenamiento con el primer offset. Si todo

esto resulta exitoso, se activa la bandera de sincronización y se habilita la posibilidad de transferir

todas las mediciones a un computador personal vía RS232. Adicionalmente como se verá más

adelante, las mediciones son procesadas en el microcontrolador para tomar decisiones de disparo

en alguna condición de alarma.

Page 96: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

84

Cálculo del resultado: Se aplica la técnica de las tres señales (descritas en el capitulo

3.1.2) y el resultado del elemento mensurado con respecto a una diferencia esta dado por:

x off x

ref off ref

M M EMM M E

−= =

(6.1)

El microcontrolador consta de un multiplicador por hardware, lo que permite la

realización de una multiplicación en sólo 0.424 useg. Esto permite realizar una serie de cálculos

entre mediciones continuas de la interfaz universal (en el caso más rápido debería existir una

interrupción cada 10 mseg).

Mostrar resultado: Existe dos tipos de datos disponibles para cada fase de medición con

excepción del offset del sistema. El primer tipo corresponde a los valores instantáneos medidos

por la interfaz universal (un procedimiento análogo se implemento más adelante con el conversor

análogo/digital). Estos valores pueden ser utilizados directamente según el tipo de aplicación se

le quiera dar a los datos. Sin embargo, se detectó que para la aplicación del sistema de alarma, en

la mayoría de los casos es necesario detectar cambios relativos. Por lo tanto, se implemento

internamente en el microprocesador un filtro digital pasa-bajo del tipo IIR recursivo (Infinite

Impulse Response). Su implementación se basó en la determinación de los coeficientes de las

ecuaciones de diferencias representadas como:

a(1) y(n) = b(1) x(n) + b(2) x(n-1) + ... + b(nb+1) x(n-nb) - a(2) y(n-1) - ... - a(na+1) y(n-na)

i i i ii i

(6.2)

Siendo b(n) y a(n) los coeficientes del filtro, n orden del filtro, x(n) los datos de entrada e

y(n) los datos de salida. El filtro pasa-bajo implementado fue de la clase Butterworth debido a su

respuesta plana. Por lo tanto, diseñando un filtro a una frecuencia de corte wc se pueden

comparar los cambios instantáneos con respecto a una referencia (señal filtrada).

Page 97: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

85

En una primera etapa se implementó el filtro pasa-bajo y el despliegue de las mediciones

en el software Labview. En forma experimental se determinó el orden del filtro y la frecuencia de

corte para el caso de detección de personas por medio de cuatro sensores capacitivos. Con estos

datos obtenidos se utilizó el software Matlab para la determinación de los coeficientes del filtro,

que luego fue implementado en el microcontrolador.

La figura 6.9 muestra los resultados de la implementación ya en el microprocesador.

Inicialmente las fases en estado estacionario (los valores de offset no son representados en este

gráfico) y luego se muestra cuando el sistema es activado por la aproximación de una persona a

los sensores capacitivos. Sólo una fase filtrada se muestra para mayor claridad del gráfico.

Claramente la comparación entre la señal filtrada y los valores instantáneos es suficiente para

detectar cambios rápidos debidos al acercamiento de una persona. Los cambios en los valores

absolutos de los sensores capacitivos producidos por cambios de humedad, temperatura y/o

diferentes acoplamientos capacitivos por la instalación misma del sistema son calibrados

automáticamente por el sistema.

Señal Filtrada

Fig. 6.9: Gráfico de muestreo de las fases, sistema activado por medio de sensores capacitivos.

Page 98: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

86

6.3.2 Interfaz para señales análogas Conversor análogo/digital

Un conversor análogo-digital de 4-canales fue agregado en el proyecto para ofrecer la

posibilidad de conectar sensores análogos al sistema. Se seleccionó la comunicación SPI (Serial

Peripheral Interface) como canal de comunicación entre el conversor y el microprocesador, donde

el microcontrolador fue configurado como master y el conversor como esclavo.

En la figura 6.10 se muestra el diagrama de bloques del programa principal para controlar

el conversor análogo-digital (AD7904) [7].

Inicio

SPI configuración

Enviar encabezadoal conversor

Configuración del conversor

Captura de datos

Mostrar Resultado

Procesar datos

Fig. 6.10: Diagrama de bloques del proceso de conversión y captura para el conversor análogo

digital

Page 99: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

87

SPI configuración: Se configura la interrupción del canal SPI. Esto permite que el

microcontrolador se encargue de cualquier otra tarea necesaria, y sólo cuando se ha terminado la

conversión, una interrupción por hardware anuncie la disponibilidad del dato. Además, en esta

configuración se selecciona la prioridad que tiene esta interrupción sobre otras del sistema. La

interrupción en si ejecuta una subrutina que se encarga de procesar los datos recibidos.

A continuación se muestra la subrutina de configuración SPI utilizada en el programa

principal.

void SPI_config(void)

VICVectAddr0 = (unsigned int) SPI_Isr; // Prioridad 0 para la

// interrupción SPI

VICVectCntl0 = 0x2A; // Asignado canal 10 (SPI) a la prioridad 0

VICIntEnable = 0x400; // Interrupción SPI habilitada

S0SPCCR = 0x36; // Se estable el reloj y se calcula como:

// (PCLK rate / SPCCR) = (58.9824Mhz/54) = 10.9226Mhz

S0SPCR = 0xB0; // Se configura el registro de control del reloj

IOSET = 0x40000000; // SS_AD7904 = 1 Chip select high al conversor

anf = 0.99874; // Coeficientes del filtro del medidor de aceleración

bnf = 0.00062792; // Coeficientes del filtro del medidor de aceleración

Enviar encabezado al conversor: El encabezado consiste en enviar datos de

inicialización al conversor para configuración de su funcionamiento. La activación del conversor

análogo-digital consiste en una trama de 16-bit en estado alto, seguido de los datos de

configuración del registro de control. El encabezado se envía por medio de una subrutina

especialmente acondicionada para enviar datos a través del canal de comunicación SPI, la que se

muestra a continuación:

Page 100: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

88

static void AD7904_Write(unsigned char add, unsigned char val)

spiBuf[0] = add; // Guardar el valor almacenado en add al arreglo spibuf

spiBuf[1] = val; // Guardar el valor almacenado en val al arreglo spibuf

msg = spiBuf; // Asignar puntero msg a spibuf

count = 2; // Número de bytes

state = SPI_BUSY; // Asignar estado de ocupado

IOCLR = 0x40000000; // SS_AD7904 = 0 Chip select LOW al conversor

S0SPDR = *msg; // Enviar el primer byte

while (state == SPI_BUSY) ; // Esperar hasta que se termine la

// transferencia

IOSET = 0x40000000; // SS_AD7904 = 1 Chip select high al conversor

La subrutina se llama desde el programa principal de la siguiente manera:

AD7904_Write(0xFF,0xFF);

El envió del encabezado se hace por medio de dos tramas de 8 bit debido que el buffer del

bloque SPI del microcontrolador es de 8 bits.

Configuración del conversor: En esta etapa se configura el registro de control del

conversor análogo-digital por medio de una trama de 16 bit que establece: La secuencia de

conversión, el canal a utilizar, el modo de administración de energía, el valor de la tensión de

referencia para la conversión y el tipo de codificación de los datos a la salida del conversor.

Los datos enviados de detallan en la figura 6.11 mostrado a continuación:

W RITE SEQ1 ADD1 ADD0 PM1 SEQ0 RANGE CODINGDONTCDONTC PM0 DONTC

1 0 1 1 110 00 0 00

MSB LSB

0x83h 0x30h

Fig. 6.11: Configuración del registro del control del ADC

Page 101: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

89

El comando es el siguiente:

AD7904_Write(0x83,0x30)

Captura de datos: Cuando el conversor recibe los datos correspondientes al registro de

control, se inicializa el proceso de conversión y envían los datos convertidos al microcontrolador.

Cuando el microcontrolador recibe el primer bit por flanco de subida, se activa el registro de

interrupción y se cargan los datos recibidos a un arreglo para posteriormente ser procesado.

La subrutina empleada para la captura de datos mediante interrupción es la siguiente:

void SPI_Isr(void) __irq

if ((S0SPSR & 0xF8) == 0x80)

*msg++ = S0SPDR; // Leer byte del esclavo

if (--count > 0)

S0SPDR = *msg; // Enviar próximo byte

else

state = SPI_OK; // Transferencia completada

else // SPI error

*msg = S0SPDR; // Lectura ficticia para despejar banderas

state = SPI_ERROR;

S0SPINT = 0x01; // Reset bandera de interrupción

VICVectAddr = 0; // Reset VIC

Page 102: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

90

Procesar datos: Los datos recibidos corresponden al valor análogo de la tensión en la

entrada del conversor con respecto a la tensión de referencia.

Para la demostración de su buen funcionamiento, se conectó un medidor de aceleración

(ver figura 6.12) el cual se implemento en la entrada del conversor análogo digital, debidamente

acondicionada por medio de un amplificador operacional (OPA2340PA) en modo seguidor de

tensión que tiene como objetivo actuar como buffer.

El medidor de aceleración empleado es el modelo ADXL103 (ver Anexo - D) de la

empresa Analog Device. Es un sensor de alta sensibilidad, bajo consumo de energía, detección

unidimensional y la señal de salida es proporcional a la aceleración de gravedad en el rango de

±1.7g. El pequeño tamaño del sensor de aceleración (vibración) lo hace muy apropiado para ser

camuflado fácilmente en la instalación del mismo, reduciendo el impacto visual producto de la

instalación del sistema.

Fig. 6.12: Medidor de aceleración ADXL103

Los datos capturados se filtran por medio de un filtro digital pasa-bajo del tipo IIR

nuevamente. El modelo recursivo del filtro está dado por medio de ecuaciones de diferencias.

Page 103: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

91

Los datos de diseño del filtro fueron los siguientes:

500sf Hz= Frecuencia de muestreo

0.1cf Hz= Frecuencia de corte

El diseño del filtro se realizó directamente en el software Matlab se obtuvo un filtro de

primer orden y el modelo en ecuaciones de diferencias con los coeficientes es el siguiente:

( )( ) 0.00062792 ( ) ( 1) 0.98875 ( 1)y n x n x n y n= + − + −i i 6.3

La figura 6.13 y 6.14 se muestran las respuestas del medidor de aceleración cuando está

sin activar y activado respectivamente.

Fig. 6.13: Respuesta del medidor de aceleración sin activar

Page 104: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

92

Fig. 6.14: Respuesta del medidor de aceleración activado

La línea azul representa los datos filtrados por el filtro pasa-bajo, cuyo valor absoluto

cambia según la orientación de instalación final del sensor. Sin embargo para tomar la decisión

del disparo de la alarma, se comparan los valores relativos de la señal filtrada con respecto a la

instantánea. Si ésta sobrepasa un límite predeterminado, entonces será activada la alarma.

6.4 Activación Alarma

En esta sección se describirá el proceso que se implementó a modo de demostración

cuando se activa la alarma. Se desea destacar que existe una gran flexibilidad del sistema, lo que

permite modificar esta demostración según las necesidades. En la figura 6.15 se muestra el

diagrama de flujo de la activación de la alarma, a continuación se detallarán los pasos realizados

en el programa principal.

Page 105: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

93

Inicio

Alarma Activada

Establecer conección del sistema con teléfono móvil vía Bluetooth

Captura de Fotografía(s)

Realizar llamada(s)y/o

Enviar mensaje(s) de texto

Si

No

Deshabilitar conexión del sistema con

teléfono móvil vía Bluetooth

Fig. 6.15: Diagrama de flujo de la activación de la alarma

Después de haber completado la etapa de filtrado, ya sea en el modo de la Interfaz

Universal o en el modo del conversor ADC se activa una bandera (flag_filtro). Con esta bandera

se inicializa el proceso de detección de cambios que consiste básicamente en una sustracción

entre los valores mensurados con respecto a la salida del filtro digital. El resultado de la

sustracción se almacena en una variable auxiliar (alm) para posteriormente compararla con un

valor preestablecido. Este valor se define en función de la sensibilidad que se requiera.

A continuación a modo de ejemplo se explicará el código implementado para realizar el

proceso de detección de cambios señalado anteriormente.

Page 106: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

94

if(flag_filtro)

alm = arry[2] - arry2[2]; // Diferencia entre el dato filtrado y el sin

// filtrar

if(alm >= 0x1F4) // Si la diferencia es superior a 500 unidades

alarma = 1; // Se activa la bandera de la alarma

if(alarma)

alarmax(); // Subrutina de alarma

flag_filtro = 0; // Se deja en cero para volver a filtrar los datos

turn = 200; // Se configura a 200 la vuelta de datos filtrados

La variable “turn” tiene como objetivo producir un retraso al momento posterior de

activarse la alarma. Para que el sistema no vuelva a activarse mientras se está ejecutando el

procedimiento de notificación de alarma activa.

Alarmax() : Agrupa todas las subrutinas encargadas de realizar las funciones descritas en

el diagrama de flujo figura 6.15 en el momento que se activa la alarma. Su principal objetivo es la

de gestionar la comunicación inalámbrica Bluetooth a través de comandos AT (ver anexo E) por

medio de funciones ya preestablecidas. La subrutina de este programa se describirá a

continuación.

void alarmax(void)

IOCLR = 0x80000; // Apaga LED verde 2

IOSET |= 0x100000; // Encender LED rojo 2

connect_MBT(); // Subrutina de conección Bluetooth

foto(); // Subrutina de captura de fotografía

call_cell(); // Subrutina de llamada de voz y/o dato

if(IOPIN & p031) send_sms(); // Enviar SMS

disconnect_MBT(); // Subrutina de desconexión Bluetooth

alarma = 0; // Bandera de alarma apagada

Page 107: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

95

A continuación se detallará brevemente las funciones de cada una de las subrutinas

mostradas anteriormente.

connect_MBT() : Establece la conección del sistema con el teléfono móvil vía Bluetooth

y configura el teléfono móvil por medio de comandos AT. Hay parámetros del teléfono móvil

que son necesarios configurarlos como por ejemplo quitar el eco del celular, cambiar el modo de

texto, habilitar las teclas de navegación, enviar PIN si el celular está protegido, etc.

foto() : Realiza la captura de una o más fotografías por medio de discado automático

por teclado controlado en forma remota, esta función se realiza por medio del comando

AT+CKPD. Este comando permite la emulación de digitación de cualquier tecla del celular. Se

utilizó este comando debido a su flexibilidad de uso, debido a que no todos los celulares utilizan

el mismo comando AT para capturar fotografía.

call_cell() : Realiza una llamada por medio de discado automático por teclado, se

utiliza el mismo comando descrito anteriormente (AT+CKPD), con la diferencia de que se usó la

opción de configurar los tiempos de discado y ejecución de cada tecla. Esto permite tener más

control que el comando básico ATD que normalmente se utiliza para este propósito.

disconnect_MBT() : Realiza la desconexión del sistema con el teléfono móvil vía

Bluetooth por medio de comandos AT. Con esto, la utilización de energía se optimiza y permite

alargar la vida útil de la batería del teléfono móvil.

Page 108: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

96

6.5 Aportes Originales de este trabajo

Los aportes originales realizados en este trabajo son:

La programación del código fuente (en lenguaje C) para el control, captura,

sincronización y filtrado de las señales enviadas por la Interfaz Universal.

La programación del código fuente (en lenguaje C) para el control, captura y filtrado de

las señales enviadas por el multiplexor serie.

La programación del código fuente (en lenguaje C) para la configuración del Módulo

Bluetooth.

La programación del código fuente (en lenguaje C) para el envío y recepción de

comandos AT

La programación del código fuente (en lenguaje C) para el filtrado los datos enviados por

el conversor análogo digital.

Diseño completo del sistema a nivel hardware que incluyó selección sistemática de

componentes y conectores para la implementación final en PCB con doble cara.

Disponer de un sistema inalámbrico capaz de monitorear y disparar eventos.

Adicionalmente, se agregó la familia de sensores capacitivos de tamaños de unos mm

hasta un par de metros para detección de personas. Esta tecnología no se encuentra

disponible en los sistemas de alarma actuales.

Page 109: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

97

Diseño de un sistema de bajo costo, que aporta mayor funcionalidades a nuestro equipo

celular. Además, su bajo consumo de energía (alrededor de 50 mA) permite la operación

del sistema con baterías.

Aunque se presenta una demostración para cada interfaz, el sistema permite conectar

directamente una gran cantidad de sensores de diferentes naturalezas. Donde se

conectaron los sensores capacitivos es posible conectar sensores de diferentes naturalezas

como: sensores de temperatura (PT100, PT1000, termistores), sensores de presión y/o

aceleración basados en des-balances de impedancias (strange gauge), sensores de

humedad, etc.

Lo más importante en el desarrollo de este trabajo, es el profundo conocimiento de cada

una de las partes que permitiría en un tiempo corto adaptarlo a otras necesidades; como

por ejemplo agregarle una memoria externa para almacenar eventos y transmitirlos vía

celular a otro lugar.

Page 110: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

98

6.6 Trabajos futuros

Los resultados obtenidos durante el desarrollo del presente trabajo han sido satisfactorios

y concordantes con lo esperado. Originalmente el sistema no incluía Bluetooth sino solo la

conexión del celular vía cable RS232. Sin embargo, la incorporación del control del celular vía

Bluetooth y el funcionamiento de los diferentes modos de activación del sistema de alarma ha

resultado en una gran flexibilidad. Sin embargo, convendría profundizar y desarrollar las

siguientes tareas para trabajos futuros:

• Implementar una interfaz en el celular del usuario final que permita tener una

interacción inmediata con el sistema de alarma. Esto se logra estudiando el

lenguaje de programación Java 2 Platform Micro Edition que permite desarrollar

aplicaciones para dispositivos limitados más específicamente para teléfonos

móviles. También es necesario estudiar los API (Application Programming

Interface) JSR 82 que básicamente permite desarrollar aplicaciones de bajo nivel

del Bluetooth.

• Integrar en lo posible más componentes de superficie y montaje de los mismos por

las dos caras del PCB, para lograr un tamaño aun más reducido que el obtenido

actualmente (89.84mm x 127.46mm). Con este cambio es posible reducir el

tamaño PCB en un tercio del tamaño actual.

• Depurar la subrutina de sincronización del programa principal para que se haga

solamente una sincronización inicial.

• Es posible agregar un módulo OEM GPS, que permitiría hacer un seguimiento

físico de un objeto móvil.

• Por último se propone una continuación de la investigación sobre la Interfaz

Universal UTI, de la que en este trabajo sólo se han presentado brevemente los

fundamentos teóricos (capitulo 3.1) y algunos resultados de experimentales

mostrados en el capitulo 6.4.1.

Page 111: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

CAPÍTULO VII

CONCLUSIONES

Page 112: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

100

7 Conclusiones

Se propuso como objetivo principal de este trabajo el estudio, optimización y construcción

de un sistema universal compatible con diferentes modelos de celulares de tal manera que

permitan convertir un celular en un sistema de: monitoreo, seguimiento y/o alarma a bajo costo.

Para poder alcanzar estos objetivos se realizó un estudio exhaustivo del tipo de interfases para

sensores, de los protocolos de comunicación inalámbrica Bluetooth y comandos AT para el

control del teléfono móvil.

En una primera etapa se estudió e implementó una Interfaz Universal UTI. Esta es capaz

de medir señales desde múltiples sensores pasivos sin la necesidad de hardware adicional. Esta

interfaz convierte las mediciones en señales moduladas en el tiempo, sin la necesidad de

amplificadores de instrumentación ni convertidores análogos digitales, manteniendo el sistema a

bajo costo. Esta interfaz tiene la capacidad transformar la señal de diversos tipos de sensores

capacitivos, resistivos y modularlos para ser transmitido directamente al microcontrolador. La

interfaz es capaz de funcionar en 15 modos diferentes tales como: sensores capacitivos en el

rango de 2pF y sensores capacitivos en el rango de 300pF, sensores resistivos, PT100, PT1000,

termistores, puentes resistivos, potenciómetros y sus combinaciones. Adicionalmente se obtuvo

una velocidad de muestreo aproximada de 100ms con una linealidad y precisión 13 y 14 bit

respectivamente con respecto a una variable de referencia.

El estudio del estándar Bluetooth consideró los protocolos de: banda base, gestor de

enlace, descubrimiento de servicios, adaptación y control de enlace. Estos protocolos están

asociados directamente al uso del perfil de puerto serie utilizado para establecer la comunicación

inalámbrica entre el sistema diseñado y el teléfono móvil vía Bluetooth.

Page 113: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

101

No existieron problemas al comunicarse con el módulo Bluetooth utilizado en el sistema

de alarma, sin embargo la distancia fue la única de las limitaciones para su uso limitado en el

mejor de los casos a 200mt de alcance (hasta 1000mt con antena opcional). Se desea destacar que

la comunicación inalámbrica vía Bluetooth no tiene costo para el usuario final comparado con las

otras tecnologías existentes en el celular (mensajes SMS, y conexión a la red GSM), lo cual

resulta atractivo para este tipo de aplicación.

Adicional a la comprensión de cómo funciona el sistema en su totalidad, la programación

fue la tarea que demandó más tiempo debido a la necesidad de operar todo el sistema en tiempo

real y responder a las diferentes interrupciones de comunicación y sensado. Cada uno de los

módulos que comprenden el diseño del sistema de alarma fue implementado por separado y

posteriormente se integró al programa final.

La implementación de la interfaz universal (UTI) resultó ser lo más complejo y difícil de

desarrollar. El programa realiza las tareas de: control, captura, identificación y sincronización de

las señales mensuradas. También se consideraron los desbordamientos periódicos del reloj del

microcontrolador y posteriormente la implementación de filtros digitales para poder activar la

alarma en forma óptima.

La implementación del convertidor análogo-digital resulto ser el más sencillo, sin

embargo se tuvo que familiarizarse con la comunicación SPI. Esto permite en un futuro

implementar sin problemas otras interfaces tal como memorias EEPROM, etc.

Page 114: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

102

La implementación del control y monitoreo del celular significo un tiempo considerable

de programación y pruebas. Las dos principales tareas realizadas fueron el envío y recepción de

mensajes de texto mediante la utilización de comandos AT específicos para teléfonos móviles.

En el capitulo 5 se explicaron los dos formatos disponibles para enviar mensajes: el modo

texto y el modo PDU. En un principio se enviaron mensajes en modo texto, ya que el teléfono

móvil utilizado admitía los dos formatos. Sin embargo, el teléfono móvil no incluía el juego

completo de comandos AT. Por este motivo se trabajo con otro teléfono móvil, el cual se tuvo

que elegir de acuerdo a nuevos criterios (juego de comandos AT completo y perfil de puerto serie

en su módulo Bluetooth). Como resultado se selecciono un modelo de la marca Sony Ericsson.

Pero este modelo sólo admite el modo PDU, finalmente se implemento en el envío y recepción de

mensajes de texto en modo PDU. La complejidad del formato PDU radica en la necesidad de

codificar los datos. Por otro lado, su principal ventaja es la compatibilidad con todos los teléfonos

móviles, indistintamente la marca o la compañía. Por lo tanto, con este trabajo se aumento

considerablemente la compatibilidad con diferentes teléfonos móviles independiente de su

modelo o compañía (Entel-Movistar -Claro).

La alimentación del sistema de alarma es de 6 Volts nominal. Su bajo consumo de sólo

150mA permite su alimentación mediante baterías para obtener mayor autonomía frente a cortes

de energía y/o mayor robustez del sistema.

Finalmente el sistema desarrollado en este trabajo permite conectar una gran variedad

sensores para producir el disparo de la alarma, sin embargo, a modo de demostrar su potencial se

desarrollo una aplicación para cada tipo de interfaz. Para el caso de la interfaz universal se

conectó un detector capacitivo de posición. Este se calibra automáticamente a los parámetros del

medio, gracias a la implementación de los filtros pasabajo digitales. La aproximación de una

persona al detector resulta en un cambio abruto de las señales instantáneas con respecto a la

salida de los filtros. La diferencia entre las mediciones instantáneas y las salidas de los filtros es

utilizado como criterio para disparar la alarma según sensibilidad previamente programada.

Page 115: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

103

En forma similar se implementó un detector de vibración para el conversor análogo-

digital. El cual es utilizado para detectar vibraciones o movimientos sobre un sensor de inercia.

Este finalmente entrega la información necesaria para dispara la alarma según una sensibilidad

previamente programada.

El disparó del sistema permite avisar al celular del usuario final por medio de una llamada

de voz, datos y/o mensajes SMS. Adicionalmente, el usuario final puede controlar en forma

remota y decidir un determinado perfil predeterminado tal como realizar llamada de voz,

almacenamiento del audio por un periodo corto de tiempo, solicitar la toma y envió de una

fotografía e incluso grabar un video y/o activación de una bocina u otro dispositivo eléctrico.

Como resultado final se demostró que este sistema desarrollado aumenta la funcionalidad

de un celular para ser utilizado como un sistema de alarma y/o monitoreo multipropósito.

Por último, se desea recalcar que en el futuro de la telefonía móvil seguirá creciendo y

cubriendo necesidades del usuario inimaginable hasta el día de hoy, donde el presente trabajo

espera contribuir de alguna forma en este progreso.

Page 116: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

104

Bibliografía

[1] Trevor Martín BSc. (hons) CEng. MIEE, “The Insider’s Guide to the Philips ARM 7”, An

Engineer’s Introduction to the LPC2100 Series.

[2] Koninklijke Philips Electronics, “LPC2104/2105/2106”, Data Sheet, Rev. 05 Ñ 22

December 2004

[3] “ARM7TDMI-S”, Technical Reference Manual, 28 September 2001.

[4] SMARTEC BV, “Universal Transducer Interface (UTI)”, Revolution in Sensor

Interfacing, Data Sheet, Version 3.0.

[5] SMARTEC BV, “Pre-processing and digitising of sensor signals”, Fact sheet UTI,

Version: 1.0 April 1998.

[6] F. M. L. Van Der Goes, "Low-cost smart sensor interfacing," vol. PhD. Delft: Technology

University of Delft, 1996.

[7] Analog Devices, “AD7904/AD7914/AD7924”, Data Sheet, Rev. 0, 2002.

[8] Philips Electronics, “LPC2106/2105/2104 USER MANUAL”, Preliminary User Manual,

September 17, 2003.

[9] Nathan J. Muller, “Tecnología Bluetooth”, Mcgraw-Hill / Interamericana de España, S.A.,

Primera edición en español 2002,498 paginas.

Page 117: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

105

[10] Sony Ericsson, “AT commands for Sony Ericsson phones”, Developers guidelines,

Version R6A, 2007.

[11] Paúl Aguayo S, “Compilando una aplicación para ARM con Elipse”, Basado en el tutorial

de James P. Lynch.

[12] Sena Technologies, Inc, “Parani-ESD100/110/200/210”, User Guide, Version 1.0.3, 2006-

10-18, Available from: URL: http://www.lemosint.com/bluetooth_specs/manual_parani_esd-

v1.0.1.pdf

[13] OLIMEX Ltd, “LPC-P2106 PROTOTYPE BOARD FOR LPC2106 ARM7TDMI-S

MICROCONTROLLER”, Manual Evaluation Board, Version: 2004

Page 118: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

ANEXO - A

CÓDIGO FUENTE

DEL

MICROCONTROLADOR

Page 119: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

108

/* |-------------------------------- |-------------------------------- | Nombre del archivo : Capture.c | Autor : Richard Ojeda. |-------------------------------- |-------------------------------- */ #include"lpc210x.h" #define CR 0x0D #define CTRZ 0X1A #define ESC 0x1B #define SPI_OK 0 #define SPI_BUSY 1 #define SPI_ERROR 2 int putchar (int ch); // Enviar caracter al puerto serial 0 int getchar (void); // Leer caracter del puerto serial 0 int putchar1 (int ch); // Enviar caracter al puerto serial 1 void sendstr1 (char *p); // Enviar string al puerto serial 1 void Initialize0(void); // Inicialización UART 0 void Initialize1(void); // Inicialización UART 1 void T0isr(void) __irq; // Interrupción por captura de datos void uart1(void) __irq; // Interrupción por recepción de datos UART void SPI_Isr(void) __irq; // Interrupción por recepción de datos SPI void SPI_Init(void); // Inicialización SPI void SPI_config(void); // Configuración SPI void alarmax(void); // Alarma void foto(void); // Sacar foto void Sincro(void); // Sincronización datos UTI void ShowHelp(void); // Menu de ayuda void SetMode(int S1,int S2,int S3,int S4,int Ph); // Selección de modo void SetSlowMode(void); // Modo Slow desactivado void SetFastMode(void); // Modo Fast activado void SetPDMode(void); // Modo Power Down activado void SetCML(void); // CML activado void ClrCML(void); // CML desactivado void NewShowMeasurement(void); // Subrutina de medida void sendhex (int hex); // Enviar caracter hexadecimal void sendstr (char *p); // Enviar string void num_mostrar(unsigned long val); // Enviar string hexadecimal void connect_MBT(void); // Conectar modulo bluetooth void disconnect_MBT(void); // Desconectar modulo bluetooth void call_cell(void); // Llamar a celular void send_sms(void); // Enviar sms void read_sms(void); // Leer sms static void AD7904_Write(unsigned char add, unsigned char val); // Envio // datos SPI

Page 120: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

109

int main(void) PINSEL0 = 0x00055525; Initialize0(); Initialize1(); VPBDIV = 0x1; IODIR |= 0x5FB93F00; VICVectAddr6 = (unsigned)uart1; VICVectCntl6 = 0x27; VICIntEnable = 0x90; while(IOPIN & p029) SPI_Init(); T0MCR = 0x1; T0MR0 = 0xFFFFFF00; T0PR = 0x0; T0TCR = 0x2; T0CCR = 0x5; T0TCR = 0x1; VICVectAddr4 = (unsigned)T0isr; VICVectCntl4 = 0x24; ShowHelp(); do answer = getchar(); switch(answer) case'H':ShowHelp(); break; case'h':ShowHelp(); break; case'?':ShowHelp(); break; case'0':SetMode(0,0,0,0,5); sendstr (" Select Mode 0\n"); break; case'1':SetMode(0,0,0,1,3); sendstr (" Select Mode 1\n"); break; case'2':SetMode(0,0,1,0,5); sendstr (" Select Mode 2\n"); break; case'3':SetMode(0,0,1,1,9); MODE3_FLG = 1; sendstr (" Select Mode 3\n"); sendstr (" Select nº Phases: \n"); answer = getchar();

Page 121: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

110

switch(answer) case'1': Phases = 1; sendstr (" Phase = 1\n\n"); break; case'2': Phases = 2; sendstr (" Phases = 2\n\n"); break; case'3': Phases = 3; sendstr (" Phases = 3\n\n"); break; case'4': Phases = 4; sendstr (" Phases = 4\n\n"); break; case'5': Phases = 5; sendstr (" Phases = 5\n\n"); break; case'6': Phases = 6; sendstr (" Phases = 6\n\n"); break; case'7': Phases = 7; sendstr (" Phases = 7\n\n"); break; case'8': Phases = 8; sendstr (" Phases = 8\n\n"); break; case'9': Phases = 9; sendstr (" Phases = 9\n\n"); break; default: break; break; case'4':SetMode(0,1,0,0,3); sendstr (" Select Mode 4\n"); break; case'5':SetMode(0,1,0,1,4); sendstr (" Select Mode 5\n"); break; case'6':SetMode(0,1,1,0,4); sendstr (" Select Mode 6\n"); break; case'7':SetMode(0,1,1,1,5); sendstr (" Select Mode 7\n"); break; case'8':SetMode(1,0,0,0,5); sendstr (" Select Mode 8\n"); break; case'9':SetMode(1,0,0,1,3); sendstr (" Select Mode 9\n"); break; case'A':SetMode(1,0,1,0,3); sendstr (" Select Mode 10\n");

Page 122: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

111

break; case'B':SetMode(1,0,1,1,3); sendstr (" Select Mode 11\n"); break; case'C':SetMode(1,1,0,0,3); sendstr (" Select Mode 12\n"); break; case'D':SetMode(1,1,0,1,5); sendstr (" Select Mode 13\n"); break; case'E':SetMode(1,1,1,0,5); sendstr (" Select Mode 14\n"); break; case'F':SetMode(1,1,1,1,5); sendstr (" Select Mode 15\n"); break;default: break; answer = 0; while (!RESET_FLG); do IOSET = 0x80000; if(flag_capture) Sincro(); if(answer == 0) answer = getchar(); switch(answer) case'H':ShowHelp(); break; case'h':ShowHelp(); break; case'?':ShowHelp(); break; case's':SetSlowMode(); sendstr (" Set Slow Mode\n"); break; case'f':SetFastMode(); sendstr (" Set Fast Mode\n"); break; case'p':SetPDMode(); sendstr (" Power down\n"); break; case't':SetCML(); sendstr (" CML = 1 \n"); break; case'n':ClrCML(); sendstr (" CML = 0 \n"); break; case'm':NewShowMeasurement(); break; case'M':NewShowMeasurement(); break; default:break;

Page 123: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

112

while (TRUE); void Initialize0() U0FCR = 0x7; U0LCR = 0x83; U0DLL = 0x20; U0DLM = 0x0; U0LCR = 0x3; void Initialize1() U1FCR = 0x7; U1LCR = 0x83; U1DLL = 0x80; U1DLM = 0x1; U1LCR = 0x3; U1IER = 0x1; void T0isr (void) __irq static int value; unsigned int tie; unsigned int timer; if (T0IR & 0x00000010) if(MODE3_FLG) i++; if (!(i & 0x01)) IOCLR = 0x800; IOCLR = 0x1000; value = T0CR0; VICVectAddr = 0x0; timer = value; tie = timer - timerold; if (flag_overflow == 1) tie = 0xFFFFFFFF - timerold + timer; flag_overflow = 0; T0IR |= 0x00000001; periodos[i] = tie; timerold = timer; if (flag_capture2) arry[1] = periodos[3]; arry[2] = periodos[4]; arry[3] = periodos[6]; arry[4] = periodos[8]; arry[5] = periodos[10]; arry[6] = periodos[12]; arry[7] = periodos[14]; arry[8] = periodos[16]; arry[9] = periodos[18]; EnableTransmission = 1;

Page 124: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

113

else value = T0CR0; VICVectAddr = 0x0; timer = value; tie = timer-timerold; if (flag_overflow == 1) tie = 0xFFFFFFFF - timerold + timer; flag_overflow = 0; T0IR |= 0x00000001; periodos[i] = tie; timerold = timer; if(!(i < (Phases << 1))) IOCLR = 0x2000; IOSET = 0x800; i = 0; for(l=0;l >= 0x200;l++) IOCLR = 0x10000; IOSET = 0x2000; flag_capture2 = 1; else IOSET = 0x10000; IOSET = 0x1000; else value = T0CR0; VICVectAddr = 0x0; timer = value; if(i == bp) i = 0; bp = 0; if(i >= fin) i = 0; flag_capture = 1; tie = timer - timerold; if (flag_overflow == 1) tie = 0xFFFFFFFF - timerold + timer; flag_overflow = 0; T0IR |= 0x00000001; timerold = timer; periodos[i] = tie; i++;

Page 125: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

114

else flag_overflow = 1; VICVectAddr = 0x0; T0IR |= 0x00000001; void Sincro(void) if(!MODE3_FLG) fin2 = fin/0x2; min = 0xFFFFFF; for( k = 0 ; k <= fin ;k++) arry[k] = periodos[k]; for( k = 1 ; k < fin2 ;k++) if(min > arry[k]) bp = k; min = arry[k]; if(arry[bp-1] < arry[bp+1]) bp--; EnableTransmission = 1; flag_capture = 0; void ShowHelp(void) sendstr ("\n\n U T I E V A L U A T I O N B O A R D H E L P \n\n"); sendstr (" s -> Set Slow Mode f -> Set Fast Mode\n"); sendstr (" t -> CML = 1 (CMUX12) n -> CML = 0 (CMUX02)\n"); sendstr (" m -> Single measurement M -> Infinite measurement cycle p -> Power down \n\n"); sendstr (" 0 -> Mode 0 - 5 Capacitors, 0÷2 pF\n"); sendstr (" 1 -> Mode 1 - 3 Capacitors, 0÷2 pF\n"); sendstr (" 2 -> Mode 2 - 5 Capacitors, 0÷12 pF\n"); sendstr (" 3 -> Mode 3 - Capacitors, 0÷2 pF if CML=0 / 0÷12 pF if CML=1\n"); sendstr (" 4 -> Mode 4 - 3 Capacitors, variable range to 300 pF\n"); sendstr (" 5 -> Mode 5 - Platinium resistor Pt100 - Pt1000, 4 wire\n"); sendstr (" 6 -> Mode 6 - Termistor 1k÷25k, 4 wire\n"); sendstr (" 7 -> Mode 7 - 2 or 3 platinium resistors Pt100 - Pt1000\n"); sendstr (" 8 -> Mode 8 - 2 or 3 termistors 1k÷25k\n"); sendstr (" 9 -> Mode 9 - Resistive bridge, ref. is Vbridge,+/- 200 mV\n"); sendstr (" A -> Mode 10 - Resistive bridge, ref. is Vbridge,+/- 12.5 mV\n"); sendstr (" B -> Mode 11 - Resistive bridge, ref. is Ibridge,+/- 200 mV\n");

Page 126: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

115

sendstr (" C -> Mode 12 - Resistive bridge, ref. is Ibridge,+/- 12.5 mV\n"); sendstr (" D -> Mode 13 - Resistive bridge and 2 resistors,+/- 200 mV\n"); sendstr (" E -> Mode 14 - Resistive bridge and 2 resistors,+/- 12.5 mV\n"); sendstr (" F -> Mode 15 - 3 Potentiometers 1k÷50k\n\n"); sendstr (" Please Make a Choise :\n\n"); answer = 0; void SetMode(int S1,int S2,int S3,int S4,int Ph) if(S1 == 0) IOCLR = 0x10000000; else IOSET = 0x10000000; if(S2 == 0) IOCLR = 0x8000000; else IOSET = 0x8000000; if(S3 == 0) IOCLR = 0x4000000; else IOSET = 0x4000000; if(S4 == 0) IOCLR = 0x2000000; else IOSET = 0x2000000; IOCLR = 0x400; IOSET = 0x800000; Phases = Ph; fin = ((Phases+1)*2); answer = 0; RESET_FLG = 1; void SetSlowMode(void) IOCLR = 0x1000000; IOSET = 0x800000; anf = 0.82727; bnf = 0.086364; fin_turn = 100; answer = 0; void SetFastMode(void) IOSET = 0x1000000; IOSET = 0x800000; anf = 0.98133; bnf = 0.0093371 fin_turn = 250; answer = 0; void SetPDMode(void) IOCLR = 0x800000; answer = 0; void SetCML(void) if (MODE3_FLG) IOSET = 0x400; IOSET = 0x800000; answer = 0;

Page 127: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

116

void ClrCML(void) IOCLR = 0x400; IOSET = 0x800000; answer = 0; void NewShowMeasurement(void) int j; if(IOPIN & 0x800000) if (MODE3_FLG) if (!EnableTransmission); EnableTransmission = 0; for (j = 1; !(j > Phases); j++) if(arry[j] != 0) num_mostrar(arry[j]); sendstr (" "); sendstr ("\n"); if (answer == 'm') answer=0; else if (EnableTransmission) EnableTransmission = 0; if(turn <= 1) IOSET = 0x200000; turn++; if(turn == 2) bp_1 =Phases+1; arry2[0] = arry[2]; arry2[1] = arry[bp_1+2]; ynf = bnf*(arry2[0] + arry2[1]) + anf*ynfold; arry2[3] = ynf; ynfold = ynf; turn++; if(turn >= 3) arry2[0] = arry2[1]; arry2[1] = arry[2]; ynf = bnf*(arry2[0] + arry2[1]) + anf*ynfold; arry2[2] = ynf; ynfold = ynf; arry2[0] = arry2[1]; arry2[1] = arry[bp_1+2]; ynf = bnf*(arry2[0] + arry2[1]) + anf*ynfold;

Page 128: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

117

arry2[3] = ynf; ynfold = ynf; if(turn <= fin_turn) turn++; if(turn >= fin_turn) flag_filtro = 1; IOCLR = 0x200000; if(flag_filtro) alm = arry[2] - arry2[2]; if(alm >= 0x1F4) alarma = 1; alm = arry[bp_1+2] - arry2[3]; if(alm >= 0x1F4) alarma = 1; if(alarma) flag_filtro = 0; turn = 200; alarmax(); if(bp == 0) z = 1; else z = 0; for(x = 0 ; x <= z ; x++) if(bp == 0) bp_0 = x*(Phases+1); else bp_0 = bp; pnt = arry[bp_0+0] + arry[bp_0+1]; if(pnt != 0) num_mostrar(pnt); sendstr (" "); for (j = 2; j <= Phases; j++) if(arry[bp_0+j] != 0) num_mostrar(arry[bp_0+j]); sendstr (" "); sendstr (" "); sendstr ("\n"); if (answer == 'm') answer = 0; void sendhex (int hex) if (hex > 9) putchar('A' + (hex - 10)); else putchar('0' + hex);

Page 129: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

118

void sendstr (char *p) while (*p) putchar (*p++); void sendstr1 (char *p) while (*p) putchar1 (*p++); void num_mostrar(unsigned long val) sendhex((val >> 28) & 0x0F); sendhex((val >> 24) & 0x0F); sendhex((val >> 20) & 0x0F); sendhex((val >> 16) & 0x0F); sendhex((val >> 12) & 0x0F); sendhex((val >> 8) & 0x0F); sendhex((val >> 4) & 0x0F); sendhex (val & 0x0F); int putchar (int ch) if (ch == '\n') while (!(U0LSR & 0x20)); U0THR = CR; while (!(U0LSR & 0x20)); return (U0THR = ch); int getchar (void) while (!(U0LSR & 0x01)); return (U0RBR); int putchar1 (int ch) if (ch == '\n') while (!(U1LSR & 0x20)); U1THR = CR; while (!(U1LSR & 0x20)); return (U1THR = ch); void connect_MBT(void) while (connect != 1) sendstr1 ("ATD001B596ED690\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x43) connect = 1; ok = 1; ok =0;

Page 130: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

119

connect = 0; while(ate != 1) VICIntEnable = 0x0; U1THR = 'A'; U1THR = 'T'; U1THR = 'E'; U1THR = '='; U1THR = '0'; U1THR = '\r'; U1THR = '\n'; VICIntEnable = 0x80; while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; ate = 1; if(buffer[1] == 0x45) ok = 1; ate = 0; ok = 0; while(cpms != 1) sendstr1 ("AT+CPMS="); U1THR = 0x22; U1THR = 0x4D; U1THR = 0x45; U1THR = 0x22; sendstr1 ("\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; cpms = 1; if(buffer[1] == 0x45) ok = 1; cpms = 0; ok = 0;

Page 131: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

120

while(cnmi != 1) sendstr1 ("AT+CNMI=2,1,2,0,0\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; cnmi = 1; if(buffer[1] == 0x45) ok = 1; cnmi = 0; ok = 0; while(CSCS != 1) sendstr1 ("AT+CSCS="); U1THR = 0x22; U1THR = '8'; U1THR = '8'; U1THR = '5'; U1THR = '9'; U1THR = 0x2D; U1THR = '1'; U1THR = 0x22; sendstr1 ("\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; CSCS = 1; if(buffer[1] == 0x45) ok = 1; ok = 0; void send_sms(void) while(mensaje != 1) sendstr1 ("AT+CMGS=67\r\n"); while(rx_sms != 1); rx_completa = 0;

Page 132: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

121

if (buffer[1] == 0x3E) sendstr1 ("069165190610030100089198679358000040201048146487E5ED302838A6A7ED617258A45014DDF674580E828 U1THR = CTRZ; //U1THR = ESC; mensaje = 1; void uart1(void) __irq w++; buffer[w] = U1RBR; if(buffer[w] == 0x0A) rx_completa = 1; w = 0; if(buffer[w] == 0x3E) rx_sms = 1; w = 0; if(buffer[w] == 0x2B) almacenar = 1; if(flag_save_sms) if(w == 0) flag_save_sms = 0; flag_read_sms = 1; sms[w] = buffer[w]; if(flag_save_index) if(w == 12) n0 = buffer[w]; if(w == 13) n1 = buffer[w]; flag_save_index = 0; if(almacenar == 1) if(w == 3) switch(buffer[w]) case 0x54: flag_save_index = 1; break; case 0x47: flag_save_sms = 1;

Page 133: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

122

break; almacenar = 0; U1IIR; VICVectAddr = 0x0; void read_sms(void) sendstr1 ("AT+CMGR="); U1THR = n0; U1THR = n1; sendstr1 ("\r\n"); while(flag_read_sms != 1); if(sms[38]=='0') alarma = 0; sendstr (" Alarma desactivada\n\n"); if(sms[38]=='1') alarma = 1; sendstr (" Alarma activada\n\n"); void SPI_config(void) VICVectAddr0 = (unsigned int) SPI_Isr; VICVectCntl0 = 0x2A; VICIntEnable = 0x400; S0SPCCR = 0x36; S0SPCR = 0xB0; IOSET = 0x40000000; anf = 0.99874; bnf = 0.00062792; void SPI_Isr(void) __irq if ((S0SPSR & 0xF8) == 0x80) *msg++ = S0SPDR; if (--count > 0) S0SPDR = *msg; else state = SPI_OK; else *msg = S0SPDR; state = SPI_ERROR; S0SPINT = 0x01; VICVectAddr = 0; static void AD7904_Write(unsigned char add, unsigned char val) spiBuf[0] = add; spiBuf[1] = val;

Page 134: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

123

msg = spiBuf; count = 2; state = SPI_BUSY; IOCLR = 0x40000000; S0SPDR = *msg; while (state == SPI_BUSY) ; IOSET = 0x40000000; void disconnect_MBT(void) while (disconnect != 1) sendstr1 ("+++\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; next = 1; if(buffer[1] == 0x45) ok = 1; next = 0; ok = 0; if(next == 1) sendstr1 ("ATH\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; disconnect = 1; if(buffer[1] == 0x45) ok = 1; disconnect = 0; ok = 0; disconnect = 0; IOCLR |= 0x100000; void call_cell(void)

Page 135: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

124

if(CSCS == 1) while(CKPD != 1) sendstr1 ("AT+CKPD="); U1THR = 0x22; U1THR = ':'; U1THR = 'R'; U1THR = '8'; U1THR = '9'; U1THR = '7'; U1THR = '6'; U1THR = '3'; U1THR = '9'; U1THR = '8'; U1THR = '5'; U1THR = '['; U1THR = 0x22; sendstr1 (",1,1\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; CKPD = 1; if(buffer[1] == 0x45) ok = 1; ok = 0; CSCS = 0; CKPD = 0; while(CKPD != 1) sendstr1 ("AT+CKPD="); U1THR = 0x22; U1THR = 'C'; U1THR = ']'; U1THR = 0x22; sendstr1 (",5,150\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; CKPD = 1;

Page 136: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

125

if(buffer[1] == 0x45) ok = 1; ok = 0; CKPD = 0; void SPI_Init(void) SPI_config(); AD7904_Write(0xFF,0xFF); while(1) IOSET = 0x80000; if(alarma) sendstr ("Alarma Activada \n"); alarmax(); AD7904_Write(0x83,0x30); if (state == SPI_OK) sendstr ("\n"); sendstr (" "); spiBuf[0] = spiBuf[0] << 3; spiBuf[1] = spiBuf[1] >> 4; spiBuf[2] = spiBuf[0] | spiBuf[1]; if(turn <= 1) IOSET = 0x200000; // Led on arry2[0] = spiBuf[2]; turn++; if(turn >= 2) arry2[1] = spiBuf[2]; ynf = bnf*(arry2[0] + arry2[1]) + anf*ynfold; arry2[2] = ynf; ynfold = ynf; arry2[0] = arry2[1]; turn++; if(turn >= 4000) flag_filtro = 1; IOCLR = 0x200000; if(flag_filtro) alm = spiBuf[2] - arry2[2]; num_mostrar(spiBuf[2]); sendstr (" "); num_mostrar(arry2[2]); sendstr ("\n");

Page 137: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

126

if(alm >= 0x21) alarma = 1; void alarmax(void) IOCLR = 0x80000; IOSET |= 0x100000; connect_MBT(); foto(); call_cell(); if(IOPIN & p031) send_sms(); disconnect_MBT(); alarma = 0; void foto(void) while(CKPD != 1) sendstr1 ("AT+CKPD="); U1THR = 0x22; // " U1THR = ':'; U1THR = 'R'; U1THR = ':'; U1THR = 'R'; U1THR = ':'; U1THR = 'C'; U1THR = ':'; U1THR = 'J'; U1THR = ':'; U1THR = 'R'; U1THR = ':'; U1THR = 'R'; U1THR = 0x22; // " sendstr1 (",5,1\r\n"); while(ok != 1) while(rx_completa != 1); rx_completa = 0; if(buffer[1] == 0x4F) ok = 1; CKPD = 1; if(buffer[1] == 0x45) ok = 1; ok = 0; CKPD = 0;

Page 138: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

ANEXO – B

CARACTERISTICAS NXP LPC2106

Page 139: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

128

B.1 Descripción de pines microcontrolador NXP LPC2106

Fig. B.1: Configuración de pines LQFP48

Page 140: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

129

B.2 Diagrama de bloques

Page 141: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

ANEXO - C

ESQUEMÁTICO

Y

PCB DEL SISTEMA

Page 142: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

131

C.1 Esquemático del sistema

Page 143: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

132

C.2 PCB del sistema

Page 144: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

ANEXO - D

CARACTERISTICAS ADXL103

Page 145: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

134

D.1 Diagrama de bloques funcional del medidor de aceleración

D.2 Especificaciones Técnicas

Page 146: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

135

D.3 Valores máximos

D.4 Configuración de pines y descripción

Fig. D.4: Configuración de pines

Tabla. D.4: Descripción de pines ADXL103

Page 147: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

ANEXO - E

RESUMEN DE ESTADO

Y

RESUMEN DE COMANDOS AT

DEL

MÓDULO BLUETOOTH

Page 148: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

137

E.1 Modos de operación

E.2 Seguridad

E.3 Estados de operación

E.4 Símbolos

Page 149: “ESTUDIO, OPTIMIZACION Y CONSTRUCCION DE ... - … · universidad de magallanes facultad de ingenieria departamento de ingenieria en electricidad “estudio, optimizacion y construccion

138

E.5 Categorías de los comandos