exemplo de sistema embarcado com conectividade web andrey brito [email protected] andrey

38
Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito [email protected] www.lsd.ufcg.edu.br/~andr ey

Upload: internet

Post on 17-Apr-2015

128 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

Exemplo de Sistema Embarcado com Conectividade Web

Andrey Brito

[email protected]

www.lsd.ufcg.edu.br/~andrey

Page 2: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 2

Objetivo

• Apresentar um exemplo de sistema embarcado completo– Sensores, atuadores, processamento,

interface com usuário e conectividade de rede

• Ilustrar a arquitetura de um “computador com interface de rede”

Page 3: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 3

Introdução

• O que é um sistema embarcado?– Um sistema encapsulado pelo dispositivo que

controla– Podem ser isolados ou em rede– Dificilmente possuem um SO– Microcontroladores são bons candidatos

• São basicamente utilizados para controle e monitoramento

Page 4: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 4

Exemplo de sistema em rede

• O sistema embarcado controla/monitora o dispositivo– Pode ser distribuído

• O PC possui uma GUI (supervisório)– Visualização e ajuste de ponto de operação

Page 5: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 5

Exemplo de supervisório

Page 6: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 6

Roteiro

• O Hardware– MSP430 Internet Connectivity

• MSP430F149• CS8900A

• O Software– Organização do Software– uIP

• A Aplicação

Page 7: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 7

Nosso hardware

• Kit de desenvolvimento projetado pela Texas– MSP430 Internet Connectivity – www.ti.com– Vendido por vários montadores (por exemplo,

www.olimex.com)

Page 8: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 8

Arquitetura do hardware

LCD

MicrocontroladorControlador Ethernet

Relés

Sensores

Page 9: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 9

Arquitetura do hardware

Page 10: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 10

O microcontrolador MSP430F149

• Custo: US$ 0,50 a 8

• Velocidade: 0 a 8 MHz, mas instruções podem consumir até 6 ciclos de clock

• Consumo: 2,5 µA em 4 KHz a 2,4 mA em 8 MHz

• Periféricos: 6 portas E/S, ADC, Timers, UART, Multiplicadores

Page 11: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 11

O microcontrolador MSP430F149

• Memória: 60 KB Flash, 2 KB RAM

• CPU: RISC, 27 instruções (+ 24 emuladas), 16 registradores

Page 12: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 12

O microcontrolador MSP430F149

Page 13: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 13

O microcontrolador MSP430F149

Page 14: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 14

O microcontrolador MSP430F149

CPU

RAM

FLASH

E/S DigitalADC

Timers

MSP430F149

Page 15: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 15

O Controlador Ethernet CS8900A

Page 16: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 16

O Controlador Ethernet CS8900A

Control

RAM

En/Decoder

CS8900A

Page 17: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 17

Funcionamento do Controlador Ethernet

• Configuração– Que interface usar (por exemplo, RJ45?)– Que frames aceitar– Que eventos causam interrupções

• Recebimentos, transmissões, colisões, etc.

– Como os frames recebidos são transferidos para o hospedeiro

Page 18: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 18

Recebendo um pacote

Page 19: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 19

Transmitindo um pacote

Page 20: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 20

Transmitindo um pacote

Preamble + Start_of_Frame + Data + PAD + CRC

Page 21: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 21

Roteiro

• O Hardware– MSP430 Internet Connectivity– MSP430F149

• Aquisição de dados e ativação/desativação de saídas– CS8900A

• Configuração, recepção e transmissão de pacotes

• O Software– Organização do Software– uIP

• A Aplicação

Page 22: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 22

“The uIP Embedded TCP/IP Stack”

• Pilha de protocolos open-source para pequenos processadores– http://www.sics.se/~adam/uip

• Cabe em 6 KB de ROM e 1,5 KB de RAM

• Já foi portado para MSP430, 8051, AVR, etc.

Page 23: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 23

“The uIP Embedded TCP/IP Stack”

• Suporta IP, TCP, UDP, ICMP, ARP– Faz toda a parte de abertura e gerenciamento de conexões,

falta só gerar os dados– Possui um arcabouço de uma linguagem de script para páginas

HTML dinâmicas

• Desvantagem: armazenamento das páginas

static const char data_index_html[] = {

/* /index.html */

0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0, 0x48, 0x54, 0x54, 0x50, 0x2f, ... };

Page 24: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 24

Ambiente de desenvolvimento

• Rowley Associates CrossWorks Studio– ARM, AVR e MSP430– Oferece uma versão do uIP com driver do

controlador CS8900A para o MSP430 Internet Connectivity

– Muitos recursos– Demo de 30 dias– Caro! (£495)

Page 25: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 25

Ambiente de desenvolvimento

Page 26: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 26

Funcionamento do software (local)

void main(void) {

// Iniciação

// periféricos

// CS8900A

// httpd e aplicação

while(1) {

// Processa entradas/saídas da aplicação local

// Trata botões, faz aquisição de dados

// Processa pacotes e eventos de rede

}

}

Page 27: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 27

Funcionamento do Software (rede)

Pacote Recebido

ARP IP

uip_arp_arpin()

Endereço começacom /cmd/

Envia /arq.htmlhandleCommand() interpretaScript()

uip_process()

httpd_appcall()

Endereço começacom /cgi/

Envia o arquivo solicitado

Page 28: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 28

Funcionamento do Software (rede)

• handleCommand()– pressYellowButton();– pressBlackButton();– pressWhiteButton();– pressGreenButton();

Page 29: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 29

Funcionamento do Software (rede)

• interpretaScript()– Exemplo “/cgi/arq”

i /arq_header.html

c d

i /arq_footer.html

.

Page 30: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 30

Roteiro

• O Hardware– MSP430 Internet Connectivity– MSP430F149

• Aquisição de dados e ativação/desativação de saídas– CS8900A

• Configuração, recepção e transmissão de pacotes

• O Software– Organização do Software– uIP

• A Aplicação

Page 31: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 31

A Aplicação

• Um sistema que gerencia uma caixa de abastecimento de água– Tanque– Bomba– Válvula– Alarme

• O sistema é automático– Exceto, talvez, pela válvula

Page 32: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 32

A Aplicação

• No entanto, pode ser necessário atuar no sistema remotamente– Verificar se o alarme está ativado– Verificar se o tanque está enchendo

• Será que o reservatório secou?

– Ligar/desligar a válvula que libera o fornecimento

• Durante períodos de racionamento

Page 33: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 33

A Aplicação

Flash

Dinâmico

Flash

Page 34: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 34

Funcionamento do Software (rede)

• interpretaScript()– Exemplo “/cgi/arq”

i /arq_header.htmlc di /arq_footer.html.

– “c d”• constrói a tabela

– bombaState, alarmState, energySaveState, valvulaState e getLevel

Page 35: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 35

Executando a aplicação (visão de Hardware)

CPU

RAM

FLASH

E/S Digital

ADC

Timers

MSP430F149

Control

RAM

En/Decoder

CS8900A

Sensor

BotãoBotões

RelésRelés

Página Web

Ethernet/Internet

Page 36: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 36

Executando a aplicação (visão de Hardware)

CPU

RAM

FLASH

E/S Digital

ADC

Timers

MSP430F149

Control

RAM

En/Decoder

CS8900A

Sensor

BotãoBotões

RelésRelés

Página Web

Ethernet/Internet

Page 37: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 37

Executando a aplicação (visão de Hardware)

CPU

RAM

FLASH

E/S Digital

ADC

Timers

MSP430F149

Control

RAM

En/Decoder

CS8900A

Sensor

BotãoBotões

RelésRelés

Página Web

Ethernet/Internet

Page 38: Exemplo de Sistema Embarcado com Conectividade Web Andrey Brito andrey@dsc.ufcg.edu.br andrey

30 de maio de 2005 Arquitetura de Computadores 38

Considerações finais

• Usar um kit de desenvolvimento e o uIP reduz o trabalho de fazer um sistema “útil” de meses para dias.– Mas o resultado não é muito flexível, você

deve montar o seu framework em cima disso

• Sistemas embarcados ilustram muitos aspectos importantes de um computador comum