Embedded Controller Software Development Best Practices at the National Ignition Facility
Explore the source record for details and available documents.
SEARCH · Search NASA
Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.
Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.
Explore the source record for details and available documents.
Embedded software has been developed specifically for controlling an Advanced Video Guidance Sensor (AVGS). A Video Guidance Sensor is an optoelectronic system that provides guidance for automated docking of two vehicles. Such a system includes pulsed laser diodes and a video camera, the output of which is digitized. From the positions of digitized target images and known geometric relationships, the relative position and orientation of the vehicles are computed. The present software consists of two subprograms running in two processors that are parts of the AVGS. The subprogram in the first processor receives commands from an external source, checks the commands for correctness, performs commanded non-image-data-processing control functions, and sends image data processing parts of commands to the second processor. The subprogram in the second processor processes image data as commanded. Upon power-up, the software performs basic tests of functionality, then effects a transition to a standby mode. When a command is received, the software goes into one of several operational modes (e.g. acquisition or tracking). The software then returns, to the external source, the data appropriate to the command.
Research into software development is required to reduce its production cost and to improve its quality. Modern software systems, such as the embedded software required for NASA's space station initiative, stretch current software engineering techniques. The requirements to build large, reliable, and maintainable software systems increases with time. Much theoretical and practical research is in progress to improve software engineering techniques. One such technique is to build a software system or environment which directly supports the software engineering process, i.e., the SAGA project, comprising the research necessary to design and build a software development which automates the software engineering process. Progress under SAGA is described.
The contents include the following: High availability. Hardware is in harsh environment. Flight processor (constraints) very widely due to power and weight constraints. Software must be remotely modifiable and still operate while changes are being made. Many custom one of kind interfaces for one of a kind missions. Sustaining engineering. Price of failure is high, tens to hundreds of millions of dollars.
Embedded Navigation Filter Automatic Designer (ENFAD) is a computer program being developed to automate the most difficult tasks in designing embedded software to implement a Kalman filter in a navigation system. The most difficult tasks are selection of error states of the filter and tuning of filter parameters, which are timeconsuming trial-and-error tasks that require expertise and rarely yield optimum results. An optimum selection of error states and filter parameters depends on navigation-sensor and vehicle characteristics, and on filter processing time. ENFAD would include a simulation module that would incorporate all possible error states with respect to a given set of vehicle and sensor characteristics. The first of two iterative optimization loops would vary the selection of error states until the best filter performance was achieved in Monte Carlo simulations. For a fixed selection of error states, the second loop would vary the filter parameter values until an optimal performance value was obtained. Design constraints would be satisfied in the optimization loops. Users would supply vehicle and sensor test data that would be used to refine digital models in ENFAD. Filter processing time and filter accuracy would be computed by ENFAD.
A workshop was held to assess the state of tools for embedded systems software and to determine directions for tool development. A synopsis of the talk and the key figures of each workshop presentation, together with chairmen summaries, are presented. The presentations covered four major areas: (1) tools and the software environment (development and testing); (2) tools and software requirements, design, and specification; (3) tools and language processors; and (4) tools and verification and validation (analysis and testing). The utility and contribution of existing tools and research results for the development and testing of embedded computing systems software are described and assessed.
The invention described here in is a computer-implemented method and apparatus for controlling a hand-held tool. In particular, the control of a hand held tool is for the purpose of controlling the speed of a fastener interface mechanism and the torque applied to fasteners by the fastener interface mechanism of the hand-held tool and monitoring the operating parameters of the tool. The control is embodied in intool software embedded on a processor within the tool which also communicates with remote software. An operator can run the tool, or through the interaction of both software, operate the tool from a remote location, analyze data from a performance history recorded by the tool, and select various torque and speed parameters for each fastener.
A significant problem associated with fault tolerant computer system design is how to insure that there are no embedded software errors, so that an avionics computer system meets the required reliability level. To accomplish this, it is necessary to associate a 'probability of failure' with the operational flight program. It would be more correct to say that the probability of excitation of existing latent design errors within the program is required. In this sense, latent software errors are like latent hardware faults, and techniques that were previously used to measure the probability of failure of hardware due to fault latency can be used to measure the probability of failure of the software. A methodology was developed and applied to a flight control program that was known to operate in a well defined environment. The results indicated that the technique could be used to provide a final validation of the software to a specified reliability level and to evaluate the role of flight test in software validation.
As NASA software systems continue to innovate, becoming more complex and nondeterministic, the need for the NASA IV&V Program to become systemically adaptive to ensure mission success is paramount. To ensure adaptability within resource constraints, IV&V has developed an agile, risk-based approach to identify, characterize, scope, focus, and prioritize mission assurance activities. This risk based adaptive framework has been applied to trends such as increased reliance on data driven algorithms for safety and mission critical software behavior, use of MBSE in system design, and application of agile principles to embedded software development. The framework is enabled by continuous innovation of new approaches such as software only test beds, assurance design tools, and initiatives that augment IV&V assurance methods with artificial intelligence and machine learning techniques. This presentation will highlight the trends the NASA IV&V Program is seeing, the innovative steps it is taking to address those challenges, and how it is postured to address evolving risk and constantly changing and new technologies.
Current needs for high-reliability, reusable software; rapid, evolutionary development; and verification of innovative software architectures have focused attention on improving techniques for analyzing the safety and reliability of embedded software.
Dynamic monitoring of software and system health of a complex cyber-physical system requires observers that continuously monitor variables of the embedded software in order to detect anomalies and reason about root causes. There exists a variety of techniques for code instrumentation, but instrumentation might change runtime behavior and could require costly software re-certification. In this paper, we present R2U2E, a novel realization of our real-time, Realizable, Responsive, and Unobtrusive Unit (R2U2). The R2U2E observers are executed in parallel on a dedicated 16-core EPIPHANY co-processor, thereby avoiding additional computational overhead to the system under observation. A DMA-based shared memory access architecture allows R2U2E to operate without any code instrumentation or program interference.
The flight software (FSW) math library is a collection of reusable math components that provides typical math utilities required by spacecraft flight software. These utilities are intended to increase flight software quality reusability and maintainability by providing a set of consistent, well-documented, and tested math utilities. This library only has dependencies on ANSI C, so it is easily ported. Prior to this library, each mission typically created its own math utilities using ideas/code from previous missions. Part of the reason for this is that math libraries can be written with different strategies in areas like error handling, parameters orders, naming conventions, etc. Changing the utilities for each mission introduces risks and costs. The obvious risks and costs are that the utilities must be coded and revalidated. The hidden risks and costs arise in miscommunication between engineers. These utilities must be understood by both the flight software engineers and other subsystem engineers (primarily guidance navigation and control). The FSW math library is part of a larger goal to produce a library of reusable Guidance Navigation and Control (GN&C) FSW components. A GN&C FSW library cannot be created unless a standardized math basis is created. This library solves the standardization problem by defining a common feature set and establishing policies for the library s design. This allows the libraries to be maintained with the same strategy used in its initial development, which supports a library of reusable GN&C FSW components. The FSW math library is written for an embedded software environment in C. This places restrictions on the language features that can be used by the library. Another advantage of the FSW math library is that it can be used in the FSW as well as other environments like the GN&C analyst s simulators. This helps communication between the teams because they can use the same utilities with the same feature set and syntax.
The crew workloads on the Space Shuttle are described. The Space Shuttle is designed to minimize the activity of the crew in maintaining and operating the Shuttle in order for the crew to be involved in productive activities. The changing role of the crew due to the use of more automated systems on spacecraft is examined. The Shuttle flight system is dependent on embedded software, and the crew is to manage and support these systems. The primary functions of the Space Station are as a laboratory and for construction and assembly of systems, requiring EVA. Examples of EVA are presented. The correlation between manned and unmanned systems and the future direction of space research are discussed.
A general approach to compression of diverse data from large scientific projects has been developed and this paper addresses the appropriate system and scientific constraints together with the algorithm development and test strategy. This framework has been implemented for the COsmic Background Explorer spacecraft (COBE) by retrofitting the existing VAS-based data management system with high-performance compression software permitting random access to the data. Algorithms which incorporate scientific knowledge and consume relatively few system resources are preferred over ad hoc methods. COBE exceeded its planned storage by a large and growing factor and the retrieval of data significantly affects the processing, delaying the availability of data for scientific usage and software test. Embedded compression software is planned to make the project tractable by reducing the data storage volume to an acceptable level during normal processing.
The prime driving force for using microsystem and micromachine technologies in transport vehicles, such as spacecraft, aircraft, and automobiles, is to reduce the weight, power consumption, and volume of components and systems to lower costs and increase affordability and reliability. However, a number of specific issues need to be addressed with respect to using microsystems and micromachines in aerospace applications--such as the lack of understanding of material characteristics; methods for producing and testing the materials in small batches; the limited proven durability and lifetime of current microcomponents, packaging, and interconnections; a cultural change with respect to system designs; and the use of embedded software, which will require new product assurance guidelines. In regards to material characteristics, there are significant adhesion, friction, and wear issues in using microdevices. Because these issues are directly related to surface phenomena, they cannot be scaled down linearly and they become increasingly important as the devices become smaller. When microsystems have contacting surfaces in relative motion, the adhesion and friction affect performance, energy consumption, wear damage, maintenance, lifetime and catastrophic failure, and reliability. Ceramics, for the most part, do not have inherently good friction and wear properties. For example, coefficients of friction in excess of 0.7 have been reported for ceramics and ceramic composite materials. Under Alternate Fuels Foundation Technologies funding, two-phase oxide ceramics developed for superior high-temperature wear resistance in NASA's High Operating Temperature Propulsion Components (HOTPC) project and new two-layered carbon nanotube (CNT) coatings (CNT topcoat/iron bondcoat/quartz substrate) developed in NASA's Revolutionary Aeropropulsion Concepts (RAC) project have been chosen as a materials couple for aerospace applications, including micromachines, in the nanotechnology lubrication task because of their potential for superior friction and wearf properties in air and in an ultrahigh vacuum, spacelike environment. At the NASA Glenn Research Center, two-phase oxide ceramic eutectics, Al2O3/ZrO2(Y2O3), were directionally solidified using the laser-float-zone process, and carbon nanotubes were synthesized within a high-temperature tube furnace at 800 C. Physical vapor deposition was used to coat all quartz substrates with 5-nm-thick iron as catalyst and bondcoat, which formed iron islands resembling droplets and serving as catalyst particles on the quartz. A series of scanning electron micrographs showing multiwalled carbon nanotubes directionally grown as aligned "nanograss" on quartz is presented. Unidirectional sliding friction eperiments were conducted at Glenn with the two-layered CNT coatings in contact with the two-phase Al2O3/ZrO2(Y2O3) eutectics in air and in ultrachigh vacuum. The main criteria for judging the performance of the materials couple for solid lubrication and antistick applications in a space environment were the coefficient of friction and the wear resistance (reciprocal of wear rate), which had to be less than 0.2 and greater than 10(exp 5) N(raised dot)/cubic millimetes, respectively, in ultrahigh vacuum. In air, the coefficient of friction for the CNT coatings in contact with Al2O3/ZrO2 (Y2O3) eutectics was 0.04, one-fourth of that for quartz. In an ultrahigh vacuum, the coefficient of friction for CNT coatings in contact with Al2O3/ZrO2 (Y2O3) was one-third of that for quartz. The two-phase Al2O3/ZrO2 (Y2O3) eutectic coupled with the two-layered CNT coating met the coefficient of friction and wear resistance criteria both in air and in an ultrahigh vacuum, spacelike environment. This material's couple can dramatically improve the stiction (or adhesion), friction, and wear resistance of the contacting surfaces, which are major issues for microdevices and micromachines.
The SSME engine controller is a redundant, micro-processor based control unit. The controller along with its embedded software provides closed loop control of the engine s thrust and mixture ratio during flight as well as configuring the engine state and operations during non-flight activities such as checkouts, and pre-start engine conditioning. It processes orbiter commands into engine actions and provides engine state and health information to the orbiter for immediate action, telemetry and recording. In addition the controller includes functions which continually monitor and manage engine health, and can activate a variety of fault mitigation actions to insure safe engine operation. The objective of this paper is to provide a description of the SSME engine controller as well as its developmental history and lessons learned
This paper will detail the use of SpaceCube in multiple space flight applications including the Hubble Space Telescope Servicing Mission 4 (HST-SM4), an International Space Station (ISS) radiation test bed experiment, and the main avionics subsystem for two separate ISS attached payloads. Each mission has had varying degrees of data processing complexities, performance requirements, and external interfaces. We will show the methodology used to minimize the changes required to the physical hardware, FPGA designs, embedded software interfaces, and testing.This paper will summarize significant results as they apply to each mission application. In the HST-SM4 application we utilized the FPGA resources to accelerate portions of the image processing algorithms more than 25 times faster than a standard space processor in order to meet computational speed requirements. For the ISS radiation on-orbit demonstration, the main goal is to show that we can rely on the commercial FPGAs and processors in a space environment. We describe our FPGA and processor radiation mitigation strategies that have resulted in our eight PowerPCs being available and error free for more than 99.99 of the time over the period of four years. This positive data and proven reliability of the SpaceCube on ISS resulted in the Department of Defense (DoD) selecting SpaceCube, which is replacing an older and slower computer currently used on ISS, as the main avionics for two upcoming ISS experiment campaigns. This paper will show how we quickly reconfigured the SpaceCube system to meet the more stringent reliability requirements
In this paper we report on the work we performed to extend the logic model checker SPIN with built-in support for the verification of periodic, real-time embedded software systems, as commonly used in aircraft, automobiles, and spacecraft. We first extended the SPIN verification algorithms to model priority based scheduling policies. Next, we added a library to support the modeling of periodic tasks. This library was used in a recent application of the SPIN model checker to verify the engine control software of an automobile, to study the feasibility of software triggers for unintended acceleration events.