Cosmic Code: Unlocking the potential of Software Architecture in space applications
The use of cutting-edge software architecture in space applications is pivotal for us to understand the intricacies of the cosmos and to enhance the efficiency of space missions. Modern space applications rely heavily on sophisticated software technologies to manage complex systems, control scientific instruments, process vast amounts of data, and ensure almost real-time communication.
What are space applications, and why do they need specific software architecture?
Space applications enclose a wide range of technologies and services that utilize space-based assets to support distinct sectors on Earth. These applications are critical for modern society, providing services in communication, navigation, Earth observation and many more. Take these for example.
Spacecraft like the Voyager probes and the New Horizons. These are vehicles designed for deesp space travel, often used for scientific research, exploration, or communication.
Satellites which orbit the Earth or other celestial bodies, providing services like telecommunications, navigation weather forecasting, or Earth observation.
Habitable artificial structures in space where astronauts can live and conduct scientific research like the International Space Station.
Lunar and Martian rovers, the robotic vehicles designed to explore the surfaces of the Moon and Mars like Curiosity or ExoMars.
Space agencies have established specific standards for software development for space applications, guidelines for architecture constraints, development methods and compliance requirements to ensure that software meets the rigorous mission based on the function severity and criticality assessment.
The space standards commonly required by the space agencies are the ECSS & CCSDS standards that are designed to improve efficiency, common understanding in space activities as well as subsystem compatibility, covering areas like project management, quality assurance, engineering and the recommended communication interfaces and protocols for space missions; PUS-C, CFDP, SDLS, XTCE, SLE, and EDS standards were developed for space data handling, communication and information system unification; While primarily focused on automotive software, MISRA C/C++ guidelines are commonly required in space software development due to their emphasis on safety, security, portability and reliability.
SAVOIR or Space AVionics Open Interface aRchitecture was developed by ESA to create a modular, reusable, and interoperable architecture for space avionics systems. SAVOIR defines several core elements like the OBC which is the brain of the spacecraft, responsible for executing commands and managing data; communication interfaces for high-speed, reliable data exchange; payload control; software architecture for a modular approach, allowing different teams to develop components independently but still working together without fault; Fault Detection, Isolation, and Recovery (FDIR), a built-in support for autonomous error handling, necessary for deep-space or long-duration missions.
But in the end, these software architectures must focus on reliability, fault tolerance and real-time processing.
Must-haves’ of software architecture for space applications
Any space system must be able to operate reliably over long periods of time with minimal maintenance, ensure redundancy and have fail-safe mechanisms that can detect, isolate and recover from failures with no impact on other satellite components.
Navigation, communication and control systems need real-time data processing.
Satellites and spacecraft collect vast amounts of data. Therefore, efficient data storage and retrieval is essential for ensuring operational efficiency, supporting real-time decisions, enhancing security and solving cost-related issues.
In space applications, cryptography plays a critical role in ensuring data confidentiality by encrypting sensitive information during transmission and storage, preventing scenarios like unauthorized interception of Earth observation satellite data before public release or tampering with proprietary engineering information. For data authenticity, space systems employ cryptographic hashing and digital signatures to verify command origins and detect tampering. Authentication algorithms are used to ensure that only authorized control centers can modify spacecraft operations. Hash functions create unique digital fingerprints for critical data such as flight software updates, allowing receivers to confirm integrity by comparing computed and expected hashes. These mechanisms prevent catastrophic errors caused by corrupted commands or compromised payload data, which could otherwise lead to mission failure or invalid scientific results.
A software architecture used in space applications must be able to react in a pre-defined way between objects in space and ground stations, like the in-flight update ability to provide fixes for bugs or issues during the mission, improving safety and performance; to provide security for vulnerabilities protecting critical systems; to improve real-time performance monitoring and diagnostics, aiding mission optimization.
Software architecture used in space applications
Layered architecture provides a structured and efficient way to organize the software that controls the spacecraft. Each layer has specific roles, making the system more modular, scalable, and easier to maintain, while also enhancing reliability and performance during space missions.
The physical/device layer interfaces directly with spacecraft hardware (sensors, actuators, communication devices) and provides low-level hardware management and control e.g. power systems and thermal regulation.
The middleware layer provides common services and frameworks to facilitate communication between the various layers and components as well as provides the implementation of communication protocols and mechanisms, e.g. for the transmission of spacecraft data to ground control and processing commands sent from ground control, including updates to software or configuration changes. It abstracts much of the complexity involved in communication, scheduling, and resource management.
The application layer provides mission-specific functionality based on mission objectives. It is responsible for higher-level decision-making, including planning and executing mission tasks. It realizes system health monitoring, anomaly detection, isolation and recovery strategies, telemetry data collection as well as storing, processing, and transmitting mission data to ground control.
New subsystems can be added without affecting the entire system and the clear separation between layers makes updates safer and more efficient. It makes the development, testing and maintenance easier.
In terms of error isolation, the issues in one layer don’t affect the others.
Event-Driven Architecture can be used in space applications due to its decoupling and scalability. EDA decouples software components, allowing them to operate independently and scale if needed. This flexibility enables space missions to update or replace each component without affecting the entire system. In the case of asynchronous events, EDA can be applied in systems that require real-time responses to changing conditions.
EDAs can be used in space for satellite constellations, close proximity operations, space weather monitoring or emergency response systems. For satellite constellations, EDA can manage communication and coordination among satellites, ensuring efficient data exchange, real-time action execution during rendezvous and capture/docking and real-time responses to events. When it comes to space weather monitoring, real-time event processing can alert systems about weather changes, enabling proactive measures to protect satellites.
Service-oriented Architecture (SOA) enhances space-based systems’ modularity, scalability and interoperability.
The modularity and reusability of SOA allow for the development of self-contained services that can be used across different space missions or systems. This modularity reduces development costs and enhances system flexibility, making it easier to update the space systems.
Interoperability is crucial for coordinating operations among multiple satellites, ground stations, and other space assets. To ensure seamless integration of all components, SOA facilitates communication between different systems and platforms.
Sometimes, space missions must be scalable, meaning they require some dynamic adjustments to system capabilities. SOA supports this scalability by allowing new services to be added if needed.
Satellites collect vast amounts of data. The service-oriented architecture can help manage and process these large volumes of data, ensuring that it is accessible and usable across different systems.
Distributed Space Systems (DSS) can comprise multiple satellites or spacecraft that interact to achieve commercial, scientific or technological objectives. These systems offer some advantages over traditional ones such as enhanced mission capabilities, improved resilience and cost efficiency. DSS are a great tool and resource for better understanding our planet and allowing us to make data-driven decisions.
Due to their ability to manage tasks with precise timing and predictability, real-time operating systems play a decisive role in space applications. They offer predictable performance, ensuring that critical tasks are executed within a given timeline, provide fault-tolerant features to handle hardware or software errors and avoid endangering the mission by utilizing built-in software failure mitigation, correction and recovery features.
RTOS also optimize the use of onboard resources such as memory and processing power, extending the lifespan of satellites or spacecraft and maximizing their operational capabilities. For example, RTEMS RTOS is commonly used for efficient onboard software development and deployment.
Let’s not forget about FPGAs
This configurable integrated circuit plays a vital role in the success of various space missions due to its flexibility, high performance, and ability to operate reliably in harsh environments. It is perfect for long-term satellite missions where modifications might be needed after deployment because it can be reprogrammed from the ground.
However, when we combine FPGAs with microprocessor devices, so called, System on Chip or SoC, we get a perfect match for both data processing and system control tasks because they offer flexibility and customization; FPGA allow for reconfiguration and customization, while SoCs provide integrated solutions that can adapt to specific tasks; they are efficient and compact, both technologies reduce size and power consumption; they enable fast data processing and system control, essential for real-time applications in space.
FPGAs efficiently process large amounts of data and can be customized for specific tasks, enhancing their utility in modern space technology. But they must be developed, right?
When developing FPGAs for space missions, several types of software are used to design, simulate, and verify the FPGA designs.
First, you need to know about Hardware Description Language (HDL) Editors. These tools allow developers to write and edit HDL code in languages like VHDL, Verilog, or SystemVerilog and are essential for defining the digital logic of the FPGA.
Second, you need Logic Synthesis Tools. This software codes into a netlist that can be mapped onto the FPGA’s hardware and optimizes the design for area and performance.
Third, Place and Route Tools help map the synthesized netlist onto the FPGA’s physical resources and route signals between them, ensuring that the design fits within the FPGA’s constraints and operates correctly.
Fourth, you need to use some Simulation Tools to verify the functionality of the design before it is programmed onto the FPGA, meaning that you can catch errors early in the development cycle.
Lastly, radiation hardening and mitigation tools will ensure that your FPGA can operate reliably in harsh space environments.
That being said, please note that AROBS Polska’s work with FPGA technology started in 2016, and since then, we managed to create a substantial portfolio of successful projects working with the industry’s top players. You can read more about our expertise here.
AROBS Polska is designing the future of space
We are a dynamic and innovative team of specialists standing at the forefront of cutting-edge advancements in the space industry. Multiple partnerships with ESA, European Industry, and Academia ensured that our solutions aligned with the rigorous requirements and specifications set forth for each project. Our expertise is focused on developing dedicated electronic systems, FPGA code, and embedded software. Read more about us here. AROBS Polska is part of AROBS Group since 2023.