Forum: PC Hard- und Software Kennt sich wer mit chrony und GPS aus?


von Tobias P. (hubertus)


Lesenswert?

Hallo zusammen

ich möchte meinen PC zu einem Zeitserver umfunktionieren.
Ich habe vor einiger Zeit einen GPSDO gebaut, der spuckt über RS232 die 
NMEA Daten aus ($GPRMC) sowie das 1PPS Signal.
Damit möchte ich auf meinem PC nun chrony füttern, damit die Uhr nach 
GPS korrigiert wird.

Ich habe auf meinem PC Fedora 35 installiert. Die GPS-Daten kommen über 
/dev/ttyS0 rein.

Ich habe mir mal gpsd installiert und lasse den laufen.
Anscheinend kommen auch richtige Daten rein, denn mit gpsmon kann ich 
was sehen:
1
tcp://localhost:2947          NMEA0183>
2
┌──────────────────────────────────────────────────────────────────────────────┐
3
│Time: 2022-03-09T10:13:00.000Z   Lat: 46 57.066870' N   Lon:   7 26.322730' E │
4
└───────────────────────────────── Cooked TPV ─────────────────────────────────┘
5
┌──────────────────────────────────────────────────────────────────────────────┐
6
│ GPRMC                                                                        │
7
└───────────────────────────────── Sentences ──────────────────────────────────┘
8
┌───────────────────────┌─────────────────────────┌────────────────────────────┐
9
│ SVID  PRN  Az El SN HU│Time:     101300         │Time:                       │
10
│                       │Latitude:   46         N │Latitude:                   │
11
│                       │Longitude:   7         E │Longitude:                  │
12
│                       │Speed:    000.0          │Altitude:                   │
13
│                       │Course:   000.0          │Quality:       Sats:        │
14
│                       │Status:   A        FAA:  │HDOP:                       │
15
│                       │MagVar:   000.0E         │Geoid:                      │
16
│                       └───────── RMC ───────────└─────────── GGA ────────────┘
17
│                       ┌─────────────────────────┌────────────────────────────┐
18
│                       │Mode:    Sats:           │UTC:           RMS:         │
19
│                       │DOP H=     V=     P=     │MAJ:           MIN:         │
20
│                       │TOFF: -0.071022176       │ORI:           LAT:         │
21
│                       │PPS: N/A                 │LON:           ALT:         │
22
└──────── GSV ──────────└────── GSA + PPS ────────└─────────── GST ────────────┘

lustigerweise wird das 1PPS Signal nicht detektiert.
Wenn ich aber gpsd stope, und gpsmon starte mit

gpsmon /dev/ttyS0

dann sieht er die 1PPS Pulse:
1
┌──────────────────────────────────────────────────────────────────────────────┐
2
│Time: 2022-03-09T10:14:18.000Z   Lat: 46 57.066670' N   Lon:   7 26.321150' E │
3
└───────────────────────────────── Cooked TPV ─────────────────────────────────┘
4
┌──────────────────────────────────────────────────────────────────────────────┐
5
│ GPRMC                                                                        │
6
└───────────────────────────────── Sentences ──────────────────────────────────┘
7
┌───────────────────────┌─────────────────────────┌────────────────────────────┐
8
│ SVID  PRN  Az El SN HU│Time:     101418         │Time:                       │
9
│                       │Latitude:   46         N │Latitude:                   │
10
│                       │Longitude:   7         E │Longitude:                  │
11
│                       │Speed:    000.0          │Altitude:                   │
12
│                       │Course:   000.0          │Quality:       Sats:        │
13
│                       │Status:   A        FAA:  │HDOP:                       │
14
│                       │MagVar:   000.0E         │Geoid:                      │
15
│                       └───────── RMC ───────────└─────────── GGA ────────────┘
16
│                       ┌─────────────────────────┌────────────────────────────┐
17
│                       │Mode:    Sats:           │UTC:           RMS:         │
18
│                       │DOP H=     V=     P=     │MAJ:           MIN:         │
19
│                       │TOFF: -0.082706776       │ORI:           LAT:         │
20
│                       │PPS: -0.245507723        │LON:           ALT:         │
21
└──────── GSV ──────────└────── GSA + PPS ────────└─────────── GST ────────────┘

Interessant ist auch, dass die 1PPS Pulse erkannt werden, wenn gpsd 
läuft, aber anscheinend nicht korrekt weiterverarbeitet werden:
1
$ sudo ppstest /dev/pps0
2
trying PPS source "/dev/pps0"
3
found PPS source "/dev/pps0"
4
ok, found 1 source(s), now start fetching data...
5
source 0 - assert 1646820962.754233494, sequence: 9 - clear  1646820961.854313056, sequence: 8
6
source 0 - assert 1646820962.754233494, sequence: 9 - clear  1646820962.854236428, sequence: 9
7
source 0 - assert 1646820963.754501312, sequence: 10 - clear  1646820962.854236428, sequence: 9

Nun stehe ich völlig auf dem Schlauch, was ich machen muss. Ich habe 
buchstäblich jedes Ergebnis in Google durchgearbeitet, und man findet 
dieses Thema vor allem in Bezug zu Raspberry Pi (ich möchte das später 
auf einem Raspi auch gern laufen lassen, aber man kriegt im Moment keine 
und wollte daher mit meinem PC üben).

Ziel sollte eigentlich sein, dass die NMEA Daten richtig empfangen und 
der 1PPS Puls richtig ausgewertet wird, sodass man die dann an Chrony 
füttern kann. Aber das funktioniert nicht.

Ich habe in der chrony.conf das drin
1
refclock SHM 0 refid GPS precision 1e-1 offset 0.9999 delay 0.2
2
refclock SHM 1 refid PPS precision 1e-7

aber chrony zeigt da nichts an:
1
# chronyc sources
2
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
3
===============================================================================
4
#? GPS                           0   4     0     -     +0ns[   +0ns] +/-    0ns
5
#? PPS                           0   4     0     -     +0ns[   +0ns] +/-    0ns

ich wüsste gerne, weshalb. Habt ihr Ideen? Ich bin am Ende mit meinem 
Latein :-)

von oszi40 (Gast)


Lesenswert?

Tobias P. schrieb:
> Habt ihr Ideen?

https://chrony.tuxfamily.org/faq.html
Warum möchtest Du unbedingt GPS benutzen, wenn es NTP gibt? Reicht die 
Genauigkeit nicht? Hier im Forum sind einige Diskussionen zu finden.

von Tobias P. (hubertus)


Lesenswert?

oszi40 schrieb:
> https://chrony.tuxfamily.org/faq.html

das kannte ich schon. Danke trotzdem.....

oszi40 schrieb:
> Warum möchtest Du unbedingt GPS benutzen, wenn es NTP gibt? Reicht die
> Genauigkeit nicht? Hier im Forum sind einige Diskussionen zu finden.

Das soll ein Stratum 1 Zeitserver werden.

von Wolfgang (Gast)


Lesenswert?

oszi40 schrieb:
> Warum möchtest Du unbedingt GPS benutzen, wenn es NTP gibt?

GPS verwendet man dafür üblicherweise, wenn man sich auf den deutlich 
mehr als 70% der Erdoberfläche befindet, wo es keine Netzwerksteckdose 
gibt.

von Ergo70 (Gast)


Lesenswert?

Ich meine mich zu erinnern, dass Timestamp und 1 PPS nicht von der 
selben Uhr stammen dürfen. Was auch Sinn macht. Aber ich kann mich auch 
irren, ist schon was her...

von Gerd E. (robberknight)


Lesenswert?

Ergo70 schrieb:
> Ich meine mich zu erinnern, dass Timestamp und 1 PPS nicht von der
> selben Uhr stammen dürfen. Was auch Sinn macht.

Warum macht das Sinn?

Die dürfen selbstverständlich vom selben GPS kommen. Nur natürlich über 
verschiedene Kabelwege. Das NMEA über RX/TX vom RS232, das PPS 
üblicherweise über die DCD-Leitung der selben RS232-Schnittstelle.

@TO schau Dir mal die SHM-IDs an. Damit gab es bei mir ein Problem. Da 
waren die falschen IDs hinterlegt oder so. Als ich die angepasst hatte 
ging es dann. Hab die genauen Details aber nicht mehr im Kopf.

von Wolfgang (Gast)


Lesenswert?

Ergo70 schrieb:
> Ich meine mich zu erinnern, dass Timestamp und 1 PPS nicht von der
> selben Uhr stammen dürfen. Was auch Sinn macht.

Zu dieser deiner Aussage besteht doch noch etwas Erklärungsbedarf.

Das 1PPS-Signal gibt die genauen Zeitpunkte für die Sekunden und in den 
seriellen Daten steht die Uhrzeitangabe dazu.

von oszi40 (Gast)


Lesenswert?

Ehrlich gesagt, würde ich das Thema nur mit spitzen Fingern anfassen und 
diese Zeit gründlichst auf Plausibilität prüfen. Eine falsche Zeit kann 
viel Ärger zur Folge haben. Leider hatte ich dieses Theater bei DCF77 
durch Störungen schon mal.

von Gerd E. (robberknight)


Lesenswert?

oszi40 schrieb:
> Ehrlich gesagt, würde ich das Thema nur mit spitzen Fingern anfassen und
> diese Zeit gründlichst auf Plausibilität prüfen.

Das ist ziemlich einfach: Du trägst im chrony/ntpd zusätzlich zum 
gps/pps noch ein paar bekannt gute NTP-Dienste ein. Dann bekommst Du die 
Offsets zu denen direkt angezeigt. Das dann einfach 2 Wochen lang 
kontinuierlich laufen lassen, alle paar Minuten die Werte loggen und die 
Werte über die Zeit vergleichen.

von Tobias P. (hubertus)


Lesenswert?

Hallo zusammen

Gerd E. schrieb:
> @TO schau Dir mal die SHM-IDs an. Damit gab es bei mir ein Problem. Da
> waren die falschen IDs hinterlegt oder so. Als ich die angepasst hatte
> ging es dann. Hab die genauen Details aber nicht mehr im Kopf.

guter Tip, danke. Ich habe mir die angeschaut. Die IDs sind korrekt. 
ABER ich habe gesehen, dass SHM(0) und SHM(0) als owner "root" haben, 
und die Permissions sind "600". Dummerweise läuft chronyd unter dem User 
"chrony". Ich glaube, dass dies das Problem sein könnte, denn so kann 
chrony auf den shared memory nicht zugreifen. Macht das Sinn?
wie repariert man das? das scheint mir eine systemd Problem zu sein.

Gerd E. schrieb:
> Das ist ziemlich einfach: Du trägst im chrony/ntpd zusätzlich zum
> gps/pps noch ein paar bekannt gute NTP-Dienste ein. Dann bekommst Du die
> Offsets zu denen direkt angezeigt. Das dann einfach 2 Wochen lang
> kontinuierlich laufen lassen, alle paar Minuten die Werte loggen und die
> Werte über die Zeit vergleichen.

genau so würde ich das auch machen.

von Εrnst B. (ernst)


Lesenswert?

Tobias P. schrieb:
> Das soll ein Stratum 1 Zeitserver werden.

Das sind mir immer die liebsten. Da lässt du deinen ntpd einen Satz 
Server aus dem Pool nehmen, alle sind so Stratum 2 oder 3 und sich super 
einig, was denn die aktuelle Zeit ist, nur einer nicht. Und das ist dann 
ein Stratum 1 - Selbstbastelserver mit REFID ".GPS."

Falls du vorhast deinen Server irgendwie in einen Pool einzubringen: 
Bitte Belüg dich selber und andere nicht über die Genauigkeit deines 
PPS-Signals.

Ja, die NTP-Doku von vor 30 Jahren sagt, dass ein NTP-Server am 
GPS-Receiver Stratum 1 sein sollte. Diese Einstufung ist m.M.n obsolet, 
spätestens seitdem die PTB ihre ptbtime-server betreibt.

von Tobias P. (hubertus)


Lesenswert?

Hi Ernst,

das ist deine Meinung. Andere sehen das anders. Das 1PPS Signal ist sehr 
akkurat. Lese dich mal ein wie GPS funktioniert.

Mit ntpd habe ich es zum Laufen bekommen, die Abweichung von meinem 
.GPS. zum pool.ntp.org war im Mikrosekundenbereich.
Ich möchte aber chrony benutzen wenns geht.

: Bearbeitet durch User
von DerAndereGast (Gast)


Lesenswert?

@ Tobias P.

> Mit ntpd habe ich es zum Laufen bekommen, die Abweichung von meinem
> .GPS. zum pool.ntp.org war im Mikrosekundenbereich.

Bei meinen letzten Test zu einem Meinberg GPS Dingens war das schon im 
Bereich von Millisekunden :-)

von Ergo70 (Gast)


Lesenswert?

Gerd E. schrieb:
> Warum macht das Sinn?
> Die dürfen selbstverständlich vom selben GPS kommen. Nur natürlich über
> verschiedene Kabelwege.

Na ja, weil ich wohl davon ausgegangen bin, dass man so eine ungenauere 
Uhr mit einem präziseren 1PPS Signal diszipliniert. Wie gesagt, ist 
schon was her.

von Gerd E. (robberknight)


Lesenswert?

Tobias P. schrieb:
> ABER ich habe gesehen, dass SHM(0) und SHM(0) als owner "root" haben,
> und die Permissions sind "600". Dummerweise läuft chronyd unter dem User
> "chrony". Ich glaube, dass dies das Problem sein könnte, denn so kann
> chrony auf den shared memory nicht zugreifen. Macht das Sinn?
> wie repariert man das? das scheint mir eine systemd Problem zu sein.

Ja, das ist auf jeden Fall ein Grund warum es nicht gehen kann. Ich 
vermute der chronyd muss als root starten, sich die Zugriffsrechte 
sichern und kann dann auf den chrony-Benutzer zurückschalten.

Ruf mal ntpshmmon auf. Was siehst Du da für Einträge?

Hast Du das howto durchgearbeitet:
https://gpsd.gitlab.io/gpsd/gpsd-time-service-howto.html
Da sind einige Punkte beschrieben

von Bauform B. (bauformb)


Lesenswert?

Εrnst B. schrieb:
> Ja, die NTP-Doku von vor 30 Jahren sagt, dass ein NTP-Server am
> GPS-Receiver Stratum 1 sein sollte. Diese Einstufung ist m.M.n obsolet,

das ist doch ein Mißverständnis? Sollte es nicht umgekehrt heißen: ein 
NTP-Server hat überhaupt nur eine Chance auf Stratum 1, wenn er an einem 
GPS-Receiver mit PPS hängt. Und dann fehlt ihm wahrscheinlich noch ein 
passender Oszillator für die Rechneruhr. Und die auf dem Flachdach 
angeschraubte Antenne.

Tobias P. schrieb:
> Mit ntpd habe ich es zum Laufen bekommen, die Abweichung von meinem
> .GPS. zum pool.ntp.org war im Mikrosekundenbereich.
> Ich möchte aber chrony benutzen wenns geht.

das ist mal ein spannender Vergleich. Oder warum macht man sowas?

von Tobias P. (hubertus)


Lesenswert?

Bauform B. schrieb:
> das ist doch ein Mißverständnis? Sollte es nicht umgekehrt heißen: ein
> NTP-Server hat überhaupt nur eine Chance auf Stratum 1, wenn er an einem
> GPS-Receiver mit PPS hängt. Und dann fehlt ihm wahrscheinlich noch ein
> passender Oszillator für die Rechneruhr. Und die auf dem Flachdach
> angeschraubte Antenne.

NTP steuert die Rechneruhr und zieht die dem PPS nach. Dadurch wird die 
Zeit schon recht genau, aber man kann das im Endeffekt sowieso nicht so 
genau nutzen weil bei der Zeitabfrage übers Netzwerk dann wieder eine 
zusätzliche Ungenauigkeit dazu kommt.
Bei dem vorliegenden GPSDO ist es aber sowieso so, dass der 1PPS, der an 
den PC geleitet wird, NICHT aus dem GPS kommt, sondern von einem OCXO 
abgeleitet ist. Eine PLL regelt den OCXO so nach, dass der lokal 
generierte 1PPS mit demjenigen von GPS übereinstimmt (plus minus Jitter 
natürlich). Damit hat der lokale 1PPS praktisch keinen Jitter und ist 
nahezu perfekt an der GPS Zeit ausgerichtet.
Die Antenne ist im Normalfall auf dem Dach, aber zu Debugzwecken musste 
ich im Moment die Hardware in der Nähe haben, weshalb ich in der Tat 
keinen guten Antennenstandort habe (Fensterbrett). Trotzdem scheint eine 
erstaunlich gute Genauigkeit möglich zu sein. Der PPS vom GPS-Modul 
baumelt um circa 40ns in beide Richtungen um "meinen" 1PPS herum. DAC 
Spannung ist über Stunden nahezu konstant, d.h. wackelt nur um ein paar 
counts.


Bauform B. schrieb:
> Oder warum macht man sowas?

warum nicht? Andere spielen Fussball. Oder bauen Modelleisenbahnen. 
Beides genauso nutzlos, aber für denjenigen der es macht, in dem Moment 
offenbar spannend. ;-)

von oszi40 (Gast)


Lesenswert?

Tobias P. schrieb:
> baumelt um circa 40ns in beide Richtungen

Dann teste GPS jetzt mal in Finnland!
"Behörde warnt vor Störungen
In einer Anordnung an Cockpitpersonal (Englisch: Notam) warnte deshalb 
die finnische Verkehrsbehörde Traficom vor Störungen des GPS-Signals in 
der Region der Städte Mikkeli, Jyväskylä und Kuopio. «Ich kann mich 
nicht erinnern, dass es in letzter Zeit solche Vorfälle gegeben hat», 
sagte Jari Pöntinen, Direktor für Luftfahrt bei Traficom, der Zeitung 
Helsingin Sanomat. Die Warnung gilt für Flughöhen bis zu 20.000 Fuß, 
also bis 6100 Meter." Quelle 
https://www.aerotelegraph.com/an-russlands-grenze-fiel-im-cockpit-ploetzlich-das-gps-signal-aus
Deswegen würde ich niiie ungeprüfte Zeitdaten in mein System lassen. Aus 
Ärger mit kaputtem Impulsdiagramm (war DCF77) habe ich schon gelernt.

Was ist eigentlich mit den anderen GPS-Systemen? Hat die zufällig jetzt 
einer geprüft/verglichen ob sie funktionieren?    NAVSTAR GPS, GLONASS, 
Galileo, Beidou?

von Tobias P. (hubertus)


Lesenswert?

oszi40 schrieb:
> Tobias P. schrieb:
>> baumelt um circa 40ns in beide Richtungen
>
> Dann teste GPS jetzt mal in Finnland!
> "Behörde warnt vor Störungen
> In einer Anordnung an Cockpitpersonal (Englisch: Notam) warnte deshalb
> die finnische Verkehrsbehörde Traficom vor Störungen des GPS-Signals in
> der Region der Städte Mikkeli, Jyväskylä und Kuopio. «Ich kann mich
> nicht erinnern, dass es in letzter Zeit solche Vorfälle gegeben hat»,
> sagte Jari Pöntinen, Direktor für Luftfahrt bei Traficom, der Zeitung
> Helsingin Sanomat. Die Warnung gilt für Flughöhen bis zu 20.000 Fuß,
> also bis 6100 Meter." Quelle
> 
https://www.aerotelegraph.com/an-russlands-grenze-fiel-im-cockpit-ploetzlich-das-gps-signal-aus
> Deswegen würde ich niiie ungeprüfte Zeitdaten in mein System lassen. Aus
> Ärger mit kaputtem Impulsdiagramm (war DCF77) habe ich schon gelernt.
>
> Was ist eigentlich mit den anderen GPS-Systemen? Hat die zufällig jetzt
> einer geprüft/verglichen ob sie funktionieren?    NAVSTAR GPS, GLONASS,
> Galileo, Beidou?

und was machen jetzt die Kalibrierlabore in Finnland?

GLONASS und GALILEO kann man beide auch verwenden.
Mein GPSDO benutzt alle 3. Nach länglichen Tests habe ich so 
herausgefunden, dass das die stabilsten Sekundenpulse gibt. Im Moment 
trackt er 35 Sats.

von Manfred (Gast)


Lesenswert?

Tobias P. schrieb:
> Die Antenne ist im Normalfall auf dem Dach, aber zu Debugzwecken musste
> ich im Moment die Hardware in der Nähe haben, weshalb ich in der Tat
> keinen guten Antennenstandort habe (Fensterbrett).

Es gibt doch irgend ein Bit, was meldet, ob die Zeit "gut" ist. Das sehe 
ich mit meiner älteren GPS-Maus (Sony Chipsatz) nur, wenn der Empfänger 
draußen freie Sicht hat. Auf der Fensterbank innen ist auch die Position 
alles andere als toll.

Privat bin ich zu keiner Anwendug gekommen, habe das nur ein paar Wochen 
bespielt, nachdem ich beruflich damit zu tun bekam.

Sehr nett: https://in-the-sky.org/satmap_radar.php
Da kann man recht gut gucken, wieviele SAT vom Fenster aus überhaupt 
sichtbar sein können.

oszi40 schrieb:
> Deswegen würde ich niiie ungeprüfte Zeitdaten in mein System lassen. Aus
> Ärger mit kaputtem Impulsdiagramm (war DCF77) habe ich schon gelernt.

Wenn man DCF selbst decodiert, wirkt eine mathematische 
Plausibilitätsprüfung Wunder, drei Minuten auf n+1 gucken. Im Windows 
Zeitdienst gibt es Parameter (per Registry-Klempnerei), wie weit 
Korrekturen von der Istzeit abweichen dürfen, um glaubhaft zu 
erscheinen. Beides gemeinsam sollte grobe Fehler ziemlich sicher 
ausschließen.

-------
Spaß am Rande: Ein Kunde rief mich wegen Problemen an, wo mir meine 
Erfahrung sagte, dass seine GPS-Referenz ausgefallen sein müsste. Er 
musste dann zum Technikraum und mir ein paar LEDs vorlesen, Treffer. Zum 
Glück war der pfiffig "Wir haben Dachdecker auf dem Haus, ich gehe mal 
gucken". Eine Weile später rief er wieder an, alles gut - die Dachdecker 
haben ein ordentliche Abdeckung für die Antenne gebaut, um die Technik 
zu schützen" :-)

von oszi40 (Gast)


Lesenswert?

Manfred schrieb:
> Wenn man DCF selbst decodiert, wirkt eine mathematische
> Plausibilitätsprüfung Wunder, drei Minuten auf n+1 gucken.

Der Tipp ist gut. Trotzdem würde ich noch prüfen ob die Stunden <24 
sind, da mein gestörtes Impulstelegramm völlig sinnlose Werte wie 
§§:AA:72 lieferte.

von Manfred (Gast)


Lesenswert?

oszi40 schrieb:
> Manfred schrieb:
>> Wenn man DCF selbst decodiert, wirkt eine mathematische
>> Plausibilitätsprüfung Wunder, drei Minuten auf n+1 gucken.
> Der Tipp ist gut.

Aber nicht wirklich neu?

> Trotzdem würde ich noch prüfen ob die Stunden <24 sind,
... und die anderen jeweils 0..59!

> da mein gestörtes Impulstelegramm völlig sinnlose Werte wie
> §§:AA:72 lieferte.

Solch groben Unfug habe ich gesehen, als ich versucht habe, mit dem 
UKW-Empfänger RDA5807M eine Uhrzeit per RDS zu ermitteln.

Wertest Du vom DCF die drei Parity-Bits aus? Die taugen wenig, weil sie 
Doppelfehler (zwei Bit gekippt) nicht zeigen, aber es kostet nichts, die 
trotzdem mitzunehmen, wenn ein µC decodiert.

Wie sieht die Zielumgebung aus? Ich habe es erlebt, dass ein 
Windows-Server seine Uhr nicht gestellt hat, weil es ein Sprung über 
mehrere Tage gewesen wäre. Heißt also, dem System beizubringen, dass 
Zeitkorrekturen größer xx unzulässig sind.

von Gerd E. (robberknight)


Lesenswert?

Als Plausibilitätsprüfung würde ich vor allem auf einen dauerhaften 
Vergleich des eigenen GPS- oder DCF77-Empfängers mit externen 
NTP-Servern setzen und hier nur einen maximalen Offset erlauben.

NTP gibt es seit einiger Zeit auch kryptografisch abgesichert als NTS. 
Die Möglichkeiten eines Angreifers das zu verfälschen sind da sehr stark 
eingeschränkt. Das, kombiniert mit dem lokalen GPS oder DCF77, macht 
selbst einen gezielten Angriff mit größerem Ressourcenaufwand extrem 
schwer durchzuführen.

von Manfred (Gast)


Lesenswert?

Gerd E. schrieb:
> Als Plausibilitätsprüfung würde ich vor allem auf einen dauerhaften
> Vergleich des eigenen GPS- oder DCF77-Empfängers mit externen
> NTP-Servern setzen und hier nur einen maximalen Offset erlauben.

Falscher Ansatz. Wenn ich NTP habe, muß ich nicht mit DCF oder GPS 
basteln. Ziel muß sein, unabhängig von NTP eine korrekte Zeit zu 
bekommen.

Beim DCF77 kommt noch die Laufzeit hinzu, am PTB-Standort Braunschweig 
kommt das Signal ziemlich genau eine Millisekunde verspätet an.

Wenn man sich mal bei http://www.satsignal.net/ umsieht: Dave hat 
protokolliert, dass die Uhren schon auf Leerlauf oder Last eines Servers 
mit ein paar ms Versatz reagieren. Egal, was man treibt, besser 10ms 
wird man kaum realisiert bekommen.

Sein NTP Monitor hat schon lange keine Updates mehr benötigt, aber ist 
noch immer erste Wahl, die Uhren in einem Netzwerk zu überwachen.
http://www.satsignal.eu/software/net.htm

von Gerd E. (robberknight)


Lesenswert?

Manfred schrieb:
> Gerd E. schrieb:
>> Als Plausibilitätsprüfung würde ich vor allem auf einen dauerhaften
>> Vergleich des eigenen GPS- oder DCF77-Empfängers mit externen
>> NTP-Servern setzen und hier nur einen maximalen Offset erlauben.
>
> Falscher Ansatz. Wenn ich NTP habe, muß ich nicht mit DCF oder GPS
> basteln. Ziel muß sein, unabhängig von NTP eine korrekte Zeit zu
> bekommen.

So pauschal würde ich das nicht sehen, es kommt aufs Ziel an:

Wenn nicht Internetunabhängigkeit das Ziel ist, sondern Genauigkeit und 
Jitterarmut, dann ist ein lokaler GPS-disziplinierter OCXO deutlich 
besser als NTP.

Nur hat man dann da eben das Problem von lokalen Störungen oder 
Fehlkonfigurationen und die kann man eben u.a. über das oben genannte 
Verfahren zur Plausibilitätsprüfung erkennen.

von oszi40 (Gast)


Lesenswert?

Gerd E. schrieb:
> Nur hat man dann da eben das Problem von lokalen Störungen oder
> Fehlkonfigurationen und die kann man eben u.a. über das oben genannte
> Verfahren zur Plausibilitätsprüfung erkennen.

Bei Fehlkonfigurationen durch falsche Zeitzone usw. sollte evtl. ein 
Admin schuldig sein. Bei Umstellung von Sommer- auf Winterzeit usw. wird 
die Sache interessanter. Es werden ja gelegentlich auch 
Korrektursekunden eingefügt. Das alles sollte bei einer automatischen 
Plausibilitätsprüfung bedacht werden.

von Bauform B. (bauformb)


Lesenswert?

oszi40 schrieb:
> Bei Fehlkonfigurationen durch falsche Zeitzone usw. sollte evtl. ein
> Admin schuldig sein.

Nicht einmal der, das kann der Benutzer ja selber (verkehrt) machen.

> Bei Umstellung von Sommer- auf Winterzeit usw. wird
> die Sache interessanter.

Warum? Das ist doch bei der Zeitzone gratis mit dabei.

> Es werden ja gelegentlich auch Korrektursekunden eingefügt.

Das ist dann schon interessanter. Einmal, weil es nicht immer klar ist, 
ob die Schaltsekunden in den NMEA-Sätzen drin sind oder nicht. Zweitens, 
weil man bei der lokalen Uhr ja auch die Wahl hat, ob die Schaltsekunden 
berücksichtigt werden oder nicht (zoneinfo/posix vs. zoneinfo/right).

Für die Plausibilität sollte man GPS-Zeit mit lokaler Uhr ohne 
Schaltsekunden vergleichen. Da stecken die wenigsten Fehlerquellen drin. 
Und die Uhr muss nach der ersten Inbetriebnahme nie wieder gestellt 
werden. Genau genommen darf sie nie wieder gestellt werden. Nur dann 
hat man eine Referenz, auf die man sich verlassen kann.

Man kann noch eine Prüfung machen: der GPS-Empfänger ist ja irgendwo 
angeschraubt. Also sollte er gefälligst immer die gleichen Koordinaten 
liefern. Bei mehr als 10m Abweichung sollte man auch der Zeit nicht 
trauen. Wenn uns dann jemand reinlegen will, muss sein Störsender auch 
die passende Position zur gefälschten Zeit liefern. Bei wem würde sich 
ein so gezielter Angriff lohnen? Bei der Deutschen Bahn schon lange 
nicht mehr ;)

von oszi40 (Gast)


Lesenswert?

Bauform B. schrieb:
> Bei mehr als 10m Abweichung sollte man auch der Zeit nicht
> trauen. Wenn uns dann jemand reinlegen will, muss sein Störsender auch
> die passende Position zur gefälschten Zeit liefern.

So einfach ist Plausibilitätsprüfung auch nicht, da z.B. im Balkankrieg 
schon mal die GPS-Genauigkeit stark reduziert wurde. Statt Autobahn 
wurde ein Acker auf dem Navi angezeigt. Damit wäre Deine Zeit dann 
abgeschaltet?

von Manfred (Gast)


Lesenswert?

oszi40 schrieb:
> Bei Umstellung von Sommer- auf Winterzeit usw. wird
> die Sache interessanter. Es werden ja gelegentlich auch
> Korrektursekunden eingefügt. Das alles sollte bei einer automatischen
> Plausibilitätsprüfung bedacht werden.

Die Umstellung Sommer- <-> Winterzeit wird vom DCF angekündigt, es gibt 
ein Bit dafür. Meine Uhr (nur Zeitanzeige ohne PC-Anbindung) zeigt es an 
und wechselt ohne Fehler.

Die Implementierung der Schaltsekunde habe ich damals verpennt, da 
bekomme ich zwei oder drei Minuten lang eine Fehleranzeige.

Würde man das in eine Zeitserverfunktion implementieren, könnte dieser 
im Fehlerfall "Stratum 9" melden und die angeschlossenen PCs würden eine 
Zeitübernahme verweigern - wenn sie denn zufällig in diesem Zeitfenster 
stattfände.

Bauform B. schrieb:
> Für die Plausibilität sollte man GPS-Zeit mit lokaler Uhr ohne
> Schaltsekunden vergleichen.

Beim GPS bin ich unsicher, ich meine, der sendet die unkorrigierte Zeit 
und zusätzlich die Anzahl der Schaltsekunden. Habe ich nicht selbst 
gesehen, die Decoder-Chipsätze für NMEA behandeln das scheinbar intern 
und liefern die korrigierte GMT aus.

Unabhängig davon: Wie genau kann sowas überhaupt werden? Die Daten des 
Empfängers kommen seriell zum PC, vielleicht noch mit einem USB-Wandler 
dazwischen, das hat undefinierbare Laufzeiten.

von Bauform B. (bauformb)


Lesenswert?

oszi40 schrieb:
> So einfach ist Plausibilitätsprüfung auch nicht, da z.B. im Balkankrieg
> schon mal die GPS-Genauigkeit stark reduziert wurde.
> Damit wäre Deine Zeit dann abgeschaltet?

Jein, ich würde die GPS-Zeit ignorieren. Meine Zeit kommt immer von 
meiner Uhr. Die Uhr wird nur per GPS-Zeit sehr behutsam korrigiert -- 
oder eben nicht (hoffentlich nur zeitweise).


Manfred schrieb:
> Die Implementierung der Schaltsekunde habe ich damals verpennt, da
> bekomme ich zwei oder drei Minuten lang eine Fehleranzeige.
>
> Würde man das in eine Zeitserverfunktion implementieren, könnte dieser
> im Fehlerfall "Stratum 9" melden und die angeschlossenen PCs würden eine
> Zeitübernahme verweigern - wenn sie denn zufällig in diesem Zeitfenster
> stattfände.

Aber das passiert doch erst, wenn DCF für viele Stunden, wenn nicht 
Tage, komplett ausfällt. Solange liefert ein Zeitserver immer eine 
gültige Zeit. Bei einer Schaltsekunde weicht die zunächst um 1 Sekunde 
von UTC ab. Der Fehler wird dann allmählich kleiner. Das ist im 
wirklichen Leben angenehmer als Zeitsprünge, auch wenn's "nur" eine 
Sekunde ist. Google verwendet eine Zeit, bei der der Ausgleich viele 
Stunden dauert. Linux ist mit nur 2000 Sekunden ein wenig hektisch.

Wer mit dem Fehler nicht leben mag, ignoriert die Schaltsekunden und 
rechnet sie erst ganz zum Schluss dazu. Für die lokale Uhr ist das 
eigentlich das einzig Wahre und viel einfacher zu implementieren.

> Beim GPS bin ich unsicher, ich meine, der sendet die unkorrigierte Zeit
> und zusätzlich die Anzahl der Schaltsekunden.

Ja, so ist das.

> die Decoder-Chipsätze für NMEA behandeln das scheinbar intern
> und liefern die korrigierte GMT aus.

Das sollten sie, so sind die Daten definiert. Direkt nach einem 
Kaltstart kennt der Empfänger die Differenz aber nicht. Die wird nur 
alle 12 Minuten gesendet und wenn der Empfang schlecht ist... Was ist 
jetzt besser: garkeine NMEA-Daten oder welche mit ein paar Sekunden 
Fehler? Ich vermute, es gibt solche und solche Empfänger.

> Unabhängig davon: Wie genau kann sowas überhaupt werden? Die Daten des
> Empfängers kommen seriell zum PC, vielleicht noch mit einem USB-Wandler
> dazwischen, das hat undefinierbare Laufzeiten.

Mit einem PPS stört das alles überhaupt nicht. Was damit (und einem 
guten Oszillator) möglich ist, kann man weiter oben in diesem Thread 
lesen.

Ohne PPS kann man eine konstante Laufzeit messen und raus rechnen. Einen 
Teil der Schwankungen auch, nämlich die Rechenzeit, die der Empfänger 
pro Satellit braucht. Dann bleiben aber immer noch eher 20 als 10ms 
Fehler. Aber dann kann man noch mitteln, stunden- und tagelang. Müsste 
ich direkt mal Fehlerkurven malen...

von DerAndereGast (Gast)


Lesenswert?


von Purzel H. (hacky)


Lesenswert?

> Stratum 1

Soweit ich das Konzept verstanden habe ist nur eine Cäsium Uhr Stratum 
1, und alles Abgeleitete, allenfalls Stratum 2. Es geht dabei eben auch 
um den Holdover. Wenn die Referenz weggeht, wieviel laeft dein Stratum 
in welcher Zeit weg.

: 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.