Was ist ein guter Mikrocontroller für Ethernet-Anwendungen? Oder brauche ich nur eine gute Ethernet-Bibliothek, um mich mit einem Ethernet-MAC / PHY zu verbinden?
Was ist ein guter Mikrocontroller für Ethernet-Anwendungen? Oder brauche ich nur eine gute Ethernet-Bibliothek, um mich mit einem Ethernet-MAC / PHY zu verbinden?
Antworten:
Die PIC18s von Microchip mit integriertem Ethernet eignen sich hervorragend für diesen Zweck. Fügen Sie einfach einen Magjack-Anschluss (oder einen anderen Anschluss mit integrierten Magnetfeldern) hinzu und laden Sie den TCP / IP-Stack herunter. Sie werden in kürzester Zeit Dinge anpingen. PIC24 und PIC32 verfügen außerdem über TCP / IP-Stacks, die für einen der von ihnen angebotenen SPI-Ethernet-MAC / PHY-Teile (ENC624J600 oder ENC628J60) ausgelegt sind.
ST hat kürzlich auch seine auf ARM Cortex basierende STM32-Linie um On-Chip-Ethernet erweitert. Sie benötigen jedoch eine externe PHY und Magnetics. Dies ist eine Option, wenn Sie sich bereits mit dem PIC32 beschäftigen.
Bezüglich eines TCP / IP-Stacks sollten Sie sich drei Projekte ansehen:
Contiki ist ein Open Source, hoch portables Multitasking-Betriebssystem für speichereffiziente vernetzte eingebettete Systeme und drahtlose Sensornetzwerke. Contiki wurde für eine Vielzahl von Projekten eingesetzt, wie zum Beispiel für die Überwachung von Straßentunnelbränden, die Erkennung von Einbrüchen, die Wasserüberwachung in der Ostsee und in Überwachungsnetzen.
Contiki ist für Mikrocontroller mit wenig Speicher konzipiert. Eine typische Contiki-Konfiguration besteht aus 2 Kilobyte RAM und 40 Kilobyte ROM.
Der Open-Source-uIP-TCP / IP-Stack bietet TCP / IP-Konnektivität zu winzigen eingebetteten 8-Bit-Mikrocontrollern bei gleichbleibender Interoperabilität und Einhaltung der RFC-Standards.
Viel schneller als UIP, aber schwieriger zu beginnen
Im Allgemeinen ist Ethernet nicht in Mikrocontroller integriert. Zuerst benötigen Sie eine Buchse, die Ethernet-Signale in von einem Mikrocontroller gelesene Signale umwandeln kann (dies wird im Allgemeinen als "Magnetics" bezeichnet). Dann benötigen Sie einen TCP / IP-Stack und zusätzlich benötigen Sie DHCP, DNS und alle anderen Protokolle, die Sie verwenden möchten. Der tatsächlich verwendete Mikrocontroller spielt also keine Rolle. Wenn Sie etwas sehr Leistungsfähiges wie einen ARM mit Linux haben, wäre die Entwicklung sehr einfach, fast wie das Schreiben einer Netzwerkanwendung, die auf einem Desktop-PC mit Linux ausgeführt wird. Oder Sie könnten mit etwas weniger Leistungsstarkem und Billigerem wie einem AVR oder PIC fahren.
Ethernet und TCP / IP können sehr komplex sein, wenn Sie einen vollständigen TCP / IP-Stack in Software implementieren möchten. Eine gängige Lösung ist die Verwendung des W5100-Chips von Wiznet, der alle TCP / IP-Aufgaben auf niedriger Ebene für Sie erledigt. Sie können es in einem vorgefertigten Modul kaufen, das den Ethernet-Anschluss und alles für ziemlich günstige Preise enthält , etwa 20 US-Dollar für das WIZ812MJ-Modul . Sie können nur über SPI damit kommunizieren, sodass Ihr Mikrocontroller nicht viele E / A-Pins benötigt.
Lantronix bietet auch einige leistungsstärkere Module, die noch einfacher zu bedienen sind, jedoch etwas teurer (je nach Modell zwischen 50 und 100 US-Dollar). Sehen Sie sich zum Beispiel deren XPort an.
ARMs sind die Mikrocontroller des Tages, und NXP bietet ein breites Angebot an. Diese Webseite listet buchstäblich zu viele Ethernet-Controller auf, um alle hier zu erwähnen (Stand: 13.07.2011):
17 ARM7-Geräte
2 ARM9-Geräte
16 Cortex-M3-Geräte
edit
Ich habe die ARM-Vorteilsdiskussion auf diese Antwort verschoben .
Das XMOS XC-2 Kit ist eine interessante Möglichkeit, dies zu tun. Bis auf die PHY wird alles in Software erledigt. Die Software sollte auf dem 7,50 USD teuren XS1-L1-Chip laufen.
Microchip verfügt über eine Reihe von Pic-Mikrocontrollern mit integrierten Ethernet-Funktionen. Eine Liste finden Sie hier . Sie haben auch eine Reihe von Seiten in Bezug auf Design - Lösungen für Ethernet und ihre Produkte hier , die auch Details ihres vollständige TCP / IP - Stack enthält (mit integriertem MAC und PHY).
Hoffe das hilft.
Viele der TI Luminary-Mikrocontroller (ARM Cortex-M3) verfügen über einen integrierten Ethernet-MAC. Es benötigt einen externen Quarz und Ethernet PHY (Stecker + Magnetics).
GCC und openOCD (JTAG Flashing / Debugging) unterstützen sie gut und sind in der Menge ziemlich billig.
Sie haben auch billige Hardware-Devkits ...
http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254
Netduino plus ist ein guter 60-Dollar-Mikrocontroller für Ethernet-Anwendungen. Es kann bei Bedarf auch die meisten Arduino-Schilde aufnehmen.
Abhängig davon, wie einfach Sie Ihr Leben gestalten möchten, würde ich die Verwendung eines MBED und den Kauf eines Magjack- und Ethernet-Breakout-Boards (siehe Sparkfun) zum Anschließen des Kabels und für die Signalaufbereitung empfehlen. Das unterstützende Modell ist das mbed NXP LPC1768.
Ich habe es geschafft, ein Mbed zu bekommen, das innerhalb von 2 Stunden Daten an meinen Remote-Server (dh über das Internet) sendet.
Es kommt darauf an, was Sie damit machen wollen. Die Hauptsache, auf die Sie achten müssen, ist die Größe des Arbeitsspeichers (kann die Größe einzelner Nachrichten begrenzen) und, wenn Sie Webseiten bereitstellen möchten, die dafür verfügbare Speicherkapazität. Ich benutze einen Arduino Duemilanova http://www.arduino.cc/ - ATMega328 Mikrocontroller, 2 KB RAM. Sie können eine SD-Karte anschließen, wenn Sie erheblichen Speicher benötigen. Der Ethernet-Shield unterstützt bis zu 4 gleichzeitige Sitzungen. Erwarten Sie nicht, dass Sie komplexe Seiten bereitstellen können, aber das Hochladen auf Pachube, Twitter usw. funktioniert einwandfrei.
Für eine leistungsstärkere Lösung schauen Sie sich Marvell Plug an
checkout tuxgraphics für eine schöne lösung.
Die Nanode ist Open Source und wird nur für £ 22 / $ 40 ausgeliefert. Ich habe gerade zwei für die Überwachung von Energie und Umwelt zu Hause über pachube gekauft.
30 Sekunden Abstand von der Baustelle:
Nanode ist ein Open-Source-Arduino-ähnliches Board mit integrierter Web-Konnektivität. Es kann an eine Reihe von drahtlosen, kabelgebundenen und Ethernet-Schnittstellen angeschlossen werden. Damit können Sie webbasierte Sensor- und Steuerungssysteme entwickeln und haben Zugriff auf sechs analoge Sensorleitungen und sechs digitale E / A-Leitungen. Es ist ein einfaches Bausatz. Nanode wurde unter Berücksichtigung von Hacking entwickelt.
Ich habe den Mikrochipstapel mit der Entwicklungskarte picdem.net 2 ausprobiert und war überhaupt nicht zufrieden, er ist nicht optimiert und nicht gut dokumentiert.
Ich denke, dass die beste Lösung auf dem Markt jetzt Wiznet ist, das über den ersten Ethernet-basierten TCP / IP-Hardware-Chip verfügt, der viel Zeit spart und Ihnen mehr Effizienz bietet
Dieser Link zeigt alle verfügbaren Lösungen und vergleicht sie:
Ich bin zu spät zur Party hier, aber ich empfehle die TI Stellaris EK-LM3S6965. Es ist ein ARM Cortex M3-Teil mit integriertem Ethernet-Controller, einschließlich PHY. Für das Prototyping habe ich das Evaluierungskit verwendet, das eine Ethernet-Buchse, ein kleines OLED-Display (ideal für Debugging und Barebones-Benutzeroberfläche), einen SD-Kartensteckplatz, Lautsprecher, Tasten, LEDs und Unterbrechungen für die Verkabelung der Peripheriegeräte des Mikros enthält. Sie haben Ihre Anwendung nicht beschrieben (dh Sie möchten Zehntausende von Dingen oder ein einmaliges Hobbyprojekt produzieren), aber die Preise sind angemessen (~ 70 USD für das Entwicklerboard, 12-15 USD in kleinen Mengen nur für die Chips). Wenn Sie Ihre eigene Firmware erstellen möchten oder FreeRTOS ausführen möchten (für das aufgrund kleinerer Hardware-Revisionen zwischen meiner Board-Revision und den Inhalten in der FreeRTOS-Distribution ein winziger Portierungsaufwand erforderlich ist), werden sie mit einer Reihe geeigneter Entwicklungsbibliotheken und eLua ausgeliefert. Sie können entweder uIP oder lwIP für TCP / IP verwenden.
Im Vergleich zu beliebten Hobby-Angeboten wie AVR / Arduino und PIC ist der Cortex M3 ein 32-Bit-Teil, läuft mit 50 MHz, der 6965 verfügt über viele I / O-Funktionen, IMO für das Geld ist es einfach unglaublich, wie viel Rechenleistung und wie Viele Funktionen, die Sie aus etwas Winzigem und Billigem herausholen können. Auf der Entwicklungsseite ist es jedoch ziemlich rau und Sie müssen C kennen (nun, es sei denn, Sie führen eLua aus). Ich bin von Beruf Softwareentwickler und entwickle ARM auf einem Mac. Daher habe ich keine Angst vor unheimlichen / unbequemen Toolchain-Setups und verwende Make + arm-eabi-gcc + OpenOCD zum Debuggen, aber wenn Sie ein Windows-Typ sind Vielleicht ist das Code Composer Studio-Bundle eine gute Wahl. Ich habe die Code Composer-IDE von TI für ein unterhaltsames MSP430-Versuchsprojekt verwendet und es war in Ordnung für mich und hatte einen einfacheren Workflow als mein OSX / ARM-Setup.
Vollständige Offenlegung, ich habe nicht wirklich eine Platine um diesen Chip herum entworfen, die den Ethernet-Controller verwendete, aber ich habe eine Platine entwickelt, die das Ethernet nicht verwendete und mit der ich gute Erfahrungen gemacht habe, und ich habe Ethernet-fähige Projekte mit erstellt das Evaluierungsboard.
Hier finden Sie die Evaluierungsplatine / Tool-Bundles
UPDATE September 2013
Diese Teile werden für neue Designs anscheinend nicht mehr empfohlen. Es scheint keine offensichtlichen Ersetzungen zu geben.
UPDATE November 2013
Es gibt jetzt ein TM4C129XNCZAD, das nominell als Ersatz für den oben genannten Teil gedacht ist - es verfügt über ein integriertes MAC + PHY, obwohl es nicht mit dem Pin kompatibel ist -, aber viele Leute zögern, es zu verwenden, nachdem Probleme / Verwirrung über die frühzeitige Einstellung / Verfügbarkeit des LM3S aufgetreten sind .
Es mag nicht 100% sein, was diese Frage stellt, aber für Projekte, bei denen die Produktionsläufe ziemlich klein sind, habe ich angefangen, Leute zu sehen, die vorgefertigte Boards wie das Himbeer-Pi einbetten. Das hat viele Vorteile:
Wie ich schon sagte, es ist nicht für jedermann geeignet, aber für einige Projekte kann es gut passen.
Es gibt einige Optionen in Bezug auf das verwendete Board:
Sie können nahezu jede MCU mit dem Wiznet W5500 Embedded MAC + PHY- Controller verwenden, der über SPI gesteuert wird. Die Vorteile sind: Es verfügt über einen eingebauten Netzwerkstapel, Tx / Rx-Puffer, erfordert ein Minimum an MCU-Pins und vereinfacht die Programmierung.
Ich habe gerade eine andere interessante Option gefunden - AX88796C von ASIX, die sowohl MAC + PHY- , 10 \ 100Mbps-Ethernet- als auch bis zu 40MHz-SPI-Schnittstellenoption aufweist und daher für jede ARM-basierte MCU gut geeignet ist .
UPDATE: Netduino 3 nutzt diesen Chip bereits, hier sind interessante Details:
Wenn Sie Erfahrung mit Firmware haben, würde ich die STM32F4Discovery-Karte mit der STM32F4DIS-EXT-Karte empfehlen. Ich habe dies kürzlich verwendet, um eine Konfigurationswebseite für mein Gerät zu erstellen, und es war ziemlich einfach. Es gibt ein lwIP-Beispielprojekt, das online verfügbar ist. Wenn Sie "makefsdata" googeln, finden Sie zahlreiche Informationen zum Generieren der erforderlichen Dateien für Ihre eigenen HTML-Dateien. Nachricht an mich, wenn Sie weitere Informationen benötigen.
Ich mag das (25 EUR) Openpicus FlyportPro-Ethernet-Modul für diesen Zweck. Fügen Sie einfach eine Ethernet-Buchse mit Magnetics hinzu und erstellen Sie Ihre Firmware mithilfe ihres TCP / IP-Stacks. Sie haben auch eine TLS-Implementierung:
http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html
Ich habe ein Projekt mit dem "klassischen" Flyport-Ethernet gemacht und es war bisher absolut solide.