Wiznet W5100 vs. Microchip ENCx24J600


8

Quais são os prós e os contras do Wiznet W5100 ou Microchip EncX24J600?

É um pouco complicado de explicar.

Minha pergunta é sobre o desempenho da pilha TCP do Microchip vs o núcleo TCP / IP do Wiznet no chip. Também sobre os custos ($$).

Por exemplo: Com o Wiznet, o microcontrolador terá menos processamento, liberando o microcontrolador para realizar outras tarefas. Mas acho que isso dependerá de qual camada você está trabalhando.

Com a pilha TCP do Microchip, talvez eu tenha limitações nos periféricos que posso controlar. Talvez eu precise usar um segundo microcontrolador.

Então, espero ter explicado melhor agora para você me ajudar na melhor escolha.


Eu estava me preparando para pesquisar soluções para fazer algo assim. Obrigado por perguntar.
Kortuk

1
Algum motivo especial para a ENCX24J600? A ENC28J60 é muito mais popular.
91110 Kevin Smith Vermeer #

1
@reemrevnivek Preciso me comunicar a 100 Mbps.
Daniel Grillo

1
O W5100 está vinculado a um link de velocidade unidirecional, com um protocolo muito ineficiente (envia um endereço de 16 bits com cada byte de dados iirc). Então você tem como (link SPI) / 3 a velocidade máxima efetiva half duplex. Veja também a minha resposta completa abaixo
Marco van de Voort

Respostas:


3

O W5100 possui um núcleo TCP / IP no chip. Com os dispositivos Microchip ENC, o usuário deve implementar uma pilha TCP / IP, na MCU que faz interface com ela. Isso é bastante fácil com um PIC adequado, pois as pilhas TCP / IP gratuitas estão disponíveis no Microchip.

O W5100 tem a vantagem de poder ser usado com praticamente qualquer MCU, mas é necessário um dispositivo bastante poderoso para executar uma pilha TCP / IP se um chip ENC for usado.

Obviamente, outra opção é usar um MCU com um MAC e PHY embutidos. Microchip faz alguns bons, e existem variantes ARM com eles também.


Essa é a extensão do meu conhecimento.
21410 Kortuk

2

A empresa em que trabalho utiliza o PIC18F97J60. É um microprocessador de 8 bits com um MAC e PHY embutido que é muito semelhante ao ENC24J60. Se você planeja usar um microprocessador PIC, poderá usar a pilha Microchip TCP / IP. Essa pilha fornece tudo, até a camada do aplicativo. Se você estiver usando um processador que não seja do Microchip, acho que você poderá usar apenas os drivers ENC24J60. Dito isso, parece que o Wiznet integra as camadas de transporte ao hardware, não apenas ao MAC e ao PHY. No entanto, eles deixam para o desenvolvedor implementar as camadas de aplicativos como Telnet, FTP e HTTP.


Uma coisa a observar, o PIC18F97J60 parece ser garantido apenas por 100 ciclos de gravação em flash, portanto, pode ser um problema a ser desenvolvido. ww1.microchip.com/downloads/en/DeviceDoc/39762e.pdf (pág. 429)
Toby Jaffey

O número mínimo de ciclos de gravação é 100. Típico é 1k. Eu nunca tive um problema.
mjh2007

Esse número provavelmente estará em toda a faixa de temperatura, portanto é improvável que a resistência em temperaturas normais seja um problema.
mikeselectricstuff


1

Eu sei que é velho, mas por acaso fiz isso com uma dspice no ano passado, então vou resumir para o benefício de outras pessoas.

Primeiro, eu não usaria o W5100, mas seu irmão W5500 , que é basicamente uma revisão, e utiliza o SPI muito melhor. Eu também consideraria mudar para uma peça que tenha DMA, especialmente se você quiser torná-lo apenas UDP.

Nos dois casos, você provavelmente usará a pilha TCP / IP Microchip MLA, o Wiznet fornece correções para isso.

Infelizmente, todas as variantes de pilha do Microchip TCP / IP parecem bloquear a comunicação através do SPI (sem DMA, sem modo de buffer aprimorado) . Tentei reduzi-lo apenas para UDP e recortei toda a parte do microchip (usando o driver subjacente do wiznet diretamente e reescrevendo-o no processo).

Também concordo com a MJH que o PIC18F97J60 habilitado para DMA é uma escolha melhor do que uma PIC mais barata com a ENC (a menos que os números sejam realmente altos), mas fiquei um pouco decepcionado por o TCP / IP realmente não utilizar os benefícios do J60. para o menor denominador comum.

As vantagens de usar uma parte IP em vez de uma parte Ethernet é que você pode limitar um soquete a uma determinada porta e não precisará transferir nenhum tráfego não relacionado pelo seu link SPI. O W5500 possui 4KB por soquete, e eu uso soquetes separados para receber e enviar para maximizar a utilização do buffer.

Minha pilha UDP atual reage apenas à interrupção do wiznet e não baixa os dados de carga útil de que não precisa. Eu o uso UDP, embora com base em pacotes (sem fluxos), e uso transmissões nas portas para envio (para evitar ter que armazenar em cache os dados MAC para fins de ARP, embora, em retrospecto, essa talvez não seja a melhor opimização).

Na placa de dados 60MIPS, uma viagem de ida e volta (recebe um pacote pequeno, responde com um pacote pequeno) leva cerca de 100-120us, dos quais 10-12us são tempo de CPU em três blocos diferentes (pré-recebimento (3-5us), pós-recebimento e envio (5-7 nos dependendo) e pós-envio (2us) Uma vez a cada 2kb eu tenho que fazer alguma manutenção que é cerca de 40us tempo de parede e 5us tempo de CPU.

Comandos curtos são feitos usando o buffer aprimorado. Mais tempo é feito usando DMA usando (no dspice, o DMA precisa de 2 bits de tempo entre bytes (ou palavras no modo de 16 bits), o buffer aprimorado não).

A suíte ainda não está aberta, mas se o sb precisar de indicadores, responda nos comentários. Pretendo portar a pilha para pic32 (mk) no próximo ano.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.