Forum: PC Hard- und Software Daten (bis 15MByte/s) in Computer einlesen


von Matze (Gast)


Lesenswert?

Hallo,

Ich möchte in der nächsten Zeit eine art SDR bauen, dabei soll z.b. das 
2m Amateurfunkband ins Basisband heruntergemsicht, TP begrenzt und 
Digitalisiert (10Ms / 12Bit ?) werden.
Die Daten sollen wegen der größen Rechnenleistung/Speicher des PC und 
der "Einfachen" Programmierung in C++ vom PC ausgewertet werden.

Nun stellt sich die Frage, wie schafft man es einen Datenstrom mit 
10-15MByte/s vom AD-Wandler in den PC rein zu bekommen.
USB2 ?
100Mbit Ethernet wird schon knapp?

Wie sieht hier die einfachste Lösung aus?

von Christian R. (supachris)


Lesenswert?

Einfachste Lösung ist ein USB 2.0 Controller, wie der Cypress FX2 oder 
der FTDI FT2232H. Schau mal beim GnuRadio, die nehmen auch den FX2.

von Matze (Gast)


Lesenswert?

Der FX2 sieht interessant aus, 96Mbyte/s burst rate ;)
8051 hab ich auch schon in C und Assembler programmiert.

Aber bei USB2 gibts doch bestimmt schon Probleme bei Millimeter 
kürzer/längeren leiterbahnen, Leiterbahnkapazitäten/Induktivitäten , 
Reflexionen durch nicht idealen abschluss...
Kann man das als Nachrichtentechniker im 5. Semester meistern?

von Linksammler (Gast)


Lesenswert?

USB2 ist noch relativ problemlos. Das klappt auch über mehrere 
Steckverbinder und wurstige Billigst-China-Verlängerungskabel, die jeder 
Spezifikation widersprechen.

von Christian R. (supachris)


Lesenswert?

Matze schrieb:
> Der FX2 sieht interessant aus, 96Mbyte/s burst rate ;)

Jo, Marketing. Das gilt vom Slave Fifo in den Chip rein. USB HighSpeed 
schafft bei Bulk maximal 41,xx MB/s. Und diese 48 MHz am Slave Fifo 
schafft man aufgrund des komischen Timings nicht. Mit 25MHz am IFCLK 
bekommt man die Vorgaben entspannt hin und ist immer noch schneller als 
USB.

von das_bin_ja_ich! (Gast)


Lesenswert?

Sehr interessant! Ich würde auch gerne schnell Daten in den PC bekommen, 
derzeit verwende ich einen 1MBaud UART und am PC kann ich mit pyserial 
und Python einfach vom /dev/ttyUSB0 lesen und drauf schreiben.

Ich hab keine Ahnung vom FX2 und wüsste daher wie groß der Aufwand ist. 
Also wie einfach kann man darauf zugreifen? Das mit dem UART geht sehr 
einfach derzeit. Und was muss man am FX2 selbst noch machen, also an 
Firmware?

Am liebsten wäre mir ein Stein der schon fertig per FIFO Daten 
entgegennimmt und am PC einfach zu verwenden ist. Wie sieht es da mit 
den FTDI Steinen aus, da gibt es doch auch welche mit FIFO?

Danke!

von Sven B. (scummos)


Lesenswert?

Ich hab gerade genau sowas gebaut. Liest 12 MB/s über USB ein. Trivial 
war das aber nicht gerade, weder software- noch hardwareseitig -- für 
mich zumindest. Es ist auf jeden Fall sinnvoll einen Mikrocontroller zu 
nehmen der ein bisschen mehr RAM hat, sodass der ein bisschen buffern 
kann, wenn der PC nicht nachkommt.

von das_bin_ja_ich! (Gast)


Lesenswert?

Musstest du Firmware für den FX schreiben? Wie greift man am PC darauf 
zu? Ich würde einen FPGA mit ein paar kBytes FIFO nehmen.

von Sven B. (scummos)


Lesenswert?

Meinst du mich? Ich hab einen uC mit integriertem USB2-Controller 
benutzt. Ein besserer Controller hilft eh nur begrenzt, ich meine, die 
Datenrate von USB 2.0 ist halt fix und schneller als diese Rate wird's 
sowieso nicht.

von Christian R. (supachris)


Lesenswert?

das_bin_ja_ich! schrieb:
> Musstest du Firmware für den FX schreiben? Wie greift man am PC
> darauf
> zu? Ich würde einen FPGA mit ein paar kBytes FIFO nehmen.

Ja, Firmware braucht man, aber beim Cypress SDK sind da viele Beispiele 
dabei. Slave FIFO ist das sinnvollste für FPGA Verbindung.
Am PC brauchst du einen Treiber, da gibts eigentlich 3 Möglichkeiten 
(Windows):
- CyUSB der Cypress Treiber. Mit dem haben wir aber schlechte 
Erfahrungen, weiterer Nachteil: Nicht digital signiert, x64 scheidet 
aus.
- LibUSB-win32. Digital signiert, guter Support.
- WinUSB (benutzen wir), digital signiert, ohne Installation im Windows 
vorhanden, wird von MS gepflegt.

von das_bin_ja_ich! (Gast)


Lesenswert?

OK dann lass ich das erstmal mit guten UART nach USB wie dem CP2102 
bekomme ich schon bis 3MBaud. Ist sehr einfach zu benutzen auf PC Seite 
und auch mit dem FPGA.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

das_bin_ja_ich! schrieb:
> bekomme ich schon bis 3MBaud

Das liegt halt etliche Größenordnungen unterhalb der gewünschten 15 
MByte/sec - nämlich gerade mal 300 kByte/sec.

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.