Wie kann ich zwei Ethernet-Controller umschaltbar auf einen Stecker legen?

Gast #1438513
Hallo Leute,

bei miener Bachelor-Arbeit habe ich folgendes Problem:
Es soll ein Kästchen entstehen mit Ethernet-Anschluss.
Dabei soll das Gerät zwei Ethernet-Protokolle unterstützen:
1.) Standard Ethernet  (im µC)
2.) EtherCat (Separater Controller)

Das Ganze soll wenn möglich per Software umschaltbar sein.
Will aber dafür keine Relais oder ähnliches verwenden...

Ich bin auf der Suche nach einen Ethernet-Phy, der
zwei MII Schnittstellen und einen Ethernet-"Ausgang" hat.
Der Phy soll sich dann umschalten lassen...

Ich hab schon mal einen Chip gesehen, der es genau umgekehrt kann:
1x MII, 2x Ethernet, daher dachte ich, dass es vielleicht auch die
andere Seite geben muss...

Kann mir von Euch jemand weiterhelfen?

Schöne Grüße,
Franz
Gast
Hallo Firefly,

vielen Dank für die Antwort. Irgendwie hat das mit der 
Emailbenachrichtigung nicht geklappt, weshalb ich Deinen Beitrag erst 
jetzt lese..

Ich habe eine andere Lösung für das Problem gefunden.
Ich verwende nun einen EtherCAT Chip, der mehrere MAC-Schnittstellen 
hat,
und kann so die entsprechenden Nachrichten auf den dritten MAC 
weiterleiten.

Daraus ergibt sich jetzt das nächste Problem:

Ich will die MAC in meinem µC mit einer MAC des EtherCAT controllers
verbinden. Dass es mit PHYs dazwischen funktioniert, ist mir klar.
Aber das gefällt mir wegen des Platzverbrauchst überhaupt nicht.

Ich hab schon mal ein Application Note von Micrel gesehen,
bei dem man zwei MACs direkt miteinander verbunden hat.
Jedoch nicht als detailierten Schaltplan, sondern nur als 
Blockdarstellung.

Dass ich RX/TX crossen muss ist mir klar. Aber ich weis noch nicht was 
ich
genau mit den anderen Leitungen anstellen soll, die die MII mit sich 
bringt.

Da komm ich wohl um ein Experiment nicht herum :-).
Wär aber schön, wenn jemand von Euch schon Erfahrung mit sowas hatte,
und ein paar Tipps hier verlieren könnte.

Vielen Dank!
Gast
Wichtig sind folgende Signale:

TxD     Sendedaten (MAC->PHY)
TxEN    wenn high, sind Sendedaten gültig (MAC->PHY)
TxCLK   Takt, mit dem die Sendedaten übertragen werden (PHY->MAC)

RxD     Empfangsdaten (PHY->MAC)
RxDV    wenn high, sind Empfangsdaten gültig (PHY->MAC)
RxCLK   Takt, mit dem die Empfangsdaten übertragen werden (PHY->MAC)

Man könnte theoretisch TxD und RxD zusammenschalten, sowie TxEN und 
RxDV, das heisst, einer der beiden MAC "spielt" PHY.
Problem ist aber, dass der PHY sowohl im Sende- als auch im Empfangsfall 
den Takt bereitstellt. Leider hat aber ein MAC keinen Taktausgang an 
seinem MII-Interface und daher wird das ganze nicht so einfach 
funktionieren. Du müsstest von aussen einen 25MHZ-Takt einspeissen.
Gast
Ich halte die Lösung mit dem Tri-Stat-Muliplexer am MII-Interface, die 
Rufus beschreibt, deutlich einfacher, günstiger und praxisnäher.

Allerdings musst du bei der Lösung darauf achten, dass du innerhalb 
aller RX-Signale keinen allzugroßen Skew bekommst. Das heisst, die 
Laufzeiten von RxD, RxDV und RxCLK durch deine Treiber sollten annähernd 
gleich sein.

Für die TX-Leitungen gibt es neben der Anforderung eines geringens Skews 
noch das Problem, dass der Takt vom PHY bereitgestellt wird, und das 
Ausgeben der Daten im MAC veranlasst, welche wiederum vom PHY gelesen 
werden. Zwischen dem Takt am PHY und den ankommenden Daten am PHY darf 
nur eine bestimmte maximale Verzögerungszeit liegen, da sonst Setup- und 
Holdtime Verletzungen auftreten können.
Dies bedeutet, dass deine Treiber eine möglichst kurze Verzögerungszeit 
aufweisen sollten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.