exemplo de sistema embarcado com conectividade web andrey brito andrey@dsc.ufcg.edu.br andrey

Post on 17-Apr-2015

128 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Exemplo de Sistema Embarcado com Conectividade Web

Andrey Brito

andrey@dsc.ufcg.edu.br

www.lsd.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”

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

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

30 de maio de 2005 Arquitetura de Computadores 5

Exemplo de supervisório

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

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)

30 de maio de 2005 Arquitetura de Computadores 8

Arquitetura do hardware

LCD

MicrocontroladorControlador Ethernet

Relés

Sensores

30 de maio de 2005 Arquitetura de Computadores 9

Arquitetura do hardware

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

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

30 de maio de 2005 Arquitetura de Computadores 12

O microcontrolador MSP430F149

30 de maio de 2005 Arquitetura de Computadores 13

O microcontrolador MSP430F149

30 de maio de 2005 Arquitetura de Computadores 14

O microcontrolador MSP430F149

CPU

RAM

FLASH

E/S DigitalADC

Timers

MSP430F149

30 de maio de 2005 Arquitetura de Computadores 15

O Controlador Ethernet CS8900A

30 de maio de 2005 Arquitetura de Computadores 16

O Controlador Ethernet CS8900A

Control

RAM

En/Decoder

CS8900A

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

30 de maio de 2005 Arquitetura de Computadores 18

Recebendo um pacote

30 de maio de 2005 Arquitetura de Computadores 19

Transmitindo um pacote

30 de maio de 2005 Arquitetura de Computadores 20

Transmitindo um pacote

Preamble + Start_of_Frame + Data + PAD + CRC

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

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.

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, ... };

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)

30 de maio de 2005 Arquitetura de Computadores 25

Ambiente de desenvolvimento

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

}

}

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

30 de maio de 2005 Arquitetura de Computadores 28

Funcionamento do Software (rede)

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

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

.

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

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

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

30 de maio de 2005 Arquitetura de Computadores 33

A Aplicação

Flash

Dinâmico

Flash

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

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

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

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

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

top related