OpenSeaMap-dev:HW-logger/delayspread: Unterschied zwischen den Versionen

Aus OpenSeaMap-dev
Wechseln zu: Navigation, Suche
(Analysis of timing accuracy of commercial GPS receivers in various PC-environments)
 
K (typo)
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
- Vorläufige Seite -
  
Laufzeitverhalten verschiedener Systemumgebungen und GPS-Empfaenger
+
== Zeitliche Genauigkeit von NMEA Datentelegrammen ==
  
[[File:xxx]]
+
=== Systemkonfiguration ===
 +
 
 +
Ein handelsüblicher GPS-Empfänger wird mit einem USB-Hub am [[OpenSeaMap-dev:HW-logger/Victor-HW-Logger|OpenSeaMap-WLAN-Logger]] betrieben.
 +
Dort werden auch über einen Seriell-USB-Wandler die bootseigenen
 +
[http://aprs.gids.nl/nmea NMEA]-Daten aus einer SeaTalk-NMEA-Bridge eingespeist.
 +
Auf dem Bootsbus arbeitet u.a. ein ein weiterer GPS-Empfänger (Furuno).
 +
Ferner ist am Hub noch ein Miniatur-WLAN-Stick angeschlossen.
 +
Mittels [http://www.catb.org/gpsd gpsd] wurden die Datenströme auf dem OpenSeaMap-WLAN-Logger zusammengemultiplext und
 +
über die Drahtlosverbindung zu einem Linux-PC übertragen.
 +
Mit dem Kommando
 +
gpspipe -ur > logfile.nmea
 +
wurden die Daten mit Zeitstempeln versehen aufgezeichnet. Hier ein Datenausschnitt:
 +
2013-06-24 09:07:29.435524: $IIRMC,070724,A,4038.910,N,01757.410,E,3.3,042.0,240613,3,E,A*15
 +
2013-06-24 09:07:29.437945: $IIRSA,-5,A,,V*4F
 +
2013-06-24 09:07:29.438068: $IIMWV,307.5,R,10.8,N,A*05
 +
2013-06-24 09:07:29.494247: $IIMWV,292.5,T,9.2,N,A*3C
 +
2013-06-24 09:07:30.045399: $IIVHW,329.0,T,326.0,M,3.00,N,5.56,K*5F
 +
2013-06-24 09:07:30.051770: $IIVPW,1.15,N,0.59,M*5B
 +
2013-06-24 09:07:30.051882: $IIVWR,052.5,L,10.8,N,5.6,M,20.0,K*5D
 +
2013-06-24 09:07:30.051919: $GPGSV,3,1,11,02,03,225,19,05,59,265,31,07,40,051,27,08,70,022,23*71
 +
2013-06-24 09:07:30.051953: $GPGSV,3,2,11,09,70,288,31,10,39,177,26,13,12,102,15,26,41,306,24*7C
 +
2013-06-24 09:07:30.051985: $GPGSV,3,3,11,28,52,150,25,19,03,054,20,15,02,295,20*45
 +
2013-06-24 09:07:30.052015: $GPZDA,070725.00,24,06,2013,00,00*61
 +
2013-06-24 09:07:30.052044: $GPGGA,070725,4038.9157,N,01757.4207,E,1,08,1.20,15.25,M,38.017,M,,*70
 +
2013-06-24 09:07:30.052075: $GPRMC,070725,A,4038.9157,N,01757.4207,E,3.3202,33.446,240613,,*1E
 +
Die Busdaten haben ein $II-Präfix, die Navilock-Daten sind mit $GPxxx gekennzeichnet.
 +
 
 +
=== Ergebnisse ===
 +
 
 +
====Navilock NL-464US====
 +
 
 +
USB GPS Empfänger mit interner Antenne und einem 20 Kanal SiRFstarIII GPS Chipsatz.
 +
http://www.navilock.de/produkte/G_60122/dokumente.html
 +
 
 +
Auf einem Linux-System liefert dieser GPS-Empfaenger folgende Informationen:
 +
lsusb
 +
  ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
 +
 
 +
usb-devices
 +
  T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
 +
  D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
 +
  P:  Vendor=067b ProdID=2303 Rev=04.00
 +
  S:  Manufacturer=Prolific Technology Inc.
 +
  S:  Product=USB-Serial Controller D
 +
  C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
 +
  I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=pl2303
 +
 
 +
Systemkonfiguration war wie oben beschrieben.
 +
 
 +
Die drei folgenden Bilder zeigen, dass die ZDA (rot) und RMC (grün, meist verdeckt) Messages des Navilock-GPS
 +
relativ zuverlässig zum gleichen Bruchteil einer Sekunde auftauchen.
 +
Auf der x-Achse sind die Sekunden der lokalen aufgetragen, die Minuten schreiten auf der y-Achse nach oben fort.
 +
Je schräger die rote Linie liegt, desto höher ist die Drift der lokalen Zeitbasis gegenüber der GPS-Zeit.
 +
 
 +
Die Daten des Tiefensensors treten hier beispielsweise zu stets unterschiedlichen aber vorhersagbaren Zeiten auf.
 +
Das gilt leider auch fuer die RMC-Nachricht eines bordeigenen Furuno GPS.
 +
Interessant ist auch, dass offenbar um die 33. Sekunde jeder Minute besonders hohe Laufzeitstreuungen auftreten.
 +
Bei genauerem Hinsehen ist ferner zu beobachten, dass die zeitlichen Abstände der Navilock-RMC -Nachrichten mit einer
 +
Periode von 3 Sekunden schwanken.
 +
 
 +
=== Grafiken ===
 +
; Laufzeitverhalten verschiedener Systemumgebungen und GPS-Empfaenger
 +
[[File:Navilock_and_Furuno_zoom1.jpeg]]
 +
 
 +
; Ausschnitt 1 (aus dem vorhergehenden Bild)
 +
[[File:Navilock_and_Furuno_zoom2.jpg]]
 +
 
 +
; Ausschnitt 2 (aus dem vorhergehenden Bild)
 +
[[File:Navilock_and_Furuno_zoom3.jpg]]

Aktuelle Version vom 12. Oktober 2013, 23:25 Uhr

- Vorläufige Seite -

Zeitliche Genauigkeit von NMEA Datentelegrammen

Systemkonfiguration

Ein handelsüblicher GPS-Empfänger wird mit einem USB-Hub am OpenSeaMap-WLAN-Logger betrieben. Dort werden auch über einen Seriell-USB-Wandler die bootseigenen NMEA-Daten aus einer SeaTalk-NMEA-Bridge eingespeist. Auf dem Bootsbus arbeitet u.a. ein ein weiterer GPS-Empfänger (Furuno). Ferner ist am Hub noch ein Miniatur-WLAN-Stick angeschlossen. Mittels gpsd wurden die Datenströme auf dem OpenSeaMap-WLAN-Logger zusammengemultiplext und über die Drahtlosverbindung zu einem Linux-PC übertragen. Mit dem Kommando

gpspipe -ur > logfile.nmea

wurden die Daten mit Zeitstempeln versehen aufgezeichnet. Hier ein Datenausschnitt:

2013-06-24 09:07:29.435524: $IIRMC,070724,A,4038.910,N,01757.410,E,3.3,042.0,240613,3,E,A*15
2013-06-24 09:07:29.437945: $IIRSA,-5,A,,V*4F
2013-06-24 09:07:29.438068: $IIMWV,307.5,R,10.8,N,A*05
2013-06-24 09:07:29.494247: $IIMWV,292.5,T,9.2,N,A*3C
2013-06-24 09:07:30.045399: $IIVHW,329.0,T,326.0,M,3.00,N,5.56,K*5F
2013-06-24 09:07:30.051770: $IIVPW,1.15,N,0.59,M*5B
2013-06-24 09:07:30.051882: $IIVWR,052.5,L,10.8,N,5.6,M,20.0,K*5D
2013-06-24 09:07:30.051919: $GPGSV,3,1,11,02,03,225,19,05,59,265,31,07,40,051,27,08,70,022,23*71
2013-06-24 09:07:30.051953: $GPGSV,3,2,11,09,70,288,31,10,39,177,26,13,12,102,15,26,41,306,24*7C
2013-06-24 09:07:30.051985: $GPGSV,3,3,11,28,52,150,25,19,03,054,20,15,02,295,20*45
2013-06-24 09:07:30.052015: $GPZDA,070725.00,24,06,2013,00,00*61
2013-06-24 09:07:30.052044: $GPGGA,070725,4038.9157,N,01757.4207,E,1,08,1.20,15.25,M,38.017,M,,*70
2013-06-24 09:07:30.052075: $GPRMC,070725,A,4038.9157,N,01757.4207,E,3.3202,33.446,240613,,*1E

Die Busdaten haben ein $II-Präfix, die Navilock-Daten sind mit $GPxxx gekennzeichnet.

Ergebnisse

Navilock NL-464US

USB GPS Empfänger mit interner Antenne und einem 20 Kanal SiRFstarIII GPS Chipsatz. http://www.navilock.de/produkte/G_60122/dokumente.html

Auf einem Linux-System liefert dieser GPS-Empfaenger folgende Informationen:

lsusb
 ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
usb-devices
 T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0 
 D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
 P:  Vendor=067b ProdID=2303 Rev=04.00
 S:  Manufacturer=Prolific Technology Inc. 
 S:  Product=USB-Serial Controller D
 C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
 I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=pl2303

Systemkonfiguration war wie oben beschrieben.

Die drei folgenden Bilder zeigen, dass die ZDA (rot) und RMC (grün, meist verdeckt) Messages des Navilock-GPS relativ zuverlässig zum gleichen Bruchteil einer Sekunde auftauchen. Auf der x-Achse sind die Sekunden der lokalen aufgetragen, die Minuten schreiten auf der y-Achse nach oben fort. Je schräger die rote Linie liegt, desto höher ist die Drift der lokalen Zeitbasis gegenüber der GPS-Zeit.

Die Daten des Tiefensensors treten hier beispielsweise zu stets unterschiedlichen aber vorhersagbaren Zeiten auf. Das gilt leider auch fuer die RMC-Nachricht eines bordeigenen Furuno GPS. Interessant ist auch, dass offenbar um die 33. Sekunde jeder Minute besonders hohe Laufzeitstreuungen auftreten. Bei genauerem Hinsehen ist ferner zu beobachten, dass die zeitlichen Abstände der Navilock-RMC -Nachrichten mit einer Periode von 3 Sekunden schwanken.

Grafiken

Laufzeitverhalten verschiedener Systemumgebungen und GPS-Empfaenger

Navilock and Furuno zoom1.jpeg

Ausschnitt 1 (aus dem vorhergehenden Bild)

Navilock and Furuno zoom2.jpg

Ausschnitt 2 (aus dem vorhergehenden Bild)

Navilock and Furuno zoom3.jpg