• No se han encontrado resultados

Diseño, implementación y caracterización de un radioenlace en la banda ISM de 2.4GHz

N/A
N/A
Protected

Academic year: 2022

Share "Diseño, implementación y caracterización de un radioenlace en la banda ISM de 2.4GHz"

Copied!
134
0
0

Texto completo

(1)

UNIVERSIDAD DE GRANADA INGENIERIA ELECTRÓNICA

Diseño, implementación y caracterización de un radioenlace en la banda ISM de 2.4GHz

REALIZADO POR Juan Santaella Hernández

DIRIGIDO POR D. Francisco Jiménez Molinos

DEPARTAMENTO

Electrónica y Tecnología de los Computadores

Palabras clave

: CC2510, transceptor, SmartRF04_EB, radio.

Resumen

:

En este proyecto se trabajará con los CIs de radio de las familias CC11xx y CC25xx de Texas Instruments. Estos circuitos integrados son transceptores capaces de manejar diferentes esquemas de modulación, con potencia de salida programable e indicador de potencia recibida (RSSI) en el receptor.

El objetivo principal de este proyecto es emplear estos transceptores para realizar un radioenlace entre dos unidades, estableciendo también los montajes y procedimientos de medida (setups) de laboratorio necesarios para su caracterización. Todo este desarrollo podrá servir como punto de partida para posteriores trabajos en los que se desee añadir funcionalidad inalámbrica a algún sistema a través de radios implementadas con estos CIs.

(2)

UNIVERSIDAD DE GRANADA INGENIERIA ELECTRÓNICA

PROYECTO FIN DE CARRERA

AUTOR: Juan Santaella Hernández

TÍTULO: Diseño, implementación y caracterización de un radioenlace en la banda ISM de 2.4 GHz

TRIBUNAL :

D. Juan Antonio Jiménez Tejada

D. Carlos Sampedro Matarín

D. Miguel A. Carvajal Rodríguez

CALIFICACIÓN:

Presentado en Granada a de Septiembre de 2009 Evaluado en Granada a de Septiembre de 2009

El Presidente El Vocal El Secretario

(3)

UNIVERSIDAD DE GRANADA INGENIERIA ELECTRÓNICA

AUTORIZACIÓN DE LECTURA DE

PROYECTO FIN DE CARRERA

D. Francisco Jiménez Molinos, profesor del Departamento de Electrónica y Tecnología de los Computadores de la Universidad de Granada, como director del Proyecto Fin de Carrera titulado

“Diseño, implementación y caracterización de un radioenlace en la banda ISM de 2.4GHz”

y realizado por el alumno D. Juan Santaella Hernández

CERTIFICA: que el citado Proyecto Fin de Carrera, ha sido realizado y redactado por dicho alumno y autorizan su presentación.

Granada, a de Septiembre de 2009

Fdo:

(4)

UNIVERSIDAD DE GRANADA INGENIERIA ELECTRÓNICA

AUTORIZACIÓN DE DEPÓSITO EN LA BIBLIOTECA

Yo, D. Juan Santaella Hernández con DNI 74673294, autor del Trabajo Fin de Carrera titulado “Diseño, implementación y caracterización de un radioenlace en la banda ISM de 2.4GHz” realizado en la Universidad de Granada

AUTORIZO: al depósito de dicho Trabajo en la Biblioteca de la Universidad de Granada, y de la visualización a través de Internet.

Granada, a de Septiembre de 2009

Fdo. D. Juan Santaella Hernández

(5)

ÍNDICE

1.- AGRADECIMIENTOS……… 3

2.- INTRODUCIÓN………... 4

2.1 – Motivación... 4

2.2 – Objetivo……….. 5

3.- FAMILIA DE CIRCUITOS INTEGRADOS CC11XX/25XX ……… 8

4.- CARACTERIZACIÓN DEL CIRCUITO INTEGRADO CC2510………. 10

4.1 – Introducción……….. 10

4.2 - Características generales CC2510……….... 11

4.2.1- APLICACIONES CC2510……….. 11

4.2.2- DESCRIPCIÓN GENERAL………... 11

4.3 - Características específicas CC2510... 13

4.3.1- PUERTOS I/O... 13

4.3.2- DESCRIPCIÓN DEL CIRCUITO……….. 15

4.3.2.1- CPU y Periféricos……… 16

4.3.2.2- Administración de Potencia………. 22

4.3.2.2.1- Modos de operación……… 22

4.3.2.3- Radio……… 25

4.3.2.3.1- Descripción………. 25

4.3.2.3.2- Instrucciones ……….. 26

4.3.2.3.3- Registros 27 4.3.2.3.4- Indicadores de calidad (RSSI)……… 28

4.3.2.3.5- Potencia de salida programable ………... 29

4.3.3- EMPAQUETADO………... 30

4.3.3.1- Recomendaciones PCB……… 31

(6)

5.- HERRAMIENTAS DE DESARROLLO EMPLEADAS……….. 32

5.1 - Introducción……….. 32

5.2 – Herramientas………. 33

5.2.1- HARDWARE: CC2510DK………. 33

5.2.1.1- SMARTRF04_EB………... 35

5.2.1.2- CC2510EM………. 42

5.2.2- SOFTWARE ……….. 44

5.2.2.1- IAR Embedded Workbench………. 45

5.2.2.2- SmartRF® Studio……… 47

5.2.2.3- SmartRF® Flash Programmer………... 49

6.- MEDIDAS EXPERIMENTALES DE LA POTENCIA DE SEÑAL RECIBIDA……….. 51 7.- IMPLEMENTACIÓN DE UN SISTEMA INALÁMBRICO PARA MEDIDA DE DISTANCIA Y TEMPERATURA………... 58 7.1 – Introducción……….. 58

7.2 - Descripción del sistema………. 59

7.3 – Desarrollo de la aplicación………... 61 7.3.1- NIVEL SOFTWARE………... 61

7.3.1.1- Transmisor………... 61

7.3.1.2- Receptor………... 74

7.3.1.3- Funciones comunes………. 84

7.3.2- NIVEL HARDWARE………. 86

7.3.2.1- Sensores………. 86

7.3.2.2- Módulo HOST……… 95

7.3.2.3- Módulo TRANSMISOR……….. 97

7.3.2.4- Diseño de un MÓDULO TRANSMISOR AUTÓNOMO… 100 7.4 – Implementación final ………... 113

8.- CONCLUSIONES……… 114

9.- BIBLIOGRAFÍA……….. 115

10.- ANEXO 1: PROYECTO INNOVACIÓN DOCENTE ……….. 116

(7)

1.- AGRADECIMIENTOS

En primer lugar, y como no podía ser de otra manera, quisiera agradecer a mis padres, Juan y Encarnita, y a mi hermana María del Mar, el apoyo que me han dado durante todos estos años, ya que sin ellos estoy seguro de que no hubiera podido escribir estas líneas. A María, por estar a mi lado en cada momento y ayudarme a superar los retos más complicados. A mis amigos por comprenderme y aceptar siempre de buen grado la respuesta “No, que tengo que estudiar”. A mi compañera Lucía por tantas horas de estudio soportando el “a por ellos” de Kiki.

A mi tutor, Francisco Jiménez Molinos, por su amabilidad, predisposición y dedicación durante el desarrollo de este proyecto.

A la Universidad de Granada en general, y a todos mis profesores en particular, por haberme brindado la oportunidad de adquirir unos extensos conocimientos y capacidades.

A todos, Gracias.

“Sólo sé que no sé nada”

(8)

2.- INTRODUCIÓN

2.1 – Motivación

Finalizaba el curso 2007/2008 con los exámenes de Julio y en Octubre comenzaba el nuevo curso 2008/2009. Iba a ser, o mejor dicho, “pretendía” que fuera mi último curso de Ingeniería Superior en Electrónica por la Universidad de Granada (ya que después de algunos años te das cuenta de que no puedes hacer demasiadas cábalas con esta carrera en este sentido) y necesitaba encontrar un proyecto final de carrera.

Mi idea inicial era la de realizar el proyecto durante el periodo lectivo 2008/2009 junto con las demás asignaturas de segundo y de esta manera poder presentarlo para Junio o Septiembre de 2009.

Desde el principio tenía claro que quería desarrollar un proyecto algo más práctico y no demasiado teórico, es decir, un proyecto donde pudiera aplicar los conocimientos adquiridos durante estos años y plasmarlo en una forma experimental de tratar la electrónica.

De esta forma pensé rápidamente en la asignatura de Electrónica de Comunicaciones ya que, en mi opinión, fue una asignatura distinta en comparación a las que había cursado hasta el momento. Esta asignatura tenía una parte teórica interesante y una parte práctica más atractiva aún. Dicha parte concentraba todo el contenido teórico en la construcción práctica de algo muy cercano a la realidad cotidiana como era el caso de un receptor homodino. Aquí, se desarrollaba un proyecto más allá del papel y la teoría cuyo objetivo final estaba claramente definido: se tenía que poder escuchar la cadena SER a 1080 KHz. Por ello decidí hablar con el profesor Francisco Jiménez Molinos, quien impartía esta asignatura, e intentar realizar el proyecto con él.

Me puse en contacto con él y no hubo ningún problema al respecto, por lo que comenzamos a trabajar enseguida en el desarrollo de un radioenlace a partir de los circuitos integrados (CI) de la familia CC25XX de Texas Instrument.

(9)

2.2 – Objetivo

El presente proyecto se enmarca dentro del proyecto de innovación docente

“Nuevas Herramientas para el Aprendizaje de Técnicas Básicas de Medida en el Laboratorio de Electrónica Analógica y para el Desarrollo de Sistemas de RF”.

Como expone el título anterior, la prioridad de este proyecto consiste en el desarrollo de Nuevas Herramientas en el campo de RF. De esta manera, el proyecto fin de carrera que nos ocupa tiene su base en el transceptor (transmisor/receptor) CC2510, un CI actual que se caracteriza fundamentalmente por su bajo coste y consumo de potencia.

Así pues, podemos decir que el presente proyecto intenta cubrir dos grandes metas claramente diferenciadas que se muestran a continuación.

Por un lado tenemos el primer bloque denominado “CARACTERIZACIÓN DEL CIRCUITO INTEGRADO CC2510”. Aquí se intentará describir, de forma general, las características del CI. De esta forma, un futuro usuario que no tenga conocimientos previos sobre este componente, podrá obtener en un tiempo relativamente corto, una visión amplia del mismo. Todo este trabajo podrá servir como punto de partida para posteriores implementaciones en las que se desee añadir funcionalidad inalámbrica a algún sistema a través de radios implementadas con estos CIs o para realizar aplicaciones de radio más complejas (como comunicación entre más de dos unidades, redes de sensores, ...). Por tanto, este apartado tiene como objetivo fundamental, facilitar el camino a futuros trabajos basados en esta tecnología, resumiendo en este documento, los conocimientos adquiridos a partir de la gran cantidad de información procedente de manuales, hojas de características, notas de aplicación etc. Es por ello que se seguirán los siguientes pasos de actuación

• Estudio de los manuales, hojas características y notas de aplicación de los integrados.

• Familiarización con las herramientas de desarrollo para estos circuitos integrados (kit de desarrollo, entorno de programación del MCU, …)

• Caracterización de los circuitos como radio:

 Medidas de rango de alcance en función de la potencia de salida y para diversos esquemas de modulación

(10)

En segundo lugar encontramos el bloque “IMPLEMENTACIÓN DE UN SISTEMA INALÁMBRICO PARA MEDIDA DE DISTANCIA Y TEMPERATURA.”. El desarrollo de este segundo apartado consistirá en la realización de una aplicación concreta a partir del CC2510.

Este sistema electrónico se basará en dos módulos independientes.

Uno de ellos, el transmisor, se encargará de la adquisición de datos. Estos datos se concretan en dos señales analógicas procedentes de dos sensores diferentes. En un lado tenemos un sensor de distancia y en el otro un sensor de temperatura. Este módulo transmisor, tratará estas señales analógicas de manera adecuada, esto es, las convertirá en señales digitales a partir de un ADC. Posteriormente, el transmisor enviará estos datos vía radio, en la frecuencia de 2.4GHz, al módulo receptor o host de una manera continua, ya que se pretende una adquisición de valores en tiempo real. De esta forma el transmisor finalizará su tarea cuando sea desconectado de la fuente de alimentación y volverá, por tanto, a estar en funcionamiento operativo cuando se conecte a la tensión adecuada.

Por su parte, el receptor o host, recibirá los datos procedentes del transmisor, y se encargará de mostrarlos al usuario en tiempo real. Además, este módulo tendrá una interfaz de usuario donde éste podrá interactuar y decidir entre varias opciones, como la posibilidad de visualizar la temperatura del MCU del host.

Como se puede intuir, la construcción del sistema se fundamentará en dos niveles de actuación. Por un lado tendremos un nivel software, donde se programará el dispositivo básico y por otra, encontraremos un nivel hardware que dará sustento físico al propio sistema y que estará formado por los sensores (distancia y temperatura) y los módulos anteriores.

A continuación se muestra un esquema (figura 2.1) del sistema completo con la intención de que el lector conciba una idea general de lo que se propone en este apartado.

(11)

Figura 2.1 – Esquema modular del Radioenlace

En la implementación de este sistema inalámbrico se utilizarán las herramientas de desarrollo que se presentarán en el apartado 5.

De esta forma alcanzaremos el segundo objetivo del presente Proyecto Fin de Carrera, consistente en el diseño e implementación de un radioenlace en la banda ISM de 2.4GHz. Para ello seguiremos los siguientes pasos.

• Realización del programa del MCU que debe controlar la operación de las radios y gestionar la comunicación entre las dos unidades.

• Diseño y realización del radioenlace entre dos placas, cada una portadora de uno de estos circuitos integrados.

(12)

3.- FAMILIA DE CIRCUITOS INTEGRADOS CC11XX/25XX

El progresivo escalado de los dispositivos y circuitos electrónicos ha permitido incluir cada vez más funciones en un único chip, dando lugar a los circuitos integrados conocidos como SoC (system on a chip). El campo de las radiocomunicaciones no podía escapar de esta tendencia y desde hace sólo dos ó tres años se han lanzado al mercado CIs que actúan como transceptores completos que apenas necesitan componentes externos (prácticamente basta con la antena y un cristal) y que, incluso, incluyen el microcontrolador (MCU) para la gestión de la radio y de otros componentes externos, como pueden ser sensores.

En este proyecto se trabajará con los CIs de radio de las familias CC11xx y CC25xx de Texas Instruments. Estos circuitos integrados son transceptores capaces de manejar diferentes esquemas de modulación, con potencia de salida programable, indicador de potencia recibida (RSSI) en el receptor etc. Además, algunas referencias incluyen el MCU para el control de la radio.

Distribución de frecuencias

Para elegir la frecuencia de radio correcta para nuestra aplicación, en primer lugar, debemos decidir la banda en la que queremos operar. La familia de CIs de Texas Instrument, ofrece la posibilidad de trabajar en la banda de 2.4GHz (CC25XX) o en bandas sub-1GHz (CC11XX), con frecuencias inferiores a 1GHz. Este tipo de bandas ISM (Industrial Scientific Medical) están reguladas en función de la distribución geográfica en la que se pretenda trabajar. En la siguiente figura 3.1 se muestran qué bandas de frecuencias están disponibles para cada región.

(13)

Figura 3.1 – Distribución geográfica de frecuencias

En nuestro caso optaremos por la banda de 2.4GHz ya que es una banda libre en toda la superficie terrestre, que posee unas menores restricciones.

En esta banda, Texas Instrument ofrece las siguientes posibilidades en cuanto al tipo de IC que queramos utilizar







 2.4 GHz

CC2400 Transceiver CC2500 Transceiver CC2550 Transmitter CC2510 System-on-Chip

CC2511 System-on-Chip with Integrated USB Controller

Nuestra elección final será el dispositivo CC2510 ya que incorpora ambas funciones de transmisión y recepción, además de incorporar una unidad de microcontrolador (MCU) con las grandes ventajas que esto implica. Este dispositivo será descrito con mayor detalle en las páginas siguientes.

(14)

4.- CARACTERIZACIÓN DEL CIRCUITO INTEGRADO CC2510

4.1 - Introducción

Este apartado pretende descubrir al lector el dispositivo CC2510 de manera general. El objetivo que se pretende alcanzar es el de proporcionar, de manera rápida, unos conocimientos previos del dispositivo. De esta forma iremos analizando las características específicas del IC.

(15)

4.2 - Características generales CC2510

4.2.1- APLICACIONES CC2510

 Aplicaciones en la banda de 2.4 GHz (2400 - 2483.5 MHz)

 Dispositivos electrónicos

 Teclados y ratones inalámbricos

Comunicación inalámbrica de audio

Control remoto

Equipamiento deportivo inalámbrico

Telemetría de baja potencia

4.2.2- DESCRIPCIÓN GENERAL

El CI CC2510 es un transceptor system-on-chip (SoC) integrado de bajo coste que trabaja en la banda de 2.4GHz y está diseñado para construir aplicaciones inalámbricas de baja potencia.

El CC2510 es un dispositivo actual que combina las características de RF del transceptor CC2500 junto con las del microcontrolador estándar 8051 MCU.

Una de sus ventajas es su reducido tamaño (6x6 mm). Esto implica que sea muy adecuado en aplicaciones donde las dimensiones sean un factor importante a tener en cuenta. Otra ventaja es su bajo consumo lo que representa una característica indispensable en el diseño de cualquier sistema electrónico.

A continuación se describen brevemente las propiedades más importantes del dispositivo

Radio

- Transceptor de RF de alto rendimiento basado en el CC2510 - Gran selectividad en el receptor

- Alta sensibilidad (-103 dBm a 2.4 kBaud) - Data rate programable hasta 500kBaud - Potencia de salida programable hasta 1dBm - Rango de frecuencias : 2400-2483.5 MHz

(16)

Consumo

- Bajo consumo (RX: 17.1 mA a 2.4 kBaud - TX: 16 mA a −6 dBm de potencia de salida)

- 0.3 µA en el modo PM3 (modo de consumo de potencia más bajo)

MCU, Memoria y Periféricos - Microcontrolador 8051

- 8/16/32 kB de memoria programable flash. Esta característica se añade al nombre del dispositivo  CC2510Fx, donde x ~ 8, 16 o 32 kB.

- 1/2/4 kB de memoria RAM

- Interface I2S (Inter-IC Sound) para audio - 7-12 bit ADC con 8 canales de entrada

- 128 bits AES (Advanced Encryption Standard) de seguridad - Gran funcionalidad del DMA

- 2 canales USARTs

- 1 Timer (contador) de 16 bit en modo DSM (Delta Sigma Modulator) - 3 Timers de 8 bit de uso general

- 21 pins GPIO (General Purpose I/O pins)

General

- Rango de tensiones de alimentación (2.0 – 3.6) V

(17)

4.3 - Características específicas CC2510

4.3.1- PUERTOS I/O

En la figura 4.1 y en la tabla 4.1 se presentan los pins de Entrada y Salida del CC2510.

Figura 4.1 – Vista Superior del CC2510Fx

(18)

Tabla 4.1 – Correspondencia de pines del CC2510Fx

(19)

4.3.2- DESCRIPCIÓN DEL CIRCUITO

El diagrama de bloques del CC2510 se muestra en la figura 4.2. Los diferentes módulos se dividen en tres categorías: módulos referentes a la CPU, módulos relacionados con la Potencia Consumida y un tercer grupo basado en la propia Radio.

Éstos serán analizados en los siguientes subapartados.

Figura 4.2 – Diagrama de Bloques del CC2510Fx

(20)

4.3.2.1- CPU y Periféricos

CPU

El núcleo del microcontrolador se basa en una arquitectura CPU 8051 formada por tres buses de acceso a memoria diferentes (SFR, DATA y CODE/XDATA), una interfaz de depuración y una amplia unidad de interrupción que proporciona dieciocho formas distintas de interrupciones. La representación en el diagrama de bloques se muestra en la (figura 4.3).

Figura 4.3 – Representación de la CPU

PERIFÉRICOS

El módulo conocido como memory arbitrator (figura 4.4) es el corazón del sistema, ya que conecta la CPU y el controlador DMA con las memorias físicas y todos los periféricos a través del bus SFR. Esta memoria tiene cuatro puntos de acceso mediante los cuales se puede mapear una de las tres memorias físicas disponibles en el CC2510Fx: 1/2/4 KB SRAM, 8/16/32 KB flash memory y los registros RF/I2S.

Además, la memory arbitrator es la encargada de gestionar los accesos simultáneos a la misma memoria física.

(21)

El bus SFR está dibujado de manera conceptual en el diagrama de bloques anterior (figura 4.2) como un bus común que conecta todos los módulos periféricos con la memory arbitrator. Por otra parte, este bus (figura 4.5) proporciona acceso a los registros de la radio y del I2S.

Figura 4.5 – Bus SFR

La memoria 1/2/4 KB SRAM es un tipo de memoria SRAM de baja potencia que retiene la información contenida en ella en los modos de operación PM2 y PM3.

Estos modos de operación serán descritos posteriormente.

Figura 4.6 – Interconexión de la memoria SRAM

Por su parte, el bloque de memoria flash 8/16/32 proporciona una memoria programable no volátil para el dispositivo estando asociada a los espacios de memoria CODE y XDATA. La siguiente tabla (Tabla 4.2) nos muestra los diferentes tipos de dispositivos CC2510 atendiendo a su memoria flash.

Tabla 4.2- Opciones de la Memoria Flash del CC2510

(22)

Figura 4.6 – Interconexión de la Memoria Flash

Los diferentes tipos de dispositivos CC2510Fx, únicamente difieren en la capacidad de la memoria flash. Esta memoria se programa a través del Flash Controller.

Existen cinco canales disponibles en el sistema para el controlador DMA . Éste es capaz de controlar la memoria utilizando un espacio de memoria unificado y consta, además, de un acceso a todas las unidades físicas de memoria. Cada canal se puede configurar atendiendo a diferentes parámetros como son el modo de transferencia, el modo de direccionamiento o el evento de disparo, a partir de los descriptores DMA.

Figura 4.7 – Representación modular del DMA

El controlador de interrupciones proporciona dieciocho tipos diferentes de fuentes de interrupción, divididos en seis grupos, cada uno de los cuales está asociado a uno de los cuatro tipos de prioridades de interrupción.

La interfaz de depuración implementa un tipo de interfaz serie propietaria que se usa para depurar el propio circuito. A través de esta interfaz es posible borrar la memoria flash, controlar los osciladores activados, parar y empezar la ejecución de un programa usuario o ejecutar instrucciones adicionales en el 8051.

(23)

Figura 4.8 – Interconexión de Interfaz de Depuración y la CPU

El controlador de I/O es responsable de todos los pines de entrada-salida. La CPU puede configurar los módulos periféricos controlando ciertos pins mediante un software de control. En este caso, cada pin puede ser configurado como entrada o salida y además es posible configurar el modo de entrada (pullup, pull-down o triestado).

Cada módulo periférico puede conectarse a un pin I/O eligiendo entre dos tipos diferentes de localizaciones, lo que implica una mayor flexibilidad en el desarrollo de aplicaciones.

Figura 4.9 – Controlador de I/O

El Sleep Timer es un contador de baja potencia que utiliza un oscilador de cristal de 32.768 kHz o un oscilador RC de baja potencia como fuente de reloj. El Sleep Timer funciona continuamente en todos los modos de operación excepto en el modo activo y en el modo PM3. Se usa típicamente para salir del modo PM0, PM1 o PM2.

El CC2510Fx dispone de un Watchdog Timer que permite resetear el sistema en el caso de que el firmware falle. Cuando está activado, este timer debe ser inicializado periódicamente para evitar que el dispositivo se resetee cuando el timer alcanza su valor final.

(24)

Timer1 es un contador o timer de 16 bits que realiza las funciones típicas de cualquier timer, ya que es capaz de capturar entradas, comparar registros e implementar funciones PWM. Este contador dispone de un prescaler programable y tres canales de captura y comparación.

Timer2 (MAC TIMER) es otro timer especialmente diseñado para soportar protocolos de tipo time-slotted en software. El contador es capaz de configurar su periodo a través de un prescaler programable.

Timer3 y Timer4 son contadores de 8 bits de uso general con características funcionales típicas como comparación y programación del prescaler. Para esto, dispone de 2 canales los cuales pueden ser usados como salidas de PWM.

Figura 4.10 – Contadores disponibles en el dispositivo CC2510

USART0 y USART1 son dos registros que pueden ser configurados como SPI master/slave (modo síncrono) o como UART (modo asíncrono). Proporcionan control de flujo ya que actúan como módulos de doble almacenamiento (buffering) en proceso de Tx y Rx.

Figura 4.11 – Registros USART0 y USART1

(25)

El núcleo de encriptación/desencriptación (AES) permite al usuario encriptar y desencriptar los datos usando un algoritmo AES de 128 bits.

El CC2510 dispone de un Conversor Analógico-Digital (ADC) que permite tener una resolución entre 7 y 12 bits. Las conversiones de audio y DC disponen de ocho canales independientes. Las entradas de estos canales pueden ser seleccionadas como single ended (entrada absoluta) o differential extern signal (entrada diferencial).

La referencia de tensión puede ser de cuatro tipos, referencia interna (2.8V-3.6V), VDD (referencia externa, nunca mayor de 3.6V), single ended o differential external signal.

El ADC también dispone de un canal asignable a un sensor de temperatura interno que es capaz de adquirir la temperatura del microcontrolador.

Figura 4.12 – Núcleo de Encriptación

El registro I2S (Inter-IC Sound) puede ser utilizado para enviar/transmitir muestras de audio a o desde un procesador externo de sonido. Estas muestras pueden tener una resolución mayor de 16 bits, aunque este parámetro deberá ser configurado en el registro correspondiente. Además, permite configuraciones del tipo master/slave y soporta los modos mono y stereo.

Figura 4.13 – Registro I2S

(26)

4.3.2.2- Administración de Potencia

En esta sección se describe la manera de gestionar la Potencia Consumida por el dispositivo, es decir, se muestran una serie de métodos o modos mediante los cuales se puede alcanzar un consumo óptimo de potencia en un a aplicación concreta. Esto se concreta a partir del módulo de Administración de Potencia, que tiene la capacidad de controlar el uso del modo activo, los modos de potencia y la señal de reloj como veremos a continuación.

4.3.2.2.1- Modos de operación

El CC2510 utiliza diferentes modos que permiten actuar al dispositivo en operaciones de baja potencia. Esto se consigue desconectando las fuentes de potencia de los módulos, lo que permite un bajo consumo de potencia estático. Además se reduce la frecuencia de reloj y de los osciladores por lo que el consumo potencia dinámica se reduce.

El CC2510 tiene un modo activo y cuatro modos de potencia consumida configurables (PM0, PM1, PM2 y PM3), de los cuales, el modo PM3 es el modo en el que el dispositivo consume menos potencia. Las características fundamentales de estos modos de operación se reflejan en la siguiente tabla (Tabla 4.3)

Tabla 4.3 – Modos de Operación

(27)

MODO ACTIVO

Es el modo de funcionamiento fundamental. El regulador de voltaje del núcleo digital está activado y el oscilador RC de alta velocidad y/o el oscilador de cristal de alta velocidad también están en funcionamiento. Además, el oscilador RC de baja potencia o el oscilador de 32.768 kHz de cristal está también activado.

PM0

Aquí ocurre lo mismo que en el modo activo, con la salvedad que la CPU está en un estado de espera mientras no se esté ejecutando ningún código.

PM1

El regulador de voltaje de la parte digital está activo. En cambio ni el oscilador RC de alta velocidad ni el oscilador de cristal de alta velocidad están en funcionamiento. Por su parte, el oscilador RC de baja potencia o el oscilador de 32.768 kHz de cristal está también activado. El sistema volverá al modo activo cuando exista una interrupción o cuando el contador Sleep Timer llegue al final.

PM2

El regulador de voltaje de la parte digital está desactivado. Ni el oscilador RC de alta velocidad ni el oscilador de cristal de alta velocidad están en funcionamiento. Por su parte, el oscilador RC de baja potencia o el oscilador de 32.768 kHz de cristal está también activado. El sistema volverá al modo activo cuando exista una interrupción o cuando el contador Sleep Timer llegue al final.

PM3

El regulador de voltaje de la parte digital está desactivado. Además, ninguno de los osciladores está funcionando. El sistema volverá al modo activo cuando exista una interrupción o cuando el contador Sleep Timer llegue al final.

Cuando una interrupción externa se produce en PM1, PM2 o PM3 o el Sleep Timer finaliza su cuenta en PM1 o PM2, el sistema retornará al modo activo y el código se ejecutará desde el lugar donde se quedó (cuando entró en modo PM1/2/(3). En cambio desde el modo PM0 el sistema volverá al modo activo ejecutando el código

(28)

Por su parte, un reseteo del chip que se produzca desde cualquier modo de operación implicará un retorno al modo activo en el cual, el código comenzará a ejecutarse desde su inicio.

(29)

4.3.2.3- Radio

4.3.2.3.1- Descripción

Las características referentes a la radio del transceptor de RF CC2510, se basan en la tecnología del dispositivo CC2500. De esta forma, se requieren muy pocos componentes externos para implementar un circuito de RF óptimo.

Figura 4.14 – Diagrama modular de la Radio

En la figura anterior (figura 4.14) se muestra un diagrama de bloques simplificado formado por los distintos módulos de la radio del CC2510. De aquí se puede extraer que la señal de RF recibida es amplificada por el LNA (Low-Noise- Amplifier) y separadas las componentes en fase y en cuadratura (I y Q) a la frecuencia intermedia IF. En esta frecuencia intermedia, las señales I/Q son digitalizadas a partir de los ADC. De esta manera, el Control de Ganancia Automático (AGC), el filtrado o la demodulación son llevadas a cabo digitalmente. La parte del transmisor del CC2510 está basada en la síntesis directa de la frecuencia de RF. El sintetizador de frecuencia incluye un completo on-chip LC VCO y un desplazador de fase de 90 grados para generar las señales I y Q a partir de la conversión, en los mezcladores de señales, en el modo de transmisión. La alta velocidad del oscilador de cristal genera la frecuencia de

(30)

ADC y en la parte digital. Una interfaz SFR es usada como buffer de datos de la CPU.

Al estado y la configuración de los registros se accede a partir de los registros mapeados de la memoria XDATA.

4.3.2.3.2- Instrucciones

La CPU usa una serie de instrucciones para controlar las operaciones de la radio. Estos comandos pueden ser vistos como unas instrucciones de un solo Byte que inician una secuencia interna en la radio. Los comandos son utilizados para activar el sintetizador de frecuencia, configurar el modo de recepción o transmisión etc. En la siguiente tabla se describen dichos comandos.

Tabla 4.4 - Comandos

(31)

4.3.2.3.3- Registros

La radio se configura a través de una serie de registros de RF. Estos registros están mapeados en espacio de memoria XDATA. Además la propia configuración de los registros nos muestra información acerca del estado de la radio. La siguiente figura (figura 4.15) muestra dichos registros dentro del espacio de memoria existente.

Figura 4.15 – Espacio de Memoria

(32)

4.3.2.3.4- Indicadores de calidad (RSSI)

El RSSI (Receive Signal Strength Indicator) proporciona una estimación del nivel de la señal en el canal elegido. Este valor está basado en la ganancia de corriente en el receptor Rx y el nivel de señal medido en el canal. En el modo de recepción, el valor del RSSI puede ser leído de manera continua a partir del propio registro RSSI.

Dicho valor se muestra en dBm. De esta forma, se muestra a continuación una gráfica (figura 4.16) que nos muestra valores típicos de RSSI frente a la potencia de entrada para distintos Data Rates.

Figura 4.16 – Valores típicos del RSSI frente al Nivel de Potencia de Entrada [2]

(33)

4.3.2.3.5- Potencia de salida programable

Una característica importante del dispositivo CC2510 es que podemos programar la potencia de salida, de manera que podemos realizar aplicaciones específicas atendiendo a la realidad del entorno exterior. De esta manera, este nivel de potencia puede ser configurado a través del registro PATABLE0. Así, en la siguiente tabla (Tabla 4.5) se muestran las configuraciones típicas de este registro en relación a la potencia de salida.

Tabla 4.5 – Configuraciones registro PATABLE en función de la potencia deseada

(34)

4.3.3- EMPAQUETADO

En este apartado se muestra el empaquetado del dispositivo, es decir, las dimensiones del mismo. Las medidas se dan en mm y los ángulos en grados.

Figura 4.17 – Dimensiones típicas de empaquetado

(35)

4.3.3.1- Recomendaciones PCB

En la figura 4.21 se muestran las recomendaciones del fabricante a la hora de crear el footprint del dispositivo CC2510. Es muy recomendable seguir estas instrucciones ya que el IC tiene unas dimensiones muy reducidas.

Figura 4.18 – Recomendaciones en la creación de la PCB

(36)

5.- HERRAMIENTAS DE DESARROLLO EMPLEADAS

5.1 – Introducción

En este punto nos encontramos en el inicio del segundo gran bloque de este Proyecto Fin de Carrera. Esto es debido a que en este apartado se describirán las herramientas de desarrollo empleadas, tanto a nivel software como a nivel hardware, utilizadas en la creación de la aplicación práctica. La implementación de dicha aplicación se plasmará en el capítulo 7 de este documento.

(37)

5.2 - Herramientas

En esta parte se describe de manera general las herramientas de desarrollo empleadas. Estas herramientas se hacen indispensables en al creación de cualquier aplicación, ya que dan un soporte sobre el cual es posible implementar, de manera práctica, cualquier idea basada en el CC2510. Con este material de ayuda podemos actuar a dos niveles fundamentales: nivel hardware y nivel software que describiremos a continuación.

5.2.1- HARDWARE: CC2510DK

El Hardware de desarrollo empleado es un conjunto elementos que se concretan en lo que se conoce como el kit de desarrollo CC2510DK (CC2510 Development Kit).

Esta plataforma de desarrollo pertenece a la compañía Texas Instruments y permite la evaluación, el desarrollo y el prototipado de aplicaciones reales basadas en el dispositivo CC2510 de la propia compañía.

El CC2510DK se divide en dos partes fundamentalmente. Por un lado encontramos la placa SmartRF04_EB (Evaluation Board) está formada por componentes discretos como un LCD, una serie de LEDs, potenciómetros etc. Por otra parte encontramos el CC2510EM (Evaluation Module). Éste es un pequeño módulo donde se sitúa el propio CC2510 y los elementos necesarios en el diseño de la capa de RF. En los siguientes apartados se amplían las características de estas dos placas de prototipado.

El contenido de este kit de desarrollo es el siguiente y se muestra en la figura 5.1.

• 2 x SmartRF04EB

• 2 x Módulos de Evaluación (CC2510EM)

• 2 x Antenas de 2.4GHz

• 2 x Cables USB

• 1 x 10 Cable de prototipado para tarjetas externas

• Guía de inicio rápida al kit de desarrollo

(38)

Figura 5.1 – Kit de desarrollo CC2510DK

(39)

5.2.1.1- SMARTRF04_EB

En primer lugar se presenta la SmartRF04_EB. Esta placa de desarrollo incluye una serie de funciones y aplicaciones que permite testear de manera rápida la interfaz RF y los módulos periféricos del chip CC2510.

En la siguiente figura (figura 5.2) se presentan los principales componentes de la SmartRF04_EB

Figura 5.2 – Diagrama de Módulos de la tarjeta SmartRF04_EB

El cable USB procede del PC y se conecta, en la propia EB, al controlador de USB. El USB MCU es un C8051F320 de Silicon Labs. El único propósito de este controlador es el de traducir las señales USB a la interfaz del módulo SoC (Chipcon System on Chip) cuando éste está conectado. Esta interfaz incluye DC (Depuración señal Reloj) y DD (Depuración de Datos). Además, la mayoría de los módulos periféricos del chip están conectados al controlador USB, lo que implica, que los puertos I/O del controlador USB y del SoC están relacionados en pines semejantes.

Cuando el controlador USB detecta el módulo SoC, todas las señales I/O del mismo se ponen en modo triestado (alta impedancia). De esta manera el controlador USB no tiene influencia ninguna en estas líneas I/O.

(40)

La siguiente tabla (Tabla 5.1) muestra el uso de los pines I/O del USB MCU.

Tabla 5.1 – Pines del USB MCU

(41)

La siguiente figura (Figura 5.3) muestra la SmartRF04_EB junto con la descripción de cada uno de sus componentes.

Figura 5.3 – SmartRF04_EB

Los principales módulos de esta placa de desarrollo se especifican a continuación.

(42)



 Fuente de alimentación SmartRF04_EB

La propia placa tiene diferentes vías de alimentación. Si existen varias tensiones conectadas a la placa, la más alta será la que predominará.

Figura 5.4 – Interruptor de Alimentación

El interruptor de alimentación S3 debe estar en la posición correcta dependiendo de la fuente alimentación usada. De esta manera, si se aplican 3.3V, utilizando el bloque terminal, el interruptor debería estar en la posición de la izquierda. En otro caso, éste debe estar en la posición derecha.

Figura 5.5 – Conector de Alimentación

(43)

La SmartRF®04EB puede ser alimentada por diferentes vías

Conector DC jack (4-10V)

Laboratory power supply (4-10V)

USB power

Battery power (9V)

Sea cual sea la fuente de alimentación, la propia placa de desarrollo regula la tensión a 3.3V, siendo muy importante no alimentar directamente la EM a más de 3.6V.







 Interfaz USB

La interfaz USB conecta el PC con la EB y se usa para poder utilizar el software de programación correspondiente que veremos posteriormente.







 Interfaz RS-232

Esta interfaz puede ser utilizada para comunicar diferentes dispositivos con la propia EB.



 Interfaz de Usuario

La SmartRF04_EB dispone de un joystick y un pulsador como dispositivos de entrada para un usuario. Además existen cuatro LEDs y un display LCD de 2x16 caracteres como dispositivos de salida.







 Interfaz de Audio

La EB incluye un micrófono de entrada y un auricular de salida para configurar múltiples aplicaciones de este tipo.







 Conectores I/O

Estos conectores extraen las señales procedentes de los conectores de la EM.

Esto permite un acceso sencillo a las señales de I/O además de la posibilidad de conexión de placas prototipo. Estas relaciones, entre pines de EM y conectores, se muestran en la siguiente tabla (Tabla 5.2). En el desarrollo de cualquier aplicación, es

(44)

necesario tener en cuenta estas relaciones ya que nos permitirán depurar la aplicación concreta diseñada.

Tabla 5.2 – Conectores I/O

Figura 5.6 – Conectores I/O

En este sentido, hay que tener en cuenta un detalle muy importante a la hora de utilizar correctamente estos conectores. Como se observa en la tabla anterior, el pin3 del conector A, por ejemplo, conecta el pin P0_0 de la EM y el micrófono de la EB. De esta manera la señal de salida que encontramos en el conector A relaciona las dos señales anteriores al mismo tiempo. Esto es debido a que existe una serie de resistencias de baja impedancia (R_0ohm) que unen estos dos módulos como se observa en la figura 5.7.

(45)

Figura 5.7 – Evaluation Board Signal flow

Si queremos obtener únicamente la señal procedente de la EM, es decir, del propio CC2510, tendremos que eliminar estas resistencias. Para ello debemos desoldar, literalmente, las propias R_0ohm de la EB. Para ello debemos tener en cuenta la relación entre cada módulo de la EM y la EB. Esta información la podemos encontrar en la tabla 5.1.

(46)

5.2.1.2- CC2510EM

En este apartado se describe el módulo CC2510_EM. Esta placa contiene el propio dispositivo CC2510 y se monta sobre la SmartRF04_EB a partir de unos conectores de superficie disponibles. La figura 5.8 muestra la EM.

Figura 5.8 – CC2510EM

La característica fundamental de este módulo, reside en el hecho de que todos los componentes de RF necesarios (cristal, antena etc.) para una correcta Tx/Rx están montados sobre la propia placa. Además, en ésta se encuentra el CC2510. Así, lo único que hay que hacer, es colocar la EM sobre la EB.

Finalmente, el hardware completo de desarrollo sería el mostrado en la figura 5.9.

(47)

Figura 5.9 – SmartRF04_EB + CC2510EM

(48)

5.2.2- SOFTWARE

En este apartado corresponde hablar del software empleado en el desarrollo realizado. Este software se divide en tres programas diferentes:

-IAR Embedded Workbench -SmartRF® Studio

-SmartRF® Flash Programmer

El primero de ellos se emplea en el diseño del código que utilizaremos en el microcontrolador. El segundo se encarga de la optimización en las medidas de RF. Por último, el tercer programa se utiliza para programar la memoria del propio CC2510.

A continuación describiremos de forma detallada estos programas.

(49)

5.2.2.1- IAR Embedded Workbench

El IAR Embedded Workbench® IDE es un Entorno de Desarrollo Integrado que permite el diseño y la gestión completa de proyectos basados en aplicaciones embebidas. Las características generales de este software son las siguientes:

● Lenguaje de alto nivel IAR C/C++

● Compilador de alta optimización IAR C/C++

● Ensamblador IAR

● IAR XLINK Linker

● Librerías IAR y IAR XLIB

● Potente editor de desarrollo

● Depurador IAR C-SPY®

Este programa es compatible para una gran variedad de microprocesadores y microcontroladores de segmentos de 8, 16 y 32 bits sin ser necesario unos grandes conocimientos previos sobre el Entorno de Desarrollo. Esto es posible debido a la eficiente interfaz de Windows de desarrollo y depuración, lo que proporciona un aprendizaje rápido de dicho software.

El programa IAR Embedded Workbench® IDE viene con múltiples librerías de funciones que permiten al usuario obtener un control absoluto de un proyecto de desarrollo, empleando diferentes lenguajes y niveles de programación como, por ejemplo, C, C++ o lenguaje ensamblador.

En particular, en lo que a este proyecto se refiere, se usará este Entorno de Desarrollo Integrado para construir el código, en lenguaje C/C++, del programa que correrá en el microcontrolador. Es decir, utilizaremos este software para obtener un pequeño programa que gestionará las funciones del dispositivo CC2510, esto es, activar pines I/O, utilizar los módulos de los periféricos (Radio, DMA etc.), interrupciones o cambiar los registros internos del chip.

El entorno gráfico que utiliza el IAR Embedded Workbench® IDE se presenta en la figura 5.10.

(50)

Figura 5.10 – IAR Embedded Workbench® IDE

(51)

5.2.2.2- SmartRF® Studio

Como se ha dicho anteriormente, este programa se encarga de la optimización en las medidas de RF. Es decir, el software permite, de manera sencilla, tener acceso directo a todos los registros del dispositivo CC2510. De esta manera, sabemos en todo momento la información contenido en los mismos, por lo que podemos depurar correctamente cualquier aplicación a través del SmartRF® Studio. Además desde el propio programa, el usuario puede modificar dichos registros, lo que implica que éste puede cambiar parámetros como el tipo de modulación utilizada en el módulo de la radio, los modos y direcciones de funcionamiento de las I/O, la función del ADC o el control del DMA.

La interfaz de usuario es sencilla, lo que permite un fácil manejo del programa.

De esta forma, al conectar el hardware (SmartRF04_EB + CC2510EM) al PC (donde se instala el SmartRF® Studio), el propio programa reconoce el dispositivo y con una simple pulsación tenemos acceso a los registros internos del CC2510.

A continuación se muestran dos figuras; figura 5.11 y figura 5.12 en las que se presenta esta interfaz.

Figura 5.11 – Interfaz del SmartRF® Studio1

(52)

Figura 5.12 – Interfaz del SmartRF® Studio2

Como se observa, la visualización y el acceso a los registros del chip es muy sencillo.

Por otro lado, el programa puede cargar el firmware del MCU en la SmartRF04_EB, lo que hace posible el control del USB.

Además, otra característica importante de este software es la posibilidad de comprobar la calidad de un radio enlace. Esto es posible ya que se pueden medir parámetros como el RSSI (Receive Signal Strength Indicator), que se obtiene directamente de un registro específico, o el PER (Packet Error Rate), que nos indica el porcentaje de paquetes que se pierden al ser transmitidos. Esto anterior, combinado con la posibilidad de modificar el tipo de modulación, el Bit-Rate, o el número de paquetes transmitidos, hacen de este programa sea una herramienta fundamental en el desarrollo

(53)

5.2.2.3- SmartRF® Flash Programmer

Por último nos encontramos con el SmartRF® Flash Programmer. Este software permite programar la memoria flash del CC2510. Dispone, igualmente, de una interfaz gráfica amable, lo que permite programar el CC2510 fácilmente.

Los pasos a seguir son los siguientes

 Creamos el código en lenguaje de alto nivel C/C++ con IAR Embedded Workbench.

 Compilamos el código generando un archivo .HEX

 En el SmartRF® Flash Programmer indicamos la ruta del archivo .HEX anterior.

 Cargamos el programa en el CC2510 con diferentes posibilidades:

i) Borrar el contenido de la memoria flash y cargar el nuevo código.

ii) Borrar, cargar y verificar.

iii) Cargar a continuación del último código.

iv) Verificar.

v) Leer el archivo .HEX de la memoria flash.

La Interfaz Gráfica de Usuario (GUI) descrita anteriormente se muestra a continuación en la figura 5.13.

(54)

Figura 5.13 – Interfaz del SmartRF® Flash Programmer

(55)

6.- MEDIDAS EXPERIMENTALES DE LA POTENCIA DE SEÑAL RECIBIDA

A continuación se muestran las medidas experimentales realizadas con el dispositivo CC2510. Estos datos corresponden a una representación del parámetro RSSI (Indicador de la Potencia de la Señal Recibida) frente a la distancia. La nota de diseño DN018 [11] muestra una gráfica en la que se observan estos parámetros a diferentes alturas, tal y como se muestra en la siguiente figura (Figura 6.1).

Figura 6.1 – RSSI a 7cm, 31cm y 115cm de elevación

El objetivo fundamental de este apartado es ampliar la zona comprendida entre 0 y 10 metros, ya que nuestra aplicación tendrá sentido dentro de este rango de distancias.

De esta manera podremos optimizar nuestro desarrollo (en cuanto a consumo de potencia) atendiendo a datos experimentales.

(56)

Siguiendo esta línea de estudio, podemos decir que los parámetros configurables en el dispositivo CC2510 para poder desarrollar una gráfica similar a la anterior mediante el software SmartRF, que se describe en el capítulo 5, son los siguientes

PARÁMETROS CONFIGURABLES

1) Packet Lenght  Longitud de los paquetes que van a ser transmitidos En nuestro caso elegimos un valor fijo intermedio de 10 Bytes.

* 10

2) Packet Count  Número de paquetes que van a ser transmitidos

Aquí dejamos un número de paquetes fijo de (200) es recomendable seleccionar un valor alto para que el error en la medida sea pequeño.

* 200

3) Preset  Modulación deseada y data rate.

Seleccionamos tres configuraciones posibles para obtener diferentes resultados.

* 10 KBaud

* 250 KBaud

* 500 KBaud

4) Potencia de Salida  Potencia configurable del emisor

Nos centramos en dos valores. Uno de ellos es un valor intermedio y el otro es el máximo posible.

* -20 dbm (intermedia)

* +1 dbm (máxima)

Por su parte, seleccionamos una altura de 41 cm ya que es un valor comprendido entre los 7cm y los 115cm que se pueden observan en la gráfica anterior.

5) Altura  Altura del CC2510EM

Obtenemos valores para una altura concreta

*41cm

(57)

De esta forma obtenemos los siguientes resultados experimentales.

RSSI (10 Kbaud)

-74 -64 -54 -44 -34

0 2 4 6 8 10

Distancia (m)

RSSI (dBm)

-20dBm +1dBm

Polinómica (+1dBm) Polinómica (-20dBm)

Figura 6.2 – RSSI a 10Kbaud

Los resultados se han ajustado mediante un polinomio de 6º orden, dando lugar a las siguientes expresiones

 +1dBm

y = 0,0005x6 - 0,0133x5 + 0,1367x4 - 0,7134x3 + 2,7401x2 - 10,884x - 25,404

 -20dBm

y = 0,0037x6 - 0,09x5 + 0,8063x4 - 3,3068x3 + 7,0029x2 - 13,638x - 44,589

(58)

RSSI (250 Kbaud)

-79 -69 -59 -49 -39 -29

0 2 4 6 8 10

Distancia (m)

RSSI (dBm)

-20dBm +1dBm

Polinómica (+1dBm) Polinómica (-20dBm)

Figura 6.3 - RSSI a 250Kbaud

Los resultados se han ajustado mediante un polinomio de 6º orden, dando lugar a las siguientes expresiones

 +1dBm

y = 0,005x6 - 0,1253x5 + 1,1742x4 - 5,1921x3 + 11,757x2 - 18,879x - 22,817

 -20dBm

y = 0,0012x6 - 0,0325x5 + 0,3586x4 - 2,1227x3 + 7,5909x2 - 17,96x - 44,605

(59)

RSSI (500 Kbaud)

-79 -69 -59 -49 -39 -29

0 2 4 6 8 10

Distancia (m)

RSSI (dBm)

-20dBm +1dBm

Polinómica (+1dBm) Polinómica (-20dBm)

Figura 6.4 - RSSI a 500Kbaud

Los resultados se han ajustado mediante un polinomio de 6º orden, dando lugar a las siguientes expresiones

 +1dBm

y = 0,0036x6 - 0,0912x5 + 0,8761x4 - 4,0847x3 + 10,277x2 - 18,814x - 22,292

 -20dBm

y = 0,005x6 - 0,1329x5 + 1,3617x4 - 6,7727x3 + 17,347x2 - 25,672x - 42,301

(60)

A continuación se presentan una serie de gráficas, en donde se compara (para una misma potencia de salida) la influencia del bit rate en el valor del RSSI.

RSSI (-20 dBm)

-79 -74 -69 -64 -59 -54 -49

-44 0 1 2 3 4 5 6 7 8 9

Distancia (m)

RSSI (dBm)

10Kbaud -250Kbaud 500Kbaud

Figura 6.5 -20dBm de Potencia de Salida

RSSI (+1 dBm)

-60 -55 -50 -45 -40 -35 -30 -25

0 1 2 3 4 5 6 7 8 9

Distancia (m)

RSSI (dBm)

10Kbaud 250Kbaud 500Kbaud

Figura 6.6 +1dBm de Potencia de Salida

(61)

A la vista de estos resultados experimentales, podemos concluir que para optimizar el consumo de potencia se deben atender a las siguientes consideraciones:

1) Obviamente, la potencia de salida influye en el valor del RSSI ya que cuanto mayor es aquella, mejor es el valor del propio RSSI. Por el contrario cuando aumentamos la potencia de salida aumentamos el consumo del dispositivo.

2) En cambio, el Datarate no influye en el valor del RSSI y por lo tanto, éste sólo depende de la potencia de salida.

3) Para un enlace con un Datarate promedio bajo (10KBaud) se producirá un aumento en el tiempo del modo activo y por tanto un aumento en el consumo medio.

4) Usando un Datarate alto (500KBaud) se reducirá el tiempo en el modo activo y por tanto disminuirá el consumo de corriente de forma significativa. Además, reduciendo el tiempo en el modo activo se reducirá la probabilidad de colisión con otros sistemas como por ejemplo redes WLAN o Bluetooth.

5) Como conclusión final podemos decir que dependiendo de la distancia entre los dispositivos y de la fiabilidad pretendida (teniendo en cuenta condiciones de interferencia con otros sistemas) necesitaremos elegir una potencia de salida y un Datarate adecuado para llegar a un compromiso entre el consumo del dispositivo y el cumplimiento de las condiciones del sistema desarrollado.

(62)

7.- IMPLEMENTACIÓN DE UN SISTEMA INALÁMBRICO PARA MEDIDA DE DISTANCIA Y TEMPERATURA.

7.1 – Introducción

En este apartado nos situamos claramente dentro del segundo bloque del presente proyecto. Después de familiarizarnos con las herramientas de desarrollo necesarias para la creación del sistema electrónico, pasaremos a utilizarlas de manera práctica, sin perder de vista los dos objetivos marcados para este bloque.

• Realización del programa del MCU que debe controlar la operación de las radios y gestionar la comunicación entre las dos unidades.

• Diseño y realización del radioenlace entre dos placas, cada una portadora de uno de estos circuitos integrados.

Otra cuestión que hay que tener en mente, antes de empezar a describir el sistema, es que la base del desarrollo de éste, se fundamenta en el CC2510. Es decir, este dispositivo controlará todas las situaciones posibles que se presenten, siendo parte imprescindible en la implementación de la aplicación.

(63)

7.2 - Descripción del sistema

Aquí haremos una descripción general del propio sistema electrónico que queremos desarrollar. El sistema consta de dos módulos independientes.

Uno de ellos, el transmisor, se encargará de la adquisición de datos. Estos datos se concretan en dos señales analógicas procedentes de dos sensores diferentes. En un lado tenemos un sensor de distancia y en el otro un sensor de temperatura. Este módulo transmisor, tratará estas señales analógicas de manera adecuada, esto es, las convertirá en señales digitales a partir de un ADC. Posteriormente, el transmisor enviará estos datos vía radio, en la frecuencia de 2.4GHz, al módulo receptor o host de una manera continua, ya que se pretende una adquisición de valores en tiempo real. De esta forma el transmisor finalizará su tarea cuando sea desconectado de la fuente de alimentación y volverá, por tanto, a estar en funcionamiento operativo cuando se conecte a la tensión adecuada.

Por su parte, el receptor o host, recibirá los datos procedentes del transmisor, y se encargará de mostrarlos al usuario en tiempo real. Además, este módulo tendrá una interfaz de usuario donde éste podrá interactuar y decidir entre varias opciones, como la posibilidad de visualizar la temperatura del MCU del host.

Como se puede intuir, la construcción del sistema se fundamentará en dos niveles de actuación. Por un lado tendremos un nivel software, donde se programará el dispositivo básico y por otra, encontraremos un nivel hardware que dará sustento físico al propio sistema y que estará formado por los sensores (distancia y temperatura) y los módulos anteriores.

A continuación se muestra un esquema (figura7.1) del sistema completo con la intención de que el lector conciba una idea general de lo que se propone en este apartado.

(64)

Figura 7.1 – Esquema modular del Radioenlace

En la implementación de este sistema inalámbrico se utilizarán las herramientas de desarrollo descritas en el capítulo 5.

De esta forma se alcanzarán los objetivos propuestos en este bloque y que se plantearon en la introducción del mismo.

(65)

7.3 – Desarrollo de la aplicación

7.3.1- NIVEL SOFTWARE

Como se ha descrito en el apartado 4, el dispositivo CC2510 dispone de una memoria flash programable. En este espacio de memoria es donde se aloja el programa principal que será el encargado de gestionar las entradas y salidas del MCU. Este software será creado a partir del IAR Embedded Workbench, una herramienta de desarrollo descrita en el apartado 5. El lenguaje de programación utilizado será el conocido C/C++.

Ya que el sistema inalámbrico dispone de dos módulos, transmisor y receptor, con funciones diferentes, será necesario desarrollar dos programas distintos, uno para cada módulo, que permitan al sistema total funcionar como un conjunto coordinado de subsistemas independientes.

7.3.1.1- Transmisor

Antes de comenzar a describir el código de este módulo, es conveniente recordar, de forma esquemática, las funciones que debe realizar el mismo.

• Adquisición de dos señales analógicas (temperatura y distancia)

• Tratamiento adecuado de estas señales  Conversión digital

• Transmisión de las mismas al receptor.

De esta manera, se presentará a continuación el diagrama de flujo correspondiente al programa de este módulo transmisor.

(66)

Diagrama de flujo

Figura 7.2 – Diagrama de flujo del Transmisor INICIO

CONF DE PARÁMETROS

• Modo Oscilación  Cristal

• Bit-Rate  10kBaud

• Canal  2.42GHz

• Modo  Transmisor

CONF I/O

• MODO  Analógicas

• P0_1  IN

• P0_2  IN

INTERRUPCIONES  ON

CONSTRUCCIÓN PAQUETE DE ENVÍO

TRANSMISIÓN

(67)

Una explicación detallada de este diagrama sería la siguiente.

En primer lugar, el programa comienza a ejecutarse (INICIO) cuando el transmisor se conecta a la alimentación.

El siguiente paso es configurar ciertos parámetros referentes a la radio (CONF DE PARÁMETROS). Aquí elegimos un modo de oscilación activo, es decir, dejamos actuar como señal de reloj la salida del oscilador a cristal que incorpora el propio CC2510EM. Además, seleccionamos un Bit-Rate de 10kBaud, un canal de comunicación a la frecuencia de 2.42GHz y un estado de funcionamiento en modo transmisor, esto es, configuramos el módulo DMA del CC2510 para trasladar los datos que queremos enviar, desde el buffer de empaquetamiento hasta la propia radio sin necesidad de que intervenga la CPU.

Seguidamente, procedemos a configurar las entradas/salidas (CONF I/O) que nos interesan para adquirid las señales analógicas procedentes de los sensores. De esta manera, establecemos los pines P0_1 y P0_2 del CC2510 como entradas analógicas.

El tercer paso (INTERRUPCIONES) consiste en activar las interrupciones que se producen cuando ocurre algún evento. De esta manera seremos capaces, por ejemplo, de detectar que una transmisión se ha realizado completamente o que se ha trasladado un paquete en su totalidad desde el buffer de empaquetamiento a la radio.

Posteriormente debemos construir el paquete de envío (CONSTRUCCIÓN PAQUETE DE ENVÍO). En este caso debemos seguir las instrucciones dadas en la hoja de características del dispositivo y formar una trama de bits correcta que sea capaz de recibirse en el host.

Finalmente (TRANSMISIÓN), trasladamos el paquete construido desde el buffer de empaquetamiento a la radio, mediante el DMA configurado previamente para ello, que se encarga de transmitirlo.

(68)

Programa Principal

A continuación se muestra el programa principal, creado en lenguaje C usando el entorno de programación del IAR Embedded Workbench. Todas las sentencias utilizadas están explicadas a través de comentarios.

Cabe mencionar, que no todas las funciones utilizadas en el código serán mostradas debido a la extensión que ocuparía este documento. Además, muchas de estas funciones son propias del dispositivo y son suministradas por el fabricante. Aún así, el programa completo se presenta en un CD adjunto a este documento en el entorno de programación antes mencionado.

En cambio, se describen aquellas funciones que han sido confeccionadas durante la realización de este proyecto.

/*---

| Archivo: Transmisor_ pfc.c

| Tarjeta: cc2510

| Autor: Juan Santaella Hernández

| Fecha: 10/09/2009

| Revision: 1.0

| Proyecto: Sistema Inalámbrico para Medida de Distancia y Temperatura /*---

*==== INCLUDES ==============================================*/

#include "hal_main.h"

#include "per_test_main.h"

#include "stdbool.h"

/*==== FUNCIONES GENERALES==================================*/

void main(void) {

UINT32 burstSize;

UINT32 seqNum;

bool condicion;

BYTE dist;

BYTE tempe;

BYTE mensel;

int i;

// Elegimos el oscilador de cristal como señal de reloj halPowerClkMgmtSetMainClkSrc(CRYSTAL);

Referencias

Documento similar

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

por unidad de tiempo (throughput) en estado estacionario de las transiciones.. de una red de Petri

La primera opción como algoritmo de compresión para secuencias biológicas que sugirió la directora del proyecto fue la adaptación de los algoritmos de Lempel-Ziv al alfabeto formado

En esta sección se tratan las características que debe tener un compresor de secuencias biológicas para poder ser usado como herramienta en la construcción de los árboles de

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

 Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria..  Células de origen humano o sus derivados que