Elsevier

Acta Astronautica

Volume 69, Issues 7–8, September–October 2011, Pages 583-594
Acta Astronautica

An integrated development framework for rapid development of platform-independent and reusable satellite on-board software

https://doi.org/10.1016/j.actaastro.2011.04.011Get rights and content

Abstract

Even in the field of small satellites, the on-board data handling subsystem has become complex and powerful. With the introduction of powerful CPUs and the availability of considerable amounts of memory on-board a small satellite it has become possible to utilize the flexibility and power of contemporary platform-independent real-time operating systems. Especially the non-commercial sector such like university institutes and community projects such as AMSAT or SSETI are characterized by the inherent lack of financial as well as manpower resources. The opportunity to utilize such real-time operating systems will contribute significantly to achieve a successful mission. Nevertheless the on-board software of a satellite is much more than just an operating system. It has to fulfill a multitude of functional requirements such as: Telecommand interpretation and execution, execution of control loops, generation of telemetry data and frames, failure detection isolation and recovery, the communication with peripherals and so on. Most of the aforementioned tasks are of generic nature and have to be conducted on any satellite with only minor modifications. A general set of functional requirements as well as a protocol for communication is defined in the SA ECSS-E-70-41A standard “Telemetry and telecommand packet utilization”. This standard not only defines the communication protocol of the satellite–ground link but also defines a set of so called services which have to be available on-board of every compliant satellite and which are of generic nature. In this paper, a platform-independent and reusable framework is described which is implementing not only the ECSS-E-70-41A standard but also functionalities for interprocess communication, scheduling and a multitude of tasks commonly performed on-board of a satellite. By making use of the capabilities of the high-level programming language C/C++, the powerful open source library BOOST, the real-time operating system RTEMS and finally by providing generic functionalities compliant to the ECSS-E-70-41A standard the proposed framework can provide a great boost in productivity. Together with open source tools such like the GNU tool-chain, Eclipse SDK, the simulation framework OpenSimKit, the emulator QEMU, the proposed on-board software framework forms an integrated development framework. It is possible to design, code and build the on-board software together with the operating system and then run it on a simulated satellite for performance analysis and debugging purposes. This makes it possible to rapidly develop and deploy a full-fledged satellite on-board software with minimal cost and in a limited time frame.

Introduction

Small satellites can be categorized in respect to the satellite ordering customer into four different groups. The first group is constituted by the agency ordered satellites which are mainly scientific missions. The second group is constituted by the commercial and industry satellites. This group of satellites is characterized by the goal to create revenue through delivering a product to customers. The third group is constituted by the military satellites which are ordered and operated by military organizations. The last group of small satellites is formed by the university and amateur satellites [1]. These amateur and university small satellites are usually designed following different design principles compared with small satellites of the groups one to three. Those design principles are mostly “Keep it simple, Stupid!” (KISS) and mean that any unneeded complexity should be avoided in order to make the satellite more reliable.

In addition to small budgets, university and amateur satellite projects also are characterized by limited human resources. This lack of human resources, especially in the field of software engineering, the design principles and the usage of non-standard communication protocols often lead to non-optimal operation scenarios.

All of the aforementioned groups have in common that also small satellites follow Moore's law [2]. The computational power of the on-board data-handling subsystems as well as the data rates and storage capacity have increased significantly in the last years. This trend in data rates and amount is shown in Fig. 1: Moore's law for small satellites. Especially when using commercial of the shelf parts, the performance is significantly increased. The rising complexity of the hardware can only be dealt with a more complex software system [3].

In order to deal with rising complexity of hardware and software as well as with the limited human resources, an on-board software framework currently is being developed by the author in the course of a university small satellite program. The main design goals of this on-board software framework are re-usability, platform independence, interoperability and extendability. The usage of a framework for the development of a satellite on-board software allows the software engineers to focus on essential features such as control algorithms and mission specific functionalities. It also allows the reuse of generic parts of the on-board software. The usage of standardized communication protocols makes possible the usage of agency ground stations and fosters interoperability.

In addition to the on-board software framework itself, an integrated development flow is currently under development in order to test and verify the proposed on-board software framework. This development flow consists of the following steps: First the on-board software framework runs on Xenomai real-time Linux and can be tested extensively using standard software development practice such as unit testing, code coverage analysis, memory profiling and so on. [4]. After the basic functionality is tested, the on-board software runs inside a simulated on-board computer connected to a simulated satellite. The simulated parts of this environment are then gradually replaced with real hardware, starting with the on-board computer. The on-board software then runs on a development board or a breadboard-model of the on-board computer which again is connected to a simulated satellite. Finally, the on-board software runs on the on-board computer connected to the real satellite hardware. This development flow is called system simulation and is state-of-the-art in industrial satellite projects [5].

The goal of the integrated development framework described in this paper is to allow university and amateur satellite projects to use system simulation in the development process together with the proposed on-board software framework. This can lead to a great boost in productivity because the developers can concentrate on the architectural design of the on-board software and neither have to implement infrastructural features such as schedulers and interprocess communication methods nor testing infrastructures such as simulators. This again can, together with the usage of standardized communication protocols, lead to superior operational scenarios compared to conventional approaches.

Section snippets

Simulation framework

For embedded software and especially safety critical software profound testing and verification is essential. Traditionally the testing of the software is done by so called “unit tests” and code coverage analysis [4]. In the case of a satellite on-board software this is not sufficient because these tests only cover the verification. To validate the software, it has to be tested running on the real hardware and communicating with the devices connected to the on-board computer. Since the on-board

Framework tools

The selection of an appropriate programming language is essential for the success of a software project. For embedded real-time systems such as a satellite, a programming language has to be chosen which allows direct interaction with the underlying operating system and the hardware. Also memory footprint is a major issue in the case of embedded systems. This rules out all recent high-level languages like Java, Python or Ruby. Also it was chosen to use a widely known language to ease the

Implications

The proposed platform independent on-board software framework, together with the open system simulation environment enables a very fast development of on-board software for small satellites, while being compatible with major communication standards. The development can be done on a multitude of development platforms and can easily be integrated into existing development environments.

The usage of reliable and tested operating systems as basis of the on-board software framework keeps the

References (32)

  • Anon, Received September 08, 2010,...
  • M. Sweeting, Small satellites & Moore's Law implications for earth observation, Keynote presentation, 7th IAA Symposium...
  • N. Wirth

    A plea for lean software

    Computer

    (1995)
  • B. Beizer, Software Testing Techniques, second ed.,...
  • J. Eickhoff

    Simulating Spacecraft Systems

    (2009)
  • J. Eickhoff, M. Fritz, R. Witt, I. Kossev, M. Kobald, A. Brandt, Opensimkit—an open-source system simulation...
  • M. Bell

    Service-oriented Modeling: Service Analysis, Design, and Architecture

    (2008)
  • R. Witt, M. Fritz, T. Kuwahara, A. Brandt, C. Laurel, H.-P. Röser, J. Eickhoff, Real-time 3D visualization in satellite...
  • A. Nilsson, T. Ekman, K. Nilsson, Real Java for real time—gain and pain, in: Proceedings of the 2002 International...
  • F. Bellard, QEMU, a fast and portable dynamic translator, in: Proceedings of the USENIX 2005 Annual Technical...
  • P. Brook, D. Jacobowitz, Reversible debugging, Presented at the 2007 GCC Developers' Summit,...
  • M. Montón, A. Portero, M. Moreno, B. Martínez, J. Carrabina, Mixed SW/SystemC SoC emulation framework, in: IEEE...
  • T. Grötker et al.

    System Design with SystemC

    (2002)
  • M. Bordin, C. Comar, T. Gingold, J. Guitton, O. Hainque, T. Quinot, Object and source coverage for critical...
  • ISO/IEC 8652:1995: Information technology – Programming languages – Ada International Organization for Standardization,...
  • ISO/IEC IS 9899:1999: Programming languages—C International Organization for Standardization, Geneva, Switzerland,...
  • Cited by (8)

    • Design and implementation of an index calculation system for forestry ecological assessment in China

      2018, Computers and Electronics in Agriculture
      Citation Excerpt :

      The application of reusable software can greatly reduce the waste of resources caused by the repeated design of software in related fields and can improve the standardization of software in the same field. The technology of reusable software has been widely used in aerospace (Ziemke et al., 2011), medical treatment (Fasquel et al., 2006), administration (Kwon et al., 2015), commerce (Ravichandran et al., 2013), and other fields. At present, many domain-independent studies and applications of reusable software framework are available (Wang et al., 2004).

    • Nanosatellites in LEO and beyond: Advanced Radiation protection techniques for COTS-based spacecraft

      2017, Acta Astronautica
      Citation Excerpt :

      The primary difference between it and the Low-level FDIR policy is that due to the more complex issues involved, it cannot be simply implemented as a "detect failure then restart" process. Instead, the High-level FDIR policy should be implemented as software inside the (primary) on-board computer (or as part of a reconfigurable FPGA, as presented in [38]), an example of how a High-level FDIR policy can be implemented is found in [39]. Controlled Current Limiters, which are not automatically reactivated and Power Distribution Current Limiters are used for this purpose.

    • Injecting faults to succeed. Verification of the boot software on-board solar orbiter's energetic particle detector

      2014, Acta Astronautica
      Citation Excerpt :

      For example, works [6,7] use this methodology for the design and testing of fault tolerant systems implemented in an FPGA platform with different types of diagnostic techniques. The experimental results show the fault coverage and how Single Event Upset (SEU) occurrences cause faulty behaviors in the implemented systems. [8–10] use the same approach to verify the software of networked embedded systems long before the final hardware is available.

    • A Model-Driven Development Framework for Satellite On-Board Software

      2021, Lecture Notes of the Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering, LNICST
    • Design of the attitude control unit of micro satellites

      2015, International Journal of Simulation: Systems, Science and Technology
    View all citing articles on Scopus

    This paper was presented during the 61st IAC in Prague.

    1

    Tel.: +22 795 6990; fax: +22 795 6991.

    View full text