Forum: Mikrocontroller und Digitale Elektronik UART Datenlogger / Recorder


von Hannes Gruber (Gast)


Lesenswert?

Welcher Datenlogger (erstmal egal ob gekauft oder Selbstbauprojekt) ist 
geeignet, um eine 112500Bd 8N1 Datenkommunikation (max 1h) incl. 
Timestamps aufzuzeichnen und entweder wieder abzuspielen oder sie auf 
dem PC in einem anständig lesbaren Format (CSV ist toll...) 
darzustellen?

von Peter II (Gast)


Lesenswert?

Hannes Gruber schrieb:
> Welcher Datenlogger (erstmal egal ob gekauft oder Selbstbauprojekt) ist
> geeignet, um eine 112500Bd 8N1 Datenkommunikation (max 1h) incl.
> Timestamps aufzuzeichnen und entweder wieder abzuspielen oder sie auf
> dem PC in einem anständig lesbaren Format (CSV ist toll...)
> darzustellen?

das einfachste wir do sein ein mini-Computer wie den Raspi zu verwenden.

Aber wie soll man ohne das Protokoll zu kennen, etwas in CSV umwandeln?

von da1l6 (Gast)


Lesenswert?

Hallo

Ich habe für so etwas den hier verwendet: https://www.saleae.com/logic
TTL Pegel geht so, für RS232 +/- 12V muss man einen MAX232 vorschalten.

da1l6

von c-hater (Gast)


Lesenswert?

Hannes Gruber schrieb:

> Welcher Datenlogger (erstmal egal ob gekauft oder Selbstbauprojekt) ist
> geeignet, um eine 112500Bd 8N1 Datenkommunikation (max 1h) incl.
> Timestamps aufzuzeichnen und entweder wieder abzuspielen oder sie auf
> dem PC in einem anständig lesbaren Format (CSV ist toll...)
> darzustellen?

Schönes Eigenbau-Projekt für nicht-mehr-ganz-Anfänger. Ein kleiner 
ATMega+MAX232+olle SDCard. Das kann man notfalls sogar frei verdrahten 
und mit ein paar Klecksen Heißkleber zusammentackern, so wenig Aufwand 
ist das.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Hannes Gruber schrieb:
> Welcher Datenlogger (erstmal egal ob gekauft oder Selbstbauprojekt) ist
> geeignet, um eine 112500Bd 8N1 Datenkommunikation (max 1h) incl.
> Timestamps aufzuzeichnen und entweder wieder abzuspielen oder sie auf
> dem PC in einem anständig lesbaren Format (CSV ist toll...)
> darzustellen?
 Mega328+MAX232 oder Mega328+1 Transistor + SDCard wären schon genug.
 Nur sind das mehr als 11KByt pro Sekunde, SDCard will in Blocks a 512
 Bytes beschrieben werden, da kann es schon eng werden. Interrupts an
 beiden Enden und RingBuffer für Empfang sind zwingend.

Peter II schrieb:
> Aber wie soll man ohne das Protokoll zu kennen, etwas in CSV umwandeln?
 Ganz einfach. Jedes empfangene Byte als Hex2ASCII ausgeben, mit Kommas
 trennen.
 Aber wie schon oben gesagt: - Es kann knapp werden, besonders da hier
 3 Mal soviel geschrieben werden muss, wie Bytes empfangen werden.
 Plus Umrechnung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Zumindest den Teil mit der Aufzeichnung sollte der hier hinbekommen:
https://iftools.com/analyzer/msb-rs232/index.de.php

Kost' allerdings auch etwas Geld.

von Hannes Gruber (Gast)


Lesenswert?

Welche Datenrate schafft ein ATmega kontinuierlich auf eine SD-Karte zu 
schreiben?
Muss nicht unbedingt FAT formatiert sein und am PC lesbar, die Ausgabe / 
Umrehnung kann der AVR ja auch übernehmen.

von Daniel V. (danvet)


Lesenswert?

Ich habe hiermit gearbeitet:
http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm
http://www.docklight.de/

Docklight exportiert z.B. als HTML.
Wenn du das Protokollformat kennst, kannst du sogar darauf "triggern" 
und immer die gesammten Frames loggen.

Edit:
Sorry, ist nur für RX.

: Bearbeitet durch User
von St. D. (st_d)


Lesenswert?


von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Hannes Gruber schrieb:
> Welche Datenrate schafft ein ATmega kontinuierlich auf eine SD-Karte zu
> schreiben?
 Max. fCPU / 2.
 Plus Umrechnung und notwendiger Arithmetik = mit 150KB/Sec. kannst du
 in etwa rechnen.

> Muss nicht unbedingt FAT formatiert sein und am PC lesbar, die Ausgabe /
> Umrehnung kann der AVR ja auch übernehmen.
 Am PC auf der SDCard eine einzige lange ASCII Datei erstellen, Daten
 mit ATMega Sector für Sector einschreiben, erster Sector zum schreiben
 gleich nach zweiter FAT.
 Mache ich so für GPS-Aufzeichnungen, FAT-Umrechnungen und sonstiger
 Kram interessiert dich somit nicht.

von ennen (Gast)


Lesenswert?

Warum nicht einfach FT232 und an dem PC nen mini Script schreiben?
Dafür brauch ich doch keine HArdware bauen - FT232 Platinen gibts für 
kleines Geld auf Ebay und csv ist ja kein Akt zu erzeugen.

Halbe Stunde und man hat was man braucht...

von Tom Thomsen (Gast)


Lesenswert?

ennen schrieb:
> Halbe Stunde und man hat was man braucht...

... und ist immer drauf angewiesen, dass man einen PC am Messort zur 
Verfügung hat.

p.s. Ich stelle mir gerade einen Gleitschirmflieger vor, der seine 
Flugaten loggen möchte, mit der rechten Hand den Schirm steuert und in 
der linken locker den Laptop für die Aufzeichnung hält.

von M. K. (sylaina)


Lesenswert?

Tom Thomsen schrieb:
> p.s. Ich stelle mir gerade einen Gleitschirmflieger vor, der seine
> Flugaten loggen möchte, mit der rechten Hand den Schirm steuert und in
> der linken locker den Laptop für die Aufzeichnung hält.

Wie rückständig ist das denn? Gleitschirme steuert man doch heute rein 
mental :D

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Tom Thomsen schrieb:
> p.s. Ich stelle mir gerade einen Gleitschirmflieger vor, der seine
> Flugaten loggen möchte, mit der rechten Hand den Schirm steuert und in
> der linken locker den Laptop für die Aufzeichnung hält.

Michael Köhler schrieb:
> Wie rückständig ist das denn? Gleitschirme steuert man doch heute rein
> mental :D

 Richtige Männer könnten sich da auch anders behelfen ;-D

von c-hater (Gast)


Lesenswert?

Hannes Gruber schrieb:

> Welche Datenrate schafft ein ATmega kontinuierlich auf eine SD-Karte zu
> schreiben?

Nach meiner Erfahrung ist das eher eine Beschränkung der SD-Karte als 
des ATmega. Irgendwann fangen die Dinger alle an, für das wear-leveling 
völlig unvorhersehbar mehr oder weniger lange Gedenkpausen einzulegen. 
Hier bist du natürlich mit einem ATmega mit möglichst viel RAM, der sich 
als Datenpuffer einsetzen läßt, am besten bedient.

> Muss nicht unbedingt FAT formatiert sein und am PC lesbar, die Ausgabe /
> Umrehnung kann der AVR ja auch übernehmen.

Das ist eine gaaaanz schlechte Idee.

Die Flash-Controller der Teile sind ganz offensichtlich extrem stark auf 
genau das Filesystem optimiert, mit dem die Karten ausgeliefert 
werden. Schon eine simple Änderung der FAT-Parameter kann mittelfristig 
einen katastrophalen Einbruch der Schreibperformance in Form extremer 
Gedenkpausen sowie frühzeitiges Ableben der Karte (sehr oft auch noch 
unter vollständigem Datenverlust) nach sich ziehen.

De facto hast du, wenn du die durch das vorgegebene Filesystem 
definierten Zugriffsmuster verläßt, nur sehr wenige Male die Chance, die 
Karte wirklich schnell und mit konstanter Geschwindigkeit vollständig zu 
beschreiben.

RasPi-Nutzer, die gewöhnlich Images nutzen und damit zwangsläufig 
oftmals mit "falschen" FAT-Varianten arbeiten, können ein Lied davon 
singen...

Was nun den Zugriff von einem ATmega aus betrifft, fährst du am besten, 
wenn du das originale FS benutzt und den benötigten Speicher 
"präallozierst", also: ein Datei einmalig zum Schreiben öffnen, knapp 
vor die Kapzitätsgrenze seeken, ein Byte schreiben und die Datei wieder 
schließen.

Im normalen Betrieb bewegst du dich dann nur noch innerhalb dieser 
Datei. Damit hast du den Effekt, daß keinerlei FS-Verwaltungsmaßnahmen 
mehr bremsen können, denn der gesamte Speicherplatz für die Datei ist 
bereits in der FAT alloziert. Das wear-leveling kannst du damit zwar 
auch nicht ausschließen, aber es wird wesentlich später erstmalig 
erfolgen und die Gedenkpausen werden, zumindest anfänglich, auch 
deutlich kürzer sein.

Irgendwann ist die Scheiße aber trotzdem praktisch unbrauchbar.

Kurzfassung: Flash-Medien sind als Verbrauchsmaterial designed, nicht 
als zuverlässige Datenträger mit berechenbaren Zugriffszeiten.

von Mike J. (linuxmint_user)


Lesenswert?

Hannes Gruber schrieb:
> Welcher Datenlogger (erstmal egal ob gekauft oder Selbstbauprojekt) ist
> geeignet, um eine 112500Bd 8N1 Datenkommunikation (max 1h) incl.
> Timestamps aufzuzeichnen und entweder wieder abzuspielen oder sie auf
> dem PC in einem anständig lesbaren Format (CSV ist toll...)
> darzustellen?

Ich würde einfach ein normales USB-Seriell-Kabel nehmen und es in die 
Leitung hängen die abgehört werden soll.
Die Daten loggst du dann einfach mit einem Laptop/Desktop-Computer mit.

Also Programm nutze ich moserial, das schreibt die Daten auch direkt in 
eine Datei.

Dieses .CSV Format lohnt sich nur wenn du weißt was das für Daten sind.
Wenn es Daten sind die nicht druckbar sind (z.B. 0x00 bis 0x09) und die 
Daten auch nicht so aufgebaut sind, also mit Kommas/Semikolons getrennt, 
dann bringt dieses Format nichts.

Also lass dir die Daten einfach in eine Textdatei schreiben.
Dein Serielles Kabel muss nur die 112500Bd 8N1 können ...

Meintest du nicht vielleicht eher 115200 Baud ? (Zahlendreher)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mike J. schrieb:
> ch würde einfach ein normales USB-Seriell-Kabel nehmen und es in die
> Leitung hängen die abgehört werden soll.
> Die Daten loggst du dann einfach mit einem Laptop/Desktop-Computer mit.

Das zeichnet aber nur eine Seite der Kommunikation auf. Kommunikation 
ist aber üblicherweise kein Selbstgespräch, sondern bidirektional.

Um so etwas aufzuzeichnen, braucht man zwei Schnittstellen.

von Georg (Gast)


Lesenswert?

Hannes Gruber schrieb:
> oder sie auf
> dem PC in einem anständig lesbaren Format (CSV ist toll...)
> darzustellen?

Wie gesagt ist das nicht schwer, aber was in aller Welt fängst du dann 
mit einer 40 Megabyte grossen Datei von Hexzeichen an?

Georg

von Mike J. (linuxmint_user)


Lesenswert?

@ Georg (Gast)
Ich hatte auch mal eine Datei auf einer SD-Karte "verloren", es gab auch 
kein Tool mit dem ich sie wiederherstellen konnte, also habe ich mir ein 
Image der Karte mit dd gemacht, dieses Image dann in einem Hex-Editor 
geöffnet und nach Zeichen gesucht die in der Datei vorhanden sein 
müssen.

Vielleicht gibt es bei ihm ja einen Fehler der jede Stunde ein mal 
auftritt und er will jetzt wissen was da intern passiert und wie die 
Kommunikation in diesem fehlerhaften Bereich aussieht.


@ Hannes
Willst du das mal genauer erläutern?
Vielleicht kann man dir dann etwas besser helfen.

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.