Inhalt anzeigen
- Tiefe
- Fortgeschritten
HDMI CEC
Was ist HDMI CEC — und warum funktioniert die Gerätesteuerung über HDMI mal, aber nie zuverlässig?
CEC ist der Steuerkanal im HDMI-Kabel. Auf einer eigenen Ader — Pin 13 — schicken die angeschlossenen Geräte einander kurze Befehle: einschalten, auf diesen Eingang umschalten, alle in Bereitschaft. Es ist ein Bussystem, an dem bis zu fünfzehn Geräte gleichzeitig hängen können, und es arbeitet unabhängig vom Bild.
Wenn Du den Player einschaltest und der Fernseher springt von selbst an und auf den richtigen Eingang — dann steckt genau diese Funktion dahinter. Die Geräte reden über eine dünne Extraleitung im Kabel miteinander. Der Haken: Jeder Hersteller hat dafür einen eigenen Werbenamen erfunden, und keiner muss die Funktion überhaupt einbauen. Deshalb klappt es bei manchen Geräten sofort, bei anderen halb und bei manchen gar nicht. Das liegt nicht an Deiner Verkabelung.
Warum die Leitung Pflicht ist und die Funktion nicht
Der wichtigste Satz zu CEC steht in der HDMI-Spezifikation, und er wird selten zitiert: Die Anforderungen an die Leitung gelten für alle Produkte, auch für solche, die das Protokoll gar nicht umsetzen — das Protokoll dagegen ist optional. Damit ist in einem Satz erklärt, warum die Sache sich in der Praxis so sperrig anfühlt.
Was Pflicht ist, betrifft nur die Physik. Ein Gerät muss die CEC-Adern all seiner HDMI-Buchsen miteinander verbinden, damit ein Befehl von einem Ende der Kette zum anderen kommt; zwischen zwei Buchsen dürfen höchstens 5 Ω liegen. Und ein ausgeschaltetes Gerät darf die Verständigung der übrigen nicht stören — der zulässige Leckstrom im stromlosen Zustand liegt bei 1,8 µA. Diese zweite Forderung ist der Grund, warum ein einziger schlechter Verteiler oder Adapter einen ganzen Bus lahmlegen kann, ohne dass am Bild irgendetwas auffällt.
Was optional ist, betrifft alles Weitere. Die Spezifikation stellt den Konformitätsstufen ihres CEC-Teils ausdrücklich voran, dass die dortigen Muss-Regeln erst greifen, wenn ein Gerät CEC überhaupt unterstützt — und innerhalb des Funktionskapitels sogar erst dann, wenn es die jeweilige Einzelfunktion umgesetzt hat. Es gibt also drei Ebenen von „optional" übereinander: das Protokoll, die Funktion, die Auslegung im Einzelfall.
Wie ein Gerät seinen Platz in der Kette findet
CEC arbeitet mit zwei Adressen nebeneinander, und die Trennung erklärt einige Fehlerbilder.
Die physische Adresse beschreibt, wo ein Gerät in der Kette hängt — vier Ziffern, die den Weg von der Wurzel aus abbilden. Wurzel ist die Senke, in der Regel der Fernseher, mit 0.0.0.0. Was an dessen erstem Eingang hängt, ist 1.0.0.0, was wiederum an dessen erstem Eingang hängt, 1.1.0.0. Vergeben wird diese Adresse nicht über CEC selbst, sondern über den Datenkanal, über den auch das EDID gelesen wird — die Quelle entnimmt ihre eigene physische Adresse den Daten, die die Senke bereitstellt. Deshalb hat auch ein Gerät ohne CEC eine physische Adresse, und deshalb wirft ein kaputter EDID-Pfad die Gerätesteuerung mit um.
Die logische Adresse ist eher eine Rolle als eine Adresse: 0 ist der Fernseher, 5 die Audioanlage, dazwischen liegen Aufnahmegeräte, Empfänger und Abspielgeräte, 15 steht für „unregistriert" und dient zugleich als Rundruf. Ein Gerät sucht sich beim Start die Rolle, die zu seiner Gattung passt und noch frei ist. Bringt ein Gerät mehrere Funktionen mit, darf es mehrere Rollen belegen.
Daraus folgt eine unangenehme Eigenschaft: Rolle und Ort sind zwei verschiedene Angaben, und beide müssen stimmen. Ein Umbau in der Kette ändert die physischen Adressen aller nachgelagerten Geräte. Melden sich die Geräte danach nicht neu, zeigt die Steuerung auf einen Platz, an dem nichts mehr steht.
Warum es langsam ist
CEC ist nach heutigen Maßstäben extrem langsam, und das ist kein Mangel der Umsetzung, sondern gewollt. Die nominale Dauer eines Datenbits liegt bei 2,4 ms — das ergibt gut 400 Bit pro Sekunde. Eine Nachricht besteht aus einem Kopfbyte und höchstens fünfzehn Datenbytes. Die Spezifikation nennt als wünschenswerte Antwortzeit 200 ms und als gefordertes Maximum eine ganze Sekunde.
Für den Zweck reicht das: Ein Einschaltbefehl braucht keine Bandbreite. Spürbar wird es trotzdem, denn beim Einschalten einer Kette laufen viele dieser Nachrichten nacheinander über dieselbe Ader. Die zwei bis drei Sekunden, die zwischen dem Druck auf die Fernbedienung und dem Bild liegen, sind zum Teil genau das — und zum Teil die Aushandlung von HDCP, die parallel läuft.
Was CEC kann
Die Spezifikation trennt Funktionen für den Anwender von unterstützenden Funktionen. Zu den ersten gehören One Touch Play (ein Gerät startet die Wiedergabe und macht sich zur aktiven Quelle), System Standby (alle Geräte gehen mit einem Druck in Bereitschaft), die Steuerung eines Abspielgeräts, die Steuerung eines fremden Tuners, die Bedienung eines fremden Menüs und das Durchreichen von Fernbedienungsbefehlen. Zu den unterstützenden Funktionen zählen die Übermittlung des Gerätenamens für die Eingangsliste des Fernsehers, die Abfrage des Betriebszustands, die Steuerung von Umschaltern und die herstellereigenen Sonderbefehle.
Die Lautstärkeregelung über den Verstärker ist der interessanteste Fall, weil sie den Wildwuchs zeigt. In der Fassung 1.3 gibt es dafür kein eigenes Merkmal — es gibt die logische Rolle „Audiosystem" und es gibt Fernbedienungscodes für lauter und leiser, die durchgereicht werden können. Als benannte Funktion System Audio Control führen erst spätere Fassungen sie. Wer sich fragt, warum die Lautstärkeregelung über CEC bei alten und neuen Geräten so unterschiedlich sicher läuft: Das ist der Grund.
Häufiges Missverständnis
„Mein Fernseher hat kein CEC, er hat Anynet+." Das ist derselbe Standard unter anderem Namen. Samsung nennt es Anynet+, Sony BRAVIA Link, LG SimpLink, Panasonic VIERA Link, Philips EasyLink, Pioneer nannte es Kuro Link — und diese Liste ist nicht vollständig. Die Namen suggerieren ein Merkmal der Marke, das nur innerhalb der Marke funktioniert. Technisch ist es ein gemeinsames Protokoll, und Geräte verschiedener Hersteller reden durchaus miteinander.
Der Marketingname hat aber einen wahren Kern: Die Spezifikation erlaubt herstellereigene Befehle auf demselben Bus. Was ein Hersteller über den genormten Umfang hinaus anbietet, funktioniert tatsächlich nur zwischen seinen eigenen Geräten. Der Name steht also für eine Mischung aus Standard und Zutat, und niemand schreibt dazu, wo die Grenze verläuft.
„Wenn alle Geräte CEC können, steuert das dann alles." Diese Erwartung hält der Praxis selten stand, und die Gründe sind der Reihe nach abzuarbeiten. Erstens ist jede Einzelfunktion für sich optional — ein Gerät kann One Touch Play beherrschen und System Standby nicht. Zweitens ließ die lange verbreitete Fassung 1.4 dem Umsetzenden nach Einschätzung von Hans Verkuil, der das CEC-Rahmenwerk im Linux-Kernel gebaut hat, zu viel Spielraum; erst Fassung 2.0 ist strenger. Drittens sitzt in einer Kinokette zwischen den Geräten oft Technik, die den Bus nicht sauber weiterreicht — Verteiler, Extender, Umschalter.
Das Ergebnis ist ein Verhalten, das der Anwender als Zufall erlebt: Manchmal schaltet alles mit, manchmal bleibt ein Gerät an, manchmal schaltet sich der Fernseher ungefragt selbst ein, weil ein Zuspieler beim Aufwachen einen Rundruf abgesetzt hat. Klar, mit passendem Gerätesatz läuft CEC über Jahre unauffällig — verlassen kann man sich darauf bei der Planung trotzdem nicht.
„CEC ist eine Steuerung." Es ist ein Steuerkanal, aber kein Steuerungssystem. Es kennt keine Szenen, keine Rückmeldung über den tatsächlichen Zustand jenseits einiger weniger Abfragen, keine Zeitsteuerung und keine Bedienoberfläche. Wo eine Anlage verlässlich auf Knopfdruck in einen definierten Zustand fahren soll, ist das die Aufgabe einer echten Steuerung über IP oder RS-232; der 12-Volt-Trigger macht dasselbe für einen einzelnen Schaltvorgang, dafür aber zuverlässig.
Woher es kommt
CEC ist älter als HDMI. Das Protokoll geht auf AV.link zurück, den Steuerkanal der SCART-Verbindung, festgeschrieben in der CENELEC-Normenreihe EN 50157. Als HDMI entstand, wurde die Idee samt eigener Ader übernommen. Das erklärt einiges am Zuschnitt — die Sprache der Funktionen stammt aus einer Zeit, in der ein Videorekorder das zweitwichtigste Gerät im Wohnzimmer war, und der Bus wurde für eine Handvoll Geräte entworfen, nicht für eine Kinokette mit Verteiler, Videoprozessor und Nebenraum.
Nicht zu verwechseln mit
- EDID: Der Fähigkeitsabgleich vor dem Bild. Er läuft von der Senke zur Quelle und sagt, was gesendet werden kann. CEC steuert Geräte und sagt nichts über Formate — beide teilen sich allerdings die Adressvergabe, siehe EDID.
- HDCP: Die Berechtigungsprüfung. Sie entscheidet, ob gesendet werden darf, und erzeugt eigene Verzögerungen beim Einschalten, siehe HDCP.
- InfoFrame: Begleitdaten, die die Quelle mit jedem Bild mitschickt. Sie beschreiben das laufende Signal, nicht die Geräte, siehe InfoFrame.
- ARC und eARC: Der Tonrückkanal vom Fernseher zum Verstärker. ARC wird über CEC gesteuert und erbt damit dessen Unwägbarkeiten; eARC hat einen eigenen Steuerweg und ist genau deshalb robuster, siehe eARC und ARC.
- Steuerungssystem: IP- oder RS-232-Steuerung mit eigener Logik, Szenen und Rückmeldung. Eine andere Klasse von Werkzeug, kein besseres CEC.
In der Planung
Ein Wohnzimmer mit Fernseher, AV-Receiver im Sideboard, einem Streaming-Zuspieler und einer Spielkonsole. Der Kunde wünscht sich, dass eine Taste reicht.
Bevor Geräte ausgewählt werden: Wie viel Verlass muss auf dem Einschalten liegen? Für eine Anlage, die im Alltag von mehreren Personen bedient wird und bei der ein halb hochgefahrener Zustand nur ärgerlich ist, darf CEC die Antwort sein. Für ein dediziertes Kino, in dem eine Bedienung vor Gästen funktionieren muss, ist eine Funktion, die laut Spezifikation optional ist und deren Umsetzung kein Hersteller zusagt, keine Grundlage.
Das Vorgehen fällt in beiden Fällen anders aus. Soll CEC die Arbeit machen, gehört die Kette kurz gehalten: so wenige Zwischengeräte wie möglich, und jedes davon vorher darauf angesehen, ob es den Bus durchreicht. Soll eine echte Steuerung die Arbeit machen, wird CEC an den Geräten besser abgeschaltet — sonst arbeiten zwei Instanzen gegeneinander, und das Bild davon kennt jeder, der schon einmal einen Fernseher beobachtet hat, der sich nach dem Ausschalten von selbst wieder einschaltet.
Erst danach steht die Gerätefrage: Der Verteiler oder Extender in der Mitte entscheidet über den CEC-Erfolg mehr als Fernseher und Receiver an den Enden.
Verknüpfte Inhalte
Warum ein Gerät seine Adresse aus einem Datenblatt der Gegenstelle bekommt und was passiert, wenn dieser Pfad gestört ist, steht bei EDID. Warum das Einschalten einer Kette auch ohne CEC Zeit braucht, klärt HDCP. Dass der Tonrückkanal in seiner älteren Form auf CEC aufsetzt und in der neueren nicht mehr, behandeln eARC und ARC. Die verlässlichen Alternativen für das Schalten einer Anlage sind RS-232 und der 12-Volt-Trigger.
Quellen
Die Trennung zwischen verpflichtender Leitung und optionalem Protokoll, die elektrischen Anforderungen, die Adressvergabe, die Bit- und Antwortzeiten sowie der Funktionsumfang stammen aus der HDMI-Spezifikation in der Fassung 1.3, die für diese Seite im Volltext eingesehen wurde. Pin-Zuordnung, Datenrate, Paketaufbau und die Liste der Handelsnamen sind zusätzlich an einem Foliensatz von Hans Verkuil belegt.