Forum: Mikrocontroller und Digitale Elektronik GPS Daten lesen, Datenlogger


von gps (Gast)


Lesenswert?

Hallo,

ich habe eine Verständnissfrage:

Ein Datenlogger schreibt mit 10 Hz Daten auf einen USB-Stick (UART). 
Zusätzlich soll jetzt alle 200ms ein Datensatz vom GPS Sensor ausgelesen 
werden und geschrieben werden - ebenfalls über UART.

Frage:
Wenn ich jetzt alle 200ms mit

Dim Empfangen As String * 20
Input Empfangen

auf Daten warte, kann es doch passieren, dass der GPS Sensor die Daten 
bereits abgeschickt hat und man im worst case 200ms auf den nächsten 
Datensatz warten muss.
Falls ja, wie könnte man es lösen, so dass meine gewünschte 
Schreibfrequenz eingehalten wird?

Oder sendet die GPS Module den letzten Datensatz in einer Schleife bis 
dieser geupdated wird? Ich habe keine Möglichkeit es zu prüfen, da der 
Sensor noch nicht da ist.

Danke!

von holger (Gast)


Lesenswert?

>Oder sendet die GPS Module den letzten Datensatz in einer Schleife bis
>dieser geupdated wird?

Nein, nur einmal.

von gps (Gast)


Lesenswert?

Hätte jemand einen Denkanstoss, wie man trotzdem eine konstante 
Schreibfrequenz beibehällt? Oder geht kein Weg dran vorbei, auf die 
Daten zu warten?

von Bernd (Gast)


Lesenswert?

Welcher GPS-Empfänger liefert Daten alle 200ms ?

Ich kenne nur GPS-Mäuse, die 1x pro Sec Daten liefern.

Dabei muss man halt auf die Daten warten.

bernd

von gps (Gast)


Lesenswert?

Hallo Bernd,

zum Beispiel der UP500.
http://www.fastraxgps.com/products/gpsantennamodules/500series/up500/

Gibt es eine Möglichkeit die Zeit zu messen, wie lange auf eine Eingabe 
gewartet wurde?

von gps (Gast)


Lesenswert?

Niemand eine Idee?

Ich hatte noch folgendes überlegt:
Man wartet auf die erste Ausgabe vom UP500, dann waitms 100, Daten 
loggen und auf die nächste Ausgabe vom UP500 warten. So sollten alle 100 
ms Daten geschrieben werden, oder schwankt die Ausgabefrequenz bei den 
Dingern ebenfalls?

Danke!

von Bernd (Gast)


Lesenswert?

Ne Idee.

Serielle eingabe als Interrupt in einen Puffer, dabei Anzahl der Bytes 
zählen.

Wenn der ausgewählete Datensatz erkannt wurde und die korrekte Länge des 
Datensatzes erreicht ist, den Datensatz zur weiteren Bearbeitung im 
Hauptprogramm freigeben.

Ansonsten erledigt dein Hauptprogramm sonstige Arbeiten.

Geht ohne Zeitmessung und bei jeder gewünschten Baudrate.

Bernd

von Bernd (Gast)


Lesenswert?

Zu beachten:

Die Übertragungszeit des ausgewählten GPS-Datensatzes kann ggf. länger 
als 100ms sein.

Auf einem Qszi anschauen !


Bernd

von Bernd (Gast)


Lesenswert?

Wieviel kosten das Modul UP500 ?

bernd

von gps (Gast)


Lesenswert?

Das Modul kostet 23 € / Stück. Unter einer Bestellsumme von <75 € kommen 
noch 15€ Mindermengenzuschlag.

Ich habe noch zwei Fragen:
Wie kann man einen Interrupt auslösen, wenn die Daten vom UP500 
anliegen?
Ich habe keinen Oszi, lässt sich sowas auch mit einem Software-Oszi 
auswerten?

von spess53 (Gast)


Lesenswert?

Hi

>Wie kann man einen Interrupt auslösen, wenn die Daten vom UP500
>anliegen?

Gar nicht. Deine Interruptroutine (RX-Complete) liest die empfangene 
Zeichen ein und überprüft auf das Startzeichen '$'. Die nachfolgenden 
Zeichen werden bis >CR<>LF< in den Puffer eingelesen. Danach wird ei 
Flag gesetzt, das dem Hauptprogramm mitteilt, das ein NMEA-String 
vorliegt.

MfG Spess

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.