Hallo zusammen! Hintergrund dieser Frage ist eigentlich "das große Ganze" beim Thema Ethernet und Mikrocontroller. Insbesondere interessiert mich das Zusammenspiel zwischen Hardware und Software. Während meiner Recherchen bin ich auf eine Reihe von Begriffen gestoßen. Die erste Frage ist: Habe ich diese richtig verstanden? Der Datenfluss ist: µC <--> PHY <--> MAC <--> Switch <--> MagJack <--> Kabel <--> ... PHY Ist ein Schaltkreis der aus einem modellierten Analogsignal (auf der Leitung) ein digitales Signal (im µC) macht (und umgekehrt). Also, wenn ich in meinem Programm sage "Sende fünf Einsen", dann wandelt die PHY das in ein analoges Signal (welches?) um? Dieser Chip ist oft auch schon im Mikrocontroller integriert. MAC Kenne ich nur im Zusammenhang mit der Zugriffskontrolle (OSI-Modell). Was bedeutet es aber Hardwaretechnisch? Switch Verteilt das Signal von der MAC auf verschiedene Ports MagJack Die physikalische Anschlussbuchse für das LAN-Kabel (Steckt da noch mehr drin?) MII standartisierte Protokolle wie PHY und MAC miteinander reden Angenommen ich habe einen STM32F10x ohne interne PHY, was wäre der richtige Weg den Controller "ins Netz" zu kriegen? Nehmen wir an ich hätte hardwaretechnisch alles korrekt verdrahtet, wo setze ich jetzt mit der Software an? Ich muss ja irgendwie die "Schnittstellen" die ich oben versucht habe darzustellen beschreiben. Ich weiß, das ist eine sehr grobe Beschreibung meines "Problems", aber vielleicht könnt ihr mir den Weg aufzeigen wie ich daran gehen kann. Gruß Dennis
Dennis S. schrieb: > Hallo zusammen! > > Hintergrund dieser Frage ist eigentlich "das große Ganze" beim Thema > Ethernet und Mikrocontroller. Insbesondere interessiert mich das > Zusammenspiel zwischen Hardware und Software. Während meiner Recherchen > bin ich auf eine Reihe von Begriffen gestoßen. Die erste Frage ist: Habe > ich diese richtig verstanden? > > Der Datenfluss ist: > µC <--> PHY <--> MAC <--> Switch <--> MagJack <--> Kabel <--> ... µC <--> MAC <--> PHY <--> MagJack <--> Kabel <--> Switch <--> ... PHY ist der Analogteil, MAC der Digitalteil des Ethernetcontrollers > MagJack Die physikalische Anschlussbuchse für das LAN-Kabel (Steckt da > noch mehr drin?) Ja, Transformatoren. > Angenommen ich habe einen STM32F10x ohne interne PHY, was wäre der > richtige Weg den Controller "ins Netz" zu kriegen? Nehmen wir an ich > hätte hardwaretechnisch alles korrekt verdrahtet, wo setze ich jetzt > mit der Software an? Ich muss ja irgendwie die "Schnittstellen" die > ich oben versucht habe darzustellen beschreiben. Dein STM32 muss einen MAC beinhalten (also ein 105'er oder 107'er) und hat dann eine MII oder RMII-Schnittstelle, und da musst Du einen PHY anschließen. Such Dir ein Demoboard, zB bei Olimex, und schau, wie die das machen. fchk
Moin, Der Datenfluss ist eher so: µC <--> MAC <--> PHY <--> MagJack <--> Kabel <--> Switch <--> ... Der MAC ist oft im Microcontroller. Da wird ueblicherweise eine CRC ueber das zu sendende Paket berechnet und angehaengt; bei empfangenen Paketen gecheckt und abgesaebelt. Vor den Daten gibt's eine Preamble, StartFrameDelimiter, so Zeugs. Das macht der MAC. Der PHY ist eher selten im Microcontroller integriert, weil da DSP und Analogtechnik drinnen ist (Verstaerker, Kabelequalizer,...) Der MagJack besteht aus dem Jack, also der Buchse selbst und dem Mag(netics), das ist eine Ansammlung von Transformatoren und Entstoerdrosseln. Damit wird eine galvanische Trennung der Ethernetsignale zwischen Geraet und Aussenwelt gemacht. Bei Power over Ethernet wird dort auch die "Power" eingespeist/rausgeholt. Der Switch guckt in jedes Paket rein und versucht anhand der dort gefundenen Ziel-MAC-Adresse rauszufinden an welchen Port er das Paket weiterleiten soll. Bei den µCs mit Ethernetsupport gibts ueblicherweise irgendwelche Libs, mit denen dann hoehere Netzwerkprotokolle genutzt werden koennen. Wenn du die nicht nutzen willst, wirst du selbst deine zu sendenden Pakete irgendwo im Speicher zusammenbauen muessen und dann die Tx-DMA anschmeissen, die die Daten zum MAC bringt. Gleichzeitig dafuer sorgen, dass du aus den Daten die die Rx-DMA andauernd in den Speicher schreibt, die fuer dich interessanten rausfindest und weiterverarbeitest. Gruss WK
Dennis S. schrieb: > Der Datenfluss ist: > µC <--> PHY <--> MAC <--> Switch <--> MagJack <--> Kabel <--> ... Oder: µC <--> Wireless Modul <--> Router <--> Internet
Vielen Dank erstmal an alle für die Antworten. - Muss ein Controller einen MAC beinhalten? Das gibt es doch sicherlich, ggfs. zusammen mit der PHY als externes IC oder? Wie wird dieser in der Regel an den µC angeflanscht (SPI)? - Ich meinte keinen Switch wie man ihn zuhause rumstehen hat, sondern eher eine Komponente, die ich verwenden möchte, wenn mein Controller zwei Ethernet-Schnittstellen haben soll. Meinetwegen für eine Bridge oder so. - Was sind gängige Anbieter von diesen Komponenten (Marvell, TI, ...)? - Fehlt noch MII: Wenn ich das richtig gesehen habe, dann ist das einfach die Schnittstelle zwischen MAC und PHY bei 100 MBit/s-Netzen? Gruß Dennis
Dennis S. schrieb: > - Muss ein Controller einen MAC beinhalten? Das gibt es doch > sicherlich, ggfs. zusammen mit der PHY als externes IC oder? Wie wird > dieser in der Regel an den µC angeflanscht (SPI)? Nein, muss nicht, aber Du hast eine sehr viel höhere Geschwindigkeit, wenn Du einen Controller mit integriertem MAC verwendest (so Faktor 10 Unterschied kann das schon werden). Ansonsten: Ja, es gibt MAC+PHY als SPI oder mit parallelem Bus. Ist aber in den meisten Fällen nur die zweitbeste Lösung, zB wenn der Bastler nur AVR, AVR und AVR kennt. > - Ich meinte keinen Switch wie man ihn zuhause rumstehen hat, sondern > eher eine Komponente, die ich verwenden möchte, wenn mein Controller > zwei Ethernet-Schnittstellen haben soll. Meinetwegen für eine Bridge > oder so. Es gibt genügend Controller mit zwei MACs. Ansonsten wird oft ein managebarer Switch verwendet, der den PHY ersetzt. > - Was sind gängige Anbieter von diesen Komponenten (Marvell, TI, ...)? ja. Micrel, Microchip (hat SMSC gekauft) > - Fehlt noch MII: Wenn ich das richtig gesehen habe, dann ist das > einfach die Schnittstelle zwischen MAC und PHY bei 100 MBit/s-Netzen? es ist eine mögliche. fchk
Moin, > - Muss ein Controller einen MAC beinhalten? Das gibt es doch > sicherlich, ggfs. zusammen mit der PHY als externes IC oder? Wie wird > dieser in der Regel an den µC angeflanscht (SPI)? Nee, muss natuerlich nicht. Aber ich wuerd' mir's nicht ohne grosse andere Zwaenge antun, heute an einen Prozessor, der das nicht vorgesehen hat, mit Gewalt sowas anzuflanschen. Von SMSC (hupps, die heissen ja ploetzlich microchip) gibs/gabs mal einen, ich glaub' der war recht beliebt. Wurde afair ueber parallele Daten/Adressbusse angeflanscht. > - Ich meinte keinen Switch wie man ihn zuhause rumstehen hat, sondern > eher eine Komponente, die ich verwenden möchte, wenn mein Controller > zwei Ethernet-Schnittstellen haben soll. Meinetwegen für eine Bridge > oder so. Uiuiui, da willst du gleich ziemlich dicke Bretter bohren. Da wuerd' ich viel eher einen Prozessor mit 2x Ethernet nehmen. Switch-ICs gibts z.b. von Marvell, die haben manchmal die PHYs schon drinnen, manche auch [RG]MII Interfaces. Sind aber imho fuer den Einstieg in Ethernet voellig ungeeignet. > - Was sind gängige Anbieter von diesen Komponenten (Marvell, TI, ...)? Jepp. Microchip, Vitesse, Micrel,... > - Fehlt noch MII: Wenn ich das richtig gesehen habe, dann ist das > einfach die Schnittstelle zwischen MAC und PHY bei 100 MBit/s-Netzen? Ja, die Schnittstelle ueber die die Netzwerkpakete fluppen. In jede Richtung bei MII ueblicherweise 4 Datenleitungen, 1 Clock, 1 DataValid, dann noch verschiedene Error, etc. Signale. Takt 2.5Mhz oder 25MHz (25MHz*4bit=100Mbit/sec). Zusaetzlich gibts dann noch das MDI; das ist ein 2 Leitungsbus, Mischmasch aus SPI und I2C - mit dem werden Register im PHY/Switch abgefragt/programmiert. zb.solche Sachen wie: Link Status; die LEDs am MagJack, Parameter der (RG)MII Schnittstelle... Gruss WK (der langsamer als andere tippt)
Ach super, vielen Dank nochmal an alle! Bis jetzt sind das alles nur theoretische Betrachtungen um ein bisschen Grundlagenwissen aufzubauen. Aber die Infos bringen mich auf jeden Fall schon mal ein gutes Stück weiter! Gruß Dennis
Okay, nochmal zusammenfassend:
1 | MDI MDI |
2 | | | |
3 | ------------ ------- ---------- |---| MagJack |--- Kabel |
4 | | µC | MAC | <--MII--> | PHY | <-?-> | Switch |<-?->| |
5 | ------------ ------- ---------- |---| MagJack |--- Kabel |
Wie sieht es mit der Verbindung zwischen PHY und Switch bzw. Switch und MagJack aus? Hier müsste ja schon das Ethernet-Protokoll laufen, oder? Gruß Dennis
Die PHY redet uebern den Magjack mit den Switch. Willst Du hier fuer jeden Furzzz jetzt einzeln fragen? Gehirn an der Garderobe abgegben?
... schrieb: Hallo ... abgesehen von deinen Beleidigungen: > Die PHY redet uebern den Magjack mit den Switch. Auch wenn der Switch-"Controller" auf der Platine ist (so wie ich es oben beschrieben habe)? Hast du die Diskussion nicht gelesen? Gruß Dennis
Moin, Dennis S. schrieb: > > Wie sieht es mit der Verbindung zwischen PHY und Switch bzw. Switch und > MagJack aus? Hier müsste ja schon das Ethernet-Protokoll laufen, oder? > Kommt drauf an, was dein Switch fuer Interfaces hat. Entweder was aus der MII Familie oder - wenn der Switch an dem betreffenden Port den PHY schon integriert hat, mit Magnetics. Solange aber die Verbindungen in einem Geraet bleiben (d.h. kein richtiges Netzwerkkabel zwischen den Komponenten) kann man statt den Magnetics auch einfach Koppel-Cs in die Leitungen einbauen und so die Leitungsinterfaces miteinander koppeln. Kann sein, dass dann die Autoneg. nicht mehr funktioniert, dann muessen eben die Linkparameter der beteiligten Partner mittels MDI eingestellt werden. Guck' mal ins Datenblatt vom Marvell 88E6060. Gruss WK
Schau Dir einfach mal ein Datenblatt von einem PHY an (z.B. KSZ8051 oder DP83848). Den PHY lässt man auch gerne weg, weil es PHYs für verschiedene Standards gibt (Glasfaser/Gigabit/etc.).
Dennis S. schrieb: > - Muss ein Controller einen MAC beinhalten? Das gibt es doch > sicherlich, ggfs. zusammen mit der PHY als externes IC oder? Z.B. von Michrochip den ENC424J600. Der kann SPI oder 8Bit parallel.
die 3 Klassiker, wo es jede Menge Beispielschaltpläne und Software gibt : 1) AVR Net-IO : ENC28J60 für uC+SPI 2) Wiznet W5100 : mit IP Stack im Chip für uC mit i80 oder SPI 3) Waveshare Modul mit DP83848 und uC(vulgo STM32) mit RMII Interface viel Spass beim Googlen.
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.