Forum: Mikrocontroller und Digitale Elektronik Funkmodem für Kurzwelle mit AVR


von nginx (Gast)


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

von mfg (Gast)


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.

von Georg G. (df2au)


Lesenswert?

Dann träume mal schön weiter. Du unterschätzt heftig den Aufwand für ein 
gutes Modem. Nimm einen DSP, aber nicht zu klein, dann hast du Chancen.

von nginx (Gast)


Lesenswert?

Ja, das hab ich befürchtet...

Dann kann ich das mit der HF schonmal an ne PLL oder so abgeben.

Ich hätte noch nen paar XR2211 rumfahren. damit sollte sich ja was 
anstellen lassen

von Ham (Gast)


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

von nginx (Gast)


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

von Georg G. (df2au)


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.

: Bearbeitet durch User
von Klaus R. (klausro)


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)

von Klaus R. (klausro)


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.

von vorticon (Gast)


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.

von Detlef K. (adenin)


Lesenswert?

Da hat mal einer ein AFSK-Modem in einen AVR mit 4.433MHz (damals 
gebräuchliches PAL-Quarz) gequetscht.
http://www.bkme.de/prod/avrdspdoc.htm

von Christian B. (casandro)


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.

von nginx (Gast)


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

von nginx (Gast)


Lesenswert?

Nachtrag: Der AD9850 ist sehr vielversprechend. Ich habe mir mal auf 
ebay ne Platine für nen fünfer rausgelassen. Mal schauen, was die so 
drauf hat

von marc (Gast)


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?

von marc (Gast)


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.

von npn (Gast)


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.

von marc (Gast)


Lesenswert?

>>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

von nginx (Gast)


Lesenswert?

das habe ich ja auch vor. Einen einfachen schwingkreis, welcher mittels 
kapazitätsdiode verstimmt wird. falls das zu träge ist, könnte man einen 
Mischer her nehmen

von npn (Gast)


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.

von marc (Gast)


Lesenswert?

Dann kriegst Du warscheinlich eine Datenrate von ma. 300Baud.

von dbru61 (Gast)


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

Nö, falsch, 2 Audiofrequenzen, deswegen Audio Frequency Shift Keying 
oder kurz afsk.

Grüße

Michael

von marc (Gast)


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)

von npn (Gast)


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? :-)

von M.N. (Gast)


Lesenswert?

Okidoki!

Oder doch eher OOK?

von marc (Gast)


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.

von nginx (Gast)


Lesenswert?

Orthogonal auf nem AVR? nee... es gibt keine andere Möglichkeit 9k6 zu 
übertragen? Ich schau mal nach nem AX.25

von marc (Gast)


Lesenswert?

>Ich schau mal nach nem AX.25
http://www.ax25.net/AX25.2.2-Jul%2098-2.pdf

Da geht es eher um das Protkoll über Schicht 1 des Osi/Iso Modells:
http://de.wikipedia.org/wiki/OSI-Modell

Für die Datenrate wäre Schicht 1 wichtig.

von nginx (Gast)


Lesenswert?

ja

von Detlef K. (adenin)


Lesenswert?

nginx schrieb:
> Orthogonal auf nem AVR? nee... es gibt keine andere Möglichkeit
> 9k6 zu
> übertragen? Ich schau mal nach nem AX.25

Packetradiomodem nach G3RUH

von marc (Gast)


Lesenswert?

Ein Link ist da noch lange nicht das Schlechteste:
http://www.amsat.org/amsat/articles/g3ruh/109.html

von Georg G. (df2au)


Lesenswert?

G3RUH auf Kurzwelle ist nicht das Optimum, um es vorsichtig und 
zurückhaltend auszudrücken. Im Prinzip ist es auch nur FSK. Für 9K6 
Baudrate muss man sich schon etwas besseres ausdenken. QPSK nach DK4EG 
wäre imho der Minimalaufwand.

von Rainer V. (rudi994)


Lesenswert?


von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

schu mal nach QPSK 31 das safft auch dein Atmega zu modulieren  und 
disoundkarte als demodulator SW gibt es genug im netz

von mike (Gast)


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

von npn (Gast)


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

von mike (Gast)


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.

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.