Selección de componentes: Microcontrolador (μC) del bloque sensor

Se conocen perfectamente los componentes más importantes del bloque sensor: el sensor y el transceptor. Por lo tanto, ya se puede seleccionar el microcontrolador, el cual será el encargado comunicarse con ambos dispositivos y procesar los datos.

Características necesarias

Las características que debe cumplir el microcontrolador son:

  • Número de pines necesarios

    Esta característica la fijan en gran medida los componentes que forman el bloque sensor. Como se ha mostrado en entradas anteriores, el sensor necesita dos líneas para la comunicación (DATA y SCK) y el transceptor necesita cinco para un solo transceptor (CLK1, DR1, DOUT1, CS y CE) y ocho para dos (CLK2, DR2 y DOUT2). En el módulo sensor sólo se utilizará un transceptor de los dos disponibles, por lo que el número total de líneas estrictamente necesarias es de siete. Es importante especificar las características de cada línea pues hay microcontroladores con líneas de sólo entrada, de sólo salida y bidireccionales. La tabla siguiente muestra las líneas con el tipo de estas.

    Además de estas líneas, puede ser interesante utilizar una línea más conectada a la alimentación del transceptor, para alimentarlo o no según el uso. De este modo se reduciría el consumo estático del sistema dado que el consumo en reposo del transceptor es relativamente alto.

    También son necesarias otras líneas para interactuar con el usuario, tales como LED o pulsadores; por ello las líneas disponibles del microcontrolador deben ser algo mayores de siete.

  • Periféricos

    Actualmente los microcontroladores disponen de diversos periféricos que dotan al microcontrolador con diversas funcionalidades adicionales, tales como: conversores analógico-digital y/o digital-analógico, comparadores, periféricos de comunicación específica como USART, I2C, SPI, USB, etc. Normalmente estos periféricos son activables y desactibables durante la programación por lo que no suponen un consumo en el caso de no ser utilizados. No obstante se intentará utilizar un microcontrolador con los periféricos estrictamente necesarios.

    En un principio, la aplicación puede necesitar de periféricos y/o modos que permitan una gestión del consumo.

  • Consumo

    Al tratarse de un sistema alimentado por batería, es necesario obtener el mínimo consumo posible. En concreto, para el bloque sensor se prioriza el consumo, ya que se pide un dispositivo sensor autónomo e independiente durante el máximo tiempo posible. Es por esto que el microcontrolador debe consumir el mínimo posible de corriente y debe disponer de modos de ahorro de energía.

    El consumo de un componente electrónico digital se puede dividir en consumo en estado estacionario y en estado dinámico.

    • El consumo en estado estacionario es el consumo que se produce por el mero hecho de alimentar al dispositivo. Este consumo es debido a la corriente de fugas vinculada a los transistores que forman la lógica CMOS.
    • El consumo en estado dinámico es el consumo que se produce cuando el dispositivo está en funcionamiento. Este consumo es debido principalmente a la corriente de conmutación de los CMOS las cuales son sensibles a la tensión de operación y a la frecuencia de conmutación.

    Entonces, la potencia total consumida de un circuito integrado viene dada por la expresión siguiente:

    Es decir, el consumo total es la suma del consumo en estado estacionario, en estado dinámico y el debido a las pérdidas de conmutación. Tal y como se ha comentado, se observa que el consumo en estado estacionario depende de la corriente de fugas y de la tensión de alimentación. El consumo en estado dinámico, al estar causado por los procesos de carga y descarga de capacidades, depende de la capacidad, de la frecuencia y de la tensión de alimentación. El consumo de las pérdidas de conmutación es debido al pico de corriente producido durante la transición de estados, es por esto que depende de los tiempos de subida y de bajada, de la corriente de pico producida, de la frecuencia y de la tensión de alimentación.

    Entonces, se observa como una medida eficaz para reducir el consumo del circuito integrado consiste en reducir la tensión de alimentación. También es interesante reducir la frecuencia de operación aunque, para determinadas aplicaciones, compensa en promedio trabajar con altas frecuencias durante cortos periodos de tiempo. También se debe tener en cuenta fijar estados claros en las entradas del microcontrolador, ya que un estado indeterminado produciría un cierto consumo por pérdidas.

  • Tensión de operación

    Como se ha comentado anteriormente, el consumo está relacionado con la tensión de alimentación por lo que se forzará a la mínima posible. Para ello, se consideran las tensiones mínimas de alimentación de los dispositivos que forman el módulo sensor. Como se ha comentado en entradas anteriores, la tensión de alimentación del transceptor puede comprender valores entre 1.9 y 3.6 V, y la tensión de alimentación del sensor puede comprender valores entre 2.4 y 5.5 V. Por lo que se tomará una tensión de alimentación de 2.5 Voltios ya que el sensor tiene el rango más restrictivo.

  • Frecuencia de funcionamiento

    La frecuencia de funcionamiento, en esta aplicación, viene determinada únicamente por los componentes que forman el bloque sensor ya que la velocidad sólo es necesaria en la comunicación con ambos componentes.

    Como se ha expuesto en entradas anteriores. Tanto el sensor como el transceptor pueden llegar, como máximo, a comunicarse a una frecuencia de 1MHz sin tener un mínimo. Teniendo en cuenta que una señal de reloj, normalmente, supone dos instrucciones; estrictamente el ciclo de instrucción debe ser de 500ns. Lo que según la arquitectura del microcontrolador implica una frecuencia de reloj distinta. No obstante, se puede trabajar a una frecuencia menor.

Alternativas

Los siguientes dispositivos cumplen con las características necesarias para el proyecto; se han destacado sus características principales para encontrar la solución óptima:

  • La familia S08QE de Freescale. [ver datasheet]

    Es la familia de bajo consumo de Freescale; típicamente a 1MHz y con todos los periféricos funcionando consume una corriente de 800µA@3V y con todos los periféricos detenidos consume una corriente de 510µA@3V. Además dispone de varios modos de operación de bajo consumo. Por otra parte, estos dispositivos suelen integrar diversos periféricos la mayoría de los cuales no son útiles en este diseño, exceptuando el módulo RTC (Real Time Counter, contador en tiempo real) el cual supondría precisión en el tiempo entre medidas. También hay que destacar la falta de un oscilador interno integrado.

  • La familia MSP430 de Texas Instruments. [ver datasheet]

    Es una familia de muy bajo consumo de Texas Instruments; típicamente a 1MHz consume una corriente de 300µA@3V. Además dispone de varios modos de operación de bajo consumo. Esta familia suele integrar periféricos como conversores analógico-digital de varios tipos, comparadores analógicos y periféricos de comunicación UART o USI (ISP o I2C). En concreto todos los dispositivos de esta familia disponen de un periférico de conversión analógico-digital. En este sentido el dispositivo no es óptimo para el sistema. Otra característica a tener en cuenta es el oscilador interno de frecuencia seleccionable.

  • La gama media de la familia PIC de Microchip. [ver datasheet]

    En general, es la familia de rango medio microcontroladores de Microchip. Dicha familia contiene dispositivos que integran una tecnología propietaria de muy bajo consumo llamada nanoWatt. Los dispositivos que integran dicha tecnología consumen típicamente a 1MHz una corriente de 220µA@3V. Además, dicha tecnología supone la integración de periféricos de bajo consumo como un oscilador interno seleccionable dinámicamente entre ocho frecuencias distintas y como un temporizador de muy bajo consumo (Ultra Low Power Wake Up Timer, temporizador despertador1 de muy bajo consumo). Esta familia de microcontroladores es muy amplia (gama baja,media y alta), oferta una gran diversidad de modelos con prestaciones y recursos muy diferentes, lo que facilita un cambio de dispositivo en caso de futuras necesidades. En cuanto a los periféricos la familia contiene dispositivos con periféricos muy variados y, al tratarse de una familia tan extensa, adaptables para diversas aplicaciones.

Notas
1

Normalmente, al modo de operación bajo consumo de los microcontroladores se le conoce como dormir (Sleep), entonces el término despertador se entiende como salir del modo de bajo consumo.

Selección de componentes: el transceptor (II)

El módulo transceptor RF24-G de Laipac Tech está formado (ver la imagen del módulo sin la cubierta) por el transceptor nRF2401 de Nordic Semiconductor1 y por todos los componentes externos necesarios para funcionar; una antena ruteada en la PCB y un cristal de 16MHz.

Para este diseño se ha optado por el módulo de Laipac Tech, no obstante, cualquier módulo formado por el transceptor nRF2401 o nRF2401A/G (por ejemplo los fabricados por RFDigitalWireless) puede ser utilizado sin necesidad de modificar el circuito. La elección del módulo de Laipac Tech es debido a que su proximidad (Barcelona) disminuye los gastos de envío y por tanto el coste final del prototipo.

Características externas

En cuanto a las dimensiones, el módulo es relativamente pequeño: 36,5mm de ancho; 20,5mm de largo y 9mm de alto con el conector (sin él 3.5mm).

Por lo que respecta a la conexión, utiliza un conector macho de 10 pines en 2 filas con 1,27mm de espaciado entre pines. Se utilizará un conector hembra para permitir la conexión/desconexión, en concreto el modelo M50-3000545 de HARWIN (precio).

Descripción del funcionamiento: nRF2401

  • Características principales

    Se trata de un transceptor GFSK para la banda ISM de 2.4GHz con soporte multicanal (125 disponibles)2 y con una transmisión de hasta 1Mbps. Dispone también de la capacidad de computar la dirección y el CRC, así como de trabajar en un modo llamado ShockBurst™ el cual disminuye el consumo y libera de carga de procesado al microcontrolador.

  • Especificaciones eléctricas
    • Tensión de alimentación entre 1.9 y 3.6 V.
    • Frecuencia de trabajo de 2400MHz hasta 2524MHz2 con 1MHz de espaciado entre canales (125 Canales).
    • Consumo durante la trasmisión de 13mA@0dBm y 8.8mA@-20dBm de potencia de salida.
    • Consumo en modo reposo (stand-by) de 12μA y de 400nA en modo bajo consumo (power down).
    • Consumo en la recepción de un solo canal a 1000kbps de 19mA y de dos canales a 1000kbps de 25mA.
    • Sensitividad del receptor de -90dBm@250kbps y de -80dBm@1000kbps.
  • Diagrama de bloques

    Por lo que respecta al receptor, se trata de un receptor superheterodino, formado por un amplificador de bajo ruido (LNA), un mezclador y un filtro pasa-banda a la frecuencia intermedia (IF BPF), tal y como se puede observar en la figura. Un receptor superheterodino funciona trasladando la señal recibida, mediante una mezcla con el tono puro y constante de un oscilador, a una frecuencia diferente llamada frecuencia intermedia. En la frecuencia intermedia se realza el filtrado y la selección de la banda deseada antes de su demodulación. Como un mezclador es un dispositivo no lineal, produce armónicos que son filtrados por el filtro pasa-banda.

    También podemos observar el modulador en GFSK. La modulación en GFSK consiste en hacer pasar la señal por un filtro Gaussiano (GFSK Filter) y modular la resultante en FSK. Un filtro Gaussiano, aplicado a señales digitales, suaviza las transiciones entre estados (alto y bajo) disminuyendo así el ancho espectral de la señal. En la modulación FSK la frecuencia de la señal transmitida cambia, respecto a la frecuencia de portadora, al ritmo de la información contenida en la señal.

    Finalmente, se aprecia también el amplificador de potencia (PA) tras la modulación y el sintetizador de fecuencia (Frequency Synthesiser) que genera la frecuencia de portadora a razón del canal seleccionado.

  • Modos de operación

    El transceptor dispone de diversos modos de operación. Los modos activables mediante el registro de configuración son ShockBurst™, Directo y DuoCeiver™. El resto de modos seleccionables se activan mediante el estado de las líneas de comunicación. Los modos de operación seleccionables son:

    • ShockBurst™

      La tecnología ShockBurst™ utiliza un búfer FIFO implementado en el chip donde se cargan, a una velocidad fijada por el microcontrolador (como máximo de 1Mbps), los datos que se desean enviar para, una vez lleno el búfer, trasmitir los datos a la máxima velocidad. Este modo de operación presenta las siguientes ventajas:

      • Se reduce el consumo de corriente.
      • El costo sistema se reduce dado que no se necesita un microcontrolador rápido para controlar el dispositivo.
      • Se reduce el riesgo de colisiones "en el aire" debido al corto tiempo de transmisión.

      La comunicación en el modo ShockBurst™ es la siguiente:

      • Transmisión
        1. Cuando el microcontrolador quiere enviar un dato, pone CE en estado alto. Esto activa el procesador de datos del transceptor.
        2. El microcontrolador carga en el transceptor la dirección y el dato. El microcontrolador fija la velocidad de la comunicación entre ambos, siendo siempre menor de 1Mbps.
        3. El microcontrolador pone a cero la línea CE, esto activa la transmisión.
        4. Una vez activada la transmisión, el transceptor completa el paquete (le añade el preámbulo y el CRC calculado previamente) y trasmite el dato a alta velocidad (250kbps o 1Mbps según la configuración). Una vez transmitido el dato, el dispositivo entra en reposo.
      • Recepción
        1. Para actviar la recepción el microcontrolador debe poner la línea CE a nivel alto.
        2. Tras 200μs de establecimiento, el transceptor monitoriza el aire en busca de comunicaciones entrantes.
        3. Cuando recibe un paquete válido (con la dirección y el CRC correctos), el transceptor deshecha del paquete recibido el preámbulo, la dirección y el CRC.
        4. El transceptor notifica al microcontrolador poniendo la línea DR1 a nivel alto. El microcontrolador puede poner la línea CE a nivel bajo para desactivar el receptor y así disminuir el consumo de corriente.
        5. El microcontrolador leerá del transceptor sólo los datos ya que el resto del paquete recibido ha sido deshechado por el transceptor. Cuando todo el dato ha sido leido por el microcontrolador, el transceptor vuelve a poner la línea DR1 a estado bajo y se prepara para una nueva recepción si CE se mantuvo en estado alto.
    • Modo directo

      En el modo directo el transceptor funciona como un dispositivo de radiofrecuencia tradicional. Los datos deben ser transmitidos al transceptor a 1Mbps ±200ppm, o a 250kbps ±200ppm.

      • Transmisión
        1. Cuando el microcontrolador quiere enviar un dato, debe poner la línea CE a nivel alto.
        2. El transceptor activa la transmisión y tras 200μs de establecimiento, los datos modularán a la portadora directamente.
        3. Todas las partes del protocolo deben ser implementadas en por el microcontrolador (preámbulo, dirección y CRC).
      • Recepción
        1. Una vez el transceptor está configuradao y con la línea CE en estado alto, las líneas DATA y CLK1 empezará a conmutar debido al ruido presente en el aire.
        2. Una vez llega un preámbulo válido, las líneas CLK1 y DATA se engancharán a la señal entrante y DATA mostrará el paquete con la misma velocidad con la que fué transmitido.
        3. Para que el receptor pueda regenerar el reloj, el preámbulo debe ser de 8bits conmutando de estado entre alto-bajo, empezando por 0 si el primer bit del dato es 0.
        4. En este modo las señales DR (dato listo) no están disponibles. La validación de la dirección y del CRC debe hacerla el microcontrolador.
    • Recepción simultánea por dos canales (DuoCeiver™)

      Tanto trabajando en modo ShockBurst™ como en modo Directo, el transceptor puede operar con dos receptores simultáneos con dos canales paralelos a la máxima tasa binaria. Esto significa que el transceptor puede recibir datos desde dos transmisores a través de una única antena. Además cada receptor puede dirigirse a un microcontrolador independiente mediante sus correspondientes líneas de comunicación.

    • Modo de configuración

      En el modo de configuración una palabra de hasta 15bytes se descarga al transceptor. Esto se realiza a través de la interface de 3 líneas (CS,CLK1 y DATA).

    • Modo de reposo

      En este modo, parte del oscilador del cristal está activa. El consumo de corriente es dependiente de la frecuencia del cristal. La palabra de configuración se mantiene durante este modo.

    • Modo bajo consumo

      En este modo el transceptor se deshabilita para un consumo mínimo de corriente, típicamente menos de 1μA. La palabra de configuración se mantiene durante este modo.

  • Estructura del paquete

    El paquete de datos para los dos modos de operación se divide en cuatro secciones:

    • El preámbulo (Preamble).

      Tiene un tamaño de 8bits y, en modo de operación directo, es dependiente del primer bit de los datos y es transparente a los datos de salida. En modo de operación ShockBurst™ se añade automáticamente por lo que se tienen 8 bits extras y en la recepción se deshecha automáticamente.

    • La dirección (Address).

      El campo de dirección es necesario en el modo ShockBurst™. Su longitud debe ser entre 8 y 40 bits.

    • Dato útil (Payload).

      Es el dato que es transmitido. En el modo ShockBurst™ la longitud máxima de este campo es 256-(tamaño de la dirección+tamaño del CRC). En modo directo la longitud máxima es de 4000bits para 1Mbps (4ms).

    • CRC

      El CRC es opcional en el modo ShockBurst™ y no se utiliza en el modo directo. Su longitud puede ser de 8 o de 16 bits. El CRC se deshecha automáticamente tras la recepción.

  • Configuración

    Para configurar el transceptor se carga una palabra de hasta 15bytes que contiene lo necesario para la comunicación. He realizado una hoja de cálculo con Gnumeric la cual describe cada parte de la palabra de configuración y permite generarla fácilmente. El enlace para su descarga se muestra a continuación.

Notas
1
Actualmente (hoy, 20-2-2008) Nordic Semiconductor no comercializa el transceptor nRF2401, le ha introducido pequeñas modificaciones y lo ha llamado nRF2401A (precio). Este nuevo modelo es totalmente compatibe con el anterior.
2
Hay que tener en cuenta que la banda ISM de 2.4GHz en Europa contempla desde 2.4GHz hasta 2.5GHz por lo que el uso de canales superiores al 83 sin licencia en Europa es ilegal.
Referencias

Nordic Semiconductor nRF2401 datasheet.

SIERRA PÉREZ, M.;GALOCHA IRAGÜEN, B.;FERNÁNDEZ JAMBRINA, J.L.;SIERRA CASTAÑER,M. Electrónica de comunicaciones.
Madrid: PEARSON EDUCACIÓN. S.A., 2003. 416 p.
ISBN:978-84-205-3674-3

Componentes: El sensor

El sensor que se empleará es un sensor de Humedad relativa y de temperatura el cual viene especificado, se trata del modelo SHT71 de Sensirion.

Descripción

Se trata de un sensor digital de humedad relativa y temperatura. Internamente consiste en un sensor de temperatura de tipo bandgap y un sensor de humedad relativa de tipo polímero capacitivo. Ambos sensores se conectan a un conversor analógico/digital de 14bits. Una memoria OTP (One Time Programmable) dispone de los coeficientes de calibración de los sensores y son usados internamente tras cada medida para calibrar las señales de los sensores (está completamente calibrado). La salida digital se conecta a un controlador de la comunicación síncrona y a un generador de CRC.

Características principales

  • Resolución seleccionable de las medidas entre dos opciones mediante el registro de estado:
    1. 8bit HR y 12bit Temperatura
    2. 12bit HR y 14bit Temperatura
  • Indicador de tensión baja, detecta tensiones de alimentación inferiores a 2.47V.

  • Calentador activable mediante el registro de estado que aumenta la temperatura del sensor entre 5°C y 15°C. Se puede utilizar para comprobar el correcto funcionamiento del sensor o para prevenir la condensación en entornos de elevada humedad relativa (>95%HR).

  • El sensor calcula un CRC de 8bits en cada medida y puede ser leido o no. Su uso asegura la recepción correcta de los datos.

  • Eléctricas:
    • Amplio rango de alimentación [2.4-5.5]V.
    • Consumo de corriente durante las medidas de 550μA @5V.
    • Consumo de corriente en inactividad de [0.3-1]μA @5V.
    • Consumo promedio de corriente de 28μA @5V realizando una medida de 12bits por segundo.
  • Es totalmente intercambiable entre toda la gama de sensores SHT1x y SHT7x. La diferencia entre modelos de la gama es la precisión (por tanto el coste), como se observa en las gráficas siguientes.

  • Rendimiento (comportamiento):

    • Humedad:
      • Precisión ±3%HR@[20-80]%RH.
      • Resolución 0.5%HR@8bit y 0.03%HR@12bit.
      • Repetitividad ±0.1%HR.
      • Histéresis ±1%HR.
    • Temperatura:
      • Precisión ±0.4 Kelvin.
      • Resolución 0.04°C@12bit y 0.01°C@14bit.
      • Repetitividad ±0.1°C.
      • Rango [-40 - 123.8]°C.

Interface

La interface de comunicación, bidireccional síncrona de dos líneas (dato y reloj), está optimizada para el sensor y no es compatible con interfaces I2C. La línea de reloj es unidireccional y se utiliza para sincronizar la comunicación entre el microcontrolador y el sensor, no tiene frecuencia mínima y la máxima es de 1MHz para tensiones de alimentación inferiores a 4.5V. La línea de datos es bidireccional: cambia tras un flanco de bajada y se valida en los flancos de subida de la línea de reloj. Durante la transmisión, la línea de datos debe permanecer estable mientras el reloj está a nivel alto.

Secuencias de comunicación

Enviar un comando

Antes de enviar un comando, se debe iniciar la transmisión mediante la secuencia mostrada en la figura siguiente.
Inicio de la transmisión (Transmission start)

Tras dicha secuencia, se le manda el comando deseado precedido de una dirección de tres bits (el dispositivo sólo soporta la dirección "000"). El comando está formado por cinco bits, y los comandos posibles son los siguientes:

Lista de comandos.

por lo tanto, la secuencia de envío de un comando será:

Ejemplo de transmisión de un comando, en este caso se está realizando una medida de H.R.

El último flanco de DATA (en negrita) y el último pulso de reloj SCK llamado ack son el reconocimiento (acknowledge) del dato por parte del sensor (confirmación de la recepción); el sensor pondrá a cero la línea de datos DATA tras el octavo ciclo de reloj. El pulso ack (el noveno) le indica al sensor la recepción del reconocimiento.

Realizar medidas

Una vez enviado el correspondiente comando (medida de humedad o medida de temperatura) se debe esperar a que finalice la medida. El tiempo de medida suele ser de 11/55/210ms para una medidas de 8/12/14bits. Una vez finalizada la medida, el sensor pondrá la línea de datos a cero y entrará en modo reposo. La medida se guarda esperando su lectura, la cual se puede realizar cuando se desee (no dispone de tiempo máximo de almacenaje).

En la lectura, el sensor transmite dos bytes de la medida y un byte de CRC con el bit más significativo primero (MSB). El microcontrolador debe reconocer (confirmar su recepción) cada byte poniendo la línea de dato DATA en estado bajo. Si no se desea utilizar el CRC se puede ignorar no reconociendo el segundo byte. Se muestra un ejemplo donde, previamente, se ha ordenado la medida de H.R. de 12bits:

Ejemplo de lectura de una medida. La línea gruesa indica el control de la línea por parte del sensor, la delgada el control por parte del microcontrolador.

En resumen:

Reestablecer la comunicación

Si se pierde la comunicación con el sensor, se puede resetear la comunicación siguiendo la secuencia siguiente (esto reseteará sólo la interface, el registro de estado preservará su contenido):

Secuencia de reestablecimiento de la conexión.

Registro de estado

A través del registro de estado (8bits), se puede acceder a la configuración de algunos parámetros del sensor. Estos parámetros se muestran en la tabla siguiente.

Descripción de los bits del registro de estado.
  • Heater (calentador)

    Si se activa aumenta la temperatura del sensor entre 5°C y 15°C y el consumo a 8mA@5V. Se puede utilizar para comprobar el correcto funcionamiento del sensor o para prevenir la condensación en entornos de elevada humedad relativa (>95%HR).

  • End Of Battery (indicador de batería baja)

    Consiste en un detector de bajo voltaje, cuando la tensión de alimentación es menor que 2.47V, el bit se activa.

  • No reload from OTP (No recargar la OTP)

    Para ahorrar potencia y disminuir el tiempo de las medidas, puede evitarse la recarga de OTP antes de cada medida. Esto ahorra 8.2ms aprox. de cada medida.

  • Measurament resolution (Resolución de la medida)

    Los 14bits (temperatura) y 12bits (humedad) de resolución de la medida pueden reducirse a 12bits (temp.) y 8bits (hum.). Esto reduce el tiempo de medida (duración de la medida) y por tanto disminuye el consumo.

Comunicación

  • Lectura del registro de estado

    Es idéntica a la lectura de la medida. El sensor necesita un reconocimineto (validación) cada byte y devuelve el valor del registro y un byte de CRC que puede ser ignorado si no se reconoce (valida).

  • Escritura del registro de estado

    Para realizar una escritura primero se envía el comando de escritura como se ha mostrado anteriormente y después el valor del registro de estado.

Referencias

Sensirion SHT7x datasheet.

Selección de componentes: Transceptor

La selección de transceptor es la selección más crítica y difícil ya que es el componente más caro del proyecto y sus especificaciones permiten soluciones muy dispares.

Antes de empezar a mirar componentes y/o módulos, he tenido que decidir el tipo de conexión inalámbrica, es decir la banda en la que opera y uso de un protocolo estándar o no.

En el IEEE 802, comité y grupo de estudio de estándares perteneciente al Instituto de Ingenieros Eléctricos y Electrónicos (IEEE), se definen los niveles más bajos del modelo OSI de las redes de área personal, área local y de área metropolitana. Los estándares referentes a redes inalámbricas se muestran en la gráfica siguiente:

La gráfica muestra en el eje horizontal la tasa de datos en Mbps y en el eje vertical el alcance de la red dividiéndose en redes amplias inalámbricas (WWAN), redes metropolitanas inalámbricas (WMAN), redes de área local inalámbricas (WLAN) y redes de área personal inalámbricas (WPAN).

Atendiendo al gráfico, los estándares más adecuados al proyecto serán los que se encuentren en la esquina inferior izquierda; ya que se precisa de un alcance corto y una baja tasa de datos.

Alternativas

Las alternativas que he barajado son las siguientes:

  1. Bluetooth.

    Es la norma (802.15.1 del IEEE) que define un estándar global de comunicación inalámbrica, que posibilita la transmisión de voz y datos entre diferentes equipos mediante un enlace por radiofrecuencia. [fuente] Se trata de una tecnología de radio de corto alcance para la conexión sin hilos de dispositivos móviles.

    • Características principales: [fuente]

      • Trabaja en la banda ISM (médico-científica internacional) de 2,4 Ghz a 2,48 Ghz.
      • Para evitar interferencias utiliza la técnica FHSS (Espectro ensanchado por salto de frecuencia), divide la banda en 79 canales (23 en España, Francia y Japón) de longitud 1 MHz y realiza 1600 saltos por segundo. En otro sitio dicen que modula en GFSK con AFH (Salto de frecuencia adaptativo).
      • La capacidad de transmisión varía según versiones del núcleo:
        • Versión 1.1: 723.1 Kbps
        • Versión 1.2: 1 Mbps
        • Versión 2.0 + EDR: 2.1 ~ 3 Mbps
      • La potencia de transmisión se divide en 3 clases de productos:
        • Clase 1: 100 mW / 20 dBm, con un rango de ~100 m.
        • Clase 2: 2.5 mW / 4 dBm, con un rango de ~10 m.
        • Clase 3: 1 mW / 0 dBm, con un rango de ~1 m.
      • Incluye soporte para tres canales de voz, seguridad, disponibilidad actual, bajo consumo de potencia y bajo coste.
      • Utiliza una topografía de red PAN inalámbrica o WPAN (Red de área personal inalámbrica) de hasta 8 dispositivos, llamándose ésta picored (piconet). La unión de picoredes se denomina red dispersa (scatternet).
      • Una picored, está formada por un maestro y hasta 7 esclavos. El maestro fija una secuencia de 1600 saltos de frecuencia por segundo y el resto de dispositivos se sincronizan desde el punto de vista del tiempo y de la secuencia de saltos entre canales. Cada unidad dispone de un reloj de sistema interno que determina la temporización y la secuencia de saltos que debe seguir el transceptor.
      • El protocolo es apropiado para voz y datos (enlaces ACL y SCO).
    • Ventajas:

      • Es muy utilizado y va implementado en multitud de dispositivos como ordenadores, teléfonos móviles y PDA.
      • Su uso proporciona una ámplia compatibilidad para comunicaciones en una red WPAN y, por tanto, elimina gran parte del proceso de diseño.
      • Se comercializan módulos que ya tienen implementado el estándar, un amplificador de RF y una antena por lo que el tiempo de diseño disminuye.
    • Inconvenientes:

      • Al tratarse de un estándar debe ser ámpliamente compatible por lo que muchas de las partes que forman el paquete de datos son simplemente para asegurar la compatibilidad.
    • Web oficial: Bluetooth

  2. ZigBee.

    Es un protocolo RF, basado en el estándar IEEE 802.15.4, específicamente desarrollado para obtener un bajo consumo, con una tasa de datos baja y para controlar aplicaciones mediante un gran número de nodos (hasta 4090) distribuidos.[fuente]

    • Características principales: [fuente]

      • Trabaja en la banda ISM (médico-científica internacional) de 2,4 Ghz a 2.48 Ghz con 16 canales de 5Mhz de separación. El estándar también permite operar en la banda Europea de 868Mhz (canal único) y en la banda Estadounidense de 915Mhz (10 canales con separación de 2Mhz).
      • Modula en DSSS (Espectro ensanchado por secuencia directa).
      • La capacidad de transmisión varía según la banda en la que trabaje (ninguna de estas bandas precisa de licencia): [fuente]
        • Europea (868,3MHz): 20 Kbps. Canal nº 0.
        • Americana (902-928 MHz): 40 Kbps. Canal nº 1-10.
        • ISM (2405-2480 MHz): 250 Kbps. Canal nº 11-26.
      • Por lo que he observado, tiene diversas potencias de transmisióon, como en el Bluetooth. Por ejemplo, hay un módulo que transmite en un rango variable entre -10dBm y 20dBm. (BUSCAR)
      • Utiliza una topografía de red PAN inalámbrica o WPAN (Red de área personal inalámbrica) de multitud de dispositivos.
    • Ventajas:

      • Su consumo es menor que el del Bluetooth y está más próximo a las necesidades del proyecto.
      • Muchos fabricantes venden transceptores con el protocolo implementado o proporcionan una implementación, p.e. Microchip, Texas Instruments o Atmel.
    • Inconvenientes:

      • La topología de red PAN es demasiado compleja para el propósito del proyecto.
      • Está teniendo problemas de interferencias con las redes WLAN. (Ojo con las fuentes que son de la competencia) [fuente 1, fuente 2]
    • Web oficial: ZigBee Alliance

  3. Z-Wave.

    Es un protocolo inalámbrico específicamente desarrollado para aplicaciones que precisan de un bajo consumo y no requieren de un gran ancho de banda ni altas tasas de datos. Por sus características, se utiliza principalmente en domótica y sensado.[fuente]

    • Características principales: [fuente]

      • Trabaja en la banda ISM (médico-científica internacional) de 900 Mhz; en Europa en la banda de 868.42Mhz (canal único) y en Estados unidos en la banda de 908.42Mhz.
      • Modula en GFSK (Desplazamiento de frecuencia gausiana).
      • La capacidad de transmisión es de 9,600 bit/s o 40 Kbit/s. [fuente]
      • La potencia de transmisión, por ejemplo este módulo, es variable entre -20dBm y 0dBm. (BUSCAR)
      • Utiliza esta topografía de red.
    • Ventajas:

    • Inconvenientes:

      • Depende mucho del lugar de comercialización debido a la banda ISM que emplea.
      • No está muy documentado.
      • No está muy extendido.
    • Web oficial: Z-Wave Alliance

  4. Protocolo propio.

    Se trata de un protocolo adaptado específicamente al proyecto, es decir, diseñado por y para las necesidades del sistema. Debo diseñar todo lo correspondiente al protocolo (el stack).

    • Ventajas:[fuente]

      • Al tratarse de un protocolo hecho específicamente para el sistema, cubrirá sus necesidades de forma óptima. Normalmente al utilizar estándares, muchas de sus características no se utilizan y suponen un tiempo de proceso y un consumo innecesario.
    • Inconvenientes:

      • No ser un estándar implica, entre otras cosas, que sólo podrá comunicarse entre los dispositivos del sistema. Esto es un inconveniente ya que, si se utiliza un estándar, cualquier dispositivo que implemente dicho estándar podrá acceder a la comunicación.
      • El desarrollo del proyecto se complica y se aumenta el tiempo de diseño.

Conclusiones

De las alternativas, se observa que:

  • la opción de Bluetooth es la menos óptima para el proyecto ya que el protocolo está orientado a aplicaciones que precisan una comunicación contínua y rápida (voz y datos), por lo cual, la pila del protocolo (stack) dispone de diversas capas que no son de utilidad para el proyecto desperdiciándose así tiempo de proceso y, por tanto, consumo (ver la definición de paquete[enlace]). Tampoco es energéticamente eficiente, para el proyecto, respecto a su forma de comunicarse;[[en concreto el método para evitar interferencias de Salto de Frecuencias (FH) consiste en que el maestro fija una secuencia pseudoaleatoria de saltos de canal que el resto de miembros de la red debe seguir para que se produzca la comunicación, además esta secuencia se vuelve a fijar tras cada comunicación]] y que consiste en que el maestro debe estar sincronizado permanentemente con los esclavos para fijar, como mínimo, las pautas de los 1600 saltos por segundo de canal.

  • la opción de ZigBee es mejor que el bluetooth dado que tiene los mismos beneficios de ser un estándar con la ventaja adicional de que su protocolo está orientado a aplicaciones de bajo consumo. No obstante, el protocolo es demasiado complejo para el proyecto ya que está pensado para la implementación de redes ad-Hoc, incluye opciones de enrutamiento y es capaz de desarrollar redes complejas. Esta complejidad en el protocolo hace de la opción del ZigBee poco eficiente para el proyecto con el incremento en el consumo que esto conlleva.

  • La opción del protocolo propio es la solución de compromiso ya que el protocolo lo define el sistema por lo que cubre sus necesidades de forma óptima. De hecho, para la aplicación, el no disponer de la principal ventaja del ZigBee, ser un estandar, no supone ningún problema; en su caso supondría simplemente un valor añadido. También cabe destacar que actualmente el protocolo ZigBee no está implementado en prácticamente ningún dispositivo de consumo pese a los intentos de implementar un transceptor combinado Bluetooth y ZigBee.

Módulos y componentes

Zigbee http://www.telegesis.com/comersus/store/comersus_listItems.asp?idCategory=50 http://www.telegesis.com/zigbee/buy.htm

Descripción del proyecto

¿En qué consiste el proyecto?

El proyecto consiste en el diseño y prototipado de una nube de sensores inalámbricos. Dicha nube se conecta con un ordenador que muestra los datos de los sensores y los controla. Cada sensor que forma la nube, se alimenta de forma autónoma.

El proyecto es de apoyo a una investigación en la que se necesitan medidas de humedad relativa y temperatura, tanto en laboratorio como en intemperie. Puesto que ya existe un sistema sensor, se aprovecharán dichos sensores. Pese a que el sensor ya viene dado, se debe diseñar el sistema sensor con código fácilmente reutilizable para una fácil adaptación a otro tipo de sensor. También se debe lograr un bajo coste del sistema completo dado que se realiza con fondos de la investigación.

Para una aproximación al proyecto, he realizado un diagrama de bloques, que es el siguiente:

Nota: No he nombrado los bloques de la imagen porque no me acaba de convencer las calificaciones de bloque sensor y bloque maestro.

La descripción del diagrama se puede dividir en dos, dependiendo del origen y destino de los datos.

  1. Sensor → Ordenador

    El sensor transforma una variable física en un dato electrónico y dicho dato se procesa mediante el microcontrolador (μC). Una vez procesado el dato, éste es enviado por radiofrecuencia a través del transceptor. El dato es recibido mediante el transceptor del maestro, y es interpretado y enviado al ordenador por el microcontrolador (μC).

  2. Ordenador → Sensor

    El ordenador se comunica con el maestro enviándole los datos (destino incluido). El microcontrolador (μC) procesa el dato y lo envía a través del transceptor al bloque sensor de destino, el cual, mediante el transceptor, detecta el dato, lo procesa y actúa en consecuencia, usando el microcontrolador (μC).

El punto más importante del diagrama (y por tanto del proyecto) es la comunicación entre bloques. Una parte crucial de la comunicación es el protocolo, el cual establece en mayor parte el consumo de los bloques. Puesto que el bloque sensor está limitado en consumo, su comportamiento fijará el protocolo óptimo. Por tanto, para definir un protocolo idóneo, primero debo definir el comportamiento del bloque sensor.

Una primera aproximación al funcionamiento del bloque sensor es que consiste en realizar una medida y enviarla cada cierto tiempo. Como consecuencia, el sistema estará activo durante un corto periodo de tiempo; durante la medida y el envío. Durante el tiempo de espera a la siguiente medida, el consumo debe ser mínimo; por tanto esta primera aproximación implica que no se puede tratar de un protocolo que necesite una comunicación constante (como el polling), es más bien una comunicación puntual, breve.

De esta primera aproximación he obtenido las especificaciones de cada módulo las cuales me ayudarán a la hora de la selección de los componentes que forman cada uno:

Bloque sensor

  • Bajo consumo, buscando una duración máxima de la batería (o un tiempo mínimo X de funcionamiento).
  • Bajo costo de los componentes.
  • Distancia mínima entre los sensores y el maestro de X metros.
  • Fácil uso.
  • Permitir la conexión en caliente de los sensores.
  • Permitir un elevado número de sensores.

Bloque maestro

  • Bajo consumo para su uso en portátiles y para una alimentación desde el ordenador.
  • Fácil uso.

De las especificaciones, disminuyendo así el nivel de abstracción, obtengo las especificaciones técnicas para cada componente de cada bloque:

Microcontrolador (μC) del bloque sensor

  • Bajo consumo; con modos de ahorro y con periféricos para controlar el consumo y monitorizar la batería.
  • Con bastante memoria para tener la opción de almacenar medidas si el maestro está caído u ocupado.
  • Fácilmente programable.
  • Con empaquetado tipo DIP para el prototipado (esta no es muy importante).
  • Con buenas herramientas para el desarrollo.

Microcontrolador (μC) del bloque maestro

  • Bajo consumo.
  • Con bastante memoria para tener la opción de almacenar medidas si el ordenador está caído.
  • Con periféricos integrados para la conexión con un ordenador (p.e. RS-232), preferiblemente que permita alimentación desde el PC (p.e. USB).
  • Fácilmente programable.
  • Con empaquetado tipo DIP para el prototipado (esta no es muy importante).
  • Con buenas herramientas para el desarrollo.

Transceptores

  • Bajo consumo y con modos de ahorro.
  • Debe permitir una conexión inalámbrica robusta:
    • Debe trabajar en una banda permitida (p.e. Banda ISM).
    • Estaría bien que tuviese un método de comprobación de errores en la transmisión (p.e. CRC)
    • Debe tener un ajuste de potencia de transmisión y una alta sensibilidad de recepción para disminuir el consumo ajustando la potencia necesaria.
  • Debe disponer de un módulo DIP para su prototipado ya que las limitaciones del laboratorio no permiten ruteado para altas frecuencias ni PCB de varias capas.

Directrices

Empiezo este blog con la intención de organizarme en la elaboración de mi PFC. Para facilitar la elaboración de la memoria voy a definir las etiquetas que usaré:

Generales

-Admin: entradas como esta, de administración u organización.

-Estado: entradas donde indique cierto progreso del proyecto.

-Documentación: entradas con información para progresar.

Particulares

-Sensor: entradas relacionadas con el bloque sensor.

-Maestro: entradas relacionadas con el bloque maestro.

-Transceptor: entradas relacionadas con el dispositivo transceptor.

-μC: entradas relacionadas con el microcontrolador.

-Memoria: entradas con información de la memoria.

Respecto al estilo, los archivos para descargar se indicarán de la siguiente forma:

Archivo.c

Las líneas de código se indican con un cuadro de borde discontínuo y la sintaxis va coloreada tal y como la genera gVim a código html:

#include <iostream.h> void main (void) { init(); while(1) { LED^=0x01; } }

En todo el proyecto intentaré utilizar herramientas libres bajo Linux.

Aquí pondré el software que vaya utilizando:

Inkscape. Programa de dibujo vectorial. Se utilizará en todas las figuras del proyecto.
gVim. Interfaz gráfica de Vim; editor de texto. Se utiliza para redactar las entradas en html y se utilizará para realizar el código.
Gnumeric. Programa de hojas de cálculo. Los archivos de este tipo se subirán en su formato (.gnumeric) ya que el formato ods no está implementado del todo. Nunca se subirán en el formato propietario xls pese a que sí se encuentra implementado en gnumeric.
Kile. Entorno para trabajar con LaTeX. Se utilizará para la realización de la memoria.

Los iconos que usaré en mis entradas forman parte del paquete Tango!.