Che cos'è un buon microcontrollore per fare applicazioni Ethernet? O ho solo bisogno di una buona libreria Ethernet per connettermi con un MAC MAC / PHY Ethernet?
Che cos'è un buon microcontrollore per fare applicazioni Ethernet? O ho solo bisogno di una buona libreria Ethernet per connettermi con un MAC MAC / PHY Ethernet?
Risposte:
I PIC18 di Microchip con Ethernet integrata sono eccellenti per questo, basta aggiungere un magjack (o un altro connettore con magneti integrati) e scaricare il loro stack TCP / IP. Effettuerai il ping delle cose in pochissimo tempo. Per ulteriori grugniti, PIC24 e PIC32 hanno anche stack TCP / IP progettati per funzionare con una delle parti SPI Ethernet MAC / PHY che offrono (ENC624J600 o ENC628J60).
La ST ha anche recentemente migliorato la sua linea STM32 basata su ARM Cortex per includere Ethernet on-chip, ma avrai bisogno di un PHY esterno e di magneti. È un'opzione se stai già guardando il PIC32.
Per quanto riguarda lo stack TCP / IP, è necessario esaminare tre progetti:
Contiki è un sistema operativo multi-tasking open source, altamente portatile, per sistemi integrati in rete efficienti in termini di memoria e reti di sensori wireless. Contiki è stato utilizzato in una varietà di progetti, come il monitoraggio degli incendi nelle gallerie stradali, il rilevamento delle intrusioni, il monitoraggio delle acque nel Mar Baltico e nelle reti di sorveglianza.
Contiki è progettato per microcontrollori con piccole quantità di memoria. Una tipica configurazione Contiki è 2 kilobyte di RAM e 40 kilobyte di ROM.
Lo stack TCP / IP uIP open-source fornisce connettività TCP / IP a microcontroller a 8 bit incorporati, con interoperabilità costante e conformità agli standard RFC.
Molto più veloce di uIP ma più difficile da iniziare
Generalmente Ethernet non è integrata nei microcontrollori. Innanzitutto è necessario un jack in grado di convertire i segnali Ethernet in segnali letti da un microcontrollore (questo è generalmente chiamato "magnetica"). Quindi hai bisogno di uno stack TCP / IP, e poi hai bisogno di DHCP, DNS e qualunque altro protocollo tu voglia usare. Quindi il microcontrollore che usi non ha molta importanza. Se ottieni qualcosa di molto potente come un ARM con Linux in esecuzione su di esso, lo sviluppo per esso sarebbe molto semplice, quasi lo stesso di scrivere un'applicazione di rete in esecuzione su un PC desktop con Linux. Oppure potresti scegliere qualcosa di meno potente ed economico come un AVR o un PIC.
Ethernet e TCP / IP possono essere piuttosto complessi se si desidera implementare un intero stack TCP / IP nel software. Una soluzione comune è quella di utilizzare qualcosa come il chip W5100 di Wiznet, che gestisce per te tutte le cose TCP / IP di basso livello. Puoi acquistarlo in un modulo pre-fatto che include il connettore ethernet e tutto ciò a un prezzo piuttosto economico, circa $ 20 per il modulo WIZ812MJ . Puoi comunicare con esso solo con SPI, quindi non ci vorranno molti pin I / O sul tuo microcontrollore.
Lantronix fornisce anche alcuni moduli più potenti che sembrano ancora più semplici da usare, ma sono un po 'più costosi ($ 50- $ 100 a seconda del modello). Vedi il loro XPort per esempio.
I ARM sono i microcontrollori del giorno e NXP ne ha una vasta offerta. Questa pagina web elenca letteralmente troppi controller Ethernet per menzionare tutti qui, a partire da questa data (2011-07-13):
17 dispositivi ARM7
2 dispositivi ARM9
16 dispositivi Cortex-M3
modifica
Ho spostato la discussione sui vantaggi ARM in questa risposta .
Il kit XMOS XC-2 è un modo interessante per farlo. Tutto è fatto nel software, a parte il PHY. Il software dovrebbe funzionare sul chip XS1-L1 da $ 7,50.
Microchip ha un numero di microcontrollori Pic con funzionalità Ethernet integrate, c'è un elenco qui . Hanno anche una serie di pagine relative alle soluzioni di progettazione per Ethernet e i loro prodotti qui , che include anche i dettagli del loro stack TCP / IP completo (con MAC e PHY integrati).
Spero che sia di aiuto.
Molti microcontrollori luminari TI (ARM Cortex-M3) hanno un MAC ethernet integrato. Ha bisogno di un cristallo esterno e Ethernet PHY (connettore + magnetica).
GCC e openOCD (JTAG flashing / debugging) li supportano bene e sono piuttosto economici in quantità.
Hanno anche devkit hardware economici ...
http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254
Netduino plus è un buon microcontrollore da $ 60 per applicazioni Ethernet. Può anche accettare la maggior parte degli scudi Arduino se necessario.
A seconda della facilità con cui vuoi renderti la vita, consiglierei di utilizzare un MBED e di acquistare un magjack e una scheda breakout ethernet (vedi sparkfun) per collegare il cavo e gestire il condizionamento del segnale. Il modello di supporto è il mbed NXP LPC1768.
Sono riuscito a ottenere un mbed che inviava dati al mio server remoto (ad es. Su Internet) in circa 2 ore dall'inizio.
Dipende da cosa vuoi farci. La cosa principale da cercare è la quantità di RAM (può limitare le dimensioni dei singoli messaggi) e se si desidera servire pagine Web, allora la quantità di memoria disponibile per quello. Uso un Arduino Duemilanova http://www.arduino.cc/ - Micro controller ATMega328, 2Kbyte di RAM. È possibile collegare una scheda SD se si desidera una memoria significativa. Lo scudo ethernet supporterà fino a 4 sessioni simultanee. Non aspettarti di essere in grado di pubblicare pagine complesse, ma funziona perfettamente con il caricamento su Pachube, Twitter, ecc.
Per una soluzione più potente guarda Marvell Plug
controlla la tuxgraphics per una bella soluzione.
Il nanode è open source e spedito solo £ 22 / $ 40. Ne ho appena acquistati due per il monitoraggio energetico / ambientale domestico tramite pachube.
30 secondi di lancio dal sito:
Nanode è una scheda simile ad Arduino open source con connettività Web integrata. Si collega a una vasta gamma di interfacce wireless, cablate ed Ethernet. Ti consente di sviluppare sistemi di sensori e controllo basati sul web, offrendoti l'accesso web a sei linee di sensori analogici e sei linee di I / O digitali. È un kit facile da costruire da soli. Nanode è stato progettato pensando all'hacking.
Ho provato lo stack di microchip usando la scheda di sviluppo picdem.net 2 e non ero soddisfatto, non è ottimizzato e non è ben documentato.
Penso che la migliore soluzione sul mercato ora sia Wiznet che abbia il primo chip hardware TCP / IP basato su Ethernet che fa risparmiare molto tempo e offre maggiore efficienza
Questo link fornisce tutte le soluzioni disponibili e confrontale:
Sono in ritardo alla festa qui ma raccomando la TI Stellaris EK-LM3S6965. È una parte ARM Cortex M3 con controller Ethernet integrato incluso PHY. Per la prototipazione ho usato il loro kit di valutazione, che ha un jack Ethernet, un piccolo display OLED (ottimo per il debug e l'interfaccia utente barebone), slot per schede SD, altoparlanti, pulsanti, LED e breakout per il cablaggio di roba fino alle periferiche del micro. Non hai descritto la tua applicazione (ad esempio, cercando di produrre decine di migliaia di qualcosa o un progetto hobby unico), ma i prezzi sono ragionevoli (~ $ 70 per la scheda di sviluppo, $ 12-15 in piccole quantità solo per i chip) , vengono forniti con un set OK di librerie di sviluppo se si desidera creare il proprio firmware o è possibile eseguire FreeRTOS (richiesto un piccolo po 'di porting a causa di piccoli giri hardware tra la revisione della mia scheda e le cose nella distribuzione FreeRTOS) ed eLua. È possibile utilizzare uIP o lwIP per TCP / IP.
Rispetto alle popolari offerte di hobbisti come AVR / Arduino e PIC, Cortex M3 è una parte a 32 bit, funziona a 50MHz, il 6965 ha molte funzionalità I / O, IMO per i soldi è semplicemente incredibile quanta potenza di elaborazione e come molte funzionalità che puoi ottenere da qualcosa di così piccolo ed economico. È piuttosto grezzo dal punto di vista dello sviluppo, tuttavia, e devi conoscere C (beh, a meno che tu non esegua eLua). Sono uno sviluppatore software commerciale e svolgo il mio sviluppo ARM su un Mac, quindi non ho paura delle configurazioni spaventose / scomode della toolchain e ho usato Make + arm-eabi-gcc + OpenOCD per il debug, ma se sei un ragazzo di Windows forse il bundle di Code Composer Studio sarebbe una buona scommessa. Ho usato l'IDE Code Composer di TI per un divertente progetto sperimentale MSP430 e per me andava bene e aveva un flusso di lavoro più semplice rispetto alla mia configurazione OSX / ARM.
Informativa completa, in realtà non ho progettato un PCB attorno a questo chip che utilizzava il controller Ethernet, ma ho realizzato una scheda che non utilizzava Ethernet e ne avevo una buona esperienza, e ho realizzato progetti abilitati per Ethernet utilizzando il comitato di valutazione.
Controlla qui la scheda di valutazione / i pacchetti di strumenti
AGGIORNAMENTO Settembre 2013
Queste parti sembrano non essere più raccomandate per i nuovi design. Sembra che non ci siano sostituzioni ovvie.
AGGIORNAMENTO Nov 2013
Ora c'è un TM4C129XNCZAD che è nominalmente un rimpiazzo per la parte sopra - ha a bordo MAC + PHY, anche se non compatibile con i pin - tuttavia molte persone sono riluttanti a usarlo dopo i problemi / la confusione sulla sospensione / disponibilità di LM3S .
Potrebbe non essere al 100% quello che questa domanda sta ponendo, ma per i progetti in cui la produzione è piuttosto piccola ho iniziato a vedere persone che incorporano schede pre-costruite come il raspberry pi. Questo ha molti vantaggi:
Come ho detto, non è per tutti, ma per alcuni progetti può essere adatto.
Ci sono alcune opzioni in termini di scheda esatta utilizzata in giro:
È possibile utilizzare quasi tutti gli MCU con il controller MAC + PHY Wiznet W5500 incorporato , è gestito da SPI. I vantaggi sono: ha stack di rete incorporato, buffer Tx / Rx, richiede pin MCU minimi, programmazione semplificata.
Ho appena trovato un'altra opzione interessante: AX88796C di ASIX, ha anche MAC + PHY , Ethernet 10 \ 100Mbps e opzione di interfaccia SPI fino a 40 MHz, quindi si adatta perfettamente a qualsiasi MCU basato su ARM.
AGGIORNAMENTO: Netduino 3 sta già utilizzando questo chip, qui ci sono dettagli interessanti:
Se hai esperienza con il firmware, consiglierei la scheda STM32F4Discovery con la scheda STM32F4DIS-EXT. Di recente l'ho usato per creare una pagina Web di configurazione per il mio dispositivo ed è stato abbastanza semplice. Esiste un progetto di esempio lwIP disponibile online e se vai su Google "makefsdata" troverai molte informazioni su come generare i file necessari per i tuoi file HTML. Inviami un messaggio se hai bisogno di maggiori informazioni.
Mi piace il modulo Ethernet Openpicus FlyportPro (25 EUR) a tale scopo. Basta aggiungere un jack ethernet con magnetici e creare il firmware usando il loro stack TCP / IP. Hanno anche un'implementazione TLS:
http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html
Ho realizzato un progetto usando il "classico" Ethernet Flyport ed è stato solido fino ad ora.