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