Betrachten wir zunächst den Ursprung dieser Aspekte. Nehmen wir beispielsweise die kapazitive Berührungserkennung. Als berührungsempfindliche Tasten eingeführt wurden, erkannten Entwickler schnell, dass die Implementierung nicht so einfach war wie bei herkömmlichen Drucktasten. Berührungstasten müssen wie analoge Sensoren behandelt werden. Abgestrahltes Rauschen, also Störungen durch Umgebungsquellen wie Haushaltsgeräte, Energiesparlampen, Netzteile, Mobiltelefone und Motoren, erfordert ein sorgfältiges Management. Um robuste und funktionale Tasten zu realisieren, müssen Softwaretechniken wie Konturerkennung, Filterung, Entprellfilter und Anstiegsgeschwindigkeitssteuerung sowie eine effiziente Signalverarbeitung eingesetzt werden. Aktuell muss in diesem Mensch-Maschine-System die Notwendigkeit berücksichtigt werden, ein segmentiertes oder grafisches LCD bei Benutzereingaben neu zu generieren. Die Darstellung grafischer Strukturen wie geometrischer Formen oder Text auf einem TFT- oder OLED-Display erforderte bisher die Bandbreite eines Prozessors. Wichtig ist auch die Berücksichtigung von Mensch-Maschine-Schnittstellen, die neben dem Grafikdisplay und den Touch-Tasten auch Touchscreen-Eingaben beinhalten, wie beispielsweise beim Thermostat in Abbildung 1. Schließlich wird in der Regel auch eine Kommunikationsschnittstelle wie USB benötigt.
Die Herausforderung besteht daher darin, die Echtzeitverarbeitung von Benutzereingaben über Touch-Tasten, einen Touchscreen-Sensor und USB-Datenkommunikation sowie die Aktualisierung der Anzeige zu ermöglichen. Die Lösung lässt sich hinsichtlich der zugrunde liegenden Hardware und Software in zwei grundlegende Kategorien einteilen.
Hardware-Implementierung:
Einige Mikrocontroller vereinen einen LCD-Controller und Touch-Sensoren auf einem einzigen Chip. Der LCD-Controller steuert jedoch typischerweise ein segmentiertes Display anstelle eines Grafik-LCDs.
Die neueste Generation von Mikrocontrollern, wie der in Abbildung 2 dargestellte PIC24FJ256DA210, hebt die Integration auf ein neues Niveau, indem sie einen Grafik-Display-Controller, ein USB 2.0 On-The-Go-Gerät und ein spezielles analoges Gerät für die Touch-Erkennung vereint. Zur Unterstützung von Grafikdisplays verfügt der PIC24FJ256DA210 über eine Farbtabelle, 96 KB RAM, eine Grafikprozessoreinheit (GPU) und eine direkte Schnittstelle zu STN-, TFT- und OLED-Displays. Der große Onboard-RAM ermöglicht die Speicherung von 256-Farben-Grafikdaten mit 8 Bit pro Pixel und somit die Darstellung eines 320x240 QVGA-Displays innerhalb des integrierten RAMs des Chips. Die in der Farbtabelle verwendeten Farbpaletten können mit einem einzigen Befehl so umgeschaltet werden, dass verschiedene Rechtecksätze, ASCII-Text und PNG-Bilddekomprimierung für die Reproduktion verwendet werden. Dadurch wird die CPU-Auslastung auf 0 % reduziert.
Abbildung 2 zeigt außerdem die analoge Peripherieeinheit Charge Time Measurement Unit (CTMU). Kapazitive Berührungserkennung ist eine der vielen Anwendungsmöglichkeiten der CTMU. Die CTMU stellt eine Konstantstromquelle mit Timer bereit, die zum Laden eines Sensorpanels verwendet werden kann. Die Spannung des Panels kann mithilfe des Analog-Digital-Wandlers (ADC) gemessen werden. Legt der Benutzer einen Finger auf das Panel, wird die Kapazitätsänderung vom ADC als Spannungsänderung erfasst. In der einfachsten Implementierung kann jeder ADC-Kanal mit einem Touch-Tasteneingang verbunden werden. Mit 24 ADC-Kanälen bietet der PIC24FJ256DA210 ausreichend kapazitive Berührungskanäle für die meisten Anwendungen.
Eine weitere Hardware-Überlegung ist erforderlich. Verfügt die Anwendung über einen resistiven Touchscreen und Touch-Tasten, wird das grafische LCD durch den resistiven Touchscreen-Sensor für den schnellen Menüzugriff überlastet. Ist der Touchscreen-Controller in den Hauptmikrocontroller integriert, können die Ausgänge des Touchscreen-Sensors (typischerweise 4 oder 5 Leitungen) mit den analogen Kanälen des Mikrocontrollers verbunden werden. In diesem Fall teilen sich die A/D-Wandlerressourcen des Mikrocontrollers die Touch-Tasten- und Touchscreen-Funktionen. Die Messwerte des A/D-Wandlers werden verwendet, um die auf dem Touchscreen erfassten XY-Koordinaten zu schätzen.
Software-Implementierung:
Die Firmware für die Grafiktreiber und die kapazitive Touch-Sensorik wird üblicherweise als separate Bibliothek bereitgestellt. Für die effektive Integration dieser Bibliotheken ist eine Hauptroutine erforderlich, die im Wesentlichen als Echtzeitbetriebssystem (RTOS) fungiert und die Prioritäten und die Ausführungsfrequenz für jede Aufgabe festlegt. Bei Aufgaben, die gemeinsame Hardware-Ressourcen nutzen, muss die Hauptroutine zudem einen Mechanismus zur nicht-destruktiven Aktualisierung der Steuerungs- und Datenlogger für die gemeinsam genutzte Ressource vor dem Aufgabenwechsel implementieren. Im vorherigen Beispiel speisen sowohl die Touchscreen-Sensoren als auch die Touch-Tasten den A/D-Wandler. Die Abtastrate des A/D-Wandlers, die abzutastenden Kanäle und die Anzahl der benötigten Abtastwerte variieren je nach Touchscreen-Sensor und Tasten. Daher muss die Hauptroutine diese Parameter vor dem Aufgabenwechsel speichern.
Da der Benutzer jederzeit Eingaben sowohl über den Touchscreen als auch über die Touch-Tasten vornehmen kann, muss die Hauptroutine möglicherweise eine Zeitaufteilung festlegen, um ein ausreichend häufiges Scannen beider Sensoren zu gewährleisten. Die Anzeige muss unter Umständen regelmäßig aktualisiert werden, beispielsweise wenn die Anwendung animierte Grafiken auf dem Bildschirm darstellt.
Wird die Anzeige nur bei Menüauswahlen des Benutzers aktualisiert, entstehen keine Konflikte um CPU-Ressourcen zwischen Touch-Erkennung und Anzeigesteuerung. Das Beispielgerät (PIC24FJ256DA210) verfügt über dedizierte Hardware zur Grafikbeschleunigung, sodass eine Zeitaufteilung zwischen Touch- und Grafikfunktionen kein Problem mehr darstellt. Auf diesem Gerät benötigt das Rendern eines Rahmens, einer Linie oder eines ASCII-Textes nur einen einzigen CPU-Befehl. Ein Demonstrationsprojekt, das die Integration von Touch-Tasten, Touchscreen-Sensor und Grafikanzeige mithilfe der zugrunde liegenden Softwarebibliotheken veranschaulicht, ist verfügbar. Es kann kostenlos zusammen mit der mTouch™ Capacitive-Touch-Bibliothek heruntergeladen und auf dem in Abbildung 3 dargestellten PIC24FJ256DA210-Entwicklungsboard ausgeführt werden.
Neben der Berührungserkennung lassen sich weitere Funktionen auf einem einzigen Chip integrieren. Beispielsweise kann das CTMU-Peripheriegerät in medizinischen Geräten zur Temperaturmessung, zur Zeiterfassung und für andere Anwendungen eingesetzt werden. In einem Thermostat kann das CTMU-Peripheriegerät mithilfe einer externen Diode sowohl zur Temperaturmessung als auch zur Berührungserkennung genutzt werden. Da die Temperaturmessung nur selten erforderlich ist, kann dieses Peripheriegerät für beide Funktionen verwendet werden.
USB-Kommunikation
Die Integration von USB und Touch-Erkennung ist relativ einfach, wenn einige wenige Regeln beachtet werden. Sobald die Anwendung eine Verbindung zu einem USB-Host herstellt, durchläuft sie eine Enumerationsphase, in der ein Großteil der CPU-Bandbreite für die USB-Funktion reserviert ist. Die Touch-Erkennungsfunktionen sollten innerhalb weniger Minuten nach Abschluss der Enumerationsphase zurückgesetzt werden. Nach Abschluss der Enumeration beanspruchen die USB-Funktionen nur noch sehr wenig CPU-Bandbreite, typischerweise weniger als 2 %. Ab diesem Zeitpunkt kann die Hauptroutine die USB-Empfangsfunktion periodisch, etwa alle Millisekunden, bedienen oder auf ein interruptgesteuertes Verfahren umstellen.
Viele Anwendungen mit Touch-Oberflächen integrieren mittlerweile haptisches Feedback. Die Integration von Haptik in eine Anwendung ist jedoch mehr als nur eine mechanische Herausforderung. Typischerweise benötigt man für haptisches Feedback ein einfaches PWM-Peripheriegerät (Pulsweitenmodulation) zur Ansteuerung eines kleinen Vibrators oder Motors. In manchen Anwendungen wird dieses integrierte PWM-Peripheriegerät wahrscheinlich auch zur Ansteuerung eines Lautsprechers verwendet. In solchen Fällen kann eine effektive Integration separate Zeitbasen für den PWM-Kanal zur Ansteuerung des Haptikmotors und den Kanal zur Ansteuerung des Lautsprechers erfordern.
Fazit:
Die Integration von Grafikdisplay und Touch-Funktion auf einem einzigen Chip senkt zwar die Systemkosten, die Softwarekomplexität kann jedoch die Markteinführungszeit erheblich verlängern. Die Implementierung wird vereinfacht, wenn eine Mikrocontroller-Plattform gewählt wird, die Grafikbibliotheken, USB und Touch-Software unterstützt, die für Interoperabilität und robuste Integration entwickelt und getestet wurden.
Autor: Rishi Vasuki, Direktor Produktmarketing,
Abteilung für fortgeschrittene Mikrocontroller-Architektur, Microchip Technology.

