seminário ethernet pme-10 controlador ethernet 2ei eletrônica embarcada para internet

Post on 07-Apr-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related