STM32 - USB - CDC (Virtual COM Port) - Decoder? - Wie Daten lesen?

OP #7127234
Lesenswert?

Hallo liebes Forum,

ich nutze einen STM32F4 im FS-Modus um Daten vom Microcontroller zum PC 
zusenden.
Eigenschaften:
- MC als Device only
- Entsprechender Takt 48MHz
- Befehl zum Senden der Daten CDC_Transmit_FS
- Spannungsversorung des MC über ST-Link

Zum jetzigen Zeitpunkt wird der MC vom PC als virtual com port erkannt. 
Auch werden die Daten entsprechend gesendet. Mit Realterm kann ich die 
Daten im Format uint8_t auslesen bis zu einem Wert von 255 auslesen.
Versende ich Werte oberhalb von 255 erhalte ich beim Auslesen mit 
Realterm einen overflow, wodurch nicht die richtige Zahl angezeigt wird. 
Gleiches gilt beim Auslesen mit Matlab über die App SerialPort.

Der Puffer im CDC_Transmit_FS - Befehl ist vom Format uint8_t. Liegt 
darin die Ursache im overflow? Einige Beispiele versenden mit dem 
Standardbefehl dennoch Werte >255. Ich nehme an, dass die Ermittlung der 
Werte im Rahmen einer geeigneten Dekodierung des USB-Signals erfolgt? Da 
es sich bei USB um ein vollständiges Protokoll handelt werden nach 
meinem Kenntnisstand mehr Informationen übertragen, als die reinen 
Daten. Wobei diese zusätzlichen Informationen gefiltert werden müssen, 
um den reinen Datenbestand zu erhalten?

Bei der Suche bin ich auf folgenden Beitrag gestoßen:
Beitrag "USB Pakete interpretieren"

Dem bin ich auch gefolgt und habe Wireshark + USBPcap installiert. Die 
Datenaufzeichnung mit USBPcap erfolgte problemlos, das Dokument habe ich 
entsprechend in Wireshark geöffnet. Aus dem Datensalat werde ich 
allerdings nach wie vor nicht schlau.



Ziel:
Auslesen der gesendeten Daten im dekodierten Zustand + Auswertung in 
Matlab
- Ist dies unmittelbar mit Matlab möglich oder wird dafür ein 
vorgeschalteter decoder benötigt?
- Falls ein vorgeschalteter Decoder benötigt wird: Existieren hier 
bereits vorgefertigte Lösungen oder ist die eigenständige Programmierung 
unter Anwendung von libusb erforderlich?
- Gibt es hierfür ein fertiges Programm, welches die Daten in 
Textdokument speichert, welches mit Matlab ausgelesen werden kann?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren