Hallo! Ich suche nach einer Möglichkeit an einem Microcontroller zwei vollwertige Ethernet-Ports anzuschließen. D.h. jeder Port soll seine eigene MAC-Adresse und IP-Adresse haben und in der Software auch als eigene Netzwerke angestuert werden können. Wenn ich z.B. einen Microcontroller mit einer MAC-Einheit nehme und einen 3-Port-Switch-Chip wir z.B. den KSZ8893 anschließe, kann ich diesen dann so konfigurieren, das ich die 2 Ports nach außen getrennt betreiben kann? Ich könnte mit vorstellen, dass das über VLAN funktioniert. Aber können die Ethernet-Treiber und TCP-Stacks dann auch damit umgehen? Vielen Dank schon mal für Eure Hilfe! Roland
Wenn du über einen Switch gehst, hast du etwas anderes, als drei separate Ports. Ein Switch ist kein primitiver Dreifachstecker. Zum Beispiel musst du dann den Switch fragen, wenn du wissen willst, welche Link LED's an sind. > Aber können die Ethernet-Treiber und TCP-Stacks dann auch damit umgehen? Welche Treiber und welche TCP-Stacks konkret?
Stefan Us schrieb: > Wenn du über einen Switch gehst, hast du etwas anderes, als drei > separate Ports. Ein Switch ist kein primitiver Dreifachstecker. > > Zum Beispiel musst du dann den Switch fragen, wenn du wissen willst, > welche Link LED's an sind. So weit ist mir das schon klar. Aber kann man einen Switch so konfigurieren, dass die beiden Ports nach außen einzeln angesteuert werden können? Also einer ist eth0 und der andere eth1? > >> Aber können die Ethernet-Treiber und TCP-Stacks dann auch damit umgehen? > > Welche Treiber und welche TCP-Stacks konkret? Ich bin da noch nicht festgelegt. Kennst Du einen der das kann, was ich möchte? Grüße, Roland
Moin, Roland Caßebohm schrieb: > Ich könnte mit vorstellen, dass das über VLAN funktioniert. Aber können > die Ethernet-Treiber und TCP-Stacks dann auch damit umgehen? Ja, ich wuerd' mal nicht pauschal ausschliessen, dass der KSZ8893 sowas kann. Das laeuft dann ueber sowas aehnliches wie VLAN-Tags, im Datenblatt steht sowas von "Special Tagging Mode", das ist hochgradig verdaechtig. Bei Marvell-Switchen gibts auch so was in der Art, da heissts dann DSA-Tag: https://lwn.net/Articles/302333/ Das bedeutet aber nur, dass die Switch-Hardware das prinzipiell kann (=in Paeckchen, die reinkommen, einen Tag reinbauen, der der CPU sagt, woher die Paeckchen kamen und umgekehrt: aus Paeckchen, die von der CPU kommen, entnehmen, an welchen Port sie weitergereicht werden sollen). Ethernet-Treiber, die das unterstuetzen und nach oben als 2 ETHs durchreichen, sind da eher selten out-of-the-box zu finden. Weiterhin sollte auch sichergestellt sein, dass die einzelnen Ports nicht zusammen auf mehr als die Geschwindigkeit des 3. Ports zur CPU an Datenrate kommen... Gruss WK
>Ich suche nach einer Möglichkeit an einem Microcontroller zwei >vollwertige Ethernet-Ports anzuschließen. Es soll Microcontroller geben die zwei MACs haben.
holger schrieb: > Es soll Microcontroller geben die zwei MACs haben. Und wieviele Ethernet-Ports kann man dann damit erst nachbilden... :-D Gruss WK
Schau mal hier: http://www.spansion.com/Products/microcontrollers/Pages/search.aspx#ethc=2&pf=4&ps=1&sc=1 Cortex-M3 core incl. 2ch Ethernet. Brauchst aber externen Phy. MB9BF61x ... oder mit CAN-I/F: MB9BFD1x Beide sowohl für 3.3V alsauch 5V Design. Allerdings großes Gehäuse, 144pin oder 176pin Grüße Mic Roller
:
Bearbeitet durch User
Danke für Eure Antworten! Tja, einen Controller mit zwei MACs zu nehmen ist bestimmt ein besserer Weg, wenn das nur nicht immer gleich solche Schiffe wären... :-/ Wobei in dem Datasheet vom Axis AX88613 zeigen sie genau solche Anwendung. Siehe angehängtes Bild. Also eigentlich müsste es gehen, aber ob es dafür entsprechende Treiber gibt? Viele Grüße, Roland
Moin, Roland Caßebohm schrieb: > Tja, einen Controller mit zwei MACs zu nehmen ist bestimmt ein besserer > Weg, wenn das nur nicht immer gleich solche Schiffe wären... :-/ Wenn du Angst vor Controllern mit 2 MACs hast, dann ist das nix fuer dich. Mit einem externen 3 Port-Switch 2 MACs nachzubilden ist erheblich mehr Aufriss. > Wobei in dem Datasheet vom Axis AX88613 zeigen sie genau solche > Anwendung. Siehe angehängtes Bild. > > Also eigentlich müsste es gehen, aber ob es dafür entsprechende Treiber > gibt? Ja, es geht prinzipiell, wenn der Switch eben die entsprechende HW-Unterstuetzung liefert. Aber es ist ordentliches Gewurschtel. Und die entsprechenden Treiber darfst du selber schreiben oder aus "normalen" Treibern aufpeppen, wenn sie dir nicht beim Switchhersteller entgegenfallen. Was sehr selten passieren wird...Umso mehr, wenn die Prozessoren zu klein sind, um Linux laufen zu lassen. Alleine die Programmierung des Switches: Das ist ja nicht, wie bei einem 5 EUR Switch vom Mediamarkt: Anschliessen und wird schon irgendwie gehen. Du musst dir den jeweiligen Linkstatus, usw. regelmaessig aus den Registern des Switchs auslesen; du musst dem Switch haarklein erklaeren, was er mit welchen Paketen zu tun hat - das geht alles ueber ein 2-Draht Interface (ueblicherweise kein I2C), hat also mit den eigentlichen ETH-Ports noch ueberhaupt nix zu tun. Der/Die ETH-Treiber werden dann zusaetzlich noch interessant, wenn du irgendwelches Routing zwischen den Ports haben willst...Das sind ziemlich dicke Bretter die da gebohrt werden muessen. Gruss WK
Die Doku zu den Micrel-Switch-Bausteinen ist nicht gerade toll und oft unvollständig. Das merkt man dann leider erst hinterher. Du bekommst da keine schöne Fehlermeldung, sondern es funktioniert einfach nicht und dann darfst Du rätseln. Wenn dieser Teil des Switches mit allen Registern da nicht haarklein erklärt ist, würde ich das als dickes Projektrisiko einstufen.
Ich habe keine Ahnung, wie groß das Datenvolumen ist und wie eilig Du es hast, aber schau Dir doch mal den Konzept des AVR-NET-IO von Pollin an. Der verwendet, wenn ich es richtig verstanden habe, einen I²C gekoppelten Netzwerkkontroller. Das müsste auch mit zweien gehen. Alternativ kannst Du einen "eingebauten" mit einem "externen" I²C Port ergänzen.
Amateur schrieb: > Ich habe keine Ahnung, wie groß das Datenvolumen ist und wie eilig Du es > hast, aber schau Dir doch mal den Konzept des AVR-NET-IO von Pollin an. > Der verwendet, wenn ich es richtig verstanden habe, einen I²C > gekoppelten Netzwerkkontroller. Das müsste auch mit zweien gehen. > Alternativ kannst Du einen "eingebauten" mit einem "externen" I²C Port > ergänzen. das netio verwendet spi. der TO schreibt aber ja leider kein wort darüber was er tun will.. sonst könnte man ihm ja villeicht auch einen der ganzen Router SoCs empfehlen bzw ein minimalboard mit einem solchen (vocore und so) aber man weiß ja weder wie viel speicher/Rechenleistung/Architektur oder sonst was der TO will.
> Kennst Du einen der das kann
Nein.
Willst du denn wirklich zwei Ethernet Ports simulieren, oder genügt es
schon, zwei IP-Adressen auf einem Port zu haben? Dann wäre die Sache
nämlich viel einfacher. Das kann jeder billige 12 Euro Switch. Und
gängige Netzwerk Stacks (wie µIP) entsprechend umzuschreiben, sollte
kein allzu großer Akt sein.
Ich glaube dann genügt es, einfach zwei Instanzen von µIP parallel zu
betreiben. Man müsste nur den Zugriff auf die globalen Variablen
umschreiben, weil µIP eben nicht dafür gedacht ist, dass mehrere
Instanzen parallel laufen.
Zumindest stelle ich mir das so vor.
Hallo zusammen! Danke nochmal für die vielen zahlreichen guten Antworten! Es ist tatsächlich so, dass ich noch nicht genau weiß, wo es hingehen soll. Im Moment geht es einfach ganz grob darum, einem Gerät zwei Ethernet-Schnittstellen zu verpassen, die in zwei getrennten Netzwerken hängen. Eine Schnittstelle um ein Gerät z.B. an ein Firmennetzwerk zu hängen und Gerätezustände in einem Webserver darzustellen und die andere um mehrere solcher Geräte autark untereinander zu vernetzen. Ich möchte aber vor allem zunächst die Möglichkeiten ausloten. Auch überlege ich ob für mich die richtige Lösung eine Plattform ohne OS, mit einem kleinen RTOS oder sogar Embedded Linux ist. Aber Eure Antworten haben mich dabei schon ein ganzes Stück weiter gebracht. Danke!! Viele Grüße, Roland
Bei den Preisen für ein Board mit Embedded-Linux grenzt es doch an Masochismus einen anderen Weg zu gehen. Mit Lin wirfst du einmal deine toolchain zusammen und kannst ab dann bequem auf den Resourcen rumwirtschaften...
Max D. schrieb: > Bei den Preisen für ein Board mit Embedded-Linux grenzt es doch an > Masochismus einen anderen Weg zu gehen. Das hängt von der angestrebten Stückzahl ab. Wenn es nur wenige (100...) Stück sind, dann ist ein kleines Embedded-Board wirklich die einfachere und günstigere Alternative, sofern nicht irgendwelche anderen Anforderungen dagegenstehen (Platz, Stromverbrauch, etc.). Für ein Projekt, wo die Stückzahl eine Eigenentwicklung auf Mikrocontroller-Basis sinnvoll machte, haben wir auch die FM3/FM4-Mikrocontroller von Spansion mit zwei Ethernet-MACs eingesetzt. Die Software-Unterstützung von Spansion ist sehr gut, aber es ist trotzdem einiges an Arbeit.
Ich werf einfach mal das Atmel SAMA5D3 Xplained in die Runde http://www.atmel.com/tools/ATSAMA5D3-XPLD.aspx Dazu folgende Links: http://www.atmel.com/tools/SAMA5D3SOFTWAREPACKAGE.aspx http://www.at91.com/linux4sam/bin/view/Linux4SAM/AT91Bootstrap Das Board gibt es z.B. hier: http://www.exp-tech.de/atmel-sama5d3-xplained-kit-atsama5d3-xpld?___SID=U
Es ist theoretisch möglich, praktisch ist allerdings in nahezu allen Fällen eine softwareseitige Lösung handlicher. Einzige Ausnahme hierzu wäre, wenn der Traffic eine entsprechende Menge erreicht dass es tatsächlich ans Limit dessen geht was die physische Leitung hergibt.
Hi Thomas, der ist auch interessant! Wobei laut Datenblatt sieht das auch danach aus, dass der eigentlich eine Ethernet-Schnitstelle mit einem Switch hat. Um so mehr wäre es hier auch interessant, ob man die zwei Ports mit der Linux-Version, die darauf läuft mit einzeln eth0 und eth1 verwenden kann. Viele Grüße, Roland Thomas T. schrieb: > https://www.olimex.com/Products/OLinuXino/RT5350F/RT5350F-OLinuXino-EVB/ > > 25€
der verbaute chip ist der selbe wie beim von mir bereits genannten vocore und hat insgesamt 4 Ethernet Schnittstellen+ wlan
Christoph Budelmann schrieb: > Max D. schrieb: >> Bei den Preisen für ein Board mit Embedded-Linux grenzt es doch an >> Masochismus einen anderen Weg zu gehen. > > Das hängt von der angestrebten Stückzahl ab. Wenn es nur wenige (100...) > Stück sind, dann ist ein kleines Embedded-Board wirklich die einfachere > und günstigere Alternative, sofern nicht irgendwelche anderen > Anforderungen dagegenstehen (Platz, Stromverbrauch, etc.). > > Für ein Projekt, wo die Stückzahl eine Eigenentwicklung auf > Mikrocontroller-Basis sinnvoll machte, haben wir auch die > FM3/FM4-Mikrocontroller von Spansion mit zwei Ethernet-MACs eingesetzt. > Die Software-Unterstützung von Spansion ist sehr gut, aber es ist > trotzdem einiges an Arbeit. Das sehe ich auch so. Wobei bei mir schlagen da zwei Herzen, auf der einen Seite würde ich schon gerne die Möglichkeiten, die einem Linux bieten nutzen können, auf der anderen Seite ist es tatsächlich so, dass es sich tatsächlich um größere Stückzahlen handelt, wir keinen Platz haben, das ganze kein Strom verbrauchen darf, nicht lange booten soll und so weiter... ;-) Die Spansion Controller machen auf mich auch einen guten Eindruck! Nutzt ihr auf dem Spansion ein RTOS? Viele Grüße, Roland
Viele SOCs aus dem Mobilbereich haben noch einen SRAM-ähnlichen Adress-/Datenbus, an den gerne ein Davicom DM9000 angeschlossen wird. Und wo einer geht, passen in aller Regel auch zwei dran, genügend Adressleitungen oder Chipselects vorausgesetzt. Der DM9000 ist ein kombinierter 10/100 MAC/PHY. Linux-Support ist kein Problem, sogar WinCE wird abgedeckt. Ansonsten: Microchip ENC424J600/624J600, auch 10/100, mit offizieller MAC-Adresse im Chip und HW-Crypto-Support. Ansteuerung per SPI oder 8/16 Bit SRAM-Bus. fchk
Roland Caßebohm schrieb: > Das sehe ich auch so. Wobei bei mir schlagen da zwei Herzen, auf der > einen Seite würde ich schon gerne die Möglichkeiten, die einem Linux > bieten nutzen können, auf der anderen Seite ist es tatsächlich so, dass > es sich tatsächlich um größere Stückzahlen handelt, wir keinen Platz > haben, das ganze kein Strom verbrauchen darf, nicht lange booten soll > und so weiter... ;-) Was heißt "größere Stückzahlen"? 1k p.a.? 10k? 100k? fchk
Roland Caßebohm schrieb: > Nutzt ihr auf dem Spansion ein RTOS? Nein, wir arbeiten direkt auf dem Controller. Der Hintergrund ist auch, dass wir einen Bootloader geschrieben haben, der sich über Ethernet neue Software vom Server ziehen kann inklusive Authentifizierung und Verschlüsselung. Da es eben "nur" der Bootloader ist, sollte dieser entsprechend klein sein. Ansonsten läuft auf dem Controller noch ein Webserver und es werden verschlüsselte Daten (Public-Key-Verfahren) ausgetauscht mit einem zentralen Server. Der Rest ist eher Kleinkram (externer Speicher, RTC, USB-CDC mit einer einfachen Shell, etc.).
Hi, Was hindert Dich daran, an einem Mikrokontroller mit Ethernet Port 2 MAC Adressen auf den Port zu binden und diese in 2 IP Bereichen zu verwenden? Dahinter ein normaler Switch und gut. Gruß Martin
Frank K. schrieb: > Roland Caßebohm schrieb: > >> Das sehe ich auch so. Wobei bei mir schlagen da zwei Herzen, auf der >> einen Seite würde ich schon gerne die Möglichkeiten, die einem Linux >> bieten nutzen können, auf der anderen Seite ist es tatsächlich so, dass >> es sich tatsächlich um größere Stückzahlen handelt, wir keinen Platz >> haben, das ganze kein Strom verbrauchen darf, nicht lange booten soll >> und so weiter... ;-) > > Was heißt "größere Stückzahlen"? 1k p.a.? 10k? 100k? > > fchk Zwischen 1k und 10k Grüße, Roland
Hallo zusammen, also wie ich bereits geschrieben habe, wollte ich erst einmal einen Überblick über die Möglichkeiten haben und den habe ich durch Eure guten Antworten bekommen! :-) Also vielen Dank nochmal!!! Roland
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.