Mit einfachsten Mitteln kann jeder seinen Rechner zur fernbedienbaren Multimedia-Maschine aufrüsten. Alles was dazu benötigt wird, ist eine freie serielle Schnittstelle, elektronische Bauteile für weniger als fünf Mark, eine gewöhnliche Infrarot-Fernbedienung und die passende Software für Linux oder Windows.
Ein auf Multimedia getrimmter PC spielt heutzutage MP3, CDs und DVDs ab. Selbst den Fernseher kann er nach der Investition in eine TV-Karte ersetzen. Warum steht er dann eigentlich nicht im Wohnzimmer und hat schon längst die Glotze und altersschwache Hi-Fi-Anlagen verdrängt? Die Erklärung liefert ein Grundbedürfnis des Menschen - Bequemlichkeit. Der PC kann so viele Multimedia-Formate abspielen, wie er will, ohne den nötigen Bedienkomfort hat er keine Chance (vielleicht stört auch das ständigen Summen des Lüfters, aber das ist ein anderes Problem ...).
An Fernbedienungen dürfte es kaum mangeln - auf so manchem Wohnzimmertisch stapelt sich heutzutage gleich ein halbes Dutzend der handlichen Infrarotsender. Allerdings fehlt dem PC der passende Empfänger. Mit ein paar Bauelementen und der richtigen Software ist es aber trotzdem möglich, den PC dazu zu bewegen, den Kommandos der Fernbedienung zu gehorchen. Welche Bauteile man dazu benötigt und wie diese verschaltet werden, zeigt der Kasten ‘Minimal-Empfänger’. Das dort vorgestellte Bastelprojekt bietet nahezu die gleiche Funktionsvielfalt und Empfangsqualität wie der IR-Receiver eines Fernsehers.
Damit versteht der PC allerdings immer noch nicht, dass man Musik hören möchte, wenn auf der Fernbedienung die ‘Play’-Taste gedrückt wird. Das Software-Paket, das ihm dies unter Linux beibringt, heißt LIRC - Linux Infrared Remote Control und ist beispielsweise auf der LIRC-Projekt-Homepage [[#lit1 1]] zu finden. Dieses Paket enthält die gesamte Software: Von den Treibern, die die Hardware ansprechen, über ein Systemprogramm, das die Infrarotsignale dekodiert bis zu den Client-Anwendungen, die auf Tastendrücke reagieren.
Die Liste der unterstützten Hardware geht in der aktuellen Version von LIRC weit über den hier vorgestellten Empfänger hinaus. Inzwischen funktionieren auch IrDA-kompatible Infrarotports, wie sie in vielen Notebooks integriert sind. Auch mit den IR-Empfängern einiger TV-Karten kann LIRC mittlerweile zusammenarbeiten.
Der Linux-Treiber für die hier vorgestellte Hardware ist als Kernelmodul realisiert. Damit man dieses kompilieren kann, werden die vollständigen Kernelquellen (üblicherweise in /usr/src/linux zu finden) benötigt.
Das Modul gibt die empfangenen Signale als Puls- und Pausenlängen über ein ‘character device’ aus. Dazu misst der Treiber die Abstände zwischen Interrupts, die der Zustandswechsel der ‘Data Carrier Detect’-Leitung (DCD) am seriellen Port auslöst. Auf PC-Seite unterstützt der Treiber alle seriellen Schnittstellen mit einem 16450/16550A-UART-kompatiblen Chipsatz. Die Hauptaufgabe dieses Treibers ist das richtige Timing, denn bei einigen IR-Protokollen können Pulslängen vorkommen, die kürzer als 100 Mikrosekunden sind. Die Auflösung der Systemuhr reicht natürlich dafür nicht aus. Deshalb verwendet der Treiber für Zeit-Messungen die Linux-Kernelfunktion do_gettimeofday(), deren Auflösung Mikrosekunden-Genauigkeit erreicht. Durch die Verwendung von Interrupts zur Signalauswertung reicht daher sogar ein Rechner mit 486er CPU, um die Signalfolgen zu empfangen. Für den richtigen Hörgenuss von MP3s ohne Aussetzer sollte es allerdings doch ein Rechner der Pentiumklasse sein.
Die Zuordnung der übermittelten IR-Signale zu den gedrückten Tasten auf der Fernbedienung übernimmt auf PC-Seite lircd - der LIRC Daemon. Mit Hilfe einer Konfigurationsdatei, in der alle wichtigen Parameter beschrieben werden, kann ‘lircd’ alle gängigen IR-Protokolle dekodieren. Das Anlernen der Fernbedienungstasten und Erstellen dieser Datei erledigt das ebenfalls im LIRC-Paket enthaltene Programm irrecord. Das Besondere an diesem Programm ist, dass es durch eine Analyse der Signalfolgen versucht, das Protokoll mit allen Besonderheiten wie etwa Togglebits automatisch zu erkennen. Dadurch verhindert man später Probleme bei der korrekten Erkennung der Signale. Nur falls das Programm auf ein bisher unbekanntes Protokoll stößt, werden die Signale einfach komplett aufgezeichnet, um später mit Eingaben verglichen werden zu können.
Ist lircd einmal richtig für die eigene Fernbedienung konfiguriert, kann man sich daran machen, die Client-Anwendungen einzurichten. Die Kommunikation des Daemon mit den Clients selbst läuft über eine Unix Domain Socket, dem Standardmechanismus zur Kommunikation zwischen Prozessen. Die Infrarot-Clients öffnen bei Programmstart die Verbindung zum LIRC-Daemon und erhalten darüber die empfangenen Tasten-Codes. Aufgrund dieser Codes können dann die gewünschten Aktionen gestartet werden.
Die einfachste Anwendung ist natürlich das Starten von Programmen auf Knopfdruck. Das dazu benötigte Client-Programm ‘irexec’ ist bereits im LIRC-Paket enthalten. Es dient auch in der abgebildeten Beispielkonfiguration als Ausgangspunkt für das Starten von Programmen. Alle hier vorgestellten Clients verwaltet die Konfigurationsdatei /~.lircrc, die im Homedirectory des Anwenders liegen muss. Einträge in dieser Datei legen fest, was bei Betätigung einer bestimmten Taste zu geschehen hat. Da relativ schnell die Tasten für die gewünschten Funktionen ausgehen, gibt es sogar die Möglichkeit für die zu startenden Applikationen unterschiedliche Betriebsmodi zu definieren, sodass Tasten mit mehreren Funktionen belegt werden können, die abhängig vom Modus ausgeführt werden.
Unter den Anwendungsprogrammen, die LIRC-Unterstützung enthalten, gibt es bereits mehrere MP3-Player zur Auswahl. Der wohl am meisten verbreitete und durch Plugins beliebig erweiterbare Player ist das X Multimedia System. Mit Hilfe eines Plugins lassen sich alle wichtigen Funktionen des Players durch eine Fernbedienung steuern.
Die Installation des Plugins gestaltet sich recht einfach. Sind LIRC und xmms bereits installiert, genügt ein ‘./configure && make install’ ausgehend vom Quellpaket das auf Sourceforge [[#lit2 2]] verfügbar ist. Danach braucht man nur noch das Plugin in xmms zu aktivieren und in der LIRC-Konfigurationsdatei die gewünschten Aktionen festzulegen (siehe Kasten ‘Beispielkonfiguration’).
Aktiviert man in xmms zusätzlich das Plugin für CD-Audio-Unterstützung, verwandelt sich der PC zum fernbedienbaren CD-Player. Damit MP3- und Audio-CDs sich nicht gegenseitig in die Quere kommen, muss man jedoch noch einen kleinen Eingriff vornehmen. Ist das Audio-CD-Plugin aktiviert, wird der Inhalt einer MP3-(Daten)-CD fälschlicherweise als ‘Track 01.cda’ dargestellt, sodass man nicht auf die einzelnen MP3-Dateien zugreifen kann. Mit einem Trick lässt sich dieses Problem in den Griff bekommen. Da xmms Audio-CDs nur unter dem in /etc/fstab eingetragenen Verzeichnis (etwa /mnt/cdrom) erwartet, kann man es durch einen Link
ln -s /mnt/cdrom /tmp/cdrom
überlisten und die MP3-Dateien auf der CD sind für xmms unter /tmp/cdrom sichtbar.
Wenn man den Computer schon fernbedient, könnte man den PC ja auch komplett zur Hi-Fi-Anlage umfunktionieren und die Statusanzeige, wie bei Hi-Fi-Komponenten üblich, per LCD ausgeben. Ein Programmpaket, dass als Frontend für den Kommandozeilen gesteuerten MP3-Player mpg123 fungiert, und gleichzeitig ein LC-Display über serielle Schnittstelle ansteuern kann, ist irmp3. Das Programm ist außerdem für all diejenigen interessant, die auf ihrem Rechner gar kein X11 installiert haben.
Dadurch kommt man ganz ohne Monitor aus und kann dennoch nützliche Informationen wie Titel und Restspielzeit darstellen. Ein weiteres Plus ist die sehr flexible Unterstützung von Playlisten. Das Programm liest das gängige m3u-Format, man kann aber auch dynamisch mit Hilfe von Wildcards neue Play-Listen zusammenstellen. Der Befehl
playlist loaddir /sound/mp3/*.mp3
generiert etwa eine Liste aller MP3-Stücke im entsprechenden Verzeichnis. Dabei werden Unterverzeichnisse ebenfalls rekursiv durchsucht. Damit irmp3 korrekt mit LIRC 0.6.1 zusammenarbeitet, sollte man übrigens die Entwicklerversion 0.4.3-pre3 benutzen und in dem Makefile die Option MOD_LIRC_V06 = 1 setzen. Ältere Versionen von irmp3 verursachen häufig Fehler bei der Zusammenarbeit mit LIRC. Seit kurzem gibt es für irmp3 sogar ein Paket, das außerdem Audio-CDs über irmp3 abspielen kann (zu finden unter [[#lit3 3]]), allerdings bisher nur wenige Funktionen zur Verfügung stellt.
Bevor man nun die PC-Hi-Fi-Anlage das erste Mal starten kann, gibt es noch einiges zu konfigurieren. Möchte man auf eine Tastatur ganz verzichten, sollte man im BIOS-Setup das Überprüfen derselben abstellen. Dafür ist meist die Option ‘Halt on: No Errors’ zuständig. Man sollte dann allerdings nicht vergessen, in der LIRC-Konfiguration eine Tastenkombination auf der Fernbedienung vorzusehen, mit der man den Rechner wieder runterfahren kann. Dies erledigt in ~/.lircrc die Zeile
config = /sbin/shutdown -h now
Besitzt man sogar ein ATX-Netzteil, kann man damit den MP3-Player sehr elegant per Fernbedienung abschalten.
Als Letztes muss man noch dafür sorgen, dass lircd und irmp3 bei jedem Booten automatisch starten. Dazu legt man am besten zwei Initskripte an, die bei jedem Systemstart ausgeführt werden. Leider sind sowohl Syntax als auch Lage von Initskripten (oft in /etc/rc.d/, /sbin/init.d/ oder /etc/init.d/) sehr distributionsabhängig, sodass man am einfachsten ein bereits vorhandenes Skript kopiert und anschließend anpasst. In welchem Runlevel diese Skripte ihrerseits starten, legen Links fest, die man je nach Runlevel im rcX.d-Unterverzeichnis anlegen muss. Links mit dem Präfix S
Für den Fall, dass man keine der bisher erwähnten MP3-Lösungen favorisiert und der eigene Lieblings-MP3-Player noch keinen eingebauten Infrarot-Support hat, lässt sich auch hier meistens Abhilfe schaffen. Das LIRC-Paket enthält zu diesem Zweck das Programm ‘irxevent’, mit dessen Hilfe man an jede beliebige X11-Anwendung Events verschicken kann. Verwendet der MP3-Player Tastaturabkürzungen für die am häufigsten benötigten Kommandos, so braucht man diese ebenfalls nur in die Konfigurationsdatei einzutragen.
Das Anklicken von Schaltflächen kann man ebenfalls simulieren. Dazu ermittelt man mit dem Programm xwininfo zunächst den Namen und die Window-ID des Fensters. Mit Hilfe der ID gelangt man mit dem Befehl
xev -id window_id
schließlich an die Koordinaten der einzelnen Buttons.
Natürlich ist der Einsatz der Infrarot-Fernbedienung nicht auf CD- und MP3-Player beschränkt. Für Besitzer von TV-Karten wäre es praktisch, Fernsehkanäle vom Sessel aus wechseln zu können anstatt auf die Bedienung der TV-Anwendung mit der Maus angewiesen zu sein. Gerd Knorrs xawtv unterstützt beispielsweise seit Version 3.0 Fernbedienungen. Neben der Möglichkeit, Kanäle zu wechseln und Sender direkt zu wählen, unterstützt es folgende Kommandos: Lautstärke einstellen, Standbild aufnehmen, Aufnahme starten und Vollbildmodus Ein-/Ausschalten. Für Besitzer von fernbedienbaren Hauppauge-Karten stellt LIRC einen eigenen Kerneltreiber zur Verfügung, sodass diese nicht auf den selbstgebastelten Receiver angewiesen sind.
|
Die saubere Trennung zwischen Hard- und Software-Schicht bringt Übersicht in das LIRC-Treibermodell. |
Wer seinen Mauszeiger mit der Ferndienung steuern möchte, kann dies auch tun. Das im LIRC-Paket enthaltene Programm ‘lircmd’ simuliert auf Wunsch eine IMPS/2-kompatible Maus und lässt sich unter X11 neben jeder gewöhnlichen Maus als alternatives Eingabegerät nutzen. Das IMPS/2-Protokoll einzusetzen hat den Vorteil, dass dieses die immer beliebter werdenden Mausräder unterstützt, mit denen sich Zusatzfunktionen wie Scrollen realisieren lassen. Geradezu die perfekte Anwendung, um vom Sessel aus in Netscape scrollen zu können - natürlich einen entsprechend großen Monitor vorausgesetzt.
Abschließend sollte nicht unerwähnt bleiben, dass die vorgestellte Hardware-Lösung auch unter Windows 9x und NT zur Zusammenarbeit überreden lässt. Unter http://home.jtan.com/~jim/winlirc/ ist eine Windows-Portierung der Software - WinLIRC - erhältlich, die mit gewissen Einschränkungen die selben Funktionen zur Verfügung stellt wie LIRC. Als Grundlage für die Windows-Umsetzung von Jim Paris diente die ältere LIRC-Version 0.5.4. Da WinLIRC nicht als Kernelmodul realisiert werden kann, setzt es auf Winsock auf und läuft unter TCP auf Port 8765. Das Programm setzt deutlich leistungsfähigere Hardware voraus als das Linux-Pendant. Auch der ‘Lern’-Algorithmus für Tastendrücke der Fernbedienung ist noch weit von dem Stand der Linux-Version entfernt. Trotzdem lässt sich WinLIRC einsetzen, um auch Windows fernzubedienen. Erwartungsgemäß hat der Programm-Autor auch ein Winamp-Plugin für Winamp programmiert, dass ähnliche Funktionen zur Verfügung stellt wie das entsprechende xmms-Plugin unter Linux.
Ein sehr praktisches Hilfsmittel zur Konfiguration von Applikationen, die fernbedient werden sollen, ist IRAssistant. Das für den privaten Gebrauch kostenlose Programm unterstützt WinLIRC über einen zusätzlichen Treiber, bietet sehr viele vorkonfigurierte Windows-Funktionen und ein komfortables Menü zur Erstellung von Tastenkürzeln und Funktionsgruppen, um Programme per Fernbedienung zu steuern.
Das Windows-Pendant zu irexec unter Linux heißt übrigens ‘InfraRed Executer’, kurz IREx (www.ramscan.com/irex/). Mit diesem Programm kann man auch unter Windows Programme per Tastendruck starten oder den Mauspfeil fernbedienen.
LIRC oder WinLIRC ebnen dem PC den Weg ins Wohnzimmer. Auch wenn die Fernsteuerung vielleicht als Spielerei erscheinen mögen, haben sich daraus bereits einige interessante Audio-Projekte ergeben ([[#lit4 4]] und [[#lit5 5]]), die weit über die Fähigkeiten einer normalen Stereoanlage hinausgehen. Ein lüfterloser PC mit DVD-Laufwerk, Netzwerkanschluss, Fernbedienung und schwarzer Aluminium-Frontblende stellt jedes gekaufte Multimediacenter in den Schatten und integriert sich wunderbar in ein Hi-Fi-Rack. (vza)
[4] LC-DAT-Homepage
[#anfang Seitenanfang]
Die Datei ~/.lircrc ist sehr einfach aufgebaut. Alle Befehle und Befehlsgruppen haben folgendes Format:
begin prog = ... button = ... config = ... mode = ... end
Soll xmms bei Druck des Knopfes ‘program’ (zugewiesener Name bei ‘Erlernen’ der Tastenbelegung von lircd) starten, sieht der Eintrag in ~/.lircrc folgendermaßen aus:
begin prog = irexec button = program config = xmms & mode = xmms end
Die Zeile ‘mode = xmms’ wechselt in den Betriebsmodus ‘xmms’. Die Schlüsselwörter ‘PLAY’ und ‘PAUSE’ gibt das LIRC-Plugin für xmms vor.
begin xmms begin prog = xmms button = play config = PLAY end begin prog = xmms button = pause config = PAUSE end .... end xmms
Unterstützt ein Programm LIRC nicht direkt (hier: kscd), kann man den Druck auf eine Programmschaltfläche mit ‘irxevent’ simulieren. ‘329 92’ sind die mit ‘xev -id window_id’ ermittelten Koordinaten der Schaltfläche (siehe Text).
begin prog = irxevent button = skip_title config = Button 1 329 92 kscd end
[#anfang Seitenanfang]
Mit etwas Lötgeschick ist ein Empfänger für die serielle Schnittstelle in wenigen Minuten einsatzbereit. Dank der hochspezialisierten Infrarot-Empfangsmodule sind inklusive dem Anschluss für die serielle Schnittstelle (SUB-D-Buchse) nur sechs Bauteile nötig. Von den hier vorgeschlagenen Pin-kompatiblen Modulen von Vishay (TSOP17xx) oder Siemens (SFH506-xx) gibt es verschiedene Typen, die speziell auf eine Trägerfrequenz abgestimmt sind (xx = 30, 36, 38, 40 kHz). Bewährt haben sich die Varianten mit 38 kHz, da die meisten Fernbedienungen diese Frequenz benutzen. Kleinere Abweichungen von der Normfrequenz werden von den Empfängermodulen weitgehend toleriert und schlagen sich höchstens in einer etwas geringeren Reichweite nieder. Vishay und Siemens geben in den entsprechenden Datenblättern für ihre Module eine Reichweite von mindestens 30 Metern an, sodass für den normalen Einsatz keine Probleme zu erwarten sind. Die Empfänger geben die Infrarotsignale bereits demoduliert als ‘active low’-Signal für die Weiterverarbeitung durch den Rechner an Pin 3 aus (siehe Schaltbild).
Bietet der lokale Elektronikladen die hier vorgeschlagenen Empfangsmodule nicht an, so kann auch problemlos jedes andere Modul mit den gleichen Kenndaten (5 V Spannungsversorgung, Ausgang ‘active low’, 38 kHz-Trägerfrequenz) eingesetzt werden. Selbstverständlich lässt sich die Schaltung auch an einer 25-poligen SUB-D-Buchse aufbauen. Dabei ist jedoch zu beachten, dass deren Belegung von der 9-Pin-Buchse abweicht.
Zur Spannungsversorgung der Schaltung dient die RTS-Leitung der seriellen Schnittstelle. Zum Schutz der Schaltung vor negativer Spannung, die diese Leitung abwechselnd führt, dient Diode D1. Der Spannungsregler IC2 stellt die Versorgungsspannung von 5 V für das Empfängermodul bereit. Dazu benötigt der Regler eine Eingangsspannung von mindestens 6,7 V. Einige Notebooks stellen eine geringere Spannung an der RTS-Leitung zur Verfügung und funktionieren daher mit der vorgestellten Lösung nicht. Hier lohnt es sich aber sowieso, die in den meisten Modellen bereits integrierte Infrarotschnittstelle für Fernbedienungszwecke umzufunktionieren. Der Pull-up-Widerstand R1 stellt sicher, dass am DCD-Eingang der seriellen Schnittstelle mindestens 4 V anliegen, solange kein Signal empfangen wird. Der Stützkondensator C1 sorgt für eine konstante Eingangsspannung an dem Spannungswandler, während C2 zur Glättung von dessen Ausgangssignal dient.
Nun mag man sich fragen, wieso die Schaltung so wie sie hier dargestellt ist überhaupt funktioniert, denn der EIA-RS232-Standard definiert nur Pegel über 3 Volt beziehungsweise unterhalb von -3 Volt (RS232-Standard: -25 V bis -3 V = ’1’, 3 V bis 25 V = ’0’). Beim Empfang von IR-Signalen liegen jedoch an DCD 0 Volt. Alle gängigen I/O-Chipsätze interpretieren dies allerdings bereits als logische 1. So liegt etwa beim Klassiker unter den Pegelwandlerbausteinen MAX232 der Schwellwert bei 0,8 V.
| Stückliste des IR-Receivers | |
| Neben einer 9-Pin SUB-D Buchsenleiste für den Lötanschluss benötigt man folgende Bauelemente: | |
| Diode (D1) | 1N4148 |
| Widerstand (R1) | 4,7 kOhm |
| IR-Empfangsmodul (IC1) | TSOP1738 oder SFH506-38 |
| Spannungswandler (IC2) | 78L05, 100 mA |
| Kondensator C1 | 10 µF, 16 V |
| Kondensator C2 | 100 nF |
| Pin-Belegung der seriellen Schnittstelle | |||
| Name | 25-Pin | 9-Pin | |
| RTS | 4 | 7 | Request To Send (Spannungsversorgung) |
| GND | 7 | 5 | Ground |
| DCD | 8 | 1 | Data Carrier Detect (IR-Signal) |
[#anfang Seitenanfang]
Fernbedienungen verwenden im Allgemeinen Infrarotdioden, die bei einer Wellenlänge von 950 nm arbeiten. Die eigentliche Information wird nach un-terschiedlichen Verfahren auf eine Trägerfrequenz zwischen 30 kHz und 40 kHz aufmoduliert. Durch die Verwendung eines Trägers lässt sich das Nutzsignal besser von Störimpulsen unterscheiden, denn beispielsweise Leuchtstoffröh-ren strahlen nicht unerheblich im Infrarot-Bereich.
Die Aufgabe der Empfängermodule ist es, die Trägerfrequenz zu erkennen und das darauf übertragene Datensignal zu erkennen. Durch die hohe Empfindlichkeit der Empfänger erreicht man auch ohne große Sendeleistung eine relativ große Reichweite. Da diffuse Reflexion an Wänden oft zur Übertragung ausreicht, ist nicht einmal direkter Sichtkontakt zwischen Sender und Empfänger nötig.
|
Wie die Hersteller die IR-Protokolle für ihre Fernbedienungen umsetzen, unterscheidet sich teilweise erheblich. |
Wellenlänge und Trägerfrequenz sind leider die einzigen Faktoren, die bei verschiedenen Herstellern von Fernbedienungen vergleichbar sind. Damit der IR-Empfänger den Tastendruck auf der Fernbedienung richtig interpretieren kann, müssen die IR-Signale in geeigneter Weise kodiert sein. Doch bereits bei der Kodierung der Daten gibt es zwischen verschiedenen Herstellern wesentliche Unterschiede. Die gebräuchlichsten Protokolle für Infrarotbedienungen sind jedoch RC-5, RECS 80 und NEC.
Dieses Verfahren nutzt zur Datenübermittlung die so genannte ‘biphase’ Kodierung. Dabei hat jedes Bit ein Zeitfenster, welches in zwei Phasen gleicher Dauer unterteilt ist. Die logische ‘0’ wird durch einen Lichtimpuls gefolgt von einer Pause, die logische ‘1’ entsprechend durch eine Pause gefolgt von einem Lichtimpuls kodiert. Dadurch ergibt sich ein für RC-5-Systeme charakteristisches Signal mit je zwei unterschiedlichen Impuls- und Pausenlängen. Ein einzelnes Datenpaket ist unterteilt in ein Startbit, ein Togglebit, fünf Systembits, die das Empfangsgerät spezifizieren, und sechs Befehlsbits, die die eigentliche Befehlsinformation enthalten. Das neuere RC-6-Protokoll funktioniert analog, halbiert jedoch die Signallängen, sodass die Datenpakete länger ausfallen können.
Das RECS-80-Protokoll kodiert einzelne Bits durch unterschiedlich lange Pausen, die Lichtimpulsen konstanter Länge (140,8 µs) folgen. Die für den Bit-Wert entscheidenden Pausen zwischen den Lichtimpulsen betragen für die ‘0’ 5,06 ms und für die ‘1’ 7,59 ms. Es werden elf Bits lange Datenpakete verschickt: ein Startbit, ein Togglebit, drei Bits für das Subsystem und sechs Bits für das Kommando. Obwohl die Datenpakete für die Übertragung je nach Kommando unterschiedlich lange brauchen, ist die Gesamtlänge mit Pause bis zur nächsten Wiederholung des Signals konstant.
Das Togglebit bei RECS 80 und RC-5 hat eine spezielle Funktion. Um besser zwischen mehreren aufeinander folgenden Tastendrücken und einem einzigen langen Tastendruck auf der Fernbedienung unterscheiden zu können, wechselt dieses Bit bei jedem Tastendruck seinen Zustand.
Der NEC-Standard funktioniert ähnlich wie RECS 80, wobei sich die Länge der Impulse und Pausen unterscheidet. Die Datenpakete sind 32 Bit lang, aufgeteilt in 16 Bit für Adressierung und 16 Bit für Daten. Meist sind die letzten 8 Bit dieser Teilpakete das bitweise Komplement der ersten acht, um Übertragungsfehler erkennen zu können.
Leider existieren neben den drei beschriebenen Standards noch etliche andere Ansätze, die meist nicht öffentlich dokumentiert sind. So setzt Sony ein Verfahren ein, bei dem die Länge der Lichtimpulse selbst für den Bitwert entscheidend ist. Viele andere Hersteller setzen Varianten von RECS 80 und NEC ein, die sich in der Länge der Impulse und Pausen, in der Anzahl und Semantik der Datenbits und in der Methode, lange Tastendrücke kenntlich zu machen unterscheiden. Weit verbreitet ist auch das Aussenden eines langen Header-Signals, welches dem Empfänger erlaubt, sich auf das folgende Signal einzumessen.
Version zum Drucken | Per E-Mail versenden | Heft bestellen
Permalink: http://heise.de/-287860
Kommentare lesen (115 Beiträge)
Das aktuelle Heft ist jetzt im Handel erhältlich.
Ältere Artikel können Sie über unser Zeitschriften-Archiv bestellen.