auf kleinen linux-devices gerrit telkamp domologic home automation gmbh 38106 braunschweig germany

30
auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Upload: wenzeslaus-ade

Post on 06-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

auf kleinenLinux-Devices

Gerrit TelkampDOMOLOGIC Home Automation GmbH38106 BraunschweigGERMANY

Page 2: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

2

DOMOLOGIC

• Gründung 1999

• „Spin-Off“ der TU Braunschweig

• Seit 1995 aktiv im Bereich „Home Automation“

• Seit 2000 Mitglied der Konnex-Association

• Sitz im Technologiepark Braunschweig

• Z.Zt. 5 dauerhafte Mitarbeiter

Page 3: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

3

Unternehmensziele• Vorentwicklung:

• Software-Module

• Schaltungs-Konzepte

• Auftragsentwicklung• Hardware

• Software

• Consulting

Page 4: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

4

Kernkompetenzen• Embedded Systems (8-32 Bit)

• Embedded JAVA

• Embedded Linux

• HMI (Human-Machine-Interface)• frei konfigurierbar, z.B. Touch-Panel

• Gerätekommunikation• Konnex PL132, EIB, LON, CAN

• Ethernet, Web-basierte Dienste

Page 5: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

5

Referenzen• EU-Projekte: HOME-AOM, ASK-IT

• Intelligentes Haus Gifhorn

• Entwicklung von Soft- und Hardware für Tür-Kommunikationsanlage

• Power-Line-Analyzer

• Kommunikationslösungen für ANSI/EIA-709

• Grafische Benutzeroberflächen

• ...

Page 6: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

6

Motivation• steigende Anforderungen an Embedded Systems

• Integration in IP-Netze

• Komfortable HMI (Human Machine Interfaces)

• Hoher Kostendruck der Hardware bei Massenprodukten

• Niedrige Leistungsaufnahme

• Kleine Baugröße

Page 7: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

7

Anwendungsbeispiele• Gateways

+ Umfangreicher Support an Netzwerkprotokollen

+ diverse Bibliotheken (z.B. gsmlib)

+ verbreitete & gut dokumentierte API

• Touch-Panels+ Vielzahl an Gerätetreibern

+ verbreitete & gut dokumentierte API

- eingeschränkte Unterstützung von einfachen GUIs

Page 8: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

8

JControl (I)• Lösung: Kombination

• uCLinux als freies Betriebssystem: • kontinuierliche Weiterentwicklung

• Quelltexte verfügbar

• JAVA als objektorientierte Programmiersprache

• Klassenbibliotheken stellen fertige Software-Komponenten zur Verfügung (z.B. GUI-Framework)

• Garbage Collector

• Plattformunabhängigkeit

Page 9: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

9

JControl (II)• JControlVM

• skalierbar von 8 bis 32 Bit

• Hier: Betriebssystem uClinux

• ab 60kB Speicherbedarf

• alle Peripheriekomponenten als Klassenbibliothekenlokal: I/O-Komponenten, Sensoren, Aktoren

• remote: Komponenten anderer Geräte über Bussysteme

• optimiertes Speichermanagement

• JControl-Entwicklungsumgebung• Compiler, Projektmanagement,

Simulator, Debugger

Page 10: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

10

JControl-Produkte• 60 x 42mm

• Grafik-LCD mit128 x 64 Pixel

• Diverse I/O Steuerleitungen• Analog-Eingänge• PWM-Ausgänge• Bus-Systeme etc.

• 8-Bit Mikrocontroller-Kern

• 2k Arbeitsspeicher

• 64k-256k FLASH für Anwendungen

Stromaufnahme: ca. 10mA

JControl (III)

Page 11: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

11

• Tür-Sprechstelle• Video-Speicher

• Touch-Panel

• Frei konfigurierbare Benutzeroberfläche

• Embedded Linux mit uClinux

• Embedded JAVA mit JControl

• Feld-Bus-Systeme• EIB, YR-Bus

• Spezielles GUI-Design, spezielle Schriftsätze

• Firmware-Update über serielle Schnittstelle

• Umfangreiche Test- und Diagnose-Funktionen

JControl (IV)

Page 12: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

12

• SmartHome Terminal

• Power-Line Kommunikation (PL132)

• „Tür-Terminal“ für Signalisierung von Fehlerzuständen

• Geräte werden beim Öffnen der Tür überprüft

• Bedienung per Touch

JControl (V)

Page 13: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

13

JControl (VI)• Ethernet-CAN-Gateway

Page 14: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

14

GUIFramework

IDE

JAVACompiler

Simulator

Target Device

JControl (VII)

Page 15: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

15

Historie - uClinux• „Standard“-Linux setzt auf PC-

Technologie auf

• uClinux: Linux für MMU-lose Systeme (z.B. PALM-Devices)

• uClinux = „you see Linux“

• Kenneth Albanowski und D. Jeff Dionne, 1998

• ColdFire-Port: Greg Ungerer, 1999

Page 16: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

16

Plattformen für uClinux (1)• 32-Bit-Systeme ohne MMU (Memory

Management Unit), z.B.:• „PALM-Size”

• Motorola M68k

• Motorola ColdFIRE

• ARM7

• NEC V850

• Hitachi H8, SH4

• XILINX MicroBlaze

• Leistung in etwa vergleichbar mit 486-66MHz

Page 17: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

17

Plattformen für uClinux (2)• Kompakte Hardware: ab 3-Chip-Lösung

• Prozessor

• RAM

• ROM (FLASH)

• Stromverbrauch: <1W

• Speicherausstattung:• 1..16MB RAM

• 0.5 ... 2MB FLASH Memory

• Systemkosten: 30,00�

Page 18: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

18

JControl/IDE (I)• IDE für Kopplung zwischen Host und Target

Page 19: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

19

• Entwicklungsumgebung• Integrierte Entwicklungs-

umgebung (IDE)• Editor• Compiler• Upload/Download• Bildbearbeitung• Schriftsatz• ...

• Integrierte Simulation• Software-Entwicklung auf

Geräte-Ebene, nicht aufProzessor-Ebene

JControl/IDE (II)

Page 20: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

20

JControl/IDE (III)PictureEdit - Bildbearbeitung für LCDs

Page 21: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

21

JControl/IDE (IV)FontEdit - Schriftsatzerstellung

Page 22: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

22

JControl/IDE (V)MelodyEdit - Melodien Bearbeiten

Page 23: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

23

JControl/IDE (VI)

Page 24: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

24

JControl im Vergleich

• JControl im Vergleich zu anderen Implementierungen:

Page 25: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

25

Aufbau der JControlVM• Mikrokernel:

• Scheduling

• Execution

• Runtime-Environmentin Threads ausgelagert

Page 26: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

26

Schaltflächen:

Text und Bilder:

Messwert-Visualisierungen:

Komponentenbibliothek

Page 27: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

27

Beispiel (I)/** * VoleButtonExample: Example using the three Vole button types */public class VoleButtonExample extends Frame { public VoleButtonExample() { // create a simple button and add it to the frame Button simpleButton = new Button("Press me!", 30, 45, 65, 12); this.add(simpleButton); // create a Container with three RadioButtons and a Border around it Container c1 = new Container(); RadioButton rb1 = new RadioButton("Radio 1", 5, 8); RadioButton rb2 = new RadioButton("Radio 2", 5, 18); RadioButton rb3 = new RadioButton("Radio 3", 5, 28); // add the RadioButtons to the Container c1.add(rb1); c1.add(rb2); c1.add(rb3); // add a Border c1.add(new Border("RadioButtons", 0, 0, 60, 40)); // add the Container to the Frame this.add(c1); // create a Container with two CheckBoxes and a Border around it Container c2 = new Container(); CheckBox cb1 = new CheckBox("Check 1", 69, 10); CheckBox cb2 = new CheckBox("Check 2", 69, 23);

// add the CheckBoxes to the Container c2.add(cb1); c2.add(cb2); // add a Border c2.add(new Border("CheckBoxes", 64, 0, 60, 40)); // add the second Container to the Frame this.add(c2); }

/** * Instantiate and run the VoleButtonExample. */ public static void main(String[] args) { VoleButtonExample vbe = new VoleButtonExample(); // make the Frame visible vbe.show(); }

}

Page 28: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

28

Beispiel (II)• Hardware-Monitor

• Überwachung von PC-Hardware über I²C/SMBus

• Menü-Steuerung

• Animierte Grafiken zur Visualisierung des Systemzustands

• Implementierung mit Vole und JControl• 1 Tag Entwicklungsaufwand inkl. Validierung

Page 29: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

29

Fazit

• Vorteile gegenüber rein C-basierten Lösungen:• Kürzere Entwicklungszeiten

• Middleware-Aspekt

• Alle Vorteile von JAVA enthalten (Garbage Collection, ...)

• Effizienzsteigerung• Rapid-Prototyping-Entwicklungsumgebung

• Echtes HW-SW-Codesign möglich

• Code-Reuse durch Plattformunabhängigkeit

Page 30: Auf kleinen Linux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

Gerrit TelkampDOMOLOGIC

Java auf kleinen Linux-Devices

30

Future Work• RAPS • XUI