56
“Desarrollo de aplicaciones para la conectividad IP de microcontroladores”. Trabajo de título de Pablo Hernán Naveas Farías, como requisito parcial para optar al título de Ingeniero Civil Electrónico, mención Computadores. Departamento de Electrónica

“Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

Embed Size (px)

Citation preview

Page 1: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

“Desarrollo de aplicaciones para la conectividad IP de microcontroladores”.

Trabajo de título de Pablo Hernán Naveas Farías, como requisito parcial para optar al título de

Ingeniero Civil Electrónico, mención Computadores.

Departamento de Electrónica

Page 2: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

2

Desarrollo de aplicaciones para la conectividad IP de microcontroladores

Introducción a los Embedded Internet Systems y objetivos del trabajo.

Tarjeta Easyweb y su interfaz de red.

Aplicaciones de red desarrolladas.

Conclusiones y trabajos futuros.

Page 3: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

3

Introducción

Presencia de microprocesadores en la vida cotidiana:

Electrodomésticos.Juguetes.Teléfonos celulares.Equipos médicos.

Indispensables en actividad industrial.

Page 4: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

4

Introducción

Conectividad de estos dispositivos:Obtención y transferencia de información.Control y configuración en forma remota.

Maneras de conectar estos dispositivos a la red:

Solución por hardware.

http://www.lantronix.com

Page 5: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

5

Introducción

Implementación de protocolos en el dispositivo:

Programar stack TCP/IP.Ocupar proyectos open source (uIP, lwIP).Adquirir la solución por software.

“En el 2010, el 95% de los sistemas conectados a Internet serán embebidos, no PCs...”

Page 6: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

6

Objetivos

Programar aplicaciones de red para la tarjeta Easyweb.

Desarrollar aplicaciones que permitan el control y el monitoreo del estado de la tarjeta desde un PC.

Page 7: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

7

Tarjeta Easyweb

• LCD de 16 x 2 caracteres.• Cuatro pulsadores.• 2 salidas activadas por relé.• Un buzzer.• 1 LED de propósito general.• Un conector para los pines JTAG del

microcontrolador.• Conector P6 (ADC12).

Interfaz de red:• Un controlador de red CS8900A de Cirrus

Logic, con sus componentes externos.

MSP430 F149 más:

Page 8: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

8

Interfaz de red: conexión MSP430 a controladora de red CS8900.

Datos

Direccionamiento

IOR

/

IOW

uCCS8900

Page 9: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

9

Interfaz de red: conexión CS8900 a componentes externos.

Conector RJ- 45

Transformador de aislación de pulsos

Link / Data Leds

Page 10: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

10

Interfaz de red: packet driver y stackTCP/IP.

Se escogen:cs8900a.c (packet driver).Stack uIP.

Programados en C.Código abierto.Portados a la tarjeta Easyweb.

Page 11: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

11

Interfaz de red: packet driver y stackTCP/IP.

Interacción uIP con packet driver :

Inicialización (cs8900a_init())

Envío de datos (cs8900a_send())

Verificación de llegada de nuevos paquetes (cs8900a_poll())

Page 12: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

12

Interfaz de red: packet driver y stackTCP/IP.

Stack TCP/IP: uIP.Múltiples conexiones TCP/IP.

Detección de errores.

Permite paquetes fragmentados.

Tiene soporte para datagramas UDP.

Page 13: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

13

Para programar una aplicación, ¿quéarchivos se deben incluir al proyecto?

+ main.c

Packet driver

Inicializaciones más Loop control

Stack TCP/IPAlg. Checksum.ARP

Aplicación a programar+ aplicacion.c

Page 14: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

14

Aplicaciones de red desarrolladas (1).

Conexión de la tarjeta a la red

Page 15: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

15

Uso de la API del stack uIP.

uIP invoca periódicamente a una función de la aplicación: UIP_APPCALL.

La API de uIP define el modo en que la aplicación interactúa con las funciones del stack:

Manejo de conexiones.Recepción y envío de datos.

Page 16: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

16

Aplicaciones de red desarrolladas.

Desarrollo de primera aplicación y programación de cliente TCP/IP (1):

Aplicación simple -> “msp430”Configuración opciones ->uipopt.hDefinición de la función invocada periódicamente

Page 17: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

17

Aplicaciones de red desarrolladas (1).

//*************app1.c***********************#include "uip.h"#include “app1.h"#include <string.h>

void app1_init(void) {uip_listen(HTONS(1234));

}void app1_appcall(void) {

if( uip_newdata() ) {uip_send("msp430\n", 7);

}}//******************************************

Primera aplicación:

Page 18: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

18

Aplicaciones de red desarrolladas (1).

//*************app1.h**********************

#include "uipopt.h"

#define UIP_APPCALL app1_appcall

void app1_init(void);void app1_appcall(void);

Configuración de opciones del stack:-IP (host, gateway)-MAC-Archivo de encabe-zado de la aplicación

Invocada periódicamente por el stack

Primera aplicación:

Page 19: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

19

Aplicaciones de red desarrolladas (1).

Programación de un cliente TCP/IP

Orientado a objetosRápido desarrollo de aplicaciones de red: Sockets y Streams.

Page 20: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

20

Aplicaciones de red desarrolladas (1).

Esquema cliente TCP/IP programado

Page 21: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

21

Aplicaciones de red desarrolladas (1).

Instancia de un socket con Java

Page 22: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

22

Aplicaciones de red desarrolladas (1).

Ejecución del cliente

Page 23: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

23

Aplicaciones de red desarrolladas.

Segunda aplicación (2):

Diseño estructurado de aplicaciones: administrador de eventos.Estados en la aplicación.

Page 24: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

24

Aplicaciones de red desarrolladas (2).

Diseño estructurado de aplicaciones con uIP.

#define UIP_APPCALL eventhandler_app

void eventhandler_app(void) {if(uip_aborted()) {aborted();}if(uip_timedout()) {timedout();}if(uip_closed()) {closed();}if(uip_connected()){connected();}if(uip_acked()) {acked();}if(uip_newdata()) {newdata();

senddata();}}

Administrador de eventos

Page 25: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

25

Aplicaciones de red desarrolladas (2).

Segunda aplicación:

app2_init()

connected()

newdata(),senddata()

acked()

Page 26: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

26

Aplicaciones de red desarrolladas (2).

Ejecución del cliente

Page 27: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

27

Aplicaciones de red desarrolladas.

Tercera Aplicación (3):Cliente de correo para el envío de e-mail.Protocolo cliente – servidor SMTP

Se analizan datos recibidos para elaboración de respuesta.

Page 28: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

28

uip_connect(,)

connected()

newdata(),

senddata()

acked()

Page 29: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

29

Aplicaciones de red desarrolladas (3).

Page 30: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

30

Aplicaciones de red desarrolladas.

Cliente TCP/IP con GUI (4):

Control en forma remota del estado de la tarjeta.Desarrollo de una interfaz gráfica para la clase programada.

Page 31: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

31

Aplicaciones de red desarrolladas (4).

Control en forma remota de la tarjeta Easyweb: Cliente TCP/IP con GUI.

Interfaz de desarrollo de aplicación GUI

Page 32: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

32

Page 33: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

33

Aplicaciones de red desarrolladas (4).

Control en forma remota de la tarjeta Easyweb:

Page 34: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

34

Aplicaciones de red desarrolladas (4).

Cliente TCP/IP con GUI:

Escalable (agregar componentes).

Requerimientos (Java, plugins Swing –AWT).

Interfaz más ‘universal’ -> Web

Page 35: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

35

Aplicaciones de red desarrolladas.

Conectividad web:uIP contiene la implementación de un servidor web (fs.c, cgi.c, httpd.c)Recursos de memoria -> escasosPoca flexibilidad en el mantenimiento de la aplicación.Función de un microcontrolador: adquirir y procesar datos, controlar procesos.

Page 36: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

36

Aplicaciones de red desarrolladas (5).

Conectividad web:Nuevo esquema -> Aplicaciones Web.

Page 37: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

37

Aplicaciones de red desarrolladas.

Primera aplicación web (5):Html más Servlet

Accionamiento remoto de un relé.

Página de respuesta con contenido dinámico.

Page 38: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

38

Aplicaciones de red desarrolladas (5).

Página web de entrada

Page 39: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

39

Aplicaciones de red desarrolladas (5).

Código página web de entrada

<form action="/WebApp1/EasywebServer" method="post">

<input name="iphost" type="text" id="iphost" value="200.1.17.94"><input name="puerto" type="text" id="puerto" value="1510">

<%botón de envío del formulario%> <input type="submit" name="Submit" value="Conectar">

</form>

Page 40: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

40

Aplicaciones de red desarrolladas (5).

Página web de respuesta

Page 41: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

41

Aplicaciones de red desarrolladas.

Desventaja de servlets:Nula separación entre la presentación de la página de respuesta y el código ‘funcional’.

Solución: Segunda aplicación web (6)Uso de templates -> JSP.Componentes web -> JSF.JavaBeans

Page 42: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

42

Aplicaciones de red desarrolladas.

Procesamiento de una página JSP en el servidor

Page 43: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

43

Aplicaciones de red desarrolladas (6).

JavaBeans:Clases de Java que cumplen dos convenciones

Constructor sin argumentosMétodos get y set

Page 44: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

44

Aplicaciones de red desarrolladas (6).

Estructura de la aplicación:

Bean de sesión

Page 45: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

45

Aplicaciones de red desarrolladas (6).

Programación de una página JSP con componentes JSF

Page 46: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

46

Aplicaciones de red desarrolladas (6).

Código de la página de bienvenida JSP con componentes JSF

<h:form binding="#{Page1.form1}" id="form1"><h:inputText binding="#{Page1.textField1}" id="textField1“

value="#{SessionBean1.ip}"/><h:inputText binding="#{Page1.textField2}" id="textField2"

value="#{SessionBean1.puerto}"/><h:commandLink action="Conectar" actionListener="#{SessionBean1.Conectar}"<h:outputText binding="#{Page1.linkAction1Text}" value="Conectar"/></h:commandLink>

</h:form>

Page 47: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

47

Aplicaciones de red desarrolladas (6).

Página de control de la tarjeta Easyweb

#{SessionBean1.disconnect}

#{SessionBean1.toggleLed}

#{SessionBean1.toggleRele}

#{SessionBean1.buzzer}

#{SessionBean1.lcd_send}

#{SessionBean1.adcAdq}

Page 48: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

48

Aplicaciones de red desarrolladas.

Control simultáneo de dos o más tarjetas?Aplicación web final (7):-> un Bean y una página JSP por tarjeta.-> cambio página de bienvenida, la conexión se

realiza desde la página de control.

DEMO

Page 49: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

49

Conclusiones

Documentación del proceso de diseño de aplicaciones de red con stack uIPpara tarjeta Easyweb.Documentación del desarrollo de aplicaciones de red en Java.Nuevo esquema para la conectividad web de la tarjeta Easyweb.

Page 50: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

50

Trabajos Futuros

Seguridad.

Red de microcontroladores.

Programación del microcontrolador vía interfaz web.

Page 51: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

“Desarrollo de aplicaciones para la conectividad IP de microcontroladores”.

Trabajo de título de Pablo Hernán Naveas Farías, como requisito parcial para optar al título de

Ingeniero Civil Electrónico, mención Computadores.

Departamento de Electrónica

Page 52: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

52

Interfaz de red: Rx y Tx de paquetes con CS8900.

Transmisión:Envío de trama desde el packet driver del microcontrolador hacia el buffer del CS8900.CS8900 prepara el paquete y lo envía hacia la red.

Page 53: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

53

Interfaz de red: Rx y Tx de paquetes con CS8900.

Recepción:Llegada de un paquete desde la red, se desempaqueta y se almacena en buffer de CS8900.La trama es transferida hacia el buffer del stack.

Page 54: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

54

Protocolos para la implementación de TCP/IP en microcontroladores.

Fuente: www.ixxat.de ©2003 IXXAT Automation GmbH

Page 55: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

55

Estados conexión TCP./* The TCP states used in the uip_conn->tcpstateflags. */#define CLOSED 0#define SYN_RCVD 1#define SYN_SENT 2#define ESTABLISHED 3#define FIN_WAIT_1 4#define FIN_WAIT_2 5#define CLOSING 6#define TIME_WAIT 7#define LAST_ACK 8#define TS_MASK 15

#define UIP_STOPPED 16

#define UIP_TCPIP_HLEN 40

Page 56: “Desarrollo de aplicaciones para la conectividad IP de ...lsb/elo325/clases/ExamenPablo Naveas.pdf · microcontroladores”. ... 3 Introducción ... Teléfonos celulares. Equipos

56

Loop de control del stack uIP (main.c)

UIP_APPCALL();