Funkmodem für Kurzwelle mit AVR

Gast #3709033
Lesenswert?

Hallo,

mir kam vor Kurzem die Idee, dass man doch mit recht überschaubarem 
Aufwand aus einem AVR (16MHz) ein Funkmodem Aufbauen könnte.

Also man gibt die Daten z.B. per TTL seriell ein und der µC wandelt sie 
dann im einfachsten Fall in ein FSK-Signal um. in Standard RTTY:
Mark: Träger+2125Hz
Space: Träger+2295Hz. (Shift 170Hz)
Ich denke, 9k6 Baud sollten schon drin sein.

Jetzt meine Frage:
Kann ich mit dem selben µC denn auch die HF erzeugen nur für das 
80m-Band?

Ganz einfach: angenommen mein Träger mit Mark befindet sich auf 3602,125 
kHz, dann befindet sich das Space auf 3602,295 kHz. Bekomme ich diese 
beiden Frequenzen aus dem ATmega, oder wäre das dann doch geschickter, 
einen Schwingkreis zu verstimmen? Ich denke, das mit dem Sinus wird ein 
wenig Tricky.

Hat jemand sowas vielleicht schon gemacht und kann mir ein paar Tipps 
geben, wie ich zumindest das Modulationssignal aus dem Avr bekommen 
kann?
 Beste Grüße und 73 de fabian
Gast #3709051
Lesenswert?

Wenn du ganz viel Glück hast, bekommst du 2 Rechtecksignale die in der 
nähe der Frequenzen liegen. Habe ich aber jetzt nicht ausgerechnet.

Dann brauchst du noch Filter und Endstufe.

Und spätestens dann ist Ende mit einfach.
Gast #3709085
Lesenswert?

Hallo,

AFSK ist das Stichwort, also das Niederfrequente 2,125 kHz / 2,295 kHz 
Signal in den Mikrofon bzw. Lineineingang des TXRX - und den Pegel 
richtig einstellen - fertig.
Für einen Software Tranceiver (SDR) reicht die Rechenleistung nicht aus 
und die ganze Modulations und Demodolationberechnungen zu verstehen und 
in funktionierende Software umzusetzen ist alles andere als trival.
Die erstaunlich gut arbeitenden RX SDR mit minimalen Bauteilaufwand sind 
nur deshalb so simpel weil die ganzen Berechnungen im Computer gemacht 
werden und selbst die einfachsten (Onboard) Soundkarten sehr viel 
leisten.

Mit der leistungklasse Raspberry Pi oder ähnliches ist das eventuell 
machbar (?) aber dann wohl auch nur wenn man (teilweise) "vorgekochte" 
Software verwendet  - außer mann hat wirklich viel Wissen über 
Signalverarbeitung, wahrscheinlich sind dafür viel berufliche 
Vorkenntisse erfoderlich. Sachen wie DSP sind wirklich sehr 
anspruchsvoll wenn mann alles selbst machen möchte

73

de HAM
Gast #3709097
Lesenswert?

Diese Verfahren gibt es doch schon seit den 80ern und die wurden für 
19k2 mit einem Z80 implementiert. Also kann das so kompliziert doch 
garnicht sein. Die Dekodierung würde ich tatsächlich softwareseitig 
machen. Die Enkodierung sollte jedoch möglichst Energiesparend 
geschehen. Deswegen versuche ich die Hardware sendeseitig so zu 
begrenzen
#3709102
Lesenswert?

Die Sendeseite ist für den AVR kein Problem.

Der Empfang ist die interessante Seite. Spiel doch einfach mal mit einer 
2-Ton Erkennung. Sieh dir den Goertzel Algorithmus an, implementiere ihn 
(ein Tip: nimm für den niedrigere Frequenzen bei gleicher Shift. Das 
geht besser). Und dann versuch, bei 6dB Störabstand mit zu lesen. Um 
dich nicht zu demotivieren, vergleiche den Aufwand nicht mit einem 
billig Soundkarten Modem.

Aber ich gebe dir insofern Recht: Man lernt eine Menge dabei und es kann 
Spaß machen.
#3709133
Lesenswert?

Also, die Codierung / Decodierung auf der NF Seite (also das Erzeugen 
der zwei 2125Hz und 2295Hz Signale sollte mit einer Soft DDS machbar 
sein. Die Decodierung wohl auch (es würden auf einem AVR ja schon PSK 
Modems implementiert.)

nginx schrieb:
> Jetzt meine Frage:
> Kann ich mit dem selben µC denn auch die HF erzeugen nur für das
> 80m-Band?

Das glaube ich eher nicht. Woher sollen denn die 3,6 MHz Signale kommen, 
und dann noch auf 170 Hz genau steuerbar. Du wirst wohl um mind. 2 
Mischer (einen Sendemischer + einen Direktmischer für den Empfang) nicht 
herum kommen.

> Ganz einfach: angenommen mein Träger mit Mark befindet sich auf 3602,125
> kHz, dann befindet sich das Space auf 3602,295 kHz. Bekomme ich diese
> beiden Frequenzen aus dem ATmega, oder wäre das dann doch geschickter,
> einen Schwingkreis zu verstimmen? Ich denke, das mit dem Sinus wird ein
> wenig Tricky.

Den Sinus macht ein Filter. Du könntest natürlich ein Quarz nehmen und 
mit einer Kapazitätsdiode den Quarz ziehen. Ob das schnell genug geht 
für 9,6 kbit/s? Dann doch eher einen Mischer. Ein paar khz kann man so 
einen Quarz ziehen, so dass du deinen Sender abstimmen kannst. Oder 
einen LC Oszillator, mit Steuerung durch den AVR. Der AVR misst die 
Frequenz und stimmt bei ungewollter Verstimmung einfach per 
Kapazitätsdiode nach. Das heißt im englischem Sprachgebrauch Huff and 
Puff Circuit http://www.hanssummers.com/huffpuff.html)
#3709161
Lesenswert?

Was mir gerade noch einfällt: Du kannst auch mit den billigen AD9850 DDS 
Platinchen experimentieren, die es für ein paar Euro bei E-Bay gibt. Die 
kannst du direkt als Signalerzeugung beim senden verwenden und auch als 
Oszillator für den Direktmischer. An den Antenneneingang kommt ein 
(kleines) Bandpassfilter, ein 2N3904 kann dann bis zu 0,5 W HF Power 
sorgen. Reicht locker für den Anfang. Du wirst eh ein paar zerschießen, 
aber der Transistor kostet nur ein paar Cent.
Gast #3709436
Lesenswert?

nginx schrieb:
> Also man gibt die Daten z.B. per TTL seriell ein und der µC wandelt sie
> dann im einfachsten Fall in ein FSK-Signal um. in Standard RTTY:

im einfachsten fall ohne avr - du verstimmst einfach einen oszillator 
mit dem UART-Signal. am einfachsten ein quarz mit kap.diode, allerdings 
nicht mit 9600baud sondern mit vllt. 100. wenn du schneller senden 
willst dann nimm einen schwingkreis.

noch eine überlegung:
ein billiger AVR hat, wie ich bereits ausprobiert habe, durchaus 
dsp-fähigkeiten. der ADC kann durch unterabtastung problemlos signale im 
kurzwellenbereich empfangen. die zwei träger zu demodulieren ist weder 
rechen- noch denktechnisch ein problem.

noch eine überlegung:
mit einem timer im asynchronen modus und paar logikgattern kann man eine 
programmierbare pll machen. quasi eine bedeutende weiterentwicklung des 
huff puff oszillators.
#3709567
Lesenswert?

Also 9k6 Baud geht bei AFSK so direkt nicht, da Du bei einem "2-Ton 
Verfahren" 2x die Baudrate an Bandbreite brauchst. Deshalb haben auch 
alle Modemverbindungen so geringe Baudraten.

Der Trick mit dem das trotzdem geht sind mehrstufige Codes. Sprich Du 
hast nicht 0 und 1 sondern zum Beispiel -1 -i 1 und i bei einer 
QPSK-Modulation.

Aber das über einen ATMega zu machen ist schon mal nicht verkehrt. Der 
sollte das deutlich besser können als eine analoge Schaltung.
Gast #3709785
Lesenswert?

Hi,

GENIAL! vielen Dank an alle. Genau sowas wollte ich hören! :)

Mit diesen Zwischentönen wären wir dann bei MFSK(16). Das ist 
übertragungstechnisch natürlich schneller, aber schwerer zu 
implementieren, da man mehr, als 2 Zustände hat
Gast #3709976
Lesenswert?

>Diese Verfahren gibt es doch schon seit den 80ern und die wurden für
>19k2 mit einem Z80 implementiert. Also kann das so kompliziert doch
>garnicht sein.

Interessante Ansicht. Glaubst Du wirklich, dass alles was in den 80ern 
gemacht wurde, einfach ist?
Gast #3709981
Lesenswert?

> Ob das schnell genug geht für 9,6 kbit/s?

Eigentlich sollten die Amateurfunker ja Ahnnung davon haben.

>Also, die Codierung / Decodierung auf der NF Seite (also das Erzeugen
>der zwei 2125Hz und 2295Hz

das ist dann FSK. Wie sollen den 9.6kBit in diese Frequenzen passen? Da 
beißt sich was mit der Theorie.
Gast #3710006
Lesenswert?

marc schrieb:
> das ist dann FSK. Wie sollen den 9.6kBit in diese Frequenzen passen? Da
> beißt sich was mit der Theorie.

Das ist dann AFSK, nicht FSK. Und nein, 9k6 kann man mit AFSK nicht 
machen. Da muß man ins Gerät rein und direkt an den 
Modulator/Demodulator gehen und dann damit eine FSK machen.
Gast #3710076
Lesenswert?

marc schrieb:
>>>2125Hz und 2295Hz
>>Das ist dann AFSK, nicht FSK.
>
> Wieso? Es sind zwei Frequenzen.
> http://de.wikipedia.org/wiki/Frequency_Shift_Keying
>
> Und keine zwei Amplituden:
> http://de.wikipedia.org/wiki/Amplitudenumtastung

Nein, da haben wir ein kleines Missverständnis.
AFSK heißt Audio Frequency Shift Keying und bedeutet, daß ein 
Audio-Signal in der Frequenz umgetastet wird.

Bei FSK wird direkt der HF-Träger in seiner Frequenz umgetastet.
Gast #3710080
Lesenswert?

>Nein, da haben wir ein kleines Missverständnis.
>AFSK heißt Audio Frequency Shift Keying und bedeutet,
Gut, Du kannst natürlich Deine eigene Sprache erfinden. Das musst Du 
aber vorher sagen:
Amplitudenumtastung (englisch Amplitude-Shift Keying, abgekürzt ASK)
Gast #3710086
Lesenswert?

marc schrieb:
>>Nein, da haben wir ein kleines Missverständnis.
>>AFSK heißt Audio Frequency Shift Keying und bedeutet,
> Gut, Du kannst natürlich Deine eigene Sprache erfinden. Das musst Du
> aber vorher sagen:
> Amplitudenumtastung (englisch Amplitude-Shift Keying, abgekürzt ASK)

Ich erfinde keine eigene Sprache.
http://de.wikipedia.org/wiki/Audio_Frequency_Shift_Keying
http://de.wikipedia.org/wiki/Frequenzumtastung
http://de.wikipedia.org/wiki/Amplitudenumtastung

Siehst du den Unterschied? Ich hatte AFSK geschrieben und du meintest 
ASK.
Alles klar? :-)
Gast #3710109
Lesenswert?

>Alles klar? :-)
Du hast tatsächlich Recht. Für mich war ASK immer die 
Amplitudenmodulation und FSK die Frequenzmodulation. Das bei AFSK das A 
plötzlich von der Amplitude zu Audio wird, war mir nicht klar ...

BTW.: Bei uns hat schon mal jemand Daten über zwei Funksprechgeräte 
übertragen.
Modulation: Recheck ( kurze und lange Schwingung ).
Datenrate: ca.1kHz

Wenn man wirklich 9600 Baud erreichen will, dann wird's kompliziert. Ich 
schlage OFDM vor. Mit viel Mühe lässt sich das auch auf einem AVR 
realisieren.
Gast #3767446
Lesenswert?

marc schrieb:
>>Nein, da haben wir ein kleines Missverständnis.
>>AFSK heißt Audio Frequency Shift Keying und bedeutet,
> Gut, Du kannst natürlich Deine eigene Sprache erfinden. Das musst Du
> aber vorher sagen:
> Amplitudenumtastung (englisch Amplitude-Shift Keying, abgekürzt ASK)

Wenn du Abkürzungen miteinander vermischt und eigene Bedeutungen 
reininterpretierst, kann es schon mal zu Kommunikationsproblemem kommen.

FSK bleibt FSK, auch wenn da ein "A" für Audio davor steht. Mit ASK hat 
das genau so viel zu tun, wie NASA mit NSA
Gast #3767564
Lesenswert?

mike schrieb:
> FSK bleibt FSK,
richtig:
http://de.wikipedia.org/wiki/Frequenzumtastung

> auch wenn da ein "A" für Audio davor steht.
falsch:
http://de.wikipedia.org/wiki/Audio_Frequency_Shift_Keying
Besonders dieser Abschnitt ist wichtig:
1
AFSK unterscheidet sich wie oben schon erwähnt von FSK durch
2
die doppelte Modulation. FSK ist die direkte Veränderung
3
der Hochfrequenz-Trägerfrequenz.
Aber lies mal den ganzen Artikel

> Mit ASK hat das genau so viel zu tun, wie NASA mit NSA
richtig:
http://de.wikipedia.org/wiki/Amplitudenumtastung
Gast #3767678
Lesenswert?

npn schrieb:
> falsch:
> http://de.wikipedia.org/wiki/Audio_Frequency_Shift_Keying
> Besonders dieser Abschnitt ist wichtig:AFSK unterscheidet sich wie oben
> schon erwähnt von FSK durch die doppelte Modulation. FSK ist die direkte
> Veränderung der Hochfrequenz-Trägerfrequenz.

Wo wird da doppelt moduliert?
Bei AFSK wird üblicherweise das frequenzumgetastete Audiosignal auf 
einen Einseitenbandsender gegeben. Auf der HF-Seite gibt das dann zwei 
Frequenzen zwischen denen das Signal entsprechend der Tastung hin- und 
her springt. Diese beiden Frequenzen haben den selben Abstand wie die 
beiden Audio-Frequenzen. Damit kann das HF-Signal nicht von einem 
FSK-Signal unterschieden werden, dass durch direkte Umtastung im HF-Teil 
erzeugt wird.

Anders sieht es natürlich aus, wenn du das im Audiobereich umgetastetet 
Signal auf einen FM-Sender gibst.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren