2009-02-16 7 views
5

Ich analysiere NMEA GPS-Daten von einem Gerät, das Zeitstempel ohne Millisekunden sendet. Soweit ich gehört habe, verwenden diese Geräte einen bestimmten Triggerpunkt, wenn sie den Satz mit dem .000 Zeitstempel senden - afaik das $ im GGA-Satz.GPS Zeitsynchronisation

Also analysiere ich den GGA-Satz, und nehme den Zeitstempel, wenn das $ empfangen wird (ich kompensiere alle weiteren Zeichen, die im selben Vorgang gelesen werden, mit der Baudrate des seriellen Ports).

Aus diesen Informationen berechne ich den Offset zur Korrektur der Systemzeit, aber wenn ich die Zeit mit einigen NTP-Servern vergleiche, bekomme ich eine konstante Differenz von 250ms - wenn ich das manuell korrigiere, bin ich innerhalb einer Abweichung von 20ms, was für meine Anwendung in Ordnung ist.

Aber natürlich bin ich nicht sicher, woher dieser Offset kommt, und ob es irgendwie spezifisch für die GPS-Maus ist, die ich benutze oder mein System. Verwende ich den falschen $ -Zeichen oder weiß jemand, wie genau das gehandhabt werden soll? Ich weiß, dass diese Frage sehr unscharf ist, aber irgendwelche Hinweise darauf, was diesen Offset verursachen könnte, wären sehr hilfreich!

Hier einige Beispieldaten aus meinem Gerät, mit dem $ -Zeichen Ich werde als die Offset-Zeit markiert:

$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31 
$GPRMC,003538.000,A,5046.8555,N,00606.2913,E,0.00,22.37,160209,,,A*58 
-> $ <- GPGGA,003539.000,5046.8549,N,00606.2922,E,1,07,1.5,249.9,M,47.6,M,,0000*5C 
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31 
$GPGSV,3,1,10,09,77,107,17,12,63,243,30,05,51,249,16,14,26,315,20*7E 
$GPGSV,3,2,10,30,24,246,25,17,23,045,22,15,15,170,16,22,14,274,24*7E 
$GPGSV,3,3,10,04,08,092,22,18,07,243,22*74 
$GPRMC,003539.000,A,5046.8549,N,00606.2922,E,0.00,22.37,160209,,,A*56 
-> $ <- GPGGA,003540.000,5046.8536,N,00606.2935,E,1,07,1.5,249.0,M,47.6,M,,0000*55 
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31 
$GPRMC,003540.000,A,5046.8536,N,00606.2935,E,0.00,22.37,160209,,,A*56 
-> $ <- GPGGA,003541.000,5046.8521,N,00606.2948,E,1,07,1.5,247.8,M,47.6,M,,0000*5E 

Antwort

2

Sie haben zu berücksichtigen, Dinge zu nehmen, die in GPS-Gerät los werden:

  • empfangen Satellitensignal und berechnet Position, Geschwindigkeit und Zeit.
  • NMEA-Nachricht erstellen und in seriellen Puffer Port
  • Sendenachricht

GPS-Geräte haben relativ langsame CPUs (im Vergleich zu modernen Computern), so dass diese Latenz Sie beobachten sind, ist Ergebnis der Verarbeitung, dass das Gerät setzen muß zwischen der Erzeugung der Position und dem Moment der Übertragung der Daten.

Here is one analysis der Latenz in Consumer-GPS-Empfänger von 2005. Dort können Sie die Messung der Latenz für bestimmte NMEA-Sätze finden.

+0

Ok, also habe ich gelesen, dass das Aktivieren eines PPS-Signals eine proprietäre Funktion in einigen GPS-Geräten ist, die msec Genauigkeit geben würde - im allgemeinen Fall ist der Offset von 0,25 Sekunden, wie in dem von Ihnen geposteten Papier vorgeschlagen gute Vermutung :) Danke! – VolkA