Aufmacher News
Serielle Fernsteuerung: Schnell geschaltet

Serielle Fernsteuerung: Schnell geschaltet

14.08.2000

Ob Fileserver oder Druckerspooler: Rechner, die nur eine spezielle Funktion haben, benötigen eigentlich weder Monitor noch Tastatur - wenn nicht hin und wieder eine CD gewechselt oder das System am Wochenende heruntergefahren werden müsste ...
Jeder, der irgend wo im Haus einen Server stationiert hat, kennt bestimmt das Problem: Um die CD zu wechseln muss man sich von einem Arbeitsplatz aus einloggen, unmounten, dann mit der CD zum Server und nach dem Wechsel wiederum am Arbeitsplatz mounten. Oder der als Druckerspooler weiterbenutzte 486er soll zum Wochenende abgeschaltet werden - dass er noch nicht heruntergefahren wurde, merkt man natürlich erst nach dem Shutdown der letzten Workstation. Nach kurzer Zeit gesellen sich dann doch wieder Monitor und Tastatur dazu, um nicht ständig zwischen Arbeitsplatz und Server hin und her laufen zu müssen.

Nüchtern betrachtet sind es nur wenige Aktionen wie Shutdown, (un)mounten der CD-Laufwerke oder Start/Fortsetzung des Backups, die man immer wieder direkt am Server anstoßen müsste. Auf der anderen Seite hat die serielle Schnittstelle verschiedene Statusleitungen, die man ohne großen Aufwand abfragen kann. Beides zusammen ergibt eine einfache und sehr kostengünstige Fernsteuerung.

Ein- und Ausgänge

Ein Blick auf Tabelle 1 zeigt, dass wir insgesamt fünf Eingänge und drei Ausgänge haben, wobei die Sende- und Empfangsleitung (RXD, TXD) zunächst ausgeklammert bleiben. Um einen der Eingänge zu schalten, benötigen wir eine Spannung. Wir könnten diese extern über ein Netzteil oder intern über einen Festplatten-Stromanschluss bekommen, doch das ist kritisch. Die serielle Schnittstelle reagiert empfindlich auf zu hohe Spannungen und insbesondere zu hohe Ströme. Da die Bausteine heutzutage auf dem Mainboard untergebracht sind, lässt sich eine beschädigte serielle Schnittstelle auch nicht mehr einfach austauschen. Deshalb benutzen wir einen der Ausgänge als Spannungsversorgung für die Eingänge. Übrig bleiben also vier Eingänge, ein frei schaltbarer Ausgang zum Beispiel für eine LED sowie ein zweiter, bedingt schaltbarer Ausgang.

Tabelle 1: Pinbelegung der seriellen Schnittstelle

9pol. 25pol. Typ Signal Bezeichnung
1 8 Eingang CD Carrier Detect
2 3 Eingang RXD Receive Data
3 2 Ausgang TXD Transmit Data
4 20 Ausgang DTR Data Terminal Ready
5 7 - GND Ground
6 6 Eingang DSR Data Set Ready
7 4 Ausgang RTS Request To Send
8 5 Eingang CTS Clear To Send
9 22 Eingang RI Ring Indicator

Beschaltung der Ein-/Ausgänge

Den ersten Ausgang RTS verwenden wir für eine gelbe LED, sie wird mit einem Vorwiderstand zwischen Ausgang und Masse geschaltet. Diese können wir für Statusmeldungen oder als Quittung für eine Aktion verwenden (an/aus/blinken). Der Vorwiderstand sollte so bemessen sein, dass nicht mehr als 20 mA Strom fließen, üblicherweise 2,2 kOhm.

Der zweite Ausgang muss aktiviert sein, um überhaupt die Eingänge schalten zu können - Er eignet sich also hervorragend als System-Zustandsanzeige. Dazu nutzen wir aus, dass der Low-Pegel der seriellen Schnittstelle nicht Masse (GND) ist, sondern eine negative Spannung. Schaltet man zwischen den Ausgang DTR und Masse einen Vorwiderstand und eine zweipolige Dual-LED (Umpolung der LED bewirkt Farbwechsel zwischen rot und grün), so sind bei rot die Tasten inaktiv (da negative Spannung). Die Ausgänge sind bei Einschalten des Geräts beide Low, so dass die LED zunächst rot ist. Nach Start des Kontrollprogramms (zum Beispiel über ein Init-Script) setzt man dann DTR auf High - die LED wird grün und die Eingänge können geschaltet werden. Die vier Eingänge CD, DSR, CTS und RI werden über fünf Taster und einen gemeinsamen Vorwiderstand von 10 kOhm mit dem Ausgang DTR verbunden. Um einen versehentlichen Shutdown durch Berühren einer Taste zu vermeiden, wurden beim Beispielaufbau in Abb. 1 zwei rote Taster in Reihe geschaltet und mit RI verbunden - es müssen also beide gedrückt sein. Die Taster dienen gleichzeitig als Fassung für die beiden LED und liegen zur Sicherheit so weit wie möglich auseinander.

SerielleFernsteuerung.jpg

Abb. 1: Musteraufbau mit fünf Tasten

Kontrollprogramm

Wie oben beschrieben wird duch Aktivierung des Ausgangs RTS die gelbe Leutdiode eingeschaltet. Das auf unserem FTP-Server veröffentlichte Kontrollprogramm verwendet die LED als Quittung, dass ein Tastendruck erkannt und die zugehörige Aktion ausgelöst wurde. Sie wird nach Ende der Aktion wieder gelöscht. Tritt während dessen ein Fehler auf, blinkt die gelbe LED. Die Dual-LED an DTR dient der Bereitschaftsanzeige. Bei Start des Kontrollprogramms wird sie auf grün geschaltet, am Programmende auf rot.

Die Eingänge werden in einer Schleife alle 75 ms abgefragt. Eine Taste gilt dann als gedrückt, wenn die Eingänge drei Durchläufe (also 225 ms) lang unverändert bleiben. Das 75 ms-Intervall ist wilkürlich gesetzt und ein Kompromiss zwischen CPU-Last und Reaktionsgeschwindigkeit. Das Programm kann zwischen einzelnen Tasten und Tastenkombinationen unterscheiden, aktuell sind zwei Aktionen implementiert: Sind beide rote Tasten gedrückt (Eingang RI high), wird die gelbe LED gesetzt und das System heruntergefahren (halt). Sind eine oder mehrere weiße Tasten gedrückt, so erfolgt ein umount von /dev/cdrom sowie der Auswurf oder Einziehen und mounten auf /cdrom. Insgesamt lassen sich inklusive Kombinationen sieben Aktionen mit den weißen Tasten auslösen. Die roten Tasten sollten dem Shutdown vorbehalten bleiben.

Das C-Listing des Kontrollprogramms ist mit einigen Kommentaren versehen, die Umsetzung eigene Wünsche sollte nicht weiter schwer fallen. An ein Verlängerungskabel angeschlossen und mit entsprechend geänderten Tastenbelegungen kann man sogar die Lautstärke der Soundkarte regeln und mpg123 steuern, wenn man zum Musikhören den Schreibtisch mal verlässt.

Nachbau

Es ist nicht unbedingt notwendig, das Platinenlayout aus Abb. 2 zu benutzen - prinzipiell kann man auch einfach Taster und seperate LED-Fassungen in eine Laufwerksabdeckung schrauben und frei verdrahten. Das Layout ist für die in der Bauteilliste angegebenen Taster mit und ohne LED-Fassung vorgesehen, die man unter anderem bei Reichelt Elektronik (http://www.reichelt.de) bekommt. Wichtig ist nur, auf die richtige Polarität der beiden Leuchtdioden zu achten - und vor allem auf Kurzschlüsse! Die seriellen Schnittstellen befinden sich üblicherweise zusammen mit ISA-Bridge und IDE-Interface in der Southbridge direkt auf dem Mainboard - tragisch, wenn diese den Geist aufgeben würde. Besser, man greift zu einer seperaten Multi-IO-Karte - zudem hat man dann auch kein Problem mit der Kabelführung, weil man innen an die Pfostenstecker heran kann. Der Anschluss erfolgt entweder mit Flachbandkabel von außen, oder über eine Pfostenbuchse direkt auf den Stecker des Mainboards oder der Schnittstellenkarte. Achtung, die Belegung der Pfostenstecker ist durchaus unterschiedlich und sollte nachgeschlagen werden.

Anschlußbelegung Platine

Pin Signal Bauteil
1+2 GND -
3+4 CD weißer Taster, links
5+6 DSR weißer Taster, Mitte
7+8 CTS weißer Taster, rechts
9+10 RI rote Taster (Reihenschaltung)
11+12 RTS gelbe LED
13+14 DTR rot/grüne LED

Ausblick

Durch Verwendung eines einfachen Multiplexers kann man statt drei sieben weiße Tasten einbauen, dann jedoch ohne Mehrfachkombinationen. Zudem lässt sich über ein Interface noch ein Display für zusätzliche Informationen anschließen (dafür wurden RXD und TXD freigehalten), doch dies sei einem späteren Artikel vorbehalten. Mit der hier beschriebenen seriellen Fernsteuerung lassen sich viele alltägliche Probleme lösen, für die man sonst Monitor und Tastatur gebraucht hätte. (mdö)

Bauteileliste

Anzahl Typ Beschreibung
3 DIT 1 Taster weiß
2 DTL 2 Taster rot mit LED-Fassung 3mm
1 SLK 3mm LED 3mm gelb
1 3RG LED 3mm rot/grün, zweipolig
2 - Widerstand 2,2 kOhm
1 - Widerstand 10 kOhm

Bestueckungsplan.jpg

Abb. 2: Bestückungsplan

PlatinenLayout.jpg

Platinen-Layout (PostScript-Datei)

Copyright © 2000 Linux New Media AG

Tip a friend    Druckansicht beenden Bookmark and Share

Alles Ausklappen

Kommentare
Bekomme Serielle Fernsteuerung nicht gestartet!
Roland Kaiser, Sonntag, 27. Februar 2005 18:25:37
Ein/Ausklappen
Re: Serielle Fernsteuerung: Schnell geschaltet
(unangemeldet), Donnerstag, 30. Mai 2002 12:48:59
Ein/Ausklappen
Möchte 3 CD-ROM-Laufwerke mit 3 Tasten ansteuern
(unangemeldet), Freitag, 23. November 2001 11:31:41
Ein/Ausklappen
Frage zur Schaltung 10k-Widerstand
(unangemeldet), Dienstag, 09. Januar 2001 15:22:58
Ein/Ausklappen
-
Re: Frage zur Schaltung 10k-Widerstand
(unangemeldet), Freitag, 23. November 2001 11:37:48
Ein/Ausklappen
Serielle Fernsteuerung geht bei mir nicht ... LED schon aber sonst null Reaktion
(unangemeldet), Samstag, 30. Dezember 2000 19:47:58
Ein/Ausklappen
Weitere Beispielprogramme auf FTP-Server
Mirko Dölle, Donnerstag, 24. August 2000 10:04:45
Ein/Ausklappen
Steuerung mit Perl?
(unangemeldet), Sonntag, 20. August 2000 16:47:15
Ein/Ausklappen
-
Re: Steuerung mit Perl?
(unangemeldet), Dienstag, 22. August 2000 02:59:27
Ein/Ausklappen
txd-leitung auf high
(unangemeldet), Donnerstag, 17. August 2000 23:21:19
Ein/Ausklappen
Rechner automatisch Ausschalten
(unangemeldet), Donnerstag, 17. August 2000 17:54:18
Ein/Ausklappen
-
Re: Rechner automatisch Ausschalten
Mirko Dölle, Montag, 21. August 2000 00:47:20
Ein/Ausklappen
Super
Ralf Baerwaldt, Dienstag, 15. August 2000 14:41:19
Ein/Ausklappen
-
Re: Super
(unangemeldet), Dienstag, 15. August 2000 15:08:27
Ein/Ausklappen
-
Re: Super
(unangemeldet), Dienstag, 15. August 2000 17:52:24
Ein/Ausklappen
-
Re: Super
(unangemeldet), Dienstag, 15. August 2000 18:08:37
Ein/Ausklappen
-
Re: Super
(unangemeldet), Dienstag, 15. August 2000 18:36:07
Ein/Ausklappen
-
Re: Super
(unangemeldet), Mittwoch, 16. August 2000 10:13:09
Ein/Ausklappen
-
Re: Super
Mirko Dölle, Mittwoch, 16. August 2000 14:00:27
Ein/Ausklappen
Re: Super
Thomas Bonk, Mittwoch, 16. August 2000 13:26:06
Ein/Ausklappen
-
Also es läuft
Carsten Müller, Donnerstag, 17. August 2000 02:39:28
Ein/Ausklappen
-
Re: Also es läuft
Mirko Dölle, Donnerstag, 17. August 2000 10:19:53
Ein/Ausklappen
-
Re: Also es läuft
Carsten Müller, Sonntag, 31. Dezember 2000 19:22:18
Ein/Ausklappen
nette idee
Carsten Müller, Dienstag, 15. August 2000 03:10:00
Ein/Ausklappen
-
Re: nette idee
(unangemeldet), Dienstag, 15. August 2000 07:50:05
Ein/Ausklappen
-
Re: nette idee
(unangemeldet), Dienstag, 15. August 2000 17:49:35
Ein/Ausklappen