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
Wie wäre es, die MII-Schnittstelle durch einen Multiplexer resp. zwei wechselweise abschaltbare Treiber mit Tristate-Ausgängen zu leiten? Dann kannst Du ein PHY verwenden, aber zwei MACs (oder auch mehr) daran hängen.
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!
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.
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.
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.