adquisición de datos con transmisión inalambrica

Anuncio
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
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
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.
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
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
1
CAPITULO I
INTRODUCCIÓN
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
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
4
gana valor añadido, pudiendo incluso hacer gráficas estadísticas de los valores
recibidos del transmisor.
5
CAPITULO II
MICROCONTROLADORES
6
2
2.1
MICROCONTROLADORES
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.
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
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
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
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
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
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,
computadoras modernas.
Figura 2.4 La Arquitectura Tradicional John Von Neumann
en
las
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).
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.
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.
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
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
almacena
de dicho sistema, que es el bit. Pero en general, la información se
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.
18
CAPITULO III
DISEÑO TRANSMISOR - RECEPTOR
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.
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ó
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
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.
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 380450MHz
• 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
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 transmisorreceptor 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
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.
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:
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.
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.
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.
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.
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.
32
Figura 3.9 Ajuste de Potencia del Transmisor
POWER
STEP
OUTPUT
POWER
(dBm)
4
3
2
1
0
9
2
-4
-12
-70
PS TENSION
R1
(VOLT)
RESISTENCIA
(Ohm)
1.6
0.8
0.4
0.2
0.1
Open
100K
47K
22K
short
CORRIENTE
TRANSMISOR RF
(mA)
10.7
6.5
4.7
3.5
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
33
Figura 3.10 Esquema Diseño Transmisor
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.
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
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.
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.
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.
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
40
3.5.3 Diagrama de Bloques del Programa Transmisor
41
42
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
44
FRECUENCIA DE RECEPCION FRECUENCIA DE CRISTAL X1
315 Mhz
433.92 Mhz
20.35625 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.
45
Figura 3.13, Esquema Diseño Receptor
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
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
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.
49
3.6.3 Diagrama de Bloques del Programa Receptor
50
51
52
53
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
2.4 a 2.5 Ghz
380 a 450 Mhz
850 a 930 Mhz
Alcance
100 m
100 m
Tabla 3.3 especificaciones de la tecnología Bluetooth V/S rfPIC12F675
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
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.
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)
58
ANEXOS
ANEXOS
ANEXO A
A.1. PINS DEL RFPIC12F675
A.1 PINS DEL RFPIC12F675
A.2. ESQUEMA TRANSMISOR
Figura A.2 Esquema Diseño Transmisor
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
Figura A.3 Mapa de Memoria de Datos
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
A.5. ESQUEMA RECEPTOR
Figura. A.5 Esquema Diseño Receptor
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.
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
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.
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.
Descargar