View
118
Download
2
Category
Preview:
Citation preview
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
Recommended