Startseite>BeagleBone Black als Multimedia-Plattform
Aus Raspberry Pi Geek 05/2014

BeagleBone Black als Multimedia-Plattform

© Solovyova Lyudmyla, 123RF

Gut abgerichtet

Andrew Henderson

Der BeagleBone Black ist zwar etwas teurer als der RasPi, dafür jedoch deutlich leistungsfähiger und ähnlich flexibel. Seine speziellen Fähigkeiten prädestinieren ihn aber besonders zum Einsatz als Multimedia-Center.

README

Das integrierte HDMI-Cape des BeagleBone Black macht den preiswerten Kleinstrechner zur idealen Multimedia-Zentrale. Zwar steckt der Teufel beim Konfigurieren des HDMI-Framer-Chips im Detail, doch lassen sich Probleme mit dem richtigen Hintergrundwissen schnell beseitigen.

Der BeagleBone Black ist eine relativ günstige (unter 60 Euro), leistungsfähige und flexible Plattform, die sich für eine breite Palette an Anwendungen eignet. Wer ihn als Multimedia-System einsetzen will, oder auch nur die gebotenen Audio- und Video-Fähigkeiten voll ausreizen, der stößt jedoch gelegentlich auf Hindernisse. Um zu verstehen, wo diese herrühren und wie man sie beseitigt, gilt es, einen näheren Blick auf den HDMI-Standard (“High-Definition Multimedia Interface”) zu werfen. Wir zeigen im Folgenden, wie Sie den BeagleBone Black für eine optimale Audio-Ausgabe einrichten und die richtige Bildschirmauflösung setzen.

Vorgeschichte

Das originale, als Open Hardware entworfene BeagleBoard besaß keine Onboard-Hardware, um digitale Multimedia-Signale in eine analoge Ausgabe umzuwandeln. Daher gab es auch keine Schnittstellen, über die man einen Bildschirm oder Lautsprecher hätte anschließen können. Wer so etwas vorhatte, musste zu einem Erweiterungsboard greifen, das man an die Konnektoren P8/P9 des BeagleBoard anschließt, einem sogenannten Cape (siehe Kasten “Was ist ein Cape?”)

Ein entsprechendes Multimedia-Cape bringt die Hardware für die Digital-Analog-Wandlung von Multimedia-Signalen sowie die physikalischen Anschlüsse für Bildschirm und Lautsprecher mit – ein recht effektiver Ansatz. Allerdings schränkt dies die Verfügbarkeit des BeagleBoards für andere Zwecke ein, da das Cape ja die Pins der Konnektoren P8/P9 mit Beschlag belegt, die nun für andere Zwecke nicht mehr zur Verfügung stehen.

Das BeagleBone Black löst dieses Problem dadurch, dass es ein komplettes HDMI-Cape gleich auf der Platine integriert und auf diese Weise Audio- und Video-Schnittstellen bereitstellt. Solange der Prozessor des Boards die Multimedia-Signale sauber multiplext, lässt sich damit ohne Zusatzhardware ein digitale Bildschirm direkt am Micro-HDMI-Konnektor betreiben. Abbildung 1 zeigt, wo auf der Platine der HDMI-Anschluss und der HDMI-Framer-Chips sitzen, aus denen das fest verbaute Cape besteht [1].

Abbildung 1: Der Sitz der Hardwarekomponenten, die auf dem BeagleBone Black die HDMI-Schnittstelle implementieren.

Abbildung 1: Der Sitz der Hardwarekomponenten, die auf dem BeagleBone Black die HDMI-Schnittstelle implementieren.

Was ist ein Cape?

Im Slang der BeagleBone-Community bezeichnet man alle Peripheriegeräte, die über den sogenannten Capebus-Mechanismus mit dem Linux-Kernel kommunizieren, als Capes. Im engeren Sinn steht der Begriff für kleine Erweiterungsplatinen rund um die BeagleBone-Boardfamilie [5].

Das BeagleBone Black bringt zwar bereits eine eingebaute HDMI-Schnittstelle mit, doch aus technischer Sicht handelt es sich dabei ebenfalls um ein Cape, da die Kommunikation auch hier über den Capebus erfolgt. Aus Sicht des Kernels unterscheidet sich die fest auf der BeagleBone-Black-Platine verbaute Hardware durch nichts von einem separaten Cape.

HDMI verstehen

Ältere Übertragungsmethoden wie PAL, NTSC und VGA verwenden analoge Signale, um Bildsignale an Bildschirme oder Monitore zu übergeben. HDMI setzt dagegen auf eine digitale Signalisierung und überträgt Pakete mit blockweise gegliederten Audio- respektive Video-Informationen. Bei gleichem Informationsgehalt belegen solche Pakete weniger Bandbreite als die analoge Signalisierung. Daher unterstützt HDMI auch sehr hohe Anzeigeauflösungen (bis zu 4096 x 2160 Pixel bei 24 Bit Farbtiefe) und qualitativ hochwertiges Audio (bis zu acht Kanäle mit bei 192 kHz gesampelten 24-Bit-Daten).

Die HDMI-Spezifikation [2] legt fest, auf welche Weise HDMI-Geräte ihre Daten zu verpacken und zu übermitteln haben. Die 2002 erschienene Version 1.0 der Spezifikation beschreibt die Abhängigkeiten zwischen Datenquellen (wie dem BeagleBone Black) und Datensenken (digitalen Anzeigegeräten wie Fernsehern und Monitoren). Im Zug der technischen Entwicklung fügten in den letzten zehn Jahren neue Revisionen und Ergänzungen dem Standard immer höhere Auflösungen und neue Features wie 3D-Video hinzu. Die aktuellste Fassung HDMI 2.0 stammt vom September 2013. Der BeagleBone Black verwendet Version 1.4a der Spezifikation.

HDMI-Quellen verfügen über einen HDMI-Transmitter, der die Daten sammelt, gemäß der Spezifikation verpackt und dann an ein Anzeigegerät übermittelt. Dieses wiederum entpackt die Daten mittels eines HDMI-Receivers und bereitet sie zur Anzeige vor. Auf dem BeagleBone Black übernimmt das ein HDMI-Framer-Chip des Typs NXP TDA19988. Das HDMI-Protokoll nutzt vier logische Datenkanäle zur Verbindung zwischen Transmitter und Receiver: Video, Audio, Auxiliary (Zusatzdaten) und Clock (Takt). Dabei sind Video und Clock ständig im Einsatz, Audio und Auxiliary nur bei Bedarf. Daneben existiert noch ein weiterer Kommunikationskanal namens Consumer Electronics Control oder kurz CEC. Er dient dem Übermitteln von Kommandos zwischen der HDMI-Quelle und dem Display.

Abbildung 2 zeigt schematisch die Kommunikationsabläufe über die diversen logischen Kanäle zwischen BeagleBone Black und einem angeschlossenen digitalen Bildschirm. Linux-Kernel-Treiber füttern den Transmitter über die Signale LCD und McASP mit Video- und Audio-Daten. Die Kontrollsignale des Framer-Chips laufen über den I2C-Bus.

Abbildung 2: Die logischen Kommunikationskanäle zwischen dem HDMI-Transmitter (also dem HDMI-Framer-Chip auf dem BeagleBone Black) und dem HDMI-Receiver (also einem digitalen Display).

Abbildung 2: Die logischen Kommunikationskanäle zwischen dem HDMI-Transmitter (also dem HDMI-Framer-Chip auf dem BeagleBone Black) und dem HDMI-Receiver (also einem digitalen Display).

Bei DVI (“Digital Visual Interface”) handelt es sich um einen weiteren gängigen Standard für das Ansteuern digitaler Displays, der zunehmend das analoge VGA ablöst. Der Video-Teil der HDMI-Signalisierung ist elektrisch mit DVI kompatibel, sodass eine HDMI-Quelle über einen einfachen HDMI-nach-DVI-Adapter einen DVI-Bildschirm ansteuern kann.

DVI- und HDMI-Bildschirme halten “Extended Display Identification Data” (EDID) vor, die sie in einem ROM speichern. Dieser Datenblock beschreibt, welche Auflösungen und Wiederholraten der Bildschirm unterstützt. Über eine als EDID-Reporting bezeichnete Funktion übermittelt das Display die entsprechenden Daten an eine HDMI-Quelle, sobald Sie es an diese anschließen. Dafür sieht das HDMI-Protokoll einen eigenen Display Data Channel vor (siehe Abbildung 2).

HDMI im Linux-Kernel

Im Linux-Kernel des BeagleBone Black zeichnet der TI-LCD-Controller-Treiber (TILCDC) für die Framebuffer-Funktionen verantwortlich und gibt Daten sowie Kontrollsignale auf die LCD-Signalpins der CPU aus. Die Sourcen des TILCDC-Treibers finden Sie im Verzeichnis drivers/gpu/drm/tilcdc des Kernels. Wie jedes Framebuffer-Modul unter Linux stellt der TILCDC-Treiber im Verzeichnis /dev eine Schnittstellendatei bereit (üblicherweise /dev/fb0). Über diese können Userspace-Anwendungen auf einen linearen Speicherpuffer für die Bildschirmausgabe zugreifen.

Das Kernel-Modul tda998x implementiert sowohl den Audio-Codec-Treiber als auch den HDMI-Framer-Treiber. Die entsprechenden Quelltexte, tda998x_drv.c und tda998x_audio_drv.c, liegen im Verzeichnis drivers/drm/gpu/i2c der Kernel-Quellen. Der Audio-Codec nxptda – im Userspace taucht er als nxp-hdmi-hifi auf – stellt als Dummy-Treiber via /dev gerade genug Interface-Dateien bereit, dass Userspace-Programme darüber den Codec als ALSA-Gerät verwenden können.

Die entsprechenden Daten speist das ALSA-Gerät dann über den McASP-Treiber [3] (sound/soc/davinci/dacinci-mcasp.c) in den McASP0-Kanal als für den HDMI-Framer direkt verständliche Signale ein. Der Framer überarbeitet diese vor dem Versand gegebenenfalls noch einmal mittels eines internen Codecs.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland