desarrollo de herramientas de programación de alto...

41
Desarrollo de Herramientas de Programación de Alto Nivel y Aplicaciones de Conectividad y Almacenamiento para el Microcontrolador MSP430 Memoria presentada por Carlos Pablo Silva Lütty Comisión: Wolfgang Freund Grunewaldt Tomás Arredondo Vidal

Upload: doanlien

Post on 31-Mar-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Desarrollo de Herramientas de

Programación de Alto Nivel y Aplicaciones

de Conectividad y Almacenamiento para el

Microcontrolador MSP430

Memoria presentada por

Carlos Pablo Silva Lütty

Comisión:

Wolfgang Freund Grunewaldt

Tomás Arredondo Vidal

Page 2: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Esquema de la presentación

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones

Page 3: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Introducción

El mercado de la microelectrónica

Usos y aplicaciones

La industria nacional

Características y periféricos

Microcontrolador MSP430

Page 4: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Microcontrolador MSP430

Ideal para aplicaciones de bajo consumo

Capacidad de procesamiento digital y análogo

Periféricos Integrados

Page 5: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Esquema de la presentación

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones

Page 6: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Módulo de Relojes

Relevancia de este módulo

Fuentes y Señales de reloj

Diseño de un Driver

Page 7: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Módulo de Relojes

Page 8: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Módulo de Relojes

¿Por qué un driver?

Reducción de código

Tiempos de desarrollo

Abstracción del hardware

Page 9: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Módulo de Relojes CLK_IE: Habilitar las interrupciones del módulo

CLK_ID: Deshabilitar las interrupciones del módulo

CLK_CF: Fijar en valor 0 el flag de falla del oscilador

XT2_ON: Alimentar con Vcc el cristal XT2 de 8 [MHz]

XT2_OFF: Quitar la alimentación del cristal XT2

SMCLK_DCO: SMCLK alimentado por el DCO

SMCLK_XT1: SMCLK alimentado por el XT1

SMCLK_XT2: SMCLK alimentado por el XT2

MCLK_DCO: MCLK alimentado por el DCO

MCLK_XT1: MCLK alimentado por el XT1

MCLK_XT2: MCLK alimentado por el XT2

MAX_DCO: DCO con frecuencia máxima

MIN_DCO: DCO con frecuencia mínima

ACLK_FREC: ACLK con frecuencia FREC en Hertz.

Valores válidos para FREC: 32768, 16384, 8192, 4096

SMCLK_FREC: SMCLK con frecuencia FREC en Hertz.

Valores válidos para FREC: 8M, 4M, 2M, 1M, 32768, 16384, 8192, 4096

MCLK_FREC: ACLK con frecuencia FREC en Hertz.

Valores válidos para FREC: 8M, 4M, 2M, 1M, 32768, 16384, 8192, 4096

Init_Osc();

Alimenta con Vcc el cristal XT2 y espera

hasta que la señal de reloj sea estable en

amplitud y frecuencia.

Set_DCO_4096_(DELTA)

Fija la frecuencia del DCO a múltiplos de

4096 utilizando el timerA en modo captura.

Los rangos admitidos para DELTA están

entre 20 y 1170.

Page 10: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Esquema de la presentación

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones

Page 11: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Bajo consumo de energía

Aplicaciones de bajo consumo de energía

Velocidad y rendimiento

Page 12: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Bajo consumo de energía

FABRICANTE EXPERIMENTAL

¿Por qué hay diferencias?

Page 13: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Esquema de la presentación

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones

Page 14: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Comunicación serial asíncrona

Generación de Tasas de Baudios no estándar

Page 15: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Comunicación serial asíncrona

Modelo de programación lineal entera

Variables: m0, m1, m2, m3, m4, m5, m6 y m7.

Función Objetivo: MINIMIZAR el Máximo error por bit en valor absoluto.

Sujeto a: m0, m1, m2, m3, m4, m5, m6 y m7 son binarios.

ratebaud

BRCLKN

_

1

0

1 n

i

imn

UxBRN

1

0

1_

n

i

imn

UxBR

BRCLK

N

BRCLKratebaud

%100)1()1(_

[%]1

0

jmUxBRjBRCLK

ratebaudERROR

n

i

i

Page 16: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Comunicación serial asíncrona

Contraste de resultados

Complemento “Solver”

Page 17: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Esquema de la presentación

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones

Page 18: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD

Tarjetas SD

Protocolo SPI

Módulo MSP430-SD

Driver MSP430-SD

Biblioteca I/O MSP430-SD

Page 19: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD – Tarjetas SD

Memoria flash

Bloques de 512 Bytes

Seguridad, capacidad y desempeño

Bus SD – Bus SPI

Page 20: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD – Protocolo SPI

Serial Sincrónico

Cliente – Servidor

Orientado al Byte (8 cliclos)

2 líneas de comunicación

1 línea de control

Page 21: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD – Módulo MSP430-SD

Se dispone de 3.3 [V], 5 [V] y GND común.

La alimentación de la tarjeta SD debe ser controlada por el MSP430.

Se debe proporcionar un bus SPI entre la MSP430 y la tarjeta SD.

El MSP430 debe detectar la presencia o ausencia de una tarjeta SD.

Se deben utilizar 2 Leds indicadores de lectura/escritura y error.

Se debe proporcionar la protección necesaria para compatibilidad de hardware.

Page 22: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD – Módulo MSP430-SD

Page 23: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD - Driver MSP430-SD

CS señal de Chip Select del host a la tarjeta

CLK señal de reloj del host a la tarjeta

DataIn señal de datos del host a la tarjeta

DataOut señal de datos de la tarjeta al host

Page 24: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD - Driver MSP430-SD

Escructura de los comandos

Estructura de las respuestas

Page 25: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD - Driver MSP430-SD

Inicialización:

Alimentar Vcc de la tarjeta SD con 3.3 [V].

Enviar 10 ráfagas de 8 ciclos de reloj. (80 ciclos)

Fijar la señal CS en 0.

Enviar el comando reset. (0x 40 00 00 00 00 95)

Esperar respuesta. (0x 01)

Enviar comando de inicialización. (0x 41 00 00 00 00 ff)

Esperar respuesta. (0x 00)

Page 26: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD - Driver MSP430-SD

Lectura:

Fijar el valor de la señal CS en 0.

Enviar el comando de lectura.

Esperar la respuesta 0x00.

Esperar el data token 0x0fe.

Leer 512 bytes de datos.

Leer 2 bytes de CRC.

Fijar el valor de la señal CS en 1.

Page 27: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD - Driver MSP430-SD

Escritura:

Fijar el valor de la señal CS en 0.

Enviar el comando de escritura.

Esperar la respuesta 0x00.

Enviar el data token 0xfe.

Enviar 512 bytes de datos.

Enviar 2 bytes de CRC.

Recibir la respuesta XXX00101 b

Esperar que la tarjeta finalice la escritura internamente.

Fijar el valor de la señal CS en 1.

Page 28: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Memorias SD - Biblioteca I/O

bloques de datos condicionan las operaciones de

lectura y escritura a 512 bytes consecutivos.

Open, Close, Seek, Read y Write.

Suponer que el bloque actual es el 4 y que el offset

dentro del bloque es 348, esto es se requieren

leer 1692 bytes.

Page 29: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Esquema de la presentación

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones

Page 30: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Bridge WiFi / RS-232

Page 31: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Bridge WiFi / RS-232

MSP430

BRIDGE

PC

Page 32: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Esquema de la presentación

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones

Page 33: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Aplicación

Almacenamiento masivo de datos

Centralización de la información

Disponibilidad de los datos

MSP430 + SD + Sensores + Actuadores Servidor: Base de datos + Cliente TCP

Módulo WiFi

Page 34: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Aplicación – MSP430

Page 35: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Aplicación – Plataforma de Gestión

Page 36: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Esquema de la presentación

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones

Page 37: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Resultados de este trabajo

Se creó un driver que maneja el módulo de relojes del microcontrolador MSP430 que permite a los usuarios abstraerse del uso de los registros y acelera los tiempos de desarrollo.

Se documenta el uso de los modos de bajo consumo de energía.

Se realizó un modelo de programación lineal entera que minimiza el error de transmisión y recepción de la comunicación serial asincrónica. El modelo se deja en formato Excel para su utilización con el complemento Solver.

Page 38: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Resultados de este trabajo

Se desarrolla un driver de hardware y de software para el almacenamiento de datos en una memoria SD. Adicionalmente se desarrolla una biblioteca de entrada/salida para el uso de memorias SD que permita a los usuarios trabajar en alto nivel, sin necesidad que conozcan el funcionamiento interno de las memorias SD.

Se desarrolló el driver necesario para controlar un Bridge RS-232 a WiFi con el microcontrolador MSP430.

Se desarrollo en JAVA una plataforma de gestión que permite ilustrar la conectividad del microcontrolador MSP430 con bases de datos.

Page 39: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Conclusiones

Dada las características del microcontrolador MSP430, se puede decir que éste cumple con las exigencias de la industria actual, permitiendo realizar tareas de carácter análogo o digital, ya sea en aplicaciones de control o telemetría.

Se mostró con este trabajo que el microcontrolador MSP430 puede ser utilizado en aplicaciones que requieran almacenamiento masivo de información, ya sea de manera local (en el sistema embebido) o remota (una base de datos externa), a través de una conexión a Internet, ya sea cableada o inalámbrica.

Page 40: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Conclusiones

Se puede resumir que el microcontrolador

MSP430 cumple con los requisitos de

conectividad, bajo consumo y capacidad de

almacenamiento que lo posicionan como uno de

los microcontroladores más utilizados en el

mundo entero para tareas que requieran bajo

consumo de energía.

Page 41: Desarrollo de Herramientas de Programación de Alto …lsb/elo325/clases/presentacionCarlos.pdfComunicación serial asíncrona ... Se desarrollo en JAVA una plataforma de gestión

Consultas

Introducción

Microcontrolador MSP430

Módulo de relojes

Bajo consumo de energía

Comunicación serial asíncrona

Memorias SD

Bridge WiFi / RS-232

Aplicación

Conclusiones