Forum: Mikrocontroller und Digitale Elektronik dual port ethernet device


von H. R. (hacker_r)


Lesenswert?

Hi
ich habe 100 boards (Motorsteuerung) die über Eternet gesteuert werden. 
Die boards sind einen 2mx2m Raum. Aktuell sind Boards über switches (7x 
16 port switch)angeschlossen mit unmengen von Ethernetkabel.
Idealerweise wurde ich gerne ethernet durch schleifen von einem port zum 
anderen und mir die switches und längere Kabel einsparen.

Was muss da HW mässig passieren? Reicht es einfach eine weitere ethernet 
Buchse auf der Platine einzubauen und die Pins eins zu eins raus zu 
geben? Oder was muss gemacht werden? Ein switch Baustein? Habt ihr eine 
Empfehlung? Idealerweise wurde ich ohne Firmware Änderungen auskommen.

von Markus M. (markus_4)


Lesenswert?

Ein drei-port-switch erscheint mir am sinnvollsten, wenn das von der 
latenz dann noch hinhaut.
Das Board dafür dürfte aber relativ anspruchsvoll sein und nicht mit 
'1:1 durchverbinden' getan sein...

von Dieter (Gast)


Lesenswert?

Wenn die Geräte über Ethernet nur empfangen kann, dann man da sicherlich 
eine Lösung ohne Switch finden, aber so hast du mit Ethernet selbst eine 
Sterntopologie gewählt, sprich die Switche brauchst du so oder so. 
Allein schon aufgrund der Problematik einer Fehlersuche würde ich 
dringend davon abraten da jetzt 100 Switche zu verbauen. Denn das würde 
auf Layer 2 nebenbei relativ unschön (sollte gehen, aber ist nicht 
schön, wenn dann aber eine Schleife gesteckt wird...).

Du wirst dir nur unnötig hohe Kosten und Probleme mit der Anbindung 
einer jeden Steuerung über einen zusätzlichen Switch SoC einfangen. 
Weniger Kabel werden es dadurch nicht. Wozu man aber raten kann sind 48 
Port managed Switche, die Generation mit Fast Ethernet bekommt man 
inzwischen hinterhergeworfen.

Gibt es aus der Industrie nicht eher einen anderen Bus bei solchen 
Motorsteuerungen der genau für sowas ausgelegt wurde wie z.B. CAN/RS485?

Glasfaserbasierte Anbindungen sollen bei solchen Motorsteuerungen 
aufgrund der galvanischen Trennung der "heiße shit" aktuell sein. So 
Glasfasern sind auch nicht so dick wie Ethernetkabel, kostet halt. Ggf. 
wäre das eine Lösung.

von georg (Gast)


Lesenswert?

H. R. schrieb:
> Reicht es einfach eine weitere ethernet
> Buchse auf der Platine einzubauen und die Pins eins zu eins raus zu
> geben?

Nein, du musst einen Switch einbauen.

Eine Bustoplogie gab es früher, per Koaxkabel von Gerät zu Gerät, das 
ist aber ausgestorben. Eigentlich war das die ursprüngliche 
Ethernet-Topologie, aber die hatte, abgesehen davon dass nur 10 MBit/s 
möglich waren, auch den massiven Nachteil, dass bei einem Fehler ALLES 
ausgefallen ist, weil ja miteinander verbunden, und die Fehlersuche war 
dann auch kein Vergnügen.

Georg

von 132 (Gast)


Lesenswert?

H. R. schrieb:
> Reicht es einfach eine weitere ethernet
> Buchse auf der Platine einzubauen und die Pins eins zu eins raus zu
> geben? Oder was muss gemacht werden? Ein switch Baustein?

Du brauchst natürlich pro Platine einen Switch. Wenn du unbedingt 
willst, kann du auf jeder Platine einen Switch-IC unterbringen. Dann ist 
jede Steuerung ein Switch der die Pakete seines Vorgängs und seine 
eigenen kombiniert. Allerdings muss dir in Sachen Latenz (aka. 
Verzögerung) klar sein, dass jede Stufe der Kaskadierung zusätzlich dazu 
beiträgt.
Wenn ich das richtig verstehe sieht es bis jetzt so aus:

PC=Steuer PC
R0=Router der alle 16-fach Router (R1 ...) zusammenfasst
Sx=Steuerung mit Nr. x
1
PC
2
|
3
+----+---------------------------------+------+...  (<-- R0)
4
     |                                 |      |
5
     R1--+--+--+--+--+--+--+..         R2..   R3..
6
         |  |  |  |  |  |  |
7
         S1 S2 S3 S4 S5 S6 S7 ...
Du hast also 2 Ebenen die Latenzen erzeugen.

Mit der Kaskadierung die du vor hast, hast du n (n=Anzahl der 
Steuerungen) Ebenen die Latenzen erzeugen (können).
1
PC
2
|
3
|\ S1
4
|
5
|\ S2
6
|
7
|\ S3
8
|
9
|\ S4
10
|
11
|\ S5
12
|
13
|\ S6
14
|
15
|\ S7
16
.
17
.
18
.

Ist das akzeptabel?

Ist das ein spezielles Ethernet (irgendwas echtzeitfähiges?)

von Raoul G. (copymaster)


Lesenswert?

georg schrieb:
> Eine Bustoplogie gab es früher, per Koaxkabel von Gerät zu Gerät

Das beschreibt eine Ringtopologie... bzw. eine Linientopologie.

https://de.wikipedia.org/wiki/Topologie_(Rechnernetz)

: Bearbeitet durch User
von Quick'n'Dirty (Gast)


Lesenswert?

Ist das ein proprietäres Protokoll auf Ethernet (oder wird IP 
verwendet)? Wird das Gerät direkt mit MAC-Adresse angesprochen oder 
erfolgt die Adressierung im höheren Protokoll? Wie ist die Datenrate, 
sonstige Anforderungen?

Mal angenommen, die MAC-Adresse ist für die Adressierung nicht 
entscheidend und der Durchsatz/Latenz ist nicht wichtig: Sende alles als 
Ethernet-Broadcast und schleife es durch. Jedes Gerät reicht alles 
weiter und sucht sich seine Steuerpakete anhand der MAC-Adresse selbst.

von H. R. (hacker_r)


Lesenswert?

Hi
> Ist das akzeptabel?
Die Latenz interessiert mich hierbei nicht, aber allgemein: was ist den 
hier die Latenz?

> Ist das ein spezielles Ethernet (irgendwas echtzeitfähiges?)
nee kein spezielles ethernet. Stink normales Ethernet ;-)

von Quick'n'Dirty (Gast)


Lesenswert?

...anhand der L3-Adresse natürlich, nicht der MAC-Adresse...

von H. R. (hacker_r)


Lesenswert?

Hi
> Ist das ein proprietäres Protokoll auf Ethernet (oder wird IP
> verwendet)? Wird das Gerät direkt mit MAC-Adresse angesprochen oder
> erfolgt die Adressierung im höheren Protokoll? Wie ist die Datenrate,
> sonstige Anforderungen?
UDP / TCP sockets. Datenrate ca 1Mbps
Latenz sollte unter einer Sekunde sein!

von Quick'n'Dirty (Gast)


Lesenswert?

H. R. schrieb:
> UDP / TCP sockets

Okay, also schon ein bißchen mehr Stack, vielleicht sogar ein ganzes 
Linux? In dem Falle könntest du, falls möglich, eine zweite 
Netzwerkkarte einbauen und per IP-Routenvorgabe alles was zum einen 
eth-Port reingeht und nicht der eigenen IP entspricht zum anderen 
eth-Port rausschaufeln.

von Bentschie (Gast)


Lesenswert?

Hallo,

wenn die die Motorsteuerung anpassen kannst, dann schmeiß doch die 
bisherige Phy raus und erstze die durch einen 3-Port Switch (z.B. 
KSZ8863)
Dieser IC hat an dem einen Port direkt eine Phy, ersetzt da also nahtlos 
den bisherigen Baustein und hat auf der anderen Seite zwei Ethernet 
Schnittstellen, also zwei RJ45 Anschlüsse.

Ja, Du hast dann in jedem Gerät eine Latenz.
Die meisten einfachen Switches mache store and forward. Das bedeutet, 
sie empfangen das komplette datenpaket und schauen dann nach wo es hin 
soll und senden es anschließend weiter.
Wenn du einen Switch behälts, un dann davon 16x zu einer Kette von 8-10 
Motorkarten gehst, sollte die Latenz aber passen.

----
Bentschie

von Dauergast (Gast)


Lesenswert?

Klingt fürchterlich sinnvoll, 7 Switches durch 100 Switches zu ersetzen, 
1 Kabel pro Gerät durch zwei Kabel pro Gerät, um damit insgesamt weniger 
Switches und Kabel zu benötigen.

Mein ja nur :-)

von H. R. (hacker_r)


Lesenswert?

Hi
> wenn die die Motorsteuerung anpassen kannst, dann schmeiß doch die
> bisherige Phy raus und erstze die durch einen 3-Port Switch (z.B.
> KSZ8863)

Muss ich dafür die bestehende FW verändern? Wäre das eine grössere 
Änderung?
Sehe ich  richtig dass ich dann 2 MAC adressen hätte? (bzw 3-> 3 port 
switch)?
Thx

von Bernhard S. (b_spitzer)


Lesenswert?

Dauergast schrieb:
> 1 Kabel pro Gerät durch zwei Kabel pro Gerät

falsch gedacht. Gerät N hat ein Kabel zu N+1. Gerät N+1 hat ein Kabel zu 
N+2 etc. die Anzahl der Kabel wird gleich bleiben oder geringer. Dafür 
wird die Kabellänge in Summe vermutlich stark reduziert.

von Dauergast (Gast)


Lesenswert?

Bernhard S. schrieb:
> Gerät N hat ein Kabel zu N+1. Gerät N+1 hat ein Kabel zu N+2

Damit hat "N+1" schon mal zwei Kabel, eins von N und zu N+2.
Mal angenommen, sowohl N als auch N+2 hätten tatsächlich nur jeweils ein 
Kabel, wäre das ganze standalone-Dreier. Hätte N (wie in der Praxis) 
noch ein Kabel zu "root", wären es drei Kabel, wie vorher, aber zwei 
Switches statt einer.

Oder anders ausgedrückt: JETZT hat jedes Gerät EIN Kabel. Wie möchtest 
Du die Anzahl der Kabel reduzieren, wenn jedes Gerät angeschlossen sein 
soll?

Lediglich die Gesamtlänge aller Kabel kann kleiner werden, da bin ich 
bei Dir. Das ist allerdings der unkritischste und bei weitem 
kostenirrelevanteste Teil des Systems.

von Egon (Gast)


Lesenswert?

Bernhard S. schrieb:
> Dauergast schrieb:
>> 1 Kabel pro Gerät durch zwei Kabel pro Gerät
>
> falsch gedacht. Gerät N hat ein Kabel zu N+1. Gerät N+1 hat ein Kabel zu
> N+2 etc. die Anzahl der Kabel wird gleich bleiben oder geringer. Dafür
> wird die Kabellänge in Summe vermutlich stark reduziert.

Und Kabel kosten was? Richtig, nichts. Hab schon beim Pollin eine Kiste 
7,5m Kabel für 1€ das Stück oder so gekauft.


100 Switche sind allein schon hinsichtlich eines möglichen Fehlerfalls 
schlichtweg unsinnig. Zwei bis drei managed Switche und fertig aus. 
Alles andere ist Pfusch.

von Rolf M. (rmagnus)


Lesenswert?

Als Ethernet noch 10 MBit/s hatte, war die hier gewünschte Verkabelung 
dort sehr verbreitet, über Coax-Kabel. Da gingen einfach Kabel von Gerät 
zu Gerät, verbunden miteinander und mit den Geräten über einfache 
T-Stücke.

von Falk W. (dl3daz) Benutzerseite


Lesenswert?

H. R. schrieb:
> Hi
> ich habe 100 boards (Motorsteuerung) die über Eternet gesteuert werden.
> Die boards sind einen 2mx2m Raum. Aktuell sind Boards über switches (7x
> 16 port switch)angeschlossen mit unmengen von Ethernetkabel.
> Idealerweise wurde ich gerne ethernet durch schleifen von einem port zum
> anderen und mir die switches und längere Kabel einsparen.

Microchip hat LAN-Controller mit drei Ports und Switch(LAN9355). Zwei 
davon können als interne PHY mit RJ45, einer als PHY mit MDIO und allem, 
was dazugehört betrieben werden.

...
> Idealerweise wurde ich ohne Firmware Änderungen auskommen.

Das Datenblatt behauptet, daß alles ISO-konform ist. Damit könnte die 
bestehende FW passen.

Gruß,
Falk

von fchk (Gast)


Lesenswert?

Denke auch daran, dass jeder Switch eine kleine Verzögerung in der 
Größenordung von ein bis zwei Paketübertragungszeiten verursacht. Bei 
200 Paketübertragungszeiten könnte da schon einiges zusammenkommen.

fchk

von Nosnibor (Gast)


Lesenswert?

Wenn jede Motorsteuerung den drei-port-Switch schon eingebaut hätte, 
wäre das jetzt praktisch. Es gibt ja Microcontroller, die diese Hardware 
schon eingebaut haben.

Aber wenn das nicht der Fall ist, kann ich nur zu handlicheren Kabeln 
raten. Auf die kurze Entfernung muß es kein Cat.5 sein. ISDN verwendet 
ja die gleichen Stecker (nur ohne Abschirmung), und da gibt es auch 
8-adrige Patchkabel, die sind nicht so steif wie Cat.5 (4-adrige kann 
man nicht nehmen, weil ISDN von der 8-poligen Buchse andere 4 Pins 
benutzt als Ethernet). Die bequemen Schlabberkabel sind dann nicht 
geschirmt und nicht verdrillt, aber bei 10/100Mbit und unter zehn meter 
Länge ist das kein Problem für die Datenübertragung.

von usuru (Gast)


Lesenswert?

ich möchte nochmal auf den Vorschlag von Dieter mit den Switches mit 48 
Ports hinweisen, das erscheint auch mir unter Gesichtspunkten der Latenz 
und der Kosten am günstigsten,  von TP-Link gibt es sehr preiswert z.B. 
den TL-SF1048

von georg (Gast)


Lesenswert?

fchk schrieb:
> Bei
> 200 Paketübertragungszeiten könnte da schon einiges zusammenkommen.

Deswegen ist es einfacher und zugleich effektiver, 2 Ebenen Switche 
anzuordnen und z.B. immer 8 Geräte an einen kleinen Switch 
anzuschliessen. Dann ist auch keine Änderung an der Software nötig.

Ausserdem gilt, was ich schon oben über die Fehlertoleranz geschrieben 
habe, bei dem was sich der TO vorstellt führt ein Ausfall z.B. des 10. 
Geräts dazu, dass auch die übrigen 90 nicht mehr verbunden sind. 
Eigentlich verbietet sich sowas bei Motorsteuerungen von selbst.

Georg

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.