mikrocontroller.net

Forum: FPGA, VHDL & Co. Minimales Ethernetpaket


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schlumpf (Gast)
Datum:

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

Autor: A. K. (prx)
Datum:

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

Autor: Gerd E. (robberknight)
Datum:

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

Dann sparst Du Overhead.

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Name H. (hacky)
Datum:

Bewertung
0 lesenswert
nicht 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.
Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Name H. (hacky)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Sigi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gurgl (Gast)
Datum:

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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fitzebutze (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: S. R. (svenska)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.