OpenSeaMap-dev:HW-logger/delayspread
- Vorläufige Seite -
Inhaltsverzeichnis
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
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
- Ausschnitt 1 (aus dem vorhergehenden Bild)
- Ausschnitt 2 (aus dem vorhergehenden Bild)