Wiznet W5100 vs. Microchip ENCx24J600

8

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

Es un poco complicado de explicar.

Mi pregunta es sobre el rendimiento de la pila de 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, lo que liberará al microcontrolador para realizar otras tareas. Pero creo que esto dependerá de la capa en la que estés trabajando.

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

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

    
pregunta Daniel Grillo

4 respuestas

3

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

El W5100 tiene la ventaja de que puede usarse 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 utilizar una MCU con un MAC y PHY incorporados. Microchip hace algunos buenos, y también hay variantes de ARM.

    
respondido por el Leon Heller
2

La empresa para la que trabajo utiliza el PIC18F97J60. Es un microprocesador de 8 bits con un MAC y PHY integrados que es muy similar al ENC24J60. Si planea usar un microprocesador PIC, puede usar la pila TCP / IP de Microchip. Esta pila proporciona todo hasta la capa de aplicación. Si está utilizando un procesador que no sea 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 aplicación como Telnet, FTP y HTTP.

    
respondido por el mjh2007
1

Es posible que también quieras considerar otros chips.

¿Qué es un buen microcontrolador para aplicaciones Ethernet?

    
respondido por el Toby Jaffey
1

Sé que es viejo, pero el año pasado lo hice con cierta especificación, así que lo resumiré para beneficio de otras personas.

Primero, no usaría el W5100, pero es 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 tiene DMA, especialmente si desea que sea solo UDP.

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

Desafortunadamente, todas las variantes de la pila TCP / IP de Microchip parecen bloquear la comunicación a través de SPI (sin DMA, sin modo de búfer mejorado) . Intenté cortarlo solo a UDP y recorté la parte completa del microchip (usando el controlador subyacente de 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 los números sean realmente altos), pero me decepcionó un poco que TCP / IP realmente no utilice los beneficios del J60, apegándose 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 puerto determinado, y no tendrá que transferir ningún tráfico no relacionado a través de su enlace SPI. El W5500 tiene 4KB por socket, y uso un socket separado para recibir y enviar para maximizar la utilización del búfer.

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

En el dspice 60MIPS, un viaje de ida y vuelta (recibir un paquete pequeño, responder con un paquete pequeño) toma alrededor de 100-120us, de los cuales aproximadamente 10-12us es el tiempo de CPU en tres partes diferentes (recepción previa (3-5us)), post recibir y pre-enviar (5 a 7 dependiendo de nosotros) y enviar por correo (2us). Una vez cada 2kb tengo que hacer un mantenimiento que es aproximadamente 40us tiempo de pared y 5us tiempo de CPU.

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

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.

    
respondido por el Marco van de Voort

Lea otras preguntas en las etiquetas