Forum: FPGA, VHDL & Co. Maximale Bandbreite per USB in den Rechner


von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Dieses Projekt beschreibt eine Möglichkeit, Daten per USB vom FPGA in 
den Rechner zu bekommen. http://www.makestuff.eu/wordpress/?page_id=1400

Erzielt werden 25MB/s! - Ethernet kann auf dem GB etwa real 200MB/s.

Was ist mit USB 3.0? - Angeblich sind da bis zu 500 MB/s machbar.
http://de.wikipedia.org/wiki/USB_3.0#USB_3.0

Ist das realitätsnah? Kann da jemand was zu sagen?

Wie schaut es mit der Verkabelung und der Störsicherheit aus?

Im USB3.0-Kabel laufen 3 Aderpaare, im Ethernet 4, damit müsste Ethernet 
doch mehr Potential haben, oder?

von Peter II (Gast)


Lesenswert?

> Im USB3.0-Kabel laufen 3 Aderpaare, im Ethernet 4, damit müsste Ethernet
> doch mehr Potential haben, oder?

es werden nur 2 Paare für USB3.0 genutzt. Das andere Paar ist für USB2.0 
kompatibilität

> im Ethernet 4, damit müsste Ethernet doch mehr Potential haben
bei USB ist nach 3m schluss - Ethernet reicht 100m weit. Hat also mehr 
Potential.

von Entwickler12345 (Gast)


Lesenswert?

Hallo

>  Ethernet kann auf dem GB etwa real 200MB/s
Meinst du GigE ? Dann kann ich dir sagen, vergiss es. -> Max. 125MByte/s

> Was ist mit USB 3.0? - Angeblich sind da bis zu 500 MB/s machbar.
> http://de.wikipedia.org/wiki/USB_3.0#USB_3.0

> Ist das realitätsnah? Kann da jemand was zu sagen?

500 MB/s ist die Theorie. Ziehst du den ganzen Overhead ab, bleiben ca. 
400 - 450MB/s übrig. Das aber auch nur mit bestimmten Settings (Bulk, 
Burst, ...)
In der Praxis sind aktuell 300 - 350 MB/s typisch.

> Wie schaut es mit der Verkabelung und der Störsicherheit aus?
Also USB2.0 war in Industrieumgebungen sehr sehr anfällig. Bei USB3.0 
habe ich noch keine Erfahrungen. Aber es wird laut Spec. sehr viel für 
die Störsicherheit getan.

von Entwickler12345 (Gast)


Lesenswert?

> bei USB ist nach 3m schluss - Ethernet reicht 100m weit. Hat also mehr
Potential.

Das stimmt so nicht. Es gibt schon Kabel mit denen man schon viel viel 
größere Längen erreichen kann

von Peter II (Gast)


Lesenswert?

Entwickler12345 schrieb:
> Das stimmt so nicht. Es gibt schon Kabel mit denen man schon viel viel
> größere Längen erreichen kann

nach dem aktuellen Artikel in der CT gibt es aber schon ab 5m Probleme. 
Offiziell müsste man aller 3 einen HUP einsetzen davon dürfen glaube ich 
5 stück in einer reihe sein.

Bei USB3.0 reden wir von 5Ghz - da bin ich schon überrascht das 3m 
gehen.

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Entwickler12345 schrieb:
> Hallo
>>  Ethernet kann auf dem GB etwa real 200MB/s
>
> Meinst du GigE ? Dann kann ich dir sagen, vergiss es. -> Max. 125MByte/s

Richtig, ich habe mich verrechnet! Es sind abzüglich overhead 800MBit/8 
= 100 MB/s.


Peter II schrieb:
> Bei USB3.0 reden wir von 5Ghz - da bin ich schon überrascht das 3m
> gehen.
Sind die Modulations- und Fehlerkorrekturverfahren beim Ethernet besser?

Wie weit kann ich denn mit den TBE (10Gbit-Ethernet?

Gibt es da ein belegtes Beispiel?

von Christian L. (ijuz)


Lesenswert?

Elektrische 10G SFP+ kabel gibt es bis 7m oder so, aber solche Kabel 
sind eigentlich nur fuer innerhalb eines Racks gedacht.

Mit den richtigen optischen SFP+ modulen sind hunderte Meter kein 
Problem.

Es gibt uebrigens auch optische USB 3.0 Kabel.

von Christian R. (supachris)


Lesenswert?

Mit USB 2.0 HighSpeed sind im BULK Modus etwas mehr als 41MB/s netto 
möglich und reell erreichbar. Bei USB 3.0 SuperSpeed hab ich mit dem 
Cypress FX3 reichlich 320MB/s erreicht im BULK BURST Modus. GBit 
Ethernet schafft bei UDP reell reichlich 100MB/s pro Richtung. Es gibt 
auch PCIe Cabling, da kann man durchaus PCIe 2.0 x16 per Kupfer-Kabel 
über 7m führen. Im Übrigen ist USB 3.0 SuperSpeed nahezu identisch mit 
PCIe 2.0, die 8B/10B Kodierung schluckt 20% des Brutto-Durchsatzes, dann 
noch der Protokolloverhead. Wenn man den 3.0 HostController nur an einer 
PCIe 1.1 Lane angeschlossen hat, sind nur etwa 170MB/s BULK BURST IN 
möglich. Die Leitungslänge ist hauptsächlich durch die obligatorische 
2.0 Abwärtskompatibilität beschränkt. Eine reine 3.0 Verbindung würde 
auch optisch über 2 Fasern gehen und das dann viel mehr als 7m.

von Entwickler12345 (Gast)


Lesenswert?

Wenn du noch was richtig schnelles suchst dann schau mal nach CoaXPress 
oder CameraLink Full/HS

von Christian R. (supachris)


Lesenswert?

R. K. schrieb:
> Erzielt werden 25MB/s!

Übrigens kein Wunder wenn die den FX2 nur mit 8 Bit anbinden.

R. K. schrieb:
> Ethernet kann auf dem GB etwa real 200MB/s.

Hmm...Tippfehler? Oder Rechenfehler? Oder RX+TX zusammengerechnet?

von Robert K. (Firma: Medizintechnik) (robident)


Angehängte Dateien:

Lesenswert?

Christian R. schrieb:
>> Ethernet kann auf dem GB etwa real 200MB/s.
>
>
>
> Hmm...Tippfehler? Oder Rechenfehler? Oder RX+TX zusammengerechnet?

wie oben schon geschrieben, Rechenfehler im Excel.

Ich habe mir das nochmal aufgeschrieben, bin aber nicht sicher, ob ich 
mich nicht verhauen habe. Ich weiss z.B. nicht, was mit den 500MB/s aus 
dem Wikitext bei USB 3.0 anzufangen ist. Kommt das limit vom Protokoll? 
Bei zwei Adern und 5GB/s müssten es doch 1000MB/s sein. Oder sind die 5G 
die Summe beider Leitungen?

Irgendwie geht das nicht mit dem Einkopieren der Tabellen, daher als 
GIF.

Christian R. schrieb:
> Mit USB 2.0 HighSpeed sind im BULK Modus etwas mehr als 41MB/s netto
kann ich nicht nachvollziehen.

Christian R. schrieb:
> Bei USB 3.0 SuperSpeed hab ich mit dem
> Cypress FX3 reichlich 320MB/s
das würde schon eher passen

Christian R. schrieb:
> GBit
> Ethernet schafft bei UDP reell reichlich 100MB/s pro Richtung
da muss was mit meiner Tabelle falsch sein.

Ich würde die gerne so erweitern, dass die 8/10 Geschichte und der 
Protokoll-Overhead korrekt auftauchen und sich reale Zahlen ergeben

von Hans M. (hansilein)


Lesenswert?

Also wenn ich den wikipedia-Artikel lese:
pohyische übertragungsrate:
USB2 480 Mbit/s
USB3 4000 Mbit/s

jetzt rechne nochmal

von Hans M. (hansilein)


Lesenswert?

Bei gigabit ethernet hast du folgendes vergesssen:
Modulationsverfahren PAM-5 (Pulsamplitudenmodulation mit fünf Zuständen) 
übermittelt zwei Bit pro Schritt und Adernpaar

da kommt der faktor 2 her

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

ich dachte die 4GB statt 5GB kommen von dem 8/10. ?

von Max M. (maxmustermann)


Lesenswert?

Hallo,
also mit dem FT232H von FTDI hab ich auch schon bis zu 40MByte/s 
übertragen. Dabei wurde der FT232H über das synchrone FT245 FIFO 
Interface an einen FPGA angebunden.

Gruß,
Max

von Lattice User (Gast)


Lesenswert?

R. K. schrieb:
> Ich weiss z.B. nicht, was mit den 500MB/s aus
> dem Wikitext bei USB 3.0 anzufangen ist.

Steht doch schon in deiner Tabelle, ein Byte == 8 Bit wird in 10 Bit 
übertragen (10b8b Codierung), d.h. du musst die Bitrate durch 10 teilen, 
um auf die Bruttodatenrate zu kommen.

USB Highspeed ist 480 MBit/s. Das gibt brutto 60 MByte/s, davon bleiben 
in der Praxis netto ca 40-41 MByte/s in eine Richtung übrig. (USB bis 
2.0 verwendet keine 10b8b codierung).

von Christian R. (supachris)


Lesenswert?

Bei USB 3.0 SuperSpeed sind die beiden Adernpaare halt für Full-Duplex, 
also ein Paar für TX eins für RX.
Durch die 8B/10B kodierung bleiben 4Gbit/s übrig, also die 500MB/s die 
bei Wiki stehen. Dann müssen wegen des fehlenden Ref-Clock immer mal 
Sync-Symbole rein, da geht nochmal bissl was weg. Dann noch die ganze 
Paket-Geschichte und so kommt man auf netto um die 350MB/s.

R. K. schrieb:
> Christian R. schrieb:
>> Mit USB 2.0 HighSpeed sind im BULK Modus etwas mehr als 41MB/s netto
> kann ich nicht nachvollziehen.

Hm, deine Tabelle ist irgendwie seltsam. USB 2.0 hat keine 8B/10B 
Kodierung.

Bei 2.0 HighSpeed ist es einfach zu rechnen. Ein Microframe ist immer 
125µs lang, pro Microframe können aktuelle Host Controller bis zu 11 
Pakete a 512 Byte rein packen. Meist pendelt sich es im Mittel bei 10,5 
Paketen ein. Das sind dann etwa 41MB/s die praktisch erreicht werden 
können. Und die erreicht man auch. Der FT2(2)32H und der FX2 sind da 
Kandidaten, die im BULK Modus reichlich 40MB/s in den PC streamen.

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Danke schon mal

von Robert K. (Firma: Medizintechnik) (robident)


Angehängte Dateien:

Lesenswert?

Hans Mayer schrieb:
> ei gigabit ethernet hast du folgendes vergesssen:
>
> Modulationsverfahren PAM-5 (Pulsamplitudenmodulation mit fünf Zuständen)
>
> übermittelt zwei Bit pro Schritt und Adernpaar
>
>
>
> da kommt der faktor 2 her

Stimmt, habe ich jetzt eingebaut. Dann komme ich auf die 100MB/s als 
theoretischen Wert ohne Protokolloverhead.

von Lattice User (Gast)


Lesenswert?

Ich würde den Begriff physikalische oder elektrische Bandbreite statt 
theoretische Bandbreite verwenden.
Bei USB 3.0 spricht man auf diesem Level auch nicht von Bytes sondern 
von Symbolen (a 10 bit), die Angaben 650 MByte/s ist irreführend.

Theoretische Bandbreite wäre, das was man unter idealen Bedingungen 
erreichen kann wenn man den Protokoloverhead abzieht. Bei USB 2.0 wäre 
das die oben von Chris genenannten 11 Datenpakete pro Microframe, mehr 
geht nicht, auch nicht theoretisch.

von Lattice User (Gast)


Lesenswert?

ich habe mir mal die Mühe gemacht das USB 3.0 Protokol genauer 
anzuschauen.

Das Protokoll ist überraschend effizient, wenn ich nichts übersehen habe 
sollte ca 481 MByte/s in eine Richtung bzw 473 MByte/s pro Richtung wenn 
gleichzeitig rein/raus läuft theoretisch möglich sein.

Der bei aktueller HW limitierende Faktor dürfte der über PCIe 2.0 x1 
angebundene Hostcontroller sein.

von Christian R. (supachris)


Lesenswert?

Lattice User schrieb:
> Der bei aktueller HW limitierende Faktor dürfte der über PCIe 2.0 x1
> angebundene Hostcontroller sein.

Jo, da gehen ja maximal etwa 400MB/s durch, aber ich denke, das 
Protokoll-Maximum wird man auch mit schnelleren Controllern (gibts die 
überhaupt) nicht erreichen können. War bei 2.0 auch schon so. 
Schließlich müssen ja die Daten im Device Controller irgendwie 
transportiert werden. Beim FX3 hat der DMA Controller dann schon 
ordentlich zu tun.

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

USB 3.0 scheidet wohl wegen der Kabellänge aus.

von Christian R. (supachris)


Lesenswert?

R. K. schrieb:
> USB 3.0 scheidet wohl wegen der Kabellänge aus.

Wir kennen ja deine Anforderungen nicht. Oder hab ich das überlesen?

von Lattice User (Gast)


Lesenswert?

Christian R. schrieb:
> Jo, da gehen ja maximal etwa 400MB/s durch, aber ich denke, das
> Protokoll-Maximum wird man auch mit schnelleren Controllern (gibts die
> überhaupt) nicht erreichen können.

Es gibt inzwischen Chipsets (Intel Series 7) mit integrierten USB 3.0 
Controller. Die sind nicht mehr durch PCIe x1 begrenzt.

von Christian R. (supachris)


Lesenswert?

R. K. schrieb:
> USB 3.0 scheidet wohl wegen der Kabellänge aus.

Irgendwo hatte ich doch den Link: 
http://ntcdistributing.com/products/firenex/repeaters-usb3.htm

von Marius (Gast)


Lesenswert?

Zwischenfrage:

Die Frequenzen zwischen Ethernet und USB3 gehen ja ziemlich auseinander. 
gibt es da noch was dazwischen?

Wie ist das mit Cameralink? Wie nutzbar ist das im Bezug auf 
Fehlersicherheit? Kann man ein EthernetProtokoll darauf installieren?

von Christian R. (supachris)


Lesenswert?

Zwischen GbE und USB 3.0 wäre noch Cabled PCI Express in der 1.1 x1 
Variante. Ist aber um Größenordnungen teurer als USB 3.0 und bringt 
nicht viel Mehrwert. Das Protokoll ist etwas robuster. Wäre mit 
ExpressCard Host Adapter selbst am Laptop nutzbar.

CameraLink ist ja schon recht speziell wieder, hat auch ziemlich teure 
Hostadapter.

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Marius schrieb:
> Wie ist das mit Cameralink?
Das ist ziemlich propriätär und hat meines Wissens kein Protokoll. Sind 
nur Bilddaten. Die Busrate von 80MHz wird auch nicht von allen Sensoren 
genutzt - zudem sind die Kabel teuer.

von Hans (Gast)


Lesenswert?

Hans Mayer schrieb:
> Bei gigabit ethernet hast du folgendes vergesssen:
>
> Modulationsverfahren PAM-5 (Pulsamplitudenmodulation mit fünf Zuständen)
>
> übermittelt zwei Bit pro Schritt und Adernpaar

Eine Frage dazu: Ich habe mir das mal angesehen: Im Prinizp bekommt man 
durch dieses Analoge Verfahren gerade einen Faktor 2 rein. Wäre es nicht 
besser, man interpretiert die Signale nach wie vor digital und sendet 
mit doppelter Rate? Müsste doch mit wesentlich mehr Reserve / Auge gegen 
Fehler zu machen sein.

von Lattice User (Gast)


Lesenswert?

Hans schrieb:
> Hans Mayer schrieb:
>> Bei gigabit ethernet hast du folgendes vergesssen:
>>
>> Modulationsverfahren PAM-5 (Pulsamplitudenmodulation mit fünf Zuständen)
>>
>> übermittelt zwei Bit pro Schritt und Adernpaar
>
> Eine Frage dazu: Ich habe mir das mal angesehen: Im Prinizp bekommt man
> durch dieses Analoge Verfahren gerade einen Faktor 2 rein. Wäre es nicht
> besser, man interpretiert die Signale nach wie vor digital und sendet
> mit doppelter Rate? Müsste doch mit wesentlich mehr Reserve / Auge gegen
> Fehler zu machen sein.

Du erkaufst dir aber diese Vereinfachung mit geringerer Kabellänge. 
Ausserdem reicht die 2 fache Rate nicht. Es sind zudem 5 Zustände und 
nicht nur vier, und die werden auch gebraucht um die Clock einzubetten 
und das ganze Signal gleichspannungsfrei zu machen.
Für 10GBit Ethernet gibt es eine solche Variante, die kann aber maximal 
nur 15m Kabellänge (und nur halfduplex, da alle 4 Paare gebraucht 
werden).

von Horst (Gast)


Lesenswert?

Wenn es auf Kabellänge ankommt und dennoch hohe Datenraten erforderlich 
sind würde ich auf 10GbE Glasfaser setzen. Vorteil ist dass es dort 
bereits Komponenten zu kaufen gibt. Auf externes PCIe etc. würde ich da 
nicht gehen, mir ist aktuell kein Gerät bekannt bei dem das eingesetzt 
wird. Es mag solche gebeb, aber wirklich durchgesetzt hat sich die 
Schnittstelle nicht.

An den FPGA einen Ethernet PHY hängen und von dort auf ein SFP+ Modul 
das dann die Umwandlung elektrisch <> optitsch übernimmt.
Wenn man dann die Daten über UDP sendet sollte man nahe der maximalen 
Datenrate sein. Bei diesen Datenraten sollte man sich sowieso fragen wie 
der PC die Daten überhaupt noch verarbeiten kann.

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.