1 / 30

auf kleinen Linux-Devices

auf kleinen Linux-Devices. Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY. 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

baker-diaz
Download Presentation

auf kleinen Linux-Devices

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. auf kleinenLinux-Devices Gerrit Telkamp DOMOLOGIC Home Automation GmbH 38106 Braunschweig GERMANY

  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 Java auf kleinen Linux-Devices

  3. Unternehmensziele • Vorentwicklung: • Software-Module • Schaltungs-Konzepte • Auftragsentwicklung • Hardware • Software • Consulting 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 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 • ... 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 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 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 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 Java auf kleinen Linux-Devices

  10. JControl (III) 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 Java auf kleinen Linux-Devices

  11. JControl (IV) • 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 Java auf kleinen Linux-Devices

  12. JControl (V) • 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 Java auf kleinen Linux-Devices

  13. JControl (VI) • Ethernet-CAN-Gateway Java auf kleinen Linux-Devices

  14. JControl (VII) 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 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 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 Java auf kleinen Linux-Devices

  18. JControl/IDE (I) • IDE für Kopplung zwischen Host und Target Java auf kleinen Linux-Devices

  19. JControl/IDE (II) • Entwicklungsumgebung • Integrierte Entwicklungs-umgebung (IDE) • Editor • Compiler • Upload/Download • Bildbearbeitung • Schriftsatz • ... • Integrierte Simulation • Software-Entwicklung auf Geräte-Ebene, nicht aufProzessor-Ebene Java auf kleinen Linux-Devices

  20. JControl/IDE (III) PictureEdit - Bildbearbeitung für LCDs Java auf kleinen Linux-Devices

  21. JControl/IDE (IV) FontEdit - Schriftsatzerstellung Java auf kleinen Linux-Devices

  22. JControl/IDE (V) MelodyEdit - Melodien Bearbeiten Java auf kleinen Linux-Devices

  23. JControl/IDE (VI) Java auf kleinen Linux-Devices

  24. JControl im Vergleich • JControl im Vergleich zu anderen Implementierungen: Java auf kleinen Linux-Devices

  25. Aufbau der JControlVM • Mikrokernel: • Scheduling • Execution • Runtime-Environmentin Threads ausgelagert Java auf kleinen Linux-Devices

  26. Komponentenbibliothek Schaltflächen: Text und Bilder: Messwert-Visualisierungen: Java auf kleinen Linux-Devices

  27. Beispiel (I) /** * VoleButtonExample: Example using the three Vole button types */ publicclass 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. */ publicstaticvoid main(String[] args) { VoleButtonExample vbe = new VoleButtonExample(); // make the Frame visible vbe.show(); } } 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 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 Java auf kleinen Linux-Devices

  30. Future Work • RAPS • XUI Java auf kleinen Linux-Devices

More Related