ED division
Software DesignThe engineering division develops two types of software: test software used to test the functionality of space instruments, and embedded software which runs inside an electronic instrument. EGSE software An EGSE with corresponding software is needed by almost every project that develops hardware for a space instrument. Using the same software in all these projects avoids unnecessary duplication of effort and improves software re-use. To this end, SRON has developed a generic EGSE software system. The core of the EGSE software is a C++ application running under Linux. It has a graphical user interface, based on the Qt toolkit. Support for specific hardware is implemented in separate modules, so called daemons, which run independent of the user interface. Additional components of the EGSE have been developed in Perl, Python and IDL (Interactive Data Language). EGSE Features Plotting: A plot window can be attached to device parameters in order to plot data from the device in real time. Alternatively, a running Perl script can send data to a plot window. Plots can be strip-charts, XY-plots, histograms, or even 3-dimensional plots. A curve-fitting feature is available which can, for example, immediately calculate the full-width half-maximum of a Gaussian histogram. Housekeeping (Telemetry/TM): A housekeeping screen in the EGSE user interface presents a list of selected device parameters and their current values. Housekeeping items can be manually arranged for maximum viewability. Values in the housekeeping screen are periodically refreshed at a configurable rate. Safety limits may be assigned to each individual parameter. When a safetly limit is crossed, the EGSE gives a clear visual warning and optionally performs an automatic shutdown procedure to prevent damage to the equipment. Online analysis: The generic EGSE supports advanced online analysis through Python. Incoming data are analyzed by a custom script which may for example apply Fourier transforms, data fitting or filtering. Embedded software Embedded software is useful not only for space missions, but also for laborotory setups. For example, if a very quick response to an input signal is required, there may not be enough time to transfer the signal to a normal PC. An embedded system can typically respond to input signals in real-time. LEON3 Embedded software engineering poses a few specific challenges, such as limited CPU speed and limited memory. For example, LEON3-based systems typically run at approximately 80 MHz, while normal PCs run at 2 GHz or more. Development of embedded software is done with C++ and RTEMS. RTEMS is a real-time operating system for embedded systems. |