-
VERWANDTE ANMELDUNGEN
-
Die
vorliegende Anmeldung beansprucht die Priorität der US-Provisional-Anmeldung
60/932,910, die am 1. Juni 2007 eingereicht wurde und deren Inhalt
durch Bezugnahme ind die vorliegende Offenbarung aufgenommen wird.
-
HINTERGRUND
-
Flüssigkeitskristall-Displays
(Liquid Crystal Displays, LCDs) werden in einer Vielzahl von Produkten
verwendet, beispielsweise Mobiltelefonen, digitalen Musikabspielgeräten, PDAs,
Internet-Browsing-Geräten,
und sogenannten Smart Phones wie beispielsweise dem angekündigten
Apple I-Phone, welche eine oder mehrere der vorstehend genannten Funktionen
in einem einzigen, in der Hand zu haltenden Gerät für vereinen. Andere Verwendungen
findet man bei in der Hand zu haltenden Spielen, in der Hand zu
haltenden Computer und Laptop- bzw.
Notebook-Computern. Diese Anzeigen oder Displays sind sowohl in
Graustufen-Ausführungen
(monochromen Ausführungen)
als auch in farbigen Ausführungen
erhältlich
und nehmen typischerweise die Form einer Matrix aus einander schneidenden
Zeilen und Spalten an. Der Schnittpunkt einer jeden Zeile und Spalte
bildet ein Pixel bzw. Punkt, dessen Dichte und/oder Farbe gemäß der Spannung
variiert werden kann, die an das Pixel angelegt ist, um die Graustufe des
LCD zu definieren. Die verschiedenen Spannungen produzieren die
unterschiedlichen Farbschattierungen bzw. -stufen auf dem Display
und werden normalerweise selbst dann als „Graustufen" bezeichnet, wenn
von einem Farbdisplay gesprochen wird.
-
Das
Bild, welches auf dem Schirm angezeigt wird, kann gesteuert werden,
indem individuell eine Zeile des Displays zu jeweils einer Zeit
ausgewählt wird
und Steuerspannungen an eine jede Spalte der ausgewählten Zeile
angelegt werden. Die Periode, während
der eine jede solcher Zeilen ausgewählt ist, kann als eine „Zeilen-Treibungs-Periode" bezeichnet werden.
Dieser Prozess wird für
jede Zeile des Schirms einzeln ausgeführt. Wenn in der Matrix bei spielsweise
480 Zeilen vorliegen, gibt es typischerweise 480 Zeilen-Treibungs-Perioden
in einem Display-Zyklus. Nach der Beendigung eines Display-Zyklus,
während
dem eine jede Zeile in der Matrix ausgewählt wurde, beginnt ein neuer
Display-Zyklus, und der Prozess wird wiederholt, um das angezeigte Bild
aufzufrischen und/oder zu aktualisieren. Ein jedes Pixel des Displays
wird periodisch viele Male pro Sekunde aufgefrischt oder aktualisiert,
sowohl um die an dem Pixel gespeicherte Spannung aufzufrischen,
als auch um jegliche Änderungen
in der von dem Pixel anzuzeigenden Schattierung im Verlauf der Zeit
zu reflektieren.
-
LCDs,
die in Computerbildschirmen verwendet werden, benötigen eine
verhältnismäßig große Anzahl
solcher Kanaltreiber-Ausgaben. Kanaltreiber sind mit einem Source-Anschluss
eines Dünnfilm-Transistors
verbunden, der auf dem Glas des LCD fabriziert ist. Viele kleinere
Display-Geräte,
darunter Kameras, Mobiltelefone und PDAs, haben Sensoren, die die
Orientierung des Displays detektieren. Derartige Geräte können in
Abhängigkeit
von der Orientierung des Gerätes
die Ansicht von Hochformat auf Querformat ändern. Spalten, die vertikal
sind, werden in der Querformat-Orientierung horizontal. Jedoch ist
immer noch dieselbe Struktur (die Spalte) die getriebene Struktur,
obwohl sie die Orientierung einer Zeile einnimmt. Um Verwirrungen
zu vermeiden wird in diesem Patent auf einen „Kanaltreiber" Bezug genommen,
und dieser bezeichnet die Struktur zum Treiben des Source-Anschlusses
des Dünnfilm-Pass-Transistors.
-
Farbdisplay
benötigen
typischerweise dreimal so viele Kanaltreiber wie herkömmliche „monochrome" LCD-Displays; derartige
Farbdisplays benötigen üblicherweise
drei Spalten pro Pixel, eine für eine
jede der drei Primärfarben,
die anzuzeigen sind. Die Kanaltreiber-Schaltung wird typischerweise in Form
von monolithischen integrierten Schaltungen (ICs) ausgebildet. ICs
dienen als Kanaltreiber für
so genannte Active-Matrix-LCDs und erzeugen unterschiedliche Ausgangsspannung,
um die verschiedenen „Graustufen" auf dem LCD zu definieren.
Die variierenden analogen Ausgangsspannungen variieren den Farbton
bzw. die Farbstufe, die an einem bestimmten Punkt bzw. Pixel des
Displays angezeigt wird. Der IC des Kanaltreibers muss die analogen Spannungen
in der richtigen Timing-Folge auf die Spalten der Display-Matrix
anwenden bzw. treiben.
-
LCDs
sind in der Lage Bilder anzuzeigen, weil die optischen Transmissionseigenschaften
des Flüssigkristall-Materials
sich gemäß der Stärke der angelegten
Spannung ändern.
Jedoch würde
die Anlegung einer konstanten DC-Spannung an einen Flüssigkeitskristall
im Laufe der Zeit seine physikalischen Eigenschaften permanent ändern und
verschlechtern. Aus diesem Grund ist es üblich, LCDs mit Techniken zu
treiben, bei denen ein jeder Flüssigkeitskristall
mit Spannungen alternierender Polarität bezüglich eines gemeinsamen Spannungs-Mittelpunkt-Wertes
geladen wird. Man beachte, dass in diesem Zusammenhang der Begriff „Spannungen
alternierender Polaritäten" nicht notwendigerweise
verlangt, dass Treibungs-Spannungen
verwendet werden, die größer als
und geringer als das Massepotential sind, sondern er bringt lediglich
zum Ausdruck, dass die Spannungen oberhalb und unterhalb einer vorbestimmten
mittleren Display-Bias-Spannung liegen. Das Anlegen von Spannungen
alternierender Polarität
an die Pixel des Displays ist allgemein als „Inversion" bekannt.
-
Dementsprechend
beinhaltet das Treiben eines Pixels eines Flüssigkeitskristall-Materials
entsprechend einer bestimmten Graustufe zwei Spannungspulse gleicher
Größe aber
mit entgegengesetzter Polarität
bezüglich
der mittleren Display-Bias-Spannung. Die Treibungs-Spannung, die an
ein beliebiges gegebenes Pixel während
seiner Zeilen-Treibungs-Periode innerhalb eines Display-Zyklus angelegt
wird, wird typischerweise in ihrer Polarität während seiner Zeilen-Treibungs-Periode
im nächsten
folgenden Display-Zyklus umgekehrt. Das Pixel reagiert auf den betragsmäßigen Wert
der Spannung, so dass die letztendlich erreichte „Helligkeit" des Pixels nur von
der Größe der Spannung, nicht
aber ihrer Polarität
abhängt.
Die alternierende Polarität
wird verwendet, um eine „Polarisierung" des Flüssigkeitskristall-Materials in Folge
von Verunreinigungen zu verhindern.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Hinweis:
Die 1–12 und 13–17 verwenden
unabhängige
Sätze von Bezugszeichen
für die
jeweils gezeigten Elemente. Daher sollten sämtliche Bezugnahmen auf Elemente der
Zeichnungen im Kontext gelesen werden, weil sonst der Eindruck einer
zweifachen Verwendung auftreten könnte.
-
1A ist
ein Blockdiagramm, welches direkte Videodaten-Verbindungen von einem
Host-Prozessor zu
einem Matrix-Display gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt.
-
1B ist
ein Blockdiagramm, welches eine seriell codierte Videodatenverbindung
von dem Hostprozessor zu dem Display durch eine Mobile Pixel Link(MPL)- Schnittstelle gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung zeigt.
-
2 ist
ein Blockdiagramm eines Displaytreibers gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
3 zeigt
den Betrieb der LoSSI-Schnittstelle von 2.
-
4 ist
ein Blockdiagramm der MPL-Schnittstelle von 1B.
-
5 ist
ein Diagramm von fünf
Konfigurationen von RAM-Daten gemäß einer Ausführungsform der
vorliegenden Erfindung.
-
6 zeigt Operationen, die das RAM von 2 einbeziehen,
gemäß einer
Ausführungsform der
vorliegenden Erfindung.
-
7 zeigt Operationen für das DE-Lern-Element von 2,
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
8 ist
ein Timing-Diagramm von Signalen, die bei dem Betrieb des DE-Lern-Elements
von 2 einbezogen sind, gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
9 ist
ein Timing-Diagramm von weiteren Signalen, die bei dem Betrieb des
DE-Lern-Elements von 2 einbezogen
sind, gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
10 zeigt Operationen, die das Alpha-Misch-Element
von 2 einbeziehen, gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
11 zeigt
ein Display mit einem Bild innerhalb eines Fensters, wenn ein Display-Treiber
in einem Teil-Modus betrieben wird, gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
12 zeigt
einen Betrieb für
einen Abschalt-Modus, eine Beendigung eines Video-Modus und das
Ablaufen einer Zeit zum Anzeigen von Video-Daten, gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
13 ist
ein Teil-Blockdiagramm des Source-Treiberblocks.
-
14 ist
eine schematische Darstellung der Ausgangskanäle im Source-Treiberblock.
-
15A ist eine schematische Darstellung der Gamma-Generator-Schaltung
in dem Source-Treiberblock.
-
15B ist eine alternative Ausführungsform der Gamma-Generator-Schaltung.
-
15C ist eine weitere Alternative Ausführungsform
der Gamma-Generator-Schaltung.
-
16 zeigt,
wie Pixel in dem Drei-Bit-Modus gepackt werden.
-
17 ist
eine graphische Darstellung einer exemplarischen Gamma-Kurve.
-
18 ist
ein Blockdiagramm einer kommerziellen Ausführungsform eines Video-Display-Treibersystems zum
Anzeigen von Videodaten gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
19A und 19B zeigen
mögliche
negative und positive Gamma-Polaritätskurven.
-
20 ist eine Tabelle mit Werten für Gamma-Kurven
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
21 zeigt
eine Gamma-Kurven-Einstellung gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
22 ist
ein Blockdiagramm einer Gamma-Referenz-Architektur gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
23 ist
ein Blockdiagramm einer AC-VCOM-Schaltung
gemäß einer
Ausführungsform der
vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG
-
Verschiedene
Ausführungsformen
der vorliegenden Erfindung werden unter Bezugnahme auf die Zeichnungen
beschrieben, wobei in mehreren Ansichten gleiche Bezugszeichen gleiche
Teile und Anordnungen bezeichnen. Die Bezugnahme auf verschiedene
Ausführungsformen
beschränkt
nicht den Schutzumfang der Erfindung, der lediglich durch die beigefügten Ansprüche begrenzt
ist. Darüber
hinaus sollen sämtliche
Beispiele, die in dieser Beschreibung ausgeführt werden, nicht als einschränkend verstanden
werden, sondern sie zeigen lediglich einige unter den vielen möglichen
Ausführungsformen der
beanspruchten Erfindung.
-
In
der Beschreibung und den Ansprüchen haben
die folgenden Ausdrücke
mindestens die hier explizit zugewiesenen Bedeutungen, falls der
Kontext nicht klar etwas anderes vorgibt. Die im Folgenden identifizierten
Bedeutungen sollen die Ausdrücke nicht
beschränken,
sondern lediglich Beispiele für
die Ausdrücke
angeben. Die Bedeutung von "ein" und "der, die, das" kann auf Gegenstände in der
Einzahl und im Plural hinweisen. Das Wort "in" kann
sowohl die Bedeutung von "in" als auch "an" haben. Der Begriff "verbunden" bezeichnet eine
direkte elektrische Verbindung zwischen verbundenen Gegenständen, ohne
irgendwelche dazwischen geschalteten Vorrichtungen. Der Begriff "gekoppelt" bedeutet entweder
eine direkte elektrische Verbindung zwischen den verbundenen Gegenständen, oder
eine indirekte Verbindung durch eine oder mehrere passive oder aktive zwischengeschaltete
Vorrichtungen. Der Begriff "Schaltung" kann entweder eine
einzelne Komponente oder eine Mehrzahl von Komponenten bezeichnen,
die aktiv und/oder passiv sein können,
und gekoppelt sind, um eine erwünschte
Funktion bereitzustellen. Der Begriff "Signal" bedeutet mindestens einen Strom, eine
Spannung, eine Ladung, eine Temperatur, Daten oder ein anderes Signal.
-
Der
Begriff "Kanal" identifiziert die
Schaltungselemente, die digitale Daten empfangen und die empfangenen
digitalen Daten in analoge Spannungen umwandeln, die an die Kontaktinsel-Orte
auf einem Glassubstrat angelegt werden. Die Kontaktinseln, so genannte "Pads", sind mit Source-Anschlüssen von
Dünnfilmtransistoren
verbunden. Der Begriff "Reihe" bezieht sich auf
einen Satz von benachbarten Kanalpixeln, die mit einem gemeinsamen Gate-Signal
verbunden sind. Sämtliche
Gates von benachbarten Dünnfilmtransistoren
in einer Reihe sind mit einem gemeinsamen Gate-Signal verbunden.
Eine Reihe wird zum Empfangen von Daten ausgewählt, wenn ihr Gate-Signal die
Transistoren in der Reihe einschaltet. In einer ersten Orientierung des
Displays sind die Ausgangskanäle
Spalten und die Reihen Zeilen. Wenn das Display um neunzig Grad
in eine zweite Orientierung gedreht wird, werden die Spalten zu
Zeilen und die Reihen werden zu Spalten. Im nachfolgenden Text wird
angenommen, dass sich das Display stets in der ersten Orientierung befindet,
und die Begriffe "Spalte" und "Kanal" sind austauschbar,
ebenso wie die Begriffe "Reihe" und "Zeile". Der Fachmann versteht,
dass in der zweiten Orientierung die "Zeilen" immer noch die Ausgangskanäle sind
und die "Spalten" von dem Gate-Treiber ausgewählt werden.
-
Ferner
wird in der folgenden Diskussion eine Reihe von Begriffen verwendet,
deren Definitionen im Folgenden angegeben werden:
Normalmodus:
Dieser Modus ist der Display-Modus, in dem ein Videodatenstrom zum
Display gesandt wird. In diesem Modus wird das Timing von dem Pclk-Signal
und dem DE-Signal
abgeleitet, die durch die Videoschnittstelle empfangen werden. In
diesem Modus wird der Teil-Display-Speicher ("Partial Display Memory") nicht verwendet.
Teilmodus:
Dies ist der Display-Modus, in dem Daten von dem internen Teil-Display-Speicher ausgelesen und
zum Display gesandt werden. Das Timing zum Anzeigen wird durch Registereinstellungen
spezifiziert und von einem internen Oszillator abgeleitet.
Alpha-Modus:
Dies ist der Display-Modus, in dem Bilddaten, die in dem Teil-Display-Speicher gespeichert
sind, mit einlaufenden Videodaten gemischt werden bzw. diesen überlagert
werden. Das Timing wird von den Pclk- und DE-Signalen abgeleitet,
die durch die Videoschnittstelle empfangen werden.
Teil-Display-Speicher:
Ein On-Chip-Speicher, der verwendet wird, um Display-Daten für das Teil-Display-Fenster
zu speichern.
Teil-Display-Fenster: Ein nutzerdefinierter Bereich auf
dem Display, der mit Bilddaten, welche in dem Teil-Display-Speicher
gespeichert sind, selbsttätig aufgefrischt
wird, wenn die Vorrichtung im Teilmodus betrieben wird.
Farb-Modus:
Der Farb-Modus bestimmt die Bit-Tiefe der Daten, die zu dem Display
gesendet werden, und ist von dem Pack-Modus insofern zu unterscheiden, als
unterschiedliche "Pack-Schemata" für einen
gegebenen Farb-Modus verwendet werden können. Beispielsweise kann in
dem Teilmodus das BITS_PER_PIXEL-Register verwendet werden, um einen
der Farb-Modi auszuwählen:
1-Bit-Modus:
Jedes Pixel wird unter Verwendung eines Bits (zweier Stufen) definiert.
Derselbe Datenwert wird für
das rote, das grüne
und das blaue Unterpixel verwendet. Die Treib-Spannungen des Sourcetreibers können so
eingestellt werden, dass sie eine Vordergrundfarbe für einen
Datenwert von 1 und eine Hintergrundfarbe für einen Datenwert von 0 definieren.
Die Vordergrund- und Hintergrundfarbe sind nicht auf Schwarz/Weiß-Werte
beschränkt.
3-Bit-Modus:
Ein jedes Pixel wird unter Verwendung von einem Datenbit (2 Stufen)
für ein
jedes des roten, des grünen
und des blauen Unterpixels definiert. Die Treibspannungen des Sourcetreibers
können
so eingestellt sein, dass sie eine 8-farbige Palette definieren,
die nicht auf die herkömmlichen
Farben Schwarz, Weiß,
Rot, Grün,
Blau, Cyan, Gelb und Magenta beschränkt ist.
3-Bit-Modus-LP:
Modus mit geringer Systemleistung (LP = "low power") und verringerter LoSSI-Schreibgeschwindigkeit
(LoSSI = low-speed serial interface, serielle Schnittstelle niedriger
Geschwindigkeit). Ansonsten ist dieser Modus identisch mit dem 3-Bit-Modus.
12-Bit-Modus:
Ein jedes Pixel wird unter Verwendung von jeweils 4 Bits (16 Stufen)
für das
rote, das grüne und
das blaue Unterpixel definiert bzw. gerendert.
18-Bit-Modus:
Ein jedes Pixel wird unter Verwendung von jeweils 6 Bits (64 Stufen)
für das
rote, das grüne und
das blaue Unterpixel definiert.
Im Normalmodus ist der Ausgangs-Farbmodus 24/18-Bit,
unabhängig
von dem Wert des BITS_PER_PIXEL-Registers oder des TS-Farbeinstell-Befehlszustands.
Pack-Modus:
Wenn Daten über
die serielle Schnittstelle in den Teil-Display-Speicher geschrieben
werden, werden sie gemäß der Bit-Tiefe
gepackt, die verwendet werden wird, wenn die Teil-Display-Speicher-Daten
(BITS_PER_PIXEL-Register) angezeigt werden. Es werden fünf Pack-Modi
bereitgestellt (siehe 5).
1-Bit-Packung: Ein
jedes Byte, das über
die serielle Schnittstelle gesendet wird, enthält sechs Pixel.
3-Bit-Packung:
Ein jedes Byte, das über
die serielle Schnittstelle gesendet wird, enthält zwei Pixel.
Effiziente
3-Bit-Packung: Jeweils drei Bytes, die über die serielle Schnittstelle
gesandt werden, enthalten acht Pixel.
12-Bit-Packung: Je zwei
Bytes, die über
die serielle Schnittstelle gesendet werden, enthalten ein Pixel.
18-Bit-Packung:
Je drei Bytes, die über
die serielle Schnittstelle gesendet werden, enthalten ein Pixel.
Konfigurations-Register:
Register, die die Betriebsmodi und Einstellungen steuern, die das
Verhalten des Treibers beeinflussen.
Register-Zugriffs-Modus:
Dieser Modus gestattet es der seriellen Schnittstelle, direkt auf
die Einstellungen des Konfigurations-Registers zuzugreifen. In diesem
Modus steuert die Host- CPU
die Einstellungen der Konfigurations-Register direkt. Alternativ
kann die Vorrichtung über
den Befehls-Modus gesteuert werden. In den Register-Zugriffs-Modus
wird eingetreten, indem der Register-Zugriffs-Modus-Eintrittsbefehl
gesendet wird.
Befehls-Modus: Dieser Modus stellt ein Verfahren zum
Steuern des Displaybetriebs unter Verwendung von OpCodes einer hohen
Stufe bereit. Ein jeder OpCode lädt
einen zugehörigen
Satz von Konfigurations-Registerwerten aus einem internen EEPROM. Somit
braucht die Host-CPU keine Kenntnis von den Konfigurations-Registern
zu haben. Alternativ kann die Vorrichtung über den Register-Zugriffs-Modus
gesteuert werden. In den Befehls-Modus kann eingetreten werden,
indem der Befehls-Modus-Eintrittsbefehl gesendet wird, oder indem
irgendwelche Daten in die Registeradresse 5Fh geschrieben werden.
Nach dem Reset befindet sich der FPD95120 in dem Befehls-Modus.
-
Low-Speed Serial Interface (LoSSI)-Protokolle:
-
- SPI-Protokoll: Ein traditionalles SPI-ähnliches Protokoll einer seriellen
Schnittstelle, welche ein Lese-/Schreibe-Bit, ein Adressenfeld von
7 Bit, und ein Datenfeld von 8 Bit enthält. Wenn es in Transaktionen
im Befehls-Modus verwendet wird, wird das Lese-/Schreibe-Bit zusammen
mit dem Adressenfeld durch einen Befehl von 8 Bit ersetzt, und das
Datenfeld bzw. die Datenfelder sind optional.
- TSI-Protokoll: Ein Protokoll für eine serielle Schnittstelle,
welches ein Befehls-/Daten-Bit enthält, ein Befehls- oder Adressenfeld
von 8 Bit, und optional ein oder mehrere Datenfelder von 8 Bit.
-
1A ist
ein Blockdiagramm, welches direkte Videodatenverbindungen von einem
Host-Prozessor 30 zu
einer Display-Platine 32 zeigt, die ein Display 34 des
Matrix-Typs, wie beispielsweise ein LCD-Display, und einen Display-Treiber 36 umfasst, der
die Daten von dem Host-Prozessor zum Display-Treiber 36 weiterleitet,
gemäß einer
Ausführungsform
der vorliegenden Erfindung. Zwei Versorgungsspannungen und eine
Erdungsspannung bzw. Massepotential werden auf den drei Leitungen
eines Busses 38 vom Host-Prozessor 30 für den Display-Treiber
bereitgestellt. Videodaten oder RGB-Daten (rot, grün und blau)
werden auf 24 Leitungen eines Busses 40 bereitgestellt,
wodurch der parallele Transfer von 24 Bit Pixel-Daten (8 Bit pro Unterpixel) ermöglicht wird.
Außerdem
werden auch auf einem Bus 42 zwei Signale übertragen,
die Signale Pclk und DE, die von dem Host-Computer 30 mit
den Video daten synchronisiert werden. Drei oder vier Leitungen eines
Busses 44 stellen eine serielle Schnittstelle niedriger
Geschwindigkeit, eine so genannte "low-speed serial interface" (LoSSI) zwischen
dem Host-Prozessor 30 und dem Display-Adapter 36 bereit,
die in einer Ausführungsform
entweder gemäß der so
genannten "Serial
Peripheral Interface" (SPI) oder
der so genannten "Three
Wire Serial Interface" (TSI)
codiert ist. Außerdem
ist in 1A eine Resetleitung 46 zum
Zurücksetzen
des Display-Treibers 36 durch den Host-Prozessor 30 und
ein Videotransfer-Timingsignal auf Leitung 48 von dem Display-Treiber 36 zum
Host-Prozessor 30 gezeigt. Das Videotransfer-Timingsignal
macht Übergänge zwischen
high und low zur selben Zeit, zu der ausgewählte Reihen in das Display 34 geschrieben
werden, damit der Host-Prozessor den Teil-Speicher-RAM 82 aktualisieren
kann, ohne gleichzeitig Teile von zwei Bildern auf dem Display 34 anzuzeigen.
-
1B ist
ein Blockdiagramm, welches eine seriell codierte Videodatenverbindung
von dem Host-Prozessor 30 zu dem Display-Treiber 36 durch eine
so genannte "Mobile
Pixel Link"(MPL)-Schnittstellenschaltung 50 zeigt,
die parallele Videodaten von dem Host-Prozessor empfangt, diese
in serielle Hochgeschwindigkeits-Daten umwandelt und sie gemeinsam
mit einem MPL-Power-Down-Signal auf Leitung 56 auf den
MPL-Datenbus 54, welcher drei Leitungen enthält, platziert,
gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung. Der MPL-Datenbus 54 mit drei
Leitungen besteht aus einem Leitungspaar für zwei differentielle Signale
und einer Taktleitung. Die anderen Kabel und Busse 38, 44, 46 und 48 sind
ebenfalls in 1B gezeigt. Die MPL-Schnittstellenschaltung 50 ist
ebenfalls mit der Schnittstelle 44 niedriger Geschwindigkeit
mit 3 oder 4 Drähten
und der Reset-Leitung 46 verbunden.
-
2 ist
ein Blockdiagramm des Display-Treibers 36 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Der Display-Treiber 36 umfasst
eine Stromversorgung 70, die auf dem Bus 38 zwei
Versorgungsspannungen und eine Erdungsspannung empfängt und
verschiedene Versorgungsspannungen für den Rest des Display-Treibers 36 und
das Display 34 bereitstellt. Einige der Spannungen, die
von der Stromversorgung 70 produziert werden, hängen von
den Charakteristika des Displays 34 und anderer Betriebsbedingungen
ab, die von dem in 1A und 1B gezeigten
Prozessor 30 eingestellt sind. Der Display-Treiber 36 umfasst
außerdem einen
Timing- und Steuerblock 72, der die Timing-Signale erzeugt,
die in dem Display-Treiber 36 verwendet
werden, und der, in Abhängigkeit
von den Registereinstellungen in den Registern 74 und dem
Modus, in welchem der Display-Treiber 36 betrieben wird,
die not wendigen Steuersignale für
den Rest des Display-Treibers 36 bereitstellt. Die Register 74 sind
mit einem EEPROM 76 gekoppelt, welches bestimmte nicht-flüchtige Daten
enthält,
wie beispielsweise die Einstellungen für die verschiedenen Register 74, wenn
der Display-Treiber 36 zum ersten Mal hochgefahren wird
bzw. nach einem Zurücksetzen
("reset"). Das EEPROM 76 enthält auch
eine Mehrzahl von nutzerdefinierten Kombinationen von Registereinstellungen,
so dass der Display-Treiber 36 mit einem einzelnen Befehl
in eine dieser gespeicherten Kombinationen von Registereinstellungen
geschaltet werden kann, anstatt eine jede dieser erwünschten
registrierten Einstellungen direkt eingeben zu müssen. Wenn der Display-Treiber 36 einen
Befehl erhält,
in eine der gespeicherten Kombinationen von Registereinstellungen
zu schalten, wird die in dem EEPROM 76 gespeicherte Einstellung
zu den geeigneten Registern 74 übertragen.
-
Der
Display-Treiber 36 hat eine so genannte "Low-Speed Serial
Interface" (LoSSI) 78,
die eine Schnittstelle mit den Daten auf dem Bus 44 bildet
und die Daten so verarbeitet, wie unten beschrieben wird. Mit Ausnahme
des Reset-Befehls auf der Leitung 46 empfängt der
Schnittstellen-Treiber 36 alle seine Betriebsbefehle durch
die LoSSI-Schnittstelle 78, und er sendet durch die LoSSI-Schnittstelle 78 Daten
zurück
zum Host-Prozessor 30. Wie unten mehr im Detail beschrieben
wird, hat der Display-Treiber 36 zwei grundlegende Betriebskonfigurationen,
einen Befehls-Modus und einen Register-Modus. Wenn er im Befehls-Modus
betrieben wird, werden Befehle, die an der LoSSI-Schnittstelle 78 empfangen
werden, zum Timing- und Steuerblock 72 geleitet, und wenn er
in dem Register-Modus betrieben wird, wird in die ausgewählten Register 74 geschrieben.
-
Die
LoSSI-Schnittstelle 78 wird verwendet, um Bilddaten weiterzuleiten,
die verwendet werden, wenn sich der Display-Treiber 36 in
dem Teilmodus oder dem Alpha-Modus befindet, die beide unten mehr
im Detail beschrieben werden. Der Teilspeicher-Datenpacker 80 empfängt Teilspeicher-Daten von
der LoSSI-Schnittstelle 78, entfernt nicht verwendete Bits
von den Daten und leitet die verbleibenden Daten zum RAM 82,
wie unten mehr im Detail beschrieben wird. Wenn das in dem RAM gespeicherte Bild
angezeigt werden soll, formatiert ein Teilspeicher-Datenformatierer 84 die
Daten in Abhängigkeit von
dem Format der Daten, die in dem RAM gespeichert sind und von dem
Betriebs-Modus des Display-Treibers 36, der unten im Detail
beschrieben wird.
-
Die
normalen Videodaten können
von einem Display-Treiber 36 als Daten mit 24 Bits pro
Pixel auf dem Bus 40 empfangen werden, zusammen mit dem Takt-Timingsignal
Pclk, und dem Daten-Enablesignal, DE, auf Bus 42. Alternativ
kann der Display-Treiber 36 normale Videodaten, welche
gemäß dem MPL-Standard
codiert sind, auf dem seriellen Hochgeschwindigkeits-Daten-Bus 54 mit
Drahtkabel empfangen, gemeinsam mit einem MPL-Verbindung-Power-Down-Signal 56 auf
Leitung 56. Welcher Modus des Display-Treibers 36 eingestellt
ist, um die normalen Videodaten zu empfangen, wird durch einen Kabel-Jumper
auf der Display-Platine 32 bestimmt, wie durch Leitung 86 in 2 angezeigt
ist.
-
Eine
Videoschnittstelle 90 empfängt die normalen Videodaten,
decodiert die MPL-Daten, wenn die Videodaten über die MPL-Verbindung gesendet werden
und wandelt die Pixel-Daten
in 24 Bits pro Pixel um, wenn die einlaufenden Videodaten Daten
mit 18 oder 16 Bit pro Pixel sind, gemäß Algorithmen, die Fachleuten
bekannt sind. Die 24-Bit-Pixel-Daten werden dann zu einem DE-Lernblock 92 übertragen,
der ein Ersatz-DE-Signal für
den Rest des Display-Treibers 36 erzeugt und dabei im Wesentlichen
das einlaufende DE-Signal digital filtert, so dass praktisch alle
fehlerhaften Übergänge in dem
einlaufenden DE-Signal korrigiert werden, wie unten mehr im Detail
beschrieben wird. Der DE-Lernblock 92 detektiert außerdem die
vertikale Dunkeltastungszeit auch, "Blanking-Zeit" genannt, wodurch es dem Display-Treiber 36 ermöglicht wird,
zu arbeiten, ohne horizontale oder vertikale Synchronisationssignale
von der Videoquelle zu empfangen, da der DE-Lernblock 92 das
Ersatz-DE-Signal
basierend lediglich auf dem DE- und dem Pclk-Signal erzeugt.
-
Nach
dem DE-Lernprozess im Block 92 werden die Videodaten in
Sätze von
zwei Pixel (2-Pixel-Sätze) gemultiplext,
die parallel durch einen Video-Multiplexerblock 94 verarbeitet
werden, der einen Ausgangsbus 48 benötigt, der 48 Bit breit ist. Dies
gestattet es, dass die Pixel-Daten mit der halben Datenrate des
einlaufenden Videostroms verarbeitet werden, wodurch die Anforderungen
an das Design erleichtert werden und die von dem Display-Treiber 36 verbrauchte
Leistung verringert wird, da die Übergänge von einem logischen Zustand
zu dem anderen im Wesentlichen doppelt so lang sein können.
-
Nachdem
die einlaufenden Daten durch den Video-Multiplexer 94 in
2-Pixel-Sätze
aufgeteilt wurden, werden die 24-Bit-Daten eines jeden Pixels in 18-Bit-Daten
umgewandelt. Wenn die einlaufenden Videodaten 24 Bits pro Pixel
enthalten, können
die 24-Bit-Daten in 18 Bits umgewandelt werden, entweder durch so
genantes Dithering oder durch Abschneiden der beiden niedrigstwertigen
Bits eines jeden Farbkanals oder Unterpixels (rot, grün und blau) durch
den Hochskalierungs-, Dithering- und/oder Abschneideblock 96.
-
Der
Display-Treiber 36 hat die Fähigkeit, im Alpha-Mischblock 98 die
Videodaten mit den Daten zu kombinieren, die in dem RAM 82 gespeichert
sind, wobei die Details unten näher
beschrieben werden. Zusätzlich
zu der Fähigkeit,
die Videodaten und die Daten des RAM 82 zu mischen, wird
der Alpha-Mischblock 98 auch verwendet, wenn sich der Display-Treiber 36 in
einem Video-Hochskalierungs-Modus befindet, um die Größe des einlaufenden
Videobildes zu vergrößern, indem
ein jedes einlaufende Pixel auf vier Ausgangspixel abgebildet wird.
-
Der
Ausgang aus dem Alpha-Mischblock 98 ist mit einem Spaltentreiber
oder mit Ausgangskanälen 100 gekoppelt,
die in Kombination mit einer Gamma-Referenz 102 die analogen
Graustufenspannungen produziert bzw. produzieren, die über einen
Bus 104 zu den Unterpixeln im Display 34 geleitet
werden, wie unten im Detail beschrieben wird. Da ein sehr üblicher
Typ von Matrix-Display ein LCD-Display ist, wird in der folgenden
Beschreibung ein LCD-Display beschrieben, um die Beschreibung nicht
unnötig kompliziert
zu machen. Es versteht sich jedoch, dass der Display-Treiber 36 auch
mit anderen Arten von Matrix-Displays
verwendet werden kann.
-
Wie
im Fachgebiet bekannt ist, ist das LCD-Display 34 eine
Matrix aus Polysilizium-Transistoren
(nicht gezeigt), die analoge Graustufenspannungen an ihren Source-Kontakten
empfangen (daher der Begriff "Source-Treiber" bzw. "Quellen-Treiber"), und die der Reihe
nach zeilenweise durch Ansteuerung des Gates ein- und ausgeschaltet
werden. Diese Signale werden von dem Timing- und Steuerblock 72 auf
einem Bus 106 zum Display 34 geleitet. Wie ebenfalls
im Fachgebiet wohlbekannt ist, wird eine Spannung Vcom verwendet,
um die Spannungspegel in den Flüssigkristall-Displayelementen (nicht
gezeigt) punktweise, zeilenweise oder frameweise einzustellen, und
diese Spannung wird in dem Vcom-Treiberblock 108 erzeugt
und über
einen Bus 110 zum Display 34 übertragen. Die aktuelle Polarität der Spannung
Vcom wird zur Gamma-Referenz 102 übertragen, um das Umschalten
der Polarität
der Spannung Vcom und der Gamma-Referenzspannung zu synchronisieren.
Die Stromversorgungsspannungen, die von dem Display 34 benötigt werden,
werden über
einen Bus 112 zum Display 34 übertragen.
-
LoSSI-Protokoll im Display-Treiber 36 und
im MPL-Encoder 50
-
Allgemein
gesprochen wird der Display-Treiber 36 durch die Inhalte
der Regier 74 gesteuert, obwohl der Display-Treiber 36 durch
Transaktionen gesteuert werden kann, die über die serielle Verbindung 44 niedriger
Geschwindigkeit gesendet werden, die von der LoSSI-Schnittstelle 78 decodiert
werden, entweder als direkte Befehle oder als Einträge in die Register 74.
In Abhängigkeit
von dem Zustand der Register 74, oder in Antwort auf einen
direkten Befehl, speichert der Display-Treiber 36 entweder
Teilmodus-Daten im RAM 82, tritt er in einen der mehreren
Betriebsmodi ein oder führt
er andere verschiedene Aktionen aus, wie beispielsweise das Bereitstellen von
Statusdaten zurück
an den Host-Prozessor über die
serielle Verbindung 44 geringer Geschwindigkeit.
-
In 3 ist
der Fluss von Daten in den LoSSI-Schnittstellenblock 78 in
einem Flussdiagramm 120 gezeigt. Wie in 3 gezeigt
ist, überwacht
der LoSSI-Schnittstellenblock 78 die einlaufenden seriellen
Daten in Schritt 122 ("Werden
die Daten auf der LoSSI-Schnittstelle mit aktivierter Chipauswahl
empfangen?"). Wenn
der serielle Datenbus 3 Drähte umfasst (ohne eine Chipauswahl-Leitung)
werden die seriellen Daten in Schritt 124 ("Serieller Datendecoder") immer decodiert.
Wenn die serielle Datenverbindung vier Drähte umfasst (mit einer Chipauswahl-Leitung),
leitet der LoSSI-Schnittstellenblock die seriellen Daten nur dann
zum seriellen Decodierschritt 124 weiter, wenn die Chipauswahl-Leitung
für den
Display-Treiber 36 aktiviert ist, wenn die seriellen Daten
von dem LoSSI-Schnittstellenblock 78 empfangen werden.
-
Der
Display-Treiber 36 kann serielle Daten gemäß einem
von zwei unterschiedlichen Protokollen empfangen, dem "Serial Peripheral
Interface"(SPI)-Protokoll
und dem "Three-Wire
Serial Interface"(TSI)-Protokoll,
welches im Wesentlichen dasselbe Protokoll ist wie das SPI-Protokoll,
jedoch mit einem zusätzlichen
Synchronisierungsbit zu Beginn eines einzelnen Lese- oder Schreibvorgangs, und
mit einem zusätzlichen "1"-Bit zwischen aufeinander folgenden
8-Bit-Datenblöcken
bei einer mehrfachen Schreiboperation.
-
Die
LoSSI-Schnittstelle kann in einem System verwendet werden, bei dem
der Display-Treiber 36 serielle
Daten empfängt,
die unter Verwendung desselben seriellen Busses 44, der
das Chip-Auswahlsignal hat, auch zu einem anderen Peripheriegerät gesendet
werden können.
In diesem Betriebsmodus hat der Display-Treiber 36 ein
Verriegelt-/Entriegelt-Register für die LoSSI-Schnittstelle,
welches Daten enthält,
die die LoSSI-Schnittstelle 78 deaktivieren (also verriegelt)
oder aktiviert (also entriegelt). Der Host-Prozessor 30 schaltet,
wenn er serielle Daten zum Display-Treiber 36 senden soll,
die LoSSI-Schnittstelle, falls nötig,
von dem verriegelten zum entriegelten Zustand, indem er einen vorbestimmten Register-Schreibbefehl
an das Verriegelt-/Entriegelt-Register des LoSSI in dem Registerblock 74 sendet.
Wenn der Host-Prozessor jedoch serielle Daten zu einem anderen Peripheriegerät senden
möchte,
welches den seriellen Bus 44 teilt, muss der Host-Prozessor,
falls nötig,
die LoSSI-Schnittstelle 78 verriegeln, bevor er mit dem
anderen Peripheriegerät
kommuniziert.
-
Wie
in 1B gezeigt ist, teilt sich der MPL-Codierer 50 denselben
seriellen Bus 44 mit dem Display-Treiber 36. 4 ist
ein Blockdiagramm des MPL-Codierers 50, der eine MPL-Codierschaltung 130 umfasst,
die 24 RGB-Leitungen auf einem Bus 132 empfängt, die
Signale Pclk und DE auf einem Bus 134, das MPL-Power-Down-Signal
auf Leitung 136, verschiedene andere Steuerungs- und Timing-Signale
zum Steuern des MPL-Codierers 50 auf einem Bus 138 und
Leistung und Erdung auf einem Bus 141. Wie in 1B gezeigt
ist, ist der MPL-Codierer mit dem Display-Treiber 36 über einen Drei-Kabel-Bus 54 und
die MPL-Power-Down-Leitung 56 verbunden,
die Signale für
den und von dem Display-Treiber 36 durch eine Mehrzahl
von Leitungstreibern und Empfängern 142 koppelt.
Der MPL-Codierer 50 enthält außerdem eine serielle Schnittstelle 144 für die Codiererkonfiguration,
die mit dem seriellen Bus 44 mit niedriger Geschwindigkeit
und drei oder vier Leitungen verbunden ist. Die vierte Leitung 146 ist
als gestrichelte Leitung dargestellt, um anzuzeigen, dass es sich
um eine optionale Leitung handelt. Mit der vierten Leitung 146 ist
eine separate Dateneingangs-Leitung
und Datenausgangs-Leitung verfügbar,
anstatt eine einzige Datenleitung für einen bidirektionalen Datenfluss
zu verwenden. Die serielle Schnittstelle 144 für die Codiererkonfiguration
ist mit Registern 148 gekoppelt, die von der MPL-Codierschaltung 130 verwendet
werden, um die Parameter für
den Betrieb des MPL-Codierers 50 zu wählen.
-
Da
die Signale zwischen dem Host-Prozessor 30 und dem Display-Treiber 36 in
einem klappbaren Telefon durch eine Gelenkverbindung übertragen werden
müssen,
ist es wünschenswert,
die Anzahl von separaten Leitern minimal zu halten. Die Verwendung
von MPL-Codierer-Daten
und einer seriellen Schnittstelle mit niedriger Geschwindigkeit
und drei Drähten
hilft, die Anzahl von separaten Leitern auf ein Minimum zu verringern.
-
Die
Codiererkonfigurations-Schnittstelle 144 ist, ähnlich wie
die LoSSI-Schnittstelle 78, entweder in einem verriegelten
Zustand, was bedeutet, dass sämtliche
seriellen Daten mit Ausnahme eines Befehls, einen Entriegelungs-Code
in die Register 148 zu schreiben, ignoriert werden, oder
in einem entriegelten Zustand, in dem sämtliche einlaufenden seriellen
Daten decodiert werden, wenn eine Chipauswahl-Leitung 146,
falls eine solche vorliegt, aktiviert ist. Wenn keine solche Chipauswahl-Leitung 146 vorhanden
ist, werden die Daten in diesem Fall immer decodiert. Der Einfachheit
halber haben das Verriegelungs- und Entriegelungs-Steuerregister für den Display-Treiber 36 und
den MPL-Codierer 50 dieselbe Adresse, und der Verriegelungs-/Entriegelungs-Code
wird durch die Daten in den Registern gebildet, die dem Host-Prozessor
erlauben, einen ersten Verriegelungs-/Entriegelungs-Code zu schreiben,
der den Display-Treiber 36 oder den MPL-Codierer 50 entriegelt
und die andere serielle Schnittstelle verriegelt, oder einen Verriegelungs-/Entriegelungs-Code
zu senden, der beide seriellen Schnittstellen verriegelt, gemäß einer
Ausführungsform
der vorliegenden Erfindung. Nachdem die Resetleitung 46 aktiviert
ist, wird der Display-Treiber 36 sich in dem entriegelten
Zustand befinden, und der MPL-Codierer 50 wird sich in
dem verriegelten Zustand befinden, gemäß einer Ausführungsform
der Erfindung. Wenn der Display-Treiber 36 ohne eine MPL-Verbindung
verwendet wird, wird daher die LoSSI-Schnittstelle 78 entriegelt
und bereit für
die Verarbeitung serieller Daten auf dem seriellen Datenbus 44 niedriger
Geschwindigkeit sein, und der Host-Prozessor 30 braucht
keine Entriegelungsdaten in das Verriegelungs-/Entriegelungs-Register
zu schreiben.
-
Unter
Bezugnahme wiederum auf 3 wird in Schritt 160 ("Ist LoSSI-Block verriegelt?") festgestellt, ob
die LoSSI-Schnittstelle 78 verriegelt ist oder nicht, und
wenn dies der Fall ist, werden in Schritt 162 die Daten
untersucht ("Sind
die Daten Entriegelungs-Register-Schreibdaten?"), um zu prüfen, ob
es sich um einen Entriegelungs-Code handelt. Wenn es sich bei den
Daten nicht um einen Entriegelungs-Code handelt, ignoriert die LoSSI-Schnittstelle 78 die seriellen
Daten und wartet auf das nächste
Segment serieller Daten. Wenn es sich bei den Daten um einen Entriegelungs-Code
handelt, werden die geeigneten Daten in das Verriegelungs-/Entriegelungs-Register geschrieben,
um die LoSSI-Schnittstelle 78 in Schritt 164 ("Entriegeln des LoSSI-Blocks") zu entriegeln, und
die serielle Schnittstelle 78 wartet auf das nächste Segment
serieller Daten.
-
Wenn
die LoSSI-Schnittstelle entriegelt ist, werden die seriellen Daten
in Schritt 166 ("Sind
die seriellen Daten RAM-Daten?")
untersucht, um festzustellen, ob es sich um einen Schreib befehl
für das RAM 82 handelt.
Wenn es sich bei den seriellen Daten nicht um einen Schreibbefehl
für das
RAM 82 handelt, werden die Daten in Abhängigkeit davon, ob sich der
Display-Treiber 36 in dem Befehls-Modus oder in dem Register-Modus
befindet, als Befehl oder Register-Schreibbefehl verarbeitet. In
Schritt 168 ("Befindet
sich der Display-Treiber im Befehls-Modus?") wird ermittelt, in welchem der beiden
Modi sich der Display-Treiber 36 befindet, und wenn er sich
in dem Register-Modus befindet, werden die Daten in das adressierte
Register geschrieben, wie im Block 170 angezeigt ist ("Trage serielle Daten
in das adressierte Register ein").
Das adressierte Register kann das Register sein, welches die Befehls-Modus- oder Register-Modus-Konfigurationsdaten
für den Display-Treiber 36 speichert.
In diesem Fall würde der
Display-Treiber 36 unter der Annahme, dass die seriellen
Daten den Display-Treiber 36 in
den Befehls-Modus konfigurieren, in den Befehls-Modus schalten,
und die LoSSI-Schnittstelle 78 würde auf das nächste Segment
serieller Daten warten. Wenn der Display-Treiber 36 sich
in dem Befehls-Modus befindet, wird der Befehl in Schritt 172 ausgeführt ("Ausführen des
Befehls"). Ähnlich wie
bei dem Register-Schreibbefehl, welcher den Display-Treiber 36 in
den Befehls-Modus schaltet, kann der in dem Block 172 ausgeführte Befehl
ein Befehl sein, den Display-Treiber 36 in den Register-Modus
zu schalten.
-
Teil-Speicher-Bilddatentransfer in das
RAM 82
-
Wenn
die seriellen Daten, die in die LoSSI-Schnittstelle 78 eintreten,
in das RAM 82 zu schreiben sind, werden die Daten zu dem
Teil-Speicher(TS)-Datenpacker übertragen,
wo die seriellen Daten in Schritt 174 ("Zerlegen der Eingangsdaten gemäß dem Format
der LoSSI-Daten
und Speichern der zerlegten Daten im RAM") von 3 zerlegt
und in Abhängigkeit
von dem Format das RAM-Daten in den seriellen Daten zum RAM 82 gesendet
werden. 5 ist ein Diagramm von fünf verschiedenen
Konfigurationen der RAM-Daten in einem jeden Wort der seriellen
Daten. In 5 ist das linke Bit das erste serielle
Bit, welches an der LoSSI-Schnittstelle 78 ankommt. Bei
den fünf
Konfigurationen handelt es sich um eine 1-Bit-pro-Pixel-Konfiguration 180,
eine 3-Bit-pro-Pixel-Standardkonfiguration 182, eine 3-Bit-pro-Pixel-Konfiguration 184 mit
effizienter Packung, eine 12-Bit-pro-Pixel-Konfiguration 186 und eine
18-Bit-pro-Pixel-Konfiguration 188. Wenn das RAM 82 mit
1-Bit-pro-Pixel-Daten zu füllen
ist, wie sie in Konfiguration 180 gezeigt sind, werden
die beiden ersten Bits ignoriert, und die nächsten sechs Bits bilden Daten
für sechs
Pixel. Wenn das RAM 82 mit 3-Bit-pro-Pixel-Daten zu laden ist, können die
Pixel-Daten in einer von zwei Konfigurationen zu dem Display-Treiber 36 gesendet
werden, nämlich
der Konfiguration 182, bei der jedes seriel le Datenwort Daten
für zwei
Pixel enthält,
und der Konfiguration 184 mit effizienter Packung, bei
der drei serielle Datenworte Pixel-Daten für acht Pixel bereitstellen.
Somit ermöglicht
die Konfiguration mit effizienter Packung einen schnelleren Transfer
von 3-Bit-pro-Pixel-Daten zum RAM 82 als die Konfiguration 182, und
zwar um einen Faktor von 8 zu 6 in einem jeden der drei seriellen
Datenworte. Dieser schnellere Transfer der Daten ermöglicht es,
dass das Teil-Speicher-Bild schneller aktualisiert wird, was gestattet, dass
das Teil-Speicher-Bild als stärker
animiert wahrgenommen wird, als wenn die Konfiguration 182 verwendet
wird, um 3-Bit-Pixel
in dem RAM 82 zu platzieren. Die 12-Bit-pro-Pixel-Konfiguration 186 verwendet
zwei serielle Worte, um die 12-Bit-Pixel in das RAM 82 zu
laden, und die 18-Bit-pro-Pixel-Konfiguration 188 verwendet
drei serielle Worte, um die 18-Bit-Pixel in das RAM 82 zu
laden.
-
Leserate des RAM 82
-
6 ist ein Flussdiagramm 200 des
Transfers von Teil-Speicher-Daten von dem RAM 82 zu den
Ausgangskanälen 100 und
des Transfers von Video- oder normalen RGB-Daten von den Video-Eingangsleitungen 40, 42, 54 und 56 zu
den Ausgangskanälen 100.
Der Fluss von Pixel-Daten von dem RAM 82 zu den Ausgangskanälen 100 befindet
sich auf der linken Seite von 6, die
damit beginnt, zu bestimmen, ob sich der Display-Treiber 36 entweder in
dem Teilmodus befindet, was bedeutet, dass das Bild in dem RAM 82 anzuzeigen
ist, oder in dem Alpha-Modus, was bedeutet, dass das Bild in dem
RAM 82 mit den normalen Videodaten zu kombinieren ist, wie
dies in Schritt 202 angezeigt ist ("Ist Display-Treiber im Teilmodus oder
Alpha-Modus?").
Wenn sich der Display-Treiber 36 in dem Teilmodus oder
dem Alpha-Modus
befindet, werden die Teil-Bild-Daten mit einer konstanten Rate aus
dem RAM 82 gelesen, welche von den Konfigurationen des
Teilmodus abhängt,
wie in Schritt 204 angezeigt ist ("Lesen von Daten aus dem RAM mit Rate,
die durch das Format der in dem RAM gespeicherten Daten bestimmt
ist, und in Abhängigkeit
davon, ob Display-Treiber mit normaler oder niedriger Leistung arbeitet"). Die Konfigurationen
des Teilmodus enthalten den Fall, in dem der Display-Treiber 36 sich
in dem Alpha-Modus befindet, wobei das Timing des Lesens von Daten
aus dem RAM 82 durch das Signal Pclk vorgegeben wird, oder
nicht im Alpha-Modus befindet, wobei das Timing des Display-Treibers 36 durch
einen internen Oszillator vorgegeben wird, welcher eine Frequenz von
ungefähr
13,0 MHz aufweisen kann. Andere Konfigurationen des Teilmodus, die
einen Einfluss auf die Leserate des RAM haben, hängen davon ab, ob der Betrieb
des Teilmodus bei normaler Leistung oder niedriger Leistung stattfindet,
und ob das Bild hochzuskalieren ist, um eine zweifache Bildgröße zu erhalten.
Diese weiteren Konfigurationen des Teilmodus werden unten mehr im
Detail beschrieben.
-
Teilmodus mit niedriger Leistung
-
In
dem Flussdiagramm von 6 wird in Schritt 206 festgestellt,
ob der partielle Modus ein Modus normaler Leistung oder ein Modus
niedriger Leistung ist. Wenn der Normalleistungs-Modus vorliegt, werden die Daten des
RAM 82 in Pixel von 18 Bit formatiert, indem in Schritt 208 Nullen
in die Positionen der niedrigstwertigen Bits eingefügt werden ("Falls nötig, Formatieren
der Daten in Sätze
aus zwei 18-Bit-Pixeln, um 2-Pixelgruppen zu bilden"). Falls der Niedrigleistungs-Modus
vorliegt, der von dem Host-Prozessor 30 nur ausgewählt werden kann,
wenn die Daten in dem RAM 82 Daten mit 1- oder 3-Bit-pro-Pixel
sind, werden sämtliche
der 18-Bit-Daten, die zu den Ausgangskanälen 100 gesendet werden,
Daten für
4 Pixel beinhalten, wodurch gestattet wird, dass die Frequenz des
Oszillators (nicht gezeigt) durch 4 geteilt wird, wodurch die von dem
Display-Treiber 36 verbrauchte Leistung im Wesentlichen
auf ein Viertel der normalen Leistung verringert wird. Wenn der
Display-Treiber 36 sich in dem Niedrigleistungs-Modus befindet,
werden zwei Sätze von
18-Bit-Pixeln gleichzeitig zu den Ausgangskanälen 100 übertragen
und Daten für
8 Pixel werden gleichzeitig zu vier Latches der Ausgangskanäle 100 übertragen,
wie in Schritt 210 angezeigt ist ("Setze Adressenzeilen auf Latch der ersten
Zeile, so dass vier 2-Pixel-Gruppen unter Verwendung derselben 36
Bit gleichzeitig geladen werden"),
wobei der Begriff "Latches
der ersten Zeile" sich
auf die Zeile von Latches 110 bezieht, die in Anlage B
zu dieser Anmeldung gezeigt und beschrieben ist.
-
Teil-Hochskalierungs-Modus
-
Wenn
der Teilmodus sich in dem Normalleistungs-Modus befindet, können die
Daten des Teil-Speicher-RAMs 82 in Schritt 212 hochskaliert werden
("Hochskalieren
von TS-Daten").
Da ein jedes Pixel in dem Hochskalierungs-Modus in einer benachbarten
Spalte und in einer benachbarten Zeile nachgebildet wird, wird das
Laden der Daten in die Spalten-Latches so modifiziert, dass die
Sätze von 2-Pixel-Daten,
bzw. 36 Pixel-Bits aus den Daten für ein Pixel bestehen, welches
nachgebildet wird, um die beiden Pixelpositionen wie in Schritt 214 angezeigt,
zu füllen
("Laden des Latches
der ersten Zeile, so dass beide Pixel denselben Datenwert haben"). Um zwei benachbarte
Zeilen des Displays mit denselben Pixeldaten zu versehen, wird darüber hinaus das
Latch der ersten Zeile geladen, nachdem jede zweite Zeile des Displays
in Schritt 216 beschrieben wurde ("Laden des Latches der ersten Zeile einmal für je zwei
Zeilen Ausgabe").
Wenn es sich bei dem Teilmodus um den Niedrigleistungs-Modus oder
den Hochskalierungs-Modus handelt, werden die resultierenden Teil-Daten
zu einem Alpha-Mischblock 218 ("Alpha-Mischen") übertragen,
der die Normalleistungs-Teil-Daten mit den normalen Video-Daten
mischen kann, aber nicht muss, und die resultierenden Daten werden
zu den Source-Treibern 100 geleitet, wie in Schritt 220 angezeigt
ist ("Senden der
Pixel-Daten zu den Source-Treibern"). Nachdem die 2-Pixel-Daten in die
Ausgangskanäle 100 geschrieben
wurden, beginnt der Zyklus des Display-Treibers 36 in Abhängigkeit
davon, ob sich der Display-Treiber 36 in dem Teilmodus
oder in dem Normalmodus befindet, wie in Schritt 222 von 6 ("Teilmodus?") ermittelt wird,
von neuem.
-
Normaler Video-Modus
-
In
dem normalen Video-Modus werden die Daten als 24-Bit-RGB-Videodaten
oder MPL-Videodaten
in Schritten 230 ("Ist
Display-Treiber im RGB-Video-Modus?") bzw. 232 ("Ist Display-Treiber im
MPL-Modus?") in
den Display-Treiber 36 eingegeben. Wenn die normalen Videodaten,
die empfangen werden, 24-Bit-RGB-Daten sind, werden die Daten direkt
zu der Videoschnittstelle 90 gesendet, wo sie, falls nötig, in
24-Bit-Pixel formatiert werden, der DE-Puls wird verzögert, und
die Übergänge in dem DE-Puls
werden mit dem Signal Pclk in Schritt 234 synchronisiert
("Transformieren
aller Nicht-24-Bit-Eingangsdaten zu 24-Bits/Pixel, Verzögern und Synchronisieren von
DE"). Wenn die normalen
Videodaten, die empfangen werden, MPL-Daten sind, werden sie in
Schritt 236 in parallele Daten decodiert ("Decodieren von MPL-Daten"). Nachdem die normalen
Videodaten durch die Prozesse in Schritt 234 normalisiert
wurden, werden die normalen Videodaten zum DE-Lernen 92 gesendet
und digital gefiltert, wie in Schritt 238 angezeigt ist
("Entfernen irrelevanter Übergänge im DE-Eingang"). Der Betrieb des
DE-Lernblocks wird in dem DE-Lernabschnitt unten beschrieben.
-
Nachdem
die normalen Videodaten den DE-Lernblock 92 passiert haben,
werden zwei normale Video-Pixel in dem Video-Multiplexing-Block 94 von 2 in
Schritt 240 als 36 Bits paralleler Daten arrangiert ("Verdoppeln der Busbreite,
um eine Gruppe aus 2 Pixeln zu bilden") (siehe 6).
Die resultierenden Videodaten werden zu dem Hochskalierungs-, Dithe ring-
und/oder Abschneide-Block 96 gesendet, in dem in Schritt 242 ("Hochskalieren der
Videodaten?") festgestellt
wird, ob die Videodaten hochskaliert werden sollen. Wenn die normalen
Videodaten nicht hochskaliert werden sollen, wird die Pclk-Frequenz
in Schritt 244 zur Verwendung im Rest des Normalmodus durch
2 geteilt ("Verlängern der Pclk-Periode
um Faktor 2 zur Verwendung im Rest der Normalmodus-Operationen"). Wenn die normalen
Videodaten hochzuskalieren sind, wird ein jedes 24-Bit-Pixel nachgebildet,
so dass die beiden Sätze von
Pixeln, die parallel verarbeitet werden, in Schritt 246 dieselben
sind ("Setzen der
Adressenzeilen auf Latch der ersten Zeile, so dass 2-Pixel-Gruppen
unter Verwendung derselben 36 Bits gleichzeitig geladen werden"). Dann wird das
Zeilen-Timing so eingestellt, dass zwei Ausgangszeilen für eine jede
Zeile von Videodaten in Schritt 248 geschrieben werden ("Wähle Display-Zeilen-Timing so,
dass zwei Ausgangszeilen für
jede Videozeile geschrieben werden").
-
Es
wird ermittelt, ob die 24-Bit-pro-Pixel auf 18-Bit-pro-Pixel gedithert
werden sollen, oder ob die letzten 2 Bits eines jeden Unterpixels
abzuschneiden sind (vgl. Schritt 250, "Ist der Dither-Modus aktiviert?"). Das Dithern der
24-Bit-Daten wird, falls anwendbar, in Schritt 252 durchgeführt ("Dithern von 24-Bit-Daten
zu 18-Bit-Daten"),
andernfalls werden die 24-Bit-Daten
in Schritt 254 abgeschnitten ("Abschneiden der letzten 2 Bits eines
jeden Unterpixels").
Die resultierenden Daten mit 18-Bit-pro-Pixel werden dann in Schritt 202 dem
Alpha-Mischblock 98 von 2 zugeführt.
-
DE-Lernen
-
In
dem DE-Lernblock 92 wird die Anzahl von Pclk-Perioden,
während
der das DE-Signal "low" ist, für einen
jeden DE-Puls gezählt,
und wenn zwei aufeinander folgende Zählergebnisse gleich sind, wird das
Zählergebnis
als gelerntes DE-Low-Zählergebnis
bezeichnet. Dieses Zählergebnis ändert sich nicht,
bis zwei aufeinander folgende DE-Low-Zählergebnisse auftreten, die
gleich sind, aber verschieden von dem zuvor gelernten DE-Low-Zählergebnis.
Das gleiche Prinzip wird auf die DE-Periode angewendet, d. h., die
Zahl von Pclk-Perioden zwischen aufeinander folgenden abfallenden
Flanken des DE-Signals werden gezählt, und wenn zwei aufeinander
folgende DE-Perioden-Zählergebnisse
gleich sind, wird das Zählergebnis
zu dem gelernten DE-Perioden-Zählergebnis.
Durch das Erzeugen des gelernten DE-Low-Zählergebnisses und des gelernten
DE-Perioden-Zählergebnisses
wird eine nur einmal auftretende Variation in der DE-Low-Zeit oder
der DE-Periode das gelernte DE-Low- Zählergebnis
oder das gelernte DE-Perioden-Zählergebnis
nicht ändern.
Die DE-Pulse liegen während
der vertikalen Dunkeltastungs- bzw. Blanking-Periode der Anzeige
nicht vor, und durch das Detektieren der Abwesenheit der DE-Pulse
zu Anfang der vertikalen Dunkeltastungs-Periode und der Gesamtzeit,
zu der die DE-Pulse vorliegen und fehlen und bis sie erneut auftreten,
kann die Anzahl von gültigen
Zeilen und die Gesamtzahl der Zeilen gelernt werden.
-
7 ist ein Flussdiagramm 240 des DE-Lernprozesses
zwischen dem Kreis A und dem Kreis B in 7,
um ein digital gefiltertes DE-Signal bereitzustellen. Wie in 8 gezeigt
ist, beginnt die gelernte DE-Low-Zählung und die gelernte DE-Perioden-Zählung, wenn
die ersten DE-Pulse in den DE-Lernblock 92 von 2 eingegeben
werden, während
das Lernen der gelernten gültigen
Zeilen und der gelernten Gesamtzeilen erst beginnt, nachdem das
gelernte DE-Low-Zählergebnis
und das gelernte DE-Perioden-Zählergebnis
von Null verschieden sind. In 7 wird
die Zahl von Pclk-Perioden während
des Low-Pulses des DE-Signals zweimal gezählt, in Schritt 242 ("Zählen von Pclk-Perioden in einem
DE-Low-Puls beginnend eine Pclk-Periode nachdem DE fällt und
endend eine Pclk-Periode nachdem DE ansteigt") und in Schritt 244 ("Zählen von Pclk-Perioden in dem
nächsten
DE-Low-Puls beginnend eine Pclk-Periode nachdem DE fällt und
endend eine Pclk-Periode nachdem DE ansteigt"), und die beiden Zählergebnisse werden in Schritt 246 verglichen
("Sind die beiden
Zählergebnisse
gleich?"). Wenn
die beiden Zählergebnisse
gleich sind, wird das gelernte DE-Low-Zählergebnis in Schritt 248 auf das
letzte Zählergebnis
gesetzt ("Setzen
des gelernten DE-Low-Zählergebnisses
auf das letzte Zählergebnis"). Wenn die beiden
Zählergebnisse
verschieden sind, wird in Schritt 244 nochmals gezählt, und das
Zählergebnis
mit der letzten Zählung
verglichen. Dieser Prozess dauert an, bis zwei aufeinander folgende
Zählergebnisse
gleich sind, und das gelernte DE-Low-Zählergebnis festgesetzt ist.
Nachdem das Zählergebnis
festgesetzt ist, wird in Schritt 250 während des nächsten DE-Pulses die Anzahl
der Pclk-Perioden
während
des Low-Zustandes des DE-Pulses gezählt ("Zählen
von Pclk-Perioden in dem nächsten
DE-Low-Puls beginnend eine Pclk-Periode nachdem DE fällt und
endend eine Pclk-Periode nachdem DE ansteigt"), und wenn die letzten beiden Zählergebnisse
gleich sind, wird das zuletzt gelernte DE-Low-Zählergebnis in Schritt 252 auf
das letzte Zählergebnis
gesetzt ("Sind die
letzten zwei Zählergebnisse
gleich?"). Wenn
die beiden Zählergebnisse
nicht gleich sind, wird die Anzahl von Pclk-Perioden während des
Low-Zustandes des nächsten
DE-Signals gezählt,
wie in Block 250 angezeigt ist, und dann in Schritt 252 mit
dem letzten Zählergebnis
verglichen. Somit ändert
sich das gelernte DE-Low-Zählergebnis
nicht, wenn nicht zwei aufeinander folgende Zählergebnisse auftreten, die
gleich sind, aber verschieden von dem aktuellen gelernten DE-Low-Zählergebnis
sind. Dieser Prozess filtert nicht nur auf digitale Weise die DE-Low-Pulszeit, sondern
sie gestattet, dass sich der Display-Treiber 36 an ein neues DE-Signal
mit einer verschiedenen Low-Puls-Zeit anpasst. Wenn hingegen zwei
Störungen,
so genannte Glitches, während
zweier aufeinander folgender DE-Low-Puls-Zeiten
gleich sein sollten, wird sich das gelernte DE-Low-Zählergebnis
fehlerhafterweise ändern,
aber es wird korrigiert, sobald zwei Glitch-freie DE-Low-Pulse nacheinander
auftreten. Da der Display-Treiber 36 das Display in einer Ausführungsform
60-mal pro Sekunde auffrischt, wird ein Zeit-Glitch zu praktisch
keiner wahrnehmbaren Veränderung
in dem angezeigten Bild führen.
-
Auf
dieselbe Weise, wie das gelernte DE-Low-Zählergebnis berechnet wird,
wird das gelernte DE-Perioden-Zählergebnis
berechnet. Somit sind die Prozesse in den Schritten 254 ("Zählen von Pclk-Perioden in einer
DE-Periode beginnend eine Pclk-Periode nachdem DE fällt und
endend ein Pclk-Periode nachdem DE wiederum fällt"), 256 ("Zählen
von Pclk-Perioden in der nächsten
DE-Periode beginnend eine Pclk-Periode nachdem DE fallt und endend
eine Pclk-Periode nachdem DE wiederum fällt"), 258 ("Sind die beiden Zählergebnisse gleich?"), 260 ("Setzen des gelernten
DE-Perioden-Zählergebnisses
auf das letzte Zählergebnis") und 262 ("Sind die beiden letzten
Zählergebnisse gleich?") die DE-Perioden-Gegenstücke zu den
Prozessen in den Schritten 242, 244, 246, 248 bzw. 252. Der
Prozess, der in Schritt 264 genannt ist ("Zählen von Pclk-Perioden in der
nächsten
DE-Periode beginnend eine Pclk-Periode
nachdem DE fällt
und endend eine Pclk-Periode nachdem DE wiederum fallt und Bereitstellen
einer X-Zählstands-Zahl
die ein durchlaufender Zählstand
der Pclk-Perioden während
des Zählens
ist") führt das
DE-Gegenstück
des Prozesses in Schritt 250 aus, aber erzeugt zusätzlich einen
fortlaufenden Zählstand
der Pclk-Perioden während
der Perioden-Zählung. Diese
fortlaufende Zählung
wird verwendet, um festzustellen, wenn ein DE-Puls fehlt, was auf
den Start der vertikalen Dunkeltastungs-Periode (Blanking-Periode)
hinweist.
-
8 ist
ein Timing-Diagramm der relevanten Signale, die verwendet werden,
um das gelernte DE-Low-Zählergebnis,
das gelernte DE-Perioden-Zählergebnis,
das gelernte Zählergebnis
gültiger Zeilen
und das gelernte Zählergebnis
sämtlicher
Zeilen zu bestimmen. Oben in 8 ist das
Signal Pclk gezeigt, welches in dieser Ausführungsform symmetrisch ist.
Unter dem Signal Pclk ist ein Reset-Signal von der Leitung 46 in 1A gezeigt,
welches als reset_n bezeichnet ist. Unterhalb des Reset-Signals befindet
sich das DE-Signal auf dem Bus 42, wel ches um zwei DE-Signalperioden
verzögert
wurde, wie durch die Bezeichnung de_d2 angezeigt ist. Die relativen
Längen
der Low-Pulse und der High-Pulse des DE-Signals wurden in 8 verzerrt,
um die Erfindung besser zu illustrieren. Typischerweise ist die Breite
der Low-Pulse (Low-Pulse), welche der horizontalen Dunkeltastungs-Periode
(Blanking-Periode) entspricht, weniger als 5% der Breite der High-Pulse. Die
fallende Flanke des Signals de_d2 wird verwendet, um ein Signal
der abfallenden Flanke de_fe (fe = "falling edge") zu erzeugen, welches beim Abfallen der
Flanke von de_d2 beginnt und eine Pclk-Periode breit ist. Auf ähnliche
Weise wird die ansteigende Flanke des Signals de_d2 verwendet, um
ein Signal de_re (re = "rising
edge") der ansteigenden
Flanke zu erzeugen, welches beim Ansteigen der Flanke des Signals
de_d2 beginnt und ebenfalls eine Pclk-Periode breit ist. Unter dem
Signal de_re befindet sich ein Zähler,
der mit de_cnt bezeichnet ist und mit der nächsten fallenden Flanke des
Signals de_fe beginnt, nachdem Reset deaktiviert wurde, indem der High-Zustand
angenommen wird, und der Zielstand steigt für jede Pclk-Periode an, bis
die nächste
fallende Flanke von de_fe auftritt. Zu diesem Zeitpunkt wird der
Zählstand
auf "1" zurückgesetzt,
und das Zählen
beginnt von neuem.
-
In
einer Zeile, die mit last_de_low bezeichnet ist, wird die Anzahl
von Pclk-Perioden von der fallenden Flanke des Signals de_fe bis
zur nächsten
fallenden Flanke des Signals de_re gezählt, beginnend nachdem der
Display-Treiber 36 aus dem Reset kommt. Wie in 7 gezeigt ist, ist das erste Zählergebnis
des Signals last_de_low 2, und dasselbe gilt für den nächsten DE-Low-Puls. Demzufolge ändert sich
das Signal learned_de_low nach dem zweiten last_de_low-Zählergebnis
von 0 auf 2. Auf ähnliche Weise
beginnt last_de_per bei der ersten fallenden Flanke von de_fe, nachdem
der Display-Treiber 36 aus dem Reset kommt, zu zählen, und
das Zählen wird
bei der nächsten
fallenden Flanke von de_fe angehalten, und zu diesem Zeitpunkt beginnt
das Zählen
von last_de_per von neuem. Nachdem zwei aufeinander folgende Zählergebnisse
gleich sind, wird der Wert learned_de_per auf den letzten Zählstand von
last_de_per gesetzt. Nachdem das gelernte DE-Low-Zählergebnis
von 0 verschieden ist, und das gelernte DE-Perioden-Zählergebnis
von 0 verschieden ist, beginnt der Zähler learned_x_cnt bei der nächsten fallenden
Flanke von de_fe zu zählen,
und beginnt wieder zu zählen
bei der nächsten
fallenden Flanke von de_fe, nachdem der Wert von learned_de_cnt
denselben Zählstand
erreicht, wie der gelernte DE-Perioden-Zählstand.
-
In 8 sind
drei Fehler in dem DE-Signal bei Bezugszeichen 270, 272 und 274 gezeigt.
die gestrichelten Linien zeigen, wie das korrekte DE-Signal aussehen
sollte. Ein jeder dieser Feh ler ändert de_cnt,
das DE-Low-Zählergebnis
und das DE-Perioden-Zählergebnis,
wie in 8 gezeigt ist. Da keiner dieser Fehler zwei aufeinander
folgende fehlerhafte de_cnt mit demselben Zählergebnis, zwei aufeinander
folgende fehlerhafte DE-Low-Zählergebnisse
mit demselben Zählstand
oder zwei aufeinander folgende fehlerhafte DE-Perioden-Zählergebnisse mit
demselben Zählstand
produziert, bleiben die Werte von learned_x_cnt, der gelernte DE-Low-Zählstand und der gelernte DE-Perioden-Zählstand
unverändert,
und diese drei Fehler werden aus dem erzeugten DE-Signal, welches
von dem Rest des Display-Treibers 36 verwendet wird, ausgefiltert.
-
9 ist
ein Timing-Diagramm eines gesamten Frames und dauert wie gezeigt
8 DE-Perioden, um
die Illustration der vorliegenden Erfindung zu erleichtern. Da die
DE-Perioden einer Zeile entsprechen, die in das Display 34 geschrieben
wird, ist die Anzahl von DE-Perioden
in jedem Frame viel größer und
beträgt üblicherweise
mehrere Hundert. Die DE-Pulse 276,
die als gestrichelte Linien gezeigt sind, zeigen in einem jeden
Frame die vertikale Dunkeltastungs-Periode ("Blanking-Periode") an.
-
Unter
Bezugnahme auf 7 und 9 zeigt
ein Schritt 280 („Sind
das gelernte DE-Low-Puls-Zählergebnis
und das gelernte DE-Perioden-Zählergebnis
beide > 0?"), dass der Prozess zum
Ermitteln der gelernten gültigen
Zeilen und der gelernten Gesamtzeilen nicht beginnt, bis das gelernte
DE-Low-Zählergebnis
und das gelernte DE-Perioden-Zählergebnis
beide von Null verschieden sind. Das gelernte DE-Low-Zählergebnis
und das gelernte DE-Perioden-Zählergebnis
werden auf Null gesetzt, wenn der Display-Treiber 36 zurückgesetzt
wird. Nachdem diese Bedingung erfüllt ist, wird in Schritt 282 („Zählen der
Anzahl von vertikalen Blanking-Zeilen") und in Schritt 284 („Ist DE
in der nächsten DE-Periode
für 2 Pclks
high?") die Anzahl
von vertikalen Dunkeltast-Zeilen gezählt, wodurch auch die erste
gültige
Zeile gefunden wird. In Schritt 286, („Setze Zeilenzähler auf
1") wird in Schritt 286 auf
1 gesetzt, und in Schritt 288 („Ist DE für 2 Pclks in der nächsten DE-Periode
high?") und Schritt 290 („Erhöhen des
Zeilenzählers") wird ein Test durchgeführt, um
die erste DE-Periode der vertikalen Dunkeltastung zu finden. Dann
ermittelt der Schritt 292 („Wurden die gültigen Zeilen
zweimal gezählt?"), ob der vorliegende
Zeilenzählstand
der erste gültige
Zeilenzählstand
ist. Falls dies nicht der Fall ist, wird der gelernte Zählstand
gültiger
Zeilen in Schritt 294 („Setze gelernte gültige Zeilen
auf letzten gültigen
Zeilen-Zählstand") auf den aktuellen
Zeilen-Zählstand gesetzt,
und im Schritt 296 wird der gelernte Gesamtzeilen-Zählstand
auf den gegenwärtigen
Zeilen-Zählstand
plus der Anzahl von vertikalen Dunkeltast-Zeilen gesetzt, die in
den Schritten 282 und 284 bestimmt wurden („Setze
gelernte Gesamtzeilen auf gelernten Gültige-Zeilen-Zählstand
plus der Anzahl von vertikalen Blanking-Zeilen"). Dann wird in dem Schritt 298 („Erhöhen des
Zählers") und im Schritt 300 („Ist DE
für 2 Pclks
in der nächsten
DE-Periode high?")
die erste Zeile gefunden. Der Schritt 302 („Wurden
die Gesamtzeilen zweimal gezählt?") bestimmt, ob die
Gesamtzeilen zweimal gezählt
wurden, und wenn dies nicht der Fall ist, schreitet der Betrieb
zum Schritt 286 voran. Wenn die Gesamtzeilen zweimal gezählt wurden,
werden die beiden Zählstände verglichen,
um festzustellen, ob sie gleich sind (Schritt 304: „Sind die
letzten zwei Gesamtzeilen-Zählergebnisse
gleich?"), und wenn
dies nicht der Fall ist, schreitet der Betrieb wiederum zum Schritt 286 voran.
Wenn die beiden Zählergebnisse gleich
sind, wird der gelernte Gesamtzeilen-Zählstand auf den letzten Zeilenzählstand
gesetzt (Schritt 306: „Setze gelernte Gesamtzeilen
auf letzten Gesamtzeilen-Zählstand"), und der Betrieb
kehrt zum Schritt 286 zurück. Wenn der Test in Schritt 292 ergibt,
dass gültige
Zeilen zweimal gezählt
wurden, werden die beiden Zählergebnisse
bzw. Zählstände verglichen,
um festzustellen, ob sie identisch sind (Schritt 308: „Sind die
letzten zwei Gültige-Zeilen-Zählstände gleich?"), und wenn dies
nicht der Fall ist, schreitet der Betrieb wiederum zu Schritt 298 voran.
Wenn die beiden Zählergebnisse
bzw. Zählstände gleich
sind, wird das gelernte Gültige-Zeilen-Zählergebnis
auf das letzte Zeilen-Zählergebnis gesetzt
(Schritt 310: „Setze
gelernte gültige
Zeilen auf letztes Gültige-Zeilen-Zählergebnis") und der Betrieb
kehrt zu Schritt 286 zurück. Die Schritte 312, 314 und 316 enthalten
keine Operation („No
Operation", NOOP)
und sind Flussdiagramm-Werkzeuge, die verwendet werden, um den Prozessfluss
der DE-Lernprozedur korrekt zu zeigen.
-
Wenn
sich das gelernte DE-Low-Zählergebnis
oder das gelernte DE-Perioden-Zählergebnis während des
DE-Lernprozesses, der kontinuierlich arbeitet, wenn sich der Displaytreiber 36 nicht
in einem Reset-Zustand oder einem Schlafzustand befindet, ändert, wird
der DE-Lernprozess
erneut gestartet.
-
Alpha-Mischung
-
10 ist ein Prozess-Flussdiagramm 320, welches
den Betrieb des Alpha-Mischblocks 98 von 2 zeigt.
Wie in 10 gezeigt ist, werden Teilmodus-Daten
im Start bei Kreis C zum Ausgang des Alpha-Mischblocks 98 bei
Kreis E geleitet, wenn sich der Displaytreiber 36 im Schritt 322 („Im Niedrigleistungsmodus?") befindet, da der
Niedrigleistungsmodus nicht damit kompatibel ist, Daten des RAM 82 und
normale Videodaten zu mischen. Als Nächstes wird festgestellt, ob
sich der Displaytreiber 36 in dem Alpha-Mischungsmodus
befindet (Schritt 324: „In Alpha-Mischungsmodus?"). Wenn dies nicht
der Fall ist, werden die Daten des Teilmodus zum Ausgang bei Kreis
E gesendet. Als Nächstes
wird festgestellt, ob der normale 2-Pixel-Satz außerhalb
des definierten Teilfensters liegt (Schritt 326: „Befindet
sich der Normalvideo-2-Pixel-Satz außerhalb des definierten Teilfensters?"). Wenn dies der
Fall ist, werden die Teilmodus-Daten gehalten, bis ein normaler
2-Pixel-Satz gegenwärtig
verarbeitet wird, welcher sich in dem definierten Teilfenster befindet,
wobei das Teilfenster durch Anfangs- und Endzeilen des Teilspeichers
und Anfangs- und Endspalten des Teilspeichers definiert ist, welche
in Registern festgesetzt werden, welche der Hostprozessor 30 ändern kann, um
das Teilspeicherfenster an einem erwünschten Ort auf dem Display 34 zu
platzieren. Wenn die normalen Pixeldaten, die angezeigt werden,
zumindest teilweise innerhalb des definierten Teilfensters liegen,
wird dann ein jedes Pixel aus dem 2-Pixel-Satz separat und parallel
verarbeitet und später
rekombiniert, bevor sie durch den Ausgangs-Kreis E des Alpha-Mischblocks 98 zu
den Ausgangskanälen 100 gesendet
werden.
-
Normale
Videodaten treten, falls sie vorliegen, bei dem Kreis D in das Alpha-Mischungs-Flussdiagramm 320 ein
und in Schritt 328 („In
Alpha-Misch-Modus?")
wird festegestellt, ob sich der Displaytreiber 36 in dem
Alpha-Modus befindet. Falls dies nicht der Fall ist, werden die
normalen Videodaten direkt zum Ausgang bei Kreis E gesendet. Wenn sich
der Displaytreiber 36 in dem Alpha-Misch-Modus befindet
wird festgestellt, ob der Normalvideo-2-Pixel-Satz außerhalb des definierten Teilfensters
liegt (Schritt 340: „Liegt
Normalvideo-2-Pixel-Satz
außerhalb
des definierten Teilfensters?").
-
Wenn
dies der Fall ist, wird der Normalvideo-2-Pixel-Satz zu dem Ausgang
bei Kreis E gesendet. Ein jedes der zwei Pixel in dem 2-Pixel-Satz
wird separat und zur gleichen Zeit und auf dieselbe Weise gemischt.
Das Teilspeicher-Pixel wird in Schritt 342 untersucht („Befindet
sich Displaytreiber in dem transparenten Modus und ist erstes Pixel
des TS-2-Pixel-Satzes = 0?"),
um festzustellen, ob sich der Displaytreiber 36 in dem
transparenten Modus befindet, und falls dies der Fall ist, ob die
Teilspeicher-Pixeldaten nur aus Nullen bestehen (das heißt, ob sämtliche
der drei Unterpixel-Daten lediglich aus Nullen bestehen). Wenn beide
Bedingungen erfüllt sind,
wird das Teilspeicher-Pixel ignoriert (Schritt 344: „Ignorieren
des ersten TS-Pixels").
Wenn eine dieser beiden Bedingungen nicht erfüllt ist, werden die individuellen
Unterpixel der Teilspeicher-Pixel nötigenfalls herunterskaliert
(Schritt 346: „Arithmetisches
Teilen der Unterpixel-Daten des ersten Pixels der 2-Pixel-Satzes
gemäß dem Misch-Niveau") und zwar auf 75%,
50%, 25% oder 0% (lauter Nullen) ihres numerischen Wertes, durch
Verfahren, die im Stand der Technik bekannt sind. In dem Normalvideo-Gegenstück dieses
Prozesses wird das Teilspeicher-Pixel in Schritt 348 ebenfalls
untersucht („Befindet
sich Displaytreiber in dem transparenten Modus und ist das erste
Pixel des TS-2-Pixel-Satzes = 0?"), um
festzustellen, ob der Displaytreiber 36 sich in dem transparenten
Modus befindet und, wenn dies der Fall ist, ob die Teilspeicher-Pixeldaten
aus lauter Nullen bestehen (das heißt ob die Daten eines jeden
der drei Unterpixel aus lauter Nullen bestehen). Wenn beide Bedingungen
erfüllt
sind, wird das erste Normalvideo-Pixel in die erste Pixelposition
des modifizierten 2-Pixel-Satzes
platziert, welcher in Schritt 350 gebildet wird („Platzieren
des ersten Video-Pixels
in die erste Pixelposition der rekonstruierten 2-Pixel-Gruppe"). Wenn eine dieser
Bedingungen nicht erfüllt
ist, werden die individuellen Unterpixel der Normalvideo-Pixel wenn
nötig,
auf 0%, 25%, 50% oder 75% ihres numerischen Wertes herunterskaliert, (Schritt 352: „Arithmetisches
Teilen der Unterpixel-Daten des ersten Pixels des 2-Pixel-Satzes
gemäß dem Mischniveau"), und die skalierten
Teilspeicher-Unterpixel und die skalierten Normalvideo-Unterpixel werden
in Schritt 354 addiert („Arithmetische Addition der
Unterpixel-Daten").
Das gemischte Pixel wird dann in der ersten Pixelposition des modifizierten
2-Pixel-Satzes platziert, welcher in Schritt 356 zu bilden
ist („Platzieren
des ersten gemischten Pixels in der ersten Pixelposition der rekonstruierten
2-Pixel-Gruppe").
-
Das
zweite Pixel des einlaufenden 2-Pixel-Satzes von Teilspeicher-Daten
und Normalvideo-Daten
wird auf dieselbe Weise verarbeitet, wie das erste Pixel des 2-Pixel-Satzes,
und zwar in den folgenden Schritten: Schritt 362 („Befindet
sich Displaytreiber in dem transparenten Modus und ist das zweite
Pixel des TS-2-Pixel-Satzes = 0?"),
Schritt 364 („Ignoriere
das zweite TS-Pixel"),
Schritt 366 („Arithmetisches
Teilen der Unterpixel-Daten des zweiten Pixels des 2-Pixel-Satzes
gemäß dem Mischniveau"), Schritt 368 („Befindet
sich Displaytreiber in dem transparenten Modus und ist das zweite Pixel
des TS-2-Pixel-Satzes = 0?"),
Schritt 370 („Platzieren
des zweiten Videopixels in die zweite Pixelposition der rekonstruierten
2-Pixel-Gruppe"), Schritt 372 („Arithmetisches
Teilen von Unterpixel-Daten des zweiten Pixels des 2-Pixel-Satzes
gemäß dem Mischniveau"), Schritt 374 („Arithmetisches
Addieren der Unterpixel-Daten")
und Schritt 376 („Platzieren des
zweiten gemischten Pixels in die zweite Pixelposition der rekonstruierten
2-Pixel-Gruppe").
Diese Schritte entsprechen den Schritten 342, 344, 346, 348, 350, 352, 354 bzw. 356.
-
Steuern der Position des Bildes auf dem
Display
-
In 11 ist
ein Display 600 gezeigt, welches ein Displaybild (DB) 602 im
Fenster 604 zeigt, bei dem es sich um ein Normalvideobild
oder ein Bild handeln kann, welches erzeugt wird, wenn sich der Displaytreiber 36 in
dem Teilmodus befindet. Das Displaybild 602 wird durch
einen Koordinatensatz auf dem Display definiert. Bei diesen Koordinaten
handelt es sich um die Anfangsspalte 606, die Endspalte 608,
die Anfangszeile 610 und die Endzeile 612. Der Rest
des Displays 600, welcher das Displaybild 602 umgibt,
ist der Rand 614. Das Displaybild 602 kann beispielsweise
einen Hintergrund-Farbbereich 616 umfassen, der einen Marken-
oder Logobereich 618 umgibt, der mit der Vorrichtung selbst
assoziiert ist, oder mit dem Dienst, der von der Vorrichtung bereitgestellt
wird. Das Bild 602 wird automatisch dargestellt, wenn die
Vorrichtung in den Teil-Betriebsmodus eintritt. Die Vorrichtung
kann nach einer vorbestimmten Zeit ohne Eingabe durch den Nutzer
in einen Niedrigleistungs-Modus eintreten. Der Übergang in den Niedrigleistungs-Modus
und der reduzierten Anzeige kann auch durch den Ladezustand der
Batterie begrenzt sein.
-
Das
oben beschriebene RAM 82 wird verwendet, um Bilddaten für eine lokale
Auffrischung des Displays zu speichern. Es kann als die einzige
Videoquelle in dem Teilmodus verwendet werden, oder seine Inhalte
können
in dem Alpha-Mischmodus neben den einlaufenden Videodaten gemischt
werden (oder diesen überlagert
werden). Wenn das System in dem Teilmodus arbeitet, wird die Systemleistung stark
verringert, da der Videokontroller in dem System heruntergefahren
werden kann. In diesem Modus werden Bilddaten aus dem RAM 82 ausgelesen und
verwendet, um das Display aufzufrischen. Das gesamte Display-Auffrischungstiming
wird von dem internen Oszillator (nicht gezeigt) abgeleitet, so
dass keine externen Videosignale benötigt werden.
-
In
der bevorzugten Ausführungsform
umfasst das RAM 82 230.400 Bits Speicher. Diese Größe reicht
aus, um ein 80 × 320
Fenster aus 3-Bit-Daten anzuzeigen, oder irgendeine äquivalente
Größe gemessen
an Gesamtpixeln, die in dem Displayfenster enthalten sind, multipliziert
mit der Farbtiefe eines jeden Pixels.
-
Der
Systemprozessor erfasst es, wenn die Vorrichtung in einen Abschaltmodus
eintritt, erfasst die Beendigung des Videomodus und/oder wenn die Zeit
für das
Anzeigen des Videomodus abläuft.
Instruktionen, die in einem Speicher gespeichert sind, können dann
das Display so betreiben, dass das Display mit Daten aus dem RAM 82 geladen
wird. Die Schritte zum Ausführen
dieses Betriebs sind in 12 gezeigt.
-
In
einem ersten Schritt 620 („Platzieren von Randpixeln
in der obersten Zeile von Sourcetreiber (ST) Latches") liest der Displaytreiber 36 die
Randdaten in das Display. Randdaten können in sämtlichen der ersten Zeile von
Latches gespeichert werden, die Anhang B zu dieser Anmeldung unter
Bezugszeichen 110 identifiziert sind, so lange sie dieselben
für alle
Randpixel sind.
-
Im
nächsten
Schritt 622 („Ist
die nächste
zum Glas zu sendende Zeile niedriger als die Anfangszeile des Teildisplayfensters
oder höher
als die spezifizierte Endzeile des Teildisplayfensters?") liest der Displaytreiber 36 das
RAM 82 und die Daten in den Registern 72 für das Displaybild 602 aus.
Wie an einer anderen Stelle in diesem Patent erläutert wird, wird der Ausgang
des RAM 82 über
ein Paar von Bussen den Ausgangskanälen 100 zugeführt. Die Adressen
der Daten werden untersucht, und wenn das Pixel außerhalb
der Koordinaten des Displaybildes liegen, ist das Pixel ein Randpixel
und bleibt unverändert,
die Antwort ist „ja", das Pixel in dem
Latch bleibt dasselbe und die Pixel in dem Latch werden im Schritt 624 zum
Display 34 gesendet („Anzeigen
der Pixel, die im Latch der ersten Zeile des ST kodiert sind"). Wenn sich jedoch
das Pixel in dem Displayfenster befindet, schreitet der Displaytreiber
zum nächsten
Schritt 626 voran („Platzieren
der nächsten Zeile
des Bildes in die oberste Zeile der Latches des ST beginnend bei
dem Latch, welches der Anfangsspalte des Teildisplayfensters entspricht
und endend bei dem Latch, welches der Endspalte des Teildisplayfensters
entspricht").
-
In
diesem Schritt werden die Nicht-Rand-Pixel in das oberste Latch
geladen, und zwar mehrere Spalten gleichzeitig, um eine Zeile des
Displayfensters zu bilden. Wie an anderer Stelle erläutert wird, gestattet
der Displaytreiber 36 ein effizientes Packen von Daten,
so dass mehrere Spalten gleichzeitig gefüllt werden. Die Ausgangkanäle 100 empfangen
36 Datenbits gleichzeitig, und in Folge der Datenpackung können in
einem Taktzyklus acht Spalten gefüllt werden. Danach lädt der Sourcetreiber
die Ausgangskanäle
wie oben beschrieben, bis sich eine gesamte Zeile von Pixeln in
der ersten Zeile von Latches befindet, die in Anhang B zu dieser
Anmeldung mit dem Referenzzeichen 110 bezeichnet ist. Bei
Beendigung des Laden werden die Pixel so dargestellt, wie in Schritt 628 angegeben
ist („Anzeigen
der Pixel, die im Latch der ersten Zeile des ST kodiert sind").
-
Wenn
die zuletzt angezeigte Zeile die Endzeile 612 des Displayfensters
war, wiederholt der Displaytreiber 36 die oben beschriebenen
Schritte. Siehe hierzu Schritt 630 („War die letzte angezeigte
Zeile die Endzeile des Teildisplayfensters?"). Wenn dies nicht der Fall ist, prüft der Prozessor,
ob das Display in vertikales Dunkeltasten (Blanking) eingetreten
ist (Schritt 632: „Ist
Display in vertikales Blanking eingetreten?). Wenn dies der Fall
ist, springt der Prozessor zum Schritt 622 und wiederholt
die nachfolgenden Schritte.
-
Der
Hostprozessor 30 ist somit in der Lage, das Bild auf dem
Display 34 zu positionieren, indem er die geeigneten Register 78 mit
der Displaytfenster-Anfangszeile, der Displayfenster-Endzeile, der Displayfenster-Anfangsspalte
und der Displayfenster-Endspalte lädt. Durch dieses Verfahren
kann das Bild mit zwei Register-Schreibbefehlen zum Laden neuer
Nummern der Anfangs-Zeile und der End-Zeile nach oben oder unten
bewegt werden, es kann mit zwei Register-Schreibbefehlen zum Laden
neuer Nummern für
die Anfangsspalte und die Endspalte nach rechts oder links bewegt
werden, oder es kann in eine neue vertikale und horizontale Position
bewegt werden, mit lediglich vier Register-Schreibbefehlen für den Displaytreiber 36.
Somit kann das Bild leicht positioniert werden, um als Bildschirmschoner benutzt
zu werden.
-
Gamma-Kompensation
-
Unter
Bezugnahme auf 13 stellt eine Sourcetreiberschaltung 100 digitale
Bilddaten für Ausgangskanäle 200 bereit,
die mit den Sourceanschlüssen
der Pass-Transistoren gekoppelt sind. Ein Gamma-Generator-Schaltungsblock 300 wandelt
digitale Eingangsbilddaten in analoge Spannungen um, die benötigt werden,
um die Sourceleitungen auf dem Glas zu treiben. Die digitalen Bilddaten
können aus
einer Videostrom-Schnittstelle oder einer anderen Quelle stammen,
wie beispielsweise einem Register, einem Speicher für vollständige Frames
oder einem Teildisplayspeicher. Die Sourcetreiberschaltung hat eine
vorbestimmte Anzahl von Ausgangskanälen 200. In den bevorzugten
Ausführungsformen gibt
es 320 Ausgangskanäle.
Ein jeder Ausgangskanal empfängt
RGB-Daten für
ein Pixel und führt
eine Digital-zu-Analog-Umwandlung
für die
Rot-, Grün- und
Blaudaten in einer Zeitmultiplexsequenz durch, die mit Glas-Demultiplexer-Auswahlsignalen (CKH1–CKH3) synchronisiert
ist. Die Umwandlungssequenz der RGB-Daten innerhalb einer jeden
Zeilenzeit wird durch die Einstellungen für ein erstes Register bestimmt.
-
Ein
Registerbit in dem ersten Register steuert die Daten-Laderichtung
der Ausgangskanäle.
Für Displayanwendungen,
bei denen die Anzahl von Pixeln/Zeilen auf dem Glas geringer als
320 Kanäle
ist, kann ein zweites Register verwendet werden, um zu spezifizieren,
welche Ausgänge
aktiv sind und welche Ausgänge
durch die Anwendung nicht verwendet werden. Dies kann dabei helfen,
den Sourceleitungs-Auffächerungsbereich
("fan-out region") zwischen dem Treiber
und dem aktiven Glasbereich zu optimieren. Das zweite Register wird
im Zusammenhang mit der ersten Registereinstellung spezifiziert. Wenn
die Laderichtung als die Richtung S0→S319 festgesetzt ist, wird
das zweite Register bezüglich
der S0-Ausgabe referenziert. Wenn als Laderichtung die Richtung
S319→S0
festgesetzt ist, wird das zweite Register bezüglich der S319-Ausgabe referenziert.
-
Die
Spannungstransfer-Charakteristik des Digital/Analog-Wandlers (DAC,
digital/analog converter) wird durch die 64 Gamma-Referenzspannungen
bestimmt, die von der Gamma-Referenzschaltung
erzeugt werden. Die Treibungsstärke
für den Ausgang
des Kanaltreibers ist ebenfalls programmierbar, um das Einschwingverhalten
und Leistungsverhalten für
Displayscheiben verschiedener Größen und
mit verschiedenen parasitären
kapazitiven Lasten zu optimieren.
-
In
einer bevorzugten Ausführungsform
des Gamma-Generatorblocks 300 stehen vier unterschiedliche
intrinsische Gamma-Kurven zur Verfügung. Der Gamma-Generator erzeugt
64 Referenzspannungen für
eine jede Gamma-Kurve. Die intrinsischen Kurven können verschiedene
Ziele für
den Nutzer des Moduls erreichen. Ein Ziel kann darin bestehen, für verschiedene
Modullieferanten ein aufeinander abgestimmtes optisches Leistungsverhalten zu
erhalten. Es ist sogar möglich,
die individuellen Kurvenformen für
die unterschiedlichen Farbkanäle eines
bestimmten Zulieferers zu optimieren. In diesem Fall können die
vier Kurvenoptionen für
eine jede der Charakteristika des Glases des Lieferanten des Moduls
optimiert werden, und die Auswahl der geeigneten Kurven und Einstellungen
ist möglich.
-
Ein
weiterer Grund für
die Verwendung mehrerer intrinsischer Kurveneinstellungen kann darin bestehen,
verschiedene Gamma-Charakteristika (z. B. γ = 1,0; 1,8; 2,2; 2,5) für ein gegebenes
Modul bereitzustellen, um das Leistungsverhalten für verschiedene
Betrachtungsbedingungen und Anwendungen zu optimieren. In diesem
Fall können
die verschiedenen Kurven über
einen Gamma-Einstellungs-Befehl oder durch einen direkten Registerzugriff
zu den Einstellungen des Gamma-Registers ausgewählt werden.
-
Nachdem
die intrinsische Kurve ausgewählt wurde,
die am besten zu den gewünschten
Charakteristika passt, kann die Kurvenform dann weiter optimiert
werden, wie später
in diesem Patent erläutert wird.
In einer bevorzugten Ausführungsform
werden vier Formen verwendet, aber dem Fachmann ist klar, dass die
Erfindung mit einer oder irgendeiner Anzahl von Gamma-Auswahl-Kurvenformen
ausgeführt
werden kann. Der Nutzer kann eine Form für sämtliche Farben wählen, oder
unterschiedliche Kurven wählen,
oder er kann Anpassungseinstellungen für einen jeden Farbkanal wählen. Diese
selbe intrinsische Form kann für
die grüne
und die blaue Kurve mit unterschiedlichen Optimierungseinstellungen
verwendet werden, oder es können
unterschiedliche intrinsische Formen und Optimierungseinstellungen
für einen
jeden Farbkanal gewählt
werden. Für
einen gegebenen Farbkanal kann dieselbe intrinsische Kurvenform
für beide
Treibungs-Polaritäten
verwendet werden. Andere maßgeschneiderte
Gamma-Kurven können
von dem offenbarten Gamma-Generatorblock erzeugt werden, beispielsweise
dadurch, dass Ausgangsmultiplexer mit mehr als 4-zu-1-Auswahlmöglichkeiten
zugefügt
werden.
-
Sourcetreiberschaltung: Ausgangskanalblock
-
Die
Sourcetreiberschaltung 100 hat zwei Haupt-Schaltungsblocks.
Einer ist der Ausgangskanalblock 200, der die digitalen
Bilddaten für
ein jedes Pixel trägt.
Eine jede Spalte entspricht einem Kanal. Der andere Block ist der
Gamma-Generator-Schaltungsblock 300.
-
Die
Sourcetreiberschaltung 100 arbeitet in zwei Modi: einem
Normalmodus, in dem Videodaten in das LCD fließen, und einem Niedrigleistungsmodus
(3 Bit oder 1 Bit), in dem Daten aus dem Teil-RAM oder einem anderen
Speicher das Display treiben. Unter Bezugnahme auf 14 lädt die Sourcetreiberschaltung 100 im
Normalmodus einen jeden Kanal 400.n in eine Zeile, und
zwar zwei Kanäle
(d. h. Spalten) gleichzeitig. Daten werden über einen geradzahligen und
einen ungeradzahligen Bus 202, 204 übertragen.
Ein 8-Bit-Adressenbus 205 verläuft zu Adressen-Decodern 208.n.
Es gibt einen Decoder 208 für ein jedes Paar aus einem
geradzahligen und einen umgeradzahligen Kanal. Nachdem die erste Latch-Zeile 110 vollständig geladen
ist, werden deren Daten in eine zweite Latch-Zeile 120 übertragen.
Ein jeder Kanal (d. h. Spalte) 400.n hat einen Decoder 60,
der ein digitales Eingangsdatensignal in eine analo ge Ausgangsspannung
umwandelt, um ein Unterpixel zu treiben. Die analoge Spannung wird
an ein Spalten-Pad 20n angelegt. Die Glass-Demultiplexer 30R, 30G und 30B und
die Pass-Transistoren 40 an den
Kreuzungen von Zeilen und Spalten schalten die analoge Spannung
auf den Pads 20n auf das Flüssigkeitskristall-Unterpixel
in dem Display.
-
Im
Normalmodus strömen
Videodaten von dem Systemprozessor zur Sourcetreiberschaltung 100.
Die Bilddaten werden in die Ausgangskanäle 400 geladen, und
ein jeder Datenwert wird in analoge Spannung gewandelt, die von
dem Gamma-Generatorblock 300 zur Verfügung gestellt werden, um die Farbpixel
in ein Flüssigkeitskristall-Display
zu treiben. Der Normalmodus verwendet 18 Datenbits für ein jedes
Pixel. Ein jedes Pixel hat drei Unterpixel, eines für Rot, ein
zweites für
Blau und ein drittes für Grün. Ein jedes
Unterpixel entspricht einem 6-Bit-Wort.
Somit gibt es 18 Datenbits für
ein jedes Pixel, umfassen drei 6-Bit-Wörter, eines für jedes
Unterpixel. Der Ausgangskanal 200 wandelt den digitalen
Datenwert für
ein jedes Unterpixel in eine analoge Spannung zum Treiben der Unterpixel
um. Die Umwandlung wird für
jeweils eine Farbe gleichzeitig vorgenommen, und eine jede Farbumwandlung
kann mit einem separaten Gamma für
eine Farbe vorgenommen werden. Die analoge Treibungsspannung wird an
dem Flüssigkeitskristall
an dem Ort des Unterpixels im Display angelegt. Die Größe der angelegten anlogen
Treibungsspannung steuert die Transmissivität des Flüssigkeitskristalls auf eine
Weise, die dem Fachmann bekannt ist.
-
Sourcetreiberschaltung: erstes und zweites
Latch
-
Wie
in 14 gezeigt ist, gibt die Sourcetreiberschaltung 100 36
Datenbits gleichzeitig an die Ausgangskanäle 200 aus. Diese
Daten werden über zwei
Busse 202, 204 zugeführt. Im Normalmodus führt jeder
Bus 18 Datenbits für
ein Pixel, und gemeinsam führen
die Busse 202, 204 die Daten für zwei benachbarte Spalten
(eine gerade und eine ungerade). Der Pixeladressenblock 208 führt die
Daten von einem Bus zu den geradzahligen Latches in der Zeile 110,
und die Daten für
die andere Spalte zu den ungeradzahligen Latches in der Zeile 110.
Für ein
jedes Pixel gibt es ein Latch. Innerhalb eines jeden Latches gibt
es drei Sechs-Bit-Register, die 18 Bits der RGB-Daten für ein jedes
Pixel halten. Nachdem die erste Zeile 110 vollständig geladen
ist, nimmt ihr Enable-Signal 101 den High-Zustand an, und
ihre Inhalte werden zur zweiten Zeile 120 transferiert.
Demzufolge können
die Spalten 400 in der Zeile 110 mit Daten für zukünftige Pixel
geladen werden. Nach Beendigung des Ladens werden die Daten für eine vollständige Pixelzeile
in das zweite Latch 120 geladen.
-
Die
Sourcetreiberschaltung 100 lädt die Daten immer in das Latch 110,
unabhängig
davon, ob das Gerät
im Normalmodus, im Drei-Bit-Modus oder im Ein-Bit-Modus betrieben
wird. Während
des Drei-Bit-Modus gibt es acht mögliche Zustände für ein jedes Unterpixel: weiß, schwarz,
rot, blau, grün und
Kombinationen dieser Farben, um Gelb, Cyan und Magenta herzustellen.
Im Ein-Bit-Modus sind die Unterpixel alle gleich, und ein jedes
Pixel ist entweder weiß oder
schwarz.
-
Um
in dem Drei-Bit-Modus Leistung zu sparen, wird der interne Oszillator
(nicht gezeigt) durch 4 geteilt. Dieser geteilte Oszillator taktet
sämtliche
digitalen Blocks. Einer oder mehrere unnötige Schaltungsblocks (z. B.
Hintergrundbeleuchtung, nicht gezeigt) werden abgeschaltet, um Leistung
zu sparen. Acht 3-Bit-Pixel werden gleichzeitig ausgegeben, und
die Adressenausgaben haben zwei niedrigswertige Bits, die auf den
Wert Eins gesetzt werden, wodurch acht Drei-Bit-Pixel gleichzeitig
adressiert werden. Die Ausgaben pix0 und pix1 packen die acht Drei-Bit-Pixel
so, wie in 4 gezeigt ist.
-
Pixelblocks
haben immer 18 Datenbits. Für den
Drei-Bit-Modus werden die Daten der Pixelblocks pix0 und pix1 in
die (linke/rechte) Spalte geladen, wie dargestellt ist. Das Laden
ist redundant und wird viermal wiederholt. Nach vier Ladevorgängen wird
ein jedes Latch jedoch mindestens vier Bits für ein jedes Unterpixel haben.
Die beiden geringstwertigen Bits in einem jeden Unterpixel-Latch
des Datenbusses werden nicht verwendet. Im Ein-Bit-Modus sind die
Daten für
alle drei Bits einer Farbe gleich.
-
Sourcetreiberschaltung: Decoder
-
Daten
für die
Spalte 120 werden eine Farbe nach der anderen von digital
nach analog gewandelt, um die Sourceleitungen der Dünnfilmtransistoren
auf dem Display zu treiben. Die Ausgaben der Zeile 120 werden
durch Drei-Zustand-Puffer 50 in die Spaltendecoder 60 gemultiplext.
Zu einem jeden Zeitpunkt ist nur eine einzige Farbe, d. h. ein Sechs-Bit-Wort,
welches Rot, Blau oder Grün
repräsentiert,
aktiviert bzw. enabled und wird zum Decoder 60 gesendet.
Mit anderen Worten werden die Daten in den Registern 13.1, 13.2 und 13.3 in
einem jeden Latch sequentiell von digitalen zu analogen Spannungen
umgewandelt. Die Umwandlung erfolgt simultan auf jedem Register 131 (rot)
in einem jeden Latch und wird wiederholt, um zuerst Rot, dann Blau
und schließlich
Grün umzuwandeln.
-
Die
Decoder 60 wandeln digitale Signale in analoge Spannungen
um. Ein jeder Decoder wird durch einen 64-zu-1-Analogmultiplexer
gebildet. Für einen
digitalen Eingang aus einem Register 13.1, 13.2 oder 13.3 wählen die
Decoder 60 eine der 64 analogen Eingangsspannungen aus.
Diese Spannungen treiben das Farbpixel. Ein jeder Decoder 60 ist
mit einem 64-Leitungen-Ausgangsbus 250 der Gamma-Generatorschaltung 300 verbunden.
Wie unten näher
erläutert
wird, hat jede Farbe in der Gamma-Generatorschaltung 300 ihr
eigenes Gamma. Die Digital-zu-Analog-Wandlung wird seriell durchgeführt, für jeweils
nur eine Farbe gleichzeitig. Beispielsweise wird, wenn Rot ausgewählt ist,
das 6-Bit-Wort für
Rot aus dem Register 131 in den Decoder 60 eingegeben.
Der Decoder 60 empfangt 64 rote Referenzspannungssignale,
von denen er den Spannungspegel auswählt, welcher dem Sechs-Bit-Wort für die Farbe
Rot entspricht. Der Decoder 60 ist ein analoger 64-zu-1-Multiplexer
in Form eines Baumdecoders. Derartige Decoder sind im Stand der
Technik bekannt. Für
ein jedes gegebenes digitales Sechs-Bit-Wort gibt es nur einen gültigen Pfad
durch den Decoderbaum. Das Eingangsende eines jeden möglicherweise
gültigen
Pfades wird mit einer der 64 Referenzspannungen verbunden, und die
digitalen Signale aus dem Register 13.1, 13.2 oder 13.3 stellen
den gültigen
Pfad ein, um die analoge Spannung zu verbinden, die dem digitalen
Signal entspricht.
-
Zwischen
den Ausgängen
der Drei-Zustand-Puffer 50 und der Decoder 60 befinden
sich Niveauverschieber, so genannte "level shifter" 70. Die Level-Shifter werden
im digitalen Bereich betrieben, um Leistung zu sparen. Die digitale
Spannung beträgt
ungefähr
1,8 V und die analoge Spannung beträgt bis zu 5,5 V. Dieses Merkmal
hilft dabei, Leistung zu sparen, da die Leistung proportional zum Quadrat
der Spannung ist. Daher arbeitet ein so großer Teil der Erfindung wie
möglich
in dem digitalen Bereich.
-
Der
analoge Ausgang des Decoders 60 ist mit einem analogen
3-zu-1-Multiplexer 61 verbunden. Dieser hat drei analoge
Eingänge,
darunter einen ersten analogen Eingang, der für eine Sechs-Bit-Dateneingabe
für den
Normalmodus repräsentativ
ist, und einen zweiten und ein dritten analogen Eingang, die für Ein-Bit-Daten-Eingaben
für den
Ein-Bit- und den Drei-Bit-Modus
repräsentativ sind.
Außerdem
hat er zwei Steuersignale. Ein Steuersignal wählt den Normalmodus zum Decodieren des
ersten analogen Signals aus, und das andere wählt das zweite oder dritte
analoge Signal aus. Während
des Normalmodus empfangt der Multiplexer 61 die analoge
Farbspannung und leitet sie zu dem Pad 20 des Displays
weiter. Während
des Drei-Bit-Modus nimmt der Multiplexer 61 jedoch die Null-
oder Eins-Daten von dem zweiten und dem dritten analogen Eingang
und legt sie an dem Pad 20 an.
-
Der
Ausgang des Multiplexers 61 ist mit einem Verstärker 62 verbunden,
der die analoge Spannung während
des 18-Bit-Modus von dem Pad 20 puffert. Während des
Normalmodus leitet der Multiplexer 61 die decodierte analoge
Spannungsausgabe zu dem Operationsverstärker 62. Dieser puffert
das Farbspannungssignal und legt es an das Pad 20 der Spalte
an. Während
des Drei-Bit-Betriebs ist der Operationsverstärker 62 jedoch heruntergefahren, und
ein Parallelschalter in dem Operationsverstärker 62 schließt den Eingang
mit dem Ausgang kurz. Somit ist der Ausgang des Multiplexers 61 während des Drei-Bit-Modus
mit dem Pad 20 verbunden. Der Multiplexer 61 empfängt eine
Referenzspannung direkt von der Gamma-Generatorschaltung 300 und
legt die Referenzspannung über
eine Umgehungsverbindung des Operationsverstärkers 62 direkt an
dem Pad 20 an.
-
Das
LCD-Glasdisplay hat für
ein jedes Pixel drei Dünnfilm-Passtransistoren 40R, 40G oder 40B (einen
für jede
Farbe). Der Kanaltreiber hat separate Auswahlsignale Rs, Gs und
Bs zum Auswählen
der Daten für
anzuzeigende rote, grüne
oder blaue Unterpixel. Die Glasplatte hat drei Taktleitungen, CKH1 (rot),
CKH2 (grün)
und CKH3 (blau), die den Betrieb des roten, des grünen bzw.
des blauen Unterpixels steuern. In einer Ausführungsform können die
Auswahlsignale Rs, Gs und Bs und die Taktsignale CKH1–3 dieselben
sein, oder sie können
so geschaltet werden, dass sie dieselben sind. In jedem Fall gilt, dass
wenn CKH1 den Hoch-Zustand
einnimmt, die roten Spannungen für
eine jede Spalte in die roten Unterpixel für die ausgewählte Zeile
getaktet werden. Die Farbauswahl und das Takten wird für Blau und Grün wiederholt,
bis die gesamte Zeile ihre Farbspannungen hat. Eine Timing-Steuerung
(nicht gezeigt) steuert das Takten der Farbauswahlsignale und der
Taktleitungen CKH1–CKH3.
Die Timing-Steuerung kann durch einen separaten Block der Sourcetreiberschaltung
gebildet werden oder durch einen integralen Block innerhalb der
Sourcetreiberschaltung. Derartige Konfigurationen von Timing-Steuerungen
und Kanaltreiberschaltungen sind dem Fachmann bekannt. Die Timing-Steuerung (nicht
gezeigt) schreitet von Zeile zu Zeile voran, bis das Display gefüllt ist.
-
Der
Dünnfilmtransistor 40R wird
eingeschaltet, wenn Rot ausgewählt
ist. Die analoge Ausgangsspannung an dem Pad 20 wird an
das rote Unterpixel in der ersten Spalte des Displays angelegt.
Sämtliche rote
Unterpixel werden simultan aktiviert bzw. enabled. Der Prozess wird für die anderen
beiden Farben wiederholt, bis die Zeile vollständig aktiviert ist. Das Display
ist kapazitiv, und dieses Merkmal gestattet es, dass die Unterpixel
rasch auf ihren Farbpegel gesetzt werden, der durch das Sechs-Bit-Farbwort
bestimmt ist. Die kapazitive Eigenschaft hält die Spannung an den Unterpixeln,
bis das Display aufgefrischt wird. Somit wird ein jedes Unterpixel
rasch aktiviert, um eine Mischung der drei Farben bereitzustellen, und
die Zeilen des Displays werden rasch geladen, um einen Frame eines
Bildes zu laden. Die Abfolge der Beleuchtung der roten, grünen und
blauen Unterpixel geschieht in einer Zeit, die zu kurz ist, um vom menschlichen
Auge wahrgenommen zu werden, und die Kapazität des Displays ist ausreichend,
um den Anschein einer kontinuierlichen Farbe aufrechtzuerhalten.
-
Zu
den Vorteilen der Erfindung gehört
die gemeinsame Verwendung der Decoder 60, der Multiplexer 61 und
der Operationsverstärker 62 für ein jedes
Farbpixel. Anstelle von separaten Decoder und Verstärkern für eine jede
Farbe (3 × 320
= 960) hat die bevorzugte Ausführungsform
nur einen Decoder und einen Operationsverstärker für alle drei Farben.
-
Der
Fachmann versteht, dass die Zeilen-Auswahlsignale (nicht gezeigt)
verwendet werden, um während
eines jeden Schreibvorgangs auf das Display die Zeilen auszuwählen. Die
Zeilen-Auswahlsignale beginnen bei der obersten Zeile oder der untersten
Zeile und arbeiten sich Zeile für
Zeile voran, bis das gesamte Display beschrieben ist. Dann beginnt
der Prozess für
den nächsten
Videoframe von neuem. Die Anzahl von Zeilen ist beliebig. In der bevorzugten
Ausführungsform
gibt es 480 Zeilen. Jedoch ist dem Fachmann klar, dass ein Display
mehr oder weniger Zeilen haben kann, und die Sourcetreiberschaltung
ist dazu ausgelegt, alle Zeilen in dem ausgewählten Display zu treiben.
-
Sourcetreiberschaltung: Gamma-Generatorschaltung
-
Der
Gamma-Generatorschaltungsblock 300 ist in 15 gezeigt.
Er wird durch ein Netzwerk aus 80 Bereichswiderständen ("range resistors") 390, fünf Bereichsdecodern 370,
fünf Bereichsverstärkern 350 und
einem Referenzwiderstand-String 330 mit 64 Referenzspannungsausgängen 310.00–310.63 und
64 analogen 4-zu-1-Multiplexern 320 gebildet. Für heuristische
Zwecke zeigt 15 nur fünf Ausgangsmultiplexer.
Die Ausgänge
der 64 Multiplexer 320 sind auf dem 64-Bit-Ausgangsbus 250 angeordnet,
um eine Auswahl von 64 Referenzspannungen zu den Digital-Analog-Wandlern 60 der
Ausgangskanäle
bereitzustellen. Die Gamma-Generatorschaltung
ist in der Lage, separate Gamma-Werte für eine jede Farbe zu erzeugen, sowohl
für positive
als auch für
negative Spannungen. Die Gamma-Generatorschaltung überwindet
das Problem von Nachschlagetabellen und stellt stattdessen einen
analogen Echtzeit-Spannungsgenerator
für das
LCD-Display bereit. Die Gamma-Generatorschaltung ist außerdem in
der Lage, in Echtzeit (on the fly") von einer Gamma-Kurve zu einer anderen
umzuschalten, um zu gestatten, dass das Display unterschiedliche Gammas
für eine
jede Farbe hat. Die Gamma-Generatorschaltung ist einstellbar, um
mit Gammas für
unterschiedliche Displays kompatibel zu sein. Ein jeder Gamma-Wert
kann geändert
werden, um unterschiedlichen Displays angepasst zu werden.
-
Der
Fachmann versteht, dass die Polarität, die an die Flüssigkristalle
angelegt wird, periodisch umgekehrt werden sollte. Wenn eine einzige
Polarität kontinuierlich
an einen Flüssigkristall
angelegt wird, kann der Kristall permanent ausgerichtet werden oder
seine Fähigkeit
zur Veränderung
seines Zustandes verlieren. Dies führt dann zu einem so genannten "Geisterbild" auf dem Display.
Um dieses Problem zu vermeiden, werden die Spannungen 301, 302 auf dem
Gamma-Referenznetzwerk periodisch umgekehrt, um Spannungen entgegengesetzter
Polarität für die Zeilen
des Displays bereitzustellen. Eine typische Technik ist die Leistungsinversion,
bei der an eine jede Leitung eine Spannung einer ersten Polarität in einem
Frame angelegt wird und eine Spannung mit entgegengesetzter Polarität im nächsten Frame angelegt
wird. Eine andere Technik besteht in Pixel-Inversion, bei der angrenzende
Pixel in einem ersten Frame entgegengesetzte Polaritäten haben, und
die Polaritäten
der Pixel im nächsten
Frame umgekehrt werden.
-
Die
Inversion wird durch die Umkehr des Polaritätssignals in 15A erreicht. Dies "kehrt" den Bereichswiderstands-String effektiv "um", indem eine niedrige
Spannung an dem oberen Ende und eine hohe Spannung an dem unteren
Ende angelegt wird, und umgekehrt. Sobald diese Spannungen geändert werden,
propagieren die Spannungen durch die Gamma-Referenz, und die Gamma-Kurve
wird ohne irgendwelche zusätzlichen Änderungen
der Schaltung invertiert.
-
Der
Betreib der Gamma-Generatorschaltung 300 wird am besten
von dem Referenzwiderstand-String 330 zurück zum Eingangs-Bereichswiderstands-String 390 erläutert. Die
Gamma-Generatorschaltung gibt 64 Referenzspannungen aus, die von
Null (VREFMIN) zu einem Maximum (VREFMAX) reichen. Die 64 Ausgänge sind
jedoch nicht linear. Der Fachmann versteht, dass die Treibungs-Spannungen für ein LCD
nicht-linear variieren sollten. Die menschliche Farbwahrnehmung
ist nicht-linear, und somit muss die Reproduktion von Farbbildern
durch LCDs nicht-linear sein, um dem Betrachter akzeptabel zu erscheinen.
Darüber
hinaus ist die Transmissivitäts-Response
des LCD nicht-linear, und dies muss ebenfalls in die Gamma-Kurve
eingebaut sein.
-
In
der bevorzugten Ausführungsform
haben die Decoder 60 64 Referenzspannungen. Die Referenzspannungen
werden an Abgriffsstellen 310.00–310.63 an den Referenzwiderstands-String 330 gefunden.
Die Nichtlinearität
wird auf verschiedene Weisen in den Referenzwiderstands-String 330 programmiert.
Erstens sind die Abstände
zwischen den Abgriffen nicht gleich. Somit sind Spannungsabfälle zwischen
aufeinander folgenden Abgriffen unterschiedlich. Zweitens werden
die Referenzspannungen an fünf
Abgriffen (0, 7, 24, 56 und 63) auf dem String 330 durch
fünf Operationsverstärker 350 getrieben.
Diese Verstärker
sind mit Bereichs-DACs 370 verbunden, die die Referenzspannung
von dem Bereichswiderstands-String 390 auswählen. Dies
liefert eine grobe Einstellung der Gamma-Kurve und gestattet es
dem Nutzer, in Echtzeit über
unterschiedliche Gamma-Kurven für
Rot, Grün,
Blau, positiv und negativ zu verfügen. Dies entspricht effektiv sechs
Sätzen
von Spannungen.
-
Der
Eingangs-Bereichswiderstands-String 390 hat 80 Abgriffe,
die voneinander gleichmäßig beabstandet
sind. Der String 390 stellt einen linearen Spannungsteiler
mit gleichen Spannungsunterteilungen bereit. Es gibt fünf Bereichs-DACs 370.
Ein jeder Bereichs-DAC wählt
eine aus 32 möglichen
Referenzspannungen aus, die an dem Bereichswiderstands-String 390 verfügbar sind.
Beispielsweise kann der DAC 371 mit irgendeinem Abgriff
zwischen 0 und 32 verbunden werden, der DAC 372 kann mit irgendeinem
Abgriff in dem Bereich von 12–44
verbunden werden, der DAC 373 kann mit den Abgriffen 24–56 verbunden
werden, der DAC 374 kann mit Abgriffen 36–68 verbunden
werden und der DAC 375 kann mit Abgriffen 48–80 verbunden
werden. Die Bereichs-DACs 370 gestatten es dem Nutzer,
die Gamma-Ausgangsspannungen
des Ausgangs-Referenzwiderstands-Strings 330 zu modifizieren,
indem die Eingangsspannungen für
den Widerstands-String 330 modifiziert werden. Beispielsweise
kann die Referenzspannung am Ort 24 auf dem Referenzwiderstands-String 330 eingestellt
werden, indem die Eingriffseingabe in den Range-DAC 373 geändert wird. Dies
wird selbstverständlich
die Spannungen zwischen den Orten 7 und 56 beeinflussen. Die Spannungen
werden nur an fünf
Orten 0, 7, 24, 56 und 63 getrieben. Spannungen zwischen den Orten
werden durch den ausgewählten
Ort zwischen zwei getriebenen Orten bestimmt. Beispielsweise sind
die Spannungen zwischen den Orten 24 und 7 Ergebnis eines Spannungsteilers,
der nicht-gleichförmige
Schritte zwischen den Orten 24 und 7 hat. Um dieses Ergebnis zu
erreichen, sind die Ausgänge
der 4-zu-1-Multiplexer 322 am Ort 7, 323 am Ort
24 und 325 am Ort 56 mit den Ausgängen der jeweiligen Bereichsverstärker 352, 353 und 354 verbunden.
-
Der
Spannungsabfall über
dem Bereichswiderstands-String 330 variiert von der hohen
Referenzspannung VHR, typischerweise 3–5 V. zur
niedrigen Referenzspannung VLR, typischerweise
Massepotential bzw. null Volt. Obwohl es nur 80 Widerstände gibt,
empfangt ein jeder DAC 370 32 Referenzspannungen von dem
Bereichswiderstands-String 390. Somit gibt es einen relativ
großen Überlapp
der Referenzspannungen unter den DACs 370. Die Ausgänge der
DACs 370 sind die Bruchstellen einer nicht-linearen Kurve
mit vier Segmenten. Diese Segmente entsprechen den vier einstellbaren
Bereichen: 63–56,
56–24,
24–7 und
7–0. Ein
jeder Bereichs-DAC ist individuell auswählbar, um eine Referenzspannung
an einem der Enden des Bereichs herzustellen. Der DAC 375 setzt
die Spannung am Level 63, der DAC 374 setzt die Spannung
am Level 56, der DAC 373 setzt die Spannung am Level 24,
der DAC 372 setzt die Spannung am Level 7 und der DAC 371 setzt
die Spannung am Level 0 fest. Der Spannungsabfall zwischen einem
Bereich und dem nächsten
ist unterschiedlich, und die individuellen Schritte sind nicht-linear.
-
Beispielsweise
zeigt 17 eine typische Gamma-Kurve
einer Farbe. Sie hat 64 nominelle Niveaus bzw. Levels. Zwischen
Level 63 und Level 56 kann die Ausgangsspannung um ein Volt variieren. Jedoch
beträgt
die Spannungsänderung
zwischen dem Level 56 und dem Level 24 ungefähr 0,4 V. Zwischen dem Level
24 und dem Level 7 ändert
sich die Spannung um ungefähr
0,7 V. Zwischen dem Level 7 und dem Level 0 beträgt die Änderung fast 2 V. Anders ausgedrückt ist
der Widerstandswert zwischen Abgriff 63 und Abgriff 62 nicht derselbe
wie der Widerstandswert zwischen Abgriff 62 und 61. Das Abgreifen
am Referenzwiderstands-String an unterschiedlichen ungleichen Orten
erzeugt die nicht-lineare Gamma-Ausgabe.
-
Die
Gamma-Generatorschaltung der bevorzugten Ausführungsform teilt die Gamma-Kurve
in vier einstellbare Kurvenbereiche: 63–56, 56–24, 24–7 und 7–0. Der Bereichs-DAC bestimmt
ein Ende eines jeden Bereichs, und die Ausgangs-Abgriffe bestimmen
das andere Ende des Kurvenbereichs. Die maximale Ausgangsspannung,
ungefähr
4 V liegt am Level 63 vor, und die minimale Spannung, nämlich Null,
am Level 0. Die Spannungen an den Levels 63, 56, 24, 7 und 0 können entsprechend
den Display-Spezifikationen konfiguriert werden.
-
Sourcetreiberschaltung: Niedrigleistungs-Modus
-
Der
Niedrigleistungs-Modus kann ein Bit oder drei Bits verwenden. Im
Ein-Bit-Modus ziehen es die Nutzer oft vor, Schwarz und Weiß zu verwenden.
Es ist jedoch auch möglich,
irgendeine Farbe zu verwenden, die unter Verwendung des Bereichs
von Spannungen erzeugt werden kann, die durch die DACs 375 und 371 in 15A geliefert werden können. Eine Farbe kann eine
Hintergrundfarbe sein, und die andere Farbe eine Vordergrundfarbe.
Es ist auch möglich,
von einer Vordergrundfarbe zu einer anderen umzuschalten. Wenn die
Batterieleistung beispielsweise gering ist, könnte ein Hersteller die Gamma-Generatorschaltung
so auslegen, dass die Vordergrundfarbe von Weiß auf Rot umschaltet, und somit
die Farbe verwenden, um vor der niedrigen Leistung zu warnen, zusätzlich zu
einer Textbotschaft oder einem Bild, das eine niedrige Leistung
anzeigt. Im Drei-Bit-Modus schalten die Unterpixel auf unterschiedliche
Weise, um eine Farbe bereitzustellen. In dem Ein-Bit-Modus schalten
die Unterpixel auf gleiche Weise (d. h. haben denselben Wert), um
lediglich zwei Farben bereitzustellen, typischerweise Schwarz und
Weiß.
-
In
einem typischen Niedrigenergie-Modus befinden sich die Farben bei
ihren Maximalwerten, und man kann Rot, Grün, Blau, Cyan, Magenta, Gelb, Schwarz
und Weiß erzeugen.
Der Drei-Bit-Modus verwendet
Primärfarben
(Rot, Grün
oder Blau) oder Kombinationen dieser Farben. Eine jede Farbe kann High
oder Low sein. Jedoch besteht ein Merkmal der Erfindung darin, dass
die Farben so gewählt
werden können,
dass sie weniger als ihr Maximum oder Minimum betragen. Somit ist
ein leichterer roter Farbton auswählbar (eine Spannung, die geringer
als die höchstmögliche Spannung
ist). Die Auswahl wird durch die Bereichs-Multiplexer 320, 321 vorgenommen.
Dadurch, dass Rot geringer als bei seinem Maximalwert angesetzt
wird, und die anderen Farben bei ihrem Maximum angesetzt werden,
wird der Rot-Beitrag verringert. Auf diese Weise ist durch das Variieren
des Beitrags einer jeden Farbe die Gamma-Schaltung nicht auf die Basis-Kombinationen
von Rot, Grün
und Blau beschränkt,
sondern stattdessen auf einen Satz von acht (im 3-Bit-Modus) oder
zwei (im 1-Bit-Modus) "maßgeschneiderten" Farben.
-
Ein
Merkmal der Erfindung besteht in ihrer Flexibilität beim Bereitstellen
optimaler Leistung im Normalmodus und Sparen von Leistung im Niedrigleistungs-Modus.
Im Normalmodus wird ein jeder Kanal (Spalte) individuell durch einen
Pufferverstärker 62 getrieben.
Im Niedrigleistungs-Modus sind die Puffer 62 jedoch abgeschaltet,
und das Display wird zentral nur durch zwei der Bereichsverstärker getrieben.
Während
des Niedrigleistungs-Modus sind die Operationsverstärker 62 in
den Ausgangskanälen und
die Bereichsverstärker 353–355 in
der Gamma-Generatorschaltung 300 abgeschaltet, und alle Gamma-Multiplexer 320 sind
getrennt. Eine Vorspannungsschaltung stellt einen ausreichenden
Boost für die
Leistung der Bereichsverstärker 351 und 352 bereit,
um das Display ausgehend von einer zentralen Gamma-Referenz zu treiben.
-
Im
Niedrigleistungs-Modus benötigen
die Kanaltreiber nur eine High- und eine Low-Spannung. Da nur die High- und die Low-Spannung
verwendet werden, wird der Referenzwiderstand-String 330 nicht
benötigt,
und er wird effektiv getrennt, um Leistung zu sparen. Die Niedrigleistungs-Spannungen werden
nicht decodiert. Stattdessen wird die analoge Spannung, die dem
Niedrigspannungs-Modus-Signal entspricht, direkt mit den Multiplexer 61 in
den Ausgangskanälen
verbunden. So versorgen der Biasblock und die beiden Bereichsverstärker 351, 352 das
Display mit Leistung. Ein Farbmodus-Multiplexer 340 ist
mit der hohen Referenzspannung 63 und dem Ausgang des DAC 372 gekoppelt.
Wenn der Farb-Modus ausgewählt
ist und die Vorrichtung in den Niedrigleistungs-Modus eintritt,
ist die hohe Referenzspannung am Ort 63 direkt mit dem zweiten Bereichsverstärker 352 verbunden.
Nur zwei gültige Referenzspannungen
treten auf, und sie liegen an den Orten 0 und 7 vor und werden an
den Bus 250 angelegt. Verglichen mit anderen Schaltungs-Leiterbahnen
sind die Schaltungs-Leiterbahnen, die die Spannung und den Strom
von den Orten Null und 7 zu den Kanalmultiplexern 61 führen, größer als
der Rest. Diese größere Größe verringert
den Widerstand, was wiederum ermöglicht,
dass das Display von einem zentralen Ort getrieben wird.
-
Im
Niedrigleistungs-Drei-Bit-Modus führt der Kanaltreiber eine Datenpackung
durch, die oben im Zusammenhang mit 16 erläutert wurde.
Unter Bezugnahme auf 14 empfangen die Drei-Zustand-Schalter 50 die
Drei-Bit-Daten. Eine jede Farbe wird effektiv entmultiplext und über die
niedrigstwertigen Bits zu dem Multiplexer 61 gesendet,
die den Multiplexer über
die gepunktete Leitungsverbindung 51 steuern. Die Gamma-Multiplexer 320 werden
abgeschaltet, und dies räumt
die Möglichkeit
einer Konkurrenzsituation während
des Drei-Bit-Modus aus.
-
Sourcetreiberschaltung: Herstellereinstellungen
-
Die
64 Gamma-Multiplexer 320 gestatten es dem Hersteller, die
individuellen Abgriffspunkte des Referenzwiderstands-String 330 einzustellen.
Ein jeder Multiplexer hat vier oder mehr Eingangs-Abgriffspunkte.
Ein Auswahlsignal auf dem Multiplexer gestattet es dem Nutzer, die
erwünschten
Abgriffspunkte auszuwählen.
Der Grund dafür,
dass es nicht 64 DACs gibt, also einen für eine jede Gamma-Referenzspannung,
liegt darin, dass die Referenzspannungen 0 und 63 stets den Endpunkten
der Kurve entsprechen und immer mit den Enden des Referenzwiderstand-Strings
verbunden sind.
-
Die
64 Gamma-Ausgangs-Multiplexer 320 gestatten eine weitere
Einstellung. Beispielsweise ist in der bevorzugten Ausführungsform
ein jeder Gamma-Multiplexer 320 ein analoger 4-zu-1-Multiplexer zum
Erzeugen von vier unterschiedlichen Gamma-Kurven. Die Multiplexer
können
jedoch von beliebiger Größe sein,
d. h. größer oder
kleiner als in den bevorzugten Ausführungsformen und beispielsweise 8-zu-1-
oder 3-zu-1-Multiplexer sein, ohne darauf beschränkt zu sein.
-
Eine
Gamma-Generatorschaltung 300B mit einer alternativen Niedrigleistungs-Farbpalette
ist in 15B gezeigt. Die Gamma-Generatorschaltung 300B hat
zwei 64-zu-1-DACs 376, 377, die mit dem Bereichswiderstands-String 390 verbunden
sind. Die Farbregister im Block 394 stellen die DACs 376, 377 so
ein, dass sie einen der Orte auf dem Referenzwiderstands-String 390 auswählen. Ein
jeder DAC 376, 377 kann eine von 80 Spannungen
aus dem vollständigen
Bereich des Bereichswiderstands-String 390 auswählen. Einer
der DACs ist für
eine höhere
Spannung eingestellt und einer für
eine niedrigere. Die Farbregistereinstellungen gestatten es dem
Hersteller, die Ein- und Aus-Intensität einer jeden der Farben Rot,
Blau und Grün
individuell einzustellen, um mehrere Farben für den Niedrigleistungs-Modus
bereitzustellen. Im Betrieb wählen
Steuersignale in den Multiplexern 340, 341 die
Ausgänge
der DACs 376, 377 aus, und andere Steuerungen
schalten die DACs 371–375 und
die Bereichsverstärker 353, 354, 355 aus.
Die Eingänge
der Bereichsverstärker 351, 352 sind
mit den Ausgängen
der Auswahlmultiplexer 340, 341 verbunden. Die
Verstärkerausgänge sind
mit Leitungen 252, 253 zum direkten Treiben des
Displays verbunden. Wie oben beschrieben wurde, sind die Leitungen 252, 253 die
größeren Leiterbahnen
des Gamma-Ausgangsbusses 250. Somit werden nur die zwei
Ausgangsleitungen im Niedrigleistungs-Modus betrieben.
-
Ein
alternatives Verfahren bietet eine höhere Farbauflösung, indem
ein 64-zu-1-Multiplexer am Ausgang des Referenzwiderstands-Strings 330 zugefügt ist und
die Bereichsverstärker 350 im Drei-Bit-Modus
aktiviert bleiben. Dies würde
64 Ausgangs-Referenzspannungen zur Verfügung stellen, die direkt auf
die Pads 20 angewendet werden können. Beispielsweise könnte der
Fachmann sämtliche Gamma-Multiplexer
aktiviert lassen, die Multiplexer verwenden, um die High- und Low-Spannung
für eine bestimmte
Farbe auszuwählen,
und dann die Farbe von den Gamma-Multiplexer direkt auf die Kanaltreiber
anwenden. Man bräuchte
zwei zusätzliche 64-zu-1-Multiplexer
und zwei Puffer, um die Spalten direkt von dem Gamma-Referenzblock
zu treiben. Dies würde
es einem Nutzer gestatten, im Niedrigleistungs-Modus eine Farbe auf ähnliche
Weise auszuwählen,
wie dies im Normalmodus möglich
ist. Effektiv könnte
man eine unabhängige
Farbe und sieben weitere Farben haben, die von der einen unabhängigen Farbe
abhängen.
-
Die
Gamma-Generatorschaltung 300C skizziert diesen Ansatz und
ist in 15C gezeigt. Sie umfasst 64-zu-1-Decoder 378, 379,
die mit dem 64-Bit-Ausgangsbus 250 verbunden sind. Die
Eingänge
zu Verstärkern 358, 359 sind
jeweils mit den Ausgängen
der Decoder 378 bzw. 379 verbunden, und die Verstärkerausgänge sind
mit Ausgangsleitungen im Bus 250 verbunden, die größer als
normal sind, um das Display zu treiben. Farbregister 391, 392 stellen
die Farbpegel in den Decoder 378, 379 ein. Im
Betrieb bleibt die gesamte Gamma-Schaltung 300C vollständig eingeschaltet.
Obwohl diese Ausführungsform
mehr Leistung verbraucht, hat sie den zusätzlichen Vorteil einer breiteren
Auswahl von Farben, da die Farbauswahl aus dem 64-Bit-Ausgang der Gamma-Generatorschaltung 300C getroffen
werden kann.
-
In
der Ausführungsform
von 15B haben die Decoder 376, 377 jeweils
32 Abgriffe zur Handhabung von fünf
Bits. Sie könnten
jedoch sechs Bits handhaben, wenn sie 64 Abgriffe hätten. Die
Register 394 wählen
die High- und Low-Einstellung für
eine jede der Farben Rot, Grün
und Blau aus.
-
In
der Gamma-Generatorschaltung 300C haben die DACs 378, 379 einen
vollständigen
Farbbereich zur Verfügung,
im Gegensatz zu dem beschränkten
Bereich, der in der Gamma-Generatorschaltung 300A zur
Verfügung
steht. Auf ähnliche Weise
haben die Decoder 378, 379 in der Gamma-Generatorschaltung 300C ebenfalls
den vollständigen
Farbbereich.
-
Unter
Bezugnahme auf 18 enthält gemäß einer Ausführungsform
der vorliegenden Erfindung ein kommerzielles Produkt des Anmelders,
National Semiconductor Corporation, eine Befehls- und Konfigurationsstufe,
eine serielle Schnittstelle geringer Geschwindigkeit ("low- speed serial interface", LoSSI), einen Teildisplayspeicher,
eine Videoschnittstelle, einen MPL-Empfänger, ein EEPROM, eine Timing-Steuerung,
Level-Shifter, einen Oszillator, einen DC-DC-Wandler, einen Sourcetreiber,
eine Gamma-Referenz und einen VCOM-Treiber,
die im Wesentlichen so verbunden sind, wie in der Figur gezeigt
ist.
-
Der
Befehls- und Konfigurationsblock enthält den Befehls-Interpreter
und Konfigurationsregister, die die Funktionen, Einstellungen und
Operations-Modi der Vorrichtung steuern. Es gibt zwei Verfahren,
die zum Steuern der Vorrichtung und Modifikation der Konfigurationsregister
verwendet werden können.
Im Befehls-Modus verursachen OpCodes, die von der LoSSI-Schnittstelle
empfangen werden, Änderungen
im Modus oder Änderungen
in den Konfigurationsregistern basierend auf dem OpCode, der empfangen
wird, und dem "Befehlsprofil", welches in dem
EEPROM gespeichert ist. Eine Gerätesteuerung
unter Verwendung des Befehls-Modus ist insofern vorteilhaft, als
sie gestattet, dass die Displaytreibersoftware des Host-Prozessors
vom Display unabhängig
ist. Im Register-Zugriffs-Modus hat die LoSSI-Schnittstelle direkten Zugriff auf die
Konfigurationsregister. Nach Erklären eines Hardware-Reset (RESET_N pin)
wird die Vorrichtung in den Befehls-Modus gebracht. Der Register-Zugriffs-Modus kann
von der LoSSI-Schnittstelle ausgewählt werden, indem ein entsprechender
Befehl (Eintritt in Register-Zugriffs-Modus) gegeben wird. Der Befehls-Modus
kann von der LoSSI-Schnittstelle ausgewählt werden, indem ein entsprechender
OpCode gegeben wird (Eintritt in Befehls-Modus).
-
Die
LoSSI-Schnittstelle wird für
mehrere Funktionen verwendet: zum Senden von Befehlen, für den Zugriff
auf die Konfigurationsregister und zum Senden von Daten zum Teildisplayspeicher.
Die LoSSI-Schnittstelle verwendet entweder das SPI- oder das TSI-Protokoll,
was durch den Zustand des SPI_CFG pin bestimmt wird. Die LoSSI-Schnittstellensignale
verwenden logische CMOS-Pegel (GND, VDDD).
Die LoSSI-Schnittstelle enthält
vier Signale: SP_CSX (Chip-Auswahl-Eingabe), das bei Low aktiv ist
SP_CLK; (serielle Takteingabe) ist das Datentransfer-Synchronisationssignal,
welches bei Geschwindigkeiten von bis zu 10 MHz während Registerschreibvorgängen oder
Befehlsoperationen arbeiten kann, oder bis zu 6,6 MHz während Register-Leseoperationen,
und es sollte auf High gesetzt werden, wenn es nicht aktiv ist;
SP_DI (serielle Dateneingabe) ist der serielle Daten-Eingangspin
und wird an der ansteigenden Flanke von SP_CLK gesampelt; und SP_DO
(serieller Datenausgang) ist der serielle Daten-Ausgangspin und
wird in einem Zustand hoher Impedanz gehalten, außer wenn
Daten während
Leseoperationen herausgetrieben werden. Die Signale SP_DI und SP_DO können zusammengruppiert
sein, wenn der Host-Prozessor einen bidirektionalen Datentransfer
unterstützt.
Zwei Protokolle werden über die
LoSSI-Schnittstelle unterstützt:
ein 8-Bit-Protokoll (SPI-Protokoll)
und ein 9-Bit-Protokoll (TSI-Protokoll), welches ein zusätzliches
Bit am Anfang einer jeden Transaktion enthält. Das SPI-Protokoll wird
ausgewählt,
indem der SPI_CFG-pin mit VDD verbunden wird.
-
Das
Extra-Bit in dem TSI-Protokoll (Daten/Befehl oder D/CX) ist im Befehls-Modus
nützlich, um
die nachfolgenden 8 Bits entweder als Befehl oder als Datenfeld
zu identifizieren. Dies kann nützlich
sein für
eine Wiederherstellung nach einem teilweise vollständigen Transfer
eines Befehlsarguments. Diese Situation kann beispielsweise auftreten,
wenn ein Host-Interrupt
auftritt, während
Bilddaten zum Teildisplayspeicher übertragen werden. Wenn das
TSI-Protokoll verwendet wird, ist es möglich, eine Transaktion im
Prozess abzubrechen und den Transfer der verbleibenden Daten abzubrechen. Nachdem
der Interrupt verarbeitet wurde, können die verbleibenden Daten
zum Teildisplayspeicher gesendet werden, ohne den Befehl und zuvor
gesendete Daten erneut auszugeben, indem die Transaktion als Datentransfer
identifiziert wird und nicht als Befehl. Wenn alternativ das SPI-Protokoll
verwendet wird, ist es immernoch möglich, einen Interrupt zu bedienen und
einen Datentransfer aufzuschieben, solange das Chipauswahlsignal
(SP_CSX) und das Taktsignal (SP_CLK) des LoSSI in ihrem gegenwärtigen Zustand
gehalten werden, bis der Datentransfer wieder aufgenommen werden
kann.
-
Der
Teildisplayspeicher-Block wird verwendet, um Bilddaten für eine lokale
Auffrischung des Displays zu speichern. Er kann als die einzige
Videoquelle im Teilmodus verwendet werden, oder seine Inhalte können im
Alpha-Modus mit einlaufenden Videodaten gemischt werden (oder diesen überlagert werden).
Während
des Betriebs im Teilmodus wird die Systemleistung erheblich verringert,
da der Videocontroller im System abgeschaltet werden kann. In diesem
Modus werden Bilddaten aus dem Teildisplayspeicher gelesen und verwendet,
um das Display aufzufrischen. Das gesamte Display-Auffrischungstiming
wird von einem internen Oszillator abgeleitet, so dass keine externen
Videosignale benötigt
werden. Im Alpha-Modus können
die Inhalte des Teildisplayspeichers als ein transparenter Text
oder als eine Überlagerung
mit Rand ("border
overlay") der einlaufenden
Videodaten verwendet werden. Es ist auch möglicht, die Inhalte des Teildisplayspeichers
einzublenden bzw. einzumischen, um Vollfarben-Logos oder andere
Effekte in den Videodaten zuzufügen. Der
Teildisplayspeicher enthält
230.400 Speicherbits. Diese Größe reicht
aus, um ein Fenster von 80 × 320 mit
3-Bit-Daten anzuzeigen oder irgendeine äquivalente Größe bezogen
auf die Gesamtpixel, die in dem Teildisplayfenster enthalten sind,
multipliziert mit der Farbtiefe eines jeden Pixels. Im Register-Zugriffs-Modus sollten
Bilddaten in Raster-Ordnung in den Teildisplayspeicher strömen gelassen
werden, indem Daten in das RAM_PORT-Register geschrieben werden,
wie in den nächsten
Abschnitten beschrieben wird. Im Befehls-Modus wird der Speicher-Schreibbefehl
verwendet, um Bilddaten zum Teildisplayspeicher zu senden.
-
Während des
Teilmodus werden Pixeldaten aus dem Teildisplayspeicher gelesen
und in einem rechteckigen Teildisplayfenster angezeigt, wie in 11 gezeigt
ist. Bereiche außerhalb
dieses Fensters werden dunkelgetastet (so genanntes "Blanking"), um Leistung zu
minimieren. Die Farbe der dunkelgetasteten Bereiche wird in den
Teilmodus-Randfarben-Registern spezifiziert. Das Raster beginnt
stets bei der Anfangszeile und der Anfangsspalte. Die Spalte wird
zuerst erhöht,
so dass das Raster zunächst
von links nach rechts und dann von oben nach unten gefüllt wird.
-
Farbtiefen,
die von dem Teildisplayfenster unterstützt werden, umfassen 1-Bit,
3-Bit, 12-Bit und 18-Bit. Im Befehls-Modus wird die Farbtiefe durch den
Teilspeicher(TS)-Farb-Festsetz-Befehl
(EEh OpCode) festgesetzt. Im Register-Zugriffs-Modus wird die Farbtiefe
des Teildisplayfensters durch das BITS_PRO_PIXEL-Register gesteuert.
Die maximale Größe des Teildisplayfensters
steht mit der Anzahl von Bits in dem Teildisplayspeicher und der
Farbtiefeneinstellung in Zusammenhang. Der Teildisplayspeicher kann
eine vollständige
Seite von 320 × 560 im
Betrieb mit einer Farbtiefe von 1 Bit füllen, 76.800 3-Bit-Pixel (d.
h. ein Fenster mit 240 × 320 × 3-Bit), 19.200
12-Bit-Pixel (ein Fenster mit 120 × 160 × 12-Bit) und 12.800 Pixeln
im Betrieb mit einer Farbtiefe von 18 Bit (ein Fenster mit 128 × 100 × 18-Bit).
-
Die
Fenstergröße für das Teildisplayfenster kann
in beiden Dimensionen durch Verwendung einer Hochskalierungs-Funktion
verdoppelt werden. Um für
eine jede Farbtiefe den nutzbaren Speicher zu maximieren, werden
die Bilddaten basierend auf der Farbtiefen-Einstellung in den Teildisplayspeicher
gepackt. Sie werden dann beim Auslesen zur Auffrischung des Teildisplays
auf die aktuelle Farbtiefen-Einstellung entpackt. Wenn die Größe oder
die Farbtiefe des Teildisplayfensters geändert wird, wird der Teildisplayspeicher
daher mit aktualisierten Bilddaten erneut geladen, die den neuen
Fenstereinstellungen entsprechen. Es gibt außerdem einen Zusammenhang zwischen
der Einstellung der Farbtiefe im Teilmodus und der Pixeldatenpackung
an der LoSSI-Schnittstelle, wie in 5 illustriert
ist.
-
Eine
Pixel-Skalierungsfunktion gestattet es, dass einlaufende Videodaten
oder Bilddaten, die in dem Teildisplayspeicher gespeichert sind,
um einen Faktor von 2 sowohl in der x-Dimension als auch der y-Dimension hochskaliert
werden. Auf diese Weise wird ein einzelnes Pixel auf ein 2×2-Cluster
von Pixeln abgebildet.
-
Die
Anzahl von gesendeten Pixeln entspricht einer Gesamtzahl von Bytes.
Dementsprechend können
Dummy-Pixel gesendet werden, solange die Gesamtzahl von Pixeln nicht
die Kapazität
des Speichers übersteigt.
Vorzugsweise ist die Wortgröße des Teildisplayspeichers
festgelegt. Um die verfügbaren Bits
in dem Teildisplayspeicher effizient zu nutzen, werden die Pixeldaten
in die festgelegte Speicher-Wortgröße gepackt. Einlaufende Pixeldaten werden
nicht in den Speicher geschrieben, bis sämtliche Bits des Speicherworts
gefüllt
wurden. Daher kann es nötig
sein, zusätzliche
Bits am Ende des Datenstroms vorzusehen, so dass der Datenstrom
ein ganzteiliges Vielfaches von 36 Bit enthält.
-
Der
Timing-Steuerblock erzeugt die Timing-Signale, die benötigt werden,
um die Daten in den Sourcetreiber zu laden, und er steuert das Scannen
bzw. Rastern des Displays. Das Display kann in einem von drei Modi
betrieben werden: dem Normalmodus, dem Teilmodus und dem Alpha-Modus.
Im Normalmodus wird das Display-Rastertiming aus den Signalen DE
und Pclk und dem Video-Datenstrom abgeleitet. Die angezeigten Daten
werden aus dem Video-Datenstrom erhalten. Im Teilmodus wird das Display
durch den Timing-Steuerblock selbsttätig aufgefrischt, wobei der
chipinterne ("on-chip") Oszillatorblock
als Taktquelle verwendet wird. Die Daten, die zum Display gesendet
werden, werden aus dem internen Teildisplayspeicher gelesen. Im
Alpha-Modus wird das Display-Raster-Timing ebenfalls von den Signalen
DE und Pclk abgeleitet, und Daten, die aus dem Videostrom erhalten
werden, werden im Hintergrund dargestellt. Zusätzlich werden Daten aus dem
internen Teildisplayspeicher ausgelesen und in einem Teildisplayfenster
im Vordergrund angezeigt. Innerhalb dieses Fensters können der
Vordergrund und der Hintergrund in einem von vier Verhältnissen gemischt
werden: 25% Vordergrund + 75% Hintergrund; 50% Vordergrund + 50%
Hintergrund; 100% Vordergrund oder transparenter Vordergrund (OSD-Funktion).
-
Der
Timing-Steuerblock ist dazu ausgelegt, mit vielen Konfigurationen
von LTPS/CGS-Glass zusammenzuarbeiten: vertikaler Taktsteuerung
mit einer oder zwei Phasen, Unterpixel-Reihenfolgen RGB oder BGR für ein horizontales
Raster; Timing-Pulsbreiten und überlappfreie
Zeiten, die Register-einstellbar sind, um das Display-Einschwingverhalten
zu optimie ren, Polarität
und Phasensteuerung von Glassignalen, die über Registereinstellungen gesteuert werden
und vertikale Timing-Verhältnisse,
die mit verschiedenen Konfigurationen von Dummy-Zeilen auf dem Glas
assoziiert sind, die durch die Registereinstellungen gesteuert werden.
-
Der
Timing-Steuerblock hat zehn Ausgänge, die
geeignet sind, die Auffrischung des Displays und das Rastern zu
steuern. Der Level-Shifter-Block führt eine Übersetzung von logischen Levels
bzw. Pegeln für
diese Signale durch, so dass sie auf geeignete Weise mit den Glas-Steuerungseingängen zusammenwirken
können.
Die Ausgangsspannung der Level-Shifter-Signale beträgt zwischen VSSG und
VDDG. Es gibt drei Ausgänge (GPO_0, GPO_1, GPO_2), deren
Signalfunktion sich in Abhängigkeit
von der Einstellung des GPO-Registers ändert. Sämtliche Level-Shifter-Ausgänge werden
im Schlafzustand auf Massepotential bzw. Erde (GND) gesetzt.
-
Ein
zusätzlich
Level-geshifteter Ausgang XDON wird durch den DC-DC-Wandlerblock
bereitgestellt. Normalerweise befindet sich XDON auf dem Level bzw.
Pegel VSSG, wann immer VDDDC vorliegt. Wenn
VDDDC plötzlich
unterbrochen ist, nimmt XDON unmittelbar den VDDG-Pegel ein. Da eine
externe Kapazität
an den Knoten VDDG und VSSG vorhanden
ist, wird XDON für
eine kurze Zeitdauer, nachdem VDDC unterbrochen
wurde, auf dem Pegel VDDG verbleiben. Somit
kann XDON auf zuverlässige
Weise durch das Glas als Steuersignal verwendet werden, um sämtliche
Knoten auf dem Glas zu entladen, falls eine plötzliche Leistungsunterbrechung
auftritt.
-
Der
chipinterne Oszillator erzeugt ein internes 13,5 MHz-Taktsignal
(OSC). Das Signal OSC wird als Taktquelle für den Timing-Steuerblock während des
Teilmodus verwendet, und außerdem
während
bestimmter Befehlssequenzen, wie beispielsweise der Abschaltungs-Sequenz.
-
Der
Sourcetreiberblock wandelt die digitalen Bilddaten, die von der
MPL-Schnittstelle oder dem Teildisplayspeicher empfangen werden,
in analoge Spannungen um, die benötigt werden, um die Sourceleitungen
auf dem Glas zu treiben. Der Sourcetreiberblock besteht aus 320
Treiberkanälen.
Ein jeder Treiberkanal empfängt
RGB-Daten für
ein Pixel und führt
eine Digital-Analog-Wandlung für
rote, grüne und
blaue Daten in einer Zeit-Multiplex-Sequenz durch, die mit den Multiplex-Auswahlsignalen
des Glases (CKH1–CKH3)
synchronisiert ist.
-
Die
Wandlungssequenz der RGB-Daten innerhalb einer jeden Zeilenzeit
wird durch die Einstellungen des SCAN-Registers bestimmt. Das Registerbit
SCAN[1] steuert die Daten-Laderichtung
des Sourcetreiberblocks, also die Richtung S0→S319 oder S319→S0. Für Displayanwendungen,
bei denen die Pixel bzw. die Zeilen auf dem Glas weniger als 320
Kanäle
betragen, kann das Register COL_OFFSET verwendet werden, um zu spezifizieren,
welche Ausgänge
aktiv sind und welche Ausgänge
von der Applikation nicht verwendet werden. Dies kann dabei helfen,
den Auffächerungsbereich,
den so genannten "Fan-Out-Bereich" der Sourceleitung
zwischen dem Treiber und dem aktiven Bereich des Glases zu optimieren.
Die Einstellung des Registers COL_OFFSET wird im Zusammenhang mit
der Einstellung von SCAN[1] spezifiziert. Wenn die Laderichtung
als die Richtung S0→S319
festgesetzt ist, bezieht sich das Register COL_OFFSET auf die Ausgabe
S0. Wenn die Laderichtung entsprechend der Richtung S319→S0 festgelegt
ist, bezieht sich COL_OFFSET auf die Ausgabe S319. Die Spannungs-Transfercharakteristik
des Sourcetreibers DAC wird durch die 64 Gamma-Referenzspannungen
bestimmt, die von dem Gamma-Referenzblock erzeugt werden. Die Treibungsstärke für den Ausgang
des Sourcetreibers ist ebenfalls im Hinblick auf ein optimales Einschwingen
und ein optimales Leistungsverhalten über die Registerbits GAMMA_CFG1[4:0]
programmierbar.
-
Für die 64
Referenzspannungen sind vier intrinsische Gamma-Kurven verfügbar. Die
intrinsischen Kurven können
verwendet werden, um verschiedene Ziele für den Nutzer des Moduls zu
erreichen. Ein Ziel kann darin bestehen, das optische Verhalten
für verschiedene
Modul-Lieferanten
aneinander anzupassen. Es ist sogar möglich, die individuellen Kurvenformen
für die
unterschiedlichen Farbkanäle
eines gegebenen Lieferanten zu optimieren. In diesen Fällen können die
vier Kurven für
eine jede Charakteristik des Glases des Moduls des Lieferanten optimiert
werden, und die Auswahl der geeigneten Kurve und die Einstellungen
sind in dem SLEEP_OUT-Befehl enthalten. Der GAMMA_SET-Befehl wird
in diesem Fall nicht verwendet, da die anderen Auswahlen für einen
anderen Modul-Lieferanten optimiert sind. Ein weiterer Grund für die Verwendung
mehrerer intrinsischer Kurveneinstellungen kann darin bestehen,
mehrere Gamma-Charakteristika (z. B. γ = 1,0, 1,8, 2,2, 2,5) für ein gegebenes
Modul bereitzustellen, um das Leistungsverhalten für verschiedene
Betrachtungsbedingungen und Anwendungen zu optimieren. In diesem
Fall können
die verschiedenen Kurven über
den Befehl GAMMA_SET oder durch direkten Registerzugriff auf die
Gamma-Register-Einstellungen
ausgewählt
werden.
-
Unter
Bezugnahme auf 19A und 19B,
die mögliche
negative bzw. positive intrinsische Kurvenformen zeigen, kann die
Kurvenform, nachdem die intrinsische Kurve ausgewählt wurde, die
mit den gewünschten
Eigenschaften am besten übereinstimmt,
optimiert werden, um sich durch die Verwendung der Gamma-Register-Einstellungen besser
an die gewünschten
Charakteristika anzupassen. Die Form und die Gamma-Bezeichnungen
in diesen Figuren dienen lediglich der Illustration. Das Registerbit
GAMMA_CFG1[7] bestimmt, ob eine dieser vier Formen für alle drei
Farbkanäle
verwendet wird, oder ob unterschiedliche Kurven oder Anpassungs-Einstellungen
für einen
jeden Farbkanal ausgewählt
werden. Diese selbe intrinsische Form kann für die grüne und die blaue Kurve mit
unterschiedlichen Optimierungseinstellungen verwendet werden (siehe
die folgende Diskussion der Optimierungs-Einstellungen), oder verschiedene
intrinsische Formen und Optimierungseinstellungen können für einen
jeden Farbkanal ausgewählt
werden. Für
einen gegebenen Farbkanal wird dieselbe intrinsische Kurvenform
für die
beiden Treibungs-Polaritäten
verwendet.
-
Unter
Bezugnahme auf 20 können Werte
gemäß Gleichungen
für vier
intrinsische Gamma-Kurven erzeugt werden, wie gezeigt wird. Unter Bezugnahme
auf 21 kann die ausgewählte intrinsische Kurvenform
durch das Festsetzen der Spannungswerte der Endpunkte (V0 und V63)
und der drei Abgriffe (V7, V24 und V56) über die Bereichs-Einstell-DACs
(hier als Bereichs-DACs bezeichnet) optimiert werden. Gemäß einer
beispielhaften Ausführungsform
sind die Einstellungen für
die Gamma-Kurve positiver Polarität unabhängig von denjenigen für die Gamma-Kurve
negativer Polarität, obwohl
dieselbe intrinsische Kurvenform zum Treiben beider Polaritäten verwendet
wird. Die Spannungen für
V0, V7, V24, V56 und V63 werden durch die Referenzspannung VGR bestimmt, die durch die Registerbits VDD_ADJ[7:5]
und die Gamma-Referenzregister so einstellbar ist, dass sie zu dem
dynamischen Bereich der Kurve passen. Die Einstellungen für VDDA und
VGR in dem Register VDD_ADJ sollte wie folgt bestimmt werden: Man
berechnet die benötige
VGR-Einstellung basierend auf dem positivsten Wert von VcomH, VcomA,
V0+ oder V63– unter
Verwendung vorbestimmter Beziehungen; und man berechnet den Wert
von VDDA aus dem Maximalwert für
VGR, VDDGR, VSSGR plus einem gewissen Spielraum der Betriebsspannung.
-
Unter
Bezugnahme auf 22 kann die Architektur des
Gamma-Referenzblocks wie gezeigt implementiert sein (der Einfachheit
halber sind nur die Optimierungsregister des Bereichs-DAC für die roten
Kanäle
gezeigt). Das Signal DRIVE POLARITY wird durch die Timing-Steuerung bereitgestellt
und bewirkt zwei Dinge: es wählt
die Einstellungs- bzw. Anpas sungswerte für entweder die negative oder
die positive Treibungs-Polarität
aus, für
eine jede der Farben (die grünen
und blauen Register sind nicht gezeigt); und es wählt die
korrekten Ausgangsspannungsbereiche für die Digital-Analog-Wandler
(DAC) aus. Für
eine negative Treibungs-Polarität
wird der DAC für
V0 eine Spannung in der Nähe der Erdungsspannung
erzeugen, und der DAC für
V63 wird eine Spannung in der Nähe von VGR erzeugen (siehe 19A).
Für eine
positive Treibungs-Polarität
wird der DAC für
V0 eine Spannung in der Nähe von VGR erzeugen, und der DAC für V63 wird eine Spannung in der Nähe der Erdungsspannung
erzeugen (siehe 19B). Falls GAMMA_CFG1[7] =
0, wählen
die RGB-Auswahlsignale
stets die Werte aus, die dem roten Kanal entsprechen. Falls GAMMA_CFG1[7]
= 1, wählen
die RGB-Auswahlsignale von der Timing-Steuerung den roten, den grünen oder
blauen Gamma-Wert entsprechend der Taktsignale CKH1, CKH2 und CKH3
und der RGB-/BGR-Auswahlbits aus (SCAN[7] und SCAN[0]).
-
Unter
Bezugnahme auf 23 kann durch das Registerbit
VCOM_ADJ[7] ein Treibungs-Schema
DC VCOM oder AC VCOM ausgewählt werden.
Das Treibungs-Schema AC VCOM verwendet zwei
Gerätepins
und einen externen Kopplungskondensator. In diesem Modus wirkt der
Pin VCOMA_VCS (Pad 1) dergestalt, dass er das Signal VCOMA an den
Kopplungskondensator ausgibt. Der zweite Gerätepin VCOMH_VCOM (Pad 2) wirkt
dergestalt, dass er den DC-Wert des Knotens VCOM während des
High-Zeitabschnitts der Wellenform herstellt. Der Modus AC-VCOM wird durch die Einstellung VCOM_ADJ[7]
= 1 ausgewählt.
Das VCOM-AC-Signal wird an dem Pad VCOMA_VCS bereitgestellt.
Die Amplitude des Signals wird durch das Register VCS_ADJ festgesetzt.
-
Der
Ausgang VCOMH_VCOM wird verwendet, um den High-Pegel von VCOM festzuhalten und er soll direkt mit der
VCOM-Leitung zum Glas verbunden werden.
Wenn VCOM_ADJ[6] = 0, wird dieser High-Pegel durch VCOM_ADJ[5:0]
bestimmt. Wenn VCOM_ADJ[6] = 1, wird dieser High-Pegel durch eine
externe Spannung eingestellt, die mit dem VCOM_ADJ-Pin verbunden ist.
Die VCOMH_VCOM-Pads sollten direkt mit der VCOM-Eingabe
des Glases gekoppelt sein, und die VCOMA_VCS-Pads sollten über einen
großen
Kondensator mit dem VCOM-Eingang zum Glas
verbunden sein.
-
Während der
Zeit t1 wird das Pad 1 (VCOMA_VCS-Signal)
auf die Spannung VCOMA getrieben, und Pad
2 (VCOMH_VCOM-Signal) wird auf die Spannung VCOMH getrieben.
Im Ergebnis wird die Spannung VCOM für das Glas
gleich VCOMH sein, und der externe Kondensator wird
auf eine Spannung von (VCOMH – VCOMA) aufgeladen werden. Während der Zeit
t2 wird das Pad 1 auf Massepotential getrieben, und
das Pad 2 ist im Schwebezustand. Da der externe Kondensator auf
eine Spannung von (VCOMH – VCOMA) geladen bleibt, wird die Spannung an
dem Pad 2 (das VCOM-Signal zum Glas) ebenfalls
gleich (VCOMH – VCOMA)
sein. Somit wird die Spannung VCOM, die
an das Glas angelegt wird, zwischen VCOMH und
(VCOMH – VCOMA) schwingen.
-
Der
DC-VCOM-Modus wird ausgewählt, indem VCOM_ADJ[7]
= 0 gesetzt wird. In diesem Fall wird die DC-Spannung VCOM durch
den Ausgang VCOMH_VCOM für
das Glas bereitgestellt. Die Spannung CSTORE für das Glas
(VCS) wird durch den Ausgang VCOMA_VCS bereitgestellt. Der DC-Pegel von
VCOMA_VCS wird durch das Register VCS_ADJ eingestellt.
-
Ein
Flackern wird dadurch minimiert, dass der VCOMH_VCOM-Pegel entweder
dadurch eingestellt wird, dass das Register VCOM_ADJ[5:0] geändert wird,
oder dass eine externe Spannung, die mit dem VCOM_ADJ-Pin verbunden
ist, eingestellt wird. Wenn das Register-Verfahren verwendet wird, sollten die
optimierten Werte für
das Register VCOM_ADJ in dem Sleep-Out-Initialisierungsprofil im
EEPROM enthalten sein, so dass das Register während der Hochfahrsequenz stets
auf den optimierten Wert eingestellt wird. Wenn alternativ mehrere
Gamma-Kurven und Vcom-Einstellungen während des Betriebs der Vorrichtung
verwendet werden, kann die optimierte VCOM_ADJ-Einstellung in dem
geeigneten Gamma-Einstellungs-Befehlsprofil
enthalten sein. Auf diese Weise ist es möglich, das Flackern unabhängig von
der Auswahl der Gamma-Kurve zu optimieren.
-
Obwohl
die Erfindung unter Bezugnahme auf bestimmte Ausführungsformen
beschrieben wurde, versteht es sich für den Fachmann, dass verschiedene Änderungen
vorgenommen werden können
und Elemente derselben durch Äquivalente
ersetzt werden können,
ohne den Rahmen der Erfindung zu verlassen. Darüber hinaus können viele
Modifikationen durchgeführt
werden, um eine bestimmte Situation oder ein bestimmtes Material
an die Lehre der Erfindung anzupassen, ohne den Rahmen der Erfindung zu
verlassen.
-
Daher
soll die Erfindung nicht durch die bestimmten Ausführungsformen,
die als die beste Art, die Erfindung auszuführen, erachtet werden, beschränkt sein,
sondern die Erfindung um fasst sämtliche
Ausführungsformen,
die in den Schutzumfang und Geist der beigefügten Ansprüche fallen.