Che cos'è un buon microcontrollore per applicazioni Ethernet?


47

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?


Puoi dirci quale soluzione hai scelto e la tua esperienza con essa?
thom_nic,

1
Attualmente sto usando la serie PIC18F97J60 e PIC32 con un ENCxxx. Funziona bene. Il più grande gotcha è che ha solo fino a SSLv3.0, che Firefox e Chrome hanno appena abbandonato. Microchip supporta molti altri protocolli che utilizzo: FTP, TFTP, SNTP, SNMP.
Robert,

Buono a sapersi - anche la limitazione SSL è buona da sapere ma sembra che tutte le "robuste" implementazioni TLS non siano libere in generale. Grazie per la condivisione!
thom_nic

Risposte:


29

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.


16
Ho avuto problemi con lo stack di rete Microchip, quindi ho scritto il mio e lo ho reso disponibile gratuitamente con il codice sorgente all'indirizzo embedinc.com/pic/dload.htm nella versione PIC Development Tools. Devi abbracciare il concetto del nostro ambiente di sviluppo PIC (anche gratuito), ma questa è comunque una buona idea. Dopo l'installazione, cerca i file con "net" nei loro nomi nella directory SOURCE> PIC.
Olin Lathrop,

20

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.


17

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.


1
Mi piacerebbe piace vedere un punto di riferimento affidabile per il termine "magnetismo", come non ho mai sentito parlare.
Andrew,

@Andrew Non so nessun dizionario tecnico che lo abbia. Su Google troverà vari riferimenti. È proprio quello a cui l'ho visto fare riferimento. Fondamentalmente il punto è isolare il circuito dagli altri dispositivi ad esso collegati tramite Ethernet. Simile a come MIDI utilizza l'isolamento ottico.
davr

Ottengo circa mezzo milione di risultati in più per "isolatore ethernet" rispetto a "magnetica ethernet", ma capisco cosa intendi ora.
Andrew,

C'è una discussione sull'origine e l'uso del termine in questo post di Hack A Day sull'accoppiamento capacitivo .
Andrew,

Stavo solo guardando una scheda tecnica del ricetrasmettitore Ethernet (LAN8720A di Microchip), e quella sezione è variamente denominata "Mag" e "Transformer".
Dan Ellis,

11

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 .


quali vantaggi offrono la linea del braccio. Vedo molte altre risposte che necessitano di maggiori dettagli, la parte importante è che tu dia un motivo per cui la linea più di un semplice collegamento alla linea di controller. Ti do questo feedback solo perché sei un utente troppo prolifico per non dare le migliori risposte possibili!
Kortuk,

6
@Kortuk - Oh, è semplicemente fantastico! Non vogliono solo molte risposte, ora devono anche essere le migliori! ;-)
stevenvh

6

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.


amico, mi stai interessando ai prodotti XMOS. Dovrò fare del mio meglio per resistere nel raccogliere quel kit di sviluppo. Sai se è disponibile un RTOS per esso?
Dave,

Non ha davvero bisogno di un RTOS, a causa dei thread hardware. Detto questo, una o due persone stanno lavorando su una.
Leon Heller,

XMOS crea anche una versione con due prese Ethernet. È inteso per i segni dei bit LED, ma non vedo perché non potresti fare altre cose. Avvia il tuo router! xmos.com/products/development-kits/xc-3-led-tile-kit
Connor Wolf

5

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.



4

Netduino plus è un buon microcontrollore da $ 60 per applicazioni Ethernet. Può anche accettare la maggior parte degli scudi Arduino se necessario.


4

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.


4

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


3

Suggerirei di utilizzare ENC28J60 insieme a uno dei micro-controller foto 18 perché il microchip offre uno stack TCP / IP per questa combinazione e ci dovrebbero essere molte informazioni disponibili tramite Google sull'implementazione di questo.


3

controlla la tuxgraphics per una bella soluzione.


4
Usi un micro AVR con un Microchip MAC / PHY? Qual è il prossimo? Cani e gatti che vivono insieme? :)
Robert,

Ne ho uno, funziona bene. Viene fornito in kit con tutte le parti per montaggio superficiale pre-saldate. fonti uIP e driver ethernet vengono con esso.
Toby Jaffey,

3

Ci sono molti progetti che utilizzano ENC28J60 e ATMEL Cips. La maggior parte di essi è ben documentata e utilizza C o BASCOM. Puoi anche acquistare kit completi per cominciare. Personalmente possiedo un kit del genere e ho imparato molto sulla programmazione dai forum.


3

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.


3

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:

http://retired.beyondlogic.org/etherip/ip.htm


Che eccellente panoramica.
Amos,

1
Ho anche avuto brutte esperienze con lo stack di rete Microchip, quindi ho scritto la mia. È incluso nella versione PIC Development Tools all'indirizzo [url] embedinc.com/pic/dload.htm[/url] . Funziona su un PIC 18, può pilotare ENC28J60 esterno o MAC / PHY interno, è ben commentato, facilmente configurabile ed è stato progettato per un ingombro ridotto.
Olin Lathrop,

3

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 .


2

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:

  1. Il prezzo non è molto più di una delle CPU di fascia più alta con Ethernet (almeno per volumi bassi) e si salta un intero carico di problemi di progettazione / test / introduzione.
  2. Il Raspberry PI è già testato CE / EMC, quindi elimina un sacco di incertezza (altrimenti Ethernet e gli orologi veloci possono sollevare un sacco di problemi EMC). Devi ancora testare il tuo prodotto finale, ma almeno c'è un'intera area che in realtà non dovrebbe causare un errore.
  3. Ottieni molto più grugnito e uno stack TCP / IP adeguato, se usi Linux, ecc. Nessuna di queste cose "solo una connessione attiva consentita"!

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:

  1. Raspberry PI
  2. Beaglebone nero - ha flash incorporato
  3. STM32F4DISCOVERY con schede di espansione

2

È 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:

http://forums.netduino.com/index.php?/topic/12117-deep-dive-on-asix-ax88796c-netduino-3-ethernets-fancy-new-networking-chip/


1

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.


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.