Forum: Mikrocontroller und Digitale Elektronik Große Datenmengen über RS232 empfangen und speichern


von Ingo (Gast)


Lesenswert?

Hallo,

ich möchte gern Messwerte, die von meinem STM32F4 über die serielle 
Schnittstelle kommen über RS232 an einen PC schicken. Dort sollen sie 
als Datei gespeichert werden.

Dabei sind es 50.000 Messwerte zu je 2 Byte, die zum PC gesendet werden.
Das ganze mit 230400 Baud. Wenn ich meinem PC jetzt ein solchen 
Datenblock sende, gibts n Bluescreen und die Kiste bootet neu. Ich habe 
dazu "Termite"
benutzt. Es kann die Daten zwar nicht wegspeichern, aber zumindest 
erstmal "einfangen".

Es soll später so sein, dass für jeden Datenblock eine Datei erzeugt 
wird.
Bei den Daten handelt es sich um unformatiertes Hex, somit wäre ein 
Zusammensetzen von 2 Byte zu einem Wort echt gut.


Kennt jemand solch ein Programm?


Viele Grüße,
Ingo

von Jim M. (turboj)


Lesenswert?

Ingo schrieb:
> Wenn ich meinem PC jetzt ein solchen
> Datenblock sende, gibts n Bluescreen und die Kiste bootet neu.

Dann wirds mal Zeit für 'ne neue Kiste. Ist das seriell über USB? 
Eventuell mal nach neuerem Treiber umsehen.

von Ingo (Gast)


Lesenswert?

Jim Meba schrieb:
> Dann wirds mal Zeit für 'ne neue Kiste
Is n Phenom 2 X6 mit 8GB RAM, so schlecht is der nicht :)

Jim Meba schrieb:
> Ist das seriell über USB?
> Eventuell mal nach neuerem Treiber umsehen.
Ja, ist n DELOCK.

von Alram L. (alram)


Lesenswert?

Ingo schrieb:
> Ja, ist n DELOCK.

Ich hatte auch mal ein BSOD Problem mit einem DELOCK USB to serial 
Adapter (genau wie bei dir: sobald viel Traffic daher kommt > BSOD). 
Vermutlich war in diesem ein illegaler China Klon IC verbaut. Hab dann 
einen Adapter mit alternativem Chip gesucht und der funktionierte 
einwandfrei.

vG Alram

von Ingo (Gast)


Lesenswert?

Alram Lechner schrieb:
> Hab dann
> einen Adapter mit alternativem Chip gesucht und der funktionierte
> einwandfrei.
Is ja spannend, werd ich mal mit nem Anderen versuchen.

Bleibt weiterhin das Problem des Wegspeicherns der Datenblöcke.
Mein Betriebssystem ist ein Windows7. Leider habe ich Web nichts 
nützliches gefunden und mit der Kommandozeile bin ich garnicht bewandert 
:(

von Rainer U. (r-u)


Lesenswert?

Ingo schrieb:
> Leider habe ich Web nichts
> nützliches gefunden und mit der Kommandozeile bin ich garnicht bewandert
> :(

Sowas spezielles wirst Du wohl selbst programmieren müssen, in .NET z.B. 
mit My.Computer.Ports...

von c-hater (Gast)


Lesenswert?

Ingo schrieb:

> ich möchte gern Messwerte, die von meinem STM32F4 über die serielle
> Schnittstelle kommen über RS232 an einen PC schicken. Dort sollen sie
> als Datei gespeichert werden.

Soweit kein Problem.

> Dabei sind es 50.000 Messwerte zu je 2 Byte, die zum PC gesendet werden.
> Das ganze mit 230400 Baud.

Immer noch kein Problem.

> Wenn ich meinem PC jetzt ein solchen
> Datenblock sende, gibts n Bluescreen und die Kiste bootet neu.

Das ist ein Problem. Mieser Treiber mit eingebautem Pufferüberlauf. 
Höchstwahrscheinlich irgendein USB-Gammel. Es muß nichtmal der Treiber 
des Gerätes selber schuld sein, es genügt, wenn irgendeiner der 
beteiligten USB-Treiber querschießt, wobei "beteiligt" in diesem 
Zusammenhang nur bedeutet, daß er geladen sein muß, also typisch: das 
zugehörige Gerät angeschlossen ist.

Weil das so ist, fängt Fehlersuche im USB-Bereich immer damit an, alle 
Geräte abzustopseln, soweit das möglich ist (intern per USB angebundene 
Geräte kann man leider oft nicht abstöpseln).

Mit ein bissel Glück kann man dann durch systematisches Durchprobieren 
den problemverursachenden Treiber bzw. die problemverursachende 
Treiberkombination ermitteln.

> Es soll später so sein, dass für jeden Datenblock eine Datei erzeugt
> wird.
> Bei den Daten handelt es sich um unformatiertes Hex, somit wäre ein
> Zusammensetzen von 2 Byte zu einem Wort echt gut.

Dann mußt du ein Protokoll mit einem Mechanismus zur 
Wort-Synchronisation vorsehen. So einfach ist das. In einem wirklich 
unformatierten Strom beliebiger Daten ist eine Synchronisation schlicht 
nicht zuverlässig möglich. Jeder kleine Lesefehler bringt die Sache aus 
dem Gleichtakt.

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.