View
110
Download
0
Category
Preview:
Citation preview
auf kleinenLinux-Devices
Gerrit TelkampDOMOLOGIC Home Automation GmbH38106 BraunschweigGERMANY
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
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
3
Unternehmensziele• Vorentwicklung:
• Software-Module
• Schaltungs-Konzepte
• Auftragsentwicklung• Hardware
• Software
• Consulting
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
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
• ...
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
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
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
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
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)
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)
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)
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
13
JControl (VI)• Ethernet-CAN-Gateway
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
14
GUIFramework
IDE
JAVACompiler
Simulator
Target Device
JControl (VII)
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
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
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�
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
18
JControl/IDE (I)• IDE für Kopplung zwischen Host und Target
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)
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
20
JControl/IDE (III)PictureEdit - Bildbearbeitung für LCDs
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
21
JControl/IDE (IV)FontEdit - Schriftsatzerstellung
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
22
JControl/IDE (V)MelodyEdit - Melodien Bearbeiten
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
23
JControl/IDE (VI)
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
24
JControl im Vergleich
• JControl im Vergleich zu anderen Implementierungen:
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
25
Aufbau der JControlVM• Mikrokernel:
• Scheduling
• Execution
• Runtime-Environmentin Threads ausgelagert
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
26
Schaltflächen:
Text und Bilder:
Messwert-Visualisierungen:
Komponentenbibliothek
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(); }
}
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
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
Gerrit TelkampDOMOLOGIC
Java auf kleinen Linux-Devices
30
Future Work• RAPS • XUI
Recommended