Hallo macropode,
ganz so wie Du es denkst ist es leider nicht.
Jeder COM-Port verfügt über 8 Signalleitungen und einen Masse-Pin (ergibt 9).
Früher waren mal 25-polige Stecker in Mode, aber nicht alle Pins belegt.
Standardisiert sind die schon erwähnten 8 Signale.
Davon sind 2 die Transmit/ Receive Leitungen (TxD/ RxD).
Die anderen 6 sind sogenannte Handshake-Leitungen (Steuerleitungen).
Man verwendet einige davon um die Übertragung zwischen seriellen 2 Geräten zu
koordinieren, wenn man kein Software-Handshaking (z.B. X-ON/OFF) einsetzen kann.
Von den 6 Handshake-Leitungen kannst Du 4 als digitale Eingänge verwenden, und
2 als digitale Ausgänge. Einen 3 Ausgang bekommst Du einen Trick. Man kann auch
den Transmit-Pin direkt und dauerhaft setzen. Er wirkt dann wie ein digitaler Ausgang.
Wenn Dein Rechner 2 Com-Ports hat, macht das in Summa 6 Ausgänge, und 8 Eingänge.
Da die Ausgänge aber keine Leistung treiben können, muß der Pegel verstärkt werden.
Ganz einfach und billig geht das, wenn man elektronische Lastrelais (Solid State Relay)
verwendet. Such mal bei Conrad z.B. nach:
S202T01 SOLID STATE
Artikel-Nr.: 162566 - V3 (4,95Euro).
--------- VORSICHT , siehe nächster Abschnitt ---------
Eingangssignale kann man direkt anlegen, sofern der Pegel 12V nicht übersteigt.
Idealerweise kann man die Spannung für die Eingänge vom Rechnernetzteil abnehmen,
+5V oder +12V (geht beides).
Edit am 01.01.2008:
_____________________________
Mit +12 V auf den COM-Ports muß man heutzutage verdammt vorsichtig sein (Finger von +12 V lassen, nur + 5 V benutzen).
Der Grund ist der allgemeine Energie-Spar-Wahn und der Trend zu Low-Power-Consumption-Devices.
Wir haben leider die Erfahrung machen müssen, daß einige Hersteller die Spezifikation nicht mehr einhalten (Pegel > -15 V bis < 15 V)
Dabei sind uns bereits einge CPU-Karten abgebrannt (Hersteller u.a . Kontron/ Spectra).
Also Vorsicht! - mit 5 V arbeiten wir nach wie vor fast ohne Probleme (5 V Signale sind einfach störanfälliger in problematischer Umgebung, aber nix geht kaputt).
... Ich habe bis jetzt noch nicht probiert mein neuestes Notebook seriell mit einem alten i386 zu koppeln und dann ein serielles Protokoll mit Handshake zu fahren.
Wäre wahrscheinlich auch schade um das Notebook, denn das arbeitet gerade noch so mit + 3.6 V auf den Handshake-Leitungen.
_____________________________
END_EDIT
Hier ist mal ein Auszug aus einem Programm, was ich dafür mal gemacht habe
(allerding unter MS-DOS).
Das Prinzip unter DOS ist folgendes:
- die COM-Ports werden über Adressen angesprochen
- da die einzelnen Bits nicht direkt, sondern Byteweise unter einer Adresse angesprochen werden,
muss man zum Setzen den Status zuerst lesen, und dann bitweise eine OR Verknüpfung machen.
(Entsprechend zum Löschen der Bits eine UND Verknüpfung).
- Wenn man die Ausgänge einzeln und unabhängig voneinander setzen möchte,
bitte vor jedem Setzen zuerst wieder Status einlesen!
Unter Windows ist das leider alles so ziemlich vorbei. Unter Win98 funktioniert es bedingt.
Ab Win2K geht diese Methode gar nicht mehr, da es keine direkten Zugriffe auf die Hardware gibt.
Trost: es gibt einen Treiber dafür.
... und es gibt einen Experten im Internet, der das ganze hervorragend erklärt hat:
http://www.franksteinberg.de
Das ist ein Stück von meinem i, wird Dir so nicht viel sagen:
// Ausgaberegister vergleichen und setzen
read_com();
if ((DTR1_Key > 0) || (DTR1_KeyStat == 1)) // DTR1 setzen
outportb(COM1_Adr + 4, (COM1_Base4 | 1));
else
outportb(COM1_Adr + 4, (COM1_Base4 & 254));
read_com();
if ((RTS1_Key > 0) || (RTS1_KeyStat == 1)) // RTS1 setzen
outportb(COM1_Adr + 4, (COM1_Base4 | 2));
else
outportb(COM1_Adr + 4, (COM1_Base4 & 253));
read_com();
if ((TXD1_Key > 0) || (TXD1_KeyStat == 1)) // TXD1 setzen
outportb(COM1_Adr + 3, (COM1_Base3 | 64));
else
outportb(COM1_Adr + 3, (COM1_Base3 & 191));
Wenn Du einen alten Dos-Rechner zum probieren hast, kann ich Dir das komplette Teil zukommen lassen.
Es funktioniert mit beiden Com-Ports gleichzeitig.
Müstest mir halt nur posten wo ich es hin schießen soll.
Soweit erst mal zum Thema.
Beste Grüße Napstix