DCF77 fragen - Meinberg Emulator

Ich hab mir einen DCF77 Empfänger fürs Netzwerk gebastelt.
Bei mir läuft ein Hyper-V Server 2016 mit verschiedenen virtuellen Maschinen (z.B. FreeSWITCH, pfSense, Debian, Windows 8.1) und ich habe den Empfänger am COM Port des Motherboards angeschlossen.

Verwendet habe ich:
HKW EM2S DCF Receiver
HKW 77,5kHz 10x100mm Antenne
MAX3232 RS232 TTL Converter

Auf dem Hyper-V Server habe ich installiert:
Meinberg Treiber dkwin-3-06-99-13.exe
Meinberg NTP ntp-4.2.8p10-win32-setup.exe

Es kommt Udo Klein's DCF77 decoder library zum Einsatz:

Soweit funktioniert das schon mal :slight_smile:
Hab aber noch ein Nokia Display bestellt das noch dran soll.

Leider finde ich keine genau Erklärung darüber was bestimmt Dinge genau sind, darstellen, wann welcher Fall eintritt bzw was es aussagt wenn eine bestimmte LED leuchtet/blinkt.

Da wären:

  1. dcf77_monitor_pin
  2. dcf77_signal_good_indicator_pin
  3. Clock::useless
  4. Clock::dirt
  5. Clock::synced
  6. Clock::locked

Dann wäre da noch die Sache mit den leap second's (Schaltsekunde).
Wie oft empfängt die DCF77 library denn das Signal?
Weil bei Wikipedia steht:

Das Zeitsignal DCF77 enthält die Information, ob am Ende der laufenden Stunde eine (positive) Schaltsekunde einzufügen ist. Wenn eine Funkuhr in diesem Zeitraum das Zeitsignal empfängt, so könnte theoretisch eine korrekte Darstellung erfolgen. Allerdings ist es bei Funkuhren durchaus üblich, das Zeitsignal deutlich seltener zu empfangen (etwa einmal pro Tag), sodass auch hier meist kein Empfang der Schaltsekunde erfolgt. In diesem Fall bleibt die Schaltsekunde zunächst unberücksichtigt, sodass die Uhr zwischen 23:59:59 und dem nächsten Zeitzeichenempfang um eine Sekunde vor geht.

MrGlasspoole:
Dann wäre da noch die Sache mit den leap second's (Schaltsekunde).
Wie oft empfängt die DCF77 library denn das Signal?
Weil bei Wikipedia steht:

Es gibt ungefähr EINE Schaltsekunde alle 18 bis 24 Monate.

Das Schaltsekunden-Bit wird nur in der letzten Stunde vor der Schaltsekunde einmal pro Minute gesendet.

Das ist schon klar.
Ich bezog mich ja hierauf:

Allerdings ist es bei Funkuhren durchaus üblich, das Zeitsignal deutlich seltener zu empfangen (etwa einmal pro Tag).

Und ich hab noch nicht begriffen wie oft die DCF77 decoder library empfängt/abgleicht.

EDIT
Nach Beobachtung des Meinberg Radio Clock Monitor's würde ich sagen der Arduino gleicht die Zeit einmal pro Minute mit Mainflingen ab. Last Sync (last synchronization of the radio clock) springt jede volle Minute um.

Das DCF77 Signal besteht aus einem Impuls je Sekunde (Absenkung der Amplitude des Trägerfrequenz auf 15%) der kurz (100mS) oder lang (200mS) sein kann und 0 oder 1 darstellt. Das 59 Sekundensignal fehlt.
Darum kann ein Empfänger/Decoder die Signale kontinuierlich decodieren/updaten.

Die Bibliothek von Jurs Udo kann bei schlechtem Empfang die weigen Bits die durchkommen so interpretieren daß dennoch das Zeitsignal decodiert werden kann.

Oft verwendet man das DCF77 Signal um eine RTC zu synchronisieren da diese mit viel weniger Strom auskommt als der DCF77 Empfänger. So spart man vor allem bei Batteriebetrieb Strom, wenn der Empfänger nur zur Synchronisierung nur alle Stunde / Tag eingeschltet wird. Die meisten RTC sind so prezise damit der Fehler zwischen 2 synchronisationen klein bleibt (max einige Sekunden).

Grüße Uwe

Wer ist Jurs?

Und das was du jetzt beschrieben hast hab ich mir jetzt nach einigem lesen auch gedacht - also die sache mit dem Batteriebetrieb in Bezug auf die Wiki aussage.

Jetzt schreibst du aber "Darum kann ein Empfänger/Decoder die Signale kontinuierlich decodieren/updaten."

Nun aktualisiert sich "last sync" im Meinberg Radio Clock Monitor aber nur jede Minute.
In den Beispielen zur library sehe ich dafür aber keine Einstellung.
Nicht das für den Heimgebrauch genauer sein müsste, aber wie es funktioniert interessiert mich trotzdem :slight_smile:

MrGlasspoole:
Wer ist Jurs?

der User der Dir in #1 geantwortet hat.

Nun aktualisiert sich “last sync” im Meinberg Radio Clock Monitor aber nur jede Minute.

Vieleicht solltest Du Dir klar werden wie das Zeitsignal vom DCF77 gesendet wird.

Grüße Uwe

Ist Jurs der Udo?

uwefed:
Vieleicht solltest Du Dir klar werden wie das Zeitsignal vom DCF77 gesendet wird.

Das dachte ich hätte ich begriffen nachdem ich das gelesen hatte:
http://www.heret.de/funkuhr/signal.htm

Dort steht:

Die Daten die in der aktuellen Minute eingelesen werden, beziehen sich immer auf die folgende Minute. Die 0. Sekunde bedeutet nur, daß jetzt die Minute angefangen hat.

Und das hab ich so interpretiert das jede Minute abgeglichen wird?

Du schreibst:

Darum kann ein Empfänger/Decoder die Signale kontinuierlich decodieren/updaten.

Und kontinuierlich hört sich für mich nach Echtzeit/durchgehend/sekündlich an?

Um die Zeit zu kennen mussen die Bits 20-35 empfangen worden sein. Diese kommen in dem Impuls der 20. bis 35. Sekunde einer Minute daher. Der Impuls der 59 Sekunde fehlt. Um alle Bits zu empfangen braucht es 1 Minute (59 +1 fehlender Impuls)

Darum bekommt man den gesamten Zeit und Datumsdatensatz nach 60 Sekunden oder einmal die Minute.
Natürlich kann man die Sekundenimpulse von Anfang der Minute zählen und so auch die Sekunden kennen aber die Informationen kommen nur einmal pro Minute.

Kontinuierlich verstehe ich, daß der Dekoder alle Impulse lauscht und so seine Daten fast jede Sekunde updatet. Er könnte auch 1 Zeitsynchronisation eingeschaltet sein, eine RTC stellen und dann für einen gewisse Zeit ausgeschalten werden.

Für bestimmte Informationen wie zB die Wetterprognose braucht es mehrere Minuten da die Information innerhalb mehrerer Minuten gesendet wird. Die Tabelle die Du zitierst ist veraltet. Bits 1-14 werden seit 2007 anders benutzt. DCF77 – Wikipedia

Grüße Uwe

MrGlasspoole:
Nun aktualisiert sich "last sync" im Meinberg Radio Clock Monitor aber nur jede Minute.
In den Beispielen zur library sehe ich dafür aber keine Einstellung.

Inwiefern ist das ein Problem?
Der dcf77 Sender sendet exakt ein Zeittelegramm pro Minute.

Und die meisten dcf-Empfangsprogramme dürften so arbeiten:
-wenn ein gültiges Zeittelegramm empfangen wurde==>aktualisiere die Zeit

Bei einwandfreiem Empfang ist das einmal pro Minute der Fall, und zwar exakt auf die volle Minute mit Sekunde null.

Es ist kein Problem. Es ging rein darum es richtig zu verstehen.

Jetzt muss ich nochmal fragen weil Uwe schrieb: “Die Bibliothek von Jurs”
Jurs = Udo?

Nein. Da hat Uwe einen Fehler gemacht. Die Bibliothek ist von Udo Klein:

Das weiß ich da ich seinen Blinkenlighty gekauft hab und ja eben diese Bibliothek (von Udo) verwende.

Kann mich noch jemand darüber aufklären was diese Zeilen genau aussagen:

  1. dcf77_monitor_pin
  2. dcf77_signal_good_indicator_pin
  3. Clock::useless
  4. Clock::dirty
  5. Clock::synced
  6. Clock::locked

MrGlasspoole:
Das weiß ich da ich seinen Blinkenlighty gekauft hab und ja eben diese Bibliothek (von Udo) verwende.

Entschuldigt; da habe ich Blödsinn gemacht.
Jurs ist nicht Udo Klein.
Grüße Uwe

Es sei dir verziehen :stuck_out_tongue:

Da bin ich aber erleichtert. :wink: :wink: :cold_sweat: