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
Wenn die Bitsynchronisation zwischen den Frames nicht verloren geht, muss man sie auch nicht wiederherstellen.
Warum sammelst Du nicht mehrere 24-Bit-Blöcke und schickst sie dann gemeinsam als ein Paket am Block? Dann sparst Du Overhead.
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.
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.
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
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.
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.
Google mal bei CERN, die machen allerhand Schweinereien mit Ethernet und haben auch offene Hardware im Netz.
@ 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
@ 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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.