NTP mit Minutenimpuls synchronisieren

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
stw
Beiträge: 5
Registriert: 28.08.2015 16:13:45

NTP mit Minutenimpuls synchronisieren

Beitrag von stw » 06.01.2017 21:58:16

Hi,

ich habe einen Rechner, der seine Zeit über DCF77 bekommt (keine Inetverbindung). Die Zeit wird eigentlich recht schnell gestellt, leider weicht sie aber um ein paar Sekunden ab. Dies ist besonders blöd, weil daneben eine analoge Uhr steht, derren Zeit exakt geht (über einen anderen DCF77-Empfänger, der rund um die Uhr läuft). Diese andere Uhr bekommt einen Minutenimpuls.

Frage: Kann ich in NTP so einen Minutenimpuls einlesen, um die Uhr genau auf die Andere zu synchronisieren?

Gruß
stw

dufty2
Beiträge: 1337
Registriert: 22.12.2013 16:41:16

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von dufty2 » 07.01.2017 07:58:29

Mmmh, denke nicht, daß das geht.

Du hast einen Debian (stable?/tesing?/sid?)-Rechner und an dem hast Du einen DCF77-Empfänger (die es Reichelt oder Conrad etc. gibt) angeschlossen, richtig?
Im NTP-Palaver ist dieser DCF77-Empfänger ein Stratum 0 und Dein Debian-Rechner der dazugehörige Stratum-1 Zeitserver.

Auf der anderen Seite hast Du so 'ne analoge Funkuhr a la Junghans als DCF77-Empfänger, richtig?
Das ist nun ein weiterer Stratum-0 Zeitserver, aber da es "nur" eine analoge Uhr ist und kein Computer, gibt es dort keinen Stratum-1 Zeitserver.

Meines Wissens (kann mich da täuschen) läuft das NTP (da es ein Netzwerkprotokoll ist und so Computer benötigt) nur zwischen Stratum-1 und kleiner (also z. B. Stratum-2, Stratum-3), aber nicht zwischen verschiedenen Stratum-0 und Stratum-1 Servern.

Jana66
Beiträge: 2665
Registriert: 03.02.2016 12:41:11

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von Jana66 » 07.01.2017 13:26:01

Funkuhr:
Obwohl das Zeitsignal kontinuierlich gesendet wird, wird es aus Stromspargründen oft nur ab und zu zum Nachstellen abgefragt. Bei Uhren, die mit größeren Zellen betrieben werden, ist ein Empfang jede volle Stunde üblich, bei Armbanduhren mit Knopfzellen oder mit Solarzellen nur einmal pro Tag, meist zwischen 2:00 und 4:00 Uhr morgens.
https://de.m.wikipedia.org/wiki/Funkuhr
DCF77, nötige Empfangsdauer:
Um zumindest eine korrekte Uhrzeit zu erhalten, bedeutet das für den Anwender einer Funkuhr, dass der Empfang mindestens knapp über 38 Sekunden laufen muss. Von dieser Zeitspanne sind zwei Sekunden (58. Sekunde sowie die Lücke der 59. Sekunde) nötig, damit sich der Empfänger auf den Anfang der neuen Minute synchronisieren kann, sowie 36 Sekunden zum Empfang des Zeittelegramms inklusive des Paritätsbits. Spätestens nach 120 Sekunden störungsfreien Empfangs hätte die Uhr aber alle nötigen Informationen zur Verfügung.
https://de.m.wikipedia.org/wiki/DCF77

Qualität Funksignal, Synchronisationsintervall, systematischer Fehler?

NTP zwischen DCF77-Empfaenger und NTP-Client (PC)? Muss dann wohl ein spezieller DCF77-Empfaenger (mit NTP-Server) sein. Bauen kann man es bzw. wird professionell hergestellt:
http://www.obbl-net.de/dcf77.html
http://www.raspberry-pi-geek.de/Magazin ... Zeitserver
https://www.meinberg.de/german/products ... server.htm
Genauigkeit von Eigenbauten eher fraglich. Kann man wohl besser professionelle NTP-Server im Netz benutzen.

Netz- und Telefonprovider (Takt für Übertragungstechnik erforderlich) nutz(t)en spezielle Technik per GPS mit Dachantennen. Bin schon ne Weile raus aus dem Fach.
Wenn keiner was sagt, wird sich nichts ändern. Wenn alle nur reden ebenfalls nicht.

spiralnebelverdreher
Beiträge: 1058
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von spiralnebelverdreher » 07.01.2017 17:12:11

stw hat geschrieben: ich habe einen Rechner, der seine Zeit über DCF77 bekommt (keine Inetverbindung). Die Zeit wird eigentlich recht schnell gestellt, leider weicht sie aber um ein paar Sekunden ab.
Wie hast du diese Abweichung festgestellt? Direkte visuellen Vergleich der Uhranzeigen? Schwankt die Abweichung oder ist sie konstant?
stw hat geschrieben: Dies ist besonders blöd, weil daneben eine analoge Uhr steht, derren Zeit exakt geht (über einen anderen DCF77-Empfänger, der rund um die Uhr läuft). Diese andere Uhr bekommt einen Minutenimpuls.
Ich weiß natürlich nicht wie deine andere Uhr mit der Uhrzeit versorgt wird und was das für ein Typ ist.

Bei mir in der Küche hängt bspw. so eine DCF77 Wanduhr, die so zwischen 20 und 30 Euro gekostet hat. Diese Uhr hat die Eigenschaft, das DCF77 Signal nur ein oder wenige Mal täglich auszuwerten (wahrscheinlich um Batteriestrom zu sparen) und läuft die meiste Zeit mit ihrem eigenen Quarz. Der Minutenzeiger springt dann am Ende der Minute auf den nächsten Wert. Meinst du das mit Minutenimpuls?

Oder habt ihr eine Werksuhr, die an einer zentralen Uhr (Zentraluhr) hängt? Diese Uhren waren früher bei der Bahn weit verbreitet; sie hatten die Eigenschaft, dass der volle Umlauf des Sekundenzeigers in ca 58s erfolgte (einfacher Elektromotor, kein Quarz) um dann 2s Pause zu machen. Mit dem Minutenpuls der Zentraluhr rückte der Minutenzeiger weiter und der Sekundenzeiger rannte wieder los. Eine gute Genauigkeit war da natürlich zum Minutenbeginn gegeben.
stw hat geschrieben:
Frage: Kann ich in NTP so einen Minutenimpuls einlesen, um die Uhr genau auf die Andere zu synchronisieren?
Das kommt auf den DCF77 Empfänger an. Ich kenne noch die alten Funkuhren, die einen seriellen Ausgang zum Rechner hatten. Auf dem Rechner war ein Programm nötig, das die serielle Schnittstelle abfragte und dann intern die Zeit weiter verwendete (anzeigte, verteilte, ...). Wenn du so etwas hast, brauchst du natürlich einen Treiber für die Schnittstelle und einen ntp Serverprozess auf deinem Rechner.

Heutige DCF77 Empfänger haben einen kleinen Rechner an Bord, der einen ntp Server betreibt und über das ntp-Protokoll die Uhrzeit im lokalen Netz verteilt. Dann muss die IP-Adresse dieses Dienstes den anderen Rechnern im LAN bekannt gemacht werden, wofür es mehrere Methoden gibt (bspw. auch Verteilung über DHCP).

Am besten schaust du mal in die Doku deines DCF77 Empfängers und bei weiteren Fragen postest du weitere Details hier.

dufty2
Beiträge: 1337
Registriert: 22.12.2013 16:41:16

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von dufty2 » 07.01.2017 17:55:40

spiralnebelverdreher hat geschrieben:Meinst du das mit Minutenimpuls?
Vermutlich meint er die Sammlung+Auswertung des DCF77-Signals, welches aufgrund der geringen Bandbreite (1 bit/s) fast eine Minute dauert (näheres siehe Jana's Links).
Die Hoffnung wäre dann, wenn das Signal ständig (sprich minütlich) ausgewertet wird, das der Rechner zeitlich synchron zu der Analoguhr geht.
Wobei noch fraglich ist, ob dies bei der Analoguhr tatsächlich der Fall ist, denn diese "30 € -Junghans-Dinger" machen es - wie Du schon erwähnt hast - ja gar nicht, sondern 1x stündlich oder gar nur 1xtäglich.

Warum allerdings nach der Synchronisation mit dem DCF77 die Rechneruhr einige Sekunden daneben liegt, ist mir ein Rätsel; dachte, der Abstand wäre viel, viel geringer.
Habe aber selbst keine Stratum-0 bzw. Stratum-1 Uhr.

spiralnebelverdreher
Beiträge: 1058
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von spiralnebelverdreher » 07.01.2017 18:21:09

dufty2 hat geschrieben:
spiralnebelverdreher hat geschrieben:Meinst du das mit Minutenimpuls?
Vermutlich meint er die Sammlung+Auswertung des DCF77-Signals, welches aufgrund der geringen Bandbreite (1 bit/s) fast eine Minute dauert (näheres siehe Jana's Links).
Die Hoffnung wäre dann, wenn das Signal ständig (sprich minütlich) ausgewertet wird, das der Rechner zeitlich synchron zu der Analoguhr geht.
Wobei noch fraglich ist, ob dies bei der Analoguhr tatsächlich der Fall ist, denn diese "30 € -Junghans-Dinger" machen es - wie Du schon erwähnt hast - ja gar nicht, sondern 1x stündlich oder gar nur 1xtäglich.

Warum allerdings nach der Synchronisation mit dem DCF77 die Rechneruhr einige Sekunden daneben liegt, ist mir ein Rätsel; dachte, der Abstand wäre viel, viel geringer.
Habe aber selbst keine Stratum-0 bzw. Stratum-1 Uhr.
Der Abstand ist viel geringer, sobald der DCF77 Empfänger mehrere Minuten ununterbrochen guten Empfang hat. Auch wenn der Empfang mal weg geht oder der DCF77 Sender wegen Wartunsgarbeiten oder Gewitter abgeschaltet wird, merkst du sehr wenig davon. Wirklich gute DCF77 Empfänger haben eine sehr genaue, temperierte interne Quarz-Uhr (oder noch was besseres) mit einer internen Ungenauigkeit im niedrigen einstelligen Sekundenbereich pro Jahr. Ihren internen ntp Server versorgen sie mit dieser Zeit und der DCF77 Empfänger dient der Kontrolle und dem Fein-Tuning der Uhrzeit.

Ich vermute die Probleme des Thread-Owners an anderer Stelle: Er bezieht seine Uhrzeit nicht wirksam vom DCF77 Empfänger, obwohl die Kabel alle an den richtigen Stellen eingesteckt sind.

stw
Beiträge: 5
Registriert: 28.08.2015 16:13:45

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von stw » 07.01.2017 18:57:33

Der Empfang des DCF77-Signals gehts über ein Conrad-Modul, dass an den Rechner angeschlossen ist.
spiralnebelverdreher hat geschrieben:Wie hast du diese Abweichung festgestellt? Direkte visuellen Vergleich der Uhranzeigen?
Korrekt. Die Sekunden nähern sich immer mehr an, aber das dauert sehr lange (2h und mehr).
spiralnebelverdreher hat geschrieben: Oder habt ihr eine Werksuhr, die an einer zentralen Uhr (Zentraluhr) hängt? Diese Uhren waren früher bei der Bahn weit verbreitet; sie hatten die Eigenschaft, dass der volle Umlauf des Sekundenzeigers in ca 58s erfolgte (einfacher Elektromotor, kein Quarz) um dann 2s Pause zu machen. Mit dem Minutenpuls der Zentraluhr rückte der Minutenzeiger weiter und der Sekundenzeiger rannte wieder los. Eine gute Genauigkeit war da natürlich zum Minutenbeginn gegeben.
Richtig, hier hängt eine Nebenuhr, die von einer zentralen Mutteruhr ihren Minutenimpuls bekommt. Diesen würde ich gerne zur Synchronisation benutzen.

cosmac
Beiträge: 4551
Registriert: 28.03.2005 22:24:30

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von cosmac » 07.01.2017 19:16:15

hi,

Also alles ganz normal. Es gibt jede Minute ein elektrisches Signal. Dann würde ich versuchen, dieses Signal mit einem kleinen passiven Adapter in den Rechner zu bringen
Bild
Die beiden Widerstände müssen natürlich zur Signalspannung passen, die Polarität spielt keine Rolle, auch abwechselnd + und - geht.

Das Teil liefert am /dev/ttyxxx jede Minute ein oder mehrere zufällige Zeichen ab. Wahrscheinlich kann man die Baudrate so einstellen, dass genau ein Zeichen ankommt. Ein Programm kann so den Minutenbeginn auf ca. 1/10 Sekunde genau erfahren. Die restliche Zeitinformation bekommt man per clock_gettime(2) oder per sysfs von der RTC. Die muss einmal von Hand auf ±29 Sekunden genau gestellt werden. Damit kann das Programm synchron zum Impuls die absolute Zeit an den ntpd übergeben.

Das geht wahrscheinlich über den parse-Treiber am einfachsten. Der erwartet einmal pro Sekunde eine Zeile Text mit Datum und Uhrzeit. Den Text zu erzeugen ist trivial. Die Übergabe kann per pseudo-tty und evt. socat erfolgen. Die Frage ist, ob der ntpd mit den fehlenden 59 Meldungen klar kommt. Aber auch die müsste man aus der Systenzeit ausreichend genau erzeugen können.
Beware of programmers who carry screwdrivers.

dufty2
Beiträge: 1337
Registriert: 22.12.2013 16:41:16

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von dufty2 » 07.01.2017 19:53:55

Cooler post, cosmac, Hut ab!

Als Nicht-Bastler würde ich, wenn's mit DCF77 nicht hinhaut, mit GPS probieren.
Und wenn das auch nicht geht, 'ne echte Atomuhr.
Sollen jetzt auch gar nicht mehr so teuer sein.
;)

cosmac
Beiträge: 4551
Registriert: 28.03.2005 22:24:30

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von cosmac » 07.01.2017 20:22:02

dufty2 hat geschrieben:Cooler post...
Als Nicht-Bastler würde ich, wenn's mit DCF77 nicht hinhaut, mit GPS probieren.
Danke!
Aber USB-GPS-Maus auspacken, einstecken, geht -- wie langweilig! Na gut, das nächste Fenster sollte nicht weiter als 5 bis 10m vom Rechner entfernt sein.
Beware of programmers who carry screwdrivers.

stw
Beiträge: 5
Registriert: 28.08.2015 16:13:45

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von stw » 07.01.2017 20:35:16

Hi cosmac,

zu deiner Lösung: kann ich weiterhin einen DCF77-Empfänger betreiben, denn die Minuten weichen schon nach ein paar Tagen Stillstand ab, und kann ich dafür nicht belegte Adern der seriellen Schnittstelle, an der der DCF77-Empfänger hängt, nutzen (Einplatinenrechner, hab nur eine für den Empfang frei)?

Jana66
Beiträge: 2665
Registriert: 03.02.2016 12:41:11

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von Jana66 » 07.01.2017 20:52:18

stw hat geschrieben:Der Empfang des DCF77-Signals gehts über ein Conrad-Modul, dass an den Rechner angeschlossen ist.
cosmac hat geschrieben:... nicht belegte Adern der seriellen Schnittstelle, an der der DCF77-Empfänger hängt, nutzen (Einplatinenrechner, hab nur eine für den Empfang frei)?
Nach etlichen Threadantworten mit "vermutlich" sollte man mittlerweile auf die Idee kommen, genauer zu beschreiben, wenigstens das Zitierte. Links auf Datenblätter im Netz und ASCII-Skizzen sind hilfreich. :wink:
Wenn keiner was sagt, wird sich nichts ändern. Wenn alle nur reden ebenfalls nicht.

spiralnebelverdreher
Beiträge: 1058
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von spiralnebelverdreher » 07.01.2017 21:22:39

stw hat geschrieben:Der Empfang des DCF77-Signals gehts über ein Conrad-Modul, dass an den Rechner angeschlossen ist.
spiralnebelverdreher hat geschrieben:Wie hast du diese Abweichung festgestellt? Direkte visuellen Vergleich der Uhranzeigen?
Korrekt. Die Sekunden nähern sich immer mehr an, aber das dauert sehr lange (2h und mehr).
Aber nach den 2h bleibt der Unterschied konstant sehr gering? Das wäre ein gutes Zeichen. Wenn nach 2h alles ok ist, wo ist dann das Problem? Oder ist das Problem, dass es nach dem Kaltstart des Rechners immer etwa 2h dauert bis die Uhrzeiten abgeglichen sind?
Ich weiß nicht, ob du dich mit der Arbeitsweise eines ntp-Servers und eines ntp-Clients mal näher beschäftigt hast. Solltest du aber auf jeden Fall tun bevor du zum Lötkolben greifst. Der ntp-Client fragt (sehr vereinfacht gesagt) den ntp-Server regelmäßig nach der der Uhrzeit und vergleicht diese mit der eigenen Uhrzeit. Bei Abweichungen stellt er seinen eigene Uhr etwas schneller oder langsamer ein, mit dem Ziel, irgendwann fast gar nichts mehr nachstellen zu müssen. So weit so einfach, aber im realen Leben ist es viel komplizierter: Die Laufzeit der Uhrzeitinformation im IP-Netzwerk ist nicht konstant, die Uhrzeit des Clients hängt auch der Temperatur seiner Hardware ab usw. Deshalb nimmt der Client immer nur geringe Änderungen vor, um nicht dauernd von zu schnell auf zu langsam auf zu schnell zu wechseln. Bei der Erstsynchronisation führt das dann zu einer langsamen Annäherung der Uhrzeiten. Das ist aber nicht gottgegeben, sondern kann durch gezielte Änderung von Konfigurationsparametern (wie häufig werden Uhrzeiten verglichen? Wie groß ist die maximale Änderung?, ...) beeinflusst werden. Man sollte da aber wissen, was man tut. Sonst holt man sich damit Verschlechterungen an anderer Stelle herein.

BTW, Kannst du das Modul von Conrad mal hier verlinken?
stw hat geschrieben:
spiralnebelverdreher hat geschrieben: Oder habt ihr eine Werksuhr, die an einer zentralen Uhr (Zentraluhr) hängt? Diese Uhren waren früher bei der Bahn weit verbreitet; sie hatten die Eigenschaft, dass der volle Umlauf des Sekundenzeigers in ca 58s erfolgte (einfacher Elektromotor, kein Quarz) um dann 2s Pause zu machen. Mit dem Minutenpuls der Zentraluhr rückte der Minutenzeiger weiter und der Sekundenzeiger rannte wieder los. Eine gute Genauigkeit war da natürlich zum Minutenbeginn gegeben.
Richtig, hier hängt eine Nebenuhr, die von einer zentralen Mutteruhr ihren Minutenimpuls bekommt. Diesen würde ich gerne zur Synchronisation benutzen.
Synchronsiation? Ich habe da meine Zweifel, ob das so einfach geht. Erstens ist der Minutenimpuls nicht uhrzeitbehaftet. Du siehst nur, dass sich ein Minutenwert ändert. Du weißt aber nicht, ob deine Uhr im Rechner der Zentraluhr 3 Minuten hinterher oder 5 Minuten voraus läuft. So eine primitive Synchronisation setzt voraus, dass die Uhrzeit schon auf etwa +/- 20s genau abgeglichen sind. Wie stellst du das sicher?
Zweitens musst du dann heftigst an deinem ntp-Client (oder an einem eigenen ntp-Server) herumprogrammieren, damit er auf die Minutentakte der seriellen Schnittstelle hört.
Drittens würde ich mir die Signalqualität des Minutentaktes mal mit einem Speicher-Oszilloskop anschauen: Wie ist die Flankensteilheit des Signals? Gibt es Störungen wie Rauschen oder Brummen auf der Leitung?

Insgesamt würde ich von Cosmacs Idee einer HW-Lösung (Optokoppler) abraten. Das geht deutlich einfacher.

stw
Beiträge: 5
Registriert: 28.08.2015 16:13:45

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von stw » 07.01.2017 21:23:11

Modul von Conrad (641138), beschaltet nach http://linuxwiki.de/EigenbauFunkuhr

Code: Alles auswählen

Rechner (ttyS)-----------------------------------------DCF77-Empfänger
                                        |----------Minutenimpuls einspeisen

MSfree
Beiträge: 2636
Registriert: 25.09.2007 19:59:30

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von MSfree » 07.01.2017 22:09:16

stw hat geschrieben:Modul von Conrad (641138), beschaltet nach http://linuxwiki.de/EigenbauFunkuhr
Die Anleitung kenne ich. Dort wird aber nur der Sekundenpuls des DCF-Empfängers genutzt, um den NTP zu synchronisieren. Ohne einen NTP-Server, der die Absolutzeit liefert, funktioniert das nicht.

Der NTP-Dienst unter Linux kann das DCF-Signal nicht dekodieren und die Uhrzeit aus dem Bitmuster des Signals heraus lesen. Wenn man dann letztlich doch einen Internet-NTP-Server ansprechen muß, ist der Sinn eines DCF-Empfängers ziemlich begrenzt.

Ich habe mir ein kleines C-Programm geschrieben, das das Bitmuster aus dem o.g. DCF-Empfängers, der an die GPIO-Pins eines Raspis angeschlossen wird, dekodiert.

Antworten