Seminário Ethernet PME-10 Controlador Ethernet 2EI Eletrônica Embarcada para Internet.
-
Upload
joana-lameira-salazar -
Category
Documents
-
view
218 -
download
0
Transcript of Seminário Ethernet PME-10 Controlador Ethernet 2EI Eletrônica Embarcada para Internet.
Seminário EthernetSeminário Ethernet
PME-10 Controlador PME-10 Controlador Ethernet 2EIEthernet 2EI
Eletrônica Embarcada para Internet
AgendaAgenda OverviewOverview Informações do ProdutoInformações do Produto FerramentasFerramentas Pilha TCP/IPPilha TCP/IP AplicaçõesAplicações
Por quê usar Sistemas Por quê usar Sistemas Embarcados?Embarcados?
Resolver problemas de comunicação Resolver problemas de comunicação RemotaRemota Monitoração remotaMonitoração remota Controle remotoControle remoto Diagnóstico remotoDiagnóstico remoto Aquisição de dadosAquisição de dados
Ter a capacidade de acessar sistemas Ter a capacidade de acessar sistemas embarcados remotamente implica em embarcados remotamente implica em economia de tempo e dinheiroeconomia de tempo e dinheiro
Por quê Ethernet?Por quê Ethernet? Ethernet é a maior rede presente nos Ethernet é a maior rede presente nos
ramos de comércio e indústriaramos de comércio e indústria A infra-estrutura Ethernet, A infra-estrutura Ethernet,
interoperabilidade e escalabilidade interoperabilidade e escalabilidade asseguram um fácil desenvolvimentoasseguram um fácil desenvolvimento
Uma vez que o equipamento esteja Uma vez que o equipamento esteja conectado a rede Ethernet, ele pode conectado a rede Ethernet, ele pode ser monitorado e controlado pela ser monitorado e controlado pela InternetInternet
Origem da Ethernet Origem da Ethernet EmbarcadaEmbarcada
Mercado de PCs, modelo OSI da ISOMercado de PCs, modelo OSI da ISO
Características da Ethernet Características da Ethernet EmbarcadaEmbarcada
Barramento compartilhadoBarramento compartilhado Acesso ao meio físico: Acesso Acesso ao meio físico: Acesso
Múltiplo com Verificação de Múltiplo com Verificação de Portadora e Detecção de Colisão Portadora e Detecção de Colisão (CSMA/CD)(CSMA/CD)
Velocidade do barramento: 10MbpsVelocidade do barramento: 10Mbps Tamanho do pacote: até 1500 bytesTamanho do pacote: até 1500 bytes
Mercado EthernetMercado Ethernet
Mercado EthernetMercado Ethernet
Informações do Informações do ProdutoProduto
PME-10PME-10
PME-10PME-101.1. Microcontrolador Microcontrolador
PIC18F8720PIC18F87202.2. Controlador Ethernet Controlador Ethernet
Realtek RTL8019ASRealtek RTL8019AS3.3. Conector RJ-45Conector RJ-454.4. Chave resetChave reset5.5. RJ-45RJ-456.6. Conector para RS232Conector para RS2327.7. ICSPICSP8.8. Portas de I/OPortas de I/O
Por quê Ethernet Por quê Ethernet 10Mbps10Mbps
Uso em aplicações que necessitam Uso em aplicações que necessitam enviar ou receber poucos bytesenviar ou receber poucos bytes
Não justificável usar Ethernet Não justificável usar Ethernet 100Mbps com microcontroladores 100Mbps com microcontroladores de 8 bitsde 8 bits
CustoCusto
Interface de Interface de Programação - IP10Programação - IP10
Baixo CustoBaixo Custo Software: IC-Prog de Bonny GijzenSoftware: IC-Prog de Bonny Gijzen Muitos outros PIC além do Muitos outros PIC além do
PIC18F8720PIC18F8720
Placa Fonte Demonstração Placa Fonte Demonstração – FD01– FD01
Fonte +5VDCFonte +5VDC Demonstração:Demonstração:
Entrada digital Entrada digital (push-button)(push-button)
Saída digital (LED) Saída digital (LED) Conversão Conversão
Analógica-Digital Analógica-Digital (pot.), e(pot.), e
Display de LCD Display de LCD (Porta J)(Porta J)
Kit KPME10Kit KPME101.1. PME-10PME-102.2. Cabo serialCabo serial3.3. IP-10IP-104.4. Cabo crossoverCabo crossover5.5. Placa Fonte Placa Fonte
DemonstraçãoDemonstração6.6. CD-ROM com CD-ROM com
exemplosexemplos
AplicaçõesAplicaçõesAutomação residencialAutomação residencial
Segurança.Segurança.Automação Industrial.Automação Industrial.Automação Predial, e Automação Predial, e
outros tipos de aquisição de dados e controle outros tipos de aquisição de dados e controle remoto.remoto.
Ferramentas de TrabalhoFerramentas de Trabalho
Stack MicrochipStack Microchip
Sem custoSem custo Uso modular. Utilize somente o que necessitarUso modular. Utilize somente o que necessitar Família PIC18Família PIC18 Documentação:AN833 e AN870 da MicrochipDocumentação:AN833 e AN870 da Microchip
MPLAB IDE (Integrated MPLAB IDE (Integrated Development Environment)Development Environment)
Ferramenta de desenvolvimento Ferramenta de desenvolvimento para microcontroaldores PIC e dsPICpara microcontroaldores PIC e dsPIC
FreeFree WindowsWindows
MPLAB C 18MPLAB C 18 Compilador ANSI-C para família de Compilador ANSI-C para família de
microcontroladores PIC18microcontroladores PIC18 WindowsWindows Trabalha com o MPLAB IDETrabalha com o MPLAB IDE Versão estudante completa por 60 Versão estudante completa por 60
diasdias
IC PROGIC PROG Programador (escreve e verifica)Programador (escreve e verifica)
Endereço MAC Endereço MAC 2EI2EI
OUI - Organizationally OUI - Organizationally Unique IdentifierUnique Identifier00.16.a9.xx.xx.xx00.16.a9.xx.xx.xx
2a. Parte2a. ParteStack TCP/IPStack TCP/IP
ObjetivosObjetivos ObjetivoObjetivo
Explicar os detalhes sobre a pilha Explicar os detalhes sobre a pilha TCP/IP da MicrochipTCP/IP da Microchip
RequisitosRequisitos Conhecimento da linguagem CConhecimento da linguagem C Idéia sobre Ethernet/Intranet/InternetIdéia sobre Ethernet/Intranet/Internet Conhecimentos da linguagem HTMLConhecimentos da linguagem HTML
MódulosMódulos
ArquivosArquivos MAC – Media Access LayerMAC – Media Access Layer SLIP – Media Access Layer for SLIPSLIP – Media Access Layer for SLIP ARP – Address Resolution ProtocolARP – Address Resolution Protocol IP – Internet ProtocolIP – Internet Protocol ICMP – Internet Control Message ProtocolICMP – Internet Control Message Protocol TCP – Tranmission Control ProtocolTCP – Tranmission Control Protocol UDP – User Datagram ProtocolUDP – User Datagram Protocol StackTask – Coordenador Stack ManagerStackTask – Coordenador Stack Manager HTTP Server – HyperText Transfer Protocol ServerHTTP Server – HyperText Transfer Protocol Server DHCP Client – Dynamic Host Configuration ProtocolDHCP Client – Dynamic Host Configuration Protocol IP Gleaning – Para configurar endereço IPIP Gleaning – Para configurar endereço IP FTP Server – File Transfer Protocol ServerFTP Server – File Transfer Protocol Server
Projeto BásicoProjeto BásicoMpNICPG.pjt : Compilador MpNICPG.pjt : Compilador
C18, NIC, MPFS na Memória C18, NIC, MPFS na Memória de Programade Programa
MAC – Media Access MAC – Media Access ControlControl
Suporte para Realtek RTL8019ASSuporte para Realtek RTL8019AS Buffer : SRAM do RTL8019ASBuffer : SRAM do RTL8019AS
Soquete MicrochipSoquete Microchip É um dos pontos de comunicação de uma É um dos pontos de comunicação de uma
rederede Cada soquete tem um endereço IP e uma Cada soquete tem um endereço IP e uma
portaporta Permite conexões concorrentes:Permite conexões concorrentes:
N conexões HTTP simultâneasN conexões HTTP simultâneas M aplicações TCP,UDP simultâneasM aplicações TCP,UDP simultâneas
Todos os soquetes dividem o mesmo bufferTodos os soquetes dividem o mesmo buffer Pró: menos memória por soquetePró: menos memória por soquete Contra: Uso do buffer em uma só passada pela Contra: Uso do buffer em uma só passada pela
tarefatarefa
TCP – Transmission Control TCP – Transmission Control ProtocolProtocol
Orientado a conexão. Só ocorre troca de Orientado a conexão. Só ocorre troca de dados após o estabelecimento da conexãodados após o estabelecimento da conexão
Transferência de dados confiável. Transferência de dados confiável. Sistema de seqüência e número de Sistema de seqüência e número de reconhecimento que habilitam o destino a reconhecimento que habilitam o destino a reconhecer dados específicoreconhecer dados específico
De 2 a 253 soquetes limitados somente De 2 a 253 soquetes limitados somente pela memória disponível e compilador pela memória disponível e compilador usadousado
TCP – Transmission Control TCP – Transmission Control ProtocolProtocol
Cada soquete consome Cada soquete consome aproximadamente 36 bytesaproximadamente 36 bytes
Compartilhamento dos buffers de Compartilhamento dos buffers de transmissão e recepçãotransmissão e recepção
ChecksumChecksum Configuração do Configuração do
TCP_NO_WAIT_FOR_ACK, isto torna os TCP_NO_WAIT_FOR_ACK, isto torna os dados mais lentos ou não durante uma dados mais lentos ou não durante uma transmissãotransmissão
UDP – User Datagram UDP – User Datagram ProtocolProtocol
Protocolo sem conexãoProtocolo sem conexão Não há recuperação devido a errosNão há recuperação devido a erros Não há checksumNão há checksum Permite até 254 soquetesPermite até 254 soquetes Múltiplas aplicações podem acessar Múltiplas aplicações podem acessar
o UDP simultaneamenteo UDP simultaneamente
IP – Internet ProtocolIP – Internet Protocol Ajuda os dados a encontrarem o destino Ajuda os dados a encontrarem o destino
mesmo que o dado tenha que viajar por mesmo que o dado tenha que viajar por muitas redesmuitas redes
O endereço IP deve ser único para cada O endereço IP deve ser único para cada nó da rede (32 bits, ex.: 192.168.111.1nó da rede (32 bits, ex.: 192.168.111.1
Cada endereço IP tem duas partes:Cada endereço IP tem duas partes: Endereço de rede que é o mesmo para Endereço de rede que é o mesmo para
todos os nós da redetodos os nós da rede Endereço do nóEndereço do nó
IP – Internet ProtocolIP – Internet Protocol Subnet é a divisão da rede em grupos.Subnet é a divisão da rede em grupos. Máscara de rede: bits que Máscara de rede: bits que
correspondem ao endereço de rede e correspondem ao endereço de rede e subnet são 1. Bits dos nós são zero. subnet são 1. Bits dos nós são zero. Em uma rede classe B dois bytes são Em uma rede classe B dois bytes são de endereço de rede e dois bytes são de endereço de rede e dois bytes são de endereço de nós. A máscara de de endereço de nós. A máscara de uma subnet com 8 bits de ID é uma subnet com 8 bits de ID é 255.255.255.0 255.255.255.0
IP – Internet ProtocolIP – Internet Protocol IP estático:IP estático:
Deve ser definido no códigoDeve ser definido no código IP Dinâmico:IP Dinâmico:
Necessita de um PC que tenha Servidor Necessita de um PC que tenha Servidor DHCPDHCP
Pode ser atrelado ao endereço MACPode ser atrelado ao endereço MAC
DHCP – Dynamic Host DHCP – Dynamic Host Configuration ProtocolConfiguration Protocol
Método Automático de configuração do IPMétodo Automático de configuração do IP Endereço IP, endereço do gateway e máscara Endereço IP, endereço do gateway e máscara
são configurados no power-upsão configurados no power-up Substituição automática de IP se necessário Substituição automática de IP se necessário
(15 minutos)(15 minutos) Necessita de um servidor DHCP na redeNecessita de um servidor DHCP na rede Problemas de sistemas embarcado, como Problemas de sistemas embarcado, como
descobrir o endereço IP:descobrir o endereço IP: Através de LCD>Através de LCD> Atrelar ao endereço MACAtrelar ao endereço MAC
Não disponível com SLIPNão disponível com SLIP
Servidor HTTPServidor HTTP Múltiplas conexões simultâneasMúltiplas conexões simultâneas Suporta HTMLSuporta HTML Permite a criação de páginas Web Permite a criação de páginas Web
dinâmicasdinâmicas As páginas são armazenadas na As páginas são armazenadas na
memória de programamemória de programa MPFS – Microchip File System.MPFS – Microchip File System.
MPFS – Microchip File MPFS – Microchip File SystemSystem
Converte qualquer página Web num Converte qualquer página Web num formato compatível de armazenamentoformato compatível de armazenamento
Até 64KbytesAté 64Kbytes Utilitário PC MPFS.EXE para gerar a Utilitário PC MPFS.EXE para gerar a
imagemimagem Todas as páginas em uma única pastaTodas as páginas em uma única pasta Nome: 8 + 3Nome: 8 + 3 Páginas Web não podem conter: ‘, “, <, >, Páginas Web não podem conter: ‘, “, <, >,
#, %, {, }, [, ], |, \, ~ e ^#, %, {, }, [, ], |, \, ~ e ^
APIs do Servidor HTTPAPIs do Servidor HTTP HTTPInitHTTPInit HTTPServerHTTPServer
Executa as tarefas do Servidor HTTP. Deve ser Executa as tarefas do Servidor HTTP. Deve ser chamada periodicamentechamada periodicamente
HTTPGetVarHTTPGetVar Alimenta as interfaces CGI com os valores das Alimenta as interfaces CGI com os valores das
variáveis que se encontram no microcontrolador.variáveis que se encontram no microcontrolador. HTTPExecCmdHTTPExecCmd
Executa os comandos provenientes das Executa os comandos provenientes das interfaces CGIinterfaces CGI
Páginas Dinâmicas Páginas Dinâmicas HTMLHTML
Devem ter extensão de arquivo .cgiDevem ter extensão de arquivo .cgi Método de substituição de variáveisMétodo de substituição de variáveis Formato: %xx – xx é a variável (00-Formato: %xx – xx é a variável (00-
99).99). A substituição pode ser de um ou A substituição pode ser de um ou
mais caracteresmais caracteres Use extra % para mostrar %Use extra % para mostrar %
23%% mostra 23%23%% mostra 23%
Exemplo de Substituição de Exemplo de Substituição de Variáveis (Status.cgi)Variáveis (Status.cgi)
1.1. <table><table>2.2. <tr><td><b>Resultados</b></td></tr><tr><td><b>Resultados</b></td></tr>3.3. <tr><td>Pot1:</td><td>%02</td></tr><tr><td>Pot1:</td><td>%02</td></tr>4.4. <tr><td>Pot2:</td><td>%03</td></tr><tr><td>Pot2:</td><td>%03</td></tr>5.5. </table></table>6.6. <table><table>7.7. <tr><td>Chave:</td><td>%04</td></tr><tr><td>Chave:</td><td>%04</td></tr>8.8. <tr><td>Led</td><td>A2=%01</td></<tr><td>Led</td><td>A2=%01</td></
tr>tr>9.9. </table></table>
Exemplo de Substituição de Exemplo de Substituição de Variáveis (Status.cgi)Variáveis (Status.cgi)
Exemplo de Substituição de Exemplo de Substituição de Variáveis (Status.cgi)Variáveis (Status.cgi)
Trocando conteúdo de um caracterTrocando conteúdo de um caracter ...Pot=...Pot=%01%01......
Trocando uma figura baseada numa Trocando uma figura baseada numa variávelvariável Img src=LEDImg src=LED%01%01.gif.gif
LinkLink <a href=<a href=%01%01.htm>LinkName</a>.htm>LinkName</a>
HTTPGetVarHTTPGetVar É chamada qdo o Servidor HTTP É chamada qdo o Servidor HTTP
encontra ‘%XX’ em uma página CGIencontra ‘%XX’ em uma página CGI (BYTE var, WORD ref, BYTE *val)(BYTE var, WORD ref, BYTE *val)
var – variável cujo status é para ser var – variável cujo status é para ser retornadoretornado
ref – referênciaref – referência HTTP_START_OF_VAR – mais bytes para HTTP_START_OF_VAR – mais bytes para
transferênciatransferência HTTP_END_OF_VAR – último byte já enviadoHTTP_END_OF_VAR – último byte já enviado
val – byte transferidoval – byte transferido
Exemplo de HTTPGetVarExemplo de HTTPGetVar if (var==4) // Identificação da variávelif (var==4) // Identificação da variável {Retorna ‘1’ se chave aberta, caso {Retorna ‘1’ se chave aberta, caso
contrário 0contrário 0 if (RB5) *val=‘1’ ;if (RB5) *val=‘1’ ; else *val=‘0’;else *val=‘0’; return HTTP_END_OF_VAR;return HTTP_END_OF_VAR; }} else..else.. // checa por outras variáveis// checa por outras variáveis
Comando HTMLComando HTML
Dado é transferido do PC para o PICDado é transferido do PC para o PIC Usa o método GETUsa o método GET A aplicação do usuário deve A aplicação do usuário deve
implementar o comandoimplementar o comando Atenção: múltiplos usuários podem Atenção: múltiplos usuários podem
executar o mesmo comando executar o mesmo comando simultaneamentesimultaneamente
Deve-se proteger dados críticosDeve-se proteger dados críticos
Comando HTMLComando HTML <<FORM METHOD=GETFORM METHOD=GET action=0> action=0> <table><table> <tr><td>Alarme Temperatura Limite Inferior</td><tr><td>Alarme Temperatura Limite Inferior</td> <td>input type=text size=2 maxlenght=2 name=<td>input type=text size=2 maxlenght=2 name=AA</td></td> <td>Alarme Temperatura Limite Superior</td><td>Alarme Temperatura Limite Superior</td> <td>input type=text size=2 maxlenght=2 name=<td>input type=text size=2 maxlenght=2 name=BB</td></td> <td>Alarme Ativo</td><td>Alarme Ativo</td> <td>input type=text size=1 maxlenght=1 name=<td>input type=text size=1 maxlenght=1 name=CC</td></td> </tr></tr> <tr><td>Senha</td><tr><td>Senha</td> <td>input type=text size=5 maxlenght=5 name=<td>input type=text size=5 maxlenght=5 name=DD</td></td> <td>Nova Senha</td><td>Nova Senha</td> <td>input type=text size=5 maxlenght=5 name=E</td><td>input type=text size=5 maxlenght=5 name=E</td> </tr></tr> <td><input type=‘submit value=Enviar></td></tr></table><td><input type=‘submit value=Enviar></td></tr></table>
Comando HTMLComando HTML
O navegador Web envia os seguintes argumentos para o PICO navegador Web envia os seguintes argumentos para o PIC argv[0]=“0” // proveniente de action=0argv[0]=“0” // proveniente de action=0 argv[1]=“A”argv[1]=“A” argv[2]=“limite inferior de temperatura”argv[2]=“limite inferior de temperatura” argv[3]=“B”argv[3]=“B” argv[4]=“limite superior de temperatura” argv[4]=“limite superior de temperatura” argv[5]=“C”argv[5]=“C” argv[6]=“S ou N” // S ativa alarme – N não ativa alarmeargv[6]=“S ou N” // S ativa alarme – N não ativa alarme Argv[7]=“D”Argv[7]=“D” Argv[8]=“XXXXX” // senha com máximo de 5 caracteresArgv[8]=“XXXXX” // senha com máximo de 5 caracteres Argv[9]=“E”Argv[9]=“E” Argv[10]=“XXXXX” // nova senhaArgv[10]=“XXXXX” // nova senha
Limites de ComandoLimites de Comando Número máximo de argumentosNúmero máximo de argumentos
Veja Veja MAX_HTTP_ARGSMAX_HTTP_ARGS e e MAX_HTML_CMD_LENMAX_HTML_CMD_LEN em “http.c” em “http.c”
PadrãoPadrão MAX_HTTP_ARGS = 5MAX_HTTP_ARGS = 5 MAX_HTML_CMD_LEN = 80MAX_HTML_CMD_LEN = 80
Excedendo o limite,Excedendo o limite, Os argumentos extra são ignoradosOs argumentos extra são ignorados
Tipos de página WebTipos de página Web ExtensõesExtensões
txt, htm, gif, cgi, jpg, cla e wav.txt, htm, gif, cgi, jpg, cla e wav. Se necessário modifique “httpFiles” e Se necessário modifique “httpFiles” e
“httpContents” no arquivo http.c“httpContents” no arquivo http.c Página Web inicialPágina Web inicial
Index.htmIndex.htm Definido em Definido em
HTTP_DEFAULT_FILE_STRING no HTTP_DEFAULT_FILE_STRING no arquivo http.carquivo http.c
Exemplo DEMOExemplo DEMOExplicarExplicar
Nome das PáginasNome das Páginas
Parâmetros de Parâmetros de Configuração IConfiguração I
1.1. CLOCK_FREQ CLOCK_FREQ 2.2. TICKS_PER_SECONDSTICKS_PER_SECONDS3.3. TICK_PRESCALE_VALUETICK_PRESCALE_VALUE4.4. MPFS_USE_PGRMMPFS_USE_PGRM5.5. MPFS_RESERVE_BLOCKMPFS_RESERVE_BLOCK6.6. STACK_USE_ICMPSTACK_USE_ICMP7.7. STACK_USE_SLIP STACK_USE_SLIP 8.8. STACK_USE_SLIPSTACK_USE_SLIP
Parâmetros de Parâmetros de Configuração IIConfiguração II
9. STACK_USE_UDP9. STACK_USE_UDP10. STACK_USE_IP_GLEANING10. STACK_USE_IP_GLEANING11. STACK_USE_DHCP11. STACK_USE_DHCP12. STACK_USE_TCP12. STACK_USE_TCP13. MY_DEFAULT_??? (configuração IP)13. MY_DEFAULT_??? (configuração IP)14. MAX_SOCKETS (máximo soquete 14. MAX_SOCKETS (máximo soquete
TCP)TCP)15. MAC TX BUFFER SIZE15. MAC TX BUFFER SIZE16. MAC TX BUFFER COUNT16. MAC TX BUFFER COUNT
Parâmetros de Parâmetros de Configuração IIIConfiguração III
17. MAX_HTTP_CONNECTIONS17. MAX_HTTP_CONNECTIONS18. TCP_NO_WAIT_FOR_ACK18. TCP_NO_WAIT_FOR_ACK19. STACK_CLIENT_MODE19. STACK_CLIENT_MODE20. MAX_UDP_SOCKETS20. MAX_UDP_SOCKETS
Servidor ou Cliente?Servidor ou Cliente? Dois modos de operaçãoDois modos de operação
ServidorServidor Servidor e ClienteServidor e Cliente
STACK_CLIENT_MODE habilita o modo STACK_CLIENT_MODE habilita o modo clientecliente
O modo cliente provê:O modo cliente provê: TCPConnect, ARPResolve, ARPIsResolvedTCPConnect, ARPResolve, ARPIsResolved
O módulo SMTP habilitará o módulo O módulo SMTP habilitará o módulo ClienteCliente
PráticaPrática RequisitosRequisitos
Conhecimento da linguagem CConhecimento da linguagem C Conhecimento de HTMLConhecimento de HTML Kit KPME-10Kit KPME-10 MPLAB IDEMPLAB IDE Compilador MPLAB C18Compilador MPLAB C18 PC com interface EthernetPC com interface Ethernet Vontade de praticarVontade de praticar
Monitoração Remota de Monitoração Remota de Temperatura – AN002Temperatura – AN002
Enviando String pela Serial Enviando String pela Serial – AN003– AN003
RTC – AN004RTC – AN004
Cliente TCP – PC Java Cliente TCP – PC Java Server – AN006Server – AN006
UDP/IP Ponto a Ponto – UDP/IP Ponto a Ponto – AN010AN010
Gráfico em Colunas – Gráfico em Colunas – AN011AN011
Gráfico em Pontos – Gráfico em Pontos – AN012AN012
Controle de Máquinas a Controle de Máquinas a Distância – AN013Distância – AN013
FuturoFuturoAdicionar funcionalidades Adicionar funcionalidades
ZIGBEE a PME-10ZIGBEE a PME-10
ObrigadoObrigado