Florian E. Teply
2007-05-03 17:30:33 UTC
Moinsen Elektroniker,
Ich hab gerade die Aufgabe bekommen, nen DCF77-Decoder in VHDL auf nem
FPGA (Xilinx Spartan 3 falls das interessiert) zu implementieren. Dem
einen oder anderen wird das sicher bekannt vorkommen, ist ja ne beliebte
Projektaufgabe für den Entwurf digitaler Systeme an Hochschulen... ;-)
Ein paar Gedanken hab ich mir dazu schon gemacht. Ich bekomme das
demodulierte DCF77-Signal als Logiklevel angeliefert und darf das dann
mit dem FPGA auswerten und auf ner vierstelligen 7-Segment-Anzeige
wahlweise als Datum oder Uhrzeit ausgeben. Die Dekodierung ist soweit ja
auch kein großes Problem, die nötigen Ziffern liegen ja im Signal schon
BCD-kodiert und mit nem Paritätsbit an definierter Stelle vor. Was mir
momentan Schwierigkeiten bereitet, ist die Synchronisation, a) auf den
Sekundentakt der Trägerabsenkung und b) auf die ausbleibende Absenkung
in der 59. Sekunde als Minutenmarke und Startsignal für die nächste
vollständige Übertragung sowie c) die Auswertung der Länge der
Absenkungen (die ja der Informationsträger ist).
Zu a) müsste man ja quasi nur die fallende Flanke als Taktsignal
"missbrauchen" und intern die fehlende 60. Flanke generieren.
Für b) und c) bräuchte man allerdings ne Zeitmessung, bei b) für die
Dauer zwischen zwei fallenden Flanken und bei c) für die Dauer zwischen
fallender und darauffolgender steigender Flanke.
Die eigentliche Dekodierung ist dann ja eher nur noch ne Fingerübung,
die anfallenden Daten in ein Schieberegister schieben und bei dem
Minutensignal passend auf die Ausgabepins schicken (evtl. vorher noch
durch nen BCD-zu-7-Segment-Dekoder), vereinfacht ausgedrückt.
Hat vielleicht jemand von euch nen Tip für die angesprochene
Synchronisation bzw. für das Timing??
Gruß
Florian
Ich hab gerade die Aufgabe bekommen, nen DCF77-Decoder in VHDL auf nem
FPGA (Xilinx Spartan 3 falls das interessiert) zu implementieren. Dem
einen oder anderen wird das sicher bekannt vorkommen, ist ja ne beliebte
Projektaufgabe für den Entwurf digitaler Systeme an Hochschulen... ;-)
Ein paar Gedanken hab ich mir dazu schon gemacht. Ich bekomme das
demodulierte DCF77-Signal als Logiklevel angeliefert und darf das dann
mit dem FPGA auswerten und auf ner vierstelligen 7-Segment-Anzeige
wahlweise als Datum oder Uhrzeit ausgeben. Die Dekodierung ist soweit ja
auch kein großes Problem, die nötigen Ziffern liegen ja im Signal schon
BCD-kodiert und mit nem Paritätsbit an definierter Stelle vor. Was mir
momentan Schwierigkeiten bereitet, ist die Synchronisation, a) auf den
Sekundentakt der Trägerabsenkung und b) auf die ausbleibende Absenkung
in der 59. Sekunde als Minutenmarke und Startsignal für die nächste
vollständige Übertragung sowie c) die Auswertung der Länge der
Absenkungen (die ja der Informationsträger ist).
Zu a) müsste man ja quasi nur die fallende Flanke als Taktsignal
"missbrauchen" und intern die fehlende 60. Flanke generieren.
Für b) und c) bräuchte man allerdings ne Zeitmessung, bei b) für die
Dauer zwischen zwei fallenden Flanken und bei c) für die Dauer zwischen
fallender und darauffolgender steigender Flanke.
Die eigentliche Dekodierung ist dann ja eher nur noch ne Fingerübung,
die anfallenden Daten in ein Schieberegister schieben und bei dem
Minutensignal passend auf die Ausgabepins schicken (evtl. vorher noch
durch nen BCD-zu-7-Segment-Dekoder), vereinfacht ausgedrückt.
Hat vielleicht jemand von euch nen Tip für die angesprochene
Synchronisation bzw. für das Timing??
Gruß
Florian