On This Page

FSW Implementation Model

FSW Layer Model

Related Information

See the FSW Level III Specification for the requirements driving the FSW design.

Flight Software Architecture

FSW Implementation Model

FSW subsystems fall into three general functional categories -- drivers, services, and applications. These categories form the basis of the FSW architecture.

In terms of implementation, FSW is partitioned into functional blocks based on requirements documents and instrument to hardware interface control documents. Functional blocks are then mapped into packages, the fundamental unit of the FSW code management system. Packages are the logical organization of software into groupings of files and associated data for documentation, testing and compilation purposes. Packages provide specific services or capabilities and are the components from which the functional blocks are constructed.

Packages have short mnemonic names; for instance, the LIM (LAT Instrument Manager) package implements mode control and instrument safety control functionality. These package names and mnemonics will be used throughout the rest of this document.

FSW Layer Model

The following figure depicts the layers of the FSW architecture and identifies the FSW subsystems in each layer by their package name and mnemonic.

The FSW architecture is built up in 5 layers:

Basic Services Layer. This layer includes a variety of functional blocks, but generally speaking, packages in this layer deal with basic CPU operations (VxWorks task management, PCI bus configuration and control, software error messaging, CPU clock and timer control, memory management, file system management, hardware watchdog management, CPU performance monitoring, etc) via access to low-level features provided by VxWorks. FSW packages in all other layers may call on functionality from the Basic Services Layer.

Driver Layer. This layer covers hardware-level control of data transmission over the 1553 bus interface with the spacecraft and the LCB board interface to the LATp internal communications pathways. The Driver Layer is implemented in the Command and Telemetry Data Bus (CTDB) and LAT Communications Board (LCBD) driver packages. FSW in the Driver Layer satisfies most of the hardware interface functional requirements defined in Software Requirements Specification [1]. The Driver Layer is accessed by Application packages indirectly via the intertask communications system, or in some cases directly through the CTDB or LCBD packages.

Service Layer and Abstract Communications Layer. These two layers are closely coupled to allow FSW to (1) forward telecommands received inbound over the 1553 interface to tasks and send telemetry from these tasks outbound over the same interface, (2) provide the abstract intertask communications infrastructure used by Application Layer packages to coordinate the activities of their master and slave tasks within and between CPUs, and (3) provide an addressing pathway by which data can be written over the Science Data Interface by the packages that need to do so. The Service Layer and Abstract Communications Layer are implemented in the Command and Telemetry/1553 Service (CTS/CTX/CRX), LCB Service (LCS/LTX/LRX), and Intertask Communications (ITC) packages.

Application Layer. This layer provides functionality that satisfies the great majority of the FSW formal requirements. Application packages provide time services; process and act on telecommands and issue alert, diagnostic, and housekeeping telemetry; provide user control of the onboard EEPROM file system; provide memory management capabilities; manage operational modes and instrument safety; manage instrument thermal control; retrieve low rate science counter data; filter, compress, and package physics event data; collect, compress, and package instrument charge injection calibration and diagnostic data; and manage GRB detection and response. The Application Layer is implemented in the LAT Instrument Manager (LIM), LAT Charge Injection Calibration (LCI), LAT Physics Acquisition (LPA), LAT Housekeeping (LHK), LAT File System (LFS), LAT Spacecraft Messages (LSM), LAT Thermal Control (LTC), LAT Multiplexed Counters (LMC), and LAT Computer Manager (LCM) packages. All applications operate independently, except for LPA and LCI, which depend on LIM for mode control.