Forum: Mikrocontroller und Digitale Elektronik suche µC-Board mit 2 Ethernet


von Erik (Gast)


Lesenswert?

Hallo,

ich suche ein preiswertes µC-Board mit 2 unabhängigen Ethernet-Ports 
(100MBit/s sollen es schon sein).

Des weiteren wären 2 UARTs und ein paar frei zugängliche I/O-Pins 
wünschenswert (TTL-Pegel für 3,3V oder 2,5V ist bevorzugt).

Als CPU werden wohl mindestens 200 MHz erforderlich sein damit die 
Pakete mit Wire-Speed verarbeitet werden können, das Board soll primär 
zwischen den beiden Ethernet-Ports eine Art Protokoll-Umwandlung 
durchführen. Bezüglich der CPU-Architektur bin ich relativ 
leidenschaftslos, hauptsache es gibt eine vollwertige gcc-Tool-Chain.

Falls der Program-Code nicht im RAM liegt sollten 2 MByte reichen, 
ansonsten gerne mehr. Hier ist ausreichende Performance wohl wichtiger.

Ich konnte nirgends was geeignetes finden, das einzigste was angeboten 
wird sind relativ große professionelle Embedded-Computer mit 2 
vollwertigen Ethernet-Ports, aber so groß will ich es nicht, ich suche 
etwas kleines.

Ich hoffe Ihr könnt mir etwas (halbwegs) passendes empfehlen.

Grüße
Erik

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Mir ist kein µC-Board bekannt, dass all diese Ansprüche erfüllt.

Wäre ein Raspberry PI mit zusätzlichem USB<->LAN-Adapter im Rahmen des 
Möglichen?

von Jim M. (turboj)


Lesenswert?

Erik schrieb:
> ich suche ein preiswertes µC-Board mit 2 unabhängigen Ethernet-Ports
> (100MBit/s sollen es schon sein).

Erik schrieb:
> das einzigste was angeboten
> wird sind relativ große professionelle Embedded-Computer mit 2
> vollwertigen Ethernet-Ports, aber so groß will ich es nicht, ich suche
> etwas kleines.


Du widersprichst Dir selbst.
Übrigens sind 200 MHz nur beim superskalaren Pentium und Intel NICs 
ausreichend gewesen, RTL8139 brauchten einen P2-400.

Am preiswertesten düftest Du mit Raspberry Pi + 1x USB NIC hinkommen.

Im embedded Breich verwendet man sonst SOCs mit 1x Ethernet + 1x 
Switch-Chip 3-Port. Falls man die Anschlüsse unterscheiden muss macht 
der Switch-Chip intern (tagged) VLAN.

von Johannes S. (Gast)


Lesenswert?

von TI gibt die Sitara AM335x Prozessoren, sind aber schon fettere 
Cortex-A8 auf denen ein Linux laufen kann. Es gibt Boards damit, aber 
die liegen bei 200 US$: http://www.ti.com/tool/tmdsice3359#buy, da 
bekommt man kleine embedded PC evtl. schon billiger.
Oder ein Cortex-M wie LPC4088 oder STM32F7 und ein Wiznet Modul für den 
2. Port dran.

von ./. (Gast)


Lesenswert?

HLK-RM04 mit Baseboard. Die MIPS-CPU (von Ralink) laeuft wohl
mit 360 MHz Takt. 2x Ethernet + ein paar GPIOs.

Bei Modulen/Routern die ebenfalls diesen Chipsatz benutzen,
konnte ich max. ca. 4 MByte/s Durchsatz erreichen.
Das ist von Wirespeed schon ein Stueck weg.

Bei der Beschaffung auf die Groesse von Flash und RAM achten.

Besser waere z.B. ein Board mit dem Intel IXP425.
533 MHz und 2 direkt am/im Chip haengende Netzwerkprozessoren
erreichen problemlos Wirespeed bei Fastethernet, auch auf
beiden Interfaces gleichzeitig.
Leider nicht mehr verfuegbar.

Fuer beide gibt es funktionierende Ports von OpenWRT.

Sicher gibt es aktuelleres, leider auch teureres...

Viel Erfolg

von Chris F. (chfreund) Benutzerseite


Lesenswert?

Was ist mit dem Banana-Pi in der Routerversion? Der hat 2 ETH, davon 
einer als 4-Port Switch und 26 GPIO-Pins.

von ich (Gast)


Lesenswert?


von ./. (Gast)


Lesenswert?

> Am preiswertesten düftest Du mit Raspberry Pi + 1x USB NIC hinkommen.

Ja, schadstoffstark und leistungsarm.

von Erik (Gast)


Lesenswert?

Hallo,

Danke für Eure Antworten!

Eine Variante mit einem echten Ethernet-Port und einer zusätzlichen 
USB/SPI/sonstwas-Schnittstelle kommt nicht in Frage da ich keinen 
Treiber für USB o.ä. programmieren möchte.
Auch die Variante mit einem Ethernet-Port mit VLAN-Tagging und einem 
Switch erscheint mir eher ungeeignet, zum einen weil ich kaum glaube das 
die Datenblätter zum Switch-Chip genau genug sind das ich das allein 
hinkriege und zum anderen können ja die Frames auf den 
Ethernet-Leitungen bereits Tagging benutzen und doppeltes Tagging geht 
zwar aber dürfte im Switch-Chip wohl noch mehr Schmerzen verursachen.

Ich stelle mir vor das ich mein Programm ohne OS laufen lasse und dieses 
primär aus den 2 RX-IRQ-Handlern besteht in denen dann jeweils aufs 
andere Interface gewandelt wird.
Die 2 UARTs möchte ich primär für Debug-Zwecke und eventuell für eine 
spätere Erweiterung um irgendwelchen Klein-Kram.

Auf dem Board müssen auch keine echten MAC-Adressen einprogrammiert 
sein. Auch sonst ist keinerlei nichtflüchtiger Speicher (vom Code-Flash 
mal abgesehen), keine RTC u.ä. erforderlich.

Das 200 MHz nicht reichen wenn ich die Daten von den beiden 
Ethernet-Controllern manuell holen muss ist mir klar, ich erwarte 
eigentlich das die Ethernet-Controller die Frames fertig im RAM ablegen 
und mir dann einen RX-IRQ geben, und das zum Senden dem Controller nur 
gesagt werden muss wo im RAM das zu sendende Frame liegt (Scatter-Gatter 
o.ä. ist nicht erforderlich da ich keine MMU o.ä. benutzen möchte).

Ich hab durchaus ein paar µC gefunden die 2 vollwertige MACs haben aber 
dort ist dann scheinbar immer noch Graphik, USB und alles mögliche 
andere mit enthalten.
Gibt es denn keine kleineren Versionen mit 2 vollwertigen MACs (interne 
PHYs für 10/100MBit/s wären bevorzugt aber extern geht zur Not auch)?

Grüße
Erik

von Stefan F. (Gast)


Lesenswert?

Bei Ethernet reden wir oft von TCP/IP. Dieses Protokoll versieht jedes 
Paket mit einer Prüfsumme. Wenn du die Daten änderst, musst du die 
Prüfsummen neu berechnen. Und das wiederum stellt ganz erhebliche 
Anforderungen an die CPU Leistung.

http://locklessinc.com/articles/tcp_checksum/

von Ich (Gast)


Lesenswert?

Warum unbedingt ohne OS? Ein Linux bringt alles mit was Du brauchst ... 
ob nun RasPi, ein Board von pcengines.ch, oder wie angedeutet ein 
OpenWRT-Router ...

Ansonsten evtl in Richtung FPGA gucken, vielleicht wirst Du da eher 
fündig als in der µC-Ecke.

von Erik (Gast)


Lesenswert?

Hallo,

das "Banana-Pi in der Routerversion" sieht zwar echt cool aus aber eine 
Dual-Core 64Bit-CPU ist irgendwie oversized für mein Projekt.

Das EtherCAT beim TI-µC sind keine zwei wirklich unabhängigen MACs, kann 
man zwar eventuell so betreiben aber ob das insgesamt sauber 
dokumentiert ist bliebe noch zu prüfen (so tief wollte ich jetzt nicht 
in die Datenblätter einarbeiten).

Die Checksummen von TCP/UDP/IP sollten eigentlich vom 
Ethernet-Controller automagisch gecheckt (beim empfangen) bzw. berechnet 
(beim senden) werden, mir ist bewusst das dass sonst alles erheblich 
CPU-Leistung frisst. Da ein µC mit 2 mal Ethernet wohl nicht unter 500 
MHz verfügbar ist sollte das aber insgesamt kein Problem darstellen. Und 
wenn Wire-Speed nur zur Hälfte oder nur für eine Richtung erreicht wird 
werde ich sicher nicht weinen, aber mehr als eine Ethernet-USB-Krücke 
möchte ich schon erreichen.

Auf das OS kann ich komplett verzichten da ich dessen IP-Stack nicht 
benutzen möchte sondern die Ethernet-Frames selber empfangen und senden 
möchte. Auch all die anderen tollen Features die ein OS sonst so zu 
bieten hat nützen mir bei diesem Projekt eher wenig, ich benötige keine 
Dateien und kein komplexes Speichermanagement (die MMU soll schon aus 
Gründen der Performance aus bleiben, für ein simples malloc/free für 
Bare-Metal-Applications gibt es kleine Libraries) und auch sonst nichts.

Meine Ideal-Vorstellung wäre ein simpler µC mit 1 MB internem Flash und 
2 MByte internem SRAM (eventuell reichen auch 1 MB) und 2 internen 
Ethernet-MACs (meinetwegen mit MII-Interfaces zu den externen PHYs) und 
2 UARTs und ein paar IO-Ports als Single-Chip-Lösung. Soetwas scheint es 
bei keinem Hersteller zu geben, selbst bei Atmel ist dann mindestens 
USB/Graphik/DDR-RAM-Interface/NAND-Flash obligatorisch (was mir zum 
selber Entwickeln einer Platine zu viel Aufwand/Risiko bedeutet).

Ich weiß das es auch FPGAs mit echten CPUs und verschiedener Peripherie 
gibt aber das ist noch mal teurer und hat noch größere Gehäuse, mal 
davon abgesehen das ich den FPGA-Logik-Teil für dieses Projekt nicht 
benötige.

Grüße
Erik

von Stefan F. (Gast)


Lesenswert?

> Die Checksummen von TCP/UDP/IP sollten eigentlich vom
> Ethernet-Controller automagisch gecheckt (beim empfangen)
> bzw. berechnet (beim senden) werden

Nun, da kannst du lange suchen. Denn die mir bekannten Ethernet 
Controller kümmern sich bestenfalls um die Prüfsumme vom Ethernet Frame. 
Jedoch nicht vom IP-Protokoll.

Da brauchst du dann schon Controller, die IP können. Also z.B. diese 
Chips von Wiznet. Aber das ginge nicht in die Richtung, die Dir 
vorschwebt.

von 1N 4. (1n4148)


Lesenswert?

> ein simpler µC mit 1 MB internem Flash und
> 2 MByte internem SRAM (eventuell reichen auch 1 MB)

Ab 1MB RAM wird bei Digikey die Ergebnisliste sehr übersichtlich

von ABC (Gast)


Lesenswert?

Microcontroller mit 2MB SRAM
Der war gut, ...

von Johannes S. (Gast)


Lesenswert?

Angebot und Nachfrage, das ist eben eine Kombi die nicht viele brauchen. 
Mir fallen jetzt auch nicht soviele Geräte ein die zwei Ethernet Ports 
brauchen und nix an Grafik oder sonstigem. Am ehesten kommen dem doch 
die genannten Routerboards nahe. Und wenn die soviel Power haben das da 
auch ein (embedded) Linux drauf läuft dann ist in der Treiberschicht 
doch schon alles erledigt.
Bei EA gibts noch i.MX6/7 Module mit Dual Ethernet, aber da braucht man 
noch ein Trägerboard mit PHY und den Buchsen. Oder bei Phytec schauen, 
die haben auch sowas in diese Richtung.

von Whitespace (Gast)


Lesenswert?

Du solltest unbedingt genauer beschreiben, was für eine 
"Protokoll-Umwandlung" eigentlich notnwendig ist. Wie Stefan Us schon 
geschrieben hat, geht man bei Ethernet, wenn man so wie du nichts 
spiezielles dazu sagt, meist davon aus, dass es um TCP/IP oder UDP und 
Konsorten geht. Natürlich kann man in einen Ethernet Frame auch andere 
Sachen reinpacken.
Das ist hier aber wesentlicher Aspekt, weil davon ja abhängt wie viel 
Rechenleistung notwendig ist und auch wie hoch der 
Implementierungsaufwand ist.

Auch wenn man die Rechenleistung und 98% der anderen Features eines RaPi 
und eines kompletten OS nicht braucht, ist es nicht unwahrscheinlich 
dass diese Lösung fertig ist bevor du mit deiner Bare-Metal Variante 
überhaupt einen einzigen Frame vom Ethernet Controller geholt hast und 
mit etwas Pech ist bis dahin nichtmal die Toolchain aufgesetzt.

Wenn es da nicht nicht andere zwingende Randbedingungen wie 
Stromverbrauch, Platz, Ausfallsicherheit, Bootzeit, etc. oder Hobby (aka 
ich will das einfach so machen) gibt, sollte man den Ansatz überdenken.

von AR (Gast)


Lesenswert?

Carambola 2 hat 2x Ethernet, allerdings wohl nur 1x UART.

von 1N 4. (1n4148)


Lesenswert?

Ist Qualcomm/Atheros mittlerweile etwas freizügiger bzgl. Herausgabe von 
Doku?

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Stefan U. schrieb:
> Denn die mir bekannten Ethernet Controller kümmern sich bestenfalls um
> die Prüfsumme vom Ethernet Frame.
Zumindest der im stm32 macht das innerhalb tcp udp und co.

von ... (Gast)


Lesenswert?

Schau dir mal das phyBOARD Wega an

von Chris F. (chfreund) Benutzerseite


Lesenswert?

Whitespace schrieb:
> und eines kompletten OS nicht braucht, ist es nicht unwahrscheinlich
> dass diese Lösung fertig ist bevor du mit deiner Bare-Metal Variante
> überhaupt einen einzigen Frame vom Ethernet Controller geholt hast und
> mit etwas Pech ist bis dahin nichtmal die Toolchain aufgesetzt

Genau das ist es.

Wenn er bei den harten Vorgaben bleibt wird das ganze auf ein eigenes 
Board mit externen/m Ethernetcontroller/n herauslaufen und parallel mit 
dem µC verbunden. Wiederum ohne OS (auch kein RTOS oder so?) anbinden 
wird richtig bitter. Dann braucht er vielleicht noch externen Speicher?!
Die CPU braucht 200MHz um Frames zu filtern? Was heißt das?

So ein Board gibt es nicht.

Die Konzepterstellung allein steht schon in keinem Verhältnis zu 80€ für 
den Banana-Pi-Router.

Wenn Du das so "pur" brauchst, dann bau doch ein eigenes Linux-Modul, so 
dass der ganze Rest wegbleiben kann.

von Atmel (Gast)


Lesenswert?

Atmel NGW 100 klingt nach deinen Anforderungen!

von Chris (Gast)


Lesenswert?

Kannst du bestimmt auch baremetal programmieren, wir nutzen das Teil mit 
Linux.
Als buildsystem verwenden wir ptxdist von pengutronix, das erstellt dir 
dein rootfs nach deinen wünschen, das kann dann auch minimal groß sein.. 
wie du magst.. Im Mainline Kernel ist der SOC auch drin.. was will man 
mehr :)

http://www.nxp.com/products/software-and-tools/software-development-tools/i.mx-software-and-tools/i.mx28-evaluation-kit:MCIMX28EVKJ

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Ein SAM9X25 hätte schonmal 2 Ethernet MACs.
Vllt gibts ja auch nen Devboard für das Teil.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.