RS232 - Amateurfunk-Station DK1IO

Direkt zum Seiteninhalt

Hauptmenü

RS232

Die serielle Schnittstelle, auch CommPort genannt, ist nach wie vor das wichtigste Bindeglied zwischen PC und Funkgerät.
Mit den entsprechenden Steuerbefehlen kann die Bedienung des Geräts vom Computer aus erfolgen.
Es gibt inzwischen viele Programme, die davon Gebrauch machen.
Bei einigen Programmen beschränkt sich die Ausnutzung des CommPorts auf die Steuerung der PTT über die Leitungen RTS und/oder DTR. Andere senden ganze Befehlsequenzen in Stringform an das Funkgerät.
Die häufige Verwendung der seriellen Schnittstelle zur Steuerung von Funkgeräten steht jedoch in krassem Gegensatz zu ihrem Vorhandensein in PC und Laptop. Moderne Motherboards haben zwar noch eine Schnittstelle, die jedoch nicht herausgeführt ist. Darum muss sich der Besitzer selber kümmern. Bei Laptops/Tablets fehlen sie völlig. Dafür besitzen aber alle Rechner mindestens einen USB-Anschluss.
Hier springen die USB/Seriell-Adapter in die Bresche, die am Rechner an einen USB-Port angeschlossen werden und am Funkgerät an den RS232-Anschluss. Damit wird idealerweise ein kompletter CommPort nachgeahmt, der dann auch im Windows-Gerätemanager zu finden ist. Da aber auch Software in Form von Treibern beteiligt ist, beginnt hier das Problem. Es gibt nämlich zwar keine Vielzahl, aber doch einige unterschiedlich Chipsätze für die USB-Seriell-Adapter, und natürlich benötigen diese unterschiedliche Treiber. Wer das Problem umgehen will, nimmt Adapter mit FTDI-Chipsatz. Damit ist er aus dem Schneider. Beim Anschluss des Adapters an den Rechner wird von Windows der Treiber automatisch geladen, in diesem Fall also wiklich 'Plug and Play'.
Die neueren Funkeräte besitzen keine serielle Schnittstelle mehr, sondern sind mit einem USB-Anschluss ausgestattet. Auch hier müssen Treiber installert werden, die dann eine virtuelle serielle Schnittstelle bereistellen.
Aber egal, ob eine originäre RS232-Schnittstelle oder ein Adapter, einige Dinge sind zu beachten.
Unter Windows ist die Verwendung der Schnittstelle sehr restriktiv. Nur die Anwendung, die den Port öffnet, kann ihn auch verwenden. Zugriffe von anderen Programmen werden abgewiesen. Das ist ärgerlich, wenn man selber mit einem Zusatzprogramm Funktionen steuern will. Eine Möglichkeit ist ein Y-Adapter für den Commport des Funkgeräts, so dass von zwei Rechneranschlüssen darauf zugegriffen werden kann. Das kann aber zu Konflikten führen.
Die gängige Methode ist deshalb die Verwendung von virtuellen CommPorts.
Ich habe zwei unterschiedliche Programme getestet, 'Virtual Serial Port Manager' und 'Virtual Serial Port Emulator'. Beide erfüllen die Aufgaben, für die sie geschaffen wurden.

Virtual Serial Port Emulator (VSPE)
bietet viele Möglichkeiten, von denen jedoch nur eine für mich in Frage kommt, der Splitter-Modus. Damit wird eine virtueller CommPort erzeugt, auf den mehrere Anwendungen zugreifen können und der mit dem real existierenden Port verbunden ist.
Beim Einrichten des Programms wird eine Datei erzeugt, in der die Einstellungen abgespeichert werden und die bei jedem Start von VSPE geladen werden muss. VSPE arbeitet zuverlässig, was mich jedoch stört ist das Hangeln durch zwei Fenster, die zum Kauf des Lizenzschlüssels auffordern (nicht registrierte Version), was das automatisierte Starten des Programms doch sehr erschwert. Weiterhin muss VSPE bei jedem Windows-Neustart auch neu gestartet werden.
Der erzeugte virtuelle CommPort erscheint nicht im Gerätemanager.

Bild 1



Virtual Serial Port Manager (VSP Manager)
ist insofern etwas Besonderes, als man es nicht einfach irgendwo herunterladen kann, sondern sich dafür bei K5FR per eMail anmelden muss. Und das Ganze funktioniert auch nur, wenn man lizensierter Funkamateur mit Rufzeichen ist.
Ich habe nach einigen Stunden den Link zum Download per eMail erhalten.
Nach Aufruf des Programms (als Administrator) erscheint ein Fenster, in dem man ein Paar virtuelle Ports erzeugen kann. Im Grunde handelt es sich um ein virtuelles serielles Kabel mit je einem CommPort an den Enden. VSP Manager ist also nicht gedacht zur Verbindung mit einem real existierenden Port, sondern als Schnittstelle zwischen zwei Anwendungen. K5FR weist auf seiner Homepage für die Verbindung mit einem realen CommPort auf VSPE hin.
Die beiden Checkboxen nicht mit Häkchen versehen!

Bild 2


Nachdem die virtuellen Ports erzeugt worden sind, erscheinen sie auch im Gerätemanager.
Sie werden dauerhaft abgespeichert, d. h. sie sind nach einem Windows-(Neu)Start wieder zugänglich.

Bild 3


Weil ich mich mit VSPE nicht so richtig anfreunden konnte, habe ich nach einem Weg gesucht, mit VSP Manager das Gleiche zu erreichen.
Gedacht ist das Ganze für WSJT-X, um parallel dazu den CommPort verwenden zu können.
Die Realisierung ist ziemlich einfach: ein Timer löst regelmäßig ein Ereignis aus, das in der PureBasic Ereignisschleife ausgewertet wird.
WSJT-X benutzt den virtuellen Port 7, mein Zusatzprogramm den Port 17. Der reale Port für das Funkgeräts ist COM3.
Bei Auftreten des Timer-Ereignisses schaut das Programm nach, ob WSJT-X etwas von Port 7 an Port 17 gesendet hat. Wenn ja, werden die Daten aus Port 17 in einen Puffer geschrieben,
dessen Inhalt anschließend weiter an Port 3 zum Funkgerät gesendet werden. In umgekehrter Richtung wird es genauso gemacht, voila. Kein großes Ding, aber es funktioniert zuverlässig.
Und natürlich kann das Zusatzprogramm nicht nur die Befehle weiterleiten, sondern auch eigene Befehle an COM3 geben, z. B. eine Änderung der Sendeleistung.
Das folgende Bild zeigt die Verbindung zwischen den einzelnen Komponenten:

Bild 4


Der Programmcode des Timer-Ereignisses:

Repeat
 Select WaitWindowEvent()
   Case #PB_Event_Timer
     Select EventTimer()
       Case #Tmr_Comm
         int1 = AvailableSerialPortInput(#COM_17)
         If int1
           ReadSerialPortData(#COM_17, *CommBuf, int1)
           WriteSerialPortData(#COM_K3, *CommBuf, int1))
          EndIf
         int1 = AvailableSerialPortInput(#COM_K3)
         If int1
           ReadSerialPortData(#COM_K3, *CommBuf, int1)
           WriteSerialPortData(#COM_17, *CommBuf, int1)
         EndIf



Bluetooth-CommPorts
Es gibt nicht nur virtuelle, sondern auch drahtlose CommPorts, bei denen also die Daten via Funk übertragen werden.
Das ist dann extrem nützlich, wenn man kein Kabel verlegen will oder kann.
Benötigt wird dazu ein USB-Bluetooth-Adapter, der in einen USB-Anschluss des PC gesteckt wird.
Auf der anderen Seite, also an dem Gerät, das gesteuert werden soll, kommt ein Bluetooth-Seriell-Adapter zum Einsatz.
Dieser muss natürlich mit Strom versorgt werden, so dass sich das eingesparte serielle Kabel wieder relativiert.
Ein Akku tut es natürlich auch.
Als erstes müssen beide Adapter verbunden werden. In Windows 10 funktioniert das folgendermaßen:
Start - Einstellungen - Geräte - Bluetooth
Windows sucht nun nach neuen Bluetooth-Geräten. Wenn es den Seriell-Adapter gefunden hat, erscheint eine Meldung
Kopplungsbereit mit dem Namen oder Unbekannt.
Auf die Meldung klicken, dann auf
Koppeln klicken. In dem sich öffnenden Fenster ist die Gerätekennung einzugeben, meist 1234.
Dann auf
Weiter, und wenn alles normal verlaufen ist, kommt die Meldung Verbunden. Man kann sich jetzt ansehen, welche CommPorts Windows für die Bluetooth-Verbindung bereitgestellt hat:
Weitere Bluetooth-Optionen - COM-Anschlüsse
Hier sieht man die beiden neu geschaffenen CommPorts. Der mit
Ausgehend gekenzeichnete Port ist der, der für die Verbindung mit dem zu steuernden Gerät zuständig ist.
Wem die zugewiesenen Port-Nummern nicht genehm sind, kann diese im Gerätemanager ändern.

Serielle Kommunikation via USB
Bei neuen Funkgeräten wird die Verbinung zum PC über ein USB-Kabel hergestellt.
Im TRX ist dann die entsprechende Hardware eingebaut, die die erforderlichen Steuerleitungen einer seriellen Schnittstelle herstellen, wobei der Begriff "erforderlich" durchaus unterschiedlich interpretiert wird.
Per Treiberinstallation werden dann ein oder zwei virtuelle CommPorts zu Verfügung gestellt.
Leider werden nicht bei allen Transceivern die Steuerleitungen DTR und RTS emuliert. Das macht sich dann bemerkbar, wenn der PC Texte in Morsecode ausgeben soll.
Als Indikator, ob DTR und RTS vorhanden sind, lässt sich
WSJT-X einsetzen. Im Bereich PTT Method DTR oder RTS wählen und Test PTT anklicken.
Wenn der TRX nicht auf Sendung geht, fehlen die Steuerleitungen. Bei mir ist das beim IC-7100 der Fall




























Zurück zum Seiteninhalt | Zurück zum Hauptmenü