
Was wäre, wenn TFT niemals erfunden würde? CSTN-Matrix-LCD
Eintrag
Als sich CRT-Monitore durchsetzten, wurde das folgende Argument zu ihren Gunsten vorgebracht: Trotz aller Verbesserungen werden LCD-Displays die Röhrenanzeigen in der Bildqualität niemals übertreffen. Sie finden nach wie vor nur dort Anwendung, wo Energieeffizienz und geringe Dicke erforderlich sind [1]. Jahrzehnte sind vergangen, und jetzt wissen wir, ob die Befürworter dieses Arguments Recht hatten. Aber heute ist es interessant, die LCDs dieser Zeit zu betrachten: Sind sie wirklich so von schlechter Qualität? Wie ist es, die CSTN-Matrix im Jahr 2019 zu betrachten?
Links TFT, rechts CSTN, beide Anzeigen aus den neunziger JahrenLCD im letzten Jahrhundert
Vor dem Wechsel zu TFT wurden in Laptop-Computern verschiedene Anzeigetechnologien eingesetzt. Zunächst verwendeten sie dieselben CRT-Monitore wie bei Desktop-Computern, nur kleinere. Zum Beispiel in Compaq Portable (1983), IBM 5155 (1984) oder Commodore SX-64 (ebenfalls 1984).
IBM 5155, Autor: Soupmeister, lizenziert: CC-BY-SA-2.0, von hierEinen solchen PC überall hin mitzunehmen war schwierig, eine ganz andere Sache - ein Laptop mit TN-LCD (Twist Nematic), zum Beispiel IBM 5140 (1986), Toshiba T1000 (1987). Diese Displays haben einen geringen Kontrast und Betrachtungswinkel.
Toshiba T1100 mit monochromem TN-Display, Autor: Johann H. Addicks, Lizenz: GFDL, daher ist der Link auch im Original defektEinige Hersteller experimentierten mit Gasentladungsmatrizen, als Toshiba T3200 (1987) und IBM PS / 2 P70 (1991) das Licht der Welt erblickten. Sie lieferten einen hohen Kontrast und mehrere Helligkeitsstufen von rot-orangefarbenem Licht, waren jedoch ziemlich teuer. Schließlich wurden STN-LCDs (supertwist nematic) entwickelt, wie beispielsweise in Electronics MC1504 und seinem Prototyp Toshiba T1100. Der Kontrast war viel besser - von 1: 5 bis 1:50, und mehrere Helligkeitsstufen reichten für Geschäftsanwendungen aus (die Verwendung eines Laptops im Alltag war immer noch zu teuer). Aber was ist, wenn der Benutzer ein Farbbild möchte? In diesem Fall wurden ihm zwei Technologien angeboten: TFT und CSTN (Color Supertwist Nematic). Der erste Laptop mit TFT - NEC PC9801NC - wurde 1990 eingeführt, die Bildqualität für diese Jahre war vor allem Lob, aber es kostet "so ein Spielzeug" ist viel teurer als andere teure Laptops. Nun, eine CSTN-Anzeige ist nur eine STN-Anzeige, der ein Filter überlagert ist. Laptops verwendeten lange Zeit Matrizen beider Typen. Und in der New Yorker U-Bahn funktionieren CSTN-Monitore immer noch.
Eine davon, Quelle: Transit + PLUSCstron
Der Autor wollte sich das CSTN-Display ansehen. Wie? Kaufen Sie zunächst einen alten Laptop und verwenden Sie ihn. Es stellte sich heraus, dass es sich um einen AMD 5x86-P133-Prozessor handelte. Das heißt, das Dynamischste, was Sie darauf ausführen können, sind DOS-Spiele (na ja, MPEG1 zieht den QV-Übersetzer in das Programm). Natürlich ist es großartig, sie zu spielen, aber ich wollte sehen, wie beispielsweise YouTube oder ein modernes Spiel auf einem solchen Display aussieht - aber das ist unmöglich.
Oder?
Im Allgemeinen müssen Sie einen VGA- oder HDMI-Eingang hinzufügen - und Sie können ein Signal von etwas Modernem senden. TFT-Bildschirme von Laptops werden so oft zu Monitoren umgebaut. Kaufen Sie einfach ein Board, das zur Matrix passt - und fertig. Auf dem FPGA können Sie ein eigenes Präfix erstellen, das ein VGA- oder HDMI-Signal in einen Pixeldatenstrom umwandelt.
Es waren einmal auch Karten für die Umwandlung von CSTN-Matrizen in VGA-Monitore hergestellt worden, die jedoch nicht mehr gefunden wurden. Dafür können Sie aber das Debugboard für FPGA ML505 anpassen.
Das fertige Ergebnis. Es ist ziemlich ungewöhnlich, dies auf einem CSTN-Display zu beobachten: 16 GB RAM.Matrixverwaltung
Beginnen wir mit den Grundlagen. Wie jede Matrixanzeige verfügt auch die CSTN-Anzeige über Zeilen und Spalten. Haben Sie jemals eine LED-Matrix von einem Mikrocontroller aus gesteuert? Hier ist es genauso, aber die Spannungen sind variabel. Sie müssen bestimmte Signale sowohl auf ausgewählte als auch auf nicht ausgewählte Zeilen und Spalten anwenden. Das Pixel am Schnittpunkt der ausgewählten Zeile und Spalte zeigt an, was Sie benötigen. Die Form der Signale ist sehr komplex, der mittlere quadratische Wert der Spannung, die Phasenverschiebung zwischen den Spannungen in Zeile und Spalte und der Versatz ... Und so wird Pixel für Pixel ein Bild erzeugt.
Glücklicherweise müssen FPGAs nicht alle diese Signale erzeugen, auch nicht auf einer so großen Anzahl von Leitungen. All dies erledigt das im Display eingebaute Modul. Dort erhöht der Impulswandler die konstante Spannung, durchläuft den Teiler und den Repeater, so dass die Vorspannung erhalten wird. Zeilen- und Spaltentreiber wandeln diese Spannung in eine Variable mit der erforderlichen Form um. Es ist lediglich erforderlich, einen Strom von Pixelzustandsdaten an das Anzeigemodul zu senden.
Auf einem TFT-LCD mit DPI-Schnittstelle (Digital Parallel Interface) kommen alle Daten zu einem Pixel in einem Zyklus auf einmal an. Auf der Linie der horizontalen und Rahmensynchronisation werden Impulse nach jeder Linie bzw. jedem Rahmen empfangen. Pixel werden einfach kontinuierlich Zeile für Zeile, Bild für Bild übertragen. Wenn die Vollbildübertragung 1/60 s dauert, beträgt die Bildwiederholfrequenz 60 Hz. Die Breite des Datenbusses entspricht der Farbtiefe in Bit, normalerweise 16 (5 Bit für Rot und Blau, 6 für Grün), 18 (6 Bit für jede Farbe) oder 24 (8 Bit für jede Farbe). LVDS ist dasselbe, nur Bits werden nicht parallel, sondern sequentiell in Differentialpaaren übertragen, aber in MIPI DSI werden sie auch zu Paketen kombiniert. Mit dem SPI / i80-Bus können Sie verschiedene Befehle an die Steuerung senden, die beim Ausführen Signale für DPI oder eine ähnliche Schnittstelle erzeugen. Was wiederum etwas an VGA erinnert, werden nur Daten über die Helligkeit jeder der Farben nicht in analoger, sondern in digitaler Form empfangen. Es gibt VGA-DPI-Wandler und umgekehrt. Boards sind sehr praktisch und ermöglichen es Ihnen, ein VGA-Signal vom Raspberry Pi zu empfangen, obwohl dieser Computer anfangs nur HDMI- und Composite-Video erzeugt.
Signale, die denen einer TFT-Matrix mit DPI-Schnittstelle sehr ähnlich sind, müssen an das Anzeigemodul der CSTN-Matrix geliefert werden. Das Datenblatt des SX21V001 [2] zeigt, wie ein CSTN-Display mit einer Auflösung von 640 x 480 gesteuert wird:

Dies zeigt die Übertragung des gesamten Rahmens. Das Signal kommt nach jeder Leitung auf der Leitung CL1 und nach jedem Rahmen auf der FLM an. Und es gibt einen Datenbus mit 16 Leitungen. Tatsächlich wurde in dieser Figur ein Fehler gemacht: Während der Übertragung der ersten und zweiten Leitung werden die Daten Y1 und Y2 und nicht X1 und X2, sondern Y140 bzw. Y242 auf den UD0-UD7-Leitungen empfangen. Hier sind U und L jeweils oben und unten, dh die Anzeige besteht aus zwei Matrizen mit einer Auflösung von 640 x 240, die übereinander angeordnet sind. Hier ist es, der mysteriöse „Dual-Scan“ einer alten Laptop-Werbung, von der ein horizontaler Streifen über den gesamten Bildschirm kommt. Bei STN- und CSTN-Anzeigen ist der Kontrast umgekehrt proportional zur Anzahl der Zeilen, sodass dieser Abstand eine Erhöhung ermöglicht. Dies ist jedoch nicht die einzige Art und Weise, wie sie sich in der Art und Weise unterscheiden, wie sie vom TFT gesteuert werden.

Es ist nicht klar, warum die horizontale Achse Y genannt wurde ... Aber in jedem Fall ist CL2 hier eine Leitung zum Liefern von Taktimpulsen, die Pixel wechseln. Die UD- und LD-Busse in einem Zyklus übertragen jedoch keine Daten über ein Mehrbitpixel wie bei TFT, sondern Daten über mehrere Pixel gleichzeitig, jeweils drei Bits. Ein Bit pro Farbe, drei Bits pro Pixel - insgesamt acht Farben.

Aber wie so? Es ist klar, dass CSTN-Anzeigen nur wenige Farben haben, z. B. 4096 oder 32768, aber nicht 8. Es stellt sich heraus, dass hier PWM angewendet wird. LEDs werden auf diese Weise gesteuert, was bedeutet, dass LCD-Pixel möglich sind. Sie benötigen beispielsweise eine Helligkeit von 50% - schalten Sie das Pixel in geraden Bildern ein und in ungeraden Bildern aus. Diese Methode wird als FRC (Frameratensteuerung) bezeichnet, aber PWM wird in diesem Zusammenhang auf die gleiche Weise als Pixelhelligkeitssteuerung bezeichnet, jedoch innerhalb von zwei oder mehr Frames, jedoch nur einem. FRC implementiert ein externes Gerät und PWM implementiert Anzeigemodulchips, wenn diese Funktion unterstützt wird. Der Autor kennt keine CSTN-Anzeigen mit PWM, schlägt jedoch vor, dass es sich um HPA-Matrizen handelt. In jedem Fall kann, da PWM nicht verfügbar ist, die erforderliche Farbtiefe unter Verwendung von FRC erhalten werden.

Flackern ist der Preis dafür, so dass monströse (im Vergleich zu TFT) Bildraten in CSTN-Displays zu finden sind. Zum Beispiel hatte dieses Modul anfangs 120 Hz und der Autor übertaktete es auf 240.
Wie es umgesetzt wurde
Der Entwickler hatte mehrere Schwierigkeiten gleichzeitig:
- Das Eingangssignal hat eine Bildrate von 60 Hz, es muss verdoppelt oder sogar vervierfacht werden
- Im Eingangssignal ist der Rahmen nicht in obere und untere Hälften von jeweils 640 x 240 Pixel unterteilt, sondern hier muss geteilt werden
- Sie müssen auch FRC implementieren, andernfalls beträgt die Farbtiefe 3 Bit pro Pixel
Die ersten beiden Punkte bedeuten, dass ein Framebuffer benötigt wird, und zwar nicht einfach, sondern mit zwei Ports. Nun, die dritte Aufgabe wird mit GLDP LUT (Graustufen-Nachschlagetabelle für Anzeigemuster) gelöst [3]. Die Nachschlagetabelle enthält zwei Arten von Eingabedaten: die anzuzeigende Farbe und den Status des Bildzählers. Und eine Art von Ausgabe: die drei Bits, die zu einem bestimmten Zeitpunkt an die Subpixel eines bestimmten Pixels gesendet werden müssen. Daher sind die folgenden Knoten erforderlich:

Als erstes füllen Sie den gesamten Bildschirm mit etwas Farbe. Zu diesem Zeitpunkt ist es nicht erforderlich zu wissen, wo sich welches Pixel befindet. Es reicht aus, um sicherzustellen, dass das Anzeigemodul die erforderlichen Formsignale an die Matrix liefert. Der Code zum Ausfüllen des FPGA ist
hier .

Versuchen Sie nun, etwas herauszubringen, und zwar mit unvollständiger Helligkeit. Suchen Sie nach FRC-Nachschlagetabellen, um das Flimmern zu minimieren. Der Autor hat zwei Tabellen erstellt, die auf Pixel in einem Schachbrettmuster angewendet werden. Daher flackern alle zwei benachbarten Pixel asynchron. Der Code ist
hier .

Wir haben der Tafel also bereits „beigebracht“, das Bild anzuzeigen. Als nächstes wird ein Framebuffer benötigt. Bei 640 x 480 und 5 Bit für jede der Farben beträgt das Volumen etwa 600 Kilobyte. Nicht viel, aber so viele in FPGAs. Nun, das Board hat RAM wie DDR2 und Xilinx MIG, um es zu steuern. Es sind zwei FIFOs implementiert, einer zum Lesen und einer zum Schreiben. Der Arbiter entscheidet, ob der nächste Datenaustausch mit DDR2 gelesen oder geschrieben wird. Es gibt zwei Puffer, der Datensatz geht zu einem, liest vom anderen und beim Ändern von Frames wechseln sie die Orte. Der Schiedsrichtercode ist
hier .
Es bleibt die Implementierung der Videoaufnahme, in einem der vorherigen Projekte hat der Autor bereits eine ähnliche Betriebszeit, nach der Verfeinerung ist der Code für den Konverter von VGA zu DPI so geworden.
Und was ist passiert?
Schau es dir an!
Dies ist das dritte FPGA-Projekt für den Autor. Es war interessant, mit Xilinx MIG und DDR2 sowie mit einem einfachen Förderer zu arbeiten. Geplant sind eine bessere FRC mit Delta-Sigma-Modulation sowie Experimente mit späteren CSTN-Panels unter Verwendung der HPA-Technologie (High Performance Addressing) von Sharp.
Vielen Dank für Ihre Aufmerksamkeit!
Quellen
1. Li, W. & Guo, Q. (2000). Anwendungstechnologie für Flüssigkristallanzeigen. Peking: Presse der Elektroindustrie.
2. HITACHI (1999). SX21V001-Z4 Akzeptanzspezifikationen des Kunden.
3. Hsueh, Y. & Lee, J. (2008). Bildverbesserungsmethode für LCD-Bildratenregler. 2008 IEEE Internationales Symposium für Unterhaltungselektronik. doi: 10.1109 / isce.2008.4559534