Wiznet W5100 contra Microchip ENCx24J600

8

¿Cuáles son las ventajas y desventajas de usar Wiznet W5100 o Microchip EncX24J600?

Es un poco complicado de explicar.

Mi pregunta es sobre el rendimiento de la pila Microchip TCP frente al núcleo Wiznet TCP / IP en el chip. También sobre los costos ($$).

Por ejemplo: con Wiznet, el microcontrolador tendrá menos procesamiento, liberando así al microcontrolador para realizar otras tareas. Pero creo que esto dependerá de la capa en la que esté trabajando.

Con la pila Microchip TCP, tal vez tengo limitaciones en los periféricos que puedo controlar. Tal vez tendré que usar un segundo microcontrolador.

Entonces, espero haberte explicado mejor ahora para que me ayudes en la mejor opción.

Daniel Grillo
fuente
Me estaba preparando para buscar soluciones para hacer algo como esto. Gracias por preguntar.
Kortuk
1
¿Alguna razón especial para el ENCX24J600? El ENC28J60 es mucho más popular.
Kevin Vermeer
1
@reemrevnivek Necesito comunicarme a 100 Mbps.
Daniel Grillo
1
El W5100 está vinculado con un enlace de velocidad unidireccional, con un protocolo muy ineficiente (envía una dirección de 16 bits con cada byte de datos iirc). Entonces obtuviste (enlace SPI) / 3 como la velocidad máxima media dúplex efectiva. Vea también mi respuesta completa a continuación
Marco van de Voort

Respuestas:

3

El W5100 tiene un núcleo TCP / IP en el chip. Con los dispositivos Microchip ENC, el usuario debe implementar una pila TCP / IP, en la MCU que está conectada a ella. Esto es bastante fácil con un PIC adecuado, ya que Microchip ofrece pilas TCP / IP gratuitas.

El W5100 tiene la ventaja de que se puede usar con prácticamente cualquier MCU, pero se necesita un dispositivo bastante potente para ejecutar una pila TCP / IP si se usa un chip ENC.

Por supuesto, otra opción es usar un MCU con un MAC y PHY incorporados. Microchip hace algunos buenos, y también hay variantes ARM con ellos.

Leon Heller
fuente
Ese es el alcance de mi conocimiento.
Kortuk
2

La empresa para la que trabajo utiliza el PIC18F97J60. Es un microprocesador de 8 bits con un MAC y PHY incorporados que es muy similar al ENC24J60. Si planea usar un microprocesador PIC, puede usar la pila Microchip TCP / IP. Esta pila proporciona todo hasta la capa de aplicación. Si está utilizando un procesador que no es Microchip, creo que solo puede usar los controladores ENC24J60. Dicho esto, parece que Wiznet integra las capas de transporte en el hardware, no solo en MAC y PHY. Sin embargo, dejan que el desarrollador implemente las capas de aplicaciones como Telnet, FTP y HTTP.

mjh2007
fuente
Una cosa a tener en cuenta, el PIC18F97J60 solo parece estar garantizado para 100 ciclos de escritura flash, por lo que puede ser un problema para desarrollar. ww1.microchip.com/downloads/en/DeviceDoc/39762e.pdf (pág. 429)
Toby Jaffey
El número mínimo de ciclos de escritura es 100. Típico es 1k. Nunca he tenido un problema
mjh2007
Es probable que esa cifra supere todo el rango de temperatura, por lo que es poco probable que la resistencia a temperaturas normales sea un problema.
mikeselectricstuff
1

Sé que es viejo, pero resultó que hice esto con un dspice el año pasado, así que resumiré para beneficio de otras personas.

Primero, no usaría el W5100, pero su hermano W5500 , que es básicamente una revisión, y utiliza el SPI mucho mejor. También consideraría cambiar a una parte que tenga DMA, especialmente si desea que sea solo UDP.

En ambos casos, probablemente usará la pila TCP / IP de Microchip MLA, Wiznet proporciona parches para esto.

Desafortunadamente, todas las variantes de pila TCP / IP de Microchip parecen bloquear la comunicación a través de SPI (sin DMA, sin modo de búfer mejorado) . Traté de reducirlo a UDP solamente y recorté toda la parte del microchip (usando el controlador subyacente wiznet directamente y reescribiéndolo en el proceso).

También estoy de acuerdo con MJH en que el PIC18F97J60 habilitado para DMA es una mejor opción que un PIC más barato con ENC (a menos que sus números sean realmente altos), pero me decepcionó un poco que el TCP / IP no utilice realmente los beneficios del J60, pegado al mínimo común denominador.

Las ventajas de usar una parte de IP en lugar de una parte de Ethernet es que puede limitar un socket a un determinado puerto y no tendrá que transferir ningún tráfico no relacionado a través de su enlace SPI. El W5500 tiene 4KB por zócalo, y utilizo zócalos separados para recibir y enviar para maximizar la utilización del búfer.

Mi pila UDP actual solo reacciona en la interrupción de wiznet y no descarga datos de carga útil que no necesita. Lo uso UDP, aunque basado en paquetes (sin secuencias), y uso transmisiones en los puertos para enviar (para evitar tener que almacenar en caché los datos MAC para fines ARP, aunque en retrospectiva, tal vez no sea la mejor optimización).

En el 60MIPS dspice, un viaje de ida y vuelta (recibe un paquete pequeño, responde con un paquete pequeño) toma alrededor de 100-120us, de los cuales aproximadamente 10-12us es tiempo de CPU en tres fragmentos diferentes (pre-recepción (3-5us), post-recepción y pre-envío. (5-7 us dependiendo) y envío posterior (2us). Una vez cada 2kb tengo que hacer un mantenimiento que es aproximadamente 40us de tiempo de pared y 5us de tiempo de CPU.

Los comandos cortos se realizan utilizando un búfer mejorado. Ya se hace usando DMA usando (en dspice, DMA necesita 2 bits de tiempo entre bytes (o palabras en modo de 16 bits), el buffer mejorado no).

La suite no está (todavía) abierta, pero si sb necesita punteros, responda en los comentarios. Planeo portar la pila a pic32 (mk) en el próximo año.

Marco van de Voort
fuente