Seminário Ethernet

Propaganda
Eletrônica Embarcada para Internet
Seminário Ethernet
PME-10 Controlador Ethernet 2EI
Agenda





Overview
Informações do Produto
Ferramentas
Pilha TCP/IP
Aplicações
Por quê usar Sistemas Embarcados?

Resolver problemas de comunicação Remota
Monitoração remota
 Controle remoto
 Diagnóstico remoto
 Aquisição de dados


Ter a capacidade de acessar sistemas embarcados
remotamente implica em economia de tempo e
dinheiro
Por quê Ethernet?



Ethernet é a maior rede presente nos ramos de
comércio e indústria
A infra-estrutura Ethernet, interoperabilidade e
escalabilidade asseguram um fácil
desenvolvimento
Uma vez que o equipamento esteja conectado a
rede Ethernet, ele pode ser monitorado e
controlado pela Internet
Origem da Ethernet Embarcada

Mercado de PCs, modelo OSI da ISO
Características da Ethernet
Embarcada




Barramento compartilhado
Acesso ao meio físico: Acesso Múltiplo com
Verificação de Portadora e Detecção de Colisão
(CSMA/CD)
Velocidade do barramento: 10Mbps
Tamanho do pacote: até 1500 bytes
Mercado Ethernet
Mercado Ethernet
Informações do
Produto
PME-10
PME-10
1.
2.
3.
4.
5.
6.
7.
8.
Microcontrolador
PIC18F8720
Controlador Ethernet
Realtek RTL8019AS
Conector RJ-45
Chave reset
RJ-45
Conector para RS232
ICSP
Portas de I/O
Por quê Ethernet 10Mbps



Uso em aplicações que necessitam enviar ou
receber poucos bytes
Não justificável usar Ethernet 100Mbps com
microcontroladores de 8 bits
Custo
Interface de Programação - IP10



Baixo Custo
Software: IC-Prog de Bonny Gijzen
Muitos outros PIC além do PIC18F8720
Placa Fonte Demonstração – FD01


Fonte +5VDC
Demonstração:




Entrada digital (pushbutton)
Saída digital (LED)
Conversão AnalógicaDigital (pot.), e
Display de LCD (Porta J)
Kit KPME10
1.
2.
3.
4.
5.
6.
PME-10
Cabo serial
IP-10
Cabo crossover
Placa Fonte
Demonstração
CD-ROM com
exemplos
Aplicações
Automação residencial
Segurança.
Automação Industrial.
Automação Predial, e
outros tipos de aquisição de dados e controle remoto.
Ferramentas de Trabalho
Stack Microchip




Sem custo
Uso modular. Utilize somente o que necessitar
Família PIC18
Documentação:AN833 e AN870 da Microchip
MPLAB IDE (Integrated
Development Environment)



Ferramenta de desenvolvimento para
microcontroaldores PIC e dsPIC
Free
Windows
MPLAB C 18




Compilador ANSI-C para família de
microcontroladores PIC18
Windows
Trabalha com o MPLAB IDE
Versão estudante completa por 60 dias
IC PROG

Programador (escreve e verifica)
Endereço MAC 2EI
OUI - Organizationally Unique
Identifier
00.16.a9.xx.xx.xx
2a. Parte
Stack TCP/IP
Objetivos

Objetivo


Explicar os detalhes sobre a pilha TCP/IP da
Microchip
Requisitos
Conhecimento da linguagem C
 Idéia sobre Ethernet/Intranet/Internet
 Conhecimentos da linguagem HTML

Módulos
Arquivos












MAC – Media Access Layer
SLIP – Media Access Layer for SLIP
ARP – Address Resolution Protocol
IP – Internet Protocol
ICMP – Internet Control Message Protocol
TCP – Tranmission Control Protocol
UDP – User Datagram Protocol
StackTask – Coordenador Stack Manager
HTTP Server – HyperText Transfer Protocol Server
DHCP Client – Dynamic Host Configuration Protocol
IP Gleaning – Para configurar endereço IP
FTP Server – File Transfer Protocol Server
Projeto Básico
MpNICPG.pjt : Compilador C18, NIC,
MPFS na Memória de Programa
MAC – Media Access Control


Suporte para Realtek RTL8019AS
Buffer : SRAM do RTL8019AS
Soquete Microchip



É um dos pontos de comunicação de uma rede
Cada soquete tem um endereço IP e uma porta
Permite conexões concorrentes:
N conexões HTTP simultâneas
 M aplicações TCP,UDP simultâneas


Todos os soquetes dividem o mesmo buffer
Pró: menos memória por soquete
 Contra: Uso do buffer em uma só passada pela
tarefa

TCP – Transmission Control
Protocol



Orientado a conexão. Só ocorre troca de dados
após o estabelecimento da conexão
Transferência de dados confiável. Sistema de
seqüência e número de reconhecimento que
habilitam o destino a reconhecer dados
específico
De 2 a 253 soquetes limitados somente pela
memória disponível e compilador usado
TCP – Transmission Control
Protocol




Cada soquete consome aproximadamente 36
bytes
Compartilhamento dos buffers de transmissão e
recepção
Checksum
Configuração do TCP_NO_WAIT_FOR_ACK,
isto torna os dados mais lentos ou não durante
uma transmissão
UDP – User Datagram Protocol





Protocolo sem conexão
Não há recuperação devido a erros
Não há checksum
Permite até 254 soquetes
Múltiplas aplicações podem acessar o UDP
simultaneamente
IP – Internet Protocol



Ajuda os dados a encontrarem o destino mesmo
que o dado tenha que viajar por muitas redes
O endereço IP deve ser único para cada nó da
rede (32 bits, ex.: 192.168.111.1
Cada endereço IP tem duas partes:
Endereço de rede que é o mesmo para todos os nós
da rede
 Endereço do nó

IP – Internet Protocol


Subnet é a divisão da rede em grupos.
Máscara de rede: bits que correspondem ao
endereço de rede e subnet são 1. Bits dos nós
são zero. Em uma rede classe B dois bytes são
de endereço de rede e dois bytes são de
endereço de nós. A máscara de uma subnet com
8 bits de ID é 255.255.255.0
IP – Internet Protocol

IP estático:


Deve ser definido no código
IP Dinâmico:
Necessita de um PC que tenha Servidor DHCP
 Pode ser atrelado ao endereço MAC

DHCP – Dynamic Host
Configuration Protocol

Método Automático de configuração do IP




Necessita de um servidor DHCP na rede
Problemas de sistemas embarcado, como descobrir o
endereço IP:



Endereço IP, endereço do gateway e máscara são
configurados no power-up
Substituição automática de IP se necessário (15 minutos)
Através de LCD>
Atrelar ao endereço MAC
Não disponível com SLIP
Servidor HTTP





Múltiplas conexões simultâneas
Suporta HTML
Permite a criação de páginas Web dinâmicas
As páginas são armazenadas na memória de
programa
MPFS – Microchip File System.
MPFS – Microchip File System






Converte qualquer página Web num formato
compatível de armazenamento
Até 64Kbytes
Utilitário PC MPFS.EXE para gerar a imagem
Todas as páginas em uma única pasta
Nome: 8 + 3
Páginas Web não podem conter: ‘, “, <, >, #, %,
{, }, [, ], |, \, ~ e ^
APIs do Servidor HTTP


HTTPInit
HTTPServer


HTTPGetVar


Executa as tarefas do Servidor HTTP. Deve ser chamada
periodicamente
Alimenta as interfaces CGI com os valores das variáveis que
se encontram no microcontrolador.
HTTPExecCmd

Executa os comandos provenientes das interfaces CGI
Páginas Dinâmicas HTML





Devem ter extensão de arquivo .cgi
Método de substituição de variáveis
Formato: %xx – xx é a variável (00-99).
A substituição pode ser de um ou mais
caracteres
Use extra % para mostrar %

23%% mostra 23%
Exemplo de Substituição de
Variáveis (Status.cgi)
1.
2.
3.
4.
5.
6.
7.
8.
9.
<table>
<tr><td><b>Resultados</b></td></tr>
<tr><td>Pot1:</td><td>%02</td></tr>
<tr><td>Pot2:</td><td>%03</td></tr>
</table>
<table>
<tr><td>Chave:</td><td>%04</td></tr>
<tr><td>Led</td><td>A2=%01</td></tr>
</table>
Exemplo de Substituição de
Variáveis (Status.cgi)
Exemplo de Substituição de
Variáveis (Status.cgi)

Trocando conteúdo de um caracter


Trocando uma figura baseada numa variável


...Pot=%01...
Img src=LED%01.gif
Link

<a href=%01.htm>LinkName</a>
HTTPGetVar


É chamada qdo o Servidor HTTP encontra
‘%XX’ em uma página CGI
(BYTE var, WORD ref, BYTE *val)
var – variável cujo status é para ser retornado
 ref – referência

HTTP_START_OF_VAR – mais bytes para transferência
 HTTP_END_OF_VAR – último byte já enviado


val – byte transferido
Exemplo de HTTPGetVar








if (var==4) // Identificação da variável
{Retorna ‘1’ se chave aberta, caso contrário 0
if (RB5) *val=‘1’ ;
else *val=‘0’;
return HTTP_END_OF_VAR;
}
else..
// checa por outras variáveis
Comando HTML





Dado é transferido do PC para o PIC
Usa o método GET
A aplicação do usuário deve implementar o
comando
Atenção: múltiplos usuários podem executar o
mesmo comando simultaneamente
Deve-se proteger dados críticos
Comando HTML















<FORM METHOD=GET action=0>
<table>
<tr><td>Alarme Temperatura Limite Inferior</td>
<td>input type=text size=2 maxlenght=2 name=A</td>
<td>Alarme Temperatura Limite Superior</td>
<td>input type=text size=2 maxlenght=2 name=B</td>
<td>Alarme Ativo</td>
<td>input type=text size=1 maxlenght=1 name=C</td>
</tr>
<tr><td>Senha</td>
<td>input type=text size=5 maxlenght=5 name=D</td>
<td>Nova Senha</td>
<td>input type=text size=5 maxlenght=5 name=E</td>
</tr>
<td><input type=‘submit value=Enviar></td></tr></table>
Comando HTML












O navegador Web envia os seguintes argumentos para o PIC
argv[0]=“0” // proveniente de action=0
argv[1]=“A”
argv[2]=“limite inferior de temperatura”
argv[3]=“B”
argv[4]=“limite superior de temperatura”
argv[5]=“C”
argv[6]=“S ou N” // S ativa alarme – N não ativa alarme
Argv[7]=“D”
Argv[8]=“XXXXX” // senha com máximo de 5 caracteres
Argv[9]=“E”
Argv[10]=“XXXXX” // nova senha
Limites de Comando

Número máximo de argumentos


Veja MAX_HTTP_ARGS e
MAX_HTML_CMD_LEN em “http.c”
Padrão
MAX_HTTP_ARGS = 5
 MAX_HTML_CMD_LEN = 80


Excedendo o limite,

Os argumentos extra são ignorados
Tipos de página Web

Extensões
txt, htm, gif, cgi, jpg, cla e wav.
 Se necessário modifique “httpFiles” e
“httpContents” no arquivo http.c


Página Web inicial
Index.htm
 Definido em HTTP_DEFAULT_FILE_STRING
no arquivo http.c

Exemplo DEMO
Explicar
Nome das Páginas
Parâmetros de Configuração I
1.
2.
3.
4.
5.
6.
7.
8.
CLOCK_FREQ
TICKS_PER_SECONDS
TICK_PRESCALE_VALUE
MPFS_USE_PGRM
MPFS_RESERVE_BLOCK
STACK_USE_ICMP
STACK_USE_SLIP
STACK_USE_SLIP
Parâmetros de Configuração II
9. STACK_USE_UDP
10. STACK_USE_IP_GLEANING
11. STACK_USE_DHCP
12. STACK_USE_TCP
13. MY_DEFAULT_??? (configuração IP)
14. MAX_SOCKETS (máximo soquete TCP)
15. MAC TX BUFFER SIZE
16. MAC TX BUFFER COUNT
Parâmetros de Configuração III
17. MAX_HTTP_CONNECTIONS
18. TCP_NO_WAIT_FOR_ACK
19. STACK_CLIENT_MODE
20. MAX_UDP_SOCKETS
Servidor ou Cliente?

Dois modos de operação
Servidor
 Servidor e Cliente



STACK_CLIENT_MODE habilita o modo
cliente
O modo cliente provê:


TCPConnect, ARPResolve, ARPIsResolved
O módulo SMTP habilitará o módulo Cliente
Prática

Requisitos
Conhecimento da linguagem C
 Conhecimento de HTML
 Kit KPME-10
 MPLAB IDE
 Compilador MPLAB C18
 PC com interface Ethernet
 Vontade de praticar

Monitoração Remota de
Temperatura – AN002
Enviando String pela Serial – AN003
RTC – AN004
Cliente TCP – PC Java Server –
AN006
UDP/IP Ponto a Ponto – AN010
Gráfico em Colunas – AN011
Gráfico em Pontos – AN012
Controle de Máquinas a Distância –
AN013
Futuro
Adicionar funcionalidades ZIGBEE a
PME-10
Obrigado
Download