Java is a modern object-oriented programming language. Java is in widespread use in many different areas of software development. The use of an object-oriented programming language yields superior support for object-oriented technologies through all phases of software development.
Java allows for direct implementation of the analysis and design models. Using Java in even the smallest devices makes it possible to use a consistent system model and object architecture, giving possibilities for more reuse, both internally in each product and across product families.
Java is a relatively simple language. This makes the transition to using Java relatively easy. Software development in Java is eased by the fact that the language offers automatic memory management (garbage collection) so that traditional memory leakage problems can be avoided. Furthermore, Java contains a built-in multi-threaded system architecture model, which makes it possible to integrate the RTOS at the language level.
Why Java for Embedded Systems?
The introduction of Java at all levels of embedded systems allows a business shift away from the production and sales of physical units carrying some software functionality, to the production and sales of advanced application functionality with associated physical units.
Furthermore, it becomes possible to carry out a partial modernization of the development competences by using modern software technologies (e.g. object-orientation), which typically implies increased possibilities for recruiting new employees.
Finally, introducing Java can open for new business opportunities in the production and sales of components for future advanced system solutions for pervasive computing.
JESEP - Java Execution Platform for Embedded Systems
JEPES is a high-performance platform for the execution of Java bytecode. JEPES is specifically targeted towards embedded processors. JEPES is available in a number of variants for use on specific processor types with specific RAM/ROM configurations. JEPES can be customized to the given configuration, including the removal of various support facilities in order to reduce the memory usage.
Implementations of JEPES
JEPES is available on a number of architectures:
- 8-bit: Atmel AVR 90S8515 (typically 0.5 Kb RAM and 8.5 Kb ROM)
- 16-bit: Hitachi H8-300H (typically 128 Kb RAM and 1024 Kb ROM)
- 32-bit: Intel 386 (typically 512 Kb RAM and 2 Mb ROM)
Figure 1: The structure of the JESEP system
Other platforms, e.g. Texas MSP430, Hitachi H8-300L, Hitachi SuperH, ARM7-TDMI, MIPS, and StrongArm, will be added in the future.
8-bit ATMEL AVR
In the following, a Java demo running on two AVR processors and a standard
Windows PC is described. The demo illustrates communication between
an external device, simulating a valve with a builtin flow meter, and
a PC. The PC is connected via a serial cable to a board with an AVR
The external device is also a board with an AVR processor. The two boards are connected by means of a CAN bus.
The CAN bus
The CAN bus is a serial bus system developed for communication between several intelligent units. All units can emit data to the bus and all communication is based on a broadcast primitive. It is therefore up to the units to filter incoming data.
This demo uses two CANDIP-boards with a CAN bus interface, a serial port and an Atmel AVR 8515 CPU with 8kbyte ROM and 0.5kbyte RAM.
The first CANDIP-board simulates a valve with a builtin flow meter. This valve makes periodic measurements and emits the results on the CAN bus every second.
The other CANDIP-board recevies data from the CAN bus and forwards the measurements to the pc via the serial bus. That is, this board works like a bridge between the CAN bus and the serial interface on the PC.
An application running on the PC performs control and regulation of the valve. Actual (and historical) flow can be seen on the screen.
The position of the valve can be controlled from the program on the PC. Data is then sent via the serial cable to CANDIP board 2 containing the bridge and then on (via the CAN bus) to CANDIP board 1. The position of the valve is changed accordingly which is reflected in future flow measurements.
The CANDIP board for the demo application
Download & Links
- Mjolner - http://www.mjolner.dk/embedded/jepes/
- LIN - Local Interconnect Network - http://www.hw-server.com/docs/lin.html
- RD2 Kit - HW Description - http://www.hw-server.com/constrc/rd2kit.html
- RD2 Kit - HW Description - http://www.hw-server.com/programming/rd2kit.html
- RD2 Kit - HW Description - http://www.hw-server.com/hw_products/rd2kit.html
- Atmel AT89C2051 programmer - http://www.hw-server.com/constrc/aatp.html