project:hgg:timing_and_synchronization:dcf77
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
project:hgg:timing_and_synchronization:dcf77 [2011-12-29 19:01] – reloc0 | project:hgg:timing_and_synchronization:dcf77 [2011-12-30 10:12] – reloc0 | ||
---|---|---|---|
Zeile 65: | Zeile 65: | ||
Then it does not realise the minute ended at all... | Then it does not realise the minute ended at all... | ||
+ | |||
+ | ===== And now for some nice imagery ===== | ||
+ | |||
+ | images of the signal we expected (top line) and the signal we got (bottom one) can be found in this schematic. | ||
+ | |||
+ | {{: | ||
====== Description of the Algorithm ====== | ====== Description of the Algorithm ====== | ||
Zeile 86: | Zeile 92: | ||
In the running phase we wait for the DOWN edge of the signal. If it's within the predicted timeframe we assume it's a valid peak. A state transition to a state that detects the zero. | In the running phase we wait for the DOWN edge of the signal. If it's within the predicted timeframe we assume it's a valid peak. A state transition to a state that detects the zero. | ||
- | ===== Zero phase ===== | + | ===== ZERO-Detection Phase ===== |
+ | |||
+ | In this phase over a time of about 80 msecs reading the signal for 15 times is tried. Thus we can find out if the down edge was just a short peak that was randomly in the predicted time. This solves FAIL#1 (partly) and FAIL#2. It then goes to a ONE-Detection-Phase. It basically makes the signal sampling robust against peaks within the 100 msec time the signal should be down. | ||
+ | |||
+ | |||
+ | ===== ONE-Detection Phase ===== | ||
+ | |||
+ | In this phase the same as in the ZERO-Detection phase but if it detects the signal to be down in most samples for this timeframe, we note that we got a ONE-bit here, otherwise we got a ZERO-bit. | ||
+ | |||
+ | |||
+ | ===== The minute break ===== | ||
+ | |||
+ | If the peak was once ommited, we have a minute break. When the minute break comes up, we can decode the time for the current minute. | ||
+ | |||
+ | |||
+ | |||
+ | ===== About the algorithm | ||
+ | |||
+ | I don't think you'll get it from the explanation, | ||
- | In this phase over a time of about 80 msecs reading the signal for 20 times is tried. Thus we can find out if the down edge was just a short peak that was randomly in the predicted time. This solves fail #2 | ||
+ | ===== Code ===== | ||
+ | The code can be found in the [[https:// | ||
- | to be continued | ||
project/hgg/timing_and_synchronization/dcf77.txt · Zuletzt geändert: 2012-05-12 17:44 von 93.231.147.84