Ir ao conteúdo
  • Cadastre-se

Conexão de um PIC a internet


Posts recomendados

Primeira mente me desculpem pelo titulo do tópico, deveria ser "Conexão de um pic a internet" mas escrevi errado e não sei como edita-ló

Olá pessoal, eu vi um projeto de uma pessoa que través de um PIC ele enviou um e-mail, não lembro onde vi, e não consegui achar o link novamente, mas me interessou muito isso e fiquei com isso na cabeça querendo desenvolver a mesma aplicação, mas ai vem algumas duvidas.

 

Já estudei bastante de redes, protocolos, portas, etc... Então já entendo alguns conceitos básicos.

 

O primeiro problema é: A implementação desse programa seria mais simples conectando um pic ao roteador ou direto no cabo de rede que sai do modem ? (Ou seria a mesma coisa ?)

 

Depois de conectados, todo aparelho na rede precisa de um endereço IP. Como esse endereço é obtido ? (Falando de maneira bem especifica. Algum dado deve ser enviado para  receber algum endereço de IP ? )

 

Os cabos de par traçados tem funções especificas provavelmente, o que cada um deles significam? Podem ser identificados pelas cores ?

Depois de iniciada uma conexão como os dados devem ser enviados. Preciso saber coisas como tempo de sincronismo, estrutura de um pacote de dados, entre ostras coisas.

 

Sei que são muitas peguntas mas esta difícil achar esse tipo de coisa na internet, então se alguém poder agradeço muito.
 

Preciso principalmente das informações iniciais, por onde começar essa comunicação.
 

Obrigado a todos.

Link para o comentário
Compartilhar em outros sites

O primeiro problema é: A implementação desse programa seria mais simples conectando um pic ao roteador ou direto no cabo de rede que sai do modem ? (Ou seria a mesma coisa ?)

 

Se o modem estiver roteado, sim. Caso ele esteja em modo bridge é mais complicado.

 

 

Depois de conectados, todo aparelho na rede precisa de um endereço IP. Como esse endereço é obtido ? (Falando de maneira bem especifica. Algum dado deve ser enviado para  receber algum endereço de IP ? )

 

 

 

Você pode se definir um endereço IP, não tem nada de errado nisso, porém isso pode causar algum conflito caso outro dispositivo tenha o mesmo endereço. Caso um servidor DHCP esteja disponível, é preferível usar o DHCP para um endereço IP, mas não existe nada de errado em usar IP estático em uma rede com DHCP presente. Não é o ideal, mas pode ser feito. Só precisa ter cuidado para evitar conflitos, pois normalmente o servidor DHCP não sabe se o endereço que ele vai alocar para algum dispositivo já está sendo usado por um dispositivo com IP estático, somente se ele está sendo usado por algum dispositivo que efetuou um pedido DHCP anteriormente.

 

Os cabos de par traçados tem funções especificas provavelmente, o que cada um deles significam? Podem ser identificados pelas cores ?

Sim, procure pelo padrão EIA/TIA-568A ou B. Normalmente usa-se o B.

 

 

Você vai ter que usar um controlador Ethernet caso seu microcontrolador não o tenha integrado. Alguns normalmente usados com microcontroladores são o ENC28J60 e o WIZnet. O WIZnet possui uma pilha TCP/IP interna, o que é muito útil para um microcontrolador fraco. Pilha TCP/IP é algo meio pesado.

Link para o comentário
Compartilhar em outros sites

@victhor393

Primeiro, quando diz pilha TCP está se referindo ao pacote de dados que será enviado ? 

 

Você vai ter que usar um controlador Ethernet caso seu microcontrolador não o tenha integrado. Alguns normalmente usados com microcontroladores são o ENC28J60 e o WIZnet. O WIZnet possui uma pilha TCP/IP interna, o que é muito útil para um microcontrolador fraco. Pilha TCP/IP é algo meio pesado.

E nesse caso, o que o controlador Ethernet faz mas especificamente ?
Por que a ideia era programar tudo em um PIC para que o mesmo realizasse toda essa operação. Pode explicar melhor esse controlador?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Uma pilha TCP/IP é um software que implementa o protocolo TCP/IP, entre outras coisas. É algo necessário para se ter uma conexão entre dois pontos na internet. Não é um pacote;

Como Ethernet é a camada física provavelmente usada no seu caso (aqueles cabos de rede com conector RJ45), um controlador Ethernet é necessário para possibilitar a conexão. Ele é que vai ser responsável por fazer a interface entre seu PIC e a rede.. Se você quer usar apenas um PIC, terás que usar um com o controlador integrado, mas existem poucos: http://www.microchip.com/pagehandler/en-us/technology/ethernet/microcontrollers/home.html

Link para o comentário
Compartilhar em outros sites

Entendi o que você quis dizer com pilha TCP/IP agora, só não conhecia esse termo.
Eu estou quebrando a cabeça aqui em porque é secessionar esse controlador. Se nos cabos de rede só passam zeros e um eu não poderia eu mesmo implementar o TCP/IP em um software no meu PIC? Em outras palavras, gerar um código que me de a mesma saída que o controlador Ethernet.
Não entendo muito dessa área, mas isso me parece possível. Se não for, pode me dizer porque ?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

A pilha TCP/IP é algo completamente diferente e pode, sem problema algum, ser implementada em software - até mesmo porque é normalmente assim que é feito. O controlador Ethernet é responsável por encapsular pacotes em "frames Ethernet" e também receber esses "frames" e retirar os pacotes de dentro deles. Existe uma lógica meio complexa por trás disso, e que precisa ser rápida para operar nas velocidades envolvidas (10 Mbps no mínimo), por isso não tem como implementar Ethernet em software.

Link para o comentário
Compartilhar em outros sites

Isso é um projeto muito interessante...

Já vi vários utilizando o Arduino, facilita muito em relação ao PIC comum. Principalmente pelo suporte da comunidade, aliás, DCHP pode funcionar em um PIC comum e no Arduino sim, mas se não me engano consome muita memória, portanto, geralmente se utiliza IP estático mesmo. 

No caso do Arduino tem o módulo Ethernet separado, ou junto, em projetos baseados no design do Arduino.

Já no PIC me lembro de ter visto um da Microchip alguns anos atrás que possuía um controlador Ethernet integrado, acredito que era da família 24, não tenho certeza. 

Link para o comentário
Compartilhar em outros sites

Não tenho nenhum material a recomendar, sei apenas algumas coisas conceituais mas nada relacionado à implementação.

Eu estava errado, realmente dá para fazer isso com um microcontrolador de 8 bits (AVR): 

Não só isso, mas com vídeo também! 

Realmente impressionante. Agora, ele diz que isso não é uma pilha de rede completa, e sim algo bem limitado que é capaz de transmitir e receber alguns poucos pacotes diferentes, não sei se daria para implementar algo mais avançado.

Se o que você quer é somente se conectar à uma rede, limite-se a aprender como funciona uma pilha TCP/IP. Pense que o controlador Ethernet é meio que "mágica", tentar aprender tudo de uma vez só vai acabar fazendo você se enrolar, sem falar do consumo excessivo de recursos que o Ethernet iria ter, que poderia ser facilmente eliminado com apenas 1 CI controlador.

Implementar o controlador num microcontrolador é "forçar a barra", pode até ser possível, mas não quer dizer que você deveria fazê-lo. Inclusive, o cara que fez isso nos 2 vídeos disse que ele tem uma perda de 5-25% dos pacotes recebidos pelo microcontrolador (o que significa que a performance é horrível), e dá pra ver na tela do computador dele que o ping fica bem alto, mais de 5ms. Nos computadores que eu tenho aqui, eu tenho ping entre um computador e outro, com um switch no meio, de 0.2-0.3ms, e olha que tecnicamente o switch adiciona latência, o microcontrolador estava ligado diretamente ao PC naquele vídeo. Claro que isso depende do microcontrolador, mas como um módulo já prontinho com o ENC28J60 nem é tão caro assim (e bem barato se você estiver disposto a comprar de fora), não acho que vale a pena quebrar a cabeça pra fazer isso. É interessante, mas não é muito prático. Se quiser realmente implementar um controlador Ethernet que funcione bem mesmo, o jeito é partir para um FPGA.

Link para o comentário
Compartilhar em outros sites

Implementar com FPGA seria ótimo, mas não é possível para mim no momento. Cara realmente, concordo que posso não valer a pena e não ter muita utilidade e fazer tudo isso, mas é uma paixão minha o funcionamento das coisas do zero (e também o funcionamento das tecnologias antigas). Então não resisto a quebrar a cabeça com essas coisas kk. Até porque conhecimento nunca é demais. Depois posso utiliza-ló para implementar com FPGA. Mas até terminar de aprender todo o funcionamento usarei o pic mesmo. Mesmo que não saiba da implementação, agradeço pela ajuda \o\

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...