Difference between revisions of "Protocol decoder:Dcf77"
Uwe Hermann (talk | contribs) m |
m (Copy edited (e.g. e.g. <http://english.stackexchange.com/questions/15953>).) |
||
(10 intermediate revisions by one other user not shown) | |||
Line 2: | Line 2: | ||
| id = dcf77 | | id = dcf77 | ||
| name = DCF77 time protocol | | name = DCF77 time protocol | ||
| description = European longwave time signal (77. | | description = European longwave time signal (77.5 kHz carrier signal) | ||
| status = | | status = supported | ||
| license = GPLv2+ | | license = GPLv2+ | ||
| source_code_dir = dcf77 | | source_code_dir = dcf77 | ||
Line 10: | Line 10: | ||
| output = dcf77 | | output = dcf77 | ||
| probes = DATA | | probes = DATA | ||
| optional_probes = | | optional_probes = — | ||
| options = — | | options = — | ||
}} | }} | ||
The '''dcf77''' protocol decoder supports the [http://en.wikipedia.org/wiki/DCF77 DCF77] | The '''dcf77''' protocol decoder supports the [http://en.wikipedia.org/wiki/DCF77 DCF77] European longwave time signal (77.5 kHz carrier signal). | ||
== Hardware == | == Hardware == | ||
=== DCF77 on the Pollin DCF1 module === | === DCF77 on the Pollin DCF1 module === | ||
The [http://sigrok.org/gitweb/?p=sigrok-dumps.git;a=tree;f=dcf77/pollin_dcf1_module dcf77/pollin_dcf1_module] directory in sigrok-dumps contains a set of example captures of a DCF77 signal. The hardware used for receiving the signal is a [http://www.pollin.de/shop/dt/NTQ5OTgxOTk-/Bausaetze_Module/Module/DCF_Empfangsmodul_DCF1.html Pollin DCF1] module (3. | The [http://sigrok.org/gitweb/?p=sigrok-dumps.git;a=tree;f=dcf77/pollin_dcf1_module dcf77/pollin_dcf1_module] directory in sigrok-dumps contains a set of example captures of a DCF77 signal. The hardware used for receiving the signal is a [http://www.pollin.de/shop/dt/NTQ5OTgxOTk-/Bausaetze_Module/Module/DCF_Empfangsmodul_DCF1.html Pollin DCF1] module (3.3 V supply). The Pollin order number for the module is 810 054. | ||
The dumps were made January 9, 2012 in the evening/night. Only the dcf77_480s_pon_interrupted.sr dump was made January 10, 2012 in the evening. | The dumps were made January 9, 2012 in the evening/night. Only the dcf77_480s_pon_interrupted.sr dump was made January 10, 2012 in the evening. | ||
The logic analyzer used was a [[Saleae Logic]] (at | The logic analyzer used was a [[Saleae Logic]] (at 1 MHz). | ||
'''Probe setup:''' | '''Probe setup:''' | ||
Line 54: | Line 51: | ||
File:Pollin dcf1 dcf77 module probing1.jpg | File:Pollin dcf1 dcf77 module probing1.jpg | ||
File:Pollin dcf1 dcf77 module probing2.jpg | File:Pollin dcf1 dcf77 module probing2.jpg | ||
File:Pollin dcf1 dcf77 module | File:Pollin dcf1 dcf77 module probing3.jpg | ||
</gallery> | </gallery> | ||
== Protocol == | == Protocol == | ||
=== Time code interpretation (taken from Wikipedia) === | |||
The time is represented in binary-coded decimal (BCD). It represents civil time, including summer time adjustments. The time transmitted is the time of the ''following'' minute; e.g. during December 31 23:59, the transmitted time encodes January 1 00:00. | |||
<small> | |||
{|class=wikitable style="text-align:center" | |||
|+ | |||
!rowspan=2| Bit ||colspan=2| Weight ||rowspan=2| Meaning | |||
|rowspan=22| | |||
!rowspan=2| Bit ||colspan=2| Weight ||rowspan=2| Meaning | |||
|rowspan=22| | |||
!rowspan=2| Bit ||colspan=2| Weight ||rowspan=2| Meaning | |||
|- | |||
! PM || AM || PM || AM || PM || AM | |||
|- | |||
|bgcolor=#ffccff| :00 ||bgcolor=#ffccff| 1 ||bgcolor=#ffccff| M ||bgcolor=#ffccff| Start of minute. Always 0. | |||
|bgcolor=#ffccff| :20 ||colspan=2 bgcolor=#ffccff| S ||bgcolor=#ffccff| Start of encoded time. Always 1. | |||
|bgcolor=#ccffcc| :40 ||colspan=2 bgcolor=#ccffcc| 10 ||rowspan=2 bgcolor=#ccffcc|Day of month (continued) | |||
|- | |||
| :01 ||bgcolor=#ffccff| 1 ||colspan=2 rowspan=14| Civil warning bits, provided by the<br>''Bundesamt für Bevölkerungsschutz<br>und Katastrophenwarnung'' (Federal Office<br>of Civil protection and Disaster Relief).<br>Also contains weather broadcasts. | |||
|bgcolor=#ffffcc| :21 ||colspan=2 bgcolor=#ffffcc| 1 ||rowspan=7 bgcolor=#ffffcc| Minutes<br>00–59 | |||
|bgcolor=#ccffcc| :41 ||colspan=2 bgcolor=#ccffcc| 20 | |||
|- | |||
| :02 ||bgcolor=#ffccff| 1 | |||
|bgcolor=#ffffcc| :22 ||colspan=2 bgcolor=#ffffcc| 2 | |||
|bgcolor=#ccffcc| :42 ||colspan=2 bgcolor=#ccffcc| 1 ||rowspan=3 bgcolor=#ccffcc| Day of week<br>Monday=1, Sunday=7 | |||
|- | |||
| :03 ||bgcolor=#ffccff| 1 | |||
|bgcolor=#ffffcc| :23 ||colspan=2 bgcolor=#ffffcc| 4 | |||
|bgcolor=#ccffcc| :43 ||colspan=2 bgcolor=#ccffcc| 2 | |||
|- | |||
| :04 ||bgcolor=#ffccff| 1 | |||
|bgcolor=#ffffcc| :24 ||colspan=2 bgcolor=#ffffcc| 8 | |||
|bgcolor=#ccffcc| :44 ||colspan=2 bgcolor=#ccffcc| 4 | |||
|- | |||
| :05 ||bgcolor=#ffccff| 1 | |||
|bgcolor=#ffffcc| :25 ||colspan=2 bgcolor=#ffffcc| 10 | |||
|bgcolor=#ccffcc| :45 ||colspan=2 bgcolor=#ccffcc| 1 ||rowspan=5 bgcolor=#ccffcc| Month number<br>01–12 | |||
|- | |||
| :06 ||bgcolor=#ffccff| 1 | |||
|bgcolor=#ffffcc| :26 ||colspan=2 bgcolor=#ffffcc| 20 | |||
|bgcolor=#ccffcc| :46 ||colspan=2 bgcolor=#ccffcc| 2 | |||
|- | |||
| :07 ||bgcolor=#ffccff| 1 | |||
|bgcolor=#ffffcc| :27 ||colspan=2 bgcolor=#ffffcc| 40 | |||
|bgcolor=#ccffcc| :47 ||colspan=2 bgcolor=#ccffcc| 4 | |||
|- | |||
| :08 ||bgcolor=#ffccff| 1 | |||
|bgcolor=#ffffcc| :28 ||colspan=2 bgcolor=#ffffcc| P1 ||bgcolor=#ffffcc| Even parity over minute bits 21–28. | |||
|bgcolor=#ccffcc| :48 ||colspan=2 bgcolor=#ccffcc| 8 | |||
|- | |||
| :09 ||bgcolor=#ffccff| 1 | |||
|bgcolor=#ffcccc| :29 ||colspan=2 bgcolor=#ffcccc| 1 ||rowspan=6 bgcolor=#ffcccc| Hours<br>0–23 | |||
|bgcolor=#ccffcc| :49 ||colspan=2 bgcolor=#ccffcc| 10 | |||
|- | |||
| :10 ||bgcolor=#ffccff| 0 | |||
|bgcolor=#ffcccc| :30 ||colspan=2 bgcolor=#ffcccc| 2 | |||
|bgcolor=#ccffcc| :50 ||colspan=2 bgcolor=#ccffcc| 1 ||rowspan=8 bgcolor=#ccffcc| Year within century<br>00–99 | |||
|- | |||
| :11 ||bgcolor=#ffccff| 0 | |||
|bgcolor=#ffcccc| :31 ||colspan=2 bgcolor=#ffcccc| 4 | |||
|bgcolor=#ccffcc| :51 ||colspan=2 bgcolor=#ccffcc| 2 | |||
|- | |||
| :12 ||bgcolor=#ffccff| 0 | |||
|bgcolor=#ffcccc| :32 ||colspan=2 bgcolor=#ffcccc| 8 | |||
|bgcolor=#ccffcc| :52 ||colspan=2 bgcolor=#ccffcc| 4 | |||
|- | |||
| :13 ||bgcolor=#ffccff| 0 | |||
|bgcolor=#ffcccc| :33 ||colspan=2 bgcolor=#ffcccc| 10 | |||
|bgcolor=#ccffcc| :53 ||colspan=2 bgcolor=#ccffcc| 8 | |||
|- | |||
| :14 ||bgcolor=#ffccff| 0 | |||
|bgcolor=#ffcccc| :34 ||colspan=2 bgcolor=#ffcccc| 20 | |||
|bgcolor=#ccffcc| :54 ||colspan=2 bgcolor=#ccffcc| 10 | |||
|- | |||
|bgcolor=#ccffff| :15 ||colspan=2 bgcolor=#ccffff| R ||bgcolor=#ccffff| Call bit: abnormal transmitter operation.<br>Previously: backup antenna in use. | |||
|bgcolor=#ffcccc| :35 ||colspan=2 bgcolor=#ffcccc| P2 ||bgcolor=#ffcccc| Even parity over hour bits 29–35. | |||
|bgcolor=#ccffcc| :55 ||colspan=2 bgcolor=#ccffcc| 20 | |||
|- | |||
|bgcolor=#ccffff| :16 ||colspan=2 bgcolor=#ccffff| A1 ||bgcolor=#ccffff| Summer time announcement.<br>Set during hour before change. | |||
|bgcolor=#ccffcc| :36 ||colspan=2 bgcolor=#ccffcc| 1 ||rowspan=4 bgcolor=#ccffcc| Day of month.<br>01–31 | |||
|bgcolor=#ccffcc| :56 ||colspan=2 bgcolor=#ccffcc| 40 | |||
|- | |||
|bgcolor=#ccffff| :17 ||colspan=2 bgcolor=#ccffff| Z1 ||bgcolor=#ccffff| Set to 1 when CEST is in effect. | |||
|bgcolor=#ccffcc| :37 ||colspan=2 bgcolor=#ccffcc| 2 | |||
|bgcolor=#ccffcc| :57 ||colspan=2 bgcolor=#ccffcc| 80 | |||
|- | |||
|bgcolor=#ccffff| :18 ||colspan=2 bgcolor=#ccffff| Z2 ||bgcolor=#ccffff| Set to 1 when CET is in effect. | |||
|bgcolor=#ccffcc| :38 ||colspan=2 bgcolor=#ccffcc| 4 | |||
|bgcolor=#ccffcc| :58 ||colspan=2 bgcolor=#ccffcc| P3 ||bgcolor=#ccffcc| Even parity over date bits 36–58. | |||
|- | |||
|bgcolor=#ccffff| :19 ||colspan=2 bgcolor=#ccffff| A2 ||bgcolor=#ccffff| Leap second announcement.<br>Set during hour before leap second. | |||
|bgcolor=#ccffcc| :39 ||colspan=2 bgcolor=#ccffcc| 8 | |||
|bgcolor=#ff88ff| :59 ||bgcolor=#ffccff| 0 ||colspan=2 bgcolor=#ff88ff| Minute mark: no amplitude modulation. | |||
|} | |||
</small> | |||
== Resources == | == Resources == | ||
* [https://en.wikipedia.org/wiki/DCF77 Wikipedia: DCF77] | |||
* [http://www.ptb.de/cms/en/fachabteilungen/abt4/fb-44/ag-442/dissemination-of-legal-time/dcf77.html PTB: DCF77] (German) | |||
[[Category:Protocol decoder]] | [[Category:Protocol decoder]] |
Latest revision as of 17:35, 25 April 2015
Name | DCF77 time protocol |
---|---|
Description | European longwave time signal (77.5 kHz carrier signal) |
Status | supported |
License | GPLv2+ |
Source code | decoders/dcf77 |
Input | logic |
Output | dcf77 |
Probes | DATA |
Optional probes | — |
Options | — |
The dcf77 protocol decoder supports the DCF77 European longwave time signal (77.5 kHz carrier signal).
Hardware
DCF77 on the Pollin DCF1 module
The dcf77/pollin_dcf1_module directory in sigrok-dumps contains a set of example captures of a DCF77 signal. The hardware used for receiving the signal is a Pollin DCF1 module (3.3 V supply). The Pollin order number for the module is 810 054.
The dumps were made January 9, 2012 in the evening/night. Only the dcf77_480s_pon_interrupted.sr dump was made January 10, 2012 in the evening.
The logic analyzer used was a Saleae Logic (at 1 MHz).
Probe setup:
Probe | DCF1 module |
---|---|
1 (black) | PON |
2 (brown) | DATA |
Photos:
Protocol
Time code interpretation (taken from Wikipedia)
The time is represented in binary-coded decimal (BCD). It represents civil time, including summer time adjustments. The time transmitted is the time of the following minute; e.g. during December 31 23:59, the transmitted time encodes January 1 00:00.
Bit | Weight | Meaning | Bit | Weight | Meaning | Bit | Weight | Meaning | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PM | AM | PM | AM | PM | AM | ||||||||
:00 | 1 | M | Start of minute. Always 0. | :20 | S | Start of encoded time. Always 1. | :40 | 10 | Day of month (continued) | ||||
:01 | 1 | Civil warning bits, provided by the Bundesamt für Bevölkerungsschutz und Katastrophenwarnung (Federal Office of Civil protection and Disaster Relief). Also contains weather broadcasts. |
:21 | 1 | Minutes 00–59 |
:41 | 20 | ||||||
:02 | 1 | :22 | 2 | :42 | 1 | Day of week Monday=1, Sunday=7 | |||||||
:03 | 1 | :23 | 4 | :43 | 2 | ||||||||
:04 | 1 | :24 | 8 | :44 | 4 | ||||||||
:05 | 1 | :25 | 10 | :45 | 1 | Month number 01–12 | |||||||
:06 | 1 | :26 | 20 | :46 | 2 | ||||||||
:07 | 1 | :27 | 40 | :47 | 4 | ||||||||
:08 | 1 | :28 | P1 | Even parity over minute bits 21–28. | :48 | 8 | |||||||
:09 | 1 | :29 | 1 | Hours 0–23 |
:49 | 10 | |||||||
:10 | 0 | :30 | 2 | :50 | 1 | Year within century 00–99 | |||||||
:11 | 0 | :31 | 4 | :51 | 2 | ||||||||
:12 | 0 | :32 | 8 | :52 | 4 | ||||||||
:13 | 0 | :33 | 10 | :53 | 8 | ||||||||
:14 | 0 | :34 | 20 | :54 | 10 | ||||||||
:15 | R | Call bit: abnormal transmitter operation. Previously: backup antenna in use. |
:35 | P2 | Even parity over hour bits 29–35. | :55 | 20 | ||||||
:16 | A1 | Summer time announcement. Set during hour before change. |
:36 | 1 | Day of month. 01–31 |
:56 | 40 | ||||||
:17 | Z1 | Set to 1 when CEST is in effect. | :37 | 2 | :57 | 80 | |||||||
:18 | Z2 | Set to 1 when CET is in effect. | :38 | 4 | :58 | P3 | Even parity over date bits 36–58. | ||||||
:19 | A2 | Leap second announcement. Set during hour before leap second. |
:39 | 8 | :59 | 0 | Minute mark: no amplitude modulation. |
Resources
- Wikipedia: DCF77
- PTB: DCF77 (German)