Welches Nullmodemkabel ist für den Betrieb der WTools "richtig" ?

Da ich sowohl letztes als auch dieses Jahr einige Fragen zum Kabel für die Verbindung von KC und PC beantwortet habe, versuche ich mal an dieser Stelle die ganze Geschichte im Detail darzustellen. Ich beziehe mich hier PC-seitig ausdrücklich auf die WTools und die unbedingt notwendigen Voraussetzungen, damit das Programm korrekt mit der Gegenstelle kommunizieren kann.

Das Problem bei der ganzen Sache sind verschiedene gebräuchliche Protokolle für die serielle Kommunikation zwischen Computern und die daraus resultierenden verschiedenartigsten Kabel, selbst ein käuflich zu erwerbendes Nullmodemkabel muss bei verschiedenen Herstellern nicht zwangsläufig die gleiche Verschaltung zwischen den Pins der Anschlüsse haben.

Für den erfolgreichen Einsatz der WTools sind bei der Verbindung von Anschlusspins auf beiden Seiten durch das verwendete Kabel die folgenden 3 Funktionen sicherzustellen:

  1. Datenübertragung
  2. Hardware-Handshake
  3. Verbindungsstatus


Datenübertragung

Der Transport der Daten ist meist noch sonnenklar, neben der beidseitigen GND-Verbindung muss der sendende Ausgang (TxD) mit dem empfangenden Eingang (RxD) des Gegenübers und umgekehrt verbunden werden - dort sind auch alle Nullmodemkabel gleich.


Hardware-Handshake

Schwieriger wird es bei den Steuerleitungen für das Hardware-Handshake. Eine 9-polige serielle Schnittstelle hat davon noch 6 Stück zur Verfügung, wobei es 2 Ausgänge und 4 Eingänge gibt.

Die in der Hilfe der WTools abgebildete Variante stammt von "Hama" und funktioniert nachweislich am M051 - das benutze ich selbst, seine Beschaltung habe ich mit einem Messgerät durchgemessen und daraus ist die Abbildung in der Hilfe entstanden:

Kabel M051


Für das Verständnis der Funktion des Hardware-Handshakes sind die kleinen Pfeile der Verbindungslinien zwischen den beiden Schnittstellen in der Abbildung sehr wichtig. Pfeil vorhanden bedeutet, dass dieses Pin ein Eingang ist und ohne Pfeil demzufolge ein Ausgang.

Ein Ausgang des einen Teilnehmers kann nun einem Eingang des Gegenübers durch das Anlegen einer bestimmten Spannung mitteilen, ob Daten übertragen werden können. Ist diese Spannung z.B. -12V, dürfen Daten gesendet werden, ist sie +12V dürfen keine Daten gesendet werden. So kann der Empfänger dem Sender mitteilen, ob er bereit ist, Daten zu empfangen oder nicht und genau diese Aufgabe hat der Hardware-Handshake, die Sperre bzw. Freigabe der Datenübertragung per Hardwaresignal.

Da die 9 polige serielle Schnittstelle 2 verschiede Ausgangs-Steuerleitungen (RTS, DTR) hat, gibt es natürlich auch 2 gebräuchliche Hardware-Handshake Protokolle, alles andere wäre ja zu einfach. Auf keinen Fall dürfen 2 Eingänge oder 2 Ausgänge miteinander verbunden werden, erstens macht das funktional keinen Sinn und zweitens kann man dadurch die Hardware der Schnittstelle u.U. zerstören.

Die WTools erwarten am Eingang CTS das Bereitschaftssignal des KC85 und schalten selbst den Ausgang RTS entsprechend ihrer eigenen Bereitschaft um - es wird der RTS/CTS Handshake verwendet. Natürlich funktioniert das nur, wenn es in den Eigenschaften der COM-Schnittstelle unter Flusskontrolle aktiviert wurde. Damit es aber überhaupt funktionieren kann, müssen beim M051-Kabel die Pins 7 und 8 kreuzweise verbunden sein, so wie es im Bild auch zu sehen ist.

Beim M003-Kabel ist das prinzipiell genauso, nur müssen dort der KC-Ausgang DTR für die KC-Bereitschaft und der KC-Eingang CTS für die WTools-Bereitschaft benutzt werden, da es keine anderen Ein- bzw. Ausgänge gibt und es sonst überhaupt nicht funktionieren würde. Hier wird also von den WTools weiterhin das RTS/CTS- aber auf der KC-Seite das DTR/CTS Handshake benutzt. Das ist durch die Verwendung eines speziellen M003-Kabels, welches aber aufgrund des DIN-Anschlusses auf der KC-Seite sowieso nötig ist,  ja auch kein Problem.


Verbindungsstatus

Zusätzlich zum Handshake der Datenübertragung überprüfen die WTools vor jeder Sendung, ob überhaupt ein Kabel an der Schnittstelle steckt.

Das wird durch die Überwachung der Spannung an DCD erledigt, indem der Pegel von DCD ein Freigabeflag in den WTools setzt oder zurücksetzt. Wenn dieses Freigabeflag nicht gesetzt ist, meldet sich das Programm mit dem folgenden Fenster:


Verbindungsfehler


Woher der Pegel an DCD kommt, ist dabei egal.

Die Kabelvariante des M051 (siehe Bild oben) setzt voraus, dass der KC85 an der Schnittstelle des M051 den Ausgang DTR aktiviert, wenn das Modul benutzt werden soll. Genau das erfolgt auch, wenn man den entsprechenden Koppel-Treiber für das M051 lädt. Erst dann wird die LED Verbindung in den WTools grün und erst dann ist eine Datenübertragung per M051 möglich.
Ganz anders ist das, wenn man KC-seitig mit einem M003 arbeiten will. Dann braucht man zwar prinzipiell sowieso ein anderes Kabel, da das M003 keinen 9 poligen SUB-D Anschluss hat aber das M003 hat auch keinen freien Ausgang, wo man statisch den Zustand der Verbindung ausgeben könnte. Der DTR-Ausgang wird beim M003 unbedingt für die Realisierung der Hardware-Handshake Funktion benötigt, da es insgesamt nur einen Ausgang gibt!

Deshalb greift man zu einem kleinen Trick und lässt den PC das selbst erledigen. Der DTR-Ausgang des PC hat beim Anschluss am M003 sowieso keine Anschlusspins auf der Gegenseite, da alle verfügbaren Anschlüsse des M003-Kanals für die Datenübertragung und den Hardware-Handshake gebraucht werden:


Kabel M003
Wie man gut sehen kann, wird der PC-Ausgang DTR direkt auf die PC-Eingänge DSR und DCD im PC-Anschluss-Stecker zurückgeführt. Was passiert da?

Wenn man die COM-Schnittstelle öffnet, schalten die WTools den DTR-Ausgang selbst ein (siehe erweiterte Einstellungen -> Hardware -> DTR einschalten). Damit liegt dann auch automatisch am PC-Eingang DCD der richtige Pegel an und die WTools funktionieren - aber nur wenn am PC das Kabel mit dieser Brücke auch physisch an der Schnittstelle angesteckt ist!

Man kann zwar damit nicht erkennen, ob das Kabel am KC angesteckt ist aber ob überhaupt ein Kabel am PC angesteckt ist, lässt sich herausfinden und das ist besser als gar nichts.


Übersicht und Zusammenfassung

Es müssen also genau 6 Pins an der PC-Schnittstelle richtig verbunden bzw. angeschlossen werden, damit die Kommunikation mit den WTools physisch funktionieren kann:


WTools Anschluss


Alle 6 Signalleitungen werden im Hauptfenster der WTools durch LED visualisiert, wo man die korrekte Funktion während einer Datenübertragung mehr oder weniger gut verfolgen kann. Wenn eine dieser LED nie auf grün geht, liegt mit hoher Wahrscheinlichkeit ein Kabelproblem vor, insbesondere die LED Verbindung muss grün sein, bevor man überhaupt Befehle vom KC85 abschicken kann.

Wie man nun hoffentlich sehen kann, gibt es eigentlich kein "richtiges" Nullmodemkabel, es hängt davon ab, welches Hardwareprotokoll für den Handshake und Status mit welchen Signalleitungen verwendet wird. Da die Bedeutung der Pins der seriellen Schnittstelle feststeht und mehrere Ein- bzw. Ausgänge auf beiden Seiten zur Verfügung stehen, sind dort viele Kombinationen möglich.