Each of the components exists in a separate KESO domain. Spatial isolation is enforced
using hardware-based memory protection based on the Infineon TC1796b's memory protection
unit. The component ported to KESO can optionally also be isolated using the hardware
protection facilities in addition to the software-based spatial isolation provided by
KESO.
Comparing the Java port and the original flight control component shows that the two
variants are basically on par in terms of the required execution time. The overhead
introduced by the safety features of Java (i.e., mostly the runtime checks) are
compensated in other places, for example by the whole-program analysis and compile
time optimizations performed by KESO's compiler jino. Details are available in the
following paper:
We are currently working on
porting additional components of the framework to Java to analyze the overhead for
application components with different application characteristics, particularly
concerning the ratio of communication with other domains to internal computation.
In our application the three motor controllers called micro Digital Servo
Amplifier with their Atmel ATmega8535 were used to test the KESO remote method
invocation on very small microcontrollers. Although the Robertino possesses a
powerful industrial PC it is not used in this application and therefore
disconnected from the CAN bus that connects the mDSAs.
Application
Each of the mDSAs exports a Service with methods for setting the motor speed
and to query the infrared distance sensors. One of the mDSAs is an
"intelligent" node (drive2) that takes control over the other mDSAs (drive0
and drive1) using their exported Service through the KESO remote method
invocation. As the information from the distance sensors is very limited only
a simple application could be implemented that keeps the Robertino moving
straight forward until it reaches an obstacle. The Robertino then tries to
avoid a collision with this obstacle by turning away from it. If there is no
longer an obstacle in front of the Robertino it gets back driving straight
forward.
The Service concept of KESO would allow to change program of the "intelligent" node just by
changing the KESO configuration and not the application source code. It would
also be possible to make another more powerful microcontroller the
"intelligent" node again only by changing the configuration. This of course
would require that the low level hardware drivers are available for this
architecture.
Required program and data space
The required amount of program and data space for this application is shown in the following diagram.