Wiznet W5100 vs. Microchip ENCx24J600


8

Cosa sono i pro e i contro che utilizzano Wiznet W5100 o Microchip EncX24J600?

È un po 'complicato da spiegare.

La mia domanda riguarda le prestazioni dello stack Microchip TCP rispetto al core Wiznet TCP / IP sul chip. Anche sui costi ($$).

Ad esempio: con Wiznet, il microcontrollore avrà meno elaborazione, liberando così il microcontrollore per svolgere altre attività. Ma penso che questo dipenderà da quale livello stai lavorando.

Con lo stack Microchip TCP forse ho delle limitazioni sulle periferiche che posso controllare. Forse dovrò usare un secondo microcontrollore.

Quindi, spero di aver spiegato meglio ora che mi aiuti nella scelta migliore.


Mi stavo preparando per cercare soluzioni per fare qualcosa del genere. Grazie per avermelo chiesto.
Kortuk,

1
Qualche motivo speciale per ENCX24J600? ENC28J60 è molto più popolare.
Kevin Vermeer,

1
@reemrevnivek Devo comunicare a 100 Mbps.
Daniel Grillo,

1
Il W5100 è collegato con un collegamento di velocità unidirezionale, con un protocollo molto inefficiente (invia un indirizzo a 16 bit con ogni byte di dati iirc). Quindi hai ottenuto (SPI link) / 3 come velocità massima half duplex effettiva. Vedi anche la mia risposta completa di seguito
Marco van de Voort,

Risposte:


3

Il W5100 ha un core TCP / IP sul chip. Con i dispositivi Microchip ENC l'utente deve implementare uno stack TCP / IP da solo, sull'MCU a cui è interfacciato. Questo è abbastanza facile con un PIC adatto, poiché gli stack TCP / IP gratuiti sono disponibili da Microchip.

Il W5100 ha il vantaggio di poter essere utilizzato praticamente con qualsiasi MCU, ma è necessario un dispositivo abbastanza potente per eseguire uno stack TCP / IP se viene utilizzato un chip ENC.

Naturalmente, un'altra opzione è quella di utilizzare un MCU con MAC e PHY integrati. Microchip ne rende alcuni carini e ci sono anche varianti ARM.


Questa è l'estensione della mia conoscenza.
Kortuk,

2

La società per cui lavoro utilizza PIC18F97J60. È un microprocessore a 8 bit con MAC e PHY integrati molto simile a ENC24J60. Se si prevede di utilizzare un microprocessore PIC, è possibile utilizzare lo stack TCP / IP Microchip. Questo stack fornisce tutto fino al livello dell'applicazione. Se si utilizza un processore non Microchip, penso che sia possibile utilizzare solo i driver ENC24J60. Detto questo, sembra che Wiznet integri i livelli di trasporto nell'hardware, non solo MAC e PHY. Tuttavia lasciano allo sviluppatore l'implementazione dei livelli dell'applicazione come Telnet, FTP e HTTP.


Una cosa da notare, PIC18F97J60 sembra essere garantito solo per 100 cicli di scrittura flash, quindi potrebbe essere un problema da sviluppare. ww1.microchip.com/downloads/en/DeviceDoc/39762e.pdf (pag. 429)
Toby Jaffey,

Il numero minimo di cicli di scrittura è 100. Tipico è 1k. Non ho mai avuto problemi.
mjh2007,

Tale cifra sarà probabilmente nell'intero intervallo di temperatura, quindi è improbabile che la resistenza a temperature normali sia un problema.
mikeselectricstuff,


1

So che è vecchio, ma mi è capitato di averlo fatto con una spezia l'anno scorso, quindi riassumerò per il beneficio degli altri.

Innanzitutto, non userei il W5100, ma suo fratello W5500 , che è fondamentalmente una revisione, e utilizza SPI molto meglio. Vorrei anche prendere in considerazione il passaggio a una parte che ha DMA, specialmente se si desidera renderlo solo UDP.

In entrambi i casi probabilmente utilizzerai lo stack Microchip MLA TCP / IP, Wiznet fornisce patch per questo.

Sfortunatamente, tutte le varianti di stack Microchip TCP / IP sembrano bloccare la comunicazione tramite SPI (nessun DMA, nessuna modalità buffer avanzata) . Ho provato a ridurlo solo su UDP e ho ritagliato l'intera parte del microchip (usando direttamente il driver sottostante wiznet e riscrivendolo nel processo).

Concordo anche con MJH che il PIC18F97J60 abilitato DMA sia una scelta migliore di un PIC più economico con ENC (a meno che i tuoi numeri non siano davvero alti), ma sono rimasto un po 'deluso dal fatto che il TCP / IP non utilizzi davvero i vantaggi del J60, rimanendo fedele al minimo comune denominatore.

Il vantaggio di utilizzare una parte IP anziché una parte Ethernet è che è possibile limitare un socket a una determinata porta e non sarà necessario trasferire alcun traffico non correlato sul collegamento SPI. Il W5500 ha 4KB per socket e io uso un socket separato per la ricezione e l'invio per massimizzare l'utilizzo del buffer.

Il mio stack UDP corrente reagisce solo sull'interruzione wiznet e non scarica i dati del payload di cui non ha bisogno. Lo uso UDP, anche se basato su pacchetti (nessun flusso) e utilizzo le trasmissioni sulle porte per l'invio (per evitare di dover memorizzare nella cache i dati MAC per scopi ARP, anche se a posteriori non è forse la migliore opimizzazione).

Sul dSPice 60MIPS un roundtrip (ricevere un pacchetto piccolo, rispondere con un pacchetto piccolo) richiede circa 100-120us, di cui circa 10-12us è il tempo della CPU in tre diversi blocchi (pre-ricezione (3-5us), post-ricezione e presend (5-7 a seconda del caso) e invio post (2us). Una volta ogni 2kb devo fare un po 'di manutenzione che è di circa 40us tempo di wall e 5us di CPU

I comandi brevi vengono eseguiti utilizzando il buffer avanzato. Più a lungo si utilizza DMA utilizzando (su dspice, DMA richiede 2 bit di tempo tra i byte (o parole in modalità 16 bit), il buffer avanzato no).

La suite non è (ancora) aperta, ma se sb necessita di puntatori, rispondi nei commenti. Ho in programma di portare lo stack su pic32 (mk) nel prossimo anno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.