Forum: Mikrocontroller und Digitale Elektronik STM32F4 -> PC Kommunikation mit hoher Bandbreite


von mb (Gast)


Lesenswert?

Hallo,
ich habe auf Basis des STM32F4Discovery einen Prototypen entwickelt. 
Fuer die weitere Entwicklungen und auch zur Diagnose im Endprodukt 
benoetige ich die Moeglichkeit erfasste Rohdaten an einen 
angeschlossenen PC weiterzugeben. Es fallen ca. 160kb Daten pro Sekunde 
an. Ich habe hierfuer zwei Ansaetze im Kopf.

1.) USART

Die notwendige Bandbreite sollte theoretisch moeglich sein, jedoch finde 
ich auf PC Seite keine Gegenstelle die Baudraten in der entsprechenden 
Groesenordnung unterstuetzt. Ich habe verschiedene USB-to-Serial-Adapter 
und meine interne Schnittstelle getestet.

2.) USB

Hier vermutlich CDC da HID die entsprechende Bandbreite nicht erlaubt. 
Kann ich das ganze mit einem CDC Device realisieren oder gibt es bessere 
Alternativen (andere Device-Class oder auch andere Schnittstellen)?

Ich hoffe ihr koennte mir weiter helfen. Vielen Dank vorab.

Gruese,
  mb

von Gibts N. (schneeblau)


Lesenswert?

USB, Isochronous Transfer einrichten? Der ist doch für große Datenmengen 
gedacht?

von mb (Gast)


Lesenswert?

Benoetige ich dafuer dann einen speziellen Treiber auf dem PC oder kann 
ich da z.B. mit libusb oder aehnlichem kommunizieren?

von Gibts N. (schneeblau)


Lesenswert?

Keine Ahnung, müsstest du mal in den ST Unterlagen suchen. Bin aber der 
Überzeugung, in der USB Library auch was zu dieser Transferart gesehen 
zu haben. Genutzt hab ichs selbst noch nicht.

von mb (Gast)


Lesenswert?

OK, Danke. Dann muss ich wohl noch ein bisschen recherchieren. Wenn 
sonst keiner etwas konkretes weis muss ich wohl oder uebel einfach mal 
eine Testimplementierung machen.

Beim nachlesen zum Thema USB isochronous ist mir noch etwas aufgefallen: 
Ich haette wenn moeglich gerne eine Garantie fuer die Zustellung sonst 
muss ich mir da eine Zwischenschicht bauen die das ganze unnoetig 
verkomplizieren wuerde. Luecken in den Daten machen die nachtraegliche 
Auswertung in meinem Fall schwierig bis unmoeglich.

von Tilo (Gast)


Lesenswert?

Dann musst du dich darum selbst kümmern.
Der Isochrone Modus kann vereinfacht mit UDP und der Bulk Modus mit TCP 
verglichen werden.

Mit Bulk bekommt man aber auch hohe Datenraten hin. Problematisch wird 
Bulk nur dann, wenn am Bus noch andere Teilnehmer mit hohen Datenraten 
dran hängen.

Im Isochronous Modus gibts eine Bandbreitenreservieren.

von mb (Gast)


Lesenswert?

Andere Teilnehmer koennte ich im einfach durch Stecker ziehen 
ausschalten. Es handelt sich um eine reine 
Entwicklungs-/Serviceschnittstelle.

Weis jemand ob ich fuer Bulk/Iso Modus einen eigenen Treiber brauche 
oder ob ich die Modi mit einer Library nutzen kann?

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Moin,

ja du brauchst n Treiber, aber schau dir mal LibUSB an damit geht das. 
Wenn etwas googlest müsstets auch n Beispiel mit dem F4 und LibUsb 
finden, hab den link gerade nicht parat.

MfG

Tec

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.