Proyecto Termómetro Finalizado - Proyecto

Anuncio
PROYECTO TERMÓMETRO
Integrantes:
Verdié Ariel
Quinteroz Henry
Curso:
3ero Electrónica
Profesores: Susana Collovati
Matias Lasarte
Diego Correa (MEP)
Año: 2011
Índice
Introducción al proyecto………………………………….3
Sensor de temperatura……………………………………4
Comunicación con el sensor………………………….5,6,7
Simulaciones realizadas………………………………….8
Comunicación inalámbrica……………………………….9
Código Manchester utilizado…………………….……9,10
Transmisor QFMT1-434…………………………….11,12
Receptor QFMR1-434……………………………….12,13
Introducción al Proyecto
Lo que se debe hacer para este proyecto es registrar la temperatura de un ambiente
(supóngase) a 50metros de una vivienda y los datos recibidos deben quedar registrados
en la PC de la misma.
A continuación una explicación de cuales son las etapas y como se va a realizar el
proyecto:
 Medir la temperatura.
 Recibir lo medido en un pic y convertirlo a grados Celcius
 Transmitir la temperatura.
 Recibir la temperatura.
 Descargar lo recibido a un pic.
 Mostrar la temperatura en una PC.
Etapas:
Dicho esto, el proyecto lo dividiremos en 2 etapas;
Primera Etapa:
Sensar la temperatura, recibir los datos por el pic, convertirlos a grados Celcius y
lograr transmitirlos.
El sensado de la temperatura se va a realizar con el sensor Maxim Dallas DS18S20PAR (1-Wire Parasite-Power Termómetro Digital) y el pic será el 16F628A.
Segunda Etapa:
Lograr recibir los datos que se están enviando, transmitir esa información a un pic y
mostrar lo recibido en una PC.
Diagrama de Bloques del proyecto:
Sensor de temperatura
El sensor que se utiliza en relación precio/calidad a los demás es el Maxim Dallas
DS18B20-PAR (1-Wire Parasite-Power Termómetro Digital) el cual presenta la
siguiente distribución de pines:
DQ: pin para recepción-transmisión de datos.
Vdd: +5V.
GND: masa.
El DS18B20 se comunica mediante el bus 1 wire que por definición requiere una
única línea de datos (Vdd y tierra) para la comunicación con el micro. Tiene un rango
de operación de -55 a 125 C y una precisión de +\- 0.5C sobre el rango de -10 a 85C.
La característica de este sensor es que puede ser alimentado por una fuente externa o
directamente por la energía entregada del micro. En este caso se lo va a alimentar
externamente con una batería, ya que esto simplifica las funciones de
transmisión/recepción de datos con el micro y a su vez hace que las mismas sean más
veloces.
El DS18B20 usa el protocolo de bus DALLAS, que implementa la comunicación
de bus a través de una única señal de control. La línea de control necesita una
resistencia de PullUp, ya que todos los dispositivos conectados al bus están vinculados a
través de un puerto Open Drain o “abrir drenaje”.
El DS18B20 tiene una resolución de 9 bits, que corresponden a pasos de 0,5 C.
El mismo envía primero 8 bits (de LSB a MSB) los cuales indican la temperatura y
luego otros 8 bits que son “ceros” en caso de que la temperatura sea positiva y “unos”
en caso de que la temperatura sea negativa.
Medición de temperatura:
Cuando el sensor es iniciado arranca en un estado de reposo (bajo consumo) y su
único bus de transmisión actúa siempre como Esclavo. El Maestro (el PIC) debe enviar
los datos necesarios para que el sensor sepa que se lo está incializando, los datos
requeridos para que convierta la temperatura que está sensando y los datos requeridos
para que transmita la temperatura que convirtió.
Los datos de salida del DS18B20 están en grados centígrados. La temperatura
obtenida es almacenada como un número en complemento A2. En la siguiente tabla se
pueden ver ejemplos de datos de salida y la correspondiente lectura de temperatura.
Bit 15 a bit 11 = Signo de la temperatura
Bit 10 a bit 3 = temperatura
Secuencia de petición de datos:
Para iniciar una secuencia de petición al sensor se deben realizar los siguientes 3 pasos:
Paso 1. Inicialización:
Todos los intercambios deben comenzar con una secuencia de inicialización. La
secuencia de inicialización consiste de un pulso de reset transmitido por el maestro y
seguido de un pulso de presencia transmitido por el esclavo. El pulso de presencia le
permite al maestro saber que el dispositivo está presente y listo para operar. Los tiempos
de pulsos son los siguientes:
Durante la secuencia de inicialización el maestro transmite (TX) el pulso de reset
forzando al bus a cero durante un mínimo de 480us. Luego el maestro libera el bus y
entra en modo recepción (RX). Cuando el bus el liberado, la resistencia de pullup de 5k
fuerza el bus a uno. Cuando el DS18B20 detecta este flanco ascendente, espera entre 15
y 60us y entonces transmite el pulso de presencia forzando el bus a cero durante aprox.
60 a 240us.
Paso 2. Comando ROM (seguido por el dato requerido):
Luego que el maestro a detectado el pulso de presencia, este puede realizar un
pedido de comando ROM. Estos comandos le permiten al maestro determinar cuantos
dispositivos y de que tipo están presentes en el bus. Como solo conectaremos 1 sensor
no es necesario comunicar al sensor por medio de la rom, por lo que el único comando
que se va a utilizar es el siguiente:
SKIP ROM [CCh]:
El maestro puede usar este comando para direccionar todos los dispositivos
simultáneamente sin enviar ninguna información de código ROM. Por ejemplo, el
maestro pedir que todos los DS18B20 en el bus realicen una conversión de temperatura
enviando un comando SKIP ROM seguido por un comando T [44h].
Paso 3. Comando de función del DS18B20 (seguido por el dato requerido):
Después que el maestro del bus a enviado un comando ROM para direccionar al
DS18S20 con el cual desea comunicarse, el maestro puede enviar un comando de
función al DS18S20. Estos comandos le permiten al maestro escribir o leer de la
memoria interna del DS18B20, iniciar una conversión de temperatura y determinar el
modo de alimentación. Los que se van a utilizar se nombran a continuación:
CONVERT T [44h]:
Este comando inicia la conversión de temperatura. Seguido de la conversión, el
dato de temperatura será almacenado en los registros de temperatura de la memoria
scratchpad y el DS18B20 volverá a su estado de reposo. Si el dispositivo esta
alimentado con una fuente externa, el maestro puede hacer un pedido de lectura después
del comando de conversión de temperatura y el DS18B20 responderá transmitiendo un
cero mientras la conversión se encuentre en curso y un 1 cuando la conversión haya
finalizado.
READ SCRATCHPAD [BEh]:
Este comando le permite al maestro leer el contenido de la memoria scratchpad
(memoria en la cual se almacenan los datos obtenidos de temperatura y signo). La
lectura comienza con el bit menos significativo del LS byte y continua a través de la
memoria scratchpad hasta el noveno bit (MS byte). El maestro debería hacer un pedido
de reset para terminar la lectura en cualquier momento.
Intervalos de tiempos de lectura:
Todos los intervalos de tiempo de lectura deben tener un mínimo de 60us de
duración con un mínimo de 1us de recuperación entre intervalos. Un intervalo de lectura
es inicializado por el maestro del bus forzando el bus a baja impedancia por un mínimo
de 1us para luego liberarlo. Después que el maestro inicializa el intervalo de lectura, el
DS18B20 comenzara a transmitir un 1 o un 0 a través del bus. El DS transmite un uno
dejando el bus en alta impedancia y transmite un cero forzando el bus a baja
impedancia. Cuando transmite un cero el DS liberará el bus sobre el final del intervalo
de tiempo, y el bus será forzado nuevamente a su estado de alta impedancia por la
resistencia de PullUp. Los datos de salida del DS18B20 son validos 15us después del
flaco descendente que inicia el intervalo de tiempo de lectura. Entonces, el maestro
debería liberar el bus y muestrear el estado del bus dentro de los 15us después del
comienzo del intervalo.
Diagrama de flujo
A continuación el diagrama de flujo del programa que recibe y almacena la temperatura:
Simulaciones en Proteus
Pulso de reset y presencia:
Skiprom 0XCC (Direccionamiento)
Petición de Conversión 0X44
ReadScratchpad 0XBE (Leo la temp.)
Simulación de petición de +25 grados Celcius:
0
Temp: 00110010
Signo: 00000
0
0 0
1
0
0
1
1
0
0
0
0
0
0
0
Comunicación con Transmisor Inalámbrico
Para realizar esta comunicación se va a implementar un radiotransmisor de FM
(con su respectivo receptor). Cabe destacar que al realizarse transmisiones inalámbricas
es muy probable la aparición de ruidos en una señal con pulsos anchos, por lo que para
recibir una correcta obtención de datos, los mismos a transmitir deben estar convertidos
a código Manchester.
Código Manchester
También denominada codificación bifase-L, es un método de codificación
eléctrica de una señal binaria en el que en cada tiempo de bit hay una transición entre
dos niveles de señal. Es una codificación autosincronizada, ya que en cada bit se puede
obtener la señal de reloj, lo que hace posible una sincronización precisa del flujo de
datos.
Aplicación del código:
*Las señales de datos y de reloj, se combinan en una sola que auto-sincroniza el flujo de
datos.
*Cada bit codificado contiene una transición en la mitad del intervalo de duración de los
bits.
*Una transición de positivo a negativo representa un 1 y una transición de negativo a
positivo representa un 0.
Los códigos Manchester tienen una transición en la mitad del periodo de cada bit.
Cuando se tienen bits iguales y consecutivos se produce una transición al inicio del
segundo bit, la cual no es tenida en cuenta por el receptor al momento de decodificar,
solo las transiciones separadas uniformemente en el tiempo son las que son
consideradas por el receptor. Hay algunas transiciones que no ocurren a mitad de bit.
Estas transiciones no llevan información útil, y solo se usan para colocar la señal en el
siguiente estado donde se llevará a cabo la siguiente transición. Aunque esto permite a
la señal auto-sincronizarse, en realidad lo que hace es doblar el requerimiento de ancho
de banda, en comparación con otros códigos como por ejemplo los Códigos NRZ.
Ventajas y desventajas del uso de la codificación Manchester
Como ventajas principales se pueden destacar las siguientes:

La codificación Manchester o codificación bifase-L es autosincronizada: provee
una forma simple de codificar secuencias de bits, incluso cuando hay largas secuencias
de periodos sin transiciones de nivel que puedan significar la pérdida de sincronización,
o incluso errores en las secuencias de bits. Por ello es altamente fiable.

Detección de retardos: directamente relacionado con la característica anterior, a
primera vista podría parecer que un periodo de error de medio bit conduciría a una
salida invertida en el extremo receptor, pero una consideración más cuidadosa revela
que para datos típicos esto llevaría a violaciones de código. El hardware usado puede
detectar esas violaciones de código, y usar esta información para sincronizar
adecuadamente en la interpretación correcta de los datos.

Esta codificación también nos asegura que la componente continua de las
señales es cero si se emplean valores positivos y negativos para representar los niveles
de la señal, haciendo más fácil la regeneración de la señal, y evitando las pérdidas de
energía de las señales.
Las principales desventajas asociadas son las siguientes:

Ancho de banda del doble de la señal de datos: una consecuencia de las
transiciones para cada bit es que el requerimiento del ancho de banda para la
codificación Manchester es el doble comparado en las comunicaciones asíncronas, y el
espectro de la señal es considerablemente más ancho. La mayoría de los sistemas
modernos de comunicación están hechos con protocolos con líneas de codificación que
persiguen las mismas metas, pero optimizan mejor el ancho de banda, haciéndolo
menor.
Funcionamiento del código
El código Manchester utilizado posee pulsos de 10 mseg. que son enviados por el pin
9 del pic (RB3). Dos pulsos representan un bit, es decir, 10 mseg en 0v y 10 mseg en 5v
representan un bit 0, y 10 mseg en 5v y 10 mseg en 0v representan, respectivamente, un
bit 1.
Se le asignó este tiempo de duración a los pulsos para evitar conflictos al momento
de recibir los datos y así mismo disminuir un gran rango de fallas que pueden llegar a
interpretarse por parte del receptor.
Se sabe que los transmisores elevan su ganancia al estar mucho tiempo en un solo
estado, produciendo una posible pérdida de información al momento en el que tienen
que regresar a la ganancia en la que se transmite. Para estabilizar dicha ganancia, se
envía una serie de pulsos (unos y ceros alternadamente) seguido de un lapso de 20 mseg
en estado alto, 20 mseg en estado bajo y un pulso de 10 mseg en estado alto; así se logra
diferenciar en el receptor cuando es que llega la información
.
Pulsos para la reacomodación de ganancia del transmisor
Pulsos de aviso de llegada de información.
Módulos transmisores y receptores
Transmisor
El módulo a implementar para la transmisión de datos es el QM Radio Transmitter Module
QFMT1-434; módulo híbrido de radio FM de 433,92 Mhz.
El módulo transmisor de radio UHF miniatura QFMT1 es capaz de implementar un enlace
simple de telemetría a una velocidad de hasta 10 Kbit/s cuando es usado con uno de los módulos
receptores quasar compatibles. Disponible para funcionar a 433,92 y 868 MHz. Estos módulos
son capaces de transmitir a distancias de hasta 100 metros (versión 433,92 MHz).
El módulo QFMT1 se emplea en aplicaciones de enlaces inalámbricos punto a punto y
multipunto incluyendo seguridad en edificios y coches, telemedida y telecontrol en procesos
industriales y redes de computadores. Por su pequeño tamaño y bajo consumo, este módulo es
ideal para usar en aplicaciones portátiles y soportadas por baterías como son los terminales
manuales.
Detalles de conexión
Descripción de los pines:
RF GND (pin 1)
RF: pin de tierra, conectado internamente al pin 4 (0 V).
Este pin idealmente debe estar conectado al plano de tierra más cercano (por ejemplo
el coaxial de la antena).
RF OUT (pin2)
50Ω de salida de RF de la antena. Para lograr mejores resultados
la impedancia de la antena debe coincidir con la del módulo.
VCC (pin 3)
V + alimentación Pin (3,0 a 9,0 voltios). El módulo generará una transmisión
cuando cuando la alimentación esté presente. Es muy recomendado que
un condensador de 100nF esté ubicado como un puente a la alimentación para
desacoplar señales parásitas, lo más cerca posible de este pin.
GND (pin 4)
Conexión de tierra, conectado al pin 1.
Data IN (pin 5)
Es la entrada de los datos a transmitir. La misma tiene una impedancia de 47KΩ y lo
ideal es que sea impulsada por una unidad lógica CMOS o compatible. Los circuitos
del controlador a transmitir deben ser alimentados con la misma tensión de
alimentación en el módulo Tx.
Construcción de la antena:
Circuito Transmisor:
Receptor
Para la recepción se utiliza el módulo QFMR2-434, compatible con el transmisor.
Detalles de conexión
Descripción de los pines:
RF IN (pin 1)
50W de entrada de RF de la antena, conecte con ruta más corta
posible. Capacitivamente aislada desde el circuito interno.
RF GND (pin 2)
Conexión RF de tierra, preferentemente a un plano de tierra firme.
RSSI (pin 3)
Es un indicador de intensidad de la señal recibida. Entrega una tensión de
salida proporcional a la entrada RF señal.
No conectado (pin 4)
VCC (pin 5)
Tensión de suministro. Funciona con una fuente de poder de 5V a 2 mA.
RSSI (pin 6)
Es un indicador de intensidad de la señal recibida. Entrega una tensión de
salida proporcional a la entrada RF señal.
DATA OUT (pin 7)
Compatible con CMOS a la salida. Esto puede ser decodificado externamente.
Construcción de la anterna:
Circuito Receptor:
Descargar