Forum: FPGA, VHDL & Co. Kleine Logik fuer FM Null Detektor


von Reinhard M. (Firma: Mescheltana GmbH) (mescheltana)


Lesenswert?

Ich habe vor langer Zeit mal eine Logikschaltung aufgebaut, mit der ich 
ein FM Null codiertes Signal dekodiert habe.
Damals habe ich das mit Komponenten der 74er Logik realisiert.
Ich brauchte dafür 5 Flip-Flops, einen Zähler und einige Gatter.
Gibt es von eine Komponente, mit der ich das heute effektiv realisieren 
kann ? Vielleich so eine Art mini FPGA ?
Gibt es eventuell auch eine Komponente, die FM Null direkt dekodieren 
kann ?

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

So wie du es beschreibst hast du bereits eine erprobte Digitale 
Schaltung.
Diese kann man in eine Hardwarebeschreibungssprache überführen. Das ist 
kein großes Ding.
Um der Sache zum Laufen zu bekommen brauchst du einen IC in den man die 
beschriebene Hardware "reinbraten" kann.

Was du suchst ist ein CPLD.

Complex Programmierbare Logic Device.
CPLDs beruhen in der Herstellung auf einer anderen Technologie als 
FPGAs. Sie verlieren nicht den programmierten Inhalt nach einem 
Stromausfall.

z.B. CoolRunner-II von Xilinx wäre so ein CPLD.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Reinhard Meschenmoser schrieb:
> Gibt es ... eine Komponente, die FM Null direkt dekodieren kann ?
Was ist ein "FM Null codiertes Signal"? Google findet nichts dazu.
Vermutlich meinst du etwas, das unter einem anderen Namen ganz geläufig 
ist...

> Ich brauchte dafür 5 Flip-Flops, einen Zähler und einige Gatter.
Kannst du den Schaltplan posten?


BTW:
Du plenkst. Das muss nicht sein...

von Reinhard M. (Firma: Mescheltana GmbH) (mescheltana)


Angehängte Dateien:

Lesenswert?

Hallo Lothar,

FM Null ist ein serielles Datenformat, bei dem an jeder Bitgrenze ein 
Pegelwechsel stattfindet. Eine logische Null wird durch einen 
zusätzlichen Pegelwechsel in der Bitmitte repräsentiert. Vielleicht war 
mein Fehler, die 0 auszuscheiben. Unter FM0 findet man das bei Google.
http://www.grantronics.com.au/serialformats.html

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Reinhard Meschenmoser schrieb:
> Unter FM0 findet man das bei Google.
Damit kommt Licht ins Dunkel. Das ist das selbe wie die FM1 Übertragung 
(BMC Codierung) mit invertierten Eingangsdaten:
http://de.wikipedia.org/wiki/Biphase-Mark-Code

Diese Funktion ist nicht allzuschwer in ein CPLD umzusetzen (einfacher 
auf jeden Fall, als den Schaltplan in ein CPLD zu packen), interessant 
wäre allerdings, was du da für Takte zur Verfügung hast. Eigentlich 
würde einer reichen, der ausreichend hoch ist, um das Signal anständig 
mehrfachabzutasten. Dann reicht es aus, den Datenstrom in ein 
Schieberegister zu takten, darauf eine Flankenerkennung anzusetzen, und 
bei erkannter Flanke den Inhalt des Schieberegisters auszuwerten.

Oder etwas ähnliches aufbauen wie ich für die verwandten Manchester 
Codierung für den RC-5:
http://www.lothar-miller.de/s9y/categories/50-RC-5

von Reinhard M. (Firma: Mescheltana GmbH) (mescheltana)


Lesenswert?

In der Tat reicht natürlich 1 Takt. Ich habe die Schaltung vor Jahren 
auch so realisiert. Mehrere Takte sind lediglich für eine fehlerfreie 
Simulation in PSpice notwendig. Es gibt bei einem Flip-Flop ja eine 
minimale Zeit, bei der die Eingangswerte sicher bei einer Taktflanke 
übernommen werden. Wenn das nicht eingehalten wird, gibt PSpice eine 
Warnung aus. In der Praxis spielt das natürlich keine Rolle, wenn die 
Taktfrequenz ausreichend hoch ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.