Dies ist eine alte Version des Dokuments!


Real-Time Android

Überblick

Android ist eine moderne Plattform für eingebettete Systeme. Unterstützung für Multitasking und Bedienerfreundlichkeit machen dieses Betriebssystem sowohl für Benutzer als auch für Entwickler attraktiv. Heutzutage wird der Einsatz von Android auch im industriellen Umfeld zur Zwecken von Automatisierung, Überwachung und Steuerung von Prozessen evaluiert.

Dies motiviert die Analyse der Tauglichkeit von Android für echtzeitkritische Applikationen in zeit- und sicherheitskritischen Domänen. Das Ziel dieses Projektes besteht in der Entwicklung einer neuen Android Version. Diese soll zum einen echtzeitkritische Applikationen unterstützen und zum anderen abwärtskompatibel zu existierender Software sowie Drittanbieter-Komponenten sein. Weiterhin werden die Mobilität eines Tablet PCs und dessen umfangreiche Kommunikationsschnittstellen mit einer zuverlässigen und echtzeitfähigen kabellosen Kommunikation kombiniert.

Die RTAndroid Plattform, welche Applikationen mit Echtzeit-Anforderungen unterstützt, erweitert das Anwendungsfeld von mobilen Geräten auf zeitkritische Domänen. Dadurch wird es ermöglicht, industrielle Anlagen vor Ort zu überwachen und zu automatisieren. Dieses Projekt evaluiert die Anwendbarkeit von RTAndroid in typischen Szenarios für Speicherprogrammierbare Steuerungen (SPSen). Kontinuierliche Weiter¬entwicklungen hinsichtlich Portabilität, Bedienerfreundlichkeit und Rechenleistung von modernen Tablet PCs ermöglichen Implementierung einer neuen, integrierten Entwicklungsumgebung für SPS-Programmiersprachen. Basierend auf der grundlegenden Echtzeitunterstützung kann RTAndroid als eine All-in-one Plattform für die Entwicklung, Simulation und Ausführung von SPS Programmen einschließlich der Kommunikation mit externer Hardware verwendet werden.

RTAndroid

Mit RTAndroid wird erstmals der Einsatz von mobilen Geräten in echtzeitkritischen Anwendungen möglich. Es handelt sich dabei um ein Derivat des Android-Betriebssystems, welches am Lehrstuhl Informatik 11 der RWTH Aachen entwickelt wird. Es bietet Unterstützung für Applikationen mit Echtzeitanforderungen auf handelsüblichen Tablets und Smartphones. Die entstehende RTAndroid Plattform ist vollständig kompatibel zu bereits existierender Android-Software sowie zu zahlreichen Drittanbieter-Komponenten.

Grundlage von RTAndroid stellt ein mit RT_PREEMPT modifizierter, echtzeitfähiger Linux Kernel dar. Dieser führt eine vollständige Kernel-Unterbrechbarkeit ein und ermöglicht damit eine deterministische, prioritätsbasierte Prozessverwaltung nach Echtzeit-Zuteilungsstrategien SCHED_FIFO und SCHED_RR. Damit wird es auch unter Android möglich, von Echtzeitprioritäten zwischen 1 und 99 innerhalb von eigenen Anwendungen zu profitieren. Da laufende Android Applikationen immer in einem oder mehreren Linux Prozessen gekapselt werden, kann die Prioritätsanpassung auf der Linux-Ebene nur für die nötigen Applikationskomponenten (z.B. einen separaten Hintergrundservice) erfolgen.

Die von Google speziell für Android entwickelte Dalvik Virtual Machine (DVM) bringt für die Anwendungen nicht nur eine isolierte Laufzeitumgebung, sondern auch einen Garbage Collector (GC) für die automatische Speicherverwaltung mit. Der GC stellte bisher jedoch ein unkalkulierbares Risiko für Echtzeitprozesse dar, weil bei seiner Aktivierung alle laufenden Threads der aktuellen Applikation angehalten werden mussten. Die in RTAndroid eingesetzte DVM wurde mit einer nicht-blockierenden, echtzeitfähigen Speicherverwaltung erweitert. Dadurch müssen Prozesse mit dynamischem Speicherverbrauch keine unvorhergesehene Unterbrechung befürchten.

In der Originaldistribution von Android wird der Lebenszyklus einer Applikationskomponente typischerweise von ihrer Sichtbarkeit bzw. Interaktionsmöglichkeiten mit dem Benutzer beeinflusst. Sobald eine App vollständig in den Hintergrund gerät, verliert sie aus der Sicht des Systems an Wichtigkeit für den Benutzer und kann pausiert oder gar terminiert werden. In RTAndroid hingegen, können laufende Echtzeitapplikationen unabhängig von ihrer Sichtbarkeit grundsätzlich nicht vom System negativ beeinflusst werden. Während Hintergrundprozesse in Android auch zugunsten der längeren Akkulaufzeit unterbrochen werden können, agiert RTAndroid als eine zuverlässige Ausführungsplattform für Langzeitoperationen. Ein vorhersagbares Laufzeitverhalten wird selbst bei ausgeschaltetem Bildschirm garantiert, während in einem gewöhnlichen Android dabei der Ruhemodus aktiviert wird und die einzelnen Prozessoren herunterfahren oder –getaktet werden.

Das Zusammenspiel der hier beschriebenen Techniken ermöglicht vorhersagbare Reaktionszeiten und reduziert auftretende Latenzen – d.h. Differenzen zwischen dem geplanten und dem tatsächlichen Ausführungszeitpunkt – von mehreren Sekunden auf unter eine Millisekunde. Obwohl die Anpassungen am Android-Betriebssystem vielfältig und komplex sind, ist die Nutzung dieser Funktionen von einer Anwendung aus denkbar einfach. Das Applikationsframework sowie das mitgelieferte SDK wurden um neue Schnittstellen für die eingeführten Funktionalitäten erweitert, um die Entwicklung von Echtzeitanwendungen weitestgehend an die von gewöhnlichen Applikationen anzulehnen. Zum Beispiel können Echtzeiteigenschaften für einzelne Applikationskomponenten selektiv über die Manifest-Datei gesetzt werden. Diese Datei ist ein Hauptbestandteil von jeder für Android entwickelten Anwendung und enthält alle für das System relevanten Informationen wie Applikationsnamen, Versionsnummer und möglicherweise benötigte Berechtigungen.

Dank RTAndroid wird ermöglicht die Anwendung von RT_PREEMPT auch für mobile Geräte. Dank der modularen Architektur können entstehende Systeme auf Basis von RTAndroid flexibel konfiguriert und an die konkreten Anforderungen angepasst werden.

Twistturn

Dass ein Tablet für mehr als nur die Darstellung von Parametern und anderen HMI-Aufgaben geeignet ist, zeigt die Anwendung Twistturn. Für RTAndroid entwickelt, wird mit ihr ein neuer Ansatz verfolgt: Steuerungsprogramme können auf dem Tablet sowohl entwickelt als auch in Echtzeit ausgeführt werden. Die Nutzung mobiler Geräte ist derzeit eine gefragte Neuerung bei der Applikations-Entwicklung. Stärken zeigen sich schon jetzt bei visuellen Programmiersprachen oder kleineren Modifikationen am Code. Für codeintensive Arbeiten eignen sich diese Geräte aufgrund der fehlenden Hardware-Tastatur aktuell noch weniger. Gegenstand aktueller Forschung ist es deshalb, die Eingabe durch intelligente Benutzeroberflächen kontextsensitiv zu unterstützen.


Twistturn überträgt diesen neuen Ansatz der Entwicklung auf mobilen Geräten in die Automatisierungstechnik und stellt eine mobile Entwicklungsumgebung für SPS-Programme zur Verfügung. Neben der Codeeingabe bietet es Komfortfunktionen zur POE-Verwaltung und Hardwarekonfiguration. Das Bedienkonzept ist auf Touch-Bedienung und den begrenzten Platz auf einem Tablet ausgelegt. Selbstverständlich sind auch Features wie Syntaxhighlighting zur leichten Orientierung im Quellcode und die komfortable Projektverwaltung zum Arbeiten mit mehreren Dateien. Aktuell werden die Entwicklung von SPS-Programmen in Structured Text und Function Block Diagram nach IEC 61131-3 unterstützt.

Die geschriebenen Programme können auf dem Tablet direkt ausgeführt werden. Dafür wird der Steuerungscode auf dem Gerät kompiliert und in einem Echtzeit-Prozess von RTAndroid ausgeführt. Dieser Echtzeit-Prozess erhält seine Daten über einen mit dem Tablet verbundenen Hardware-Adapter und gibt berechnete Ausgangswerte dorthin zurück. Die Nutzung der großen Tablet-Bildschirme als HMI ist alternativ oder zusätzlich möglich. Ausgangsvariablen können einfach als Graph dargestellt werden. Für Eingangsvariablen stehen Eingabemöglichkeiten bereit, um Parameter während des Betriebs über den Touchscreen zu modifizieren. So kann mithilfe von Twistturn auf zusätzliche Bedientableaus verzichtet werden. Die Evaluation des Systems mit einfachen Steuerungsprogrammen ergab Zykluszeiten von wenigen hundert Mikrosekunden. Vergleiche mit konventionellen SPSen zeigen bis zu 40-mal kürzere Zykluszeiten mit denselben Programmen. Diese Ergebnisse überraschen aufgrund der schnellen CPU des Testsystems (Google Nexus 10) wenig. Gezeigt ist damit die Eignung eines mit RTAndroid ausgestatteten Tablets für Steuerungsaufgaben.

Gerade für Prototypen und den Einsatz in der Lehre ist Twistturn bereits jetzt sehr attraktiv. Der Steuerungscode kann auf der Ausführungsplattform angepasst und zur weiteren Ausführung direkt übernommen werden. Dies ermöglicht einen kürzeren und einfacheren Entwicklungszyklus. Vor allem bei den visuellen Programmiersprachen sind zukünftig noch Vorteile zu erwarten. Die von der IEC spezifizierten, grafischen Sprachen bieten sich für die Programmierung mit Touch-Bedienung geradezu an. Besonders den unerfahrenen Entwicklern fällt die Nutzung dieser Eingabe leichter als die am stationären PC mit Maus und Tastatur. Neu ist mit dieser Art der Ausführung die Mobilität. Die Steuerung ist nicht mehr notwendigerweise fest mit der Anlage verbunden und kann bei nichtgebrauch schnell von der Anlage entfernt werden. Bei einer drahtlosen Verbindung zur Anlage ist in bestimmten Grenzen auch die Mobilität während des Betriebs möglich. Neue Einsatzgebiete über die der konventionellen SPSen hinaus sind damit denkbar.

Evaluation

Ansprechpartner

Veröffentlichungen


Publikations-Export
[Kal17]
Kalkov, I., "A real-time capable, open-source-based platform for off-the-shelf embedded devices", PhD Thesis, Aachen, 2017.

A real-time capable, open-source-based platform for off-the-shelf embedded devices

Bibtex entry :

@phdthesis {  Kal17,
	author = { Kalkov, Igor },
	othercontributors = { Kowalewski, Stefan and A{\ss}mann, Uwe },
	title = { A real-time capable, open-source-based platform for
		off-the-shelf embedded devices },
	publisher = { RWTH Aachen University, Department of Computer Science },
	school = { RWTH Aachen University },
	pages = { 1 Online-Ressource (xx, 114 Seiten) : Illustrationen,
		Diagramme },
	series = { Aachener Informatik-Berichte },
	year = { 2017 },
	address = { Aachen },
	doi = { 10.18154/RWTH-2018-222005 },
	typ = { PUB:(DE-HGF)3 },
	reportid = { RWTH-2018-222005 },
	cin = { 122810 / 120000 },
	url = { http://publications.rwth-aachen.de/record/719343/files/719343.pdf },
}
[KGK17]
Kalkov, I., Gurghian, A., and Kowalewski, S., "Explicit prioritization of parallel Intent broadcasts in real-time Android", in Proc. Concurrency and computation, Chichester, 2017, vol. 29, Wiley.

Explicit prioritization of parallel Intent broadcasts in real-time Android

Bibtex entry :

@inproceedings {  KGK17,
	author = { Kalkov, Igor and Gurghian, Alexandru and Kowalewski, Stefan },
	title = { Explicit prioritization of parallel Intent broadcasts in
		real-time Android },
	booktitle = { Concurrency and computation },
	publisher = { Wiley },
	volume = { 29 },
	number = { 22 },
	year = { 2017 },
	address = { Chichester },
	issn = { 1532-0626 },
	organization = { 12. International workshop on Java Technologies for
		Real-Time and Embedded systems, Niagara Falls, NY (USA),
		2014-10-13 - 2014-10-14 },
	doi = { 10.1002/cpe.4122 },
	typ = { PUB:(DE-HGF)16 },
	reportid = { RWTH-2017-09553 },
	cin = { 122810 / 120000 },
	url = { http://publications.rwth-aachen.de/record/707959 },
}
[KGK15]
Kalkov, I., Gurghian, A., and Kowalewski, S., "Priority Inheritance during Remote Procedure Calls in Real-Time Android using Extended Binder Framework", in Proc. Proceedings of the 13th International Workshop on Java Technologies for Real-time and Embedded Systems, New York, NY, 2015 in ACM Other conferences, ACM, p. 5.

Priority Inheritance during Remote Procedure Calls in Real-Time Android using Extended Binder Framework

Bibtex entry :

@inproceedings {  KGK15,
	author = { Kalkov, Igor and Gurghian, Alexandru and Kowalewski, Stefan },
	title = { Priority Inheritance during Remote Procedure Calls in
		Real-Time Android using Extended Binder Framework },
	booktitle = { Proceedings of the 13th International Workshop on Java
		Technologies for Real-time and Embedded Systems },
	publisher = { ACM },
	pages = { 5, 10 Seiten },
	series = { ACM Other conferences },
	year = { 2015 },
	address = { New York, NY },
	organization = { 13. International Workshop on Java Technologies for
		Real-time and Embedded Systems, Paris (France), 2015-10-07 -
		2015-10-08 },
	doi = { 10.1145/2822304.2822311 },
	typ = { PUB:(DE-HGF)7 },
	reportid = { RWTH-2016-03747 },
	cin = { 122810 / 120000 },
	url = { http://publications.rwth-aachen.de/record/573802 },
}
[KKO+15]
Kowalewski, S., Kalkov, I., Obster, M., and Thönnessen, D., "Echtzeiterweiterung für Android: SPS inside", IEE - Elektrische Automatisierung + Antriebstechnik, pp. 58-61, 2015

Echtzeiterweiterung für Android: SPS inside

Bibtex entry :

@article {  KKO+15,
	author = { Kowalewski, Stefan and Kalkov, Igor and Obster, Mathias and
		Th{\"o}nnessen, David },
	title = { Echtzeiterweiterung f{\"u}r Android: SPS inside },
	journal = { IEE - Elektrische Automatisierung + Antriebstechnik },
	publisher = { IEE },
	pages = { 58-61 },
	year = { 2015 },
	issn = { 1434-2898 },
	typ = { PUB:(DE-HGF)16 },
	reportid = { RWTH-CONV-236305 },
	cin = { 122810 / 120000 },
	url = { http://publications.rwth-aachen.de/record/752275 },
}
[AFK+14]
Armoush, A., Franke, D., Kalkov, I., and Kowalewski, S., "An Approach for Using Mobile Devices In Industrial Safety-Critical Embedded Systems", in Proc. Mobile Computing, Applications, and Services : 5th International Conference, MobiCase 2013, Paris, France, November 7-8, 2013, Revised Selected Papers, Cham, 2014 in Lecture Notes of the Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering, Springer, pp. 294-297.

An Approach for Using Mobile Devices In Industrial Safety-Critical Embedded Systems

Bibtex entry :

@inproceedings {  AFK+14,
	author = { Armoush, Ashraf and Franke, Dominik and Kalkov, Igor and
		Kowalewski, Stefan },
	title = { An Approach for Using Mobile Devices In Industrial
		Safety-Critical Embedded Systems },
	booktitle = { Mobile Computing, Applications, and Services : 5th
		International Conference, MobiCase 2013, Paris, France,
		November 7-8, 2013, Revised Selected Papers },
	publisher = { Springer },
	pages = { 294-297 },
	series = { Lecture Notes of the Institute for Computer Sciences,
		Social-Informatics and Telecommunications Engineering },
	year = { 2014 },
	address = { Cham },
	organization = { Mobile Computing, Applications, and Services : 5.
		International Conference, Paris (France), 2013-11-07 -
		2013-11-08 },
	doi = { 10.1007/978-3-319-05452-0_27 },
	typ = { PUB:(DE-HGF)8 },
	reportid = { RWTH-CONV-203202 },
	cin = { 120000 / 122810 },
	url = { http://publications.rwth-aachen.de/record/225590 },
}
[KGK14]
Kalkov, I., Gurghian, A., and Kowalewski, S., "Predictable Broadcasting of Parallel Intents in Real-Time Android", in Proc. Proceedings of the 12th International Workshop on Java Technologies for Real-time and Embedded Systems : JTRES 2014 : Niagara Falls, NY, USA, October 13th-14th, 2014, New York, New York, 2014 in ACM international conference proceedings series, ACM, pp. 57-66.

Predictable Broadcasting of Parallel Intents in Real-Time Android

Bibtex entry :

@inproceedings {  KGK14,
	author = { Kalkov, Igor and Gurghian, Alexandru and Kowalewski, Stefan },
	title = { Predictable Broadcasting of Parallel Intents in Real-Time
		Android },
	booktitle = { Proceedings of the 12th International Workshop on Java
		Technologies for Real-time and Embedded Systems : JTRES 2014
		: Niagara Falls, NY, USA, October 13th-14th, 2014 },
	publisher = { ACM },
	pages = { 57-66 },
	series = { ACM international conference proceedings series },
	year = { 2014 },
	address = { New York, New York },
	organization = { 12. International Workshop on Java Technologies for
		Real-time and Embedded Systems, Niagara Falls, NY (USA),
		2014-10-13 - 2014-10-14 },
	typ = { PUB:(DE-HGF)8 },
	reportid = { RWTH-CONV-205503 },
	cin = { 120000 / 122810 },
	url = { http://publications.embedded.rwth-aachen.de/file/5g },
}
[OKK14]
Obster, M., Kalkov, I., and Kowalewski, S., "Development and Execution of PLC Programs on Real-Time Capable Mobile Devices", in Proc. 2014 IEEE [International Conference on] Emerging Technologies and Factory Automation (ETFA 2014) : Barcelona, Spain, 16 - 19 September 2014 / [co-sponsored by Universitat Politècnica de Catalunya - Barcelona Tech (UPC); IEEE Industrial Electronics Society], Piscataway, NJ, 2014, IEEE, p. 8.

Development and Execution of PLC Programs on Real-Time Capable Mobile Devices

Bibtex entry :

@inproceedings {  OKK14,
	author = { Obster, Mathias and Kalkov, Igor and Kowalewski, Stefan },
	title = { Development and Execution of PLC Programs on Real-Time
		Capable Mobile Devices },
	booktitle = { 2014 IEEE [International Conference on] Emerging
		Technologies and Factory Automation (ETFA 2014) : Barcelona,
		Spain, 16 - 19 September 2014 / [co-sponsored by Universitat
		Politècnica de Catalunya - Barcelona Tech (UPC); IEEE
		Industrial Electronics Society] },
	publisher = { IEEE },
	pages = { 8 Seiten },
	year = { 2014 },
	address = { Piscataway, NJ },
	organization = { 2014 IEEE [International Conference on] Emerging
		Technologies and Factory Automation, Barcelona (Spain),
		2014-09-16 - 2014-09-19 },
	doi = { 10.1109/ETFA.2014.7005218 },
	typ = { PUB:(DE-HGF)7 },
	reportid = { RWTH-CONV-206433 },
	cin = { 120000 / 122810 },
	url = { http://publications.rwth-aachen.de/record/444615 },
}
[GKS+13]
Gerlitz, T., Kalkov, I., Schommer, J. F., Franke, D., and Kowalewski, S., "Non-Blocking Garbage Collection for Real-Time Android", in Proc. 11th International Workshop on Java Technologies for Real-time and Embedded Systems : JTRES 2013 ; 9-10 October 2013, Karlsruhe, Germany, New York, NY, 2013 in ACM Digital Library, ACM, pp. 108-117.

Non-Blocking Garbage Collection for Real-Time Android

Bibtex entry :

@inproceedings {  GKS+13,
	author = { Gerlitz, Thomas and Kalkov, Igor and Schommer, John F. and
		Franke, Dominik and Kowalewski, Stefan },
	title = { Non-Blocking Garbage Collection for Real-Time Android },
	booktitle = { 11th International Workshop on Java Technologies for
		Real-time and Embedded Systems : JTRES 2013 ; 9-10 October
		2013, Karlsruhe, Germany },
	publisher = { ACM },
	pages = { 108-117 },
	series = { ACM Digital Library },
	year = { 2013 },
	address = { New York, NY },
	organization = { Java-Technologien f{\"u}r Echtzeit- und eingebettete
		Systeme, Karlsruhe (Germany), 2013-10-09 - 2013-10-10 },
	doi = { 10.1145/2512989.2512999 },
	typ = { PUB:(DE-HGF)8 },
	reportid = { RWTH-CONV-202515 },
	cin = { 120000 / 122810 },
	url = { http://publications.rwth-aachen.de/record/224782 },
}
[KFS+12]
Kalkov, I., Franke, D., Schommer, J. F., and Kowalewski, S., "A Real-time Extension to the Android Platform", in Proc. JTRES 2012 : proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems, October 24-26, 2012, Copenhagen, Denmark / Andy Wellings ..., New York, N.Y., 2012 in ACM conference proceedings series, ACM Press, pp. 105-114.

A Real-time Extension to the Android Platform

Bibtex entry :

@inproceedings {  KFS+12,
	author = { Kalkov, Igor and Franke, Dominik and Schommer, John F. and
		Kowalewski, Stefan },
	title = { A Real-time Extension to the Android Platform },
	booktitle = { JTRES 2012 : proceedings of the 10th International Workshop
		on Java Technologies for Real-time and Embedded Systems,
		October 24-26, 2012, Copenhagen, Denmark / Andy Wellings ... },
	publisher = { ACM Press },
	pages = { 105-114 },
	series = { ACM conference proceedings series },
	year = { 2012 },
	address = { New York, N.Y. },
	organization = { 10. International Workshop on Java Technologies for
		Real-time and Embedded Systems, Copenhagen (Denmark),
		2012-10-24 - 2012-10-26 },
	doi = { 10.1145/2388936.2388955 },
	typ = { PUB:(DE-HGF)8 },
	reportid = { RWTH-CONV-199219 },
	cin = { 120000 / 122810 },
	url = { http://publications.rwth-aachen.de/record/129215 },
}
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Wenn Sie nicht einverstanden sind, verlassen Sie bitte die Website.Weitere Information

RWTH Aachen - Lehrstuhl Informatik 11 - Ahornstr. 55 - 52074 Aachen - Deutschland