Nackte Displays anständig ansteuern

Anpassung von Displays an x86-Computermodule

Wenn ein Display direkt an der Hardware und nicht an einer genormten digitalen Grafikschnittstelle wie z.B. DVI angeschlossen werden soll, wird es schwierig. Bei der weit verbreiteten LVDS-Schnittstelle sind zwar Pegel und Farbtiefe definiert, jedoch nicht die Pin-Zuordnung. Auch das Timing der Displays kann trotz gleicher Größe sehr unterschiedlich sein. In den Design Guides wird das Thema oft nur am Rande behandelt – Grund genug also, die Anpassung von Displays an x86-COM-Module genauer unter die Lupe zu nehmen.

Zahlreiche Embedded-Systeme haben heute bereits ein integriertes, leistungsfähiges Display. In der Regel kommt statt eines externen Standard-Displays ein kostengünstiges LCD-Panel zum Einsatz, das sich zudem relativ leicht einbauen lässt und dem Systemhersteller viel Flexibilität in der Realisierung seiner speziellen Lösung lässt. Allerdings ist zusätzlicher Aufwand nötig, um das „nackte“ Display-Panel-Interface zu unterstützen. Im Gegensatz zu Standard- Monitoren, die VGA- oder DVIund Display-Port-Interfaces nutzen, bietet die Schnittstelle für LCD-Panels dem Systemintegrator zusätzliche Möglichkeiten.

Die Datenschnittstelle der LCDPanels ist üblicherweise ein paralleles TTL-Interface, das aus jeweils 6 oder 8 bit für R-, G- und B-Daten sowie den Steuersignalen Hsync, Vsync, DE und einem Takt-Signal besteht. Die Mehrzahl der heutigen LCD-Panels nutzt jedoch eine serielle LVDSSchnittstelle, wodurch sich die Kabelverbindung vereinfacht. Der Serial- LVDS-Datenstrom wird dann von einem lokalen, im Panel integrierten Controller zu parallelen Daten rückgewandelt, um damit das Display zu treiben treiben. Die direkte TTL-Schnittstelle wird nach wie vor von einigen sehr kleinen Displays (unter 5 Zoll) genutzt, da diese Lösung sehr kostengünstig ist. Die überwiegende Zahl der x86-Systeme ist heute mit einem LVDS-Interface ausgestattet, das standardmäßig im Chipsatz realisiert ist. TTL-Schnittstellen werden in einigen Low End-Mikrocontrollern (nicht x86- basierend) verwendet.

Das LVDS-Interface: FPDI oder OpenLDI

Signaldiagramm eines LVDS-Interfaces mit 3 LanesDie LVDS-Schnittstelle ist ein extrem schnelles Differential Serial Interface, bei dem die RGB-Pixel-Daten in drei oder vier serielle Ströme oder Links gepackt werden. Jeder Link enthält 7 bit Daten pro Pixeltakt, sodass sich mit drei Links 21 bit übertragen lassen. Diese 21 bit umfassen jeweils 6 bit für R-, G- und B-Daten plus die drei Steuersignale Hsync, Vsync und DE (Bild 1). Für den Takt ist ein separater Link vorgesehen, der für je 7 bit Daten auf den anderen Links einen Puls generiert – das ist die Pixel-Clock- Frequenz. Damit lassen sich mit drei Links plus Clock 18 bit RGB-Information per Pixel senden.

Signaldiagramm eines LVDS-Interfaces mit 4 LanesUm mehr Farbtiefe zu erreichen, ist optional ein vierter Link vorgesehen, der weitere 7 bit (2 rot, 2 grün, 2 blau und ein zusätzliches Bit) zur Verfügung stellt. Damit lässt sich eine Farbtiefe von 24 bit per Pixel (bpp) erreichen. Das Problem dabei ist, dass es zwei unterschiedlich definierte Standards gibt, die Daten in das 24-bpp- Format zu packen. Die erste Möglichkeit ist, die LS-Bits (least significant, das niedrigstwertigste Bit) der RGBDaten im vierten Link zu konzentrieren. Die zweite Option reserviert den vierten Link für die MS-Bits (most significant, das höchstwertigste Bit, Bild 2).

Die beiden alternativen Interface- Formate sind bekannt als:

  • Konventionell, auch VESA oder FPDI (Flat Panel Display Interface); hierbei enthält der vierte LVDS-Link die MS-Bits der RGB-Daten.
  • Nicht konventionell oder OpenLDI (Open LVDS Display Interface); hierbei sind die LS-Bits der RGB-Daten im vierten Link enthalten. Diese Methode wird normalerweise für Displays genutzt, die sowohl 18-bpp- als auch 24-bpp-Modi unterstützen. In diesem Fall werden im 18-bpp-Modus die beiden niedrigen Bits der RGB-Daten einfach nicht berücksichtigt.

Typischerweise liegt die von modernen x86-Chipsätzen unterstützte LVDS-Pixel-Taktfrequenz im Bereich von 25 bis 112 MHz (programmierbar). Mit einer maximalen Pixel-Taktfrequenz von 112 MHz können Panels bis zu einer Auflösung von 1280 × 800 (WXGA) bei 60 Hz Bildwiederholrate angesteuert werden. Um höher auflösende Panels zu treiben, bieten zahlreiche Controller einen zweiten LVDSKanal mit zusätzlichen 3 oder 4 Links für 18 bpp oder 24 bpp. Damit lassen sich die Pixel-Taktfrequenz und die effektive Auflösung verdoppeln. Aufgrund der Mindestfrequenz des Chipsatzes von 25 MHz können kleinere Auflösungen als VGA (640 × 480) ohne zusätzliche Hardware nicht unterstützt werden.

Panel-Daten und Hinterleuchtung: nicht standardisiert

JILI30-Kabel und SteckerStandard-Monitore verfügen über exakt definierte Steckverbinderschnittstellen wie VGA, DVI-x, HDMI und Display Port. Im Gegensatz dazu sind LC-Panel-Interfaces nicht standardisiert, weder auf der Controllerbaugruppe noch auf dem Panel. Jeder Panel- Anbieter nutzt unterschiedliche Steckertypen und Pinbelegungen. Allerdings wird von den Embedded- Baugruppen- und Modulherstellern ein Schnittstellentyp favorisiert: das „JUMPtec Intelligent Panel Interface“ (JILI), im besonderen der JILI30-Standard mit 30-fachem Kabelanschluss. Die JILI-Steckertechnologie definiert nur ein Standard-Interface für den Controller. Die Steckverbindung zum Display hängt nach wie vor vom Hersteller und vom Display-Modell ab. MSC liefert vorkonfigurierte JILI30-Kabel für ihre COM-Lösungen, die für eine breite Palette an unterschiedlichen LCD-Panels passen.

LC-Displays benötigen ein Backlight als Lichtquelle, die heute überwiegend in CCFL (cold cathode fluorescent lamp) realisert wird. Mit LED-Backlights getriebene Displays setzen sich dank ihres geringen Leistungsverbrauchs jedoch immer mehr durch – gerade für kleinere, bis zu 15 Zoll große Displays. Die CCFL Backlights arbeiten mit einer Wechselstrom- Hochspannung von etwa 800 Veff bei 50 bis 70 kHz, die von einer zusätzlichen kleinen Inverter- Baugruppe generiert wird. Der Inverter benötigt folgende Signale:

  • Power (12 V(DC)) und Ground,
  • Backlight Control Logic Level – schaltet das Backlight an und aus und kann bei 3,3 V oder 5 V bzw. high oder low active liegen,
  • Helligkeitssteuerung, die über einen analogen Level realisiert werden kann oder optional über einige Inverter, die ein PWM-Eingangssignal erzeugen. Der analoge Helligkeits- Level liegt im Bereich 0 V – 2,5 V – 3,3 V – 5 V und weist entweder einen hohen oder niedrigen Level für maximale Helligkeit auf. Der CCFL-Inverter mit dem Stromversorgungskabel befindet sich typischerweise auf der Rückseite des LCD-Panels (Bild 3).

Für LED-Backlight- Panels wird der Inverter durch eine LED-Treiberbaugruppe ersetzt, die oftmals im Display integriert ist. Ebenso wie der CCFL-Backlight-Inverter benötigt der LED-Treiber eine Spannungsversorgung von 3,3 V, 5 V oder 12 V sowie Steuerungssignale für die Hinterleuchtung und die Helligkeit. Die fehlende Standardisierung der Inverter-/LED-Treiberschnittstelle führt zu einigen Schwierigkeiten beim erstmaligen Anschluss eines LCD-Panels. Dabei können das Modul und das Baseboard zusätzliche Flexibilität über Jumper oder BIOS-Settings einbringen, um unterschiedliche Lösungen zu unterstützen. Die Kabelverbindung vom COM-System zum Inverter oder zur LED-Treiberbaugruppe ist ebenfalls nicht standardisiert und muss abhängig von der jeweiligen Anwendung aufgebaut oder vorkonfiguriert gekauft werden.

EEPROM erleichtert Display-Anpassung

Gängige PC-Monitore verfügen über einen Display-Datenkanal (DDC), der über einen auf einem I2C-Bus basierenden, seriellen Link die Verbindung zum Grafikcontroller herstellt. LCDPanels hingegen unterstützen DDC in der Regel nicht. Die wenigen Panel- Typen, die DDC anbieten, enthalten ein EEPROM, das über I2C ausgelesen werden kann und die gewünschte Auflösung und die Timing-Parameter für den Bildschirm enthält.

Nach der Auswahl des Panels einschließlich der benötigten Kabel muss das Panel an das COM und das Baseboard angeschlossen werden. Das System-BIOS des Moduls enthält ein Video-BIOS, das eine begrenzte Auswahl an LCD-Panels – in der Regel 16 Typen – umfasst. Im Hinblick auf das breite Angebot an Panels, die unterschiedlichen Interface-Standards entsprechen (VESA/OpenLDI, Single/ Dual LVDS-Kanal, 18/24 bpp usw.), ist es sehr unwahrscheinlich, dass das gewählte Panel durch eines der 16 im Standard-BIOS gespeicherten Werte unterstützt wird. In diesem Fall ist es einfacher, anstelle der Entwicklung eines kundenspezifischen BIOS ein programmierbares EEPROM auf der Controller-Baugruppe zu nutzen. Das EEPROM muss alle EDID-Daten (Extended Display Identification Data) enthalten, die normalerweise im EEPROM des Panels gespeichert sind. Das 128 byte große EEPROM kann sich auf dem Modul oder auf dem Baseboard befinden.

Der Inhalt und das Format des EEPROM werden in unterschiedlichen Standards (EDID 1.x, EDID 2.x, Enhanced EDID) definiert. Bis vor einiger Zeit adressierte keiner dieser Standards die besonderen Anforderungen der Entwickler von Embedded-Systemen. Eine Reihe von Modul-Herstellern, unter anderem MSC, schlossen sich damals zum EPI-Konsortium zusammen (www.epi-standard.org) und entwickelten den EPI-Standard. Dieser Standard ergänzt die EDID-Daten mit detaillierten Informationen zum Timing des Panels, die benötigt werden, um die unterschiedlichen angebotenen Panel-Modelle zu treiben.

Die EPI-Organisation bietet auch ein Utility-Programm für Windows an, das kostenfrei von der Webseite heruntergeladen werden kann. Die Software epidata.exe unterstützt die Konfiguration der Daten für das EEPROM. Die für das TFT-Panel auszuwählenden Parameter umfassen die Farbtiefe (18/24 bpp), die Anzahl der LVDS-Kanäle, die LVDS-Zuordnung (Mapping) des vierten Links, die Signalpolaritäten usw. Bild 4 zeigt einen Screenshot dieses Programms.

EPI Data Set Generator

Der Kasten listet die wichtigsten Parameter des Programms auf.

EPI-Utility: Die wichtigsten Parameter

Das Konfigurationsprogramm epidata.exe hilft beim Speichern der Panel- Konfigurationsdaten in einem EEPROM.
Korrekt nach EPI-Standard konfiguriert, kann das Display dann ohne weiteren Konfigurationsaufwand an einem Computer-on-Module-System angeschlossen werden, das in der Lage ist, die Parameter auszulesen und auszuwerten.

Die wichtigsten Parameter der Software sind:

  • H.Active-, V.Active-Leitungen – die Panel-Auflösung.
  • Bits per Pixel – die Farbtiefe (typische Werte: 18 bpp oder 24 bpp).
  • Pixel per Takt – die Anzahl der genutzten LVDS-Kanäle, typisch ein oder zwei.
  • Daten Farb-Mapping – bezieht sich auf die Zuordnung für 24-bpp-Displays mit einem vierten LVDS-Link und kann VESA oder OpenLDI entsprechen.
  • FPSCLK – Flat Panel Shift Clock – bezieht sich auf den Pixel-Datentakt. Dieser Wert lässt sich automatisch berechnen auf der Basis der anderen eingegebenen Parameter.
  • Backlight-Helligkeit – die Panel-Helligkeit wird durch das BIOS konfiguriert. Einige Panel-Inverter nutzen einen umgekehrten Spannungslevel (z.B. Low Voltage bedeutet maximale Helligkeit).
  • DE Polarität – typisch: high active.
  • V.Sync- und H.Sync-Polarität –  typisch: low active. Oft werden diese Signale nicht benutzt, sondern nur das DE-Signal.
  • Die Informationen zu H./V.Blank, H./V.Sync-Offset, H./V.Sync-Breite stehen im Datenblatt des Panels.
  • Die EPI-Kontraststeuerung ist meistens abgeschaltet (disabled).
  • Power-on/off-Sequencing-Verzögerungen – nutzen üblicherweise Defaults.

Mit Hilfe des vertikalen und horizontalen Display-Modes kann, wenn das Panel diese Funktion unterstützt, die Scan-Richtung gewechselt werden, z.B. um das Display zu invertieren.
Nach der Eingabe der Parameter lassen sich die Daten mit „save EPI data set“ speichern. Anschließend wird automatisch eine Binärdatei erzeugt.

Die generierte Binärdatei kann in das EDID/EPI-EEPROM geladen werden mit Hilfe des von MSC erhältlichen DOS-Programms mscedid. Sind mehrere EEPROMs vorhanden, z.B. auf dem COM, dem Baseboard oder im Display, sollte zur Vermeidung von Busproblemen nur ein Speicherbaustein „enabled“ sein. Das EEPROM auf dem Baseboard kann mittels Jumper ein- oder ausgeschaltet werden, das Panel-EEPROM durch die Konfiguration der Kabel. Via BIOS-Setup lässt sich das EEPROM des COM-Moduls ein- und ausschalten.

Die Integration eines LCD-Panels in eine Embedded-Lösung ist relativ einfach, wenn die grundlegenden Konzepte und Terminologien bekannt sind.

Die MSC Vertriebs GmbH unterstützt ihre Kunden bei der Integration mit Computer-On-Modules und Referenzdesign- Baseboards sowie einer breiten Palette an LCD-Panels inklusive vorkonfigurierter Daten- und Inverter- Stromversorgungskabel.

Autor:

Tony Hearn; Senior FAE Embedded COM-Gruppe

veröffetnlicht in:

Elektronik optoelectronics 2009 S.32-35