Die Idee kam mir
bei Versuchen zur Ausgabe und Auswertung von Morsesendungen mithilfe
von ARDUINO-Prozessoren und ANDROID-Smartphones, An anderer Stelle [1]
hatte ich darüber schon ausführlich berichtet. Die
elektronische Auswertung empfangener Morsesendungen konnte mich dabei
allerdings nie richtig zufriedenstellen. Das Hauptproblem dürften
dabei die bei Zeichenempfang zu verarbeitenden unterschiedlichen
Geschwindigkeitswerte sein. Günstiger liegen die Verhältnisse
dagegen im Falle der Übertragung von RTTY-Signalen. Obwohl
mancherorts bereits totgesagt, ist dieses schon viele Jahrzehnte
bekannte
Übertragungsverfahren immer auch noch zum Austausch von
z.B. Textmessages geeignet. Ehemals grossvolumige Endgeräte lassen
sich
heutzutage durch moderne Computertechniken ersetzen. Neben z.B.
Laptops können hierfür auch preiswert erhältliche
Mikrocontrollerboards und ANDROID-Smartphones bzw. Tablets genutzt
werden,
womit sich äusserst kompakte, mobil einsetzbare Einheiten
realisieren lassen. Mikrocontroller dienen dabei der
Signalverarbeitung, während die Datenein- und ausgabe z.B.
über
Smartphones/Tablets erfolgen kann.
Abb.1 realisierte
RTTY-CODEC-Einheit
Empfangsseite
Abgewandelt vom bereits
erwähnten Konzept eines Morsedecoders entstand eine Einheit zum
Empfang von
RTTY-Aussendungen. Die Unterschiede beschränken sich dabei im
Wesentlichen auf die verwendete ARDUINO-Software. Um auch
RTTY-Signale mit Mark/Space-Tonfrequenzen
von 1275Hz/1445Hz decodieren zu können, genügte auf
der Hardwareseite die Änderung lediglich eines
Kondensatorwertes ( C5 in Abb.2 ) am Tondecoderbaustein "LM567"
Abb.2 Gesamtschaltbild der CODEC-Einheit
Die von seinem Ausgang bereitgestellten RTTY-Tastsignale
werden von einem ARDUINO-Baustein des Typs "Pro-Mini" weiter
verarbeitet und stehen danach als serielle
ASCII-Zeichenfolgen an seinem UART-Ausgang zur
Verfügung. Zu weiteren Bearbeitung können sie von hier aus
via z.B. Bluetoothfunk an
ein Smartphone/Tablet gesendet und dort mit einem der hierfür
verfügbaren Terminalprogramme zur Anzeige gebracht werden. Als
Option ist aber auch eine Direktanzeige ankommender
Zeichenfolgen mithilfe eines über Prozessorausgänge
angeschlossenen Standard-16x2-Zeichen-LCDisplays möglich.
Im Ursprungszustand ist die verwendete ARDUINO-Software auf die
Verarbeitung des RTTY-Signalformates abgestimmt, so wie es im
Amateurfunkbetrieb üblicherweise zur Anwendung kommt. Passend dazu
arbeitet auch die weiter unten noch zu beschreibenden
Sende- bzw. Encodereinheit. Genutzt wird eine
Baudrate von 45.45 Bd. mit festgelegter Datenlage für Mark-
und Spacefrequenzen.
Die verwendete ARDUINO-Empfangssoftware stammt ursprünglich von
JI3BNB aus Japan [3], wurde aber von DD0CW und mir modifiziert und auch
erweitert. Zwei
zusätzliche Taster erlauben jetzt die Auswahl zwischen
verschiedenen gebräuchlichen
Baudraten ( 45.45, 50, 75, 100, 110 und 300 Bd. ) und zwischen
normaler oder inverser Datenlage. Damit ist auch die
Verarbeitung von Signalen kommerzieller Sender möglich,
wozu beispielsweise die KW- und LW-Aussendungen des DWD (
Deutschen Wetterdienstes ) gehören ( siehe Abb.3 ). Zur
weiteren Nutzung werden die gewählten Betriebseinstellungen auch
im EEPROM-Bereich des Prozessors abgelegt, was sich in der Praxis als
sehr nützlich erwiesen hat.
Abb.3 Auswertung
empfangener RTTY-Signale des DWD mithilfe eines Terminalprogrammes am
ANDROID-Smartphone/Tablet
Die am seriellen UART-Ausgang des Prozessors mit einer Datenrate von
9600bps bereitstehenden Ausgangssignale können direkt einem
Bluetoothmodul, wie z.B. dem weit verbreiteten "HC-06" an dessen
RxD-Eingang
zugeführt werden. Verbindungen zwischen Smartphone/Tablet und
Modul werden dabei immer ausgehend von Erstgenannten aufgebaut. Dazu
musste
vorher einmalig ein Pairing ( siehe am ANDROID-Gerät:
Einstellungen/ Bluetooth ) zwischen beiden Einheiten erfolgt sein. Bei
anschliessendem Start eines Terminalprogrammes am
ANDROID-Gerät wird eine Liste der dem Gerät bekannten
Bluetoothpartner
aufrufbar sein. Hierunter sollte sich auch unser "HC-06" finden und zum
Aufbau einer Datenverbindung anwählen
lassen. Von der Decoderseite ankommende
ASCII-Zeichenfolgen sollten anschliessend auch im Eingangsfenster des
Terminalprogrammes sichtbar werden. Das beispielsweise von mir an
dieser Stelle
favorisierte Terminalprogramm ist unter dem Namen
"Bluetooth Serial Controller" aus dem GOOGLE Play Store
herunterladbar. Es erlaubt dabei sogar einen automatischen
Wordumbruch und ein Zeilenscrolling nach gefülltem Fensterinhalt,
womit sich ein gut überschaubares Darstellungsbild ergibt.
Sendeseite
Am unteren Bildschirmrand
genannten Terminalprogrammes befindet sich eine Eingabezeile für
aussendbare
Texte ( siehe Abb.3 und Abb.4 ). Ihre Ausgabe erfolgt allerdings erst
nach
Betätigung der Taste "SEND", so dass sie bei Bedarf auch
schon während des Empfangsbetriebes vorgeschrieben werden
können.
Eine Besonderheit des verwendeten Terminalprogrammes sind dessen
fünf zusätzliche
Tastenfunktionen,
die den Direktabruf vorabgespeicherter Zeichenfolgen
mit je max. 64 Zeichen
erlauben. Hierbei kann es sich z.B. um häufig
benötigte Folgen, wie CQ-Rufe, Testsendungen
und Stationsvorstellungen handeln.
Abb.4 Empfang eigener
Testaussendungen nach Herstellung einer zusätzlichen
Drahtverbindung zwischen Encoderausgang und Decodereingang.
Ausgesandte ASCII-Zeichenfolgen sind nach Bluetoothübertragung
auch am TxD-Ausgang des
"HC-06" verfügbar. Ihre Weiterverarbeitung übernimmt ein
zweiter ARDUINO-Prozessor des Typs "Pro-Mini" *. Auch der hierbei
benutzte Programmcode stammt im Ursprung wieder von JI3BNB, wurde aber
von OK1HRA [2] nachbearbeitet und von mir an die vorliegende Anwendung
angepasst. Er
erlaubt Zeichenausgaben in Form von 45.45 Baud-RTTY-AFSK-Signalen
unter Verwendung der Töne 1275Hz und 1445Hz. Zusätzlich wird
während ihrer
Ausgabezeiten auch ein PTT-Signal bereitgestellt, worüber sich bei
Bedarf ein angeschlossener Sender tasten lässt. Für z.B.
Handfunksprechgeräte lassen sich beide Signale auch in gewohnter
Weise kombinieren. Wird diese
Funktion nicht
benötigt, sollte Widerstand "R*" unbestückt
bleiben.
Am KEY-Ausgang sind darüberhinaus auch RTTY-Tastimpulse
verfügbar. Bei vorliegender Anwendung dienen sie allerdings
lediglich zur Steuerung einer LED-Anzeige.
* Erste Versuche zur Nutzung nur EINES Prozessors sowohl für die
Decoder-, als auch für die Encoderfunktion verliefen aufgrund von
Kollisionsproblemen im Timing erst einmal negativ, sollen aber
irgendwann noch einmal angegangen werden.
Nutzungsmöglichkeiten
Encoder und Decoder arbeiten mit
RTTY-Tonsignalen, deren Frequenzen im Sprachbereich der menschlichen
Stimme liegen. Damit sind zu ihrer Übertragung generell alle
Funkgeräte geeignet, die Sprachübertragung erlauben. Im
einfachsten Fall können das z.B. ( FM- ) Sprechfunkgeräte
für die VHF- und UHF-Bereiche sein. Bei SSB-Betrieb ist dagegen
sicherzustellen, dass die Empfangsfrequenz so eingestellt wird, dass
nach Signalverarbeitung am Empfängerausgang
anliegende RTTY-Tonsignale möglichst in der Mitte des
Fangbereiches vom verwendeten Tondecoderbaustein und
damit um 1360 Hz liegen. Als Abstimmhilfe eignet sich dabei die am
Ausgang des
Tondecoders angeordnete Leuchtdiode. Bei korrekter
Empfängereinstellung wird sie im Takte ankommender Signale
flackern.
Erste Inbetriebnahme (
Kurzschlussbetrieb )
Für einen ersten Funktionstest
sind AFSK-Ausgang und -Eingang auf der Platine vorübergehend
miteinander zu verbinden. Weiterhin sind die beiden
Einstellwiderstände "P1" und "P3" etwa in Mittelstellung zu
bringen. Nachdem die Versorgung des Bausteins eingeschaltet wurde,
sollten auf beiden Pro-Mini-Boards die Power-LED's leuchten. Weiterhin
sollte die LED auf dem Bluetoothmodul blinken. Wurde anschliessend, wie
schon oben beschrieben, ausgehend vom Smartphonne/Tablet eine
Bluetoothverbindung aufgebaut, so sollte die LED auf dem BT-Modul in
den Zustand des
Dauerleuchtens wechseln.
Zum Testen von Textübertragungen können gewünschte
Zeichenfolgen jetzt in die Ausgabezeile des Terminalprogrammes
geschrieben und mit der Taste "SEND" abgerufen werden. Bei bestehender
Bluetoothverbindung sollte "LED2" der Encodereinheit jetzt im Takte
übertragener Zeichen blinken.
Durch die zwischen Encoderausgang und Decoder hergestellte
zusätzliche Drahtverbindung gelangen ausgehende AFSK-Tondaten
derzeit direkt an den Eingang des Tondecoders mit dem "LM567". Hier
gilt es nun mithilfe von "P2" die optimale Frequenzeinstellung (
Frequenz wiederum um 1360 Hz ) zu
finden. Dazu ist es allerdings erforderlich, dass auf der Decoderseite
mit den zum Encoder passenden Betriebseinstellungen ( 45.45 Baud;
invers ) gearbeitet wird. Diese sind im Decoder-EEPROM abgelegt und
werden von dort jeweils bei Programmstart ausgelesen. Sollte Unklarkeit
hinsichtlich dieser Werte bestehen, so können sie durch
Betätigung der Taster "S1" und "S2" auch erneut
angewählt und im Eingangsfenster des Terminalprogrammes sichtbar
gemacht werden.
Die optimale Einstellung von "P2" hat bei laufendem Datenempfang zu
erfolgen und sollte eine fehlerfreie Text-Rückübertragung in
Richtung Terminalprogramm ( bzw. Anzeige an einem direkt
angeschlossenen LC-Display ) bewirken. Hilfreich beim
Einstellen ist dabei auch die Anzeige durch "LED1". Der gesamte Vorgang
erfordert ein wenig Fingerspitzengefühl, wozu ggf.
auch das Testen unterschiedlicher Signal-Eingangspegel gehören
kann.
Für den Regelbetrieb ist die Verbindung zwischen AFSK-Ein- und
Ausgang selbstverständlich wieder aufzutrennen. Abschliessend sind
die Pegelwerte an den Ein- und Ausgängen abhängig
von den verwendeten Peripherieeinheiten entsprechend
anzupassen.
Software
Die zugehörigen
ARDUINO-Sketche sende ich gern auf Anfrage
Abb.5 Platinenlayout des RTTY-Codecs ( Platinenherstellung:
http://www.dh4ym.de )