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