Avionics and Flight Software

V. Hunter Adams (vha3), MAE 4160/5160, Spring 2020

In [1]:
from IPython.display import Latex
from IPython.display import Image
from IPython.core.display import HTML

Command and Data Handling (C&DH)

The command and data handling subsystem, also known as avionics or on-board processing includes all of the flight computers, flight electronics, and flight software on a spacecraft. This is a particularly cross-cutting subsystem since, on modern spacecraft, it interfaces with nearly every other subsystem. This is also a subystem that, perhaps more than any other, has evolved since the early days of space exploration. It's worth spending some time on the history of flight electronics in order to appreciate this development.

Apollo Flight Computer

Each Apollo command module and lunar lander carried an Apollo Guidance Computer (AGC) which provided computation and electronic interfaces for the guidance, navigation, and control of the spacecraft. The astronauts interacted with this computer via a numerical display and keyboard called the "DSKY" ("display and keyboard"). The computer casing is shown below left, and the DSKY below right.

In [2]:
Image("oldschool.jpg", width=400)
Out[2]:

The DSKY interface:

In [4]:
Image("dsky.png", width=400)
Out[4]:

Some stats:

  1. 16-bit word length (14 bits + sign + parity)
  2. Memory cycle time: 11.7 microsec
  3. Add time: 23.4 microsec
  4. Multiply time: 46.8 microsec
  5. Divide time: 81.9 microsec
  6. Memory: 36,864 words (ROM), 2,048 words (RAM)
  7. 34 normal instructions
  8. 55 Watts
  9. 70 lbs

Think about this. The flight computer had only 2048 words (4096 bytes) of RAM. This is the part of the memory that was being manipulated for doing guidance, navigation, and control calculations. Is it clear why recursive estimation algorithms like the Extended Kalman Filter were a necessity for Apollo? You can go on Wikipedia and read about every register in this computer, and see the exhaustive list of commands that one could send to the computer (it's not a long list).

The RAM memory was magnetic core memory. The ROM was built on core rope memory. Bits were stored by magnetication of tiny toroids of wire, hand-woven. The picture below is the ROM memory for the Apollo computer.

In [5]:
Image("rope.jpg", width=400)
Out[5]: