OpenSeaMap-dev:HW-logger/delayspread

Aus OpenSeaMap-dev
Wechseln zu:Navigation, Suche

- 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