In diesem Artikel soll unter dem Begriff „Kleines Display“ eine Anzeige verstanden werden, die eine niedrige Komplexität hat. Dies beginnt bei der Auflösung und endet bei der Diagonale. Die eingesetzten Technologien reichen von segmentierten TN- oder STN-Displays über Passiv-Matrix-OLED und e-Paper als Sonderfall bis hin zu TFTs mit Single-Chip-Controllern. Die niedrige Komplexität ermöglicht den Betrieb an einfacher Board-Hardware mit einfachen Schnittstellen. Diese werden hier vorgestellt.
Kleine Displays
Die einfachsten LCDs zeigen Segmente und Icons an. Bis zu einer Multiplexrate von 1:4 werden sie häufig durch einen im Mikrocontroller eingebauten LCD-Treiber betrieben. Die Zahl der Segmente ist limitiert, da bei der TN-Technologie der Blickwinkel mit steigender Multiplexrate eingeschränkt wird.
Für Grafikdisplays eignet sich die STN-Technologie, die auch in positiver Darstellung mit dunklen Zeichen auf hellem Hintergrund eingesetzt wird. Der Vorteil ist die sehr geringe Leistungsaufnahme. Ein Backlight unterstützt die Ablesbarkeit in dunkler Umgebung. Für selbstleuchtende Anwendungen kommen Passiv-Matrix-OLEDs zum Einsatz. Sie sind in vielen Formaten und sehr lange verfügbar. Steht die niedrige Leistungsaufnahme im Standby und hervorragende Ablesbarkeit in heller Umgebung im Vordergrund, empfehlen sich e-Paper-Displays. Für anspruchsvollere Anwendungen werden TFT-Displays eingesetzt. Sie kommen mit einem einzigen IC aus, das auf das Glas aufgeklebt ist. Es erfüllt alle Funktionen: Ansteuerung der Zeilen und Spalten, Erzeugung aller zum Betrieb erforderlichen Spannungen inklusive der Teilspannungen, und Kommunikation zum Host hin.
Die Abbildung oben zeigt ein kleines TFT-Modul von vorne. Der Display-Controller/Treiber befindet sich im unteren Bereich unter einer schwarzen Abdeckmasse. Die Schnittstellen-Leitungen sind zusammen mit denen des LED-Backlights auf Goldkontakte am unteren Rand des Flexverbinders geführt. Das Display-Glas wird in einem Kunststoff-Rahmen gehalten, der auch das Backlight, bestehend aus LED und Diffusor-Folien, trägt. Die zweite Abbildung zeigt den Anschluss des Backlights auf der Flexfolie sowie viele Durchkontaktierungen, mit denen die Leitungen in die für das Ansteuerboard richtige Reihenfolge gebracht werden.
Wofür wird der Frame Buffer gebraucht?
Die Anzeige des LCD muss kontinuierlich Zeile für Zeile mit etwa 60 Hz aufgefrischt werden. Schnittstellen wie RGB oder LVDS versorgen das Display mit einem kontinuierlichen Datenstrom. Die Daten hierfür sind als Frame Buffer im RAM des Systemboards abgelegt und bilden ein Abbild des Displayinhalts. Jedes Pixel wird durch ein Bit (bei Monochrom-Displays), mehreren Bits (für Graustufen-Anzeigen oder bis zu drei mal acht = 24 Bits für vollfarbige RGB-Displays repräsentiert. Entsprechend sind die Datenmengen, die zwischen Bildschirmspeicher und Display verschoben werden.
Der Frame Buffer kann auch im Display-Controller-Chip integriert sein. Der Controller sorgt dann autark dafür, dass dieser Speicher periodisch ausgelesen und damit der Displayinhalt aktualisiert wird. Dadurch wird das Beschreiben und das Auslesen des Speichers entkoppelt. Dies hat zwei Effekte: die CPU braucht nur geänderte Inhalte neu zu schreiben, und die Schreibgeschwindigkeit kann niedrig sein.
Schnittstellen
Kleine Displays werden in Industriesteuerungen vor Ort in Embedded-Systemen, Messgeräten, lokal am Regler in der Industrieanlage, in Geräten für Smart Home, Küchengeräten und Weißer Ware eingesetzt. Sie werden häufig von Mikrocontrollern angesteuert, die das nebenbei machen und ansonsten die gesamten Gerätefunktionen steuern. Bei ihnen steht keine dedizierte Display-Schnittstelle zur Verfügung.
Die am weitesten verbreiteten Schnittstellen sind – nach ihrer Komplexität aufgelistet:
I2C (Inter Integrated Circuit)
Ursprünglich für die einfache Kommunikation auf der Leiterplatte innerhalb von Geräten der Consumer-Elektronik entwickelt (Inter IC), wird diese Schnittstelle auch für die Ansteuerung von Displays mit geringem Anzeigeumfang eingesetzt. Typische Displays sind segmentiert oder grafikfähig mit Anzeigeumfang bis 128x64. Technologien sind (S)TN und PMOLED. Der Frame Buffer befindet sich im Display-Controller.
Die Schnittstelle verwendet nur zwei Leitungen: eine vom Master gesteuerte Taktleitung (SCL) und eine Datenleitung (SDA), die bidirektional (Schreiben/Lesen) betrieben wird. Jeder Busteilnehmer hat eine hardwaremäßig zugewiesene Adresse, mit der er gezielt angesprochen werden kann. Die ursprüngliche Spezifikation des I2C-Busses nennt eine Taktfrequenz von 100 kHz, mittlerweile gibt es erweiterte Versionen, die 400 kHz oder 1 MHz Datenrate erlauben.
Vorteilhaft ist, dass nur wenige Leitungen verwendet werden müssen, und der I2C-Bus sogar softwareseitig („Bit Banging“) realisiert werden kann. Demgegenüber besteht der Nachteil, dass der Bus für flüssige Farbbilder oder Animationen zu langsam ist, besonders, wenn viele Teilnehmer angeschlossen sind, die ebenfalls mit Daten versorgt werden müssen.
SPI (Serial Peripheral Interface)
SPI hat sich als Standard für kleine bis mittelgroße PMOLED- und TFT-Displays etabliert. Als serielle Schnittstelle kommt sie mit wenigen Leitungen aus: CLK für den Takt, MOSI (Master Out, Slave In) für das Schreiben von Daten, C/D (Command/Data) für die Unterscheidung zwischen Befehl und Datenübertragung und Reset. Gibt es einen Bus mit mehreren Teilnehmern, kann ein CS (Chip Select)-Signal für die Auswahl eines bestimmten Teilnehmers sorgen. Die Datenrate bewegt sich hier im Bereich von 5 bis jenseits 50 MHz. Damit lassen sich auf Displays bis QVGA-Auflösung flüssige Animationen darstellen.
QSPI (Quad Serial Peripheral Interface)
QSPI ist eine Weiterentwicklung des SPI, bei der vier Datenleitungen statt nur einer verwendet werden. Dadurch verschiebt sich die Auflösungsgrenze für die Übertragung flüssiger Videos weiter nach oben.
Paralleler Datenbus
Der externe Bus der beiden in den achtziger Jahren dominanten Mikroprozessoren Intel 8080 und Motorola 6800 (und ihrer Familien) kann ebenfalls zur Ansteuerung von Displays verwendet werden. Das Display mit eingebautem Frame-Buffer verhält sich dabei wie ein an den Bus angeschlossenes RAM. Der Aufwand ist dabei enorm: Außer den 8 oder 16 Datenleitungen werden Steuerleitungen wie R/W, E, RS (6800) oder /RD, /WR, RS (8080) und bei beiden CS (Chip Select) verwendet. Die erzielbare Geschwindigkeit ist sehr hoch. Nicht zu vernachlässigen ist die EMV, da hier ein ganzes Bündel Leitungen mit rechteckförmigen Signalen betrieben wird.
Für ein umfangreicheres Mikroprozessorsystem, bei dem viele Peripheriebausteine an den Bus angebunden sind, ist diese Schnittstelle gut geeignet. Als einziger Busteilnehmer würde das Display zu viele Pins blockieren und die Leitungen auf der Leiterplatte wertvolle Fläche verbrauchen. Der Frame-Buffer befindet sich im Display.
Paralleles Interface (RGB, CMOS, TTL)
Die unter verschiedenen Bezeichnungen bekannte Schnittstelle ist die älteste. Sie setzt eine auf dem System-Board oder in der CPU integrierte GPU voraus, da die Daten kontinuierlich übertragen werden müssen. Je nach Farbtiefe des Displays werden 3x6 oder 3x8 Leitungen für die Farbinformationen Rot, Grün und Blau verwendet. Ein Taktsignal synchronisiert die Übertragung, Steuersignale wie HS (Horizontal Sync), VS (Vertical Sync) und/oder DE (Display Enable) steuern die Zuordnung von neuen Zeilen und Frames.
Der Vorteil liegt in der hohen Aktualisierungsrate; typische Displays erlauben 60 Hz. Nachteilig ist die durch die maximale Taktfrequenz begrenzte Auflösung, die bei ungefähr WVGA endet.
MIPI (Mobile Industry Processor Interface)
Mit MIPI wurde ein Standard definiert, der es erlaubt, vielfältige Peripherie an einen Prozessor anzuschließen. Der Unterstandard DSI (Display Serial Interface) beschäftigt sich dabei mit der Ansteuerung von Displays. Die Signale sind EMV-optimiert und energieeffizient, aber nur für kurze Verbindungen ausgelegt, wie sie in Geräten der Consumer-Elektronik vorkommen.
Alle Leitungen sind paarweise differentiell ausgeführt, um damit geringe elektromagnetische Störungen zu erzeugen. Je nach Display-Auflösung werden ein oder mehrere Paare für die Daten verwendet.
Ein Nachteil mag die nicht ganz einfache Initialisierung sein, bei der sich Host und Display über die Eigenschaften der Schnittstelle austauschen und die Übertragung anpassen. Für kleine Mikrocontroller ist die Schnittstelle wegen der fehlenden Hardware nicht geeignet. Die folgende Tabelle 1 vergleicht die beschriebenen Schnittstellen in Bezug auf die Hardware.
Vergleich auf Bitebene
Wie lange dauert es, um ein Datenpaket von 10 Bytes zwischen CPU und Display auszutauschen? Das hängt von Parametern wie Datenrate, Breite der Schnittstelle und dem Overhead des Protokolls ab.
I2C
Da am I2C-Bus mehrere Teilnehmer angeschlossen sind, muss zunächst die Adresse des Teilnehmers, hier: des Displays übertragen werden. Das I2C-Protokoll sieht eine Quittung jedes übertragenen Bytes durch den Adressaten vor, so dass für die Übertragung eines Bytes 8 Bits plus ein Acknowledge-Bit erforderlich sind. Die Übertragung selbst wird durch eine Start- und eine Stopp-Flanke eingeschlossen, mit der Teilnehmer auf den Beginn bzw. das Ende der Übertragung aufmerksam gemacht werden.
Für die Übertragung von 10 Bytes werden daher benötigt:
Adressierung: 1 Byte (8 Bits) + 1 Acknowledge-Bit = 9 Bits
Nutzdaten: 10 Bytes x (8 Bits + 1 ACK-Bit) = 90 Bits
Protokoll-Overhead für Start und Stopp: 1 Takt bzw. Bit
Summe: 9 + 90 + 1 = 100 Bits.
Je nach Bus-Mode (Standard/Fast/Fast plus) dauert die Übertragung von 10 Bytes zwischen 1ms und 0,1ms.
SPI
Im Gegensatz zu I2C ist SPI ein synchrones, vollduplex-fähiges Bussystem ohne Protokoll-Overhead für Adressierung, Richtungsbits oder Bestätigungen (ACK). Es gibt keinen Protokoll-Overhead: Jedes Byte benötigt bei Standard-SPI genau 8 Taktzyklen.
Eine reine SPI-Übertragung von 10 Bytes dauert zwischen 1 Mikrosekunde (Datenrate 80MHz) und 80 Mikrosekunden (Datenrate 1 MHz). Die maximale Datenrate wird oft durch das Peripheriegerät (Sensor, SD-Karte, Display) bestimmt.
QSP
QSPI bietet die gleichen Vorteile wie SPI, jedoch stehen hier für die Datenübertragung vier parallele Leitungen zur Verfügung. Mit jedem Taktpuls werden daher vier Bits übertragen. Um 10 Bytes zu übertragen, sind daher nur 20 Takte nötig. Je nach Datenrate dauert dies 2µs (10MHz) bis 0,2µs (100MHz).
Paralleler Datenbus
Bietet ein Display eine Datenbus-Schnittstelle, so kann es in einem busorientierten System direkt mit anderen Teilnehmern verbunden und adressiert werden. Voraussetzung ist dafür ein im Display integrierter Framebuffer.
RGB
Auch als TTL, CMOS oder paralleles Interface bekannt, überträgt diese Schnittstelle 60 Bilder pro Sekunde. Die Daten liefert die GPU auf dem Systemboard mit kontinuierlichem Datenstrom und Steuersignalen. In der Praxis limitieren die Logik-Pegel der TTL- oder CMOS-Logik mit entsprechend steilen Flanken die maximale Taktfrequenz (Dot Clock) von 25 bis 30 MHz die Framerate und die Auflösung des Displays.
MIPI
MIPI wurde entwickelt, um Daten auf kurzer Entfernung mit hoher Geschwindigkeit auf wenigen Leitungen zu übertragen und dabei EMV-tolerant zu sein. Pro Lane werden nach der Initialisierung Datenraten von 1,5 bis 2,5Gbit/s erreicht. Durch Zusammenschalten von bis zu vier Lanes werden Datenraten erreicht, um hochauflösende Displays mit hohen Frameraten in Mobiltelefonen anzusteuern.
Warum nicht LVDS?
Kleine Displays werden an Mikrocontrollern und Mikroprozessoren betrieben, die keine lokale LVDS-Schnittstelle haben. Die brauchen sie auch nicht, da die Distanz zwischen Board und Display nur gering ist. Durch die Entwicklung von MIPI wurde die Integration von LVDS übersprungen.
Welche Schnittstelle ist die beste?
Es gibt keine Antwort auf diese Frage, denn es gibt zu viele Faktoren, die die Auswahl der Schnittstelle beeinflussen.
Wie viele Pins stehen zum Anschluss des Displays zur Verfügung, und ist die Schnittstelle in Hardware oder Software realisiert? Bei wenigen Pins und einem Display mit niedriger Komplexität (zum Beispiel Character-Display, Segment-Display, kleines Grafikdisplay) eignen sich I2C und SPI, bei einem Mikroprozessorsystem mit am Bus angeschlossener Peripherie eher ein paralleler Datenbus. Verfügt das Hostsystem über eine eigene GPU, ist der Anschluss eher als QSPI oder MIPI herausgeführt.
Gibt es einen Frame Buffer auf dem Display? Dann wird das RAM des Hostsystems entlastet, denn selbst ein monochromes Bild in QVGA-Auflösung benötigt 75 kBytes Speicher, bei Vollfarben mit 18 Bit Farbtiefe (wie beim besprochenen Controller) sind es bereits über 300 kBytes. CPUs, die noch andere wichtige Aufgaben erledigen müssen, können diesen Speicherbereich selektiv füllen, ohne dass ein durchlaufendes Bild den Anwender irritiert.
Gibt es eine Anforderung zur Update-Rate? Wenn ja, sollte die Schnittstelle die Daten rasch genug übertragen, um das Bild in einer definierten Zeit aufbauen zu können, siehe dazu auch Tabelle 2. Ein weiterer Grund kann eine komplexe Visualisierung sein, die nur mit einer leistungsfähigen GPU in Echtzeit erstellt werden kann: Dann sollte die Schnittstelle vom Streaming-Typ sein (RGB oder MIPI). Die GPU rendert dann im systemseitigen Frame-Buffer, und die Streaming-Hardware überträgt das Bild mit der passenden Framerate.
Auf die Ausführung des TFT-Moduls selbst kann der Anwender beim Hersteller Einfluss nehmen: Helligkeit des Backlights, Design der Flexfolie und des Deckglases, Integration eines Touchscreens.
Fazit
Die Auswahl eines Display-Moduls wird von vielen Randbedingungen wie zum Beispiel Diagonale, Auflösung und Helligkeit bestimmt. Die Schnittstelle ergibt sich in den meisten Fällen zwangsläufig, da nicht alle Modelle mit allen Schnittstellen verfügbar sind. Bei der Auswahl dürfen die Möglichkeiten des Host-Systems nicht außer Acht gelassen werden, sowohl die der Hardware als auch die des verfügbaren Speichers und der damit einhergehenden Rechenleistung. Die Schnittstellen mancher Module können durch externe Pins ausgewählt werden. Umgekehrt können Eigenschaften wie zum Beispiel die Helligkeit von TFT-Modulen mit geringem Aufwand angepasst werden.