Satellite software is critical in operations management, system control, and communication, enabling hardware components to operate synchronously and efficiently. Given the complexity of space missions, software systems must be robust, reliable, and secure, especially in extreme operating environments with no margin for error.

Flight Software (FSW)

This software manages the satellite’s overall operations, including command execution, power management, and subsystem control. It is often customized for each satellite.

The Core Flight System1(cFW)

cFS architecture layers2

Its architecture is divided into five main layers:

  • RTOS/Boot – Provides the interface between the processor and the flight software, which can be based on commercial, open-source, or custom software.
  • OS Abstraction Layer (OSAL) – A software library that provides a single Application Programming Interface (API) to the Core Flight Executive (cFE), regardless of the underlying real-time operating system.
  • Platform Support Package (PSP) – A software library that offers a single API to the underlying avionics hardware and board support package.
  • Core Flight Executive (cFE) – A portable, platform-independent framework that creates an application runtime environment by providing services common to most flight applications.
  • Applications – A set of applications that deliver mission functionality, combining cFS community and mission-specific apps.

In addition to these layers, development tools and ground systems are used to test and operate cFS. The selection of ground systems and tools typically varies by project.

Attitude and Orbit Control Software (AOCS)

Regulates the orientation and position of the satellite in its orbit using advanced algorithms. The language of choice for the AOCS software on recent ESA3 projects has been Ada834. The prototype being built for the AOCS Framework Project is written in C++.

Mission Data Handling Software

This software manages the collection, storage, and transmission of data generated by payload systems.

Communication and Telemetry Software

This software controls the transmission and reception of signals between the satellite and ground stations. For example, protocols based on CCSDS56 (Consultative Committee for Space Data Systems).

Diagnostic and Monitoring Software

This software performs real-time monitoring of all subsystems, detecting failures and executing recovery protocols.

Thermal Control Software

This software coordinates thermal regulation systems to maintain hardware operating conditions.

Security and Encryption Software

Footnotes

  1. https://github.com/nasa/cFS

  2. https://visionspace.com/nasa-cfs-version-aquila-software-vulnerability-assessment/

  3. European Space Agency

  4. Refers to the 1983 revision of the Ada programming language, mandated by the U.S. Department of Defense and widely adopted on ESA missions for its strong typing and reliability features.

  5. https://ccsds.org/implementations/software/

  6. https://ccsds.org/Pubs/130x0g4e1.pdf