FSK - Modulator

Gast #277230
Hallo, nach einigen analogen Ansätzen einen FSK Modulator im
Tonfrequenzbereich selbst zu bauen, bin ich jetzt doch wieder soweit,
das ganze digital, sprich per uC zu realisieren!

Hier die Eckdaten meines Systems:

 Frequenz zur Übertragung von 0: 16800 Hz
 Frequenz zur Übertragung von 1: 13200 Hz
 Baudrate zur Datenübertragung : 1200  Hz


Somit Übertrage ich 14 Impulse mit 16800Hz für eine 0 und 11 Impulse
mit 13200Hz für eine 1. Zur besseren Veranschaulichung habe ich einen
Screenshot der Datenübertragung meines Senders (Logicanalyser) im
Anhang hinzugefügt!

Jetzt suche ich nach Ansätzen mir einen Demodulator selbst zu
programmieren. Mein erster Ansatz wäre gewesen zwei Bandpässe
vorzuschalten und anschließend die Impulse zu zählen (und auf die
gültige Frequ. zu überprüfen). Hat da vielleicht schon jemand von euch,
damit was gemacht und könnte mir hierzu ein paar Tipps geben? Gibt es
auch fertige Bausteine, die das können und im Bereich von unter 1€
liegen?

Danke, Mathias
Angehängte Dateien:
Gast
Hi,

-> DH6HP RTTY-Konverter ergooglen <-

Der ist ein Decoder für AFSK, im Prinzip die angesprochene
2-Bandpässe-und-Vergleichen-Lösung.
Oder bei gutem Signal-Störabstand: NF-Signal auf TTL-Pegel bringen
(durch übersteuertenVerstärker), und Periodendauer(n) auszählen.

Viel Erfolg !

Hendrik.
Gast
NE567 / LM567, PLL-Tondecoder ist relativ billig, decodiert aber nur
eine der beiden Freuqenzen und ist störanfällig. DJ6HP hab ich auch
schon nachgebaut, irgendwo sogar noch ein Platinenlayout dazu. Der ist
aber für 45,45 Baud auf Kurzwelle optimiert, nicht schneller!

Softwaremäßig kann man das richtig nach DSP-Manier demodulieren,
AD-Abtasten mit einem gemeinsamen Vielfachen der beiden Frequenzen, am
besten dem gemeinsamen Vielfachen der vierfachen Frequenzen, dann hat
man alle 90 Grad einen Stützwert. Dann beide gleichrichten und
Amplituden vergelichen, die höhere gewinnt.
Gast
und wie schauts aus, wenn ich das ganze mit einem einfachen 8bit uC mit
capture compare modul demoduliere? müsste ja eigentlich auch
funktionieren. nur sind die bandpässe etwas teuer
Gast
Hallo Mathias,

den Vorschlag ohne externe Hardware habe ich einmal mit einem PIC18F
probiert.
In der Praxis hat es nur mit einem sehr "guten" Kanal (Kabel)
funktioniert. Ansonsten währe es mit sehr viel Programmieraufwand
vielleicht auch per Funk gegangen, aber den Aufwand wollte ich nicht
treiben.

Viele Grüße,
Bernhard
Gast
Der Chip den Christoph vorschlug, ist aber nicht mehr so zeitgemäss, den
NE567 habe ich als etwas langsam bei Schmalbandigkeit in Erinnerung.
DJ6HP müsste natürlich auf deine Tonfrequenzen dimensioniert werden,
Kernstück sind die aktiven Bandpässe.

1-bit AD-Wandlung per Komparator entspr. Begrenzer und anschließende
Periodendauerberechnung kann ich nur bei sehr guten Kanälen empfehlen,
solchen ohne nennenswerte Störgeräusche.

Bei Texas gibts auch einen UAF42 oder so, universellen Audiofilter.
Du kannst für die Sparsamkeit es mit einem einzelnen Bandpass probieren
der die "1" durchlässt und immer, wenn keine 1 is, eine 0 annehmen.

Hendi.
Gast
So ich werde jetzt mal den Ansatz probieren:

Die zwei Frequenzen mit zwei bandpässen herausfiltern (eventuell sowas
wie den MF10).

Anschließend die Signale mit einem uC auswerten:
Periodentauermessung durch die Captureunit.. Weiters werden die Impulse
 gezählt( bei 16800Hz muss ich bei 1200 Baud ja 14 Impulse empfangen )

Die meisten der von euch genannten IC's sind leider zu teuer. (sollte
ja  zumindest mit den filtern unter 3€ liegen)

Mfg, Mathias
Gast
@ Carsten:

zu deiner 2ten Methode: "mit 2 Bandpässen, danach die Signale
gleichgerichtet und dann mit einem Komparator verglichen"

Konntest du das Signal dann direkt in den UART des uC's schicken? Bei
dieser Methode müssten ja durch den Gleichrichter auch kleine,
gleichfrequente Störspitzen herausgefiltert werden oder?
Welchen Aufwand hast du bei deinen 2 Bandpässen betrieben? Hättest du
eventuell ein Schematic bzw. einen Screenshot von so einem
Demodulator?

Thx, Mathias
Gast
bei der hohen Baudrate müssen natürlich die Bandpässe auch so breit
sein, daß die Modulations-Seitenbänder noch durchkommen, also etwa so
breit wie die Baudrate. bei 45 Bd war das im DJ6HP-Konverter noch
sinnvoll, bei 1200 ist das nicht mehr sehr effektiv. Die
Trägerfrequenzen liegen ja ziemlich hoch, für 1200Bd hat der TCM3105
auch nur Träger von 1200/2400Hz. So war schon die
Tonkassettenaufzeichnung im alten KIM1-Computer in den 70ern gelöst
Gast
Die Demodulation der beiden Töne 1200 und 2200 Hz geschieht bei WhereAVR
über die Messung der Zeit zwischen zwei Null-Durchgängen.
Das ist sicher eine legitime Lösung für dieses Problem und hier auch
noch elegant gelöst, da er nicht mal einen Analog-Port braucht.

Sicher ist das aber nicht die Lösung wenn zusätzlich noch andere
Signale übertragen werden oder das Signal verrauscht ist.

Ich habe mich vor langer Zeit mit DTMF-Dekodierung mittels
Sinus-Cosinus-Korrelation in der Theorie (mit Mittlerer-Reife
Mathe-Kenntnis) beschäftigt.
Vielleicht wäre das auch eine Lösung für "gestörte" Signale.

Eventuell hat hier ja schon etwas Erfahrung damit, oder zumindest mehr
Ahnung von dieser Theorie.

Ich wäre für jede Hilfe dankbar!
Gast
en XR2211 PLL-Decoder gibts schon seit den 70ern. In Packet-Radio-Modems
(1200 Baud) wurde er als "digitale Rauschsperre" benutzt, also um
festzustellen, ob ein gültiges Signal anwesend ist, die eigentliche
Modemfunktion machte der oben erwähnte TCM3105
Gast
Moin.

Also, mit XR2211/XR2206 aufgebaute Modems liefen schon
am C64 stabil, selbst wenn man sie nur auf Lochraster
aufgebaut hat. Der TCM3105 war natürlich auch schön,
wird aber leider schon ewig nicht mehr produzier und
nur zu horrenden Preisen verkauft. (2 Stück hab ich
noch, aber wer weiss, ob die 6 Jahre Bastelkiste überlebt
haben?!) ..

Als weitere Anregung:
Der CMX469 ist nen FSK-Modem-IC, das bei rs-components erhältlich,
aber auch recht teuer ist (18 EUR waren es glaub ich), arbeitet
mit 1200 und 1800 Hz, kann bis 4800 Baud.. das passende Quarz
gibt's auch bei rs-c .. selbst verwendet habe ich dieses IC für
ein FMS-Modem, funktionierte auf Anhieb.. man kann es direkt an
eine UART anschliessen..

Gruss,
 Tim

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.