Design and Implementation of a Framework for Spacecraft Flight Software A thesis accepted by the Faculty of Aerospace Engineering and Geodesy of the University of Stuttgart in partial fulfillment of the requirements for the degree of Doctor of Engineering Sciences (Dr.-Ing.) by Bastian Bätz born in Karlsruhe Main referee: Hon.-Prof. Dr.-Ing. Jens Eickhoff Co-referee: Prof. Dr. Klaus Schilling Co-referee: Prof. Dr.-Ing. Sabine Klinkner Date of defence: 9 January 2020 Institute of Space Systems University of Stuttgart 2020 Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen National- bibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. © Bastian Bätz, Bretten, 2020 [email protected] 1. Auflage 2020 To Carolin, Jonathan, Simon, Samuel, my parents, and all the rest of my family. Contents Abstract vii Kurzfassung ix Preface xi List of Acronyms xiii 1. Introduction1 1.1. The Nature of Complexity . .3 1.2. Diagrams and Code Examples . .4 2. Software Engineering Tools and Methods5 2.1. Object-Oriented Programming . .6 2.2. Development Methods . .9 2.3. Design and Implementation Techniques . 14 2.4. Embedded Software Development . 30 3. Flight Software Domain Analysis 39 3.1. Domain Definition . 40 3.2. Domain Modeling . 42 3.3. The Flying Laptop Mission . 43 3.4. CCSDS Standards . 58 3.5. ECSS Standards . 68 3.6. Existing Flight Software . 81 3.7. Synthesis . 90 4. The Flight Software Framework 99 4.1. The Flight Software Framework Architecture . 99 4.2. The Flying Laptop Software . 109 4.3. Common Interfaces . 121 4.4. The FSFW-Core . 131 4.5. Component Templates . 147 4.6. The FSFW PUS Framework . 169 4.7. Fault Management . 176 5. Evaluation 187 5.1. Developing a FSFW-Based Software . 187 v Contents 5.2. Spacecraft Testing with the FSFW . 189 5.3. Operating a Spacecraft with the FSFW . 190 5.4. Software Reuse with the FSFW . 192 5.5. Towards an FSFW-based Software Product Line . 193 5.6. The FSFW as Real-Time Embedded Software . 194 5.7. Improvements and Open Issues . 195 6. Summary 201 A. Example Code Listings 203 A.1. Object-Oriented Programming Examples . 203 A.2. DeviceHandlerFailureIsolation::eventReceived ........ 206 A.3. Container Generation For A Black Box Framework . 209 B. Domain Analysis Details 213 B.1. Historical Domain Analysis Results . 214 B.2. Feature Tracing Tables . 215 C. FSFW Details 223 C.1. Flying Laptop Mode Tree . 223 C.2. More FSFW-Core Features . 225 Bibliography 227 vi Abstract The amount of functionality provided by software in technical products is rising continuously, not only for programs in personal computers or mobile devices, but also for that embedded in other machines, such as household appliances, cars or spacecraft. However, with a rising amount of functionality comes more code, which impli- cates, in most cases, more complexity. This is also true for spacecraft, which makes the development of spacecraft on-board software or flight software (FSW) a challenging endeavour. This thesis sets the objective to improve design and development of FSW by applying techniques found in the discipline of software engineering. As most of these techniques do not aim at embedded software, but rather on general purpose software or Internet applications, existing techniques are surveyed for their applicability to the domain of flight software design. As a result, this survey highlights the possibility to create a component frame- work, which supports the development of FSW for various variants of space missions. To determine the common needs of spacecraft software, a domain analysis is performed, which identifies requirements or features not for a single, specific satellite, but spacecraft software in general. These generic features cover component management, system management, operations, and autonomy. With a set of tools at hands and the required features identified, a space- craft software framework can be designed. This was done at the University of Stuttgart and the resulting framework is called the Flight Software Frame- work (FSFW). This thesis contributes to the FSFW and describes its overall design in the view of the identified software engineering techniques. The FSFW architecture defines a FSW application as a set of interacting com- ponents, which offer and invoke functionality of other components. The func- tionality is defined by a small number of interface definitions, e. g. forcom- ponent mode handling or action invocation. Establishing communication and executing components, as well as providing access to computing resources and hardware interfaces, is the task of the FSFW-Core, which is the central element of the framework. To support the implementation of components, the FSFW offers a set of compo- nent templates, which serve as prototypes for e. g. device handling or controller vii Abstract components. These templates are complemented by sub-frameworks to com- mand the spacecraft using a common space link protocol, the packet utilization standard (PUS), as well as elements to implement on-board failure detection, isolation and recovery (FDIR). To ensure the practicality of the complete component framework, the FSFW serves as basis for the software of Flying Laptop, a small satellite also developed, built, and currently operated by the University of Stuttgart. This allowed to iteratively find a good design, which proved itself useful in a real-world deployment. Also, it serves as an example to illustrate the various concepts and features of the FSFW within this thesis. A brief evaluation shows that applying selected software engineering techniques can improve flight software development. This happens by enhancing separation of concerns by encapsulation of functionality in components. Also, the FSFW enables reuse of both the unchanged FSFW-Core and entire components in various space missions. viii Kurzfassung In technischen Produkten steigt der Anteil der Funktionalität, die von Software bereitgestellt wird, kontinuierlich an. Das ist nicht nur bei Programmen in Computern und Mobilgeräten der Fall, sondern auch bei Software, die in andere technische Geräte eingebettet ist, etwa in Haushaltsgeräte, in Automobile, oder eben in Raumfahrzeuge. Allerdings erfordert das Mehr an Funktionalität auch ein Mehr an Quellcode, was meistens auch einen Zuwachs an Komplexität mit sich bringt. Die Software von Satelliten und anderen Raumfahrtsystemen ist von diesem Trend nicht ausgenommen, was die Entwicklung von Onboard-Software oder Flugsoftware zu einer herausfordernden Unternehmung macht. Das Ziel dieser Arbeit ist es, zu überprüfen, durch welche Techniken aus der Disziplin des Software Engineerings der Entwurf und die Entwicklung von Flug- software verbessert werden kann. Da diese Techniken typischerweise nicht für eingebettete Software, sondern für Desktop- und Internetanwendungen entwick- elt wurden, ist zunächst eine Überprüfung auf Eignung für Flugsoftware er- forderlich. Als Ergebnis zeigt diese Untersuchung die Möglichkeit auf, ein komponenten- basiertes Rahmenwerk für die allgemeine Entwicklung von Satellitensoftware zu entwickeln, ein sogenanntes Komponentenframework. Dafür ist eine Übersicht der Eigenschaften von und Anforderungen an Flugsoftware im Allgemeinen er- forderlich, die im Verlauf dieser Arbeit erstellt wurde. Diese Domänenanalyse identifiziert Funktionalitäten in den Kategorien: Komponentenverwaltung, Sys- temverwaltung, Satellitenbetrieb und Autonomie. Die gefundenen Entwicklungstechniken und Anforderungen ermöglichen den Entwurf eines Komponentenframeworks für Raumfahrtsysteme. Ein solches, das sogennante Flight Software Framework (FSFW), wurde an der Univer- sität Stuttgart entwickelt. Die vorliegende Arbeit legt dafür den theoretischen Rahmen, und erläutert das Framework im Licht der genannten Softwaretech- niken. Die Architektur des FSFW definiert eine Flugsoftware als eine Kombination aus interagierenden Komponenten, die Funktionalitäten anbieten oder von an- deren Komponenten nutzen. Diese Funktionalitäten werden von einer limi- tierten Zahl von Schnittstellendefinitionen festgelegt, etwa zur Zustandsverwal- tung von Komponenten oder um Aktivitäten zu starten. Ein zentrales Element ix Kurzfassung des FSFW ist der sogenannte FSFW-Core, der die Interaktion zwischen Kom- ponenten ermöglicht, deren Ausführung regelt, sowie den Zugriff auf Rechen- ressourcen und Hardwareschnittstellen gewährleistet. Um die Implementierung von Komponenten zu unterstützen, bietet das FSFW Komponentenvorlagen an, die als Prototyp für spezifische Komponenten etwa zur Geräteverwaltung oder für Kontrollalgorithmen dienen können. Diese wer- den ergänzt durch zusätzliche Frameworks, um die Steuerung über ein typ- isches Kommunikationsprotokoll, dem Packet Utilization Standard (PUS), zu ermöglichen und um Funktionalitäten für die Fehlerbehandlung an Bord des Satelliten bereit zu stellen. Um die praktische Nutzbarkeit des Frameworks sicherzustellen, wurde es als Ba- sis für die Entwicklung der Flugsoftware von Flying Laptop verwendet. Dieser aktive Kleinsatellit wurde ebenfalls an der Universität Stuttgart entworfen und gebaut. Das ermöglichte es, iterativ ein passendes Design zu finden, welches seine Nützlichkeit direkt in einem echten Umfeld unter Beweis stellen muss. In dieser Arbeit dient die Software von Flying Laptop zur Illustration der Konzepte und Funktionalitäten des FSFW. Eine kurze Evaluation zeigt, dass ausgewählte Techniken des Software Engineer-
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages252 Page
-
File Size-