12–16 Jun 2016
Gothenburg, Sweden
Europe/Amsterdam timezone

Open-Source Instrument Flight Software for CHEOPS

15 Jun 2016, 18:15
1h 15m
Gothenburg, Sweden

Gothenburg, Sweden

DSP Day: DSP software, tools and libraries Session 4: DSP Day Reception and Poster Session

Speaker

Dr Roland Ottensamer (University of Vienna)

Description

The Department of Astrophysics at the University of Vienna is a provider of payload instrument flight software (IFSW) with a focus on the compression of the instrument science data. One of the projects under development is the instrument flight software for the first ESA-S class mission CHEOPS (CHaracterising ExOPlanet Satellite). CHEOPS is being built for launch in late 2017 to provide ultra-high precision photometry measurements of transits of known exo-planets. It carries only a single optical instrument, which is equipped with a data processing unit that runs the IFSW to carry out various ECSS-Service oriented control and highly tailored data processing tasks. This software is developed at the University of Vienna as an open-source software, this includes all drivers and modules the flight software is composed of, but also the EGSE (Electronic Ground Support Equipment) software and the simulators used for the development. This means, that everybody is free to use the sources of the full application or of interesting components, modify and redistribute them according to the GPLv2 license. We will take a look at the architectural design of the software, focusing on parts that may be useful for other projects. The Data Processing Unit (DPU) hardware of CHEOPS is built by the Institute for Space Research, IWF Graz. As processor, the GR712RC dual-core Leon3 was chosen, mainly because it already includes a Milbus (MIL-STD-1553) core, which is needed for the communication with the spacecraft (AS-250 platform). Internally, SpaceWire is used to communicate with the camera detector unit. The DPU is equipped with 64 MiB SRAM and a 16 GB FLASH memory. The two cores are used in Asymmetric Multi-Processing (AMP) style, but only a single shared executable is run. When looking hierarchically at the IFSW, it is composed of three layers, a basic software, an ECSS services-providing framework and the high level application software. The Instrument Basic Software (IBSW) provides access to the hardware. Drivers for the SpaceWire (GRSPW2) cores and the Milbus core (Microsemi) were developed from scratch. Multi-threading is provided by the FSU pthreads implementation that comes with the compiler runtime library (BCC 4.4.2). The CPU is set up to run all the system-specific tasks (communication, control) on the first core and the science data processing as a single thread on the second core. All threads are encapsulated in real-time containers and synchronization is achieved using the ceiling priority protocol for shared resources and the single-producer single-consumer methodology whenever possible. The basic software handles high-precision timing, FLASH memory access and the EDAC handler in separate threads. On top of the basic software the CORDET service framework is implemented. This software library is developed and provided as open-source software by PnP Software, Tägerwilen (CH). It provides a generic software infrastructure for PUS-based applications, a consistent solution for the communication and control services, event handling and FDIR procedures. The framework is attached to the basic software via call-back functions. Similar to the basic software, the framework library only adds few KiB in size to the application. On the highest level of the application are the science data processing tasks. The main task of the IFSW is to process the optical CCD images of the detector unit and compress them in real-time. This task is achieved by a highly tailored, yet configurable data processing chain. It starts with pre-processing tasks, such as the non-linearity correction of the pixel fluxes. Lossy operations are the image stacking, the selection of the science window from the full CCD area and an additional quantisation step to deal with the high read-noise in high-gain settings. The reduced data are compressed using e.g. 2D wavelet transforms and arithmetic compression with a semi-adaptive model. Several components of this are re-used from the HERSCHEL/PACS data compression software. Another interesting task of the application software is the provision of precise position measurements to the spacecraft in a closed loop. As the thermal stress on the telescope structure causes misalignment of the instrument with the star trackers, centroid measurements have to be provided to the platform. A set of algorithms has been developed and analyzed in depth with a wide range of applications in mind. This misalignment is also an issue for the initial pointing, thus the IFSW provides target recognition algorithms to enable the identification of the correct star and to move it to the desired location on the CCD. Three algorithms were developed for this purpose, which will be used in different observation conditions. As a lesson learnt from previous projects, the IFSW is structured and developed in a way that the actual software and the simulator software for the PC are generated simultaneously from the same code. The main difference is that the PC compilation uses POSIX sockets instead of the actual hardware interfaces. Such hardware can be used through simple routing applications, which connect to the sockets. That way the PC simulators can be connected either directly to each other, or to the target hardware under test and provide thus the most flexible test environment that can be envisioned. Following our open-source strategy, we have also developed a central checkout system application from scratch. This application runs the test control scripts in Python and it uses the instrument database to encode and decode all TM/TC. As it is built in Python, a large amount of analysis methods are available. We will present the flight software and the related components to provide help for developers that are interested to re-use parts of the open-source software and thus facilitate their work.

Summary

The University of Vienna is a provider of open-source instrument flight software. We present the current software, which has been developed for the ESA-S mission CHEOPS. It is composed of low-level software and drivers, an ECSS-services aware framework and a number of application software algorithms, which are used for real-time science data processing and payload-in-the-loop tasks. The authors provide the complete flight software and related EGSE software and simulators as open source software.

Primary author

Dr Roland Ottensamer (University of Vienna)

Co-authors

Mr Armin Luntzer (University of Vienna) Dr Christian Reimers (University of Vienna) Prof. Franz Kerschbaum (University of Vienna) Mr Marko Mecina (University of Vienna) Mr Philipp Löschl (University of Vienna) Mr Roman Ferstl (University of Vienna)

Presentation materials

There are no materials yet.