Der RC5-Code
Befehlscodes für die IR-Fernbedienung


Letzte Änderung: 13.05.2003

Einleitung

Viele Audio- und Videogerätehersteller benutzen für ihre IR-Fernbedienungen den RC5-Code um die Funktionen ihrer Geräte zu steuern. Hier erfolgt eine Auflistung aller mir bekannten Befehlscodes. Vielleicht könnt ihr Sie für Eure Projekte gebrauchen. Laut RC5-Normung müssten alle Codes auf allen Geräten die gleiche Bedeutung haben. Aber wie Hersteller eben so sind, variieren manche Codes, und es bleibt Euch nichts anderes übrig als auszuprobieren. Habt Ihr auch noch Befehlscodes, die man hier aufführen könnte, dann schreibt mir bitte eine Email.
Wenn Ihr herausfinden wollt, welche Codes Eure Fernbedienung liefert, dann schaut einmal bei
Holger Klabundes Homepage vorbei. Er hat eine Schaltung zu diesem Thema aufgebaut.

RC5 - der Aufbau

Wenn Du eine Taste auf der IR-Fernbedienung drückst, so sendet diese einen 14 bit langen Code aus. Dabei wird mit einer Modulationsfrequenz von 36 bis 38 kHz gearbeitet. Ein Bit dauert 1,778 ms an Übertragungszeit. Somit dauert die Übertragung aller 14 Bits genau 24,892 ms.
Der Code besteht aus folgenden Teilen:

Startbits

Togglebit Systemadresse Befehlscode

2 Bit

1 Bit 5 Bit 6 Bit
beide Bits sind 1 (empfängerseitig) und zeigen den Beginn einer Übertragung an. Wechselt bei jedem Tastendruck seinen Zustand. Zeigt an, ob eine Taste noch gedrückt ist oder schon wieder gedrückt wurde. Zeigt an, welches Gerät angesprochen werden soll. Übertragung beginnt mit dem höchstwertigen Bit. (siehe unten) Was für ein Befehl soll ausgeführt werden ? Übertragung beginnt mit dem höchstwertigen Bit. (siehe unten)

 

Alle Bits sind biphasencodiert. Das heißt, daß immer in der Mitte einer Bit-Zeit (1,778 ms) der Zustand wechselt. Bei log. 1 wechselt der Zustand in der Bit-Mitte (0,889 ms) von high nach low, bei einer log. 0 von low nach high.

Das wird daher gemacht, damit es einen Unterschied zwischen der IR-Fernbedienung und einer anderen IR-Quelle wie z.B. Lampen gibt.

Wenn man die Taste auf der Fernbedienung gedrückt hält, dann wird die 14 Bit Codesequenz alle 113,792 ms wiederholt, was einer Dauer von 64 Bit entspricht.
Auch wenn man die Taste der Fernbedienung nur einmal kurz drückt, so dauert die Übertragung 113,792 ms, wobei die eigentliche Informationsübertragung nur 24,892 ms beträgt.

 

 

Beispiel

In der obigen Grafik ist eine RC5-Sequenz zu sehen, wenn man die Play-Taste für einen CD-Player drückt. Die Sequenz setzt sich wie folgt zusammen:

Diese Sequenz stellt die Play-Taste für einen Philips CD-Player dar.

Die Systemadresse

Die Systemadresse bestimmt, welches Gerät angesprochen werden soll.

Adresse Funktion
0 TV 1
1 TV 2
2 Videotext
3 BTX, Video VD
4 Video Laservision
5 Video 1
6 Video 2
7 Test
8 Sat-Receiver
12 CDV / LD, Video-CD
16 Surround Decoder / Verstärker 1
17 Tuner
18 Tape
19 Verstärker 2
20 CD
21 Plattenspieler
23 DAT-Tape, MD-Recorder

Da die Systemadresse aus 5 Bit besteht, sind somit 2^5, also 32 Adressen möglich. Probiert also auch andere Systemadressen aus, wenn gar nichts bei Euch funktioniert.

Der Befehlscode

Der Befehlscode teilt dem Gerät mit, welche Funktion es ausführen soll. Maximale Anzahl Adressen sind 2^6 = 64 Bit.

Adresse Funktion
0 bis 9 Zifferntasten 0 bis 9
10 Select Track / Time
11 Recall
12 An / Aus / Standby
13 Mute
14 Ideal / PP, Voreinstellungen
15 Display
16 Lautstärke +
17 Lautstärke -
18 Helligkeit +
19 Helligkeit -
20 Farbe +
21 Farbe -
22 Bässe +
23 Bässe -
24 Höhen +
25 Höhen -
26 Balance rechts
27 Balance links
28 Random
29 Repeat
30 Skip + / Search
31 Programm
32 Kanal +
33 Kanal - / Enter
34 Quickview
35 I/II / Display
36 Skip - / Stereo / Mono
37 Surround Mode
38 Timer off
39 Balance Rear
40 Balance Front
42 Uhrzeit
44 Search -
45 Open / Close
46 Search +
48 Pause
49 Cancel / Erase
50 Rewind
51 Go to
52 FF
53 Play
54 Stop
55 Recording
56 Connect / AV
57 Disconnect
59 A-B / Helligkeit
60 Videotext (Umschaltung)
61 System Standby
62 System Select / Digital / Analog Soundtrack
63 von Videotext nach TV (Umschaltung)

Wie gesagt, nicht alle Hersteller halten sich an diese Codes. Viele Geräte unterstützen Codes, obwohl diese nicht auf der Fernbedienung zu finden sind. Da ist ausprobieren angesagt. Viel Spaß dabei.

Nachtrag

Die Entwicklung geht immer weiter und die Geräte aus der Video- und Audiobranche werden immer komplizierter und umfangreicher. Da reichen meist die 64 möglichen Befehlscodes nicht aus um alle Funktionen anzusteuern. Daher hat man den RC5-Code erweitert. Um kompatibel mit dem oben beschriebenen Code zu bleiben, hat man sich entschieden, daß zweite Startbit als invertiertes Befehlsbit zu interpretieren. Das heißt, für die ersten 64 Befehlscodes ist das zweite Startbit "1", als wäre es ein ganz normales Startbit. Für die 64 neuen Befehlscodes ist das zweite Startbit "0". Damit gibt es jetzt für jedes Gerät je 128 verschiedene Befehlscodes.

Beispiel-Schaltungen und Codes

RC5-Empfänger

Der Elektor-Verlag hat ein Buch mit dem Titel "PC-Schnittstellen unter Windows" herausgebracht, indem unter anderem auch eine kleine Schaltung, die an den COM-Port angeschlossen wird, zum Empfang von RC5-Codes beschrieben wird. Die Programmiersprache ist Visual Basic die mittels einer DLL den Status der COM-Ports abfragen und setzen kann.
Auf der Homepage des Autors kann sowohl die Schaltung, als auch der VB-Code und die DLL gedownloaded werden.

Beispiel-Code unter C/C++

Andreas Köhler stellt eine Fernbedienungsempfangsroutine unter C/C++ bereit, die auch mit Codes anderer Hersteller (Denon, Sony etc.) fertig wird. Der Code ist ein Auszug aus seiner Diplomarbeit.

Weitere Informationen dazu, bitte bei Andreas Köhler erfragen.

Unter Bloodshed Software kann man sich einen vollständigen und kostenlosen C/C++ Compiler inklusive Entwicklungsumgebug (IDE) herunterladen.


Email to: Holger Heinemann
© Copyright 2003 by Holger Heinemann [Brainstorming Page]