Forum: Mikrocontroller und Digitale Elektronik GPS-Zeit in Millisekunden


von Ingo T. (ingotron)


Lesenswert?

Hallo,

für ein Projekt, in dem Meßdaten verschiedener stationär uwie auch 
ortsveränderlich angeordneter Quellen offline zusammengeführt werden 
sollen, möchte ich die absolute Uhrzeit in Millisekunden verwenden als 
gemeinsamen Parameter. Dazu sollen alle Meßeinrichtungen je einen 
(möglichst preiswerten) GPS-Empfänger bekommen, aus dem die Zeit etwa im 
10ms-Raster mit einer Genauigkeit von einer Millisekunde ausgelesen und 
zusammen mit den Meßdaten aufgezeichnet wird.
Ich suche nun nach geeigneten GPS-Empfängern und nach Informationen 
darüber, wie ich eben diese Zeitinformation mindestens mit 1 ms 
Auflösung auslesen kann.

Hat sich schon mal jemand mit einem ähnlichen Problem befaßt. Ich bin 
für jeden Hinweis dankbar.

Viele Grüße

Ingo.

von TotoMitHarry (Gast)


Lesenswert?

Könnten NEO8-M passen (Datenblatt schauen) kostenungünstig aber für 
diese Anwendung optimiert NEO8-N

von micha (Gast)


Lesenswert?

IMHO haben einige GPS Empfänger eine 1Hz Zeitbasis - glaube nicht, dass 
Du 1 ms direkt rausbekommst. Man könnte ggfs eine eigene RTC mittels dem 
1Hz Signal kalibrieren und dann die 1ms aus der RTC bekommen.

von Schwinger (Gast)


Lesenswert?

Schon viele haben sich damit befasst: Stichwort GPSDO GPS Disciplined 
Oscillator.
Üblicherweise halt eher für xxxkHz bis 10..20..50MHz, aber geht auch für 
nur 10 Hz.

Eine Bastelvariante könnte sein: mit dem 1PPS Signal vom GPS-Rx ein 
"Pulse Train" von 10 Impulsen à 0.999ms lostreten; damit hast dann zwar 
innerhalb jeder Sekunde Jitter, aber alle 10 ist's Sekundengenau 
synchronisiert.
Das lässt sich sowohl in HW als auch in SW implementieren.

Die Profivariante ist XNTP, was aber an jedem Messknoten ein 
vernünftiges (klein-)BS voraussetzt.

von H. K. (spearfish)


Lesenswert?

Hallo!

Eine solche genaue Synchronisierung ist möglich, erfordert aber etwas 
mehr Aufwand. Ist aber kein Hexenwerk und wenn du Linux verwendest, sind 
alle relevanten Teile bereits vorhanden.

Geeignete GPS-Empfänger empfangen und geben das 1PPS-Signal der 
Satelliten aus. Damit ist eine hochgenaue Synchronisierung deiner Uhren 
auf die Sekundenmarke der absoluten GPS-Zeit (die z.B. über die 
NMEA-Nachrichten ausgegeben wird) möglich.
Mit diesem 1PPS und der absoluten Zeit hast du einen sehr genauen 
absoluten Zeittaktgeber, mit dem sich praktischerweise ein NTP-Server 
(ntpd) hochgenau synchronsieren kann. Der Clou dabei ist, dass der 
NTP-Server ja eine Software-PLL am Laufen hat, die dir dann eine 
hochgenaue Zeit zur Verfügung stellt. 1ms ist für einen NTP-Server 
leicht möglich (Achtung: Nicht unter Windows), es bedarf aber sicher 
einiges an Feintuning, damit du dein System wirklich stabil am Laufen 
hast.

Linux bietet dir eigentlich alles an, was du brauchst.
Einspringspunkt ist z.B. das hier: 
https://weberblog.net/ntp-server-via-gps-on-a-raspberry-pi/

Wenn du aber nach "NTP Linux PPS GPS" o.ä. suchst, wirst du schnell 
fündig.

von Günni (Gast)


Lesenswert?

Das geht so nicht. Die GPS-Satelliten senden die UTC-Zeit als 
Datentelegramm. Die Übertragungsrate beträgt 50 Bit pro Sekunde - wenn 
mein Gedächtnis mich nicht im Stich lässt. Die so empfangene Uhrzeit ist 
sehr langzeitstabil - mehr aber auch nicht. Als eine Art Frequenznormal 
geben viele GPS-Empfänger einen Sekundenpuls PPS aus. Für den Empfang 
der Daten muss der Empfänger mit dem Satelliten synchronisiert sein. 
Diese Synchronisation liefert die Basis für die Erzeugung dieses Pulses 
und hat die Genauigkeit der GPS-Zeitbasis. Mit einer PLL-Schaltung kann 
man mit diesem Puls natürlich hochgenaue Frequenzen erzeugen. Das könnte 
natürlich auch ein GPS-Empfänger machen, der dann als hochgenauer 
Frequenzsynthesizer auf den Markt gebracht hat. Aber das ist dann eine 
spezielle Anwendung des GPS.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Eventuell kann man von denen etwas lernen:
http://de.blitzortung.org/cover_your_area.php
"Mit Hilfe von GPS Empfängern werden die Ankunftszeiten der Signale 
mikrosekundengenau registriert und über das Internet zu unserem 
zentralen Server gesendet."

Ähnliche Genauigkeit braucht das hier:
https://dk8ok.org/2018/07/25/direction-finding-first-experiences/
https://www.rtl-sdr.com/understanding-direction-finding-on-the-kiwisdr/
KiwiSDR Net TDoA Direction Finding
mit Internet-Kurzwellenempfängern können weltweit Sender angepeilt 
werde, ebenfalls über die Laufzeit.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Günni schrieb:
> Das geht so nicht. Die GPS-Satelliten senden die UTC-Zeit als
> Datentelegramm. Die Übertragungsrate beträgt 50 Bit pro Sekunde - wenn
> mein Gedächtnis mich nicht im Stich lässt.

Was geht so nicht?

Natürlich geht das. Und mit der Datenübertragungsgeschwindigkeit der 
Satellitsignale hat das sowieso nichts zu tun.
Das NMEA-Telegramm ist nur die Ansage "Beim nächsten Ton des 
Zeitzeichens ist es ...".  Der Zeitpunkt wird durch den Puls am 
1PPS-Ausgang festgelegt und dürfte besser als 100ns sein.

von Horst S. (petawatt)


Lesenswert?

Das Problem ist ja nicht neu. Hab persönlich aber keine Erfahrung mit 
der Hardware.

Im EVU-Bereich wird vom Schutz eine Netzstörung an mehreren weit 
auseinander liegenden stationären Geräten aufgezeichnet und vor Ort mit 
einem Zeitstempel versehen. Für den Zeitstempel wird über GPS (früher 
DCF) eine Absolutzeit als Referenz ermittelt. Zeitauflösung besser als 1 
ms. Hersteller von Schutzgeräten und Netzleittechnik ansprechen.

Es gibt ein kommerzielles Blitzortungssystem für die Versicherungen und 
das EVU. Mehrere stationäre Empfänger erfassen ein Blitzereignis als 
elektromagnetischen Impuls. Über die Laufzeit der Impulse kann man den 
Blitzort ermitteln. Auch hier wird für die Empfänger eine genaue 
Absolutzeit benötigt. Zeitauflösung besser als 1 Mikrosekunde.

In der Industrie werden aber keine "preiswerten" Zeitnormale eingesetzt.

Grüße von petawatt

: Bearbeitet durch User
von Ingo T. (ingotron)


Lesenswert?

Vielen Dank für die schnelle Reaktion. Das Stichwort pps-Signal war sehr 
wichtig für mich. Möglicherweise werde ich zumindest teilweise auf die 
feine Auflösung beim Aufzeichnen der Zeit verzichten und nur die sehr 
präzise Sekunde zusammen mit dem zeitlichen Abstand zur nächsten Messung 
aufzeichnen. Das Interpolieren kann ich dann offline machen, wenn die 
Daten verarbeitet werden. Da ist ohnehin auf ein gemeinsames Raster zu 
interpolieren, da die Meßgeräte (LIDAR, verschiedene Kameras und 
Ortssensoren) unterschiedliche Abtastraten haben.
Bisher hatte ich mit GPS-Sensoren noch nichts zu tun. In meinem Fall ist 
die Ortsinformation des GPS ohne Bedeutung, da die Meßgeräte von einem 
Schienensystem geführt werden und nur der Ort auf der einen Dimension 
des Schienenweges erfaßt werden muß.

VG Ingo.

: Bearbeitet durch User
von H. K. (spearfish)


Lesenswert?

Ingo T. schrieb:
> Da ist ohnehin auf ein gemeinsames Raster zu
> interpolieren, da die Meßgeräte (LIDAR, verschiedene Kameras und
> Ortssensoren) unterschiedliche Abtastraten haben.

Welche Lidare verwendest du? Manche Lidare, die ich kennen gelernt habe, 
haben eine NMEA-Schnittstelle (seriell) und einen 1PPS-Input.

von Ingo T. (ingotron)


Lesenswert?

Ja, das LIDAR hat das bereits dabei - da brauche ich mich nicht drum 
kümmern. Das Teil wird von einem Kollegen von mir betreut/genutzt - ich 
betreue nur einen Teil der Infrastruktur (ist Bestandteil eines 
Forschungs-/Experimentalsystems in einer gartenbaulichen 
Versuchsanlage). Neben dem LIDAR gibt es aber das Transportsystem, daß 
den Ort zusammen mit der genauen Zeit aufzeichnen soll, um später die 
LIDAR-Daten dem Meßort zuordnen zu können. Eine (sonst notwendigerweise 
drahtlose) Datenverbindung zwischen LIDAR-Rechner und orstfestem 
Antriebsrechner ist aber momentan wegen der Größe der Anlage erstmal 
nicht vorgesehen.

VG Ingo.

: Bearbeitet durch User
von Jacko (Gast)


Lesenswert?

PPS ist richtig, aber die Aussage "Beim nächsten PPS ist es ..."
stimmt bei keinem der NMEA-Sätze! Selbst der nur für Zeit und
Datum zuständige GPZDA-Satz sagt: "Beim letzten PPS (falls vorhanden)
war es...".

Und - das habe ich erst in den letzten Wochen gelernt: Es kann nach
dem Einschalten 12,5 Minuten und länger dauern bis der GPS-Empfänger
von GPS-Zeit auf UTC korrigiert wird. Das kann ein Sprung von mehreren 
Sekunden sein.

Ansonsten ist es doch pillepalle, bei einem quarzgetakteten µC, eine
Uhr mit ms-Auflösung zu programmieren, die vom PPS synchronisiert wird.
Bei miesen 100 ppm Quarzgenauigkeit bist du ohne Klimmzüge auf 0,1 ms
genau. Mit etwas Nachführung hast du einen Jitter von 0,01 ms...

Tiny-µC + EM406A + Hühnerfutter < 50 EU.

von Philipp K. (philipp_k59)


Lesenswert?

Jacko schrieb:
> Bei miesen 100 ppm Quarzgenauigkeit bist du ohne Klimmzüge auf 0,1 ms
> genau. Mit etwas Nachführung hast du einen Jitter von 0,01 ms...

Nicht zu vergessen das ganze kann man dann noch bei 1-2ppm mit nem 
DS3231 bei Signalverlust genau halten.....

von oszi40 (Gast)


Lesenswert?

Jacko schrieb:
> Und - das habe ich erst in den letzten Wochen gelernt: Es kann nach
> dem Einschalten 12,5 Minuten und länger dauern bis der GPS-Empfänger
> von GPS-Zeit auf UTC korrigiert wird. Das kann ein Sprung von mehreren
> Sekunden sein.

Rechenzeit und Cache? Man muß auf jeden Fall die Plausibilität 
ausreichend prüfen, bevor man diese Daten als zuverlässige weiter geben 
kann! Sonst kann der 72. Februar 25:62 Uhr die ganzen Messwerte 
durcheinander bringen.

von Jacko (Gast)


Lesenswert?

@ Philipp K
Kann man machen, (wie denn? - über die 32 kHz?) muss aber der
TO entscheiden. Ach und: Sind das 32 kHz, oder 32 KHz
Die muss man aber noch aufwändig mit dem µC verwursten.

@ oszi40
Wir sind hier nicht bei DCF! Ordentliche GPS-Empfänger liefern
selten so abwegige Zeiten, wie Anfänger-DCF-Dekodierungen.
Sogar den Week-Overflow haben die meisten GPS-Modul-Hersteller
mittlerweile aus dem Sparprogramm rausgenommen.

von Mathias A. (mrdelphi)


Lesenswert?

oszi40 schrieb:
> Jacko schrieb:
>> Und - das habe ich erst in den letzten Wochen gelernt: Es kann nach
>> dem Einschalten 12,5 Minuten und länger dauern bis der GPS-Empfänger
>> von GPS-Zeit auf UTC korrigiert wird. Das kann ein Sprung von mehreren
>> Sekunden sein.
>
> Rechenzeit und Cache?

Vermutlich liegt es daran:

GPS führt im Unterschied zu UTC keine Schaltsekunden aus, sondern zählt 
stattdessen einfach fortlaufend weiter. D.h. bei jeder Schaltsekunde die 
UTC einfügt, ändert sich der Offset zwischen der GPS-Zeit und UTC um 
eine Sekunde. Der jeweils aktuell gültige Offset wird ebenfalls über GPS 
mitgesendet (das ist nötig da die Schaltsekunden nach Bedarf eingefügt 
werden und dies unregelmäßig ist, daher kann man den Offset nicht per 
Formel berechnen, allenfalls für die Vergangenheit wenn man die Tabelle 
der bisherigen Schaltsekunden parat hat).

Wenn ich mich recht erinnere dauert es ca 12 Minuten, um den kompletten 
Satz an Zusatzinfos zu übertragen. Vermutlich ist der UTC-Offset ein 
Teil davon, würde jedenfalls Jackos Erkenntnis erklären.

Nachtrag:

@Ingo T., Gedanke zum loggen: am besten wäre denke ich, den 
GPS-Timestamp sowie den Offset getrennt aufzuzeichnen und erst offline 
umzurechnen. Da Schaltsekunden nur am 1. Januar oder 1. Juli auftreten 
können, lässt sich dann leicht im Nachhinein die Zeit überbrücken wo der 
Offset noch nicht empfangen worden ist...

: Bearbeitet durch User
von Ingo T. (ingotron)


Lesenswert?

Hallo,

vielen Dank für den Hinweis auf die Schaltsekunden, ein Thema, mit dem 
ich mich bisher nicht beschäftigt habe. Daß GPS-Zeit und UTC 
diesbezüglich voneinander abweichen war mir nicht klar.
Wenn ich die Zeit zusammen mit den Meßwerten kontinuierlich aufzeichne, 
dann fallen bei der Offline stattfindenden Datenzuammenführung Sprünge 
um ganze Sekunden sicher auf und lassen sich problemlos (automatisch) 
korrigieren. Andererseits ist angesichts der ohnehin niedrigen maximalen 
Geschwindigkeit mener Meßsysteme von 2 Metern/Minute (=3,3cm/s, ein 
Umlauf (200m) dauert >=100 Minuten) eine (Vorab-)Wartezeit von 12 
Minuten auch kein Problem. Ggf. können GPS und zugeordneter Controller 
dauerhaft mit Strom versorgt bleiben. Die mobile Stromversorgung ist 
ausreichend überdimensioniert.

VG Ingo.

von Wolfgang (Gast)


Lesenswert?

Jacko schrieb:
> Selbst der nur für Zeit und
> Datum zuständige GPZDA-Satz sagt: "Beim letzten PPS (falls vorhanden)
> war es...".
Na gut, so genau hatte ich das nicht mehr im Kopf.

> Und - das habe ich erst in den letzten Wochen gelernt: Es kann nach
> dem Einschalten 12,5 Minuten und länger dauern bis der GPS-Empfänger
> von GPS-Zeit auf UTC korrigiert wird. Das kann ein Sprung von mehreren
> Sekunden sein.

Das allerdings liegt an der niedrigen Datenübertragungsgeschwindigkeit 
vom Satelliten zum Nutzer. Nach dem Kaltstart des Empfängers müssen die 
Allmanachdaten irgendwoher kommen. Wenn die von den Satelliten empfangen 
werden müssen, dauert das eben die 12,5 Minuten und wenn der Empfang 
nicht glatt geht, eben länger. Erst wenn ein gültiger Satellitenfix 
möglich ist, kann die Empfängeruhr mit GPS-Zeit synchronisiert werden. 
Vorher kann sie nur als normale quartzgesteuerte Uhr laufen und sammelt 
entsprechend Fehler auf.

Mathias A. schrieb:
> Vermutlich ist der UTC-Offset ein Teil davon
Ist es, steht in der Doku zu den gesendeten GPS-Datenblöcken.
Das ändert aber nichts daran, dass ohne GPS-Daten die Empfängeruhr 
schlicht und einfach weg driftet.

von H. K. (spearfish)


Lesenswert?

Ingo T. schrieb:
> Ja, das LIDAR hat das bereits dabei - da brauche ich mich nicht drum
> kümmern. Das Teil wird von einem Kollegen von mir betreut/genutzt - ich
> betreue nur einen Teil der Infrastruktur (ist Bestandteil eines
> Forschungs-/Experimentalsystems in einer gartenbaulichen
> Versuchsanlage). Neben dem LIDAR gibt es aber das Transportsystem, daß
> den Ort zusammen mit der genauen Zeit aufzeichnen soll, um später die
> LIDAR-Daten dem Meßort zuordnen zu können. Eine (sonst notwendigerweise
> drahtlose) Datenverbindung zwischen LIDAR-Rechner und orstfestem
> Antriebsrechner ist aber momentan wegen der Größe der Anlage erstmal
> nicht vorgesehen.

Ein 360° Lidar braucht prinzipbedingt schon eine hochgenaue 
Umdrehungsfrequenz und hat meist auch einen sehr genauen Winkelencoder. 
Aus Kenntniss der Umdrehungsfrequenz und mit Auswertung des 
Winkelencoders, solltest du auch eine sehr genaue relative 
Synchronisierung hinbekommen.

Jacko schrieb:
> PPS ist richtig, aber die Aussage "Beim nächsten PPS ist es ..."
> stimmt bei keinem der NMEA-Sätze! Selbst der nur für Zeit und
> Datum zuständige GPZDA-Satz sagt: "Beim letzten PPS (falls vorhanden)
> war es...".

Ja und nein.
Was man weiß ist, dass beim PPS-Puls genau(!) eine Sekunde in der 
absoluten Zeit war/ist.
Daher nutzt man da eben auch meist einen NTP-Server. Da wird zunächst 
der Timestamp vom GPS mit dem PPS-Signal verknüpft und damit wird dann 
die interne PLL gefüttert.

von Klaus R. (klara)


Lesenswert?

Ingo T. schrieb:
> Vielen Dank für die schnelle Reaktion. Das Stichwort pps-Signal war sehr
> wichtig für mich. Möglicherweise werde ich zumindest teilweise auf die
> feine Auflösung beim Aufzeichnen der Zeit verzichten und nur die sehr
> präzise Sekunde zusammen mit dem zeitlichen Abstand zur nächsten Messung
> aufzeichnen.

Wenn ich meine Wander - App zu Hause mal eine halbe Stunde liegen lasse 
und tracke, dann sehe ich nicht einen Punkt, sondern der Punkt wandert 
des öfteren 10 m weit. Meinst Du wirklich das die Zeitangabe wirklich so 
genau ist, daß Du sie verwenden kannst?
mfg Klaus

von Wolfgang (Gast)


Lesenswert?

H. K. schrieb:
> Ja und nein.
> Was man weiß ist, dass beim PPS-Puls genau(!) eine Sekunde in der
> absoluten Zeit war/ist.
Der per NMEA geschickte Timestamp verrät einem sogar, welche Sekunde 
es genau war. Und mit einem Timer schafft es auch ein ATtiny, aus diesen 
1-Sekunden Synchronisationspulsen einen höher aufgelösten, ausreichend 
genauen Zeitraster zu erzeugen.

von Wolfgang (Gast)


Lesenswert?

Klaus R. schrieb:
> Meinst Du wirklich das die Zeitangabe wirklich so
> genau ist, daß Du sie verwenden kannst?
Dann rechne mal aus, welchen Zeitfehler ein Positionsfehler von 10 
Metern bedeutet. Nach Adam Riese kommt man da auf etwa 33 Nanosekunden.

Nutzt deine App EGNOS und hat sie freie Horizontsicht?
Sonst hat sie wahrscheinlich deutlich mit schlechtem Empfang, i.e. 
ungünstiger Verteilung der ausgewerteten Satelliten über den Himmmel, 
verrauschten Signalen und Mehrwegempfang zu kämpfen.

von Ingo T. (ingotron)


Lesenswert?

@Klaus:

Ich verwende ja nicht die Ortsinformation des GPS. Meine Meßsysteme 
bewegen sich an einem Kettenförderer. Der Antrieb besitzt einen 
inkrementalen Winkelgeber, der zusammen mit einem Startsensor den Meßort 
errechenbar macht und dieser Meßort soll dann zusammen mit der präzisen 
Absolutzeit aufgezeichnet werden. Die Meßwerte der einzelnen Sensoren 
werden ebenfalls zusammen mit der Absolutzeit aufgezeichnet. Am Ende 
werden offline über die Absolutzeit die Meßwerte den Meßorten 
zugeordnet.

VG Ingo.

von Bauform B. (bauformb)


Lesenswert?

Ingo T. schrieb:
> Wenn ich die Zeit zusammen mit den Meßwerten kontinuierlich aufzeichne,
> dann fallen bei der Offline stattfindenden Datenzuammenführung Sprünge
> um ganze Sekunden sicher auf und lassen sich problemlos (automatisch)
> korrigieren.

Du kannst wahrscheinlich überhaupt nur die GPS-Zeit aufzeichnen. Auf die 
Art gibt keine Unstetigkeiten. Es kommt ja vor allem drauf an, dass alle 
die gleiche Zeit benutzen. Man muss allerdings immer die 
Empfänger-Statusbits auswerten, kurz nach einem Kaltstart ist das 
PPS-Signal nicht stabil. Es kann auch Aussetzer geben wenn der Empfang 
zu schlecht wird.

> Ggf. können GPS und zugeordneter Controller
> dauerhaft mit Strom versorgt bleiben.

Manche Empfänger haben einen Anschluss für eine 3V-Knopfzelle, das 
reicht auch für ein paar Stunden.

von Klaus R. (klara)


Lesenswert?

Wolfgang schrieb:
> Dann rechne mal aus, welchen Zeitfehler ein Positionsfehler von 10
> Metern bedeutet. Nach Adam Riese kommt man da auf etwa 33 Nanosekunden.

Die Amerikaner bauen im GPS Signal eine künstliche Ungenauigkeit ein, 
die das Militär wieder herausrechnet. Stört das nicht das Zeitsignal? 
Oder wie machen die das?
mfg Klaus

von Axel S. (a-za-z0-9)


Lesenswert?

Klaus R. schrieb:
> Wenn ich meine Wander - App zu Hause mal eine halbe Stunde liegen lasse
> und tracke, dann sehe ich nicht einen Punkt, sondern der Punkt wandert
> des öfteren 10 m weit. Meinst Du wirklich das die Zeitangabe wirklich so
> genau ist, daß Du sie verwenden kannst?

Das kannst du leicht selber nachrechnen. Licht (genauso wie Funkwellen 
in Luft) legt 300.000km pro Sekunde zurück. Deine 10m Ortsbweichung sind 
dann wieviele Sekunden Zeitabweichung? Wie verhält sich dieser Fehler 
zum geforderten 1ms Zeitraster?

von Jemand (Gast)


Lesenswert?

Klaus R. schrieb:
> Die Amerikaner bauen im GPS Signal eine künstliche Ungenauigkeit ein,
> die das Militär wieder herausrechnet. Stört das nicht das Zeitsignal?
> Oder wie machen die das?
> mfg Klaus

Zum einen stecken die nicht 20 Jahre in der Vergangenheit

von Horst S. (petawatt)


Lesenswert?

Klaus R. schrieb:
> Die Amerikaner bauen im GPS Signal eine künstliche Ungenauigkeit ein,

Wurde aus Angst vor Galileo aber wieder aufgegeben. Die aktuelle 
Ungenauigkeit von GPS hängt von der Satellitenkonstellation und den sich 
ständig ändernden Ausbreitungsbedingungen für Funkwellen ab.
Für Genauigkeiten von 1 ms aber ohne Bedeutung.

Grüße von petawatt

: Bearbeitet durch User
von Klaus R. (klara)


Lesenswert?

Horst S. schrieb:
> Wurde aus Angst vor Galileo aber wieder aufgegeben.

Oh, wußte ich noch nicht.

von 6a66 (Gast)


Lesenswert?

Ingo T. schrieb:
> Dazu sollen alle Meßeinrichtungen je einen
> (möglichst preiswerten) GPS-Empfänger bekommen, aus dem die Zeit etwa im
> 10ms-Raster mit einer Genauigkeit von einer Millisekunde ausgelesen und
> zusammen mit den Meßdaten aufgezeichnet wird.

Der NMEA0183 Datensatz GLL hat das Format 
$--GLL,llll.ll,a,yyyyy.yy,a,hhmmss.ss,a,m,*hh<CR><LF>

Bei U-blox im Protokoll steht z.B.:
UTC time is used in many NMEA and UBX messages. In NMEA messages it is 
always reported rounded to the nearest hundredth of a second. 
Consequently, it is normally reported with two decimal places (e.g. 
124923.52).

rgds

von Wolfgang (Gast)


Lesenswert?

Klaus R. schrieb:
> Die Amerikaner bauen im GPS Signal eine künstliche Ungenauigkeit ein
Selective Availability wurde vor ziemlich genau 20 Jahren abgeschaltet.
https://www.gps.gov/systems/gps/modernization/sa/data/

Und die zusätzliche Verbessung beim PPS (Precice Positioning Service, 
nicht zu verwechseln mit den 1PPS-Zeitimpulsen) hat andere Gründe, u.a. 
die Nutzung der L2 Frequenz.

von Wolfgang (Gast)


Lesenswert?

Bauform B. schrieb:
> Du kannst wahrscheinlich überhaupt nur die GPS-Zeit aufzeichnen.
An die GPS-Zeit kommt man in normalen GPS-Empfängern überhaupt nicht 
ran. Über das User-Frontend, also z.B. über die NMEA-Datensätze wird 
immer UTC ausgegeben.

von Toby P. (Gast)


Lesenswert?

6a66 schrieb:
> UTC time is used in many NMEA and UBX messages. In NMEA messages it is
> always reported rounded to the nearest hundredth of a second.

Das reichst doch, die 1pps Flanke kommt zu jeder vollen Sekunde +/- xxx 
ns. Damit kalibriert und synct man dann einen ms Timer (bzw hier 10 ms 
Takt).

von Detlef _. (detlef_a)


Lesenswert?

Der:
https://www.u-blox.com/en/product/max-m8-series?lang=de

8 Tacken.
PPS, Uhrzeit. 100ns geht ohne Klimmzug. Been there, done that.

Cheers
Detlef

von Wolfgang (Gast)


Lesenswert?

Detlef _. schrieb:
> PPS, Uhrzeit. 100ns geht ohne Klimmzug. Been there, done that.

Wie hast du die 100ns geprüft - nur so aus Interesse?

von Jacko (Gast)


Lesenswert?

An die GPS-Zeit kommt man per NMEA-Satz nicht ran.
Die üblichen GPS-Empfänger liefern bevor sie den UTC-GPS-Offset
empfangen haben (ich kann nach Tests bestätigen, dass der exakt
alle 12,5 Minuten empfangen werden kann) eine "Zwischenzeit".
Einfacherweise mit den zur Entstehung der Firmware bekannten
Schaltsekunden.

Ich habe 2 verschiedene GPS-Module.
Eines ist von 2007 und startet mit 4 s Vorlauf
das Neuere startet mit 2 s Vorlauf. (das passte 2012-2014)
Würde "echte" GPS-Zeit ausgegeben, hätte man derzeit einen
Vorlauf von 18 s.

Man könnte warten, bis ein Sekundensprung stattgefunden hat,
wenn aber aus dem Super-Elko doch noch ein Warmstart hingelegt
wird, kann man wiederum ewig warten...

Einfach und sicher: 12,5 Minuten sauberen Empfang abwarten.

Mag sein, dass speziell für Zeitmessung gebaute Empfänger
nachvollziehbarer arbeiten - die gibt es aber nicht für < 50 EU.

von Wolfgang (Gast)


Lesenswert?

Jacko schrieb:
> Man könnte warten, bis ein Sekundensprung stattgefunden hat,
> wenn aber aus dem Super-Elko doch noch ein Warmstart hingelegt
> wird, kann man wiederum ewig warten...
>
> Einfach und sicher: 12,5 Minuten sauberen Empfang abwarten.

Eigentlich sollte die Zeit stimmen, sobald der Empfänger im 
GPGSA-Sentence einen gültigen Fix meldet. Zur Sicherheit kann man dort 
auch den DOP-Werten auswerten, um ungünstige Empfangsbedingungen und 
damit die Gefahr größerer Datenfehler zu erkennen.

von Hugo E. (Gast)


Lesenswert?

Detlef _. schrieb:
> Been there, done that.

Wo bist du nochmal gewesen? Und was hast du dort gemacht? ;-)

von Detlef _. (detlef_a)


Lesenswert?

Wolfgang schrieb:
> Detlef _. schrieb:
>> PPS, Uhrzeit. 100ns geht ohne Klimmzug. Been there, done that.
>
> Wie hast du die 100ns geprüft - nur so aus Interesse?

Garnicht, gebe ich zu. Die PPS sind zu 10^-8 gespect, entspricht 10ns 
und mehr als eine Zehnerpotenz verliere ich nicht. Guaranteed by design. 
Wenn ichs hätte prüfen müssen dann hätte ich die Frequenz gegen mein 
Rubidium Normal gemessen, das hat auch 10^-8, eine Sekunde in 3 Jahren 
:))) .

Cheers
Detlef

von Jacko (Gast)


Lesenswert?

Wolfgang schrieb
> Eigentlich sollte die Zeit stimmen, sobald der Empfänger im
> GPGSA-Sentence einen gültigen Fix meldet.

Mit 4..5 Satelliten stimmt dann die GPS-Zeit - die nützt aber nix,
wenn sie später auf UTC gesetzt wird. Bei unbekanntem UTC-Offset
(kommt nur alle 12,5 Minuten) nützt auch ein super-DOP nix.

Wer lesen kann, ist manchmal im Vorteil...

von Toby P. (Gast)


Lesenswert?

Jacko schrieb:
> An die GPS-Zeit kommt man per NMEA-Satz nicht ran.
> Die üblichen GPS-Empfänger liefern bevor sie den UTC-GPS-Offset
> empfangen haben (ich kann nach Tests bestätigen, dass der exakt
> alle 12,5 Minuten empfangen werden kann) eine "Zwischenzeit".
> Einfacherweise mit den zur Entstehung der Firmware bekannten
> Schaltsekunden.

Kann man nicht einfach loggen und im postprozess angleichen?

Pps (und oft auch NMEA) kommen doch 1x pro Sekunde (bei einigen 
Empfängern sogar ohne Satelliten). Sobald UTC stabil ist zählt man die 
Sekunden zurück und hat seine "offizielle" Startzeit?

Dafür wird der Empfänger halt so lange laufen gelassen bis UTC stabil 
ist.

Das gleiche gilt für die seltenen Schaltsekunden.

von Jacko (Gast)


Lesenswert?

Hab nie gesagt, dass man nicht rückwärtsrechnen kann...

Die Schaltsekunden sind (18 in 40 Jahren) so selten, dass man sie
auch nachlesen kann:
Bulletin C vom IERS. Eine dadurch versaute Zeitmessung lässt sich
auch nachträglich korrigieren...

Aber der GPS-Empfänger weiß bei Kaltstart einfach nicht, wieviele es
aktuell sind. Das erfährt er nur alle 12,5 Minuten.

Ist das so schwer zu raffen?
Warum muss ich mich hier 100 mal wiederholen?
Einfach mal aufmerksam lesen!!!

von Bauform B. (bauformb)


Lesenswert?

Deswegen nimmt man einen vernünftigen Empfänger mit Dokumentation und 
benutzt die GPS-Zeit oder notfalls ein UTC-ist-gültig-Status-Bit. Ob der 
NMEA-Status die Info hergibt, steht im Handbuch. Im Zweifelsfall tut er 
das nicht.

von Wolfgang (Gast)


Lesenswert?

Jacko schrieb:
> Mit 4..5 Satelliten stimmt dann die GPS-Zeit - die nützt aber nix,
> wenn sie später auf UTC gesetzt wird. Bei unbekanntem UTC-Offset

So unbekannt ist der UTC-Offset nicht, da er sich nur alle paar Jahre 
mal ändert. Ein halbwegs sinnvoll programmierter GPS-Empfänger merkt 
sich den Wert im NVRAM und liegt damit beim nächsten Einschalten mit 
großer Wahrscheinlichkeit richtig. Man muss nicht immer eine Kaltstart 
des Empfängers durchführen.

von Pandur S. (jetztnicht)


Lesenswert?

>> Klaus R. schrieb:
>> Die Amerikaner bauen im GPS Signal eine künstliche Ungenauigkeit ein,
>
>Wurde aus Angst vor Galileo aber wieder aufgegeben.


Nein Bill Clinton hat die Verschwimmung aufgegeben, als klar wurde, dass 
zuviele oeffentliche Systeme, auch amerikanische Systeme, wie zB die 
Luftfahrt dran haengen.

: Bearbeitet durch User
von oszi40 (Gast)


Lesenswert?

Joggel E. schrieb:
> Bill Clinton hat die Verschwimmung aufgegeben

In seinem Golfkreig waren zu wenig militärische GPS-Geräte verfügbar. 
Deshalb wird er wohl diese gewollte Ungenauigkeit aufgegeben haben, da 
seine Leute auch zivile nutzen mußten. Wenn ich richtig gelesen habe, 
sollte es aber im Hintergrund einige Knebelverträge zw.  GPS und Galileo 
geben? Deswegen scheint mir ein Navi welches zusätzlich GLONASS und 
Beidou benutzen kann, durchaus zukunftsorientiert zu sein. Man weiß im 
Ernstfall bloß nicht wer lügt.

von Thomas W. (twust)


Lesenswert?

Konnte man nicht mit den neueren UBLOX-Empfängern den "PPS" bis in den 
MHz-Bereich per Programmierung bringen? Daraus ließ sich doch eine 
genügend stabile Zeitbasis zur Synchronisierung der Sensordaten per 
"Uhrzeit" generieren!

von adib (Gast)


Lesenswert?

Ich  benutze den ublox NEO M8T.

Der hat einen PPS Ausgang UND einen Ext2 Pulse Ausgang.
Auf dem Ext2. Kann ich eine beliebige zu GPS synchrone Frequenz 
ausgeben.
Zb 100kHz oder 1Mhz. Damit gehe ich auf den Zähleingang eines Timers im 
uC.
Der PPS geht auf den gleichen Counter auf eien Capture. Damit erhält man 
die Referenz. Die Zeitinformation des PPS kommt irgendwann später.

Mit dieser Methode spart man sich die externe PLL.

Hth, Adib.

von Thomas W. (twust)


Lesenswert?

Danke, mir war doch so das die ublox Module das relativ unproblimatisch 
konnten.

Gruß Thommi

von Ingo T. (ingotron)


Lesenswert?

@adib: Das hört sich sehr interessant an. Genau eine solche Lösung kann 
ich mir für mein Problem vorstellen. Kannst Du ein konkretes Modul 
basierend auf dem "ublox NEO M8T" empfehlen?
Kannst Du mich ggf. per Email anschreiben? (über die entsprechende 
Forenfunktion)

Vielen Dank

Ingo.

von Bauform B. (bauformb)


Lesenswert?

Ingo T. schrieb:
> Kannst Du ein konkretes Modul
> basierend auf dem "ublox NEO M8T" empfehlen?
> Kannst Du mich ggf. per Email anschreiben?

Das ist gemein, ich wüsste auch gerne mehr :(

von Ingo T. (ingotron)


Lesenswert?

So, dank des Tips von adib (Ublox Neo M8T) bin ich nun etwas weiter.

Auf Seite 15 dieses Dokuments: 
https://www.u-blox.com/en/docs/UBX-15025193
 findet man Informationen über Eingänge für externen Interrupt bei den 
Ublox M8T Receivern. Löst man einen Interrupt aus, so merkt ein interner 
Timer sich nanosekundengenau den Zeitpunkt der auslösenden Flanke - 
siehe Seite 385 dieses Dokuments: 
https://www.u-blox.com/en/docs/UBX-13003221

Nun habe ich mir ein Exemplar dieses Empfängers inklusive passender 
Antenne bestellt:
https://www.gnss.store/gnss-gps-modules/77-incase-pin-series-neo-m8t-time-raw-receiver-board-rtk-ready.html

... und werde mal erste Versuche damit unternehmen.

Leider kann man den Interrupt scheinbar nur so oft aufrufen, wie das 
NMEA-Protokoll ausgelesen werden kann. Lieber wäre mir eine Lösung, die 
nicht das gesamte Protokoll ausliest sondern nur die benötigte 
Zeitinformation und das eben z.B. 100 mal oder mehr in der Sekunde. Aber 
ggf. kann ich das ja mit einem externen Timer relaisieren. Jedenfalls 
komme ich so der Lösung hoffentlich erstmal näher.
In einem Q/A-Thread ( 
https://www.ardusimple.com/question/extint/?ans-page=3 ) habe ich 
gelesen, daß Fotografen genau diese Möglichkeit der genauen 
Zeitermittlung mit dem ExtInt-Eingang eines GPS-Moduls nutzen.

Für weitere Tips bin ich sehr dankbar.

Gruß Ingo.

von Ingo T. (ingotron)


Lesenswert?

So, ich bin wieder ein Stück weiter. Ich habe inzwischen einen 
GPS-Empfänger mit Ublox Neo M8T Chip. Den kann ich mit der kostenlosen 
Software "u-center" von U-Blox konfigurieren. Ich habe alle 
NMEA-Meldungen augeschaltet, die Rate auf 10Hz eingestellt und die 
Übertragungsgeschwindigkeit auf dem seriellen Port auf 230400 Baud 
eingestellt. Wenn ich nun die Interruptleitungen mit Impulsen beschicke 
wird mir ein binäres Zeittelegramm ausgegeben, welches nanosekundengenau 
die Zeiten von Hin- und Rückflanke des entsprechenden Eingangs 
ausgegeben. Blöderweise ist das Ausgabeformat etwas gewöhnungsbedürftig. 
Es wird die Zahl ganzer Wochen seit dem 6.01.1980 sowie die der Sekunden 
(und Milli- und Nanosekunden) seit Ende der letzten ganzen Woche seit 
dem 6.01.1980 ausgegeben. Dafür habe ich mir nun ein Programm 
geschrieben, um ein vollständiges Zeittelegramm (für UTC)zu errechnen.
Der GPS-Empfänger soll nun genutzt werden, um (mehrmals täglich) die RTC 
am Arduino genau zu stellen. Dazu wird die Verzögerung zwischen dem 
Triggern des GPS-Moduls und der RTC-Zeit bestimmt und die RTC-Zeit so 
korrigiert, daß diese Verzögerung berücksichtigt wird.

VG Ingo.

von Jacko (Gast)


Lesenswert?

Ingo T. (ingotron) schrieb:
> Ich habe alle NMEA-Meldungen augeschaltet, die Rate auf 10Hz
> eingestellt und die Übertragungsgeschwindigkeit auf dem seriellen
> Port auf 230400 Baud eingestellt. Wenn ich nun die Interruptleitungen
> mit Impulsen beschicke wird mir ein binäres Zeittelegramm ausgegeben,
> welches nanosekundengenau die Zeiten von Hin- und Rückflanke des
> entsprechenden Eingangs ausgegeben. Blöderweise ist das Ausgabeformat
> etwas gewöhnungsbedürftig.

Irgendwie erinnert mich das an "Des Kaisers neue Kleider", was
natürlich wieder alle bildungsfeindlichen Kreise diskriminiert,
die dieses Aha-Erlebnis mangels Lesekompetenz nicht haben...

Trotzdem meine dumme Frage: Womit verifizierst du diese
ns-Genauigkeit? Viele "Stellen hinterm Komma" auszugeben, ist
"Auflösung", aber noch lange keine "Genauigkeit".

Du meinst, diese gewünschte zeitliche Genauigkeit mit der Nicht-
Abfrage von allem, was ein GPS ausmacht, zu erkaufen...
Wie kommst du darauf? Versprechen die das etwa im Datenblatt?
Bringen Standard-Meldungen das Timing durcheinander?

Die 230400 Baud sollen doch nicht etwa Konflikte zwischen
verschiedenen Abfragen einfach per Speed unwahrscheinlich machen?
- Sie machen die Konflikte aber nicht UNMÖGLICH...

Aber ... naja:
Wer nicht so viel grübelt, schläft besser ein!
Gute Nacht.

von Ingo T. (ingotron)


Lesenswert?

Hallo Jacko,

was die "Nanosekundengenauigkeit" angeht, gibt es Informationen zu deren 
Abhängigkeit von der Anzahl der empfangenen Sateliten. Ansonsten hat die 
Genauigkeit nichts mit der Übertragungsrate o.ä. zu tun, denn das 
Zeittelegram bezieht sich auf die Interruptflanke an einem der externen 
Eingänge des GPS-Empfängers. Ansonsten verlasse ich mich 
zugegebenermaßen auf Herstellerangaben. Mir genügt für meine Aufgabe 
eine Genauigkeit im Bereich einiger zehn Millisekunden.
Ansonsten enthält das Protokoll des Zeitstempels des Interrupteingangs 
einen Parameter "Accuracy estimate", der die "erwartete" Genauigkeit in 
Nanosekunden mit 4 Byte kodiert angibt.

VG Ingo.

PS: Ich hoffe mal stark, Du wähntest mich nicht in der Rolle des 
Kaisers. das wäre der Ehre zuviel...

: Bearbeitet durch User
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.