German English
OEM Software

Virtuelle Maschine (Java) von Virtenio

  • Virtuelle Maschine
    • Anwendungen in Java™ nutzbar
    • Alle Java Datentypen inkl. long und double
    • Unbegrenzte Anzahl von Threads
    • Synchronisierung von Threads (synchronized)
    • Garbage Collection mit Speicherdefragmentierung
    • Exception-Behandlung für mehr Sicherheit
    • Große Klassenbibliothek inkl. vieler Treiber
    • System-Properties zur Konfigurierung von Anwendungen
    • Event System zur Behandlung von synchronen und asynchronen Events

  • Software-Bibliotheken für virtuelle Maschine
    • Laufzeitbibliothek (Core, Utilities, Collections, IO, RegEx, ...)
    • Treiber für Funk-Transceiver nach IEEE 802.15.4
    • Treiber für Zugriff auf Flash oder FRAM Datenspeicher
    • Treiber für Datenerfassung (ADC, DAC,...)
    • Treiber für Bussysteme (I2C, SPI, USART, ...)
    • Treiber für Timer und PWM
    • Treiber für weitere Peripherie (IRQ, RTC, GPIO, WatchDog, LED, Button, ...)
    • Routing API (AODV, ...)
    • Treiber für verschiedene Sensoren (SHT21, ADT7410, BH1710FVC, ITG3200, ...)
Funkmodule mit minimalen Ressourcen wurden bisher in speziellen und wenig komfortablen Sprachen programmiert. Komplexe Anwendungen konnten nur zeitaufwendig und mit einem hohen Fehlerpotential umgesetzt werden. Der Ansatz von VIRTENIO für Funkmodule bringt nun den Komfort, die Sprachkomplexität und die Sicherheit einer virtuellen Maschine in die Welt der drahtlosen Sensornetzwerke.
Abb.: Verdeutlichung der Vorteile einer virtuellen Maschine
wie Plattformunabhängigkeit der Anwendung
Durch die Verwendung einer virtuellen Maschine wird das Anwendungsprogramm für das Funkmodul unabhängig von der tatsächlich verwendeten Architektur. Das hat den Vorteil, dass Anwendungsprogramme unverändert und ohne einen manuellen Anpassungsprozess ausgeführt werden können, auch wenn bspw. der Prozessor oder Funktransceiver durch einen anderen Typ ausgetauscht wird. Gleichzeitig werden der Entwicklungsprozess der Hardware und des Anwendungsprogramms entkoppelt. Das Anwendungsprogramm wird gegen eine virtuelle Architektur mit entsprechenden Schnittstellen entwickelt, die über die Zeit unverändert bleibt.
Die virtuelle Maschine wurde derart optimiert, dass Anwendungen selbst auf einem 8/32-Bit- Mikrocontroller mit 8 KByte RAM performant ausgeführt werden können. Dabei hat die komplette virtuelle Maschine mit Anbindung der Peripherie wie dem Funk-Transceiver nach IEEE 802.15.4 einen Speicherplatzbedarf von weniger als 60KByte Flash.
Um dem Entwickler für komplexe Anwendungen in verteilten eingebetteten Systemen wie drahtlose Netzwerken einen idealen Ausgangspunkt zu bieten, wurde die virtuelle Maschine durch folgende Softwarekomponenten ergänzt:
  • Laufzeitbibliothek mit grundlegenden Funktionen,
  • Treiber für Funk-Transceiver nach IEEE 802.15.4
  • Treiber für Zugriff auf Datenspeicher wie Flash, EEPROM, ...
  • Treiber für Datenerfassung (GPIO, ADC, DAC, ...),
  • Treiber für weitere Peripherie (I2C, SPI, PWM, WatchDog, ...).
Mit dieser Voraussetzung können Anwendungen wie aus einem Baukasten schnell zusammengesetzt werden. Eigene Softwareteile aus vorhandenen Java™-Anwendungen für den Desktop können so ohne Anpassung der Quelldaten integriert werden. Mit den gewohnten Entwicklungswerkzeugen für Java™ können nun Anwendungen für drahtlose Sensornetzwerke umgesetzt werden.
Unterstützung für Anwendungen (Auszug)
Basistypen char, byte, short, int, long, float, double
Strukturen Arrays, ArrayList, Collection, Hashtable, Set, Vector
Streams Input, Output
Exceptions try, catch, Exception, RuntimeException
StringBuffer / StringBuilder Ja / Ja
Thread  Ja, unbegrenzt in der Anzahl
Sprachkonstrukt synchronized Ja
System-Properties Ja
Unterstützung für Funkmodul Preon32 (interne Ressourcen)
CPU-Power-Modes Ja, (Active, Idle, Sleep, Shutdown)
CPU-WatchDog Ja
CPU-IRQs Ja
CPU-RTC Ja
CPU-Timer Ja
CPU-FLASH Ja
CPU-BACKUP-Register Ja
CPU-ADC Ja, 2 × 12-Bit, 1 MSPS, 16 Kanäle
CPU-DAC Ja, 2 × 12-Bit
CPU-I2C Ja, 1x Kanal bis 400 kBit/s
CPU-SPI Ja, 3x Kanäle bis 18 Mbit/s
CPU-USART Ja, 3x Kanäle synch./asynch. bis 4.5 Mbit/s
CPU-PWM Ja
CPU-CAN Auf Anfrage
CPU-USB Auf Anfrage
Unterstützung für Funkmodul Preon32 (externe Ressourcen)
Serial Flash über SPI Ja, read/write/erase, block mode
Funkchip über SPI Ja, IEEE 802.15.4, Datenraten 256 KBit/s bis 2 MBit/s,
Frames: Data, Beacon, Command
AES-Verschlüsselung in Hardware Ja, 128-Bit EBC/CBC
Software-Unterstützung für Evaluationsmodul "Preon32 Shuttle"
Auslesen des Tasters (Benutzer) Ja
Ansteuerung der LEDs Ja, (grün, gelb, rot, amber)
RS232 über USB Ja, bis 931.6 KBaud zum PC
Software-Unterstützung für Sensor-Modul "VariSen"
Treiber für Sensor "Temperatur" Ja
Treiber für Sensor "Beleuchtungsstärke" Ja
Treiber für Sensor "Luftfeuchtigkeit" Ja
Treiber für Sensor "Magnetfeld" Ja
Treiber für Sensor "Luftdruck" Ja
Treiber für Sensor "Beschleunigung" Ja
Treiber für Sensor "Rotationsgeschwindigkeit" Ja
Nach Redaktionsschluss können sich Änderungen an den technischen Daten ergeben haben.
Java™ und alle Java-basierten Zeichen sind Markenzeichen oder eingetragene Markenzeichen der Oracle Corporation und/oder ihrer Tochtergesellschaften in den U.S.A. oder in anderen Ländern. © Oracle Corporation.