Frage:
PHYS Ethernet oder FPGA
AbstractDissonance
2012-11-21 07:59:46 UTC
view on stackexchange narkive permalink

Wie verwendet man einen Standard-PHYS-Ethernet-Controller? Die Datenblätter enthalten keine Schaltpläne und hauptsächlich nur die Pin-Beschreibungen.

Ich möchte einen TDM-Datenstrom oder einen Bitstrom über die Ethernet-Steuerung serialisieren, um von allen Übertragungsmethoden zu profitieren Dann müssen Sie diese Methoden selbst erstellen.

Da ich die Daten so schnell wie möglich streamen möchte, möchte ich keine Pakete verwenden. Aus den Datenblättern einiger PHYS-Ethernet-Transceiver von TI verbinden sie die Eingänge des Controllers von einem MAC und sagen, verwenden Sie den Begriff MII.

Das Beste, was ich sagen kann, ist, dass MII ein sehr minimaler Paket-Wrapper von ist die Daten. Bedeutet dies, dass ich Bits nicht einfach an die Ethernet-Steuerung streamen kann, sondern sie zuerst packen muss?

Da ich die Daten Bit-Dumping anstelle von Paketen verwende, muss ich dem Empfänger auf irgendeine Weise mitteilen, wo Der Datenrahmen beginnt (er wiederholt sich), sodass er weiß, wo sich "Bit 0" befindet. Ich wollte dafür ein separates TP verwenden, aber das scheint eine ziemliche Verschwendung zu sein. Ich glaube, ich benutze die 8b / 10b, um das erste Paket mit einem der Steuerwörter oder ähnlichem zu signalisieren. Dies setzt jedoch voraus, dass ich dies tatsächlich auf den Ethernet-Controller programmieren kann?

Soweit ich das beurteilen kann, wäre dies im FPGA ziemlich einfach (ich habe jedoch nicht viel Erfahrung damit). Wäre es besser, ein FPGA zu verwenden, um den Bitstrom in 8b / 10b zu codieren, und Steuerwörter zu verwenden, um den Start des Stroms zu signalisieren und dennoch eine Datenübertragung mit hoher Geschwindigkeit zu erhalten? (Verwenden Sie offensichtlich immer noch Differenzsignale und Magnete wie Ethernet / RJ-45.)

Ein FPGA eignet sich ideal als Front-End für meine Anwendung, und ich kann mir vorstellen, dass man einen Ethernet-Controller problemlos auf einem FPGA implementieren kann. Ich möchte jedoch keinen vollständigen Controller implementieren, sondern einfach das FPGA verwenden, um Daten über TP oder sogar FO zu senden. Was sind die Nachteile der Verwendung eines FPGA in diesem Fall zum "Emulieren" eines Ethernet-Controllers, wobei die "Programmier" -Probleme ignoriert werden (ich nehme an, man kann sie wahrscheinlich herunterladen)?

Möchten Sie die Daten an einen Standard-PC oder an ein anderes System senden, bei dem Sie die volle Kontrolle über die Hardware haben?
Zwei antworten:
user3624
2012-11-21 10:13:05 UTC
view on stackexchange narkive permalink

Lassen Sie uns zunächst einige Begriffe klarstellen: Eine Ethernet-Schnittstelle besteht normalerweise aus zwei Teilen: einem MAC und einem PHY. Der MAC, Media Access Controller, übernimmt die gesamte Paketassemblierung, Übertragung, den Empfang und die Fehlerprüfung. Ein PHY übernimmt alle PHYsical-Transportaufgaben wie das Modulieren des Signals, das Verwalten des DC-Ausgleichs, das Verfolgen des Basisband-Streifens usw.

Es gibt einige Dinge, die beide Seiten bis zu einem gewissen Grad tun. Sowohl MAC als auch PHY führen eine gewisse Datenfehlererkennung durch. Dies ist keine redundante Fehlererkennung, sondern nur eine Fehlererkennung, die in direktem Zusammenhang mit den Arten von Dingen steht, die MAC und PHY ausführen. Außerdem hängen sowohl MAC als auch PHY von der Paketnatur des Ethernet ab. Der MAC, weil er die Paketnatur zum Filtern, Weiterleiten und Verwalten der Daten verwendet. Die PHY, weil es bestimmte Signalmodulations- / Demodulationsfunktionen gibt, bei denen Pakete (und der Abstand zwischen den Paketen) korrekt funktionieren müssen.

Der Punkt ist: Sie können nicht von Paketen wegkommen, selbst wenn Sie nur die PHY verwenden. Natürlich müssen die Paket-Header keine "Standard" -Header sein. Und der CRC muss kein Standard-CRC sein. Sie sind jedoch immer noch auf die maximale Paketlänge und die maximale Paketlücke beschränkt, die für Standard-Ethernet erforderlich sind. (Hinweis: Möglicherweise können Sie "Jumbo" -Pakete erstellen, wenn beide PHYs dies unterstützen.)

Die Verwendung von Standard-Ethernet-Paket-Headern bietet jedoch viele Vorteile. Wir würden dies als "Layer 2" -Protokoll bezeichnen. Der Hauptvorteil besteht darin, dass Sie Standard-Ethernet-Switches verwenden können, um verschiedene Geräte miteinander zu verbinden.

Sie erwähnen, dass Sie nur einen "TDM-Stream" direkt (mehr oder weniger) mit dem PHY verbinden. Jedes Mal, wenn jemand mir gesagt hat, dass er über die Ausführung von digitalem Mehrkanal-Audio über Ethernet gesprochen hat. Wenn dies der Fall ist, haben Sie eine Reihe anderer Probleme, wie z. B. die Uhrzeitsynchronisation und die Fehlererkennung, die Sie daran hindern, dies auf einfache Weise zu tun. Ich werde in dieser Antwort nicht mehr auf Audio über Ethernet eingehen, aber sagen Sie mir, ob Sie dies tun möchten, da ich in diesem Fall viel mehr Informationen hinzufügen kann.

In der Vergangenheit gab es viele Produkte, die dies tun Ich habe eine Art Datenstrom genommen und ihn mit Ethernet-PHYs und FPGAs über Cat-5 ausgeführt, jedoch ohne herkömmliche MACs. Einige von ihnen haben die richtigen Ethernet-Layer-2- oder Layer-3-Pakete verwendet, andere nicht. Einige haben auch Nicht-Ethernet-Technologie wie ATM oder FDDI verwendet. Einige von ihnen haben FPGAs verwendet, aber im FPGA befindet sich eine traditionellere CPU und MAC.

Ich hoffe, dass Sie zu diesem Zeitpunkt erkannt haben, was Sie tun möchten (verwenden Sie ein FPGA und PHY, um eine zu übertragen Datenstrom über Cat-5) ist schwierig. Nicht unmöglich, aber schwierig. Lassen Sie mich versuchen zu erklären, wie schwierig es ist.

Zuerst müssen Sie das FPGA-Logikdesign beherrschen. Von allen professionellen FPGA-Logikdesignern, die ich kenne, ist dieses Projekt für 95% nicht möglich. Dies sind Leute, die seit mehreren Jahren oder sogar mehreren Jahrzehnten FPGAs entwickeln. Es wird lange dauern, bis Sie FPGAs genug gelernt haben, um diese Logik zu entwerfen. Wahrscheinlich Jahre, wenn Sie dies als Hobby tun.

Als Nächstes müssen Sie genau lernen, was ein MAC und ein PHY tun und wie sie zusammenarbeiten. Dies ist nicht so schwer wie das Erlernen von FPGAs, aber es ist auch nicht einfach. Es gibt viele grundlegende Konzepte, die wichtig, aber nicht leicht zu erlernen sind.

Jetzt müssen Sie eine Leiterplatte entwerfen, um all dies zu tun. Es ist auch nicht einfach, eine zuverlässige Leiterplatte zu entwerfen, die FPGAs und PHYs verwendet und die ordnungsgemäße Integrität des Ethernet-Signals übernimmt. Auch nicht super schwer. Aber auf einer Skala von 1-10, wobei 1 super einfach ist, wäre diese Leiterplatte ungefähr eine 6. Nicht schwer für einen erfahrenen Fachmann, aber definitiv schwer für einen nicht professionellen EE.

Zu diesem Zeitpunkt haben Sie wahrscheinlich bemerkt, dass ich Ihre Fragen nicht direkt beantwortet habe. Dies war absichtlich. Ich könnte Ihre Fragen beantworten, aber ehrlich gesagt würde Ihnen das nicht helfen. Es wäre, als würde man Ihnen sagen, wie man die zweite Geschichte eines Hauses baut, wenn Sie nicht herausgefunden haben, wie man die erste Geschichte oder sogar das Fundament baut.

Lernen Sie zunächst alles über das Entwerfen von FPGAs, das Sie können . Erfahren Sie auch alles über Ethernet, was Sie können. Es gibt viele Online-Ressourcen aus App-Notizen, Datenblättern und Anleitungen. Gehen Sie zu opencores.org und untersuchen Sie deren Ethernet-MAC-Kerne. Tun Sie dies fleißig und in einem Jahr könnten Sie bereit sein. Und wenn Sie bereit sind, werden Sie wahrscheinlich die Antworten auf 75% Ihrer Fragen kennen - und Sie werden in der Lage sein, die anderen 25% in den richtigen Kontext zu stellen. Wenn Ihnen jemand eine Antwort gibt, ist dies tatsächlich nützlich für Sie.

apalopohapa
2012-11-21 16:40:05 UTC
view on stackexchange narkive permalink

Sie können mit Sicherheit Ethernet MAC + PHY verwenden, um jede Art von Daten zu übertragen, ohne sich um TCP / IP- oder UDP-Stapel kümmern zu müssen. Die Lösung, die die vorhandenen IP-Adressen und Chips am besten nutzt und dennoch sehr effizient ist, besteht darin, Ihre Daten in Ethernet-Frames zu verpacken. Haben Sie keine Angst davor, der Header ist sehr einfach und hat einen relativ geringen Overhead, insbesondere wenn Sie Jumbo-Frames verwenden. Das MAC-Modul befasst sich mit der Schnittstelle zum PHY (MII / GMII / RGMII) und Dingen wie der CRC-Berechnung.

Grundsätzlich streamen Sie Daten an den MAC und respektieren alle Warteanforderungen, die Sie möglicherweise von diesem erhalten.

Auf der Empfangsseite (die identisch ist) wird der MAC an Ihre App gestreamt Die Form von Ethernet-Frames ist wiederum sehr einfach zu dekodieren. Normalerweise hat der MAC die Möglichkeit, Frames mit falschem CRC zu verwerfen.

Verwenden Sie Gigabit-Ethernet für relativ hohe Geschwindigkeiten.

Einfach ausgedrückt:

App (fpga) <-> MAC (fpga) <-> PHY (ext. Chip) <-> Magnetics (ext. pkg) <-> Anschluss

Sie müssen die MAC-IP nicht schreiben, so viele haben dies bereits getan, jeder große FPGA-Anbieter hat ein Angebot und opencores.org hat ein kostenloses Angebot (dreifache Geschwindigkeit, als stabil markiert).

Sie können mit einem Entwicklungskit beginnen, bevor Sie sich auf Ihre eigene Platine begeben. Dies hilft Ihnen dabei, Ihr Design mit minimalen Kosten zu validieren.

Sie können sogar damit beginnen, die Idee nur mit Ihrer zu validieren Computer durch Senden von rohen Ethernet-Frames (google it, sogar Python bietet eine API dafür), und später hilft Ihnen dies zu überprüfen, was Sie von der fpga übertragen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...