NTP mit Minutenimpuls synchronisieren

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
cosmac
Beiträge: 4551
Registriert: 28.03.2005 22:24:30

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von cosmac » 07.01.2017 22:34:16

stw hat geschrieben:die Minuten weichen schon nach ein paar Tagen Stillstand ab
Modul von Conrad (641138)
Frage: Kann ich in NTP so einen Minutenimpuls einlesen, um die Uhr genau auf die Andere zu synchronisieren?
Nein. Bzw. "kann" schon, aber es bringt nichts. Der ntpd verstellt die Rechneruhr immer so langsam, egal, ob er DCF oder den Minutenimpuls benutzt. Wenn du die Rechneruhr zu Anfang direkt richtig stellen willst, muss die genaue, absolute Zeit ja irgendwo her kommen (DCF, GPS, TCXO, ...). Also brauchst du den Minutenimpuls nicht mehr. Außerdem ist der Minutenimpuls per Definition genauso genau wie dein DCF.

Das Problem ist ja die schlechte Rechneruhr kombiniert mit dem sehr langen Stillstand. Deswegen nützt auch ein einfacher GPS-Empfänger nichts, der braucht nach mehreren Tagen ohne Strom auch ein paar Minuten, genau wie DCF. Und so lange darf der Rechner eigentlich nicht starten (mitten im Betrieb möchte man die Uhr nicht um Minuten auf einmal verstellen).

Gut wäre ein Empfänger, der nicht ausgeschaltet wird. Der kann sofort die richtige Zeit liefern. Oder ein Empfänger mit gutem Quarz und Batterie. Der liefert direkt nach dem Einschalten seine Quarz-Zeit und synchronisiert sich gemütlich im Hintergrund. Oder du spendierst dem Rechner eine gute Uhr mit Batterie. Für manche Einplatinenrechner gibt es kleine steckbare Module, sogar mit TCXO.
Beware of programmers who carry screwdrivers.

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 23:15:02

cosmac hat geschrieben:
stw hat geschrieben:die Minuten weichen schon nach ein paar Tagen Stillstand ab
Modul von Conrad (641138)
Frage: Kann ich in NTP so einen Minutenimpuls einlesen, um die Uhr genau auf die Andere zu synchronisieren?
Das Problem ist ja die schlechte Rechneruhr kombiniert mit dem sehr langen Stillstand. Deswegen nützt auch ein einfacher GPS-Empfänger nichts, der braucht nach mehreren Tagen ohne Strom auch ein paar Minuten, genau wie DCF. Und so lange darf der Rechner eigentlich nicht starten (mitten im Betrieb möchte man die Uhr nicht um Minuten auf einmal verstellen)
Wenn die genaue Uhrzeit von Anfang an wichtig ist muss man halt ein paar Euronen spendieren für eine Lösung, die das erfüllt ("always on", batteriegepufferte CMOS-Uhr, ...) bzw. wenn man dieses Geld nicht ausgeben kann / will, dann muss man den Hochlauf des Gerätes so gestalten, dass erst nach erfolgter Uhrzeitsynchronisation die kritischen Anwendungen gestartet werden. Was aber dann auch dazu führen kann, dass die Anwendung sehr lange nicht gestartet wird (DCF Signal schlecht oder ganz weg wegen Wartung des Senders).

Mir ist mit dem geposteten Link nicht klar, was denn an der seriellen Schnittstelle übergeben wird und vor allem welches Programm denn dies auswertet. Hast du da weitere Infos?

Noch eine selbst erlebte Geschichte zum Thema DCF77 und Signalqualität: Wir hatten nach Einbau einer neuen Heizung den Effekt, dass morgens manchmal die Vorlauftemperatur deutlich zu kühl war. Das Steuerungsdiplay ging davon, dass es mitten in der Nacht war. Ich hab die Uhrzeit dann korrigiert und gut war. Einige Tage war die Uhrzeit wieder falsch, wieder korrigiert. Das wiederholte sich mehrfach. Besonders merkwürdig war, dass die Abweichungen immer ganz Stunden waren. Die Minutenwerte stimmten immer. Ich hab dann mal nachgeforscht, und tatsächlich hatte die Heizungssteuerung einen DCF77 Empfänger und die Leitung zum Außentemperaturfühler war die Antenne. Diese Leitung ging am Waschkeller vorbei und der Elektrosmog eines Waschmaschinenmotors wurde dann vom DCF77 Empfänger als Uhrzeit interpretiert. Ich habe den DCF77 Teil in der Heizung dann abgestellt und die Probleme waren weg. Nachteil: Automatische Umstellung Sommer/Winterzeit ist damit auch weg.

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

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von cosmac » 08.01.2017 01:33:50

spiralnebelverdreher hat geschrieben:Mir ist mit dem geposteten Link nicht klar, was denn an der seriellen Schnittstelle übergeben wird und vor allem welches Programm denn dies auswertet. Hast du da weitere Infos?
meinst du diesen?
stw hat geschrieben:Modul von Conrad (641138), beschaltet nach http://linuxwiki.de/EigenbauFunkuhr
Dort wird direkt der ntpd selbst benutzt, d.h. sein spezieller refclock-Treiber, der die DCF-Rohdaten dekodieren kann. Dem werden die einzelnen Bits der DCF-Daten übergeben (100ms = 0, 200ms = 1). Die kommen direkt aus dem AM-Demodulator des Empfängers. Das Programm muss die filtern und die Impulslänge ermitteln und z.B. entscheiden ob ein 150ms-Impuls eher eine 1 oder eine 0 war. Wenn die Entscheidung falsch war und das zweimal passiert, kommt eine falsche Zeit raus. Wenn es den Impuls sicherheitshalber ignoriert, gehen erstmal die Daten einer ganzen Minute verloren. Na gut, ein Bit kann man aus den Nachbar-Minuten rekonstruieren. Man kann da beliebig viel Aufwand treiben, damit es auch bei mäßigem Empfang noch funktioniert.

Viel wichtiger ist eine gute Fehlererkennung, die nicht nur die drei Parity-Bits nutzt sondern die ganze Redundanz der Daten. Man weiß ja z.B. im Voraus, wie sich zwei aufeinander folgende Minuten unterscheiden müssen. Nach meiner Erfahrung macht dieser ntpd-Treiber den Job nicht besonders gut.

Mein schönstes DCF-Erlebnis: auf einem kleinen Bahnhof gibt es drei Uhren mit je einem eigenen DCF-Empfäger. Alle drei zeigen unterschiedliche Zeiten an :)
Beware of programmers who carry screwdrivers.

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

Re: NTP mit Minutenimpuls synchronisieren

Beitrag von dufty2 » 08.01.2017 08:55:15

MSfree hat geschrieben:
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.
Mmmh, das glaube ich so jetzt nicht ;)
Wenn ich mir die debian/rules vom ntp-Paket anschaue, so steht da

Code: Alles auswählen

--enable-all-clocks --enable-parse-clocks --enable-SHM
Ein configure-Testlauf zeigt auch

Code: Alles auswählen

checking Meinberg clocks... yes
checking DCF77 raw time code... yes
Wenn ich stw richtig verstanden habe, hat sein Einplatinencomputer keine Internetverbindung und auch keine Realt-Time-Clock (RTC), also quasi ein raspi.
Er würde dann überhaupt keine Zeiteinstellung bekommen, wenn Du recht hättest ;)

Antworten