Forum: FPGA, VHDL & Co. Minimales Ethernetpaket


von Klaus (Gast)


Lesenswert?

Hallo,

ich möchte zwischen zwei FPGAs im 2MHz Zyklus Daten übertragen. Von der 
Störfestigkeit und den Leitungslängen würde 100MBit Ethernet gut gehen. 
Pro Paket habe ich also 50 Bitzeiten. Es müssen nur 24 Bit übertragen 
werden.

Geht das bei einer Punkt zu Punkt Verbindung?

Die Preamble müsste meines Wissens verkürzt werden, macht das jeder PHY 
mit?

Welche Nachteile hat man durch die verkürzte Preamble?

Danke

Klaus

von Schlumpf (Gast)


Lesenswert?

Eventuell schafft er es nicht, sich auf den Frame zu synchronisieren.

von (prx) A. K. (prx)


Lesenswert?

Wenn die Bitsynchronisation zwischen den Frames nicht verloren geht, 
muss man sie auch nicht wiederherstellen.

von Gerd E. (robberknight)


Lesenswert?

Warum sammelst Du nicht mehrere 24-Bit-Blöcke und schickst sie dann 
gemeinsam als ein Paket am Block?

Dann sparst Du Overhead.

von Christoph (Gast)


Lesenswert?

Klaus schrieb:
> ich möchte zwischen zwei FPGAs im 2MHz Zyklus Daten übertragen. Von der
> Störfestigkeit und den Leitungslängen würde 100MBit Ethernet gut gehen.
> Pro Paket habe ich also 50 Bitzeiten. Es müssen nur 24 Bit übertragen
> werden.

Die Präambel und vor allem der geforderte Interframe-Gap fressen dir die 
Zeit weg. Eine kurze CRC Summe würde ich auch noch dazurechnen.

> Geht das bei einer Punkt zu Punkt Verbindung?

Punkt zu Punkt ohne Ethernet ist wohl machbar. Habe das mal für 80 kHz 
bzw. 3 us Latenz gemacht. Brauchte gut Zeit bis das alles geplant und 
auf diese Latenz zugeschnitten war.

von Purzel H. (hacky)


Lesenswert?

Weg mit dem Troll ..

Was soll Ethernet wenn du Serdes verwenden kannst ? Bei einer Punkt zu 
Punkt Uebertragung benoetigtst du den ganzen Protokol Krempel eh 
nicht...

Leute gibt's

Beitrag #5740605 wurde von einem Moderator gelöscht.
von Klaus (Gast)


Lesenswert?

Hallo,

danke für die vielen Antworten.

Kann ich eigentlich einfach ständig Daten schicken?

@ Name H.

Ich rede nicht von TCP/IP sondern nur von Layer 1

Was ist ein PHY anderes als ein Serdes?

Klaus

von Purzel H. (hacky)


Lesenswert?

Nun, viele FPGAs haben Serdes gleich schon eingebaut. Mit nach oben 
offenen Geschwindigkeiten, je nach chip. Am Einfachsten waer's wenn 
beide FPGAs mit demselben Clock laufen. Mit einem Ethernet PHY hast du 
je einen externen Clock, der dir aufgezwungen wird, mit einem Rx/Tx 
Buffer auf jeder Seite. Waehrend das native Serdes auf einem internen 
Clock laufen kann, und man nur einen buffer zum synchronisieren 
benoetigt. Wenn beide FPGAs synchron laufen braucht's nicht mal einen 
Bynchronisierbuffer.
Die Blocklaenge ist nach oben eigentlich nicht begrenzt.

: Bearbeitet durch User
von Sigi (Gast)


Lesenswert?

Klaus schrieb:
> Was ist ein PHY anderes als ein Serdes?

Ja, genau. Und eigentlich muss Dich auch das
noch nichteinmal interesieren, Du verschickst
auf Deiner Ebene nur Bytes, Ethernet-Frames
kommen erst auf höherer Protokollebene.

Ich hatte das auch mal gemacht und bin wie
folgt vorgegangen: z.B. 2 Bits werden für
den Typ (Command/Data/etc.) vorgesehen, der
Rest beschreibt dann ein Kommando/Datum.
Beispiel: [01+Start][10+6Bit-Data]..[01+Stop]
(evtl. noch ein Sync-Kommando wie [01+Sync]
oder [00+Sync], ein CheckSum-Kommando wie
[11+Checksum] etc.). Für Deine 24 Bits
sind das dann mindestens 1+4+1=6 Bytes
erforderlich.

von Gurgl (Gast)


Lesenswert?

Google mal bei CERN, die machen allerhand Schweinereien mit Ethernet und 
haben auch offene Hardware im Netz.

von Klaus (Gast)


Lesenswert?

@ Name H.

Der Serdes im FPGA ist für 10x bis 100x höhere Datenraten nötig nicht 
für 100Mbit. Außerdem geht dann das Signal garantiert nicht mehr über 
100m Ethernet Kabel. Bei den Serdes im FPGA wird der Takt auf der 
gleichen Leitung wie die Daten übertragen (siehe 8B10B Coder/Decoder).

Danke für deine Mühe

Klaus

von Klaus (Gast)


Lesenswert?

@ Gurgl

Ich habe mir die Projekte beim CERN jetzt einmal angeschaut. Ich finde 
aber nur Projekte wo es um präzise Synchronisation geht. Oder Etherbone 
(Wishbone über Ethernet).

Habe ich hier was übersehen (leicht möglich) oder waren beim CERN die 
Anforderungen anders?

Klaus

von Fitzebutze (Gast)


Lesenswert?

Genau die CERN-Sachen (white rabbit), die teils bei ohwr.org zu finden 
sind, hätte ich jetzt auch mal angesehen.
Ansonsten bleibt noch SATA oder SDI als Lösung mit minderem Overhead.
Für Übertragung von Samplewerten am Bandbreitenlimit hätte ich sonst 
noch eine Standard-Lösung (UDP/RTP) parat, da werden selbstverständlich 
die Werte in Pakete aggregiert.

von S. R. (svenska)


Lesenswert?

Wie weit sind die FPGAs denn auseinander?
Warum keine (teil)parallele Übertragung?
Bei 8 Bit-Paketen (10 Leitungen wegen Sync) reichen 6 MHz aus.
Die kriegt ein 286er locker über das gesamte Mainboard.
Einsynchronisieren ist bei den Geschwindigkeiten auch kein Thema.

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.