ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

76
UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERIA DEPARTAMENTO DE ELECTRICIDAD ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA PATRICIO HARO ALARCÓN CRISTIAN MORA RIVERA 2006

Transcript of ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

Page 1: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERIA

DEPARTAMENTO DE ELECTRICIDAD

ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

PATRICIO HARO ALARCÓN CRISTIAN MORA RIVERA

2006

Page 2: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

UNIVERSIDAD DE MAGALLANES

FACULTAD DE INGENIERIA DEPARTAMENTO DE ELECTRICIDAD

ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

PROYECTO DE TITULACION PRESENTADO EN CONFORMIDAD A LOS REQUISITOS PARA OBTENER EL TITULO DE INGENIERO DE EJECUCIÓN EN ELECTRICIDAD CON MENCIÓN EN ELECTRÓNICA INDUSTRIAL. PROFESOR GUIA: Sr. JORGE REYES M.

Sr. JUAN CHAVEZ Z.

PATRICIO HARO ALARCÓN CRISTIAN MORA RIVERA

2006

Page 3: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

RESUMEN El objetivo de este trabajo es realizar el diseño de un sistema transmisor/receptor capaz

de transmitir los datos proporcionados por un sensor (cualquier tipo de sensor) hacia

una estación receptora. El diseño se basa en un microcontrolador de la empresa

Microchip (rfPIC12F675), el cual es el encargado de tratar la información que genera

el sensor de forma apropiada para poder enviarla hacia el transmisor y poderla

gestionar posteriormente. Hay que destacar que el microcontrolador utilizado

dispone de diversas opciones de programación que le permiten hacer una buena

gestión de consumo.

El trabajo se divide principalmente en dos etapas. En la primera se realiza un estudio

de los diferentes bloques que componen el sistema así como de las especificaciones

del microcontrolador que se va a utilizar y las funciones que deberá realizar.

En la segunda etapa se aborda exclusivamente el diseño del software mediante el

rfPIC12F675. Primero se hacen una serie de pruebas para aprender el manejo del

microcontrolador y a continuación se describe el desarrollo del programa final.

En este trabajo se ha hecho básicamente el estudio del software de comunicación

transmisor/receptor.

Page 4: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

INDICE

CAPITULO I INTRODUCCIÓN............................................................................. 1

1.1 OBJETIVO................................................................................ 2

CAPITULO II MICROCONTROLADORES............................................................ 5

2.1 REFERENCIA HISTORICA...................................................... 6

2.1.1 Aplicaciones..................................................................... 7

2.1.2 Herramientas de Desarrollo............................................. 8

2.2 MICROCONTROLADOR.......................................................... 8

2.2.1 Diferencias entre Microprocesador y Microcontrolador.... 9

2.2.2 Arquitectura Básica.......................................................... 11

2.2.3 La Arquitectura Tradicional John Von Neumann............. 11

2.2.4 La Arquitectura Harvard................................................... 13

2.2.5 Unidades de Memoria...................................................... 14

2.2.6 Tipos................................................................................ 14

2.2.7 Capacidad........................................................................ 17

CAPITULO III DISEÑO TRANSMISOR - RECEPTOR........................................... 18

3.1 ESTRUCTURA......................................................................... 19

3.1.1 Transmisor....................................................................... 19

3.1.2 Receptor........................................................................... 21

3.2 ESPECIFICACIONES MICROCONTROLADOR...................... 22

3.3 COMUNICACIÓN TRANSMISOR-RECEPTOR....................... 26

3.3.1 Transmisor....................................................................... 26

3.3.2 Receptor........................................................................... 29

3.4 DISEÑO DE LAS UNIDADES TRANSMISOR Y RECEPTOR.... 30

Page 5: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

3.4.1 Funcionamiento del PIC12F675...................................... 30

3.5 DISEÑO DEL TRANSMISOR CON rfPIC12F675..................... 31

3.5.1 Hardware.......................................................................... 31

3.5.2 Software........................................................................... 34

3.5.2.1 Configuración Registros....................................... 34

3.5.3 Diagrama de Bloques del Programa Transmisor............. 40

3.6 DISEÑO DEL RECEPTOR....................................................... 43

3.6.1 Hardware.......................................................................... 43

3.6.2 Software........................................................................... 46

3.6.2.1 Configuración de Registros.................................. 46

3.6.2.2 Diagrama de Estados........................................... 48

3.6.3 Diagrama de Bloques del Programa Receptor................ 49

3.7 TECNOLOGÍA BLUETOOTH……………................................. 54

3.8 CONCLUSIONES..................................................................... 55

3.9 BIBLIOGRAFÍA......................................................................... 57

ANEXOS......................................................................................... 58

Page 6: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

1

CAPITULO I INTRODUCCIÓN

Page 7: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

2

1 INTRODUCCIÓN 1.1 OBJETIVO El objetivo de este trabajo es diseñar un sistema de adquisición de datos que sea

capaz de realizar mediciones en tiempo real, desde un conjunto de sensores, en la

perspectiva de implementar una Estación Meteorológica. La particularidad de este

sistema es la forma de transmitir los datos adquiridos hasta su punto de

almacenamiento, lo cual se hará mediante transmisión inalámbrica (RF) utilizando

modulación simple ASK/FSK.

En este sistema, el generador de datos se encuentra a cierta distancia del receptor, y

fuentes de almacenamiento, el conjunto de los diferentes bloques funcionales que

definen su estructura esta compuesto por los siguientes elementos: sensor, transmisor,

receptor y fuente de almacenamiento o visualización.

Para este estudio se ha utilizado un potenciómetro para simular la etapa del sensor,

la salida de esta para el sistema final, es simplemente una señal analógica que

varía en función de la magnitud medida, lo cual nos permitirá replicar cualquier toma

de dato de otro sensor cuya salida sea una señal de este tipo.

La segunda etapa, el bloque transmisor, es el que se encarga de convertir la señal

analógica procedente del sensor en una señal digital y enviarla al receptor.

La etapa del transmisor tiene como principal componente un microcontrolador

rfPIC12F675. El microcontrolador es la unidad central del sistema. Es el encargado de

procesar los datos procedentes del conversor A/D que se encuentra integrado a el y

realizar con estos las operaciones necesarias, (operaciones matemáticas, codificación,

etc.) para poder ser enviados a la etapa de transmisión que se encuentra incorporada al

microcontrolador, Para ello el microcontrolador ha de analizar los datos que le entrega

el conversor A/D, codificarlos según el tipo de codificación escogido y entregarle la

trama de bits generada al bloque transmisor. Si se realiza una buena codificación, en

Page 8: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

3

recepción será más difícil que lleguen errores causados por interferencias en el canal,

en este caso el aire.

La siguiente etapa es el receptor de Radio Frecuencia (RF). El receptor ha de

recibir la señal del transmisor, almacenarla y mostrar el valor enviado por el sensor

de la forma convenida previamente. En esta etapa también tenemos a un

microcontrolador, el cual es la unidad central de esta, aquí tenemos tres bloques

fundamentales: el receptor de radio frecuencia, el microcontrolador y el

almacenamiento con su posterior visualización.

En la etapa de recepción de (RF), se realiza la demodulación de los datos recibidos

del transmisor. Una vez realizada la demodulación, entrega al microcontrolador una

serie de bits que éste tendrá que analizar y tratar para poder visualizar

correctamente el dato enviado desde el transmisor.

El microcontrolador, que puede ser igual o distinto que el del transmisor, tiene que

conocer el formato de los datos que va a recibir para poder decodificarlos y poder

extraer la información correctamente. En el caso en que en el transmisor se

programe una codificación con redundancia, en el receptor se tendría que

programar un código capaz de detectar errores de canal y corregirlos. Una vez

extraída la información recibida se puede guardar en la memoria interna del

microcontrolador, si tiene, para su posterior utilización, o simplemente se puede

sacar por los puertos de salida del microcontrolador para su visualización.

Por último la visualización del resultado, depende de la manera en que se quieran

gestionar los datos recibidos. Una primera forma sería poniendo un display BCD de

7 segmentos o simplemente led para visualizar los datos binarios que salen del

microcontrolador. La segunda manera es utilizando un PC para la visualización y

almacenamiento de ellos, cuya interfase es mas amigable para conseguir que la

aplicación sea un poco mas interactiva para el usuario con lo cual el proyecto final

Page 9: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

4

gana valor añadido, pudiendo incluso hacer gráficas estadísticas de los valores

recibidos del transmisor.

Page 10: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

5

CAPITULO II MICROCONTROLADORES

Page 11: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

6

2 MICROCONTROLADORES

2.1 REFERENCIA HISTORICA En el año 1971 apareció en el mercado el primer microprocesador que supuso un

cambio decisivo en las técnicas de diseño de equipos de instrumentación y control.

La implementación de microcomputadoras desarrolladas alrededor de un

microprocesador, trajo como consecuencia la fabricación de un conjunto de circuitos

integrados para resolver las necesidades de memoria, entradas/salidas,

temporizadores, conversores, etc. Los fabricantes, pusieron a disposición de los

técnicos una variedad de circuitos integrados que facilitaban la construcción de

sistemas.

En el año 1976, gracias a la densidad de integración elevada, se produjo la primera

computadora mono-pastilla, que integraba junto al microprocesador los sub-sistemas

antes mencionados.

Sub-sistemas integrados (aunque no siempre todos presentes)

CPU

RAM

ROM, EPROM o EEPROM

BUFFER de E/S

CONTADORES Y TEMPORIZADORES

CONVERSORES A/D, D/A

INTERRUPCIONES

UART, USART

GENERADOR DE RELOJ DEL SISTEMA etc.

Actualmente estos microcontroladores son el estándar para aplicaciones de mediana

complejidad, por su facilidad de manejo y nivel de prestaciones.

Page 12: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

7

Sus características más sobresalientes son:

Capacidad de proceso de palabra de 8 bits

Frecuencia de reloj de 30 Mhz. (o más)

Múltiples puertos de entrada / salida programables

Bajo consumo en versiones CMOS

Alta inmunidad al ruido

Set instrucciones muy potentes

Instrucciones orientadas al proceso de señales bit a bit

Circuito de reloj incorporado

Osciladores a cristal o RC.

Perro guardián ( watchdog ) , que vigila el optimo funcionamiento de la CPU

Conversores integrados A/D

Salida de modulación de ancho de pulsos (PWM) para conversión D/A

Comparadores de tensión

Temporizadores - contadores de 16 bits

Mas de 6 niveles de interrupciones programables con niveles de prioridad

Protección de la memoria de programa (encriptación)

2.1.1 Aplicaciones

Se utilizan hoy en día para resolver problemas en diversos campos, por ejemplo

Informática (módem, impresoras, teclados)

Electrodomésticos (control de calefacción, microondas, lavadoras)

Automotriz (inyección de combustible, ABS, alarmas)

Audio y vídeo (videograbadoras, reproductor de CD, sintonías digitales)

Industria (automatismo, control de temperatura, variadores de velocidad)

Medicina (electrocardiógrafos)

Usos militares

Page 13: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

8

Domótica (edificios inteligentes)

Burótica [maquinas de escribir]

etc.

2.1.2 Herramientas de Desarrollo Los mismos fabricantes o terceras partes suelen ofrecer diferentes soportes para diseño

de sistemas con microcontroladores, estos son, ensambladores, lenguajes de medio

nivel (compiladores de C), simuladores, kit de evaluación, emuladores en tiempo real,

programadores, etc.

En la actualidad cualquiera de estas herramientas necesitan de una computadora

personal (PC) para su utilización, descartando casi por completo otras formas de

operación

2.2 MICROCONTROLADOR

Un microcontrolador es un dispositivo electrónico capaz de llevar a cabo procesos

lógicos. Estos procesos o acciones son programados en lenguaje ensamblador por el

usuario, y son introducidos en éste a través de un programador.

Inicialmente cuando no existian los microprocesadores las personas se ingeniaban en

diseñar sus circuitos electrónicos y los resultados estaban expresados en diseños que

implicaban muchos componentes electrónicos y cálculos matemáticos. Un circuito

lógico básico requería de muchos elementos como transistores, resistencias, etc.

Con la aparición de este circuito integrado todo es mucho mas fácil de entender y los

diseños electrónicos serian mucho mas pequeños y simplificados.

Los microcontroladores están conquistando el mundo, pero la invasión acaba de

comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estos

diminutos computadores, que gobernarán la mayor parte de los aparatos que se

fabrican hoy en día. Cada vez existen mas productos que incorporan un

Page 14: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

9

Microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su

tamaño, costo y mejorar su fiabilidad.

2.2.1 Diferencias entre Microprocesador y Microcontrolador

Un microcontrolador es un solo circuito integrado que contiene todos los elementos

electrónicos que se utilizaban para hacer funcionar un sistema basado con un

microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la

memoria RAM, memoria ROM, puertos de entrada, salidas y otros periféricos.

El microcontrolador es en definitiva un circuito integrado que incluye todos los

componentes de un computador. Debido a su reducido tamaño es posible montar el

controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe

el nombre de controlador empotrado (embedded controller). Como se muestra en la

Figura 2.1

Figura 2.1 Sistema Abierto Basado en un Microprocesador

Page 15: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

10

El microcontrolador es un sistema cerrado. Todas las partes del computador están

contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos.

Como se muestra en la Figura 2.2

Figura 2.2. Sistema Cerrado de un Microcontrolador

Page 16: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

11

2.2.2 Arquitectura Básica

Podemos encontrar computadoras electrónicas digitales, de muy diversas

configuraciones, adaptadas a diferentes propósitos, pero todas tienen en común: unidad

central de proceso (CPU) memoria de programa (ROM), memoria de datos (RAM) y

entradas – salidas, como se muestra en la Figura 2.3

Figura 2.3 Arquitectura Básica de una Computadora

El CPU o procesador esta compuesto esencialmente por una unidad lógica aritmética

(ALU), registros de trabajo, contador de programa, decodificador de instrucciones y

algunos otros registros especiales. Todo esto, esta integrado en un solo dispositivo, se

lo conoce como microprocesador (aunque dependa de algunos componentes externos

para su funcionamiento como por ejemplo, generador de reloj del sistema).

2.2.3 La Arquitectura Tradicional John Von Neumann

La arquitectura tradicional de computadoras y microprocesadores se basa en el

esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o

CPU, esta conectada a una memoria única que contiene las instrucciones del programa

y los datos, como se muestra en la Figura 2.4 El tamaño de la unidad de datos o

Page 17: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

12

instrucciones esta fijado por el ancho del bus de la memoria. Es decir que un

microprocesador de 8 bits, que tiene además un bus de 8 bits que lo conecta con la

memoria, deberá manejar datos e instrucciones de una o más unidades de 8 bits (bytes)

de longitud. Cuando deba acceder a una instrucción o dato de más de un byte de

longitud, deberá realizar más de un acceso a la memoria. Por otro lado este bus único

limita la velocidad de operación del microprocesador, ya que no se puede buscar en la

memoria una nueva instrucción, antes de que finalicen las transferencias de datos que

pudieran resultar de la instrucción anterior. Es decir que las dos principales limitaciones

de esta arquitectura tradicional son:

a) Que la longitud de las instrucciones esta limitada por la unidad de longitud de los

datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para

buscar instrucciones complejas

b) Que la velocidad de operación (o ancho de banda de operación) esta limitada por

el efecto de cuello de botella que significa un bus único para datos e instrucciones que

impide superponer ambos tiempos de acceso.

La arquitectura Von Neumann permite el diseño de programas con código

automodificable, práctica bastante usada en las antiguas computadoras que solo tenían

acumulador y pocos modos de direccionamiento, pero innecesaria, en las

computadoras modernas.

Figura 2.4 La Arquitectura Tradicional John Von Neumann

Page 18: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

13

2.2.4 La Arquitectura Harvard

La Arquitectura conocida como Harvard, consiste simplemente en un esquema en el

que la CPU esta conectada a dos memorias por intermedio de dos buses separados.

Una de las memorias contiene solamente las instrucciones del programa, y es llamada

Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria

de Datos, como se muestra en la Figura 2.5. Ambos buses son totalmente

independientes y pueden ser de distintos anchos. Para un procesador de juego de

Instrucciones Reducido, o RISC (Reduced Instrucción Set Computer), el juego de

instrucciones y el bus de la memoria de programa pueden diseñarse de manera tal que

todas las instrucciones tengan una sola posición de memoria de programa de longitud.

Además, como los buses son independientes, el CPU puede estar accediendo a los

datos para completar la ejecución de una instrucción, y al mismo tiempo estar leyendo

la próxima instrucción a ejecutar. Se puede observar claramente que las principales

ventajas de esta arquitectura son:

a) Que el tamaño de las instrucciones no esta relacionado con el de los datos, y por

lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de

memoria de programa, logrando así mayor velocidad y menor longitud de programa.

b) Que el tiempo de acceso a las instrucciones puede superponerse con el de los

datos, logrando una mayor velocidad de operación.

Una pequeña desventaja de los procesadores con arquitectura Harvard, es que deben

poseer instrucciones especiales para acceder a tablas de valores constantes que pueda

ser necesario incluir en los programas, ya que estas tablas se encontraran físicamente

en la memoria de programa (por ejemplo en la EPROM de un microprocesador).

Page 19: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

14

Figura 2.5 La Arquitectura Harvard

2.2.5 Unidades de Memoria La memoria principal esta formada por un conjunto de unidades llamadas palabras.

Dentro de cada una de estas palabras se guarda la información que constituye una

instrucción o parte de ella (puede darse el caso de que una sola instrucción necesite

varias palabras), o un dato o parte de un dato (también un dato puede ocupar varias

palabras).

A la cantidad de palabras que forman la Memoria Principal se le denomina capacidad

de memoria. De este modo, cuanto mayor sea el número de palabras mayor será el

numero de instrucciones y datos que podrá almacenar la computadora.

Una palabra esta formada a su vez de unidades más elementales llamadas bits, del

mismo modo que en el lenguaje natural una palabra esta formada por letras. Cada bit

solo puede guardar dos valores, el valor 0 o el valor 1; por eso se dice que son

elementos binarios.

2.2.6 Tipos La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las

variables y los cambios de información que se produzcan en el transcurso del

programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar

una copia del mismo en la RAM pues se ejecuta directamente desde la ROM.

Page 20: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

15

1º. ROM con Máscara

Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la

fabricación del chip. El elevado coste del diseño de la máscara sólo hace aconsejable el

empleo de los microcontroladores con este tipo de memoria cuando se precisan

cantidades superiores a varios miles de unidades.

2ª. OTP El microcontrolador contiene una memoria no volátil de sólo lectura “programable una

sola vez” por el usuario. OTP (One Time Programmable). Es el usuario quien puede

escribir el programa en el chip mediante un sencillo grabador controlado por un

programa desde un PC.

La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto,

o bien, en la construcción de prototipos y series muy pequeñas.

Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación

mediante fusibles para proteger el código contenido.

3ª EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable

Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se

realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si,

posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su

superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos.

Las cápsulas son de material cerámico y son más caros que los microcontroladores con

memoria OTP que están hechos con material plástico.

Page 21: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

16

4ª EEPROM Se trata de memorias de sólo lectura, programables y borrábles eléctricamente

EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la

programación como el borrado, se realizan eléctricamente desde el propio grabador y

bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado

y la de borrado. No disponen de ventana de cristal en la superficie.

Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito,

pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito.

Para ello se usan “grabadores en circuito” que confieren una gran flexibilidad y rapidez

a la hora de realizar modificaciones en el programa de trabajo.

El número de veces que puede grabarse y borrarse una memoria EEPROM es finito,

por lo que no es recomendable una reprogramación continua. Son muy idóneos para la

enseñanza y la Ingeniería de diseño.

Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de

memoria EEPROM en los circuitos programables para guardar y modificar

cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del

entorno.

5ª FLASH Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar.

Funciona como una ROM y una RAM pero consume menos y es más pequeña.

A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más

rápida y de mayor densidad que la EEPROM.

La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran

cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de

escritura/borrado.

Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores

Page 22: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

17

que las incorporan puedan ser reprogramados “en circuito”, es decir, sin tener que sacar

el circuito integrado de la tarjeta.

2.2.7 Capacidad Es la cantidad de información que puede almacenar. Dado que la información la

almacena en el sistema binario, la capacidad se mide en la unidad de medida de

información de dicho sistema, que es el bit. Pero en general, la información se

almacena en grupos de bit llamados posiciones o palabras accesibles

simultáneamente, por lo cual:

cantidad de palabras = cantidad de bits

N° de bits por palabra

Para aprovechar al máximo la capacidad de selección se hace que la cantidad de

palabras sea una potencia de 2 y la unidad de capacidad en lo que se refiere a

palabras o posiciones de memoria se considera igual a 1024 (por ser la potencia de

dos más próxima a 1000) y se la denomina K.

Page 23: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

18

CAPITULO III DISEÑO TRANSMISOR - RECEPTOR

Page 24: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

19

3.1 ESTRUCTURA

Este sistema estará formado por 3 etapas básicas: sensor, transmisor y receptor.

Pero hace falta entrar en más detalles para obtener la configuración final del sistema y

poder así elegir los componentes que lo compondrán.

3.1.1 Transmisor

El sistema transmisor que se visualiza en la Figura 3.1,consta de las siguientes etapas:

Sensor

Conversor A/D

Microcontrolador

Transmisor RF

Antena

Figura 3.1 Transmisor

Según el tipo de sensor escogido este dará a su salida una señal analógica o digital. En

el caso de salida analógica, para que el microcontrolador pueda procesar esa señal es

necesaria una conversión de analógico a digital, ya que los microcontroladores trabajan

en el “mundo” digital y no son capaces de procesar señales analógicas. Si por el

contrario el sensor entrega una salida digital, ya no es necesario realizar este paso

intermedio y se puede conectar directamente el sensor al microcontrolador, siempre y

cuando cumpla con las tensiones máximas que acepta el microcontrolador.

Page 25: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

20

Hay muchos tipos de conversores Analógico-Digital, la diferencia entre uno y otro está

básicamente en la velocidad de conversión y en la resolución que pueden ofrecer. La

elección final dependerá de las necesidades de cada aplicación. En este caso en

concreto hay que buscar un compromiso entre conversor y microcontrolador ya que en

función del número de puertos de entrada del procesador se tendrá que limitar la

resolución del A/D, o por el contrario habrá que buscar un procesador con más puertos

de entrada para satisfacer las necesidades de resolución del A/D.

El siguiente bloque a analizar es el microcontrolador. El microcontrolador es la unidad

central del sistema. Es el encargado de procesar los datos procedentes del conversor

A/D y realizar con estos las operaciones necesarias, (operaciones matemáticas,

codificación, etc.) para poder ser enviados al bloque transmisor.

El microcontrolador ha de analizar los datos que le entrega el conversor A/D,

codificarlos según estándares escogidos y entregarle la trama de bits generada al

bloque transmisor. Si se realiza una buena codificación, en recepción será más difícil

que lleguen errores causados por interferencias en el canal, en este caso el aire.

El último bloque es el transmisor de Radio Frecuencia (RF). Este bloque se encarga de

recibir los datos codificados por el microcontrolador y modularlos para poder ser

enviados hacia el receptor. Existen muchas técnicas de modulación. La elección de una

u otra va en función del uso al que esté destinado el radio enlace, las interferencias que

pueda haber en el canal, etc.

También es cierto que cuanto más complicada sea la técnica de modulación más

complicado será el modulador, por este motivo será necesaria una buena planificación

para conocer todos los detalles del radio enlace. En el caso de un sensor inalámbrico

orientado a la medición de variables metereológicas el flujo de datos no es muy

elevado, debido a la razón de cambio de estas. El rfPIC12F675, nos da la posibilidad de

transmitir utilizando modulación ASK/FSK a una velocidad de 40Kbps, se utilizó

Page 26: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

21

modulación FSK, ya que esta es menos sensible a errores producidas por interferencias

en la transmisión que la ASK.

3.1.2 Receptor

Los bloques que forman el sistema receptor se muestran en la Figura 3.2.

Antena

Receptor RF

Microcontrolador

Visualización

Figura 3.2 Receptor

El primer bloque del sistema receptor, es el receptor de Radio Frecuencia (RF), esta

encargado de realizar la demodulación de los datos recibidos del transmisor.

Una vez realizada la demodulación entrega al microcontrolador una trama de bits que

este tendrá que analizar y tratar para poder visualizar correctamente el dato enviado

desde el transmisor.

El microcontrolador, que puede ser igual o distinto que el del transmisor, tiene que

conocer el formato de los datos que va a recibir para poder decodificarlos y poder

extraer la información correctamente. En el caso en que en el transmisor se programe

una codificación con redundancia, en recepción se programa un código capaz de

detectar errores de canal y corregirlos mediante la redundancia. Una vez extraída la

Page 27: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

22

información recibida se puede guardar en la memoria interna del microcontrolador, si

tiene, para su posterior utilización, o simplemente se puede sacar por los puertos de

salida del microcontrolador para su visualización en el siguiente bloque.

En el último bloque, la visualización del resultado, depende de la manera en que se

quieran gestionar los datos recibidos. En el caso de los sensores inalámbricos se podría

hacer de dos maneras diferentes: La primera es simplemente a través de un display

BCD de 7 segmentos o led para visualizar los datos binarios que salen del

microcontrolador. La segunda manera es utilizando un ordenador para la visualización

con alguna interfase visual más interactiva para el usuario con lo cual el proyecto final

gana valor añadido, pudiendo incluso implementar gráficas estadísticas de los valores

recibidos del transmisor.

3.2 ESPECIFICACIONES MICROCONTROLADOR

Hay muchas marcas que fabrican microcontroladores y cada una tiene muchos modelos

disponibles. Cada uno es más útil para una aplicación que para otra, por eso hay que

hacer una buena selección.

La característica principal del sistema que se está diseñando es que ha de tener el

menor consumo posible. Es por este motivo que se ha de buscar la máxima integración

de componentes posible. Comparando entre los diferentes fabricantes, Microchip tiene

una gama de microcontroladores que dispone de la integración de componentes

necesaria para este proyecto.

El mencionado microcontrolador es el rfPIC12F675, este incorpora en un solo chip de

muy reducidas dimensiones el conversor A/D y el circuito transmisor de RF necesarios

para realizar el sistema transmisor. El rfPIC12F675 es una variante del PIC12F675, lo

único que los diferencia es que el primero incorpora el circuito de RF y el segundo no,

por lo demás son exactamente iguales.

Page 28: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

23

Las características básicas de este microcontrolador son las siguientes:

• Dispone de varios tipos de memoria según su utilización:

- 1024 x 14 palabras de memoria FLASH como memoria de programa.

- 128 x 8 bytes de memoria EEPROM para guardar datos.

- 64 x 8 bytes de memoria SRAM para los registros de propósito general.

• Oscilador interno de 4MHz. Cada instrucción dura 4 períodos de oscilación, con lo cual

una instrucción (1 ciclo) dura 1µs.

• Dispone de 6 entradas/salidas la dirección de las cuales es programable.

• 1 comparador analógico interno con 16 posibles niveles internos de referencia.

• 1 conversor analógico/digital interno de 10 bits de resolución y 4 canales de entrada

multiplexables.

• 1 timer de 8 bits y otro de 16 con preescaler de 8 y 3 bits respectivamente.

(el preescaler permite que el timer no se incremente a cada ciclo de procesador sino

cada n ciclos, siendo n el valor del preescaler)

• Función SLEEP para un mayor ahorro de energía.

• Transmisor UHF ASK/FSK en la banda libre. Margen de funcionamiento entre 380-

450MHz

• Potencia de salida de +10dBm a -70dBm con 4 pasos intermedios.

• Alcance estimado 100m.

Los consumos de este chip son los siguientes:

• 14mA en transmisión a 434MHz y +6dBm

• 4mA en transmisión a 434MHz y -15dBm

• 0.6µA en modo sleep y con el perro guardián activado (Watchdog).

• 0.1µA en standby.

• Tensión de alimentación entre 2.0 y 5.5v

Page 29: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

24

Los pins de este microcontrolador son los mostrados en la Figura 3.3:

Figura 3.3 Pins Microcontrolador

Para más detalles de los pines, ver ANEXO A Figura A.1

La programación del microcontrolador se realiza mediante lenguaje de bajo nivel, Es

posible también, realizar el programa en un código de programación de alto nivel, por

ejemplo C, aunque al final tendrá que traducirse a ensamblador mediante algún

compilador ya que el código final que se graba en el chip ha de ser obligatoriamente

ensamblador. El juego de instrucciones del microcontrolador esta disponible en el

ANEXO A Figura A.4

Para realizar el diseño de este software se ha escogido un Kit de desarrollo que

proporciona la misma empresa Microchip. El Kit se llama Pickit1, mostrada en la figura

3.4, y se suministra con una placa de desarrollo de proyectos que incluye una matriz de

leds para visualizar los resultados, un pulsador y un potenciómetro para hacer pruebas

de funcionamiento de puertos. Una característica muy importante de esta placa es que

se conexiona al ordenador mediante un puerto USB, con lo cual no es necesaria una

fuente de alimentación externa. También se suministra con el Kit un juego transmisor-

receptor sintonizados a 433,92 Mhz para poder hacer pruebas de programación del

conjunto. Al ser una memoria Flash la programación se puede realizar desde el mismo

Kit de desarrollo, por lo tanto no hace falta cambiar el chip de zócalo cada vez que se

quiere cambiar algo del programa. La placa de desarrollo tiene un zócalo en el que se

Page 30: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

25

pincha la placa del transmisor. Este zócalo, por lo tanto, sirve para programar el chip y

para realizar las pruebas del programa.

Figura 3.4 Kit Pickit1

Como se ha comentado, en el Pickit1 se proporciona una placa transmisora y otra

receptora. Esta placa receptora se basa en el receptor rfRXD0420, también de la

empresa Microchip. Se trata de un receptor UHF capaz de demodular señales ASK,

FSK y FM. No dispone de ningún microcontrolador, por lo tanto es necesario procesar la

señal recibida de alguna forma para poder decodificarla y manejarla de la forma

deseada. Esta operación se puede hacer con el mismo microcontrolador que se utiliza

para el transmisor, pero en este caso sin la parte de RF. Por lo tanto se puede usar el

microcontrolador PIC12F675 para recibir los datos procedentes del demodulador.

El diseño final se hará con el PIC mencionado, pero para las pruebas sobre el Kit se ha

hecho con el PIC16F676 porque en el mismo Kit los pins del receptor y PIC están

conectados de tal forma que con el PIC12F675 la recepción de datos no queda

conectada cosa que con el PIC16F676 ya no ocurre y los datos recibidos van

directamente a un puerto de entrada.

Page 31: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

26

Este nuevo PIC es exactamente igual que el anterior pero con la diferencia que tiene

más puertos de entrada/salida. En cuestión de registros de configuración, no cambia

nada, excepto por los nuevos puertos.

3.3 COMUNICACIÓN TRANSMISOR-RECEPTOR

3.3.1 Transmisor

El protocolo de comunicación utilizado en el sistema transmisor - receptor se basa en la

Figura 3.5. Primero que todo se envía una trama de sincronismo para prevenir al

receptor de que se va a iniciar una transmisión de datos. Esta transmisión puede ser

válida o no, pero la tiene que leer de todos modos. Más adelante ya usará otros

mecanismos para saber si es para él o no. La trama de sincronismo consta de una serie

de pulsos iguales y de duración determinada. Mediante esta trama se filtran posibles

impulsos aleatorios de ruido que se puedan recibir. De esta forma no se producen

interferencias en el principio de trama de datos.

Después de enviar la trama de sincronismo se hace una pausa para que el receptor

sepa que lo que se enviará a continuación serán los datos de información.

Por último, cuando el transmisor acaba de enviar los datos, existe un tiempo de espera

en el que no se transmite nada.

Figura 3.5 Protocolo de Comunicación

La duración de todos los pulsos, tanto de sincronismo como de datos, es la misma. La

elección de este tiempo se ha hecho según el siguiente criterio:

Page 32: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

27

Como se muestra en la Figura 3.6, cuando hay un cambio de nivel alto a nivel bajo, este

cambio no es inmediato sino que se hace progresivamente. Pasados 200µs es cuando

se puede considerar que ya ha cambiado a nivel bajo.

Figura 3.6 Transición de Nivel Alto al Bajo

Esta transición, hay que tenerla en cuenta a la hora de decidir como va a ser la señal

que se va a generar. Por eso, y por facilitar la programación, se ha decidido que cada

pulso generado en el programa transmisor tendrá una duración de 512µs, tanto en

estado alto como en estado bajo. Esta duración facilita la programación porque el timer

del microcontrolador con preescaler a 1:2 genera overflow exactamente a 512µs. Así

cuando se detecta overflow se continúa con la ejecución normal del programa.

La trama de sincronismo se ha hecho que dure 16 pulsos, es decir 16.38ms. La

duración de esta trama depende de lo mucho o poco que se quiera filtrar las

interferencias. Se ha escogido 16 por ser un término medio. Si se hace durar más,

estará más protegido pero a la vez se incrementa el tiempo de transmisión. Para una

transmisión de datos bit a bit no afectará demasiado, aunque si que lo haría en el caso

de enviar datos fraccionados en paquetes.

Page 33: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

28

La pausa se ha definido con un tiempo de 2.56ms. Este tiempo ha de ser superior al

tiempo de un cero de datos e inferior al tiempo de almacenamiento para que el receptor

pueda distinguir en todo momento en que estado se encuentra. De esta forma, si el

receptor recibe un silencio superior al tiempo de almacenamiento después de una trama

de sincronismo, este ignorará lo que se envíe a continuación y se reiniciará.

Después de una pausa válida el receptor está preparado para recibir los datos.

El formato de los datos es el siguiente:

Se ha escogido una codificación de datos PWM (Pulse Width Modulation) que consiste

en codificar los uno y ceros según la Figura. 3.7.

Figura 3.7 Codificación de Datos PWM

Según esto, un dato codificado (3 bits) siempre empezará por uno y siempre acabará en

cero. De esta forma se puede programar en recepción algún tipo de corrección de

errores si se sabe que 1536µs (512µs * 3) representan 1 bit decodificado.

Este tipo de codificación es muy útil para reducir el BER (Bit Error Rate), ya que al durar

más el dato codificado que el bit original, hay más probabilidad de recuperar el bit

original.

Por último, después de enviar los datos, se implementa un tiempo de espera de 15.3ms

para que el receptor pueda saber que la comunicación ha finalizado.

Page 34: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

29

Este tiempo de espera es más largo que la pausa antes transmitir datos para que el

receptor pueda distinguir entre ambos.

3.3.2 Receptor

El software del receptor es un poco más complejo que el del transmisor. Esto es así

porque, a priori, el receptor no tiene porque saber la duración de cada pulso (sí hay un

margen máximo), sino que ha de estar continuamente comprobando cuando empieza y

cuando termina éste. De esta manera ha de llevar un control exhaustivo del tiempo que

lleva el pulso en estado alto y realizar la función que sea necesaria en función de este

tiempo y el estado en el que esté el programa en ese momento.

En primer lugar, el programa ha de monitorizar el arribo de la trama de sincronismo.

Para ello, solo ha de mirar si el receptor está en estado alto o en estado bajo. Cuando le

llega un uno seguido de un cero, lo único que ha de mirar es la duración del cero. Si el

cero no dura más de un tiempo determinado reinicia el programa. Si el cero dura más

de lo predeterminado significa que se pasa a estado de pausa de antes de la

transmisión de los datos.

Cuando está en estado de pausa, el software ha de comprobar que realmente esté en

pausa. Por ello, si la pausa dura más de lo establecido el programa se reiniciará. Esto

significa que la trama de sincronismo recibida no era válida.

Una vez recibida una pausa válida se empiezan a recibir los datos. Los datos vienen

codificados según la codificación PWM. Para decodificarlos la técnica utilizada es muy

sencilla. Lo único que hay hacer es contar el tiempo que el dato está en estado alto y

restarle el tiempo que está en estado bajo. El carry de la operación es el que dirá si el

dato era un 1 o un 0. Según la codificación PWM un cero está 2/3 de tiempo en estado

alto y 1/3 en estado bajo. Al hacer la resta el resultado sale positivo, por lo tanto no hay

carry o este es 0. Por el contrario con un uno el resultado del carry será 1.

Page 35: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

30

Después de la recepción de datos el receptor pasa a monitorizar si llega un 0 y cuanto

tiempo dura este. Si el cero dura un mínimo establecido, entonces puede dar la

recepción como correcta. Si dura menos reinicia el programa e ignora los datos

recibidos.

Una vez validada la recepción, es hora de validar los datos recibidos. El transmisor

junto con los datos, envía un código de identificación. En recepción, el programa ha de

comprobar que este código sea válido. Si no es válido no se pueden aceptar los datos

recibidos y los ignora. Si es válido guarda los datos en la memoria EEPROM y los

muestra en los leds.

3.4 DISEÑO DE LAS UNIDADES TRANSMISOR Y RECEPTOR

3.4.1 Funcionamiento del PIC12F675

El rfPIC12F675 es una variante del PIC12F675. Solo se diferencian en el circuito de RF.

Es por este motivo que para comprender el funcionamiento de este PIC, con el modelo

sencillo ya hay bastante. Así, para realizar las pruebas iniciales se va a utilizar el

PIC12F675.

Page 36: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

31

3.5 DISEÑO DEL TRANSMISOR CON rfPIC12F675

3.5.1 Hardware

Todo proyecto de más o menos envergadura es necesario dividirlo en diferentes fases.

En este proyecto, por ejemplo, las diferentes fases serían:

Desarrollo del software y pruebas con emulador, desarrollo del hardware y pruebas con

software y, por último, desarrollo de interfase gráfico. Pues bien, este trabajo solo

supone la primera fase del proyecto, es decir, desarrollo del software y pruebas con

emulador. Es por ese motivo que no se ha hecho un gran estudio del hardware utilizado

y se deja para posteriores estudios.

Los componentes más relevantes y que hace falta destacar son los que hacen

referencia al transmisor. A continuación se hace una breve descripción.

El rfPIC12F675 dispone de un oscilador a cristal tipo Colpitts para generar la frecuencia

de referencia que se entrega al PLL del transmisor. Este oscilador es totalmente

independiente del que tiene el microcontrolador. A parte de este oscilador, es necesario

conectar un segundo cristal exterior

La potencia de salida del transmisor es otro de los puntos que hay que tener en cuenta

a la hora de estudiar el transmisor. Esta se puede ajustar desde 9dBm hasta -70dBm.

Para ello solo es necesario jugar con distintos valores de resistencia en el puerto PS del

microcontrolador, tal como se muestra en la Figura 3.9, según Tabla 3.1.

Page 37: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

32

Figura 3.9 Ajuste de Potencia del Transmisor

POWER

STEP

OUTPUT POWER (dBm)

PS TENSION

(VOLT)

R1

RESISTENCIA (Ohm)

CORRIENTE

TRANSMISOR RF (mA)

4 9 1.6 Open 10.7 3 2 0.8 100K 6.5 2 -4 0.4 47K 4.7 1 -12 0.2 22K 3.5 0 -70 0.1 short 2.7

Tabla 3.1 Tabla de Potencia de Salida Transmisor

El transmisor del kit Pickit1 viene configurado para dar la potencia máxima de salida

que se permite, es decir, 9dBm ya que tiene un circuito abierto en lugar de resistencia.

Esto se puede observar en la Figura 3.10

Page 38: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

33

Figura 3.10 Esquema Diseño Transmisor

Page 39: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

34

3.5.2 Software

3.5.2.1 Configuración Registros

A partir de este punto se va a empezar a hacer el diseño del software que controlará

todo el sistema transmisor. En la primera parte de este apartado se explican con detalle

cada uno de los registros que intervienen en la configuración del programa transmisor.

La configuración de los diferentes registros del microcontrolador se realiza solo al

empezar el programa, es decir, antes del programa principal en una subrutina llamada

INIT. Aquí se realiza tanto la configuración de los puertos como la de los módulos del

micro (A/D, comparador, etc.).

Lo primero que se realiza es la configuración de los diferentes puertos del PIC.

Hay diversos registros que afectan a dicha configuración, pero los básicos son:

GPIO y TRISIO.

Registro GPIO: Mediante este registro se puede cambiar el estado de un puerto o leer

su estado en caso de que sea un puerto de entrada.

• Bit 7-6: No utilizado

• Bit 5-0: Estado del puerto. Si vale 1 el puerto está en estado alto. Si vale 0, estado

bajo.

Page 40: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

35

Registro TRISIO:

• Bit 7-6: No utilizado.

• Bit 5-0: Si vale 1 el puerto se configura como puerto de entrada. Si vale 0 se configura

como salida.

Después de la configuración de los puertos, en el caso del programa transmisor, se

pasa a configurar una interrupción por cambio de estado en un puerto. Es decir, que si

se detecta un cambio en el estado de un puerto se genera una interrupción haciendo

saltar del programa principal a la rutina de interrupción.

En este programa se usa esta utilidad para que al pulsar el pulsador GP3 se haga un

reset del sistema. Para poder configurarlo los registros que se han de modificar son:

INTCON, IOC.

Registro INTCON:

• Bit 7: Activación de interrupciones globales

• Bit 6: Activación de interrupción de periféricos

• Bit 5: Activación de interrupción por overflow en Timer0

• Bit 4: Activación de interrupción externa en GP2/INT

Page 41: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

36

• Bit 3: Activación de interrupción por cambio de estado en puerto

• Bit 2: Flag de interrupción por overflow de Timer0

• Bit 1: Flag de interrupción externa en GP2/INT

• Bit 0: Flag de interrupción por cambio de estado en puerto

Los bits que se han de activar para que se genere una interrupción por cambio de

estado en un puerto son el 3 y el 7. Por regla general durante el proceso de

inicialización de registros se han de desconectar todo tipo de interrupciones, por eso el

bit 7 solo se activará cuando empiece el programa principal.

Registro IOC:

• Bit 7-6: No utilizado.

• Bit 5-0: Activación de interrupción por cambio de estado en puerto. Si el bit vale1 se

permite interrupción para ese puerto.

La siguiente parte del transmisor que se configura en la subrutina INIT es el timer

interno TIMER0. Los registros asociados al Timer0 son: TMR0, OPTION_REG, INTCON

y TRISIO explicados anteriormente.

Registro TMR0: Este es un registro de 8 bits y es donde se va actualizando el estado

del contador TMR0. A cada ciclo del procesador (4 oscilaciones de reloj) el contador

TMR0 se incrementa en una unidad, excepto en el caso de que tenga preescaler.

Page 42: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

37

Registro OPTION_REG:

De este registro los bits más importantes son:

• Bit 3: Asignación del preescaler. Si vale 1 se asigna al Watchdog. Si vale 0 se asigna

al TMR0

• Bit 2-0: Rate del preescaler

Por último se realiza la configuración del módulo A/D para realizar la conversión

analógico/digital de la señal procedente del sensor. Sus registros asociados son:

ADCON0 y ANSEL.

Registro ADCON0:

• Bit 7: Si vale 1 justifica el resultado a la derecha o a la izquierda en caso de que valga

0.

• Bit 6: Indica Vref. Si es 1 toma un Vref externa. Si vale 0 la Vref es VDD.

• Bit 5-4: No usados

• Bit 3-2: Selecciona una de las 4 entradas al A/D

• Bit 1: Si vale 1 inicia la conversión y mientras valga 1 indica que la conversión no ha

finalizado. Si vale 0 la conversión ha acabado.

Page 43: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

38

• Bit 0: Si se activa este bit, se activa el módulo A/D.

Registro ANSEL:

• Bit 7: No utilizado

• Bit 6-4: Selección del reloj del conversor A/D

000= Fosc/2

001= Fosc/8

010= Fosc/32

x11= Utiliza el clock del oscilador interno

100= Fosc/4

101= Fosc/16

110= Fosc/64

• Bit 3-0: Selección del canal analógico. Si el bit vale 1, se asigna ese canal como

entrada analógica. Si por el contrario vale 0, se configura el canal como I/O digital.

Page 44: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

39

El resultado de la conversión se guarda en dos registros: ADRESH y ADRESL. En

función del bit 7 (Justificación del resultado) el LSB quedará en una posición o en otra a

lo largo del registro ADRESL. Lo cual se muestra en la Figura. 3.11

Figura. 3.11 Registro ADRESH y ADRESL

Page 45: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

40

3.5.3 Diagrama de Bloques del Programa Transmisor

Page 46: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

41

Page 47: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

42

Page 48: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

43

3.6 DISEÑO DEL RECEPTOR

3.6.1 Hardware

El receptor que se ha utilizado para la recepción de los datos es el que proporciona el

kit Pickit1. Este receptor se basa en el chip rfRXD0420 de la empresa Microchip. Las

principales características de este receptor son las siguientes:

• Permite seleccionar la frecuencia intermedia entre los 455kHz y los 21.4MHz mediante

un sencillo filtro formado por un cristal de cuarzo y un pequeño condensador

• Es capaz de demodular señal en ASK, FSK y FM

• La demodulación en ASK y FSK la realiza mediante un detector de cuadratura

(detector de coincidencia de fase)

• Para ASK y FSK el detector se hace mediante un amplificador operacional configurado

como comparador. También es posible configurarlo como filtro para demodular FM.

Para seleccionar la frecuencia de recepción se pone un cristal de cuarzo externo, como

se muestra en la Figura 3.12 y según Tabla 3.2, en esta se muestran los diferentes

valores de cristal y las diferentes frecuencias de recepción resultantes. El valor del

condensador C ha de ser entre 15pF y 20pF

Figura 3.12 Selección de la Frecuencia de Recepción

Page 49: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

44

FRECUENCIA DE RECEPCION

FRECUENCIA DE CRISTAL X1

315 Mhz 20.35625 Mhz 433.92 Mhz 26.45125 Mhz

Tabla 3.2 Selección de la Frecuencia de Recepción

El proceso de demodulación que sigue este chip es el siguiente: Se utiliza como

detector ASK un amplificador limitador de Frecuencia intermedia. La señal que sale del

detector es filtrada y comparada con una señal de referencia para determinar si se ha

recibido un uno o un cero lógico. El diseño de este filtro dependerá de donde se quiera

poner el umbral de decisión. Sabiendo que la constante de tiempo t=RC y R=36KΩ, que

es la impedancia de salida del detector, y que C es el C1 del circuito receptor, se puede

fijar el umbral de decisión.

Hay que tener cuidado a la hora de fijar la constante de tiempo, ya que si se pone

demasiado larga puede provocar interferencia ínter simbólica con la consecuente

pérdida de bits.

En la Figura 3.13, se muestra el esquema que utiliza el receptor que se proporciona con

el kit de pruebas Pickit1. Este receptor ya viene configurado como un demodulador

FSK.

Page 50: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

45

Figura 3.13, Esquema Diseño Receptor

Page 51: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

46

3.6.2 Software

3.6.2.1 Configuración de Registros

Como se ha explicado con anterioridad, para el receptor, se ha utilizado el PIC16F676.

La única diferencia con el PIC12F675 está en el número de puertos. El PIC12F675 solo

tiene 6 puertos, en cambio el PIC16F676 dispone de 12 puertos configurables

igualmente como I/O. Estos 12 puertos están divididos en dos grandes puertos de 6 bits

cada uno, PORTA y PORTC.

Así pues, en este nuevo PIC el único registro de configuración que cambia con respecto

al otro será el que hace referencia a los puertos. La configuración de los puertos está

dividida en dos registros, uno para cada puerto, A y C.

Registro PORTA: Sirve para cambiar o visualizar el estado de un puerto dentro del

puertoA.

• Bit 7-6: No utilizado

• Bit 5-0: Estado del puerto. 1 Activo, 0 Inactivo

Page 52: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

47

Registro TRISA: Sirve para configurar la dirección de los puertos A

• Bit 7-6: No utilizado

• Bit 5-0: Si es 1 el puerto es configurado como entrada y si es 0 se configura como

salida

Registro PORTC: Sirve para cambiar o visualizar el estado de un puerto dentro del

puertoB.

• Bit 7-6: No utilizado

• Bit 5-0: Estado del puerto. 1 Activo, 0 Inactivo

Registro TRISC: Sirve para configurar la dirección de los puertos C

• Bit 7-6: No utilizado

• Bit 5-0: Si es 1 el puerto es configurado como entrada y si es 0 se configura como

salida

Page 53: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

48

3.6.2.2 Diagrama de Estados

El programa principal del receptor consta de 10 posibles estados. Cada uno

corresponde a un estado de la comunicación entre transmisor y receptor. Los posibles

estados son:

• INICI: Sirve para detectar entrada de datos

• INICI1: Detecta entrada de trama de sincronismo inicial

• SILEN: Detecta pausa antes de recepción de datos

• SILEN1: Mira que la pausa no sea demasiado larga y detecta la entrada de la trama

de datos

• UNO1: Detecta el estado alto de un bit

• CERO0: Detecta el estado bajo de un bit

• SALVAR: Controla los bits recibidos y los guarda en su registro correspondiente

• ESPERA: Comprueba que se finaliza la transmisión y monitoriza el silencio de antes

de la siguiente transmisión.

• OK: Comprueba la identidad del transmisor y si es válida guarda los datos en

memoria.

• IL_LEDS: Muestra los datos recibidos en los leds del Pickit1. La función de mostrar los

datos en los leds se ha extraído directamente de una programa de muestra para poder

visualizar el resultado de la transmisión ya que no es objeto de este trabajo la

realización de dicho programa.

Page 54: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

49

3.6.3 Diagrama de Bloques del Programa Receptor

Page 55: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

50

Page 56: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

51

Page 57: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

52

Page 58: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

53

Page 59: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

54

3.7 TECNOLOGÍA BLUETOOTH.

El Bluetooth es una tecnología orientada a la conectividad inalámbrica entre dispositivos

tan dispares como PCs, PDAs, teléfonos móviles, electrodomésticos, etc.

El Bluetooth, a parte de ser una nueva tecnología, es también una especificación

abierta para comunicaciones inalámbricas de voz y datos. Está basado en un enlace de

radio de bajo costo y corto alcance. Esto convierte a esta tecnología en una buena

alternativa para implementar nuestra tarjeta de adquisición de datos con transmisión

inalámbrica, pero solo en la parte de la transmisión, ya que para la conversión de la

señal análoga proveniente de los sensores, se necesita obligatoriamente un conversor

A/D y además requerimos de otro dispositivo inteligente para tratar esta información

antes de ser transmitida. Por estas razones, se opto por utilizar el rfPIC12F675, el cual

integra en un solo dispositivo la conversión de la señal, el tratamiento de esta y

finalmente su transmisión. En la Tabla 3.3 se muestran algunas especificaciones de la

tecnología Bluetooth y del rfPIC12F675

RfPIC12F675 Tecnología Bluetooth

Velocidad de Transmisión 40 Kbps 721kbps

Frecuencia de Transmisión 290 a 350 Mhz

380 a 450 Mhz

850 a 930 Mhz

2.4 a 2.5 Ghz

Alcance 100 m 100 m

Tabla 3.3 especificaciones de la tecnología Bluetooth V/S rfPIC12F675

Page 60: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

55

3.8 CONCLUSIONES

Las principales ventajas para la elección del microprocesador rfPIC12F675 son, menor

cantidad de componentes, menor tiempo de desarrollo, mayor flexibilidad para futuras

modificaciones, etc. Todos estos puntos se reflejan en menor costo.

En este trabajo se ha comprobado una de las posibles aplicaciones de los

microcontroladores, en concreto una aplicación inalámbrica. Al utilizar un

microcontrolador que lleva incorporado el circuito de RF se ahorra mucho espacio. A

parte de este ahorro de espacio, también se ahorra energía. Gracias al poco consumo y

a funciones especiales de que dispone, este microcontrolador es idóneo para

aplicaciones inalámbricas en que el consumo sea vital.

Como se ha comentado ya, habría que investigar más sobre las funciones de ahorro de

energía del microcontrolador, ya que aumentaría considerablemente la autonomía del

transmisor.

Su principal desventaja esta dada por la pequeña distancia de transmisión, aunque esto

se puede mejorar, no sería significativo.

Después de estudiar las características del sistema parece claro cual ha de ser la

continuación de este proyecto. El principal tema que hay que investigar es la

comunicación microcontrolador-PC. Hay que conseguir acceder a la memoria del

microcontrolador desde el ordenador para leer los datos recibidos de los sensores.

Una vez logrado esto, habría que visualizar por pantalla dichos datos. Esto se podría

hacer con algún entorno de programación de alto nivel. Los datos recibidos se podrían ir

guardando en un disco y finalmente hacer un análisis estadístico de lo sensado.

Una vez conseguidos estos objetivos se podría invertir un poco más de tiempo en

mejorar algunos aspectos del sistema transmisor-receptor. Por ejemplo:

- Detección de batería baja en transmisor. El rfPIC12F675 incorpora un detector de

caída en el nivel de alimentación. Una vez detecta que ha habido una bajada de

Page 61: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

56

tensión, activa una bandera para indicarlo. Si junto con los datos sensados se envía

esta bandera, se podría monitorizar el estado de la pila del transmisor.

- Posibilidad de crear una estación meteorológica completa añadiendo diferentes

sensores (humedad, presión, velocidad del viento, etc.)

- Desarrollar funciones de ahorro de energía.

- Posibilidad de alimentar el transmisor con una placa solar.

Como conclusión final, se puede decir que este sistema una vez finalizado, tiene

muchas posibilidades en diferentes campos: automatización, estaciones

meteorológicas, etc. ya que permite tener los sensores separados del equipo principal.

Page 62: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

57

3.9 BIBLIOGRAFÍA

www. Microchip.com

Tutoriales: Microchip, CDROOM PICkit 1 Flash Starter Kit v2.1

Microchip, rfPIC12F675K/675F/675H Data Sheet.

Microchip, PIC16F630/676 Data Sheet.

Microchip, rfRXD0420/0920 Data Sheet.

Control de un módulo bluetooth mediante microcontrolador del Sr.Jaime Gálvez

Navarro. (http://bibliotecnica.upc.es/PFC/arxius/migrats/36416-2.pdf)

Page 63: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

58

ANEXOS

Page 64: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

ANEXOS

Page 65: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

ANEXO A

A.1. PINS DEL RFPIC12F675

Page 66: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

A.1 PINS DEL RFPIC12F675

Page 67: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

A.2. ESQUEMA TRANSMISOR

Figura A.2 Esquema Diseño Transmisor

Page 68: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

A.3. MEMORIA DEL RFPIC12F675 Este PIC dispone de 3 tipos de memoria:

- Flash para guardar el programa realizado en ensamblador.

- EEPROM para guardar toda la información referente a la configuración de los

diferentes registros

- RAM para guardar registros de propósito general mapeado a continuación de la

memoria EEPROM.

La memoria de programa esta mapeada tal y como muestra la Figura 1.3 aunque solo

es accesible el espacio comprendido entre las direcciones de memoria 0000h y 03FFh.

El resto esta reservado para la pila y los vectores de reset y de interrupción.

La memoria EEPROM o memoria de datos está particionada en dos bancos de

memoria distintos. En cada uno hay una parte del total de los registros de propósito

general. En la Figura. A.3 se observan los diferentes registros con que cuenta el

rfPIC12F675 para su configuración de puertos, interrupciones, comparador, conversor

A/D, etc.

Figura. A.3 Mapa de Memoria de Programa

Page 69: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

Figura A.3 Mapa de Memoria de Datos

Page 70: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

A.4. JUEGO DE INSTRUCCIONES DEL RFPIC12F675

Cada microcontrolador dispone de sus propias instrucciones en ensamblador para

poder ser programado. El rfPIC12F675 solo dispone de 35 instrucciones, con lo cual es

muy sencillo aprender su funcionamiento. Son las mostradas en la Figura. A.4

Figura. A.4 Instrucciones del rfPIC12F675

Page 71: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

A.5. ESQUEMA RECEPTOR

Figura. A.5 Esquema Diseño Receptor

Page 72: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA
Page 73: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

ANEXO B

B.1 BLUETOOTH

En este apartado, queremos dar una visión general de lo que es el Bluetooth, haciendo

una pequeña introducción de cual es su funcionamiento.

B.2 ¿QUÉ ES EL BLUETOOTH?

El Bluetooth es una tecnología orientada a la conectividad inalámbrica entre dispositivos

tan dispares como PCs, PDAs, teléfonos móviles, electrodomésticos, etc.

El Bluetooth, a parte de ser una nueva tecnología, es también una especificación

abierta para comunicaciones inalámbricas de voz y datos. Está basado en un enlace de

radio de bajo costo y corto alcance, el cual proporciona conexiones instantáneas tanto

para entornos de comunicaciones móviles como estáticos.

Esta tecnología ha revolucionado el mercado de la conectividad ya que es capaz de

comunicar cualquier dispositivo que cumpla con las especificaciones inalámbricas del

Bluetooth.

La principal ventaja que ofrece esta tecnología es la conectividad sin cables de todos

los dispositivos, pero más que reemplazar los incómodos cables, esta tecnología ofrece

un puente entre las redes de datos hoy existentes y el exterior.

El Bluetooth, al ser un estándar abierto, pretende conectar una amplia gama de

dispositivo sin importar su marca. Sus principales características son:

Robustez.

Bajo coste.

Necesidad de poca potencia.

Baja complejidad.

Es un estándar global.

Page 74: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

La tecnología Bluetooth comprende hardware, software y requerimientos de

interoperatibilidad, por lo que para su desarrollo ha sido necesaria la participación de los

principales fabricantes de los sectores de las telecomunicaciones y la informática.

En la Figura B.1 se muestra una imagen global de lo que pretende esta especificación.

Figura B.1 Comunicación bluetooth

B.3 HISTORIA DEL BLUETOOTH.

El nombre Bluetooth es en honor a un rey Danés del siglo X llamado Harald Blaatand,

fue rey de Dinamarca entre los años 940-981 D.C. De este rey se dice que tenía

grandes habilidades comunicativas que lo hicieron famoso y con las cuales inició el

proceso de cristianización de la sociedad vikinga.

La historia del bluetooth es relativamente corta. Las primeras investigaciones fueron

realizadas por Ericsson Mobile Communications en 1994. Esta compañía promovió una

iniciativa para estudiar la viabilidad de una interfaz por radio entre los teléfonos móviles

y sus accesorios, con la característica y condición de que tuviese un bajo costo y

consumo. Hasta entonces, las tecnologías de comunicaciones basadas en el cable

Page 75: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

funcionaban con eficiencia, sin embargo, su instalación y configuración resultaba

bastante dificultosa.

Conforme avanzaba el proyecto de Ericsson fue despertando el interés de otros

fabricantes y enseguida se vio el gran abanico de posibilidades que ofrecía esta

tecnología, así que a principios de 1998 se creo la SIG (grupo de interés especial) el

cual estaba formado por Ericsson, Nokia, IBM, Toshiba e Intel.

Actualmente se han ido añadiendo otras empresas al grupo como 3Com Corporation,

Lucent Technologies, Microsoft Corporation, Motorota Inc y otras más, llegando hoy en

día a estar formado por más de 2000 empresas del sector de la informática y las

telecomunicaciones.

El propósito principal del SIG es establecer un standard para la interfas aérea junto con

su software de control, su fin es asegurar la interoperatibilidad de los diversos equipos

de diferentes fabricantes.

B.4 ¿CÓMO FUNCIONA EL BLUETOOTH?

El bluetooth funciona en la banda ISM (médico-científica internacional), con rangos que

van entre los 2,4 y los 2,5 Ghz excepto en algunos países como Francia, España y

Japón en los cuales hay ciertas restricciones. La banda ISM, es una banda abierta en

todo el mundo que no necesita licencia.

La potencia de transmisión es de hasta 100mW. La distancia nominal en el enlace va

desde 10cm hasta los 10m, pudiéndose alcanzar los 100m si se aumenta

suficientemente la potencia.

Cuando un equipo bluetooth está dentro del radio de cobertura de otro, estos pueden

crear un enlace entre ellos. Hasta ocho unidades bluetooth pueden comunicarse entre

ellas y forman lo que se denomina una Piconet. La unión de varias piconets se

denomina Scatternet.

En todas las piconets sólo puede haber una unidad maestra que normalmente es quien

inicia la conexión, el resto de unidades bluetooth se denominan esclavas.

Page 76: ADQUISICIÓN DE DATOS CON TRANSMISIÓN INALAMBRICA

Cada unidad de la piconet utiliza su identidad maestra y reloj nativo para seguir en el

canal de salto. Cuando se establece la conexión, se añade un ajuste de reloj a la propia

frecuencia de reloj nativa de la unidad esclava para poder sincronizarse con el reloj

nativo del maestro. El reloj nativo mantiene siempre constante su frecuencia, sin

embargo, los ajustes producidos por las unidades esclavas para sincronizarse con el

maestro, sólo son válidos mientras dura la conexión.

Dentro de la misma área pueden coexistir diversas piconets ya que cada piconet tiene

una unidad maestra distinta con su propia secuencia de saltos de canales y de fase. A

medida que tenemos más piconets en la misma área de cobertura, la probabilidad de

colisión aumenta produciendo una degradación del espectro y reduciendo el

rendimiento del sistema.

Una unidad bluetooth puede participar secuencialmente en varias piconets gracias al

sistema TDM (división de tiempo multiplexada). Esto es posible siempre y cuando la

unidad solo esté activa en una piconet a la vez. Para realizar este proceso, la unidad

cuando se incorpora a la nueva piconet debe ajustar el offset de su reloj nativo y realizar

los ajustes de configuración correspondientes a la nueva piconet. Cuando una unidad

abandona una piconet, la esclava informa el maestro actual que ésta no estará

disponible por un determinado periodo, que será en el que estará activa en otra piconet.

Durante su ausencia, el tráfico en la piconet entre el maestro y otros esclavos continúan

igualmente.

Una unidad maestra también puede cambiar de piconet, pero en este caso el tráfico de

la piconet en la cual está activa deja de tener tráfico hasta la vuelta de la unidad

maestra. La maestra que entra en una nueva piconet, en principio, lo hace como

esclava, a no ser que posteriormente ésta solicite actuar como maestra.