Entwicklung eines Touchscreen-Computers als Basis für Web
Transcrição
Entwicklung eines Touchscreen-Computers als Basis für Web
Entwicklung eines Touchscreen-Computers als Basis für Web-Anwendungen Diplomarbeit von Oliver Keller aus München Student der Fakultät 06 an der Hochschule München Studiengang Feinwerk- und Mikrotechnik Studienrichtung Feingerätetechnik Referent: Prof. Dr. Otto Parzhuber Korreferent: Prof. Dr. Michael Hermann Tag der Einreichung: 15.11.2007 Inhaltsverzeichnis Abstrakt 1. 2. 3. 4 Entwicklung eines Touchscreen-Computers als Basis für Web-Anwendungen . . . . Development of a touch screen computer as framework for web applications . . . . . 4 5 Einleitung 6 1.1. Verbreitung von Touchscreen-Computern . . . . . . . . . . . . . . . . . . . . 1.2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 Grundlagen 9 2.1. Technische Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Eingebettete Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Aufbau eines Touchscreens . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 10 10 Realisierung 14 3.1. Hardware . . . . . . . . . . . . . . . 3.1.1. Computer-Modul . . . . . . . 3.1.2. Basisplatine . . . . . . . . . . 3.1.3. Flachbildschirm . . . . . . . 3.1.4. Touchscreen-Controller . . . . 3.2. Software . . . . . . . . . . . . . . . . 3.2.1. Betriebssystem . . . . . . . . 3.2.2. Browser als virtuelle Maschine 3.3. Gesamtsystem . . . . . . . . . . . . . 4. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 18 22 23 27 27 28 30 34 Danksagung 35 Literaturverzeichnis 36 Abbildungsverzeichnis 37 2 I NHALTSVERZEICHNIS A. Anhang A.1. A.2. A.3. A.4. Schaltplan ETX-Basisplatine Ätzvorlage ETX-Basisplatine Ätzvorlage ATouch . . . . . Erklärung zur Urheberschaft 38 . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 38 38 38 Abstrakt Entwicklung eines Touchscreen-Computers als Basis für Web-Anwendungen Dem Gedanken des allgegenwärtigen Computers (ubiquitous computing) folgend, wird ein Server-Client-System vorgestellt, welches in die Umgebung des Benutzers variabel integrierbar ist. Die vorliegende Arbeit zeigt im Detail, wie ein Touchscreen-Computer komplett im Eigenbau konstruiert wird. Eine Kombination aus frei verfügbarer Software und einem weit verbreiteten Computer-Modul wird als Basis ausgewählt. Applikationen können dafür in Form von Web-Anwendungen geschrieben werden. Durch die Verbindung der Schlüsseltechnologien Touchscreen und Internet können neuartige Benutzerinteraktionen erschlossen werden. Außerdem erleichtert das gezeigte System das Sammeln objektiver Erfahrungen im Umgang mit der Touchscreen-Technologie. 4 Development of a touch screen computer as framework for web applications In the spirit of ubiquitous computing a server client system is presented which can be variable embedded in the surroundings of the user. This thesis shows in detail how a touch screen computer is constructed completely in a do-it-yourself approach. A combination of free software and a widely spread computer module is chosen as a base. Programs can be written for it in the form of web applications. Through the connection of the key technologies touch screen and internet new ways of user interactions can be explored. Furthermore, the shown system eases collecting objective experiences in dealing with touch screen technology. 5 1. Einleitung 1.1. Verbreitung von Touchscreen-Computern Computer, die auf berührungsempfindlichen Bildschirmen (Touchscreens) basieren, sind auf dem Markt bereits in verschiedenen Ausführungen verfügbar. In der Industrie findet man sie häufig als so genannte Panel-PCs, mit deren Hilfe Anlagen wie Fräsmaschinen gesteuert werden. Der Computer ist in diesen Geräten direkt hinter dem Bildschirm untergebracht. Im Alltag kennt man sie meist eher schlecht als recht durch die Benutzung von Ticket- oder GeldAutomaten. Diese Maschinen werden generell Kiosk-Terminals oder engl. als point of sale (POS) bzw. point of information (POI) bezeichnet. Die Touchscreen-Technik löst hier die bisher bewährte Kombination aus Tastatur und Bildschirm immer öfter ab, da eine wesentlich intuitivere Bedienung - per „Fingerzeig“ - ermöglicht wird. Natürlich bringt die neue Technologie nicht nur Vorteile. So wird der berührungsempfindliche Bildschirm, eines im öffentlich Raum aufgestellten Automaten, durch die vielen Kontakte mit Fingern noch schneller verschmutzen, als das durch die meist rauen Umgebungsbedingungen sowieso schon der Fall ist. Außerdem bringt die Optimierung der eingesetzten Touchscreens auf eine möglichst hohe Vandalismus-Resistenz Abstriche im Bedienungskomfort. Die nutzbaren Flächen werden derzeit noch möglichst klein gehalten und die Reaktionen auf einzelne Berührungen sind oft träge und nicht immer zufriedenstellend. Im privaten Bereich kennt man Touchscreens allenfalls durch die Benutzung kleiner, tragbarer Taschencomputer (sogenannte engl. handhelds oder gadgets), wie sie in modernen Handys, Terminplanern, MP3-Playern oder Kameras vorkommen. Momentan erlebt die Mobiltelefonindustrie einen Boom durch die Integration von Zusatzfunktionen, die bislang separaten Geräten vorbehalten waren. Um die Funktionsvielfalt dieser neuen „digitalen SchweizerTaschenmesser“ dem Benutzer möglichst intuitiv in die Hand zu legen, setzen viele Hersteller auf die Touchscreen-Technologie. Allen voran steht hier zur Zeit das iPhone von Apple. Von der Eingabe einer Internetadresse in den Webbrowser, über die Navigation zwischen MP3 Dateien bis hin zur Wahl von Telefonnummern, wird im iPhone auf eine Berührung per Finger als einziges Eingabemedium gesetzt.1 1 Bisher boten die meisten Touchscreen-Geräte entweder auch mechanische Tasten als Alternative an oder legten zumindest einen kleinen Stift bei, der für eine fehlerfreie Interaktion zwingend erforderlich war. 6 1. E INLEITUNG Es ist insgesamt zu erwarten, dass die Verbreitung von Touchscreens noch stärker wachsen und die Technologie weiter verfeinert wird. 1.2. Motivation Trotz stetig steigender Präsenz der Touchscreen-Technologie in elektronischen Geräten, findet man so gut wie keine im häuslichen Umfeld - wie z.B. am eigenen PC. Natürlich bietet der Markt durchaus einzelne Touchscreen-Modelle mit PC-Anbindung. Allerdings sind die Preise, von teilweise über 1000e, für Modelle ab 15" sehr hoch.2 Zu diesen Konditionen wird sich derzeit kaum jemand aus reinem Interesse an der Technologie solch ein Gerät anschaffen. Auch ist es aus einem ganz anderen Gesichtspunkt zunächst fraglich, warum man gerade zuhause einen Touchscreen verwenden will: Die Kombination aus Tastatur und Maus scheint so effizient zu funktionieren, dass eine alternative Benutzerschnittstelle für den eigenen Computer nicht nötig scheint. Mit Sicherheit gilt das für jeden PC-Arbeitsplatz, egal ob zuhause oder im Büro. Aber gilt das auch für andere Orte? Im Zuge des Computerzeitalters finden wir immer mehr Computer in unserer Umgebung. Diesen Umstand fasste Mark Weiser bereits 1991 unter dem Begriff Ubiquitous Computing zusammen [1]. Spätestens wenn der Kasetten-Videorekorder das eigene Wohnzimmer verlassen und einem digitalen Festplattenrekorder (der über ein lokales Netzwerk in der Wohnung steuerbar ist) gewichen ist, konvergiert dieser Ort mehr denn je in eine Art Multimediazentrale. Der Trend geht langsam aber sicher hin zum Computer im Wohnzimmer, ganz unabhängig davon, ob er in einem klassischen PC-Gehäuse steckt oder nicht. Ein Touchscreen wäre hier sicher eine interessante und platzsparende Bedienungsmöglichkeit. Auch an anderen Orten im privaten Bereich sind Computer, die zwar nicht das klassische Erscheinungsbild eins PCs besitzen aber einige Funktionen dessen verkörpern sollen, denkbar. Die Küche oder der Flur könnte über eine Art digitales Schwarzes Brett erweitert werden. Phillips hat bereits einen Prototyp mit dieser Funktionalität - per Touchscreen bedienbar - vorgestellt, siehe Abbildung 1.1. Autofahrer möchten in Zukunft evtl. mehr als sein GPS-Gerät mit Touchscreen im Auto schnell und effektiv bedienen. Die zahlreichen Studien und Bemühungen der Automobilbranche im Multimedia- und Entertainment-Bereich reflektieren diese Kundenwünsche. VW hat beispielsweise angekündigt, ab 2008 alle neuen Autos mit einem Touchscreen in der Mittelkonsole auszustatten.3 2 Stand: August 2007, Quelle: www.elotouch.com finanzen.sueddeutsche.de/aktien/news_news?secu=322&dpa_news_id=2364975 3 Quelle: 7 1. E INLEITUNG Abbildung 1.1.: Philips IN Touch, digitales Nachrichtenbrett, Quelle: www.philips.com Motiviert durch die vielen Einsatzmöglichkeiten, zeigen die folgenden Abschnitte, wie ein Touchscreen-Computer für den privaten Einsatz im Eigenbau entstehen kann. Es ist damit möglich eigene und objektivere Erfahrungen mit der Technologie zu sammeln. Objektiver insofern, als es durch die Benutzung der relativ kleinen Touchscreens von entsprechenden handheld Geräten oder Automaten im öffentlichen Raum möglich ist. 8 2. Grundlagen 2.1. Technische Anforderungen Der hier vorgestellte Touchscreen-Computer wurde so universell wie möglich geplant, damit möglichst viele Einsatzgebiete erschlossen werden können. Er ist daher vor allem als ein modulares System angelegt. Im Vorfeld wurden folgende Kern-Anforderungen definiert: • möglichst kompaktes und flaches Volumen, Computereinheit niedriger als 3 cm • Größe des Touchscreens von 12" bis 15" mit einer Mindestauflösung von 1024x768 Pixel • passive Kühlung der Komponenten (ohne Lüfter) • gute Verfügbarkeit der Komponenten für Privatpersonen • Kosten für alle Komponenten unter 300e • flexible und frei verfügbare Software-Architektur • Internetanbindung • Webbrowser, der möglichst alle gängigen Standards unterstützt Von den geplanten Außenmaßen her entspricht das System den Grundzügen eines Panel-PCs. Um den Rahmen dieser Arbeit nicht zu sprengen, wurden bestimmte Funktionen von vornherein explizit ausgelassen. So wurde auf eine kabellose Stromversorgung verzichtet. Der Fokus liegt damit weniger auf portablen Anwendungen. Ein Akku könnte allerdings nachgerüstet werden. Außerdem soll die Software nicht alle Aufgaben eines normalen PCs erledigen können. Vielmehr ist dieser Touchscreen-Computer als Ergänzung gedacht und verfolgt das Prinzip „weniger ist mehr“[2]. Mit dem Webbrowser als Hauptapplikation wird auf den zunehmenden Trend der Web-Anwendungen gesetzt. Das vorgestellte System soll dadurch in erster Line prädestiniert für den Einsatz in reinen Client-Server-Architekturen sein, welche Aufgaben in einem Netzwerk verteilen. Der TouchscreenComputer ist in diesem Fall ein Client, der von Servern bereitgestellte Daten vorwiegend anzeigt. 9 2. G RUNDLAGEN 2.2. Eingebettete Systeme Die bisher definierten Anforderungen an das zu entwickelnde Touchscreen-Computer-System zeigen eine relativ ausgeprägte Spezialisierung. Auf bestimmte Aufgaben reduzierte elektronische Computersysteme fasst man allgemein unter dem Begriff ’Eingebettetes System’ (engl. embedded system) zusammen [3]. Ein embedded system ist beispielsweise die Steuer- und Anzeige-Einheit einer Waschmaschine oder die Elektronik in einem WLAN-Router. Die hohe Integrationsstufe solcher Systeme zeigt sich meist dadurch, dass alle elektronischen Komponenten auf einer einzigen Platine untergebracht sind. So sind beispielsweise in den meisten Mobiltelefonen alle Komponenten, vom Funk-Empfänger bis zum Bildschirm, direkt auf einer Hauptplatine verlötet. Gerade für kommerzielle Produkte mit hohen Stückzahlen ist dieses Vorgehen sehr wirtschaftlich. Für den hier anvisierten Touchscreen-Computer ist ein modular aufgebautes embedded system allerdings wesentlich flexibler und geeigneter, da eine Optimierung auf Massenproduktion nicht angestrebt wird. Die einzelnen Komponenten sind dadurch in verschiedenen räumlichen Positionen kombinierbar. Ein Gehäuse kann so je nach Einsatzzweck passend hergestellt werden. Von den Realisierungs-Möglichkeiten mit privaten Mitteln aus gesehen, ist es sowohl zweckmäßiger als auch vom Preis her günstiger, die Prozessor-Einheit (der eigentliche Computer) nicht komplett selbst aufzubauen, sondern auf ein fertiges Modul zurückzugreifen. Ein so eingebettetes Computer-Modul benötigt in der Regel nicht mehr Zubehör als einen SystemSpeicher, woraus das Betriebssystem geladen wird und eine Spannungsversorgung. Außerdem beherbergt es sämtliche Schnittstellen für zusätzliche Peripherie und die Generierung einer Bildschirmanzeige. Aus den bisher spezifizierten Anforderungen sind einzelne Funktionsblöcke ableitbar, die in Abbildung 2.1 zusammengefasst sind: Der Block ’Hardware’ steht darin exemplarisch für eine Basisplatine, mit der alle elektronischen Komponenten verbunden sind. Der Block ’Software’ repräsentiert das Betriebssystem. Die folgenden Abschnitte gehen detailliert auf die Teilbereiche ein. 2.3. Aufbau eines Touchscreens Ein Touchscreen ist, wie eingangs erwähnt, ein berührungsempfindlicher Bildschirm. Daraus folgt, dass er zwei Grundfunktionen besitzt: Zum einen die Bildschirmfunktion als Ausgabe und zum anderen die Sensorikfunktion, um eine Berührung als Eingabe zu erkennen. Der Bildschirm ist üblicherweise ein Flüssigkristall-Flachbildschirm basierend auf der TFT-Technologie. Die Sensorik gliedert sich in mehrere verfügbare Technologien und ist in der Regel direkt vor 10 2. G RUNDLAGEN Schnittstelle für Erweiterungen Bildschirm-Tastatur Browser Software Hardware Computer-Modul Touchscreen Touchscreen-Controller Speicher Netzwerkanbindung Flachbildschirm Abbildung 2.1.: Hardware- und Software-Konzept aufgeteilt in Module der Bildschirmfläche angebracht. Neben optischen Verfahren mit einer Kamera und Detektion von Oberflächen-Schallwellen (engl. surface acoustic wave (SAW)) sind vor allem die kapazitiven und resistiven Techniken verbreitet. Bei der kapazitiven Erkennung von Berührungen, tritt die Oberflächen-Kapazität der Haut eines Fingers in Wechselwirkung mit geladenen Kondensatoren innerhalb der Sensorik. Diese besteht aus transparenten Folien, die in mehrere diskrete Kondensatoren aufgeteilt ist. Da diese Technik auf eine Fremd-Kapazität angewiesen ist, funktioniert sie nur im Zusammenspiel mit direktem Hautkontakt. Das bedeutet Berührungen durch einen Handschuh oder einen Stift werden nicht erkannt. Aus Herstellungssicht sind kapazitiv arbeitende Touchscreen-Folien aufwendig, da die Gehäuse gegenüber elektromagnetischer Einstrahlung gut abgeschirmt sein müssen. Das spiegelt sich auch in einem höheren Preis gegenüber anderen Touchscreen-Technologien wieder. Allerdings kann diese Technik sehr genau und schnell Berührungen verarbeiten. Zudem ist sie relativ leicht erweiterbar, so dass mehrere Berührungen gleichzeitig erkannt werden. Beim, in der Einleitung erwähnten, iPhone wird dies angewendet. Die größte Verbreitung findet man bei analog-resistiv arbeitender Sensorik, die in fast allen Handheld-Geräten mit Touchscreen vorkommt. Hier werden ebenfalls transparente Folien eingesetzt. Diese formen allerdings keinen Kondensator, sondern einen Spannungsteiler mit variablen Widerständen. Geräte, die auf dieser Technik aufsetzen, können nicht nur per Finger, 11 2. G RUNDLAGEN sondern über einen Stift oder auch mit Handschuhen bedient werden. Es kommt lediglich auf einen mechanisch ausgeübten Druck an. Bild 2.2 zeigt den prinzipiellen Aufbau einer Version mit vier Anschlüssen. Nicht gezeigt ist hier die Isolationsfolie zwischen den beiden leitfähigen, mit Indiumzinnoxid beschichteten, Folien. Sie sorgt durch ein gleichmäßiges Raster aus Löchern und Abstandhalter-Partikeln dafür, dass der Spannungsteiler mit den Widerständen R1 bis R4 erst ab einem definierten Mindestdruck zustande kommt. Die X- und Y -Position wird proportional zu einer Spannung ermittelt. Legt man an Ux1 0V und Ux2 +5V an, kann man die X-Koordinate als Spannungsabfall an Uy3 messen.1 Für die Messung der Y -Koordinate legt man die Spannung an Uy3 bzw. Uy4 an und misst an der Folie gegenüber. Neben diesem Schema gibt es noch ein paar Abwandlungen mit fünf, sieben und acht Anschlussdrähten. Zum detaillierteren Studium der Folien- und Ansteuerungs-Varianten sei hier auf die ausführliche Dokumentation von Hamphsire Company, Texas Instruments und ein Artikel der Zeitschrift Circuit Cellar verwiesen [4].2 Abbildung 2.2.: Aufbau einer analog-resistiven Touchscreen-Folie, Quelle: www.wikipedia.de Die Schaltung, welche die Touchscreen-Folien auswertet, wird im Folgenden TouchscreenController genannt. Sie wandelt die Berührungspunkte so um, dass das Computer-Modul sie als Mauszeiger-Koordinaten verarbeiten kann. Um eine Tastaturfunktionalität zu gewährleisten, muss eine zusätzliche Bildschirmtastatur implementiert werden (vgl. Abbildung 2.1). 1 Eine Messung an Uy4 ist natürlich auch möglich, je nach gewünschtem Ursprung des Koordinatensystems. www.hampshirecompany.com, focus.ti.com/lit/an/slyt209a/slyt209a.pdf 2 Links: 12 2. G RUNDLAGEN Aufgrund der hohen Verbreitung analog resistiver Touchscreen-Folien, wurden diese als Grundlage für den Touchscreen-Computer gewählt. Sie können bei manchen Herstellern direkt erworben oder bei z.B. bei Ebay ersteigert werden.3 Um Verwechslungen zu vermeiden, sei darauf hingewiesen, dass kommerzielle Touchscreen-Folien, obschon ihrer Bezeichnung, nicht flexibel sind. Die Folien werden im letzten Arbeitsschritt auf ein Glassubstrat aufgetragen, um den Berührungsdruck vom dahinter liegenden Bildschirm fern zuhalten. Manche Hersteller verwenden daher einen alternativen Begriff für Touchscreen-Folien: Touch-Panel oder Touchscreen-Panel. Andererseits werden berührungsempfindliche Bildschirme (als Komplettsystem) oft ebenfalls unter denselben Bezeichnungen verkauft. Es ist also wichtig, genau zu prüfen, ob ein bestimmtes Produkt nur die berührungsempfindliche Sensorik oder zusätzlich einen Bildschirm beinhaltet. Für die Produktsuche sollten alle genannten Schlüsselwörter berücksichtigt werden. 3 Bezug in Deutschland z.B. über www.eximtech.de 13 3. Realisierung 3.1. Hardware 3.1.1. Computer-Modul Um ein passendes Computer-Modul zu finden, wurden zunächst die auf der ARM- und PowerPCArchiteckur basierenden untereinander verglichen. Diese Prozessoren eignen sich besonders für eingebettete Systeme. Wegen ihrem niedrigen Stromverbrauch, findet man sie in den meisten Handheld-Geräten wieder. Tabelle 3.1 zeigt die drei Module, die in die engere Auswahl gekommen sind. Sie erfüllen die in 2.1 aufgeführten Anforderungen am besten. Unter der Spalte ’Schnittstellen’ sind nur die relevanten aufgeführt, tatsächlich sind häufig bis zu zehn verschiedene Schnittstellen-Typen verfügbar. Die, für privaten Einsatz vergleichsweise teuren Preise gelten inklusive der meist hohen Abwicklungs- und Versandkosten (durchschnittlich 100e), die bei jeder Bestellung anfallen. Teilweise ergeben sich die allgemein hohen Einzelpreise aber auch daraus, dass der Hersteller den Aufwand für die Kundenbetreuung mit in den Modulpreis einkalkuliert. Das ist besonders bei den Modulen der Fall, die einzeln nur inklusive Basisplatine ausgeliefert werden. Sobald Stückzahlen über 1000 angefordert werden, sinkt der Preis im allgemeinen unter 100e pro Modul. Die Firma TQ Systems aus Weßling bei München, stellte freundlicherweise eines ihrer TQM5200 Module inklusive Basisplatine (siehe Abbildung 3.1) zu Testzwecken für diese Arbeit zur Verfügung. Damit konnten sofort wichtige Erfahrungen gesammelt werden, da keine zusätzliche Hardware aufgebaut werden musste. Die Basisplatine erlaubte die direkte Verbindung mit einem VGA-Bildschirm und einem kabelgebundenen Ethernet-Netzwerk. Als Betriebssystem wurde die Linux Distribution ELDK von Denx Software Engineering, basierend auf der Kernel-Version 2.4, mitgeliefert. Von Beispiel-Konfigurationen der ELDK Distribution ausgehend1 , wurde ein Minimalsystem aufgesetzt, das nach dem booten als einziges Programm den Konqueror Webbrowser startet. 1 ftp://ftp.denx.de/pub/demos/konqe-demo 14 3. R EALISIERUNG Modell Hersteller Prozessor Speicher Colibri Toradex XScale 64MB-RAM PXA3002 PXA300 128MB-Flash 208Mhz CMCompulab ARM, 64MB-RAM 3 X270L PXA270 128MB-Flash 312Mhz TQMTQC PPC, 64MB-RAM 4 5200 MPC5200B 128MB-Flash 400Mhz 1 Stand: Schnittstellen LCD-RGB, USB, SD, Ethernet LCD-RGB, USB, CF, WLAN LCD-RGB, USB, PCI, Ethernet Formfaktor Preis1 SO-DIMM 224e (68x37mm) 66x44mm 295$ 80x60mm ca. 800e5 Oktober 2007 2 www.toradex.com/d/colibri_pxa300.php 3 www.compulab.co.il/x270cm/html/x270-cm-datasheet.htm 4 tq-components.de/446+M5da6310fedb.html 5 inklusive Evaluations-Kit und Support Tabelle 3.1.: geeignete ARM- und PPC-Module Leider war diese spezielle Konqueror Version, Konqueror Embedded (im Internet geführt unter der Projektbezeichnung kdenox, für engl. KDE no Xwindow) von Mitte 2004 und unterstützte nicht die aktuellen Web-Standards. Beim laden einiger Seiten (z.B. Google Mail) stürzte er sogar ab. Der Vorteil von Konqueror Embedded ist, ohne das unter Linux üblicherweise obligatorische Xwindow Programpacket auszukommen, was sehr ressourcensparend ist. Ohne Xwindow wird der Bildspeicher der Grafikschnittstelle direkt über die Qt-Bibliothek von Trolltech angesteuert. Es wurde versucht, aktuellere Versionen des Konqueror Embedded Browser zu portieren bzw. zu patchen, was letztlich aber nicht gelang. Der Browser selbst wird zwar noch weiter entwickelt, es schien aber nicht sinnvoll daran festzuhalten. Als alternative, standardkonforme Browser, standen Firefox und Opera zur Wahl. ’Opera for Devices 9’ existiert zwar für PPC linux, konnte für diese Arbeit aber nicht benutzt werden, da Opera nur für kommerzielle Entwicklung eine Evaluierung ihres embedded Browsers erlaubt. Von Firefox existiert bisher weder eine ARM- noch PPC-Portierung, die auf den genannten Modulen funktionstüchtig ist. Eine eigene Portierung wurde Aufgrund des Umfangs und der Komplexität der Quellen von Firefox ausgeschlossen. Gleichzeitig wurde untersucht, inwiefern Flachbildschirme direkt, ohne Umweg über ein VGA-Signal, angeschlossen werden können. Es zeigte sich, dass z.B. die meisten TFT-Displays von Notebooks eine LVDS-Schnittstelle bieten, die nicht kompatibel zu der LCD-RGB Schnittstelle, der bisher anvisierten Computer-Module, ist. Da Ersatz-Displays für Notebooks aber eine ideale Quelle für günstige und besonders kompakte Flachbildschirme darstellen, wurde versucht diese zu verwenden (siehe Abschnitt 3.1.3). Der wichtigste Grund, der dazu führte, eine andere Hardware zu wählen, war die Frage der 15 3. R EALISIERUNG Abbildung 3.1.: TQM-5200 Modul mit Basisboard, Quelle: www.tqc.de Verfügbarkeit. Ganz abgesehen vom Preis, kann es schnell passieren, dass ein Modul nicht mehr auf dem Markt erhältlich ist, wenn die Nutzerbasis zu gering geworden ist. Beim Vergleich der vielen unterschiedlichen Spezifikationen der verschiedenen Computer-Modul-Hersteller fällt auf, dass sie extrem verschiedene Konzepte verfolgen. So hat jedes Modul andere Steckverbinder mit unterschiedlicher Polzahl, Spannungsversorgung und Konfiguration der Schnittstellen etc.2 In der Industrie werden natürlich Verträge darüber abgeschlossen, die eine entsprechende Versorgung mit Modulen im Vorfeld sichern. Für ein Projekt wie dieses, welches mit privaten Mitteln umgesetzt werden soll, ist man letztlich am besten beraten auf einen Modul-Standard aufzubauen, der soweit verbreitet ist, dass er von mehren Unternehmen unterstützt wird. Motiviert durch die Probleme bei der Software-Kompilierung und die genauer definierten Hardwareanforderungen, wurde also nach einer geeigneteren Plattform recherchiert. Aus Softwaresicht ist eine x86-basierte Plattform ideal. Hier ist der Firefox Browser bis hinunter zu 233Mhz Intel Pentium II Prozessoren und 64MB Arbeitsspeicher einsetzbar.3 Ausserdem bieten x86-Architekturen generell viele Schnittstellen, die für Mensch-Maschine-Interaktionen (engl. Abkz. HMI) geeignet sind. Zu nennen ist hier v.a. der Triumph des Universal Serial Bus (USB). Für ein modulares System, wie den angestrebten Touchscreen-Computer, ist er durch seine einfache Erweiterungsmöglichkeit per Hub, geringe Anzahl an Busleitungen (vier) und integrierte Stromversorgung (+5V) sehr geeignet. Typische embedded system Computer-Module, 2 Beim TQM-5200 Modul fällt z.B. auf, dass es einen Leitungstreiber für den RS-232 Standard mit 12V Spannungspegel direkt beherbergt. Entsprechende Treiber für Ethernet und USB müssen dagegen auf der Basisplatine vorgesehen werden. 3 www.mozilla.com/en-US/firefox/system-requirements.html 16 3. R EALISIERUNG auf ARM- oder PPC-Basis bieten USB meist eher als Zugabe. D.h. es gibt oft nicht mehr als einen USB 1.1 Port, der nur Geschwindigkeiten bis 12 Mbit/s unterstützt. Dadurch scheidet z.B. eine Verwendung von USB-Sticks als Systemspeicher auf diesen Modulen aus, weil die erreichbaren Schreib- und Lesegeschwindigkeiten zu gering sind. Ein weit verbreiteter x86-kompatibler Modul-Standard der Industrie ist PC/104 aus dem Jahre 1992. Er wird in vielen Automatisierungs- und Steuerungsaufgaben immer noch eingesetzt, obwohl er nach wie vor auf dem bereits in die Jahre gekommen ISA-Bus und DOS als Betriebssystem aufsetzt. Um vergleichbare Modul-Standards zu finden wurde die Produktpalette entsprechender Hersteller wie Kontron studiert. Es zeigte sich schliesslich, dass der ETX-Standard sehr geeignet für diese Arbeit ist. ETX wurde 2000 von mehren Firmen im Zusammenschluss zur ETX Industrial Group ins Leben gerufen. Die Spezifikation und Design-Hinweise sind frei verfügbar [5]. Obwohl es sich auch hier um Module handelt, die für den industriellen Einsatz gedacht sind, sind sie auch für Privatpersonen erreichbar. Das ist auf die hohe Verbreitung und zahlreichen Hersteller und Händler zurückzuführen.4 Für diese Arbeit wurde je ein Intel Celeron Modul, ’ETX-P3T’, mit 1Ghz von Kontron und ein 400Mhz Modul, ’ETe-P3T’, von MSC, bei Ebay im Neuzustand erworben (Preis: 30e bzw. 20e ). Da ETX Module seit 7 Jahren auf dem Markt sind, kann man zahlreiche Auslaufmodelle günstig finden. Elektrisch sind natürlich alle Module untereinander kompatibel. Der ETX-Standard ist nicht zu verwechseln mit einem reinen Formfaktor, wie ATX oder mini-ITX für PCs. Dort stehen vor allem die Abmessungen im Vordergrund. Die tatsächlich auf ATX-Boards vorhandenen Schnittstellen sind sehr unterschiedlich. Ausserdem sind im Moment noch fast alle Formfaktoren, die primär für den Einsatz als PC gedacht sind, für die sogenannte ATX-Blende ausgelegt. 5 Hier sind fast alle wichtigen Peripherie-Anschlüsse auf einer Fläche von 160x45mm zusammengefasst. Durch zusätzlich nötige Lüfter, liegt die Höhe dieser Platinen letztlich bei mindestens 50mm. Damit sind sie eindeutig ungeeignet, um, wie in den Anforderungen 2.1 spezifiziert, direkt hinter dem Touchscreen montiert zu werden. Exemplarisch sei hier auf das preislich sehr attraktiv gestaltete mini-ITX Board D201GLY von Intel verwiesen (Abbildung 3.2). Dieses Board ist aber, abgesehen von der Dicke und dem Lüfter, wegen der nicht vorhandenen LVDS-Schnittstelle ungeeignet für den Touchscreen-Computer. 4 Exemplarisch drei Bezugsquellen in Deutschland: www.embedded-logic.de, www.bressner.de, www.msc-ge.com 5 Via hat die Epia Produktpalette kürzlich auf pico-ITX (10x7.2cm) erweitert. Hier bleibt aber nach wie vor das Problem der Verfügbarkeit und die relativ hohen Preise durch das Fehlen mehrerer Hersteller. 17 3. R EALISIERUNG Abbildung 3.2.: 17x17x6cm mini-ITX Board D201GLY von Intel, Quelle: www.itc.ua 3.1.2. Basisplatine Im Unterschied zu kompletten Mainboards, benötigen Computer-Module eine zusätzliche Basisplatine. Der Vorteil ist die dadurch variable Raumausnutzung. Der Abschnitt zeigt wie ein so genanntes ETX-Baseboard mit privaten Mitteln aufgebaut werden kann. Der erste Ansatz ist eine zweilagige Platine selbst zu ätzen. Da ETX-Module glücklicherweise hoch integriert sind, werden zum Anschluss von Peripherie nur Terminierungswiderstände, Steckverbinder und optional Überlast-Schutzschaltungen benötigt. Das einzig konfigurierbare auf den Modulen selbst ist der SO-DIMM Steckplatz für Arbeitsspeicher (siehe ETX-Modul in Abbildung 3.3). Als Spannungsversorgung benötigen sie +5V ±5% bei unkritischen 100 mVpp Welligkeit [6]. Für die Außenmaße wurde das weit verbreitete Europakarten-Format mit 160x100mm gewählt. Es stellt einen guten Kompromiss zwischen verfügbarer Fläche und Handhabung beim Ätzen dar. Ein ETX-Modul mit den Maßen 95x111.6mm lässt sich auf dieser Fläche gerade noch unterbringen. Als Schnittstellen wurden den Anforderungen nach, die vom Platzbedarf her anspruchslosesten ausgewählt (keine parallelen Busse wie PCI). Andernfalls wäre eine mindestens vierlagige Platine und damit erheblich höhere Herstellungskosten nötig gewesen - v.a. im Vergleich zum günstigen Preis der eingesetzten ETX-Module. 18 3. R EALISIERUNG Folgende Anschlüsse wurden auf der Basisplatine berücksichtigt: • 4 x USB-Host6 • 1 x 10Base-T / 100Base-TX Ethernet, RJ45 • 1 x Seriell, RS-232 (5V TTL Pegel) • 1 x LVDS zur direkten Verbindung mit TFT-Displays • 1 x Audio Ausgang (3,5mm Klinke) • 1 x PS/2 • 1 x VGA Monitoranschluss Abbildung 3.3.: ETX-Modul ETX-P3T von Kontron, Quelle: [6] Die letzten beiden Schnittstellen wurden zur Sicherheit vorgesehen, falls im BIOS eines Moduls die LVDS Schnittstelle zur Grafikausgabe erst aktiviert werden muss und USB Tastaturen auf der BIOS-Ebene nicht unterstützt werden. Bei dem ETX-P3T Modul war auch die explizite Umstellung von VGA auf ein LCD-Panel nötig, obwohl laut Handbuch [6] eine automatische Display-Erkennung im BIOS Standard ist. Der komplette Schaltplan mit Hinweisen befindet sich im Anhang A.1. Abbildungen 3.4 und 3.5 zeigen jeweils das Layout der Ober- und Unterseite. Eine fertige Vorlage zum selbst ätzen 6 Einzelne, ältere ETX-Module bieten hier nur USB 1.1, die meisten jedoch USB 2.0. 19 3. R EALISIERUNG Abbildung 3.4.: ETX-Baseboard Oberseite, mit ETX-Modulumriss in Grau ist im Anhang A.2 abgelegt. Dem hier vorgestellten ETX-Board dienten die Referenzdokumentation [6] und [7] als Grundlage. Aufgrund der engen Platzverhältnisse, konnten die Schnittstellenstecker nicht auf der gleichen Seite wie das ETX-Modul untergebracht werden. Dadurch ergibt sich eine Höhe von 27mm des gesamten Aufbaus, von der RJ45 Buchse bis zur gegenüberliegenden Außenfläche des Heatspreaders. Das ist die Bezeichnung der ebenfalls standardisierten ETX-Kühlfläche. Von dort aus muss die Hitze weiter, aktiv oder passiv, abtransportiert werden. Ein ETX-Modul wird über vier SMD-Steckverbinder mit je 100 Pins mit der Basisplatine verbunden.7 In diesem Layout wurde aus Platzgründen und als Test, der ETX-Steckverbinder X2 (siehe auch Hinweis im Schaltplan, A.1) weggelassen.8 An X2 liegt lediglich der ISA Bus an, welchen einige aktuelle ETX-Module auch nicht mehr unterstützen. Ansonsten sind nur acht mal GND und vier mal VCC an diesem Stecker vorhanden. X2 wurde daher mit der Annahme, dass alle GND und VCC-Pins innerhalb der Module untereinander verbunden sind, ausgelassen. Zudem bieten die übrigen Steckverbinder X1, X3 und X4 noch genug GND- und VCC-Verbindungen an. Eine kleine Überschlagsrechnung bestätigt, dass die Stromversorgung ausreichend bleibt: 7 passende 8 Die SMD-Buchse: FX8-100S-SV von Hirose [5], z.B. über Farnell beziehbar Module werden dadurch nicht vollständig konform zur ETX-Spezifikation betrieben. 20 3. R EALISIERUNG Ethernet Power Supply PS/2 Audio serial VGA USB USB USB USB LVDS Abbildung 3.5.: ETX Baseboard Unterseite, Komponentenumrisse in Grau Summe aller benutzten GND-Pins: 10(X1) + 15(X3) + 8(X4) = 33 Summe aller benutzten VCC-Pins: 6(X1) + 5(X3) + 6(X4) = 17 => limitierender Faktor: 17 VCC-Pins Stromaufnahme des 1Ghz ETX-P3T Moduls unter Volllast: 3.2A => Stromaufnahme pro Pin: 3.2/17 ' 190mA Bei einer minimalen Leiterbahnbreite von 0.2mm an den jeweiligen Pins und 35µm Kupferdicke, ergibt sich nach DIN IEC 3269 eine Temperaturerhöhung weit unter der niedrigsten Referenzlinie von ∆T =10◦ C – ca. 1 bis 2◦ C. Für zukünftige Versionen liegt folgende Idee nahe: Wenn man statt dem kabelgebundenen Ethernet einen WLAN USB-Stick einsetzt, könnte man zusätzlich versuchen einen weiteren ETX-Steckverbinder einzusparen. X4 wird nur für die Ethernet Signale benötigt. Das ganze Modul könnte ohne X4 sogar dezentral auf der Basisplatine platziert und alle Steckverbinder dadurch auf die selbe Seite wie das Modul gebracht werden. Die Gesamthöhe wäre dann ca. 1cm niedriger. 9 www.multipcb.de/ger/sites/pool/index.html?/ger/sites/leiterplatte/ strombelastbarkeit.html 21 3. R EALISIERUNG Abbildung 3.6.: LVDS Pinout 3.1.3. Flachbildschirm Wie bereits erwähnt, wird auf die Verwendung von TFT-Displays gesetzt. Es gibt verschiedene Bussysteme zur Ansteuerung, die scheinbar keiner einheitlichen Standardisierung folgen. Am häufigsten kommen der parallele RGB und der serielle LVDS Bus vor. Bei üblichen 18 Bit Farbtiefe, benötigt der parallele Bus mindestens 18 Datenleitungen und eine Taktleitung. Zusammen mit der Stromversorgung ist man üblicherweise bei weit über 20 Pins (insgesamt häufig 40 bis 44 Pins). Die LVDS-Schnittstellen dagegen arbeiten mit differenziell übertragener Niederspannung bei höheren Taktraten. Ein so genannter single channel LVDS-Steckverbinder besitzt meist genau 20 Pins. Drei Paare für jeweils Rot, Grün und Blau, ein Taktleitungspaar und 3,3V Spannungsversorgung. Hier findet man eine Art Quasistandard, den viele Hersteller einhalten. Für viele TFT-Displays kann man leider kein Datenblatt finden. Abbildung 3.6 zeigt daher exemplarisch die Anschlussbelegung des 12" Displays ’TM121SV-02L03’ von Sanyo.10 Wenn man diesen einreihigen, 20-poligen Steckverbinder an einem TFT-Display sieht, kann man meist davon ausgehen, dass er die gezeigte Pinbelegung hat. Aus Platzgründen wurden die LVDS-Signale auf der Basisplatine für manuelles anlöten ausgelegt. Bei lediglich zehn unterschiedlichen Signalen schien das noch in Ordnung. Die Datenleitungen vom Sender werden nach dem Schema in Tabelle 3.2 mit der Empfängerseite verbunden. Um das Display schließlich zum Leuchten zu bringen, muss die Hintergrundbeleuchtung (engl. backlight) noch mit Spannung versorgt werden. Die meisten Backlights sind für 12 Volt ausgelegt. Am VCC-Eingang findet sich meist eine SMD-Sicherung, die GND-Signale sollten auch leicht zu erkennen sein. 10 Quelle: www.agpartsworldwide.com/lcd_specs/TM121SV-02L03.pdf 22 3. R EALISIERUNG ETX-Board LCDO0 / TXOUT# LCDO1 / TXOUT LCDO2 / TXOUT1# LCDO3 / TXOUT1 LCDO4 / TXOUT2# LCDO5 / TXOUT2 LCDO6 / TXOUT3# LCDO7 / TXOUT3 TFT-Display Rin0Rin0+ Rin1Rin1+ Rin2Rin2+ Rin3Rin3+ Tabelle 3.2.: LVDS channel 1 zwischen ETX-Basisplatine und TFT-Display Ist dies nicht möglich, muss man nach dem Datenblatt des ICs suchen, der auf der Platine eingesetzt wird. Für die Platinen selbst kann man in der Regel keine Datenblätter oder Schaltpläne finden - mit etwas Glück ist das Backlight immerhin im Display-Datenblatt spezifiziert. Die verbreitetsten Schaltungen sehen zwei zusätzliche Pins vor: Einer fungiert als digitales Einschaltsignal, der zweite wird zur analogen Helligkeitsregelung genutzt. Übliche Arbeitspegel sind 5V TTL. Die maximale Helligkeit wird meist über ein high- oder low-Pegel erreicht. Für den in Abschnitt 3.3 gezeigten Gesamtaufbau wurde ein 12,1" Display der Fujitsu-Siemens Lifebook S-Serie benutzt. Das Backlight arbeitet mit +12V und die beiden Steuereingänge wurden mit +5V versorgt um das Display auf maximale Helligkeit einzustellen. Ein Hinweis zu Vorsicht sei hier noch angebracht: Die Ausgangsspannung für die Neonröhren (Typ: CCFL) beträgt zwischen 600V und 1500V, bei 2 bis 6mA. Der ausgangsseitige Trafo der Backlight-Platinen darf daher im eingeschalteten Zustand auf keinen Fall berührt werden. 3.1.4. Touchscreen-Controller Das in 2.3 gezeigte Messprinzip an einer Touchscreen-Folie wird über den Touchscreen-Controller realisiert. Völlig offen dabei ist, wie die Daten an den Computer als Mauszeiger-Koordinaten übermittelt werden sollen. Auf dem Markt erhältliche Touchscreen-Controller bieten meist mehrere Schnittstellen: PS/2, RS-232 und USB. Auf der Computerseite ist dazu immer ein Treiber nötig, da die Koordinaten in einem proprietären Format übertragen werden, welches je nach Hersteller variiert. Für diese Arbeit wurde ein anderer Weg eingeschlagen. USB-HID ist eine USB-Protokollklasse, die für zahlreiche Mensch-Maschine-Eingabegeräte (engl. human interface devices, HID) vorgesehen ist. Von Tastaturen über Joysticks bis hin zu Computermäusen, können sämtliche Geräte über eine standardisierte Schnittstelle am Betriebssystem angemeldet werden. Das Betriebssystem regelt dann über einen eigenen USB-HID Protokoll-Stack die Internas. Um von Programmen aus auf USB-HID zuzugreifen, kann die plattformübergreifende C-Bibliothek ’libusb’ 23 3. R EALISIERUNG verwendet werden. 11 Damit bleiben die Programme im user space und ein Kerneltreiber wird unnötig. Wenn es um die Implementierung eines Standardgerätes wie einer Computermaus geht, ist in der Regel nicht einmal die Benutzung der ’libusb’ nötig. Linux, Mac OS X und Windows erkennen die USB-HID Geräte anhand des so genannten HID report descriptor.12 Erkennt das Betriebssystem eine Struktur wieder, registriert es den entsprechenden Kerneltreiber für das Gerät. Hier wurde eine, mit absoluten Koordinaten arbeitende Computermaus implementiert. Der report descriptor als C-Array sieht wie folgt aus: char usbHidReportDescriptor[USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH] \ PROGMEM = { 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x02, // USAGE (Mouse) 0xa1, 0x01, // COLLECTION (Application) 0x09, 0x01, // USAGE (Pointer) 0xa1, 0x00, // COLLECTION (Physical) 0x05, 0x09, // USAGE_PAGE (Button) 0x19, 0x01, // USAGE_MINIMUM (Button 1) 0x29, 0x03, // USAGE_MAXIMUM (Button 3) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x03, // REPORT_COUNT (3) 0x75, 0x01, // REPORT_SIZE (1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x75, 0x01, // REPORT_SIZE (1) 0x95, 0x05, // REPORT_COUNT (5) 0x81, 0x03, // INPUT (Cnst,Var,Abs) 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x30, // USAGE (X) 0x15, 0x01, // LOGICAL_MINIMUM (1) 0x26, 0xff, 0x03, // LOGICAL_MAXIMUM (1023) 0x75, 0x10, // REPORT_SIZE (16) 0x95, 0x01, // REPORT_COUNT (1) 0x81, 0x42, // INPUT (Data,Var,Abs,NullSt) 0x09, 0x31, // USAGE (Y) 0x15, 0x01, // LOGICAL_MINIMUM (1) 0x26, 0xff, 0x02, // LOGICAL_MAXIMUM (767) 0x75, 0x10, // REPORT_SIZE (16) 0x95, 0x01, // REPORT_COUNT (1) 0x81, 0x42, // INPUT (Data,Var,Abs,NullSt) 0xc0, // END_COLLECTION 11 libusb.sourceforge.net 12 Unter Linux am besten über das ’evdev’ Kernelmodul. 24 3. R EALISIERUNG } 0xc0 // END_COLLECTION Die Daten werden in einzelne Bytes aufgeteilt (via REPORT_COUNT und REPORT_SIZE). Zuerst 3 Bit für den Status der jeweiligen Maustasten und 5 Bit padding. Dann folgen je zwei Byte für die X- und Y-Koordinate. Details sind in der umfangreichen USB-HID Spezifikation zu finden [8]. Die eigentliche USB-Kommunikation übernimmt die AVR-USB Bibliothek [9]. Mit dieser Wahl stand auch die Mikrocontroller-Plattform fest. Die AVR-Familie von Atmel ist unter Hobbyelektronikern sehr populär. Es existieren viele Programm-Bibliotheken, für Privatpersonen leicht verfügbare Mikrocontroller und sogar ein AVR-GCC Compiler. AVR-USB erlaubt es zwei, fast beliebig wählbare, Pins für die USB Kommunikation zu verwenden. Dazu muss der Mikrocontroller von Atmel mindestens mit 12MHz betrieben werden. Abbildung 3.8 zeigt den kompletten Schaltplan. Die Platine wurde ATouch genannt. Auf der beiliegenden CD ist der komplette Quellcode für ATouch zu finden. Die USB-Daten werden Interrupt basiert an den Rechner gesendet. Die X- und Y-Koordinaten werden über die acht Analogeingänge des ATmega8 Mikrocontrollers ausgewertet und in einer Endlosschleife an den Host-Computer gesendet. Die Platine wurde ebenfalls selbst geätzt und einseitig ausgelegt. Der Formfaktor (30x60mm) entspricht dem eines größeren USB-Sticks. Abbildung 3.7 zeigt das Layout. Im Anhang A.3 ist eine fertige Ätzvorlage zu finden. ATouch benötigt keine Software auf dem Host-Computer. Die Schaltung wurde unter Linux und Mac OS X erfolgreich als Computermaus erkannt. Die Kalibrierung auf spezifische Parameter der jeweiligen Touchscreen-Folie, ist derzeit fest im ATouch Programmcode hinterlegt. In zukünftigen Versionen könnte eine solche Prozedur über den konfigurierbaren Taster in- Abbildung 3.7.: ATouch Layout: links USB-Ausgang, rechts Touchscreen-Eingang 25 3. R EALISIERUNG Abbildung 3.8.: ATouch Schaltplan 26 3. R EALISIERUNG itiiert werden. Die LED könnte dann als Anzeige des Kalibrierungs-Status dienen. Über die oben genannte ’libusb’ ist es auch möglich zusätzliche Konfigurationsdaten vom Computer zum ATouch Controller zu übertragen. 3.2. Software 3.2.1. Betriebssystem Um ein selbst gebautes, modulares x86-basiertes Hardwaresystem, wie das vorliegende, softwareseitig so gut wie möglich unterstützen zu können, ist ein frei verfügbares Betriebssystem mit offenen Quellen unerlässlich. Andernfalls würde man ständig auf Punkte stoßen, die Aufgrund mangelnder Softwareunterstützung oder Dokumentation nicht zu realisieren sind. Windows wurde daher ausgeschlossen. Übrig bleibt eigentlich nur eine UNIX-Variante. Da UNIX/Linux dem Autor am besten vertraut ist, wurde darauf aufgesetzt. Als Distribution stehen für die x86-Platform sehr viele verschiedene zur Auswahl. Für eingebettete Systeme eignen sich besonders die auf geringen Ressourcenverbrauch hin optimierten. Die Distributionen zeichnen sich in der Regel dadurch aus, dass nur eine sehr geringe Anzahl von Programmpaketen für den Minimalbetrieb nötig sind. Recherchiert wurden folgende: Damn Small Linux (DSL), Puppy Linux, Debian Live und SLAX (basierend auf Slackware Linux). 13 Diese Linux-Varianten werden auch als Linux-Live-CD Betriebssystem bezeichnet. Die ursprüngliche Idee dahinter ist, Linux so zu konfigurieren, dass vollständig von einer CD gebootet werden kann - ohne auf dem Host-Computer irgendetwas installieren zu müssen. Dazu muss das Bootmedium (eine CD, USB-Stick oder Festplatte) zunächst mit einem Bootlader ausgestattet werden. Üblicherweise wird unter Linux ’grub’ oder ’syslinux’ dafür eingesetzt. Dieser lädt nur den Kernel und ein kleines Initialsystem, welches dann die eigentliche Linux-Umgebung nachholt. Live-CDs zeigen sich besonders schnell und reaktiv in der Benutzung sobald sie komplett hochgefahren sind. Der Trick dabei ist, dass das komplette Dateisystem mit allen Programmen in den Arbeitsspeicher geladen wird - in eine so genannte Ramdisk. Dadurch dauert zwar der Bootvorgang etwas länger, was bei den genannten, unter 100MB großen Distributionen, allerdings kaum eine Rolle spielt. Erst recht dann nicht, wenn das System von einer USB 2.0 kompatiblen Schnittstelle und entsprechendem USB-Stick aus geladen wird. Es zeigte sich, dass der beschriebene Live-CD Ansatz sehr geeignet für den TouchscreenComputer ist. Es wurde die Puppy Linux Distribution gewählt, weil sie den pragmatischsten Ansatz verfolgt und die größte Nutzerbasis hat. Die Debian-Live Distribution ist zwar vom www.damnsmalllinux.org, www.puppylinux.com, debian-live.alioth.debian.org, www. slax.org 13 Links: 27 3. R EALISIERUNG Projekt her, die am meisten durchdachte, zeigte sich während eines Tests aber als sehr komplex und umfangreich in der Bedienung. Dafür bietet sie ähnlich automatisierte Arbeitsabläufe, wie sie in PPC- und ARM-Linux-Distributionen verbreitet sind.14 Das für den Touchscreen-Computer konfigurierte Puppy Linux Version 3.01 ist auf der CD beigefügt. 3.2.2. Browser als virtuelle Maschine Als Hauptanwendung auf dem System ist ein Browser vorgesehen. Diese Wahl ist durch den globalen Trend hin zu Web-Anwendung motiviert. Das geflügelte Wort ’Web 2.0’ wandert seit 2004 als das Schlagwort schlechthin durchs Internet. Aus technischer Sicht steht es eigentlich nur für eine einzige Änderung gegenüber dem „alten Web 1.0“: Unter der Bezeichnung XMLHttpRequest führte Microsoft eine Technologie ein, die es erlaubt asynchrone Verbindungen mit einem Webbrowser aufzubauen [10]. Vorher wurden HTTP-Verbindungen zur Darstellung von HTML stets synchron genutzt: Der Browser als Client stellt eine Anfrage aufgrund einer Benutzerinteraktion. Der Web-Server beantwortet diese umgehend und beendet die Verbindung. Mittels der XMLHttpRequest-Methode ist es aus javascript, Java oder Flash heraus möglich, eine Verbindung zum Server aufrechtzuerhalten - ohne Benutzerinteraktion. Die Anwendung dieser Technik beschleunigt Web-Anwendungen, weil viele Daten einfach im Voraus schon geladen werden können. Beispielsweise dann, wenn der Nutzer bereits übertragene Daten liest. Im Moment wird z.B. kein Webmail-Anbieter mehr erfolgreich sein, der diese Technik nicht umsetzt. Vor ein paar Jahren musste man auf das Laden eines Webmail-Posteingangs lange warten, jetzt übernimmt der Server den Part des Wartenden.15 Die überwiegende Anzahl von grafischen Benutzerschnittstellen (engl. Abkz. GUI) und Computer-Anwendungen befinden sich als „Hauptaufgabe“ tatsächlich zu 90% im Status idle, also wartend. Daher ist auch der Grund abzuleiten, warum Web-Applikationen immer beliebter werden.16 Die Benutzungsgeschwindigkeit ist mittlerweile annehmbar und die Tatsache, dass die Daten von überall aus erreichbar sind, ist sehr attraktiv. Der Touchscreen-Computer ist auf die selben, GUI-lastigen Anwendungsgebiete ausgerichtet. Eine Anlehnung an Web-Applikationen ist also ideal. Web-Applikationen sind für diese Arbeit aber noch aus einem zweiten Grund sehr geeignet: Sie sind plattformunabhängig. Beispielsweise sind auf dem vorgestellten System auch rein lokale Anwendungen ohne Internetanbindung denkbar. Ohne Browser müssten diese aber für das verwendete Linux kompiliert und geplant werden. Das setzt nicht nur viel Wissen voraus, son14 Die in Abschnitt 3.1.1 erwähnte ELDK Distribution oder die LTIB Distribution von Freescale ist mit DebianLive vergleichbar. 15 Die durchschnittlich gestiegene Verbindungsgeschwindigkeit spielt hier natürlich auch eine Rolle. 16 Google wird beispielsweise nachgesagt an einem eigenen Web-OS zu arbeiten: blog.topix.com/archives/000016.html 28 3. R EALISIERUNG dern ist auch mitunter unverhältnismäßig aufwändig. Dem modularen Anspruch dieser Arbeit käme es auch nicht nach, denn was ist, wenn das Betriebssystem irgendwann gegen ein anderes ersetzt werden soll? Die Anwendung müsste neu übersetzt werden. Im ungünstigsten Fall in eine andere Programmiersprache. Der Browser stellt für diesen Taschen-Computer letztlich eine virtuelle Maschine dar. Da es sich um ein x86-Linux-Sytsem handelt, wurde natürlich der dort erfolgreichste Browser - Firefox - gewählt. Der Programmcode in Form von HTML, CSS und Javascript wird zur Laufzeit interpretiert. Lokale HTML-Programme können von einem lokalen HTTP-Server aus auf dem Touchscreen-Computer laufen. Um eine Kommunikation mit zusätzlicher Systemhardware zu ermöglichen, ist ein Proxy als Hilfsprogramm denkbar. Damit ist der Punkt ’Schnittstelle für Erweiterungen’ aus dem ModulKonzept in Abbildung 2.2 angesprochen. Aus Zeitmangel konnte diese Eigenschaft leider nicht mehr umgesetzt werden. Deshalb sei hier exemplarisch folgendes Szenario mit Lösungsansatz vorgestellt: Ein Bluetooth-Modul ist mit der seriellen Schnittstelle verbunden. Die Namen aller Bluetooth-Geräte in der Umgebung sollen einer lokalen HTML-Applikation bekannt gemacht werden. Die Anwendung soll damit einen einfachen Überblick vermitteln, welche Geräte mit aktivierten Bluetooth in der Nähe sind. Dadurch kann letztlich auf die anwesenden Personen (z.B. repräsentiert durch die jeweiligen Mobiltelefone) geschlossen werden, was die Anwendung z.B. in Form verschiedener Icons via HTML auf der Startseite im Firefox anzeigt (vgl. Anwesenheitsliste eines instant messaging service) Der Datenaustausch könnte mit XMLRPC (engl. Abkz. für XML remote procedure call), realisiert werden. Auf dem Touchscreen-Computer läuft dafür eine einfache Proxy-Anwendung, die Daten zwischen der seriellen Schnittstelle und HTML-Anwendung im Browser austauscht. Der Proxy kann mittels der plattformübergreifenden C-Bibliothek ’xmlrpclib’ oder in einer Skriptsprache wie Ruby oder Python implementiert werden.17 Für XMLRPC wird ein Socket geöffnet und an einen TCP-Port gebunden. Die HTML-Anwendung greift dann über Javascript auf genau diesen lokalen Port zu. Diese Vorgehensweise ist möglich, weil XMLRPC dem oben genannten XMLHttpRequest sehr ähnlich ist. Eine Javascript-Bibliothek für XMLRPC Zugriffe ist z.B. jsXMLRPC.18 xmlrpc-c.sourceforge.net/, www.fantasy-coders.de/ruby/xmlrpc4r/, docs.python.org/ lib/module-xmlrpclib.html 18 www.kuriositaet.de/javascript/jsxmlrpc.html 17 Links: 29 3. R EALISIERUNG 3.3. Gesamtsystem Abbildung 3.9.: Touchscreen-Folie mit Notebook-Display Die folgenden Seiten illustrieren den realisierten Touchscreen-Computer mit Fotos. Abbildung 3.9 zeigt den kompletten Aufbau von vorne. Das verwendete Notebook-Dispaly wurde inklusive Gehäuseoberschale aus Aluminium erworben. Sie wurde als Basisgestell übernommen und stellt eine gute Kühlfläche für das ETX-Modul dar. Die Scharniere der Oberschale wurden nach hinten geklappt und mit einer 1,5mm Aluminiumplatte verbunden. Ohne diesen Fuß, kann der Aufbau alternativ wie ein Bild an die Wand gehängt werden. Für die Entwicklung war es allerdings praktischer das Gerät unter einem angenehmen Winkel, vom Tisch aus, bedienen zu können. Bei einem späteren Einsatz auf einer Kommode im Flur oder z.B. einem Kühlschrank, scheint diese Variante ebenfalls geeignet. Die seitlichen Ansichten sind in Abbildung 3.10 zu sehen. Das ETX-Modul befindet sich direkt zwischen der Basisplatine und der Innenseite des Aluminiumgestells. Eine M3 Gewindestange stützt die Oberkante ab, damit die Scharniere unter der Last des Touchscreens nicht von selbst einklappen. Abbildung 3.11 zeigt die selbst geätzten und verzinnten Platinen. Die Basisplatine ist auf dem Foto mit allen nötigen Anschlüssen, außer dem Backlight, verbunden: Links +5V bzw. +12V Spannungsversorgung und ATouch über ein kurzes USB-Kabel; unten ein kleiner 1GB USB-Stick von Sony; rechts ein Netzwerkkabel und die LVDS-Kabel. Es ist außerdem eine 3V Batterie zu sehen, die zu 30 3. R EALISIERUNG (a) Links (b) Rechts Abbildung 3.10.: seitliche Ansichten Testzwecken montiert wurde. Die meisten ETX-Module benötigen diese lediglich für die Systemzeit. Weil die Zeitinformation jederzeit aus dem Internet nach-synchronisiert werden kann, wurde die Batterie im endgültigen Schaltplan (Anhang A.1) weggelassen. Um einen Eindruck über die Handhabung der ETX-SMD-Steckverbinder zu gewinnen, zeigt Abbildung 3.12 einen Steckverbinder der Basisplatinen-Rückseite. Es sei hier nicht verschwiegen, dass die jeweils 100-Pins der Stecker bei dem gegebenen Pinabstand von 0.6mm, sehr mühsam anzulöten sind. Auch wenn viele Pins nicht elektrisch verbunden werden müssen, ist es sinnvoll etwa zwei Drittel aller SMD-Pads trotzdem zu verlöten, um eine mechanisch stabile Verbindung zwischen Steckverbinder und Platine zu gewährleisten. Ein zunächst befürchtetes Auftreten von Wackelkontakten, etwa durch mehrmaliges auf- und abstecken der ETX-Module ausgelöst, konnte so vermieden werden. Abbildung 3.13 zeigt schließlich den Firefox Browser im Vollbildmodus als Hauptanwendung auf dem Touchscreen-Computer. Als Startseite ist eine personalisierte Google-Seite eingerichtet. Sie zeigt neben Datum und Uhrzeit, eine Wettervorhersage, ein zufällig gewähltes Zitat des Tages und die Charts des Internetradios ’Last.fm’. Durch letzteres ist ein direktes Abspielen von Musik möglich, z.B. im Sinne eines digitalen Internet-Küchenradios. 31 3. R EALISIERUNG (a) ETX-Basisplatine (b) ATouch Touchscreen-Controller Abbildung 3.11.: ETX-Basisplatine und ATouch 32 3. R EALISIERUNG Abbildung 3.12.: ETX-Steckverbinder X1 der Basisplatine mit Größenvergleich Abbildung 3.13.: Touchscreen-Computer mit personalisierter Google-Startseite 33 4. Zusammenfassung Die vorliegende Arbeit belegt, dass ein Touchscreen-Computer auf der Basis eines ETX-Moduls und Linux mit privaten Mitteln realisiert werden kann. Von der Steuerplatine des Touchscreens bis zur eingesetzten Software ist ein modulares System entstanden, dessen einzelne Komponenten gegen Alternativen austauschbar sind, weil sie auf offenen Schnittstellen-Standards basieren. Die Anforderungen hinsichtlich Herstellungskosten (unter 300e) und Größe (12" Display mit einer flachen Computereinheit unter 3cm Höhe dahinter) konnten erfüllt werden. Mit der stetig zunehmenden Miniaturisierung von Computern und Verbreitung von Touchscreens wird der Preisvorteil gegenüber kommerziellen Touchscreen-Computern in Zukunft sicher Stück für Stück schwinden. Andererseits wird ein kommerzielles Produkt nie dieselbe Modularität und Experimentiermöglichkeiten bieten. Natürlich darf man dabei auch nicht außer Acht lassen, dass das vorgestellte System viel Handarbeit bedarf. So ist es letztlich nicht als Blaupause für eine konkret definierte Produktidee gedacht, sondern vielmehr als universelle Plattform mit vielen Freiheitsgraden. Die Ausrichtung auf Web-Anwendungen hat sich als sinnvoll herausgestellt. Die Ressourcen des Touchscreen-Computers sind für den Firefox Browser mehr als genug. Gleichzeitig ist das Ertsellen von Anwendungen in HTML dafür sehr einfach. Anwendungen, wie ein Küchenradio, das Internet-Stationen abspielt, oder das eingangs gezeigte digitale Nachrichtenbrett von Philips (Abbildung 1.1) sind problemlos realisierbar. Für die Zukunft sind einige Verbesserungen denkar. Im Verlauf der Arbeit hat sich herausgestellt, dass fast die Hälfte aller Schnittstellen auf der universell angelegten ETX-Basisplatine, speziell für den Touchscreen-Computer nicht nötig sind. Ausgehend von dem vorgestellten Schaltplan und Platinenlayout sind also noch kompaktere ETX-Basisplatinen realisierbar. Das Touchscreen-Modul könnte außerdem mit einer grafischen Kallibrierungs-Software ergänzt werden, um den Einsatz von unterschiedlichen Bildschirmen zu erleichtern. Zum Schluss bleibt noch festzuhalten, dass der eingangs beschriebene Wunsch, mehr Erfahrung mit Touchscreens zu sammeln, erfüllt werden konnte. Dabei ein komplettes ComputerSystem von Anfang bis Ende selbst durchzuplanen ist eine sehr intressante und kurzweilige Erfahrung gewesen. 34 Danksagung If I have seen further, it is by standing on the shoulders of giants – Isac Newton An dieser Stelle möchte ich allen Autoren und Verfechtern von open source und freier Software danken. Ohne UNIX/Linux, AVR-GCC und viele weitere Projekte, wäre diese Arbeit nicht möglich gewesen. Ich hoffe, dass die hier vorgestellte open hardware zum Fortbestand dieser Philosophie beiträgt. Oliver Keller, München im November 2007 35 Literaturverzeichnis [1] Markus Weiser (1991), The Computer for the 21st Century, Scientific American, Volume 265, Nr. 3 [2] John Maeda (2006), The laws of simplicity, MIT Press [3] Wikipedia, Embedded Systems Übersicht de.wikipedia.org/wiki/Embedded_Systems [4] Tom Dahlin (2000), Reach Out and Touch, Designing a Resistive Touchscreen Circuit Cellar Issue 114 [5] ETX Industrial Group, ETX-Spezifikationen, Design-Guides, App. Notes www.etx-ig.com [6] ETX-P3T Benutzerhandbuch, Teil der ETX-Referenzdokumentation emea.kontron.com/downloads/manual/M815M115.pdf [7] ETX Design Guide von Kontron emea.kontron.com/downloads/white_papers/ETXDesignGuide122.pdf [8] USB-HID Spezifikation und Hinweise www.usb.org/developers/hidpage/ [9] AVR-USB Bibliothek von Objective Development www.obdev.at/products/avrusb/index.html [10] Denny Carl (2006), Praxiswissen Ajax, O’Reilly Verlag 36 Abbildungsverzeichnis 1.1. Philips IN Touch, digitales Nachrichtenbrett, Quelle: www.philips.com . . . . . 8 2.1. Hardware- und Software-Konzept aufgeteilt in Module . . . . . . . . . . . . . 2.2. Aufbau einer analog-resistiven Touchscreen-Folie, Quelle: www.wikipedia.de . 11 12 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. 3.9. 3.10. 3.11. 3.12. 3.13. 16 18 19 20 21 22 25 26 30 31 32 33 33 TQM-5200 Modul mit Basisboard, Quelle: www.tqc.de . . . . . . . . 17x17x6cm mini-ITX Board D201GLY von Intel, Quelle: www.itc.ua ETX-Modul ETX-P3T von Kontron, Quelle: [6] . . . . . . . . . . . . ETX-Baseboard Oberseite, mit ETX-Modulumriss in Grau . . . . . . ETX Baseboard Unterseite, Komponentenumrisse in Grau . . . . . . LVDS Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ATouch Layout: links USB-Ausgang, rechts Touchscreen-Eingang . . ATouch Schaltplan . . . . . . . . . . . . . . . . . . . . . . . . . . . Touchscreen-Folie mit Notebook-Display . . . . . . . . . . . . . . . seitliche Ansichten . . . . . . . . . . . . . . . . . . . . . . . . . . . ETX-Basisplatine und ATouch . . . . . . . . . . . . . . . . . . . . . ETX-Steckverbinder X1 der Basisplatine mit Größenvergleich . . . . Touchscreen-Computer mit personalisierter Google-Startseite . . . . . 37 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. Anhang A.1. Schaltplan ETX-Basisplatine A.2. Ätzvorlage ETX-Basisplatine A.3. Ätzvorlage ATouch A.4. Erklärung zur Urheberschaft 38 Name: ________________________ geb. _________________________ Matr.Nr._______________________ Studiengruppe:__________________ Erklärung gemäß § 13 Abs. 5 RaPO Hiermit erkläre ich, dass ich die Diplomarbeit selbstständig verfasst, noch nicht anderweitig für Prüfungszwecke vorgelegt, keine anderen als die angegebenen Quellen oder Hilfsmittel benützt, sowie wörtliche und sinngemäße Zitate als solche gekennzeichnet habe. ______________________ Ort, Datum _________________________ Unterschrift