Funkamateur 02 und 03/86 |
Dieser Beitrag stellt ein Programm vor, das mit dem Grundgerät des Amateurcomputers "AC1" einen komfortablen und lautlosen Femschreibbetrieb im Telegraphenalphabet Nr.2 (Baudotkode) ermöglicht. Zwischen dem "AC1" und dem Transceiver bzw. Sender und Empfänger sind dann nur noch ein RTTY-Konverter und eine AFSK bzw. FSK zu schalten. Für den Anfang reicht hier z.B. die in [2] vorgestellte Minimallösung aus, die auch ohne Änderung mit diesem Programm betriebsfähig ist.
Die hier vorgestellte Softwarelösung
läuft auf dem Grundgerät des "AC1" mit verdoppeltem
Arbeitsspeicher
(2-kByte-SRAM) und wahlweise 16 oder 32 Zeilen
Anzeigekapazität. Als Hardware zum
Sender/Empfänger-Anschluß
können die in [1], [2] veröffentlichten
Schaltungen, oder solche, die das gleiche logische Verhalten
realisieren,
verwendet werden. Der Systemtakt muß 2 MHz betragen
(8-MHz-Quarz), sonst stimmen die Baudraten nicht. Am CTC
der Grundleiterplatte sind ZC/TO0 und CLK/TRG1 miteinander zu verbinden
(Steckverbinder X2/B3-B4), da zur
Abtastzeiterzeugung zwei CTC-Kanäle in Reihe geschaltet werden.
Zum Anschluß an das jeweilige RTTY-Interface
dienen drei Leitungen des PIO-Port B.
PB1 ist als Eingang geschaltet und wertet das Ausgangssignal des
RTTY-Konverters aus, wobei H-Pegel der
Space-Lage entspricht. An PB2 wird das Tastsignal zum Senden
ausgegeben, so daß damit die FSK- bzw.
AFSK-Schaltung angesteuert werden kann. Hierbei entspricht Low-Pegel
der Space-Lage. Mit PB3 kann die
Sende-Empfangsschaltung (PTT) angesteuert werden. Low-Pegel bedeutet
dabei "Sender EIN". An dieser Stelle
muß darauf hingewiesen werden, daß bei Benutzung dieser
Leitung der Funkamateur eine zusätzliche Sendeanzeige
anschließen sollte, und daß bei der Nichtbenutzung dieses
RTTY-Programms das RTTY-Interface vom Mikrorechner
zu trennen ist. Sonst kann es passieren, daß bei anderen
Programmen, die ebenfalls diese Leitung ansteuern,
(oder auch bei Programmabstürzen) aus Versehen der Sender
eingeschaltet wird.
Bevor die Bedienung des eigentlichen RTTY-Programms
beschrieben wird, noch etwas zum hier verwendeten Prinzip
der Kodierung bzw. Dekodierung der Fernschreibzeichen. Das Programm ist
so gestaltet, daß sich das "RTTY-Terminal AC1"
mit dem Interface aus [1]
nach außen genauso verhält wie eine mechanische
Fernschreibmaschine. Das heißt,
für die notwendige Serien/Parallel- bzw. Parallel/Serien-Wandlung
wird keine zusätzliche Hardware benötigt,
sondern es geschieht alles per Software. Für den Sendefall ist das
relativ problemlos zu realisieren. Die
Kodierung des entsprechenden Femschreibzeichens wird einer Tabelle
entnommen, mit Start- und Stoppbits
versehen und mit dem der eingestellten Baudrate entsprechenden Bittakt
zum PIO-Port "hinausgeschoben".
Der Einfachheit halber werden 2 Stoppbits angefügt. Bei der
mechanischen Maschine sind es nur 1 1/2. Die
Umschaltzeichen für Buchstaben und Ziffern müssen nicht extra
eingetippt werden, der Mikrocomputer fügt sie
automatisch ein. Mehr noch, zur Erhöhung der
Übertragungssicherheit wird je Zeiteinheit, die 10 Zeichen
entspricht, das aktuelle Registerzeichen eingefügt.
Im Empfangsfall ist es etwas komplizierter. Man muß darauf
eingestellt sein, daß durch den Übertragungsweg
das empfangene Impulsbild mehr oder weniger von der Idealform, wie sie
z.B. an PB2 im Sendefall zu sehen ist,
abweichen wird. Meist sind Überlagerungen von Störimpulsen
und Flankenverformungen vorhanden. Die mechanische
Maschine eliminiert solche Störungen bis zu einem bestimmten Grad
durch die "Trägheit des Systems".
Der Mikrocomputer aber muß eine solche "Trägheit" erst
erzeugen. Im vorliegenden RTTY-Programm wurde das
Problem dadurch gelöst, daß jedes empfangene Bit dreimal,
und zwar bei 25 %, 50 % und 75 % der Zeit,
abgetastet und daraus der Mittelwert gebildet wird. Ein Beispiel ist in
Bild 1 dargestellt.
Weiterhin, und das ist eine Möglichkeit, die mechanisch nicht so
einfach zu realisieren ist. sind das
Start- und ein Stoppbit mit in die Auswertung einbezogen. Hat z.B. ein
Störimpuls eine Startfanke vorgetäuscht,
so wird nach einem Bittakt die Dekodierung abgebrochen und sofort in
den Ausgangszustand übergegangen.
Eine mechanische Maschine wäre jetzt gezwungen, einen vollen
Umlauf zu machen und stünde in dieser Zeitspanne
für ein echtes Fernschreibzeichen nicht zur Verfügung. Wurde
nicht mindestens ein Stoppbit erkannt, so gelangt
ebenfalls kein Zeichen auf den Bildschirm.
Ein Vergleich dieser Softwarelösung mit einer mechanischen
Femschreibmaschine zeigte bei gleichzeitigem
Betrieb mit einem leicht gestörten Empfangssignal weitaus weniger
Fehlschriften auf dem Bildschirm.
Auch das Einrasten in eine laufende Sendung erfolgt bei dieser
Softwarelösung meist weitaus schneller
als bei der Fernschreibmaschine.
Der Fangbereich, in dem sich die Baudrate bewegen darf, ist bei diesem
RTTY-Programm aufgrund des gewählten
Abtastprinzips etwas geringer als bei der Fernschreibmaschine. Deshalb
wurde die Baudrate nicht in den
gebräuchlichen Stufen gerastert, sondern in Schritten zu einem
Baud einstellbar gestaltet. Damit ist dann
auch wieder Fernschreibbetrieb mit QSQ-Partnern möglich, bei denen
die Fernschreibmaschine nicht exakt
eingestellt ist.
Bei elektronischen Terminals dürfte die Baudrate meist genau
stimmen, da sie von einem Quarzgenerator abgeleitet
wird, so daß dieses Problem hier keine Rolle spielt. Ein Test
ergab für 45 Baud einen Toleranzbereich des
Programms von 42 bis 47 Baud.
Dieses Programm realisiert alle für den
Amateurfunk notwendigen Funktionen einer Femschreibmaschine.
Darüber hinaus bietet es einige Funktionen, die zur Erleichterung
des Fernschreibbetriebs und zur Erhöhung
der Übertragungssicherheit dienen. Das Programm belegt den
Adreßbereich von 18B0H bis 1DAFH. Der restliche
Speicher von 1DB0H steht als Standardtextspeicher zur Verfügung.
Dieser Speicherplatz reicht bei geschickter
Anwendung für solche Texte wie RY-Zeile, CQ-Ruf, Vorstellung mit
Rapport, Stationsbeschreibung und für einen
Testtext aus. Da dieses Programm einerseits möglichst viel Komfort
bieten sollte, der benötigte Speicher aber
kaum mehr als 1,75 kByte betragen durfte, mußte auf einen
komfortablen Bedienerdialog bzw. eine Menüführung
sowie auf die Anzeige von Statusinformationen verzichtet werden. Das
wird einer späteren Version, die
eine Speichererweiterung erfordert, vorbehalten bleiben.
Wie aber die ersten Erfahrungen gezeigt haben, hat man sich an den
etwas spartanischen Dialog mit dem
Mikrocomputer schnell gewöhnt und ist dann in der Lage, damit
einen sicheren und schnellen Fernschreibbetrieb
zu realisieren. Der Ansprung der einzelnen Komponenten
Standardtextabspeicherung, Fernschreiben mit und ohne
"Diddle" erfolgt über Kennbuchstaben aus dem Monitor.
Vor dem eigentlichen Fernschreibbetrieb empfiehlt
es sich, erst einmal den Standardtextspeicher entsprechend
den eigenen Anforderungen und Vorstellungen zu beschreiben. Danach
sichert man sich das gesamte Programm
mit den Standardtexten auf Kassette, damit sie nicht jedesmal neu
eingegeben werden müssen. Auch mehrere
Versionen, z.B. in deutscher, russischer oder englischer Sprache, sind
denkbar. Der Standardtextspeicher
wird mit einem extra Programmteil gefüllt. Der Aufruf erfolgt
über den Kennbuchstaben "Y" aus dem Monitor,
natürlich nachdem das Programm eingetippt bzw. von Kassette
geladen wurde.
Nach dem Ansprung erfolgt die Ausschrift "TEXT:". Hier ist ein
ASCII-Zeichen einzugeben, unter dem der Text
dann im RTTY-Teil des Programms aufgerufen werden kann, Ausgenommen ist
der "*", der die Sonderfunktion
des Löschens bzw. Eingabeabbruchs übernimmt. Die nun
nachfolgend auf dem Schirm erscheinende vierstellige
Hexadezimalzahl gibt die noch freien Plätze im Textspeicher an.
Werden mehr Zeichen eingegeben, bricht das
Programm automatisch ab und kehrt zum Monitor zurück. Beendet wird
der jeweilige Standardtext mit einem "*".
Dieser erscheint nicht mit auf dem Schirm, sondern das Programm meldet
sich dann wieder mit dem "#" des Monitors.
Nun läßt sich der nächste Standardtext eingeben oder
man beginnt mit dem Fernschreibbetrieb. Wie schon gesagt,
dient der "*" auch als Löschzeichen. Wird er als Textnummer
eingegeben, so wird der gesamte Textspeicher gelöscht,
wird er als erstes Zeichen eines Textes eingegeben, so wird nur dieser
gelöscht.
Eine weitere Sonderfunktion ist dem "@" zugedacht. Es wirkt als
Stoppzeichen in Standardtexten, so daß hier
im Fernschreibbetrieb aktuelle Daten, wie z.B. Rapport oder Name des
QSO-Partners nachträglich eingegeben
werden können und nach dem ersten dabei eingegebenen Leerzeichen
der restliche Standardtext ausgegeben wird.
Hier ein Beispiel: "DER RAPPORT FUER SIE IST @ IN BERLIN ... ". Sind
alle Standardtexte eingegeben, wird mit
S 18A0 1FFF 0 RTTY das so komplettierte Programm erst einmal auf
Kassette gesichert. Tabelle 1 enthält die
Bedienfunktionen der Standardtextabspeicherung noch einmal
zusammengefaßt.
Nun kann mit dem eigentlichen RTTY-Betrieb begonnen
werden. Die ersten Durchläufer sollte man am besten
"trocken" trainieren, um die ersten QSOs nicht durch Bedienfehler zu
erschweren. Der Ansprung erfolgt über
kleine bzw. große X, je nachdem, ob in den Tastpausen nur der
Mark-Ton oder eine Buchstabenkennung, auch
"Diddle" genannt, ausgesendet werden soll. Nach dem Ansprung wird der
Schirm gelöscht und mit der Überschrift
"RTTY - AC 1 (C)Y21SO/Y27XO" versehen. In der untersten Zeile erscheint
die Aufforderung "BAUD #" zur Eingabe
der Baudrate. Es sind Eingaben zwischen 31 und 200 Baud in Schritten zu
einem Baud möglich. Nach Abschluß
der Eingabe mit CR wird das Empfangsprogramm initialisiert und der
Sendetext kann vorgeschrieben werden.
Auf der untersten Zeile blinkt der Cursor des Sendepuffers, der
empfangene Text wird ab der dritten Zeile
von unten geschrieben und nach oben gerollt.
Je mehr Sendetext vorgeschrieben wird, desto geringer ist der
verbleibende Empfangsspeicher, in dem gerollt wird.
Der Bildschirm ist sozusagen dynamisch, in Abhängigkeit vom
bereits vorgeschriebenen Sendetext, geteilt.
Damit der Empfangsspeicher nicht ganz verlorengeht, wird der
Sendepuffer nach der 11. Zeile begrenzt und jede
weitere Eingabe von Sendezeichen im Empfangszustand verweigert.
Es ist auch nur sinnvoll, Zeichen, die im Telegrafenalphabet Nr.2
enthalten sind, in den Sendepuffer zu
schreiben. Alle anderen Zeichen erscheinen zwar ebenfalls auf dem
Schirm, werden aber nicht ausgesendet.
Da aus Speichergründen der Bildschirm gleichzeitig als Sendepuffer
dient, wird anstelle des Zeichens CR (0DH),
das nicht in den Bildwiederholspeicher geschrieben werden kann, ein 60H
eingetragen. Bei anderen
Zeichengeneratoren als dem U 402 D kann das zur Darstellung eines
entsprechenden Symbols, z.B. einem
Apostroph führen, es wird aber trotzdem ein CR ausgegeben. Bei
mehr als 63 Zeichen je Zeile fügt das Programm
automatisch einen Wagenrücklauf/Zeilenvorschub ein. Die Benutzung
der Backspacefunktion ist natürlich
nur dann sinnvoll, solange das Zeichen noch nicht ausgesendet wurde.
Die Bedienung des RTTY-Programms erfolgt mit einer Reihe von
Steuerkodes (Control + Zeichen), die nachfolgend
erläutert werden:
Control + B
Ändern der Baudrate
Das Empfangsprogramm wird unterbrochen und die Baudrate kann neu
eingegeben werden. Bei Eingabe von 0,
gefolgt von CR oder nur CR, setzt das Programm den Empfang in der
zuletzt eingestellten Geschwindigkeit fort.
Hiermit ist eine Unterbrechungsmöglichkeit des Empfangs gegeben,
z.B. um Fehlerausschriften beim Absuchen
des Bandes nach einer RTTY-Station zu unterdrücken. Für den
Sendeteil des Programms gilt natürlich immer die
gleiche Baudrate wie für den Empfangsteil.
Control + C
Rückkehr zum Monitor
Diese Eingabe bricht den Empfang ab, setzt PIO und CTC zurück, und
übergibt die Steuerung wieder dem Monitor.
Ein direkter Übergang vom Sendeteil zum Monitor ist nicht
möglich. Hier muß erst auf Empfang geschaltet werden.
Control + E
Sende/Empfangs-Umschaltung
Die Aussendung von RTTY-Zeichen wird abgebrochen, das Programm geht
wieder in den Empfangszustand über.
Der Bildschirm rollt um drei Zeilen nach oben und zur Kennzeichnung
eines abgeschlossenen Durchgangs erscheint
eine Strichlinie auf dem Schirm.
Control + S
Empfangs/Sende-Umschaltung
Der Empfangsteil des Programms wird abgebrochen und die Ausgabe von
RTTY-Zeichen aus dem Sendepuffer beginnt.
Das gerade ausgesendete Zeichen erkennt man am Cursor, der dieses
für den Zeitraum der Ausgabe ersetzt.
So kann man leicht feststellen, bei welchem Zeichen sich das
Ausgabeprogramm gerade befindet. An PB3 wird
Low-Pegel eingestellt. Durch ein entsprechendes Interface, wie z.B. in
[2], kann man damit den Sender
einschalten.
Control + T
Kennzeichen Standardtextaufruf
Der Text, der unter dem Kennzeichen, welches nach Control + T folgen
muß, im Standardtextspeicher abgelegt ist,
erscheint im Sendepuffer.
Control + U
Registerumschaltung
Hiermit kann im Empfangsprogramm alternierend der gerade eingestellte
Registersatz gewechselt werden, also
von Buchstaben auf Ziffern und umgekehrt.
Control + W
Wortwiederholung
Der Text im Sendepuffer bis zum letzten Leerzeichen,
also meist das zuletzt eingegebene Wort, wird innerhalb
der Zeile wiederholt. Damit braucht man z.B. Rufzeichen oder Rapporte
nur einmal einzutippen und kann sie dann
mit nur einem Tastendruck wiederholen.
b bzw. z
Registerzeichenaussendung
Obwohl das Sendeprogramm automatisch das erforderliche Registerzeichen
einfügt und dies spätestens alle 10
Zeichen wiederholt, ist es möglich, auch einzelne Registerzeichen
auszusenden. Diese sind den beiden
Kleinbuchstaben b wie Buchstaben und z wie Ziffern zugeordnet.
Zur besseren Übersicht während der Bedienung dieses
Programms, sind die hier beschriebenen Steuerfunktionen
ebenfalls in Tabelle 1 kurz
aufgelistet.
Mit diesem Programm wurden ausgedehnte RTTY-Tests
unter den Bedingungen des 2-m-Bandes (Sendeart F2B, Shift
850 Hz) durchgeführt. Y21SO verwendete dazu die in [2] beschriebene
AFSK-Konverterschaltung mit dem A 290 D.
Verbindungen bis zu 150 Baud Übertragungsgeschwindigkeit waren
dabei fehlerfrei realisierbar, auch bei relativ
stark angerauschten Signalen. Die Versuche zeigten, daß die
Übertragungssicherheit bei höheren Geschwindigkeiten
u.a. von der Qualität des Sendesignals und von der verwendeten
Konverterschaltung abhängt.
Die Bedienung des Programms erwies sich nach kurzer Übung als
unkritisch und sicher. Durch die Speicherfunktionen
des Programms ist auch für weniger Geübte ein flüssiger
Betriebsablauf möglich. Die Anzeigekapazität, speziell
bei verdoppeltem Bildwiederholspeicher, reicht für den normalen
QSO-Betrieb völlig aus. Bei der Verwendung
von Kleinbuchstaben für den Empfangstext (Änderung siehe Tabelle 2) erhöht sich die
Übersichtlichkeit.
Um einen ersten Einblick in die Funktion dieses Programms zu geben,
sind in den Bildern 2 und 3
Teile von
durchgeführten RTTY-QSOs als Bildschirmfoto wiedergegeben.
Da es die Möglichkeiten der Autoren
überfordert, jedem Interessenten an diesem Programm eine Kassette
zu
bespielen, wird es dem einen oder anderen nicht erspart bleiben, es
Byte für Byte selbst einzutippen. Das
Listing des Programms ist in Tabelle 3
angegeben und kann mit dem M-Befehl des Monitors eingetippt werden.
Um geordnete Verhältnisse zu schaffen, die auch eine eventuelle
Fehlersuche vereinfachen, sollte der Speicher
zuvor von 18A0H bis 1FFFH mit 00 gefüllt werden. Damit ist dann
auch gleich der Standardtextspeicher gelöscht.
Ist alles eingetippt, empfiehlt es sich, erst einmal das Programm auf
Kassette zu sichern und danach "trocken"
seine Funktion zu testen. Sollte noch nicht alles funktionieren, sucht
man zuerst nach Tippfehlern, erst dann
überprüft man die angeschlossene Hardware. Sehr leicht wird
z.B. die erforderliche Brücke am CTC vergessen!
Das abgedruckte Listung enthält die Grundversion für 16
Zeilen Bildwiederholspeicher und den U 402 D als
Zeichengenerator. Auch auf bereits erweiterten Amateurcornputern
läuft das Programm nach wenigen geänderten
Bytes einwandfrei. In Tabelle 2
sind die zu ändernden Stellen
für verdoppelten Bildwiederholspeicher sowie
für einen erweiterten Zeichengenerator angegeben.
Die Autoren möchten sich bei den OMs, die mithalfen, dieses
RTTY-Programm zu testen, herzlich bedanken und
wünschen allen Nutzern viel Spaß damit und interessante
RTTY-QSOs.
[1] | Heyder, F.: Funkamateure entwickeln Amateurcomputer "AC1", FUNKAMATEUR 33 (1984), H.5, S.221 |
[2] | Rössel, G.: Ein einfacher Funkfernschreibzusatz
für den Amateurcomputer "AC1", FUNKAMATEUR 35 (1986), H.2, S.98 |
18 KByte | 121 KByte | 44 KByte |
Bild 1 | Tabelle 1 | Tabelle 2 |
167 KByte | 279 KByte |
Bild 2 | Tabelle 3 |