-----------------------------------------------------------------------

  **SOHO GYROLESS AOCS**

  **ACU SOFTWARE**

  **USER MANUAL**

  -----------------------------------------------------------------------

  ------------------- ---------------------------------------------------
  Prepared by :       

                      G.L.R. Johnson

                      

  Checked by :        

                      J.S. Stevens

                      

  Authorised by :     

                      M.J. Brewer
  ------------------- ---------------------------------------------------

© MATRA MARCONI SPACE UK Limited 2023

Matra Marconi Space UK Limited owns the copyright of this document which
is supplied in confidence and which shall not be used for any purpose
other than that for which it is supplied and shall not in whole or in
part be reproduced, copied, or communicated to any person without
written permission from the owner.

MATRA MARCONI SPACE UK Limited

P.O. Box 16, Filton, Bristol, BS34 7YB

**PAGE ISSUE RECORD**

The current document comprises the following pages at the issues shown.
This version of the document has been produced using Microsoft Word
version 6.0. Previous issues had been produced using DisplayWrite4.

  ----------------------------------- -----------------------------------
  Page                                Issue

  A1-4                                5

  1-1                                 5

  2-1                                 5

  3.1-1..13                           5

  3.2-1..2                            5

  3.3-1..21                           5

  3.4-1..43                           5

  3.5-1..51                           5

  3.6-1..28                           5

  3.7-1                               5

  3.8-1..7                            5

  3.9-1..2                            5

  4-1..4-10                           5

  5-1                                 5

  App A-1..12                         5

  App B-1                             5

  App C-1                             5
  ----------------------------------- -----------------------------------

**DOCUMENT CHANGE LOG**

This document has the configuration status history shown.

  ------- -------- ------------ ---------------- -------------------------
  Issue   Change   Revised Date Affected Pages   Relevant Information
          No.                                    

  1       \-       March 1993   All              Initial issue

  2       \-       October 1993 All              Re-issue for PFM TAR

  3       \-       January 1994 All              Re-issue for SW FM_2_2

  4       \-       March 1994   All              Re-issue for SW FM_2_3

  4A      \-       January 1995 See page issue   Minor amendments
                                record for Issue 
                                4A               

  4B      \-       May 1995     See page issue   ABACU201, 205, 210 and
                                record for Issue SSU patches
                                4B               

  4C      \-       February     See page issue   Patch 5
                   1996         record for Issue 
                                4C               

  5       \-       July 1999    All              Gyroless operation

                                                 
  ------- -------- ------------ ---------------- -------------------------

**CONTENTS**

1\. INTRODUCTION

> 1.1 PURPOSE
>
> 1.2 SCOPE
>
> 1.3 VALIDITY
>
> 1.4 BACKGROUND
>
> 1.5 DOCUMENT OVERVIEW

2\. REFERENCE DOCUMENTS

3\. SOFTWARE OPERATIONS

3.1 DESCRIPTION OF SOFTWARE DESIGN

3.1.1 Introduction

3.1.2 Hardware Environment

3.1.3 Software Structure

3.1.4 Dynamics & Time Management

3.1.5 Modes

3.1.6 Input/Output

3.2 INITIALISATION AND RE-START

3.2.1 Initialisation Procedure

3.2.2 Cold Resets

3.2.3 Warm Resets

3.2.4 Software Resets

3.3 NOMINAL FUNCTIONS

3.4 TELEMETRY

3.4.1 Introduction

3.4.2 TM Packet Transmission

3.4.3 TM Packet Generation

3.5 TELECOMMAND

3.5.1 General

3.5.2 Command Receipt and Verification

3.5.3 Command Execution

3.6 CONTINGENCY FUNCTIONS

3.6.1 General

3.6.2 OBS Errors

3.6.3 Error Report Formats

3.7 SINGLE EVENT UPSETS

3.8 SW MAINTENANCE

3.8.1 Software Structure

3.8.2 Principles For Software Update

3.8.3 Detailed Procedures

3.8.4 Summary of the methods employed in the Gyroless update

3.9 MEMORY MAP

4\. SOFTWARE BUILDING

5\. GLOSSARY

APPENDIX A: MAPPING OF URD APPENDIX B DATA NAMES TO NAMES USED IN
SOFTWARE

APPENDIX B: CHANGE INFORMATION

APPENDIX C: PATCHES

# 1. [INTRODUCTION]{.underline}

## 1.1 PURPOSE

> To define the operational aspects of the S/W in a manner sufficient
> for ground support to manipulate the S/W.
>
> To define how to maintain the S/W, both on-ground and in-flight.

## 1.2 SCOPE

> This document reflects the current design of the OBS as specified in
> the Software Design Document, AD.1.

## 1.3 VALIDITY

> This document is valid for the software version FM_3_0, ie, FM_2_3A
> patched to implement the requirements for gyroless operation.

## 1.4 BACKGROUND

> This S/W is the onboard software performing the AOCS functions of the
> SOHO satellite. It is embedded in the ACU. Following the loss of the
> spacecraft in June 1998 and its subsequent recovery in September 1998,
> the software now controls the attitude and orbit of the spacecraft
> without the use of data previously provided by the gyroscopes which
> are no longer functioning.

## 1.5 DOCUMENT OVERVIEW

> This document is structured so as to fit within the Subsystem User\'s
> Manual with the minimum of change. Thus Chapter 3 contains the
> required sub-sections as laid down for that Manual. Section 3.n
> corresponds to section 4.X.1.3.n of the Subsystem User\'s Manual.
>
> Due to this structure, the exact order as given in the PSS-05
> standard, AD.4, is not followed. However, all the required content of
> that standard that is applicable is included.
>
> Chapter 4 details more fully the maintenance of the software.

# 2. [REFERENCE DOCUMENTS]{.underline}

> AD.1 SOHO Gyroless AOCS ACU Software Design Document
>
> SH-MMS-DS-7018 Issue 1, July 1999
>
> AD.2 SOHO AOCS Telemetry Packet Requirements Definition
>
> SH-BAE-RS-638 Issue 8A, July 1999
>
> AD.3 SOHO AOCS ACU Telecommand Requirements Definition
>
> SH-BAE-DS-637 Issue 9A, July 1999
>
> AD.4 ESA Software Engineering Standards PSS-05-0 Issue 1, Jan. 1987
>
> AD.5 Software Quality Assurance Plan
>
> SH-BAe-PL-4012 Issue 1 Nov 1992
>
> RD.1 Reference Manual for the Ada programming language
>
> ANSI/MIL-STD-1815A
>
> RD.2 Military Standard Sixteen-bit Computer Instruction Set
> Architecture, MIL-STD-1750A. Notice 1
>
> RD.3 TLD Documentation Set : VAX(VMS) - MIL-STD-1750A, Version 2, 1991
>
> RD.4 Software Requirements Document
>
> SH-BAe-RS-4029 Issue 4 (Not revised for the Gyroless software)
>
> RD.5 AOCS MACS Bus Transaction Protocols
>
> SH-BAE-ID-698 Issue 3
>
> RD.6 SOHO AOCS Software User Requirements
>
> SH-BAE-RS-632 Issue 8, Dec 1992
>
> RD.7 SOHO AOCS ACU Hardware-Software Interface Definition
>
> SH-BAe-IS-626 Issue 2A, October 1993.
>
> RD.8 SOHO Gyroless AOCS ACU Software User Requirements
>
> SH-MMB-RS-7014 Issue 2, July 1999
>
> RD.9 SOHO AOCS ACU Software Gyroless Update Technical Note
>
> SH-MMB-TN-7017 Issue 1, July 1999

# 3. [SOFTWARE OPERATIONS]{.underline}

## 3.1 DESCRIPTION OF SOFTWARE DESIGN

### 3.1.1 Introduction

> The OBS (ACU On-Board Software) is an embedded cyclic executive with a
> fundamental time slot of 10ms. The major functionality of the OBS
> consists of
>
> · Attitude control law processing
>
> · Telecommand handling
>
> · Telemetry generation
>
> · ACU health checking
>
> The [Attitude control law processing]{.underline} function calculates
> required actuator commands from sensor inputs using a control law
> dependent on the AOCS Operational Mode. This control is performed (in
> most operational modes) every 50ms. It is to handle the timing
> constraints of the unit interfaces, that the software executes with a
> time slot period of 10ms.
>
> The [Telecommand handling]{.underline} function receives, verifies and
> executes commands transmitted from the OBDH. Whilst the receipt and
> verification is asynchronous, the execution is performed in a
> synchronous manner. The result of executing a telecommand is generally
> to change the On-Board parameters such as mode dependent control
> parameters, or to access units and hardware. A further set of
> telecommands exists to perform fault diagnosis in non-nominal
>
> situations.
>
> The [Telemetry generation]{.underline} function generates a 556-word
> packet every TM period. This is then transmitted to the OBDH (on OBDH
> request) in the next TM period1. This telemetry generation and
> transmission is synchronised by means of a Format Pulse transmitted to
> the ACU at the start of every TM period by the OBDH.
>
> The [ACU health checking]{.underline} function performs checks on the
> ACU hardware. Most checks are performed at initialisation with a check
> on the RAM being performed once every 24 hours. In addition, fatal
> hardware error conditions can result in a reset of the OBS.
>
> In order to handle the various AOCS Operational Modes, 7 modes (out of
> a maximum of 15) are currently defined in terms of units used, control
> law implemented and software functions active. Transitions between
> these modes are controlled solely by means of Mode Relays in the ACU.
>
> The OBS can exist in one of two States - the Initialisation State or
> the Active State. The Initialisation State is described in section 3.2
> and the Active State is described in section 3.3.

\_\_\_\_\_\_\_\_\_

> 1The TM period is defined as 3\*1279/256s = 14.988285s.

### 3.1.2 Hardware Environment

3.1.2.1 Overview

> The OBS executes on a MAS281 processor within a purpose built ACU
> (Attitude Control Unit). This processor executes the 1750A ISA.
>
> All communication is performed through dedicated hardware interfaces
> integral to the ACU. These are

· A MACS bus interface to the AOCS units

> · 2 Memory Load telecommand channels for receiving block telecommand :
> one channel for header words and one channel for data words
>
> · A Serial Digital telemetry channel for transmitting telemetry
> packets
>
> · A Bi-level telemetry channel for indicating completion of
> telecommand receipt
>
> · A relay interface for determining the commanded mode.
>
> This does [not]{.underline} include OBS-independent interfaces by
> which ground can separately acces the H/W features.

3.1.2.2 Memory Organisation

3.1.2.2.1 PROM

> There is up to 32 Kwords of PROM located at addresses 000016 to
> 7FFF16. This acts as a \"disk\" containing the instructions and
> constants of the OBS. On initialisation of the ACU and on a software
> reset, the OBS copies the contents of the PROM into RAM and then
> powers down the PROM. (24 Kwords are actually fitted as FM_2_3A).

3.1.2.2.2 RAM

> There are 64 Kwords of RAM located at addresses 000016 to FFFF16. The
> first 32K of RAM is located at the same addresses as the PROM. An
> overview of the OBS occupancy of the RAM is given in §3.9.

3.1.2.2.3 OBS Delivery

> The OBS is currently delivered as a Load Module suitable for direct
> loading into memory. This Load Module (called an LDM file) is that
> produced by the TLD Ada Compiler System version 2, see RD3. The
> required delivery format is Extended TekHEX or Intel Hex. The
> Build_SW_Version utility discussed in Section 4, in addition to
> generating a .LDM file, provides files .UP (high bytes) and .DWN (low
> bytes) in Intel Hex format.

3.1.2.3 ACU Interfaces

3.1.2.3.1 I/O Addresses

> The I/O addresses used by the OBS are as given in Table 3.1-1. This
> table defines all the I/O addresses used: the standard 1750A I/O
> addresses are given in Table 3.1-1(a), the ACU-specific I/O addresses
> are given in Table 3.1-1(b). Table 3.1-1(c) lists those I/O addresses
> that are only used by the Ada kernel SPK. All I/O is performed by use
> of the 1750A XIO instruction or by DMA (for MACS I/O).

3.1.2.3.2 Interrupts

> The sixteen 1750A interrupts are handled as indicated in Table 3.1-2.

3.1.2.3.3 NPU

> The NPU output is set low (= 0) when the OBS traps a non-recoverable
> error. The OBS can never set the NPU output high (= 1). Note that the
> OBS may fail to set the NPU output low on a non-recoverable error if
> the OBS is itself fatally damaged.
>
> Section 3.6 defines the non-recoverable errors that will force this
> output to be set low.²
>
> This output has the following meaning:
>
> High (= 1) No non-recoverable errors have occurred since the last
>
> Cold Reset.
>
> Low (= 0) At least one non-recoverable error has occurred since
>
> the last Cold Reset.

3.1.2.3.4 Faults

> There are only two faults that are catered for in the design - Memory
> Parity and Watchdog Timeout. All other faults are presumed never to
> occur and are simply reported in telemetry.
>
> In the nominal case, either of the Memory Parity or Watchdog Timeout
> faults will result in a H/W triggered reset of the OBS. On recovery,
> the OBS then reads the FT and reports if the reset has been due to a
> Memory Parity or watchdog Timeout. It is possible for ground to
> override this H/W action. If this is performed, the response to either
> of these faults is to report the fault in telemetry and continue
> processing.
>
> The BIT bits are reported in a separate manner during the initialisa-
> tion process. The processor self-test is performed as part of the
> normal H/W initialisation sequence and the result is stored in the BIT
> bits. These bits are then extracted by the OBS and stored.

²It is [not]{.underline} possible to set the NPU output high.

3.1.2.3.5 SURE

> The SURE output is set low (=0) when the OBS changes from the
> Initialisation State of the Active State. The OBS will only set the
> SURE output high (=1) on the occurrence of a Software Reset. SURE is
> set high by hardware reset (warm and cold).
>
> This output has the following meaning:
>
> High (=1) OBS in Initialisation state
>
> Low (=0) OBS in Active state

┌─────────────┬──────────┬───────────────────────────────────────┐

│ I/O Address │ Mnemonic │ Use │

├─────────────┼──────────┼───────────────────────────────────────┤

│ 2000 │ SMK │ Set the interrupt mask │

│ 2001 │ CLIR │ Clear the PIR and FT │

│ 2002 │ ENBL │ Enable interrupts │

│ 2003 │ DSBL │ Disable interrupts │

│ 2004 │ RPI │ Reset an individual pending interrupt │

│ 200A │ RNS │ Reset Normal Power Up discrete │

│ 200E │ WSW │ Write the status word (SW) │

│ 4004 │ ESUR │ Enable Start-up ROM │

│ 4005 │ DSUR │ Disable Start-up ROM │

│ 4006 │ DMAE │ Enable Direct Memory Access │

│ 400E │ ITB │ Read Timer/B │

│ A000 │ RMK │ Read the interrupt mask │

│ A004 │ RPIR │ Read the PIR │

│ A00F │ RCFR │ Read and Clear the FT │

└─────────────┴──────────┴───────────────────────────────────────┘

[Table 3.1-1 (a): Standard 1750A I/O Addresses used in OBS]{.underline}

┌─────────────┬──────────┬───────────────────────────────────────────┐

│ I/O Address │ Mnemonic │ Use │

├─────────────┼──────────┼───────────────────────────────────────────┤

│ 0300 │ TMRA │ Write to TM Register A │

│ 0301 │ TMRB │ Write to TM Register B │

│ 0303 │ TMCR │ Write to TM Control Register │

│ 0307 │ TBWA │ Write to Toggle Bit/TC Control Register │

│ 030C │ LLIR │ Write to Low level Instruction address │

│ │ │ Register (macs if) │

│ 030D │ HLIR │ Write to High Level Instruction address │

│ │ │ Register (macs if) │

│ 030E │ CNR │ Write to Configuration Register (macs if) │

│ 030F │ ISL │ Write to Interrupt Status Latch │

│ 0310 │ LLRR │ Initiate Low Level Transaction │

│ 0311 │ HLRR │ Initiate High Level Transaction │

│ 0318 │ LMC │ Write to Low Memory Control │

│ 031C │ WTA │ Write to Watchdog Timer │

│ 8302 │ MRA │ Read Mode Relay │

│ 8304 │ TCRA │ Read TC Register A │

│ 8305 │ TCRB │ Read TC Register B │

│ 8306 │ TBRA │ Read Toggle Bit │

│ 830C │ ISR │ Read Interrupt Status Register (macs if) │

│ 830D │ GSR │ Read General Status Register (macs if) │

└─────────────┴──────────┴───────────────────────────────────────────┘

[Table 3.1-1 (b) : ACU-specific 1750A I/O Addresses used in
OBS]{.underline}

┌─────────────┬──────────┬───────────────────────────────────────┐

│ I/O Address │ Mnemonic │ Use │

├─────────────┼──────────┼───────────────────────────────────────┤

│ 4008 │ TAS │ Timer A Start │

│ 4009 │ TAH │ Timer A Halt │

│ 400A │ OTA │ Output Timer A │

│ 400C │ TBS │ Timer B Start │

│ 400D │ TBH │ Timer B Halt │

│ 400E │ OTB │ Output Timer B │

└─────────────┴──────────┴───────────────────────────────────────┘

> [Table 3.1-1 (c): SPK-specific I/O Addresses used in OBS]{.underline}

┌─────┬───────────────────────┬─────────┬────────────────────────────┬────────┐

│ No. │ Name │ Note │ OBS actions │ Masked │

├─────┼───────────────────────┼─────────┼────────────────────────────┼────────┤

│ 0 │ Power down │ 1,2,3 │ Report error │ N/A │

│ 1 │ Machine │ 1,2 │ Determine cause & report │ N/A │

│ │ error │ │ in TM │ │

│ 2 │ TM data │ 5 │ Transfer one TM word to │ No │

│ │ │ │ H/W │ │

│ 3 │ Float │ 1 │ Report error in PHR │ No │

│ │ overflow │ │ │ │

│ 4 │ Fixed │ 1 │ Report error in PHR │ No │

│ │ overflow │ │ │ │

│ 5 │ BEX │ 1,2,3 │ No action │ No │

│ 6 │ Float │ 1 │ Report error in PHR │ No │

│ │ underflow │ │ │ │

│ 7 │ Timer A │ 1 │ Report event in PHR │ Yes │

│ │ overflow │ │ │ │

│ 8 │ S/C clock │ │ Increment LOBT │ No │

│ │ Pulse │ │ │ │

│ 9 │ Timer B │ 1 │ Report event in PHR │ Yes │

│ │ overflow │ │ │ │

│ 10 │ RTCI │ │ Start synchronous │ No │

│ │ │ │ scheduling │ │

│ 11 │ TC Header │ 5 │ Start receiving a Block │ No │

│ │ │ │ TC │ │

│ 12 │ TC Data │ 5 │ Receive a TC word │ No │

│ 13 │ Format │ 5 │ Make TM packet available │ No │

│ │ Pulse │ │ for OBDH │ │

│ 14 │ MACS │ │ Report error │ Yes │

│ 15 │ unused │ │ Report error │ Yes │

└─────┴───────────────────────┴─────────┴────────────────────────────┴────────┘

Notes

1\. 1750A defined interrupt

2\. Cannot be disabled

3\. Cannot be masked

4\. The column \"Masked\" defines the default masking performed by the
OBS

5\. The standard handler for this interrupt is disabled while the
software is

in Inactive Mode (see section 3.1.5)

[Table 3.1-2: Overview of Interrupt Handling]{.underline}

3.1.2.4 Telecommand Interface

> The OBS receives all telecommand words by means of I/O addresses
> controlled by interrupts.

The I/O addresses used are

TCRA, TCRB Read from two 8-bit registers to a 16-bit word

TBWA Initialise interface via TC control register

> The interrupts used are

Interrupt 11 TC header word =\> start of block TC

Interrupt 12 TC data word

> The telecommand interface, regarding the expectations of the OBS, is
> given in section 3.5.

3.1.2.5 Telemetry Interface

3.1.2.5.1 Serial Telemetry

> The Serial Telemetry interface is controlled by means of two
> interrupts :

Interrupt 13 Format Pulse =\> Start transmission of TM packet

Interrupt 2 Send TM data word

The I/O addresses used for TM transmissions are

TMRA, TMRB Write 16-bit word to two 8-bit registers

TMCR Initialise interface via TM Control Register

> It is to be noted that the OBS is a slave to the OBDH regarding the
> transmission of telemetry through this interface.

3.1.2.5.2 Bi-level Telemetry

> This Telemetry interface is accessed on every complete receipt of a
> block telecommand. The OBS action is to toggle the bit.

The I/O addresses used are

TBWA, TBRA Write/Read the toggle bit

3.1.2.6 MACS Interface

3.1.2.6.1 High-Level Communications

> The MACS Broadcast is issued in a synchronous manner. Separate tasks
> set up the subaddress bits.
>
> The communication is performed by means of a high-level instruction
> request.

The I/O addresses used are

GSR Determine if the MACS bus is ready for communication

HLRR Initiate a High-Level Transaction

ISL Clear the Interrupt Status Latch

RPI Reset Interrupt 14 in the PIR

3.1.2.6.2 Low-Level Communications

> MACS Communications are made via TI, RC, and RD to the AOCS units when
> required. Such requests are made in synchronous tasks. In addition RCP
> communications can be issued on ground command.
>
> All communications are performed by means of low-level instruction
> requests.

The I/O addresses used are

GSR Determine if the MACS bus is ready for communication

LLRR Initiate a Low-Level Transaction

ISL Clear the Interrupt Status Latch

ISR Test for EIC asserted

RPIR Read if Interrupt 14 asserted in the PIR

RPI Reset Interrupt 14 in the PIR

The interrupt used is

> Interrupt 14 Indicates end of transmission (by noting if present in
>
> the PIR). It is then reset. Note that interrupt 14 is nominally
> masked.

3.1.2.6.3 Other Accesses

> Other accesses through the MACS interface are to initialise the MACS
> bus and to enable and disable the MACS bushead.

The I/O addresses used are

HLIR, LLIR Initialise the MACS bus

> CNR Initialise the MACS bus and enable/disable the MACS bushead.

DMAE Enable DMA when initialising the MACS bus

3.1.2.7 Mode Relays

> The OBS reads the 5 x 1-bit mode relays in a synchronous manner and
> responds if required with a mode transition.

The I/O address used is

MRA Read the mode relays.

### 3.1.3 Software Structure

3.1.3.1 Overview

The OBS is structured into three separate layers:

1\. IOS I/O services

2\. SWS Software Services

3\. ASW Application Software

3.1.3.2 IOS Layer

This layer performs the following functions:

· MACS Interface functions

· Bi-level Telemetry interface function

· TC and TM word interface functions

· H/W kernel interface functions

· Start-up memory test functions

3.1.3.3 SWS Layer

This layer performs the following functions:

· AOCS unit communications & data digitization

· TC receipt & verification & partial execution

· Level 0 and 1 TC execution

· Telemetry packet management

· Partial Telemetry packet generation

· Task scheduling

· Time Management

· Error report management

· Interrupt services for all except interrupt 2 (TM word I/F)

3.1.3.4 ASW Layer

This layer performs the following functions:

· Mode transition control, verification, and execution

· Sensor data processing

· Control law calculations

· Actuator torque processing

· Partial Telemetry packet generation

· Partial TC execution

### 3.1.4 Dynamics & Time Management

3.1.4.1 Clocks

3.1.4.1.1 Clocks Used

> There are three distinct clocks used in the OBS, all of which are
> interrupt driven:

· Format Pulse

· Spacecraft Clock Pulse

· RTCI (Real-Time Clock Interrupt)

> These three clocks are treated by the OBS independently, i.e. it is
> assumed that no synchronisation exists between any of these clocks.

3.1.4.1.2 Format Pulse

> The Format Pulse occurs every TM period by means of Interrupt 13. The
> OBS uses this to make a TM packet ready for transmission to the OBDH
> and to start the gathering of data for the TM packet to be ready at
> the next Format Pulse.

3.1.4.1.3 Spacecraft Clock Pulse

> The Spacecraft Clock Pulse occurs every 1/256s by means of Interrupt
> 8. The OBS uses this to maintain the LOBT (Local On-Board Time), see
> §3.1.4.2.2.

3.1.4.1.4 RTCI

> The RTCI occurs every 10 mS by means of Interrupt 10. The OBS uses it
> to control the synchronous scheduler, see section 3.1.4.3.

3.1.4.2 Time Management

3.1.4.2.1 Available Timers

The following timers are available to the OBS:

· LOBT and associated Datation time

· 1750A timers

> Of these, only the LOBT and Datation timers are used in a significant
> manner by the OBS. The primary use of these timers is to put a time on
> Telemetry fields and error occurrences for ground analysis.

3.1.4.2.2 LOBT

> The LOBT is a 48-bit word where the 8 least significant bits (bits 40
> to 47) are always set to zero. It is incremented on occurences of
> Interrupt 8.

The LOBT can be changed with the ABACU108 telecommand.

> The real resolution is 1/256s, the period of the Spacecraft Clock
> Pulse (this is the BCP3 clock after division by 256 in ACU hardware).
> This is the resolution given by the most significant 40 bits - bits 0
> to 39.

3.1.4.2.3 Datation Time

> The Datation time is a 16-bit timer with a resolution of 1/256s that
> can measure up to 256s. This is used to give a time to particular
> Telemetry variables, e.g. sensor data, and to the occurrence of
> reportable errors.
>
> The Datation time is part of the LOBT; equal to bits 24 to 39 of the
> LOBT.

3.1.4.2.4 ACU Timers

> The ACU contains two timers within the 1750A processor - Timer/A and
> Timer/B. Neither of these timers is used by the OBS except for the
> inclusion of the Timer/B value as a word in Telemetry.
>
> Note that these timers are free-running in the processor and are not
> synchronosed to any external timers or clocks.

3.1.4.3 Software Dynamics

3.1.4.3.1 Overview

The OBS contains two distinct scheduler:

· a synchronous scheduler synchronised to the RTCI.

· a background scheduler executing when the CPU is free.

> · the schedulers are supported by sets of tables. Section 3.8.3.1
> provides details of those tables.

3.1.4.3.2 Synchronous Scheduler

> The synchronous scheduler operates by executiong a set of synchronous
> tasks in a sequence within a 10 mS slot. The synchronous tasks have
> the following characteristics:

a\) Priority within the slot

b\) Period

c\) Phase

> The [Priority within the slot]{.underline} defines the order of
> synchronous tasks within a particular slot. This is invariant for all
> slots and is a relationship between all tasks. It is not possible to
> have three sequences (A, B, C), (C, D, E) and (E, A, B) in different
> slots without repeating task E within the task tables.
>
> The [Period]{.underline} defines how often a task executes. The period
> is defined as the number of 10 mS slots [between]{.underline}
> successive executions. A value of \"-1\" is used to deactivate a task
> following execution.
>
> The [Phase]{.underline} defines the number of 10 mS slots between the
> current execution of the scheduler and the first execution of the
> task. This phase difference is then retained in successive executions
> of the task. Normally the Phase is a number in the range \[0,
> Period-1\]. In certain cases other values are used:

-1 Used to immediately deactivate a task

\>= Period Used to delay a task execution for a specified time.

> The initial values of inactive tasks are Period = \"arbitrary\" and
> Phase = -1.
>
> An [overrun]{.underline} is defined as when the synchronous scheduler
> including the execution tasks has not completed when the next RTCI
> occurs. The OBS is capable of handling such an overrun up to a maximum
> of a 10 mS overrun period. The OBS reports the recoverable error
> ERROVRN1 and continues with the currently executing synchronous
> scheduler until either the next RTCI, in which case the
> non-recoverable error ERROVRN2 occurs, or until this synchronous
> scheduler completes, in which case the synchronous scheduler is
> immediately reactivated for the next (now current) slot.
>
> Another definition of an overrun is that an overrun occurs when the
> slot load is greater than 10 mS. With the scheduling mechanism
> described above, so long as the mean of two consecutive slot loads is
> less than 10 mS, then an overrun due the first slot load can be
> accommodated over successive slots.

3.1.4.3.3 Background Scheduler

> The background scheduler executes when the CPU is not active with the
> synchronous scheduler. It is pre-empted by the synchronous scheduler
> on the occurrence of the RTCI.
>
> The equivalent of the overrun of a synchronous scheduler is the
> occurrence of an infinite loop within a task scheduled by the
> background scheduler. The OBS checks for the occurrence of such an
> infinite loop by checking that the backgound scheduler run counter
> changes within a certain time. If not, then the non-recoverable error
> ERRBCKST is reported. (For further infomation see Section 3.6.2).

3.1.4.3.4 Asynchronous Event Handling

> There is no separate asynchronous scheduler in the OBS. However,
> asynchronous actions can be performed in the following manner:
>
> Set the Period = -1 and the Phase = +ve number. The task will wait for
> Phase slots and then execute once only.

This is used in the OBS to schedule timeout tasks.

> The OBS handles other asynchronous actions by using a synchronous task
> to check a flag. Only if the flag is set will further actions be
> performed.

### 3.1.5 [Modes]{.underline}

The eight defined modes are:

> IAM This is the initial default mode following an ACU reset, before
> any valid mode has been obtained from the mode relays. Neither
> telemetry nor telecommanding software functions are active in this
> mode, the only mode for which this is true.
>
> SBM This mode is used for certain activities such as during solar
> array deployment. There is no control law execution, but telemetry and
> telecommanding functions are active.
>
> ISA This mode applied during the post separation phase and, again,
> during the post solar array deployment phase. The purpose of the mode
> was to achieve initial alignment of the spacecraft\'s Xo optical
> reference axis with the sun line and to control the spacecraft\'s roll
> attitude. This mode is no longer a valid mode for gyroless operations.
> Therefore, transitions into this mode are inhibited by the OBS.
>
> FSA This mode was entered during the FPSS, SSU, and Reaction Wheel
> acquisition phase. The purpose of the mode was to retain the
> spacecraft\'s Xo axis sun pointing and roll attitude while the
> absolute roll attitude was determined on the ground from SSU star
> mapping data. This mode is no longer a valid mode for gyroless
> operations. Therefore, transitions into this mode are inhibited by the
> OBS.
>
> RMW This mode is entered during the FPSS, SSU and Reaction Wheel
> Acquisition Phase and the on-station and station keeping phases. This
> mode was also entered for MCC1 Evaluation, MCC1 phase, Transfer Orbit,
> and the MCC2 phase, the halo orbit isertion and the halo orbit trim
> manoeuvre. RMW mode will be used for both Station keeping and Momentum
> management. The purpose of the mode is to roll the spacecraft to the
> attitude required for any orbit correction or maintenance manoeuvres,
> and, following such manoeuvres, to re-establish the required
> spacecraft roll attitude while maintaing Xo axis sun pointing.
>
> CRP This mode has been introduced for gyroless operations and will be
> used to recover from ESR and as a recovery mode in case of SSU SEU
> outages or RW speed anomaly for both RMW & NM. CRP mode allows roll
> manoeuvres to be performed and enables HGA operations for medium or
> high rate telemetry. Pitch and yaw attitude is provided by the FPSS
> whiule roll attitude information is provided by processed wheel speed
> data, with actuation also by means of the wheels.
>
> CSP This mode was entered during the MCC1 phase, the MCC2 phase, the
> halo orbit insertion phase, the halo orbit trim phase and the
> station-keeping phase. This mode was used to carry out delta-V
> manoeuvres during the mission and to control the spacecraft attitude
> during the manoeuvres, and was also used for momentum management
> operations. This mode is no longer a valid mode for gyroless
> operations. Therefore, transitions into this mode are inhibited by the
> OBS.
>
> NM This mode is used during the on-station phases. This mode was also
> used during the MCC1 evaluation phase, MCC1 phase, transfer orbit
> phase, MCC2 phase, halo orbit insertion phase, halo orbit trim phase.
> The purpose of the mode is to establish and maintain accurate
> sun-pointing to permit high quality scientific observations to be made
> by the experiments on-board the spacecraft. During this mode, roll
> steering law, and Payload Calibration Profile Generator functions can
> be operated.

### 3.1.6 Input/Output

> The primary input/output mechanisms (for ground-based operations) are
> the Telemetry packets and Block telecommands. These are defined fully
> in sections 3.4 and 3.5 respectively.

## 3.2 INITIALISATION AND RE-START

### 3.2.1 Initialisation Procedure

The initialisation sequence performed by the OBS is:

1.1 OBS state = Initialisation

1.2 Process Fault Register (FT) and clear

> 1.3 Determine reset cause and distinguish between a warm and a cold
> reset

2.1 Perform PROM check. If fail then clear NPU and go to 1.1

> 2.2 Perform destructive RAM check. If fail then clear NPU and go to
> 1.1

3.1 Copy the copy procedure code from PROM to high RAM

3.2 Copy the PROM code to high RAM

> 3.3 Initialise TYPE-2 variables by a single copy of the default values
> in PROM to the RAM locations. (This is actually performed as part of
> action 3.2 above).

3.4 Power off the PROM and set data fetches to RAM

> 3.5 Copy the code copied by 3.2 to low RAM (at the same addresses as
> when in PROM)

3.6 Initialise the TYPE-1 variables to zero.

4.1 Elaborate the Ada Run-Time System (as required)

4.2 Set up the stack

4.3 Elaborate the OBS

5.1 Initialise the MACS interface

5.2 Initialise the RTU interface

5.3 If a Cold Reset then set the Previous Mode Relay Status to IAM

5.4 If a cold reset then initialise the unit configuration

6.1 Initialise the ASW (set up the operational mode).

7.1 Clear SURE

7.2 OBS State = Active

8.1 Set the default Interrupt Mask

8.2 Activate the Synchronous scheduler tables

8.3 Activate the Background scheduler tables

8.4 Clear the PIR and FT

9.1 Enable interrupts. This then enables the Synchronous scheduler

9.2 Enable the background scheduler

> A Cold Reset and a Warm Reset start at 1.1. A Software Reset starts at
> 2.1.
>
> TYPE-2 Variables are those which are to be initialised to Non-zero
> values.
>
> TYPE-1 Variables are those which are to be initialised to zero values.

[NOTES]{.underline}

> 1\. An infinite loop can occur if the PROM or RAM check continually
> fails. It is expected that ground will perform the necessary recovery
> actions, see section 3.6.
>
> 2\. The single failure of the PROM or RAM checks (2.1, 2.2) after a
> warm reset (e.g. Memory Parity failure) will result (assuming no
> faults being recorded in the FT) in a Cold reset being reported with
> the consequent actions (5.3, 5.4).

### 3.2.2 Cold Resets

A cold reset occurs on the following events:

· Power up of the ACU (including power dips)

> · A PROM or RAM failure detected during the initialisation process
> resulting in no memory parity or watchdog failure noted in the FT.

### 3.2.3 Warm Resets

A warm reset occurs on the following events:

· A memory parity or watchdog failure (trapped by H/W)

## 3.2.4 Software Resets

A Software Reset occurs on the following events:

> · An undefined Ada exception is trapped in the main program or in one
> of the interrupt handlers

· Detection of a stalled process in the Background scheduler

## 3.3 NOMINAL FUNCTIONS

> As described in section 3.1.4.3, the OBS executes as a set of
> scheduled tasks. These tasks perform all the functions required
> depending on the particular mode.
>
> These tasks are detailed below in three tables. In each mode every
> task that is scheduled to run in that mode has a task identifier
> assigned to it. For each telemetry packet type selection every OS task
> that is scheduled to run while that packet type is active has a task
> identifier assigned to it. Each asynchronous task has a task
> identifier assigned to it. The task identifier is derived from data
> for the task type (ASW, OS, asynchronous, synchronous) and its
> position in the task table and is used, for example, as a parameter
> for the Change Task Parameters Block Telecommand ABACU102.
>
> · Table 3.3-1 describes the function of each of the tasks in three
> separate tables. The identifiers for the Background tasks are given in
> Table 3.3-1(c).
>
> · Table 3.3-2 defines the identifiers of each synchronous task with
> respect to Mode and TM packet type. Note that the Background task
> identifiers are given in Table 3.3-1(c).
>
> · Table 3.3-3 details the scheduling \"parameters\" for each task in
> three separate tables. The \"parameters\" detailed are the task period
> and phase, when it is active, and how to inhibit the task (other than
> performing a reprogramming action, see §3.8). Due to the mode specific
> definition of period and phase for the synchronous ASW tasks, these
> \"parameters\" are defined in two separate tables, thus giving four
> tables in total.

┌──────────┬───────────────────────────────────────────────────────────────────┐

│ Task │ Description │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ BRDCAST │ Issues a broadcast if a request is pending. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPTCTOUT │ Reports a TC timeout error (ERRTCTIM). This is used to
perform │

│ │ a 1s timeout by being scheduled to occur in 1s and being │

│ │ deactivated if the timed function occurs within that period. │

│ │ │

│ │ Note that this is essentially an asynchronous task. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ OSTSKSYN │ Synchronises the synchronous OS tasks to the TM format
pulse. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ REGMEMDP │ Performs a memory dump for the type 2 TM packet. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ EXTMEMDMP│ Performs a memory dump for the type 3.1 TM packet. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CHKCNF │ Checks the H/W configuration. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ GETOSTM │ Generates the OS specific data for the TM packet. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPTHRDM │ Reports the Thruster Demands in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RSTWDOG │ Reset the watchdog (in hardware). │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ DETSTBCK │ Perform a check that the Background scheduler has not
stalled. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CHKRAM │ Performs a continuous non-destructive test on the RAM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPIRU │ Reports IRU data in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPSAS │ Reports SAS data in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPRWS │ Reports wheel data in TM │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPRWSTQ │ Reports wheel torque demands in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPFPSS │ Reports FPSS data in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPRATT │ Reports roll attitude in TM │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ SSUMP250 │ Reports 250 words of SSU mapping data in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ SSUMP100 │ Reports 100 words of SSU mapping data in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPPROS │ Reports PROS monitioring data in TM │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPTHRCOT │ Reports the Thruster accumulated on-time counters in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPSSUMON │ Reports SSU monitoring data in TM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPFPSSRW │ Reports the last FPSS unprocessed data sample in TM. │

└──────────┴───────────────────────────────────────────────────────────────────┘

[Table 3.3-1(a): Synchronous OS Tasks]{.underline}

┌──────────┬───────────────────────────────────────────────────────────────────┐

│ Task │ Description │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ ASWTKSYS │ Synchronise the necessary Synchronous ASW tasks to TM by │

│ │ resetting control flags. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CHKMODE │ Check for a commanded mode transition and determine if the │

│ │ transition is legal. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CLROLLV │ Calculate the values for a slew operation (no longer
executed). │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CMDSSU │ Issue command words to the SSU. One word is sent (if
required) │

│ │ in each task execution. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CMPCLTQ │ Convert the control torques to wheel torques according to
the RWS │

│ │ configuration in use. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CMWDE │ Convert wheel torques to RWS representation and issue these │

│ │ (converted) torques to the RWS. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CSPFPY │ Calculate the Flexure and Phase Advance (Yaw) for CSP. │

│ │ (CSP is no longer a valid mode, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CSPPAP │ Calculate the Phase Advance (Pitch) for CSP. │

│ │ (CSP is no longer a valid mode, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CSPPAR │ Calculate the Phase Advance (Roll) for CSP. │

│ │ (CSP is no longer a valid mode, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ CSTTRQ │ Calculate the control torques (all 3 axes) for CSP. │

│ │ (CSP is no longer a valid mode, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ DISMBH │ Disable the MACS bus head. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ DTSLWST │ Determine if a slew operation is to take place. (no longer
used) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ DWLDSSU │ Download words from SSU memory to a buffer. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ FILTWS │ Filter wheel speeds. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ FIRETHR │ Fire the thrusters by sending a thruster initiate MACS
command. │

│ │ (ISA, FSA & CSP are no longer valid modes, │

│ │ so this task is never executed). │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ INITCRP │ Initialise CRP mode data (on entry to CRP). (Conditionally │

│ │ copies initialisation values to current values (working data)). │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ INITCSP │ Initialise CSP mode data (on entry to CSP). (Conditionally
copies│

│ │ initialisation values to current values (working data)). │

│ │ (CSP is no longer a valid mode, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ INITFSA │ Initialise FSA mode data (on entry to FSA). (Conditionally
copies│

│ │ initialisation values to current values (working data)). │

│ │ (FSA is no longer a valid mode, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ INITGLD │ Initialise Gyroless data (once in SBM or once on entry to
CRP) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ INITISA │ Initialise ISA mode data (on entry to ISA). (Conditionally
copies│

│ │ initialisation values to current values (working data)). │

│ │ (ISA is no longer a valid mode, so this task is never executed) │

└──────────┴───────────────────────────────────────────────────────────────────┘

┌──────────┬───────────────────────────────────────────────────────────────────┐

│ Task │ Description │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ INITNM\* │ Initialise NM mode data (on entry to NM). (Conditionally
copies │

│ │ initialisation values to current values (working data)). │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ INITRMW\* │ Initialise RMW mode data (on entry to RMW). (Conditionally
copies │

│ │ initialisation values to current values (working data)). │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD2TRQ │ Calculate the control torques (all 3 axes) for ISA mode. │

│ │ (ISA is no longer a valid mode, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD3TRQ │ Calculate the control torques (all 3 axes) for FSA mode. │

│ │ (FSA is no longer a valid mode, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD4TRQP │ Calculate the control torque (pitch axis) for RMW mode. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD4TRQR\* │ Calculate the control torque (roll axis) for RMW mode. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD4TRQY │ Calculate the control torque (yaw axis) for RMW mode. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD5RERR │ Calculate the CRP mode roll angle error. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD5TRQP │ Calculate the control torque (pitch axis) for CRP mode. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD5TRQR │ Calculate the control torque (roll axis) for CRP mode. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD5TRQY │ Calculate the control torque (yaw axis) for CRP mode. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD7EFN │ Initialise the resolution of wheel torques into body axes for
NM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD7PCTL │ Calculate the control torque (pitch axis) for NM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD7RCTL │ Calculate the control torque (roll axis) for NM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD7YCTL │ Calculate the control torque (yaw axis) for NM. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MD7PCPG │ Perform the Payload Calibration Profile generation function.
│

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MDTRANS │ Perform a mode transition if required. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ MNWDES │ Keep the wheel speeds constant at mode entry level. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRCASWTC │ Check if an ASW TC is ready and if so execute the TC. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRCFSS │ Perform the FPSS common function. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRCIRU │ Calculate the roll rate error, roll angle error(G) and the
Gyro │

│ │ increment accumulator from IRU data. (No longer executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRCOSTC │ Checks that an OS TC is ready and if so executes the TC.
This is │

│ │ performed as an ASW rather than an OS task in order to spread the │

│ │ CPU load. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFATTM │ Perform attitude manoeuvre. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFHXMON │ Perform Hx monitoring. │

└──────────┴───────────────────────────────────────────────────────────────────┘

┌──────────┬───────────────────────────────────────────────────────────────────┐

│ Task │ Description │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM1 │ Perform the PWM1 function (all 3 axes). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM2 │ Perform the PWM2 function (all 3 axes). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM3P │ Perform the PWM3 function (pitch axis). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM3R │ Perform the PWM3 function (roll axis). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM3Y │ Perform the PWM3 function (yaw axis). (ISA, FSA and CSP are
│

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM4P │ Perform the PWM4 function (pitch axis). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM4R │ Perform the PWM4 function (roll axis). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM4Y │ Perform the PWM4 function (yaw axis). (ISA, FSA and CSP are
│

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM5P │ Perform the PWM5 function (pitch axis). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM5R │ Perform the PWM5 function (roll axis). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM5Y │ Perform the PWM5 function (yaw axis). (ISA, FSA and CSP are
│

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM6 │ Perform the PWM6 function (all 3 axes). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM7 │ Perform the PWM7 function (all 3 axes). (ISA, FSA and CSP
are │

│ │ no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFPWM9 │ Perform the PWM8 & PWM9 functions (all 3 axes). (ISA, FSA
and CSP │

│ │ are no longer valid modes, so this task is never executed) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFRSL\* │ Perform the RSL common function. This task contains its own
│

│ │ internal \"scheduler\" representing the commanded RSL update period
│

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFSSU3\* │ Calculate the roll angle error from SSU data - the SSU3
function. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFSSU7 │ Perform the SSU7 function. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFSSU8 │ Calculate the Roll off-pointing flag for TM - the SSU8
function. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ PRFTCTC │ Perform the thruster commands as specified by ABACU201. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RCMDETM │ Record the time of mode entry. This is used on certain mode
│

│ │ transitions. (no longer used) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RCRSLOFS │ Recalculate RSL offsets. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RDFSS │ Read data from the FPSS. │

└──────────┴───────────────────────────────────────────────────────────────────┘

┌──────────┬───────────────────────────────────────────────────────────────────┐

│ Task │ Description │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RDIRU │ Read the roll data word from the IRU. (no longer used) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RDSAS1 │ Read SAS1 and process the data. (no longer used) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RDSSU │ Read attitude data from the SSU (incorporates the SSU2
function) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RDWDE │ Read raw data from the RWS and digitise. (Acquire wheel
speeds) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPCLAW │ Report control law outputs in TM.AYTORQ. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPCRSVAR │ Report CRS variables in TM.AYCRSDA. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPCSTAR │ Report control star data in TM.AYSSUCSD. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPFSSCF │ Report FPSS common function data in TM.AYFSSCFV. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPGLSTM1 │ Report Gyroless Sensor TM (part 1) in TM.AYGLSTM │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPGLSTM2 │ Report Gyroless Sensor TM (part 2) in TM.AYGLSTM │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPIRUCF │ Report IRU common function data in TM.AYIRUCFV. (no longer
used) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPPRSCF │ Report PROS common function data in TM.AYPRSCFV. (no longer
used) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPROPL │ Report Roll off-pointing limit in TM.AKSSUROP. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPROTM │ Report roll TM offset in TM.AKSSUROP. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPRSLCF │ Report RSL common function data in TM.AYRSLCFV. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPSASCF │ Report SAS common function data in TM.AYSASCFV. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPSLEW │ Report slew data in TM.AYSLWDA. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPSSUCF │ Report SSU common function data in TM.AYSSUCFV. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPSSUST\* │ Report SSU status words in TM.AYSSUSCW & AKSSUMST. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPTIMMED │ Compute the roll attitude word and report in TM.AKARD. │

│ │ Also, report OBS mode status word in TM.AKMODEST │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RPWDECF │ Report WDE common function data in TM.AYWDECFV. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RQFSSBRD │ Select the active FPSS for the next Broadcast. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RQIRUBRD │ Select the active IRU for the next Broadcast (no longer
used) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ RQSSUBRD │ Select the active SSU for the neat Broadcast. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ SEUCHK │ Perform the SSU SEU check (was M7SSUCK) │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ TRANSF2B │ Initialise all active slave units and turn on the CBH. This
│

│ │ corresponds to the sceond part of the TF2 function. │

├──────────┼───────────────────────────────────────────────────────────────────┤

│ WDESREF │ Initialise the wheel speed reference. This is used on
certain │

│ │ mode transitions. (FSA & CSP are no longer valid modes, so this │

│ │ task is never executed). │

└──────────┴───────────────────────────────────────────────────────────────────┘

\* indicates that a new version of the task has been implemented for
gyroless operation.

[Table 3.3-1(b): Synchronous ASW Tasks]{.underline}

┌────────────┬──────────┬───────────────────────────────────────────────────┐

│ Identifier │ Task │ Description │

├────────────┼──────────┼───────────────────────────────────────────────────┤

│ 4000 │ CDCHKSUM │ Accumulate a checksum on the RAM-resident code │

├────────────┼──────────┼───────────────────────────────────────────────────┤

│ 4001 │ TMCOMMON │ Write data common to all packet types into │

│ │ │ Telemetry. This is performed in the background │

│ │ │ scheduler using data recorded at time of the │

│ │ │ Format Pulse in order to optimise the performance.│

└────────────┴──────────┴───────────────────────────────────────────────────┘

[Table 3.3-1(c): Background Tasks]{.underline}

┌────────────┬────────┬──────────┬──────────┬──────────┬──────────┐

│ Task │ Type 2 │ Type 3.1 │ Type 3.2 │ Type 3.3 │ Type 3.4 │

├────────────┼────────┼──────────┼──────────┼──────────┼──────────┤

│ BRDCAST │ C000 │ C000 │ C000 │ C000 │ C000 │

│ RPTCTOUT │ C001 │ C001 │ C001 │ C001 │ C001 │

│ OSTSKSYN │ C002 │ C002 │ C002 │ C002 │ C002 │

│ REGMEMDP │ C003 │ \-\-\-- │ C003 │ \-\-\-- │ C003 │

│ EXTMEMDP │ \-\-\-- │ C003 │ \-\-\-- │ \-\-\-- │ \-\-\-- │

│ CHKCNF │ C004 │ C004 │ C004 │ C004 │ C004 │

│ GETOSTM │ C005 │ C005 │ C005 │ C005 │ C005 │

│ RPTHRDMD │ \-\-\-- │ \-\-\-- │ \-\-\-- │ C007 │ \-\-\-- │

│ RSTWDOG │ C008 │ C008 │ C008 │ C008 │ C008 │

│ DETSTBCK │ C009 │ C009 │ C009 │ C009 │ C009 │

│ CHKRAM │ C00A │ C00A │ C00A │ C00A │ C00A │

│ RPIRU │ C00C │ \-\-\-- │ C00C │ \-\-\-- │ C00C │

│ RPSAS │ C00D │ \-\-\-- │ C00D │ \-\-\-- │ \-\-\-- │

│ RPRWS │ C00E │ \-\-\-- │ C00E │ \-\-\-- │ C00D │

│ RPRWSTQ │ C00F │ \-\-\-- │ C00F │ \-\-\-- │ C00E │

│ RPFPSS │ C010 │ \-\-\-- │ \-\-\-- │ COOC │ \-\-\-- │

│ RPRATT │ C011 │ \-\-\-- │ \-\-\-- │ C00D │ \-\-\-- │

│ SSUMP250 │ \-\-\-- │ \-\-\-- │ C010 │ \-\-\-- │ \-\-\-- │

│ SSUMP100 │ \-\-\-- │ \-\-\-- │ \-\-\-- │ \-\-\-- │ C00F │

│ RPPROS │ C012 │ \-\-\-- │ C011 │ \-\-\-- │ \-\-\-- │

│ RPTHRCOT │ C013 │ \-\-\-- │ C014 │ \-\-\-- │ \-\-\-- │

│ RPSSUMON │ C014 │ \-\-\-- │ C012 │ \-\-\-- │ C00B │

│ RPFPSSRAW │ C015 │ \-\-\-- │ C013 │ \-\-\-- │ C010 │

└────────────┴────────┴──────────┴──────────┴──────────┴──────────┘

[Table 3.3-2(a): Synchronous OS Task Identifiers (wrt TM Packet
type)]{.underline}

┌──────────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐

│ Task │ IAM │ SBM │ ISA\* │ FSA\* │ RMW │ CRP │ CSP\* │ NM │

├──────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤

│ ASWTKSYN │ │ 8002 │ 8002 │ 8002 │ 8002 │ 8002 │ 8002 │ 8002 │

│ CHKMODE │ 8000 │ 8000 │ 8000 │ 8000 │ 8000 │ 8001 │ 8000 │ 8000 │

│ CLROLLV │ │ │ │ │ │ │ │ │

│ CMDSSU │ │ 8022 │ 8022 │ 8022 │ 8022 │ 8022 │ 8022 │ 8022 │

│ CMDWDE │ │ 800E │ │ 801F │ 8015 │ 8015 │ 8033 │ 8011 │

│ CMPCLTQ │ │ │ │ │ 8014 │ 8014 │ │ 8010 │

│ CSPFPY │ │ │ │ │ │ │ 800E │ │

│ CSPPAR │ │ │ │ │ │ │ 800D │ │

│ CSPPAP │ │ │ │ │ │ │ 800F │ │

│ CSPTRQ │ │ │ │ │ │ │ 8010 │ │

│ DISMBH │ 8001 │ │ │ │ │ │ │ │

│ DTSLWST │ │ │ │ │ │ │ │ │

│ DWLDSSU │ │ 8030 │ 8030 │ 8030 │ 8030 │ 8030 │ 8030 │ 8030 │

│ FILTWS │ │ 800C │ │ │ 8008 │ 8008 │ │ 8016 │

│ FIRETHR │ │ │ 801E │ 8021 │ │ │ 8034 │ │

│ INITCRP │ │ │ │ │ │ 8003 │ │ │

│ INITCSP │ │ │ │ │ │ │ 8001 │ │

│ INITFSA │ │ │ │ 8001 │ │ │ │ │

│ INITGLD │ │ 8004 │ │ │ │ 8000 │ │ │

│ INITISA │ │ │ 8001 │ │ │ │ │ │

│ INITNM │ │ │ │ │ │ │ │ 8001 │

│ INITRMW │ │ │ │ │ 8001 │ │ │ │

│ MD2TRQ │ │ │ 800B │ │ │ │ │ │

│ MD3TRQ │ │ │ │ 800D │ │ │ │ │

│ MD4TRQP │ │ │ │ │ 8012 │ │ │ │

│ MD4TRQR │ │ │ │ │ 8011 │ │ │ │

│ MD4TRQY │ │ │ │ │ 8013 │ │ │ │

│ MD5RERR │ │ │ │ │ │ 8010 │ │ │

│ MD5TRQP │ │ │ │ │ │ 8012 │ │ │

│ MD5TRQR │ │ │ │ │ │ 8011 │ │ │

│ MD5TRQY │ │ │ │ │ │ 8013 │ │ │

│ MD7EFN │ │ │ │ │ │ │ │ 8003 │

│ MD7PCPG │ │ │ │ │ │ │ │ 8004 │

│ MD7PCTL │ │ │ │ │ │ │ │ 800D │

│ MD7RCTL │ │ │ │ │ │ │ │ 800F │

│ MD7YCTL │ │ │ │ │ │ │ │ 800E │

│ MDTRANS │ 803B │ 803B │ 803B │ 803B │ 803B │ 803B │ 803B │ 803B │

│ MNWDES │ │ 800D │ │ 801C │ │ │ 801F │ │

│ PRCASWTC │ │ 8005 │ 8005 │ 8005 │ 8005 │ 8005 │ 8005 │ 8005 │

│ PRCFSS │ │ 800A │ 801D │ 800B │ 800F │ 800B │ 800B │ 800B │

│ PRCIRU │ │ │ 800A │ 800C │ │ │ 8009 │ │

│ PRCOSTC │ │ 800B │ 801C │ 801E │ 8018 │ 8018 │ 8032 │ 8014 │

│ PRFATTM │ │ │ │ │ 8009 │ 8009 │ │ 8017 │

│ PRFHXMON │ │ │ │ │ 800E │ 8017 │ │ 8018 │

│ PRFPWM1 │ │ │ 800C │ 800E │ │ │ 8011 │ │

│ PRFPWM2 │ │ │ 800D │ 800F │ │ │ 8012 │ │

│ PRFPWM3P │ │ │ 800F │ 8011 │ │ │ 8014 │ │

│ PRFPWM3R │ │ │ 800E │ 8010 │ │ │ 8013 │ │

│ PRFPWM3Y │ │ │ 8010 │ 8012 │ │ │ 8015 │ │

│ PRFPWM4P │ │ │ 8012 │ 8014 │ │ │ 8017 │ │

│ PRFPWM4R │ │ │ 8011 │ 8013 │ │ │ 8016 │ │

│ PRFPWM4Y │ │ │ 8013 │ 8015 │ │ │ 8018 │ │

│ PRFPWM5P │ │ │ 8015 │ 8017 │ │ │ 801A │ │

│ PRFPWM5R │ │ │ 8014 │ 8016 │ │ │ 8019 │ │

│ PRFPWM5Y │ │ │ 8016 │ 8018 │ │ │ 801B │ │

│ PRFPWM6 │ │ │ 8017 │ 8019 │ │ │ 801C │ │

│ PRFPWM7 │ │ │ 8018 │ 801A │ │ │ 801D │ │

│ PRFPWM9 │ │ │ 8019 │ 801B │ │ │ 801E │ │

└──────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

┌──────────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐

│ Task │ IAM │ SBM │ ISA │ FSA │ RMW │ CRP │ CSP │ NM │

├──────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤

│ PRFRSL │ │ │ │ │ 8017 │ │ 8021 │ 8013 │

│ PRFSSU3 │ │ │ │ │ 800D │ │ │ 800A │

│ PRFSSU7 │ │ 8008 │ 801A │ 801D │ 8010 │ 800E │ 800C │ 800C │

│ PRFSSU8 │ │ │ │ │ 8016 │ │ │ 8012 │

│ PRFTCTC │ │ 802F │ 802F │ 802F │ 802F │ 802F │ 802F │ 802F │

│ RCMDETM │ │ │ │ │ │ │ 8004 │ │

│ RCRSLOFS │ │ │ │ │ 8033 │ │ │ 8032 │

│ RDFSS │ │ 8003 │ 8004 │ 8008 │ 800A │ 800A │ 8007 │ 8007 │

│ RDIRU │ │ │ 8009 │ 8009 │ │ │ 8008 │ │

│ RDSAS1 │ │ │ 8008 │ │ │ │ │ │

│ RDSSU │ │ 8007 │ 8007 │ 8004 │ 800B │ 800D │ 8020 │ 8008 │

│ RDWDE │ │ 8009 │ 8031 │ 800A │ 8007 │ 8007 │ 800A │ 8015 │

│ RPCLAW │ │ 802E │ 802E │ 802E │ 802E │ 802E │ 802E │ 802E │

│ RPCRSVAR │ │ 8023 │ │ │ 8023 │ 8023 │ │ 8023 │

│ RPCSTAR │ │ 802B │ 802B │ 802B │ 802B │ 802B │ 802B │ 802B │

│ RPFSSCF │ │ 8027 │ 8027 │ 8027 │ 8027 │ 8027 │ 8027 │ 8027 │

│ RPGLSTM1 │ │ 8026 │ │ │ 8026 │ 8026 │ │ 8026 │

│ RPGLSTM2 │ │ 8031 │ │ │ 8032 │ 8032 │ │ 8031 │

│ RPIRUCF │ │ │ 8023 │ 8023 │ │ │ 8023 │ │

│ RPPRSCF │ │ │ 8026 │ 8026 │ │ │ 8026 │ │

│ RPROPL │ │ 802C │ 802C │ 802C │ 802C │ 802C │ 802C │ 802C │

│ RPROTM │ │ 8032 │ 8032 │ 8031 │ 8031 │ 8031 │ 8035 │ 8033 │

│ RPRSLCF │ │ 8029 │ 8029 │ 8029 │ 8029 │ 8029 │ 8029 │ 8029 │

│ RPSASCF │ │ 8024 │ 8024 │ 8024 │ 8024 │ 8024 │ 8024 │ 8024 │

│ RPSLEW │ │ 802D │ 802D │ 802D │ 802D │ 802D │ 802D │ 802D │

│ RPSSUCF │ │ 8028 │ 8028 │ 8028 │ 8028 │ 8028 │ 8028 │ 8028 │

│ RPSSUST │ │ 802A │ 802A │ 802A │ 802A │ 802A │ 802A │ 802A │

│ RPTIMMED │ │ 8006 │ 8006 │ 8006 │ 8006 │ 8006 │ 8006 │ 8006 │

│ RPWDECF │ │ 8025 │ 8025 │ 8025 │ 8025 │ 8025 │ 8025 │ 8025 │

│ RQFSSBRD │ │ 8039 │ 8039 │ 8039 │ 8039 │ 8039 │ 8039 │ 8039 │

│ RQIRUBRD │ │ │ 803A │ 803A │ │ │ 803A │ │

│ RQSSUBRD │ │ 8038 │ 8038 │ 8038 │ 8038 │ 8038 │ 8038 │ 8038 │

│ TRANSF2B │ │ 8001 │ 8003 │ │ │ │ │ │

│ SEUCHK │ │ │ │ │ 800C │ │ │ 8009 │

│ WDESREF │ │ │ │ 8003 │ │ │ 8003 │ │

└──────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

\* Note that ISA, FSA and CSP are no longer valid modes. Transitions to
these modes are inhibited.

[Table 3.3-2(b): Synchronous ASW Task Identifiers (wrt
mode)]{.underline}

+-----+--------+--------+--------+--------+--------+--------+--------+
| ID  | SBM    | ISA    | FSA    | RMW    | CRP    | CSP    | NM     |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | C      | C      | C      | C      | I      | C      | C      |
| 000 | HKMODE | HKMODE | HKMODE | HKMODE | NITGLD | HKMODE | HKMODE |
|     |        |        |        |        |        |        |        |
|     | (1,1)  | (1,1)  | (20,1) | (5,1)  | (-     | (5,1)  | (5,1)  |
|     |        |        |        |        | 1,1)\* |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | TR     | I      | I      | I      | C      | I      | INITNM |
| 001 | ANSF2B | NITISA | NITFSA | NITRMW | HKMODE | NITCSP |        |
|     |        |        |        |        |        |        | (-1,1) |
|     | (-1,1) | (-1,1) | (-1,1) | (-1,1) | (5,1)  | (-1,1) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | AS     | AS     | AS     | AS     | AS     | AS     | AS     |
| 002 | WTKSYN | WTKSYN | WTKSYN | WTKSYN | WTKSYN | WTKSYN | WTKSYN |
|     |        |        |        |        |        |        |        |
|     | (      | (      | (      | (      | (      | (      | (      |
|     | -1,-1) | -1,-1) | -1,-1) | -1,-1) | -1,-1) | -1,-1) | -1,-1) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RDFSS  | TR     | W      |        | I      | W      | MD7EFN |
| 003 |        | ANSF2B | DESREF |        | NITCRP | DESREF |        |
|     | (10,2) |        |        |        |        |        | (-1,1) |
|     |        | (-1,1) | (-1,3) |        | (-1,1) | (-1,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | I      | RDFSS  | RDSSU  |        |        | R      | M      |
| 004 | NITGLD |        |        |        |        | CMDETM | D7PCPG |
|     |        | (10,5) | (10,6) |        |        |        |        |
|     | (-     |        |        |        |        | (-1,1) | (50,2) |
|     | 1,1)\* |        |        |        |        |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | PR     | PR     | PR     | PR     | PR     | PR     | PR     |
| 005 | CASWTC | CASWTC | CASWTC | CASWTC | CASWTC | CASWTC | CASWTC |
|     |        |        |        |        |        |        |        |
|     | (5,1)  | (      | (      | (5,6)  | (5,6)  | (5,1)  | (5,6)  |
|     |        | 20,10) | 20,10) |        |        |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RP     | RP     | RP     | RP     | RP     | RP     | RP     |
| 006 | TIMMED | TIMMED | TIMMED | TIMMED | TIMMED | TIMMED | TIMMED |
|     |        |        |        |        |        |        |        |
|     | (50,3) | (50,1) | (50,1) | (50,1) | (50,1) | (50,1) | (50,1) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RDSSU  | RDSSU  |        | RDWDE  | RDWDE  | RDFSS  | RDFSS  |
| 007 |        |        |        |        |        |        |        |
|     | (10,3) | (10,6) |        | (5,1)  | (5,1)  | (5,2)  | (5,3)  |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | P      | RDSAS1 | RDFSS  | FILTWS | FILTWS | RDIRU  | RDSSU  |
| 008 | RFSSU7 |        |        |        |        |        |        |
|     |        | (20,1) | (10,2) | (5,2)  | (5,2)  | (20,2) | (10,2) |
|     | (1,1)  |        |        |        |        |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RDWDE  | RDIRU  | RDIRU  | P      | P      | PRCIRU | SEUCHK |
| 009 |        |        |        | RFATTM | RFATTM |        |        |
|     | (5,1)  | (20,2) | (20,2) |        |        | (20,3) | (50,2) |
|     |        |        |        | (5,2)  | (5,2)  |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | PRCFSS | PRCIRU | RDWDE  | RDFSS  | RDFSS  | RDWDE  | P      |
| 00A |        |        |        |        |        |        | RFSSU3 |
|     | (10,5) | (20,2) | (20,1) | (5,3)  | (5,3)  | (5,1)  |        |
|     |        |        |        |        |        |        | (50,3) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | P      | MD2TRQ | PRCFSS | RDSSU  | PRCFSS | PRCFSS | PRCFSS |
| 00B | RCOSTC |        |        |        |        |        |        |
|     |        | (20,2) | (20,3) | (10,2) | (5,3)  | (5,3)  | (5,3)  |
|     | (5,1)  |        |        |        |        |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | FILTWS | P      | PRCIRU | SEUCHK |        | P      | P      |
| 00C |        | RFPWM1 |        |        |        | RFSSU7 | RFSSU7 |
|     | (5,2)  |        | (20,3) | (50,2) |        |        |        |
|     |        | (20,3) |        |        |        | (1,1)  | (1,1)  |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | MNWDES | P      | MD3TRQ | P      | RDSSU  | CSPPAR | M      |
| 00D |        | RFPWM2 |        | RFSSU3 |        |        | D7PCTL |
|     | (5,5)  |        | (20,3) |        | (10,2) | (20,3) |        |
|     |        | (20,3) |        | (50,3) |        |        | (5,4)  |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | CMDWDE | PR     | P      | PR     | P      | CSPFPY | M      |
| 00E |        | FPWM3R | RFPWM1 | FHXMON | RFSSU7 |        | D7YCTL |
|     | (5,5)  |        |        |        |        | (5,3)  |        |
|     |        | (20,3) | (20,3) | (50,2) | (1,1)  |        | (5,4)  |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PR     | P      | PRCFSS |        | CSPPAP | M      |
| 00F |        | FPWM3P | RFPWM2 |        |        |        | D7RCTL |
|     |        |        |        | (5,3)  |        | (5,3)  |        |
|     |        | (20,3) | (20,3) |        |        |        | (50,4) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PR     | PR     | P      | M      | CSPTRQ | C      |
| 010 |        | FPWM3Y | FPWM3R | RFSSU7 | D5RERR |        | MPCLTQ |
|     |        |        |        |        |        | (5,3)  |        |
|     |        | (20,3) | (20,3) | (1,1)  | (50    |        | (5,5)  |
|     |        |        |        |        | ,4003) |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PR     | PR     | M      | M      | P      | CMDWDE |
| 011 |        | FPWM4R | FPWM3P | D4TRQR | D5TRQR | RFPWM1 |        |
|     |        |        |        |        |        |        | (5,5)  |
|     |        | (20,3) | (20,3) | (50,4) | (50    | (      |        |
|     |        |        |        |        | ,4004) | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PR     | PR     | M      | M      | P      | P      |
| 012 |        | FPWM4P | FPWM3Y | D4TRQP | D5TRQP | RFPWM2 | RFSSU8 |
|     |        |        |        |        |        |        |        |
|     |        | (20,3) | (20,3) | (5,4)  | (5,4)  | (      | (50,5) |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PR     | PR     | M      | M      | PR     | PRFRSL |
| 013 |        | FPWM4Y | FPWM4R | D4TRQY | D5TRQY | FPWM3R |        |
|     |        |        |        |        |        |        | (1     |
|     |        | (20,3) | (20,3) | (5,4)  | (5,4)  | (      | 00,93) |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PR     | PR     | C      | C      | PR     | P      |
| 014 |        | FPWM5R | FPWM4P | MPCLTQ | MPCLTQ | FPWM3P | RCOSTC |
|     |        |        |        |        |        |        |        |
|     |        | (20,3) | (20,3) | (5,5)  | (5,5)  | (      | (5,6)  |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PR     | PR     | CMDWDE | CMDWDE | PR     | RDWDE  |
| 015 |        | FPWM5P | FPWM4Y |        |        | FPWM3Y |        |
|     |        |        |        | (5,5)  | (5,5)  |        | (5,1)  |
|     |        | (20,3) | (20,3) |        |        | (      |        |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PR     | PR     | P      |        | PR     | FILTWS |
| 016 |        | FPWM5Y | FPWM5R | RFSSU8 |        | FPWM4R |        |
|     |        |        |        |        |        |        | (5,2)  |
|     |        | (20,3) | (20,3) | (50,5) |        | (      |        |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | P      | PR     | PRFRSL | PR     | PR     | P      |
| 017 |        | RFPWM6 | FPWM5P |        | FHXMON | FPWM4P | RFATTM |
|     |        |        |        | (1     |        |        |        |
|     |        | (20,3) | (20,3) | 00,93) | (50,2) | (      | (5,2)  |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | P      | PR     | P      | P      | PR     | PR     |
| 018 |        | RFPWM7 | FPWM5Y | RCOSTC | RCOSTC | FPWM4Y | FHXMON |
|     |        |        |        |        |        |        |        |
|     |        | (20,3) | (20,3) | (5,6)  | (5,6)  | (      | (50,2) |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | P      | P      |        |        | PR     |        |
| 019 |        | RFPWM9 | RFPWM6 |        |        | FPWM5R |        |
|     |        |        |        |        |        |        |        |
|     |        | (20,4) | (20,3) |        |        | (      |        |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | P      | P      |        |        | PR     |        |
| 01A |        | RFSSU7 | RFPWM7 |        |        | FPWM5P |        |
|     |        |        |        |        |        |        |        |
|     |        | (1,1)  | (20,3) |        |        | (      |        |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        | P      |        |        | PR     |        |
| 01B |        |        | RFPWM9 |        |        | FPWM5Y |        |
|     |        |        |        |        |        |        |        |
|     |        |        | (20,4) |        |        | (      |        |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | P      | MNWDES |        |        | P      |        |
| 01C |        | RCOSTC |        |        |        | RFPWM6 |        |
|     |        |        | (20,5) |        |        |        |        |
|     |        | (      |        |        |        | (      |        |
|     |        | 20,10) |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | PRCFSS | P      |        |        | P      |        |
| 01D |        |        | RFSSU7 |        |        | RFPWM7 |        |
|     |        | (10,5) |        |        |        |        |        |
|     |        |        | (1,1)  |        |        | (      |        |
|     |        |        |        |        |        | 200,3) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| ID  | SBM    | ISA    | FSA    | RMW    | CRP    | CSP    | NM     |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | F      | P      |        |        | P      |        |
| 01E |        | IRETHR | RCOSTC |        |        | RFPWM9 |        |
|     |        |        |        |        |        |        |        |
|     |        | (20,5) | (      |        |        | (      |        |
|     |        |        | 20,10) |        |        | 200,4) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        | CMDWDE |        |        | MNWDES |        |
| 01F |        |        |        |        |        |        |        |
|     |        |        | (20,5) |        |        | (5,5)  |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        |        |        |        | RDSSU  |        |
| 020 |        |        |        |        |        |        |        |
|     |        |        |        |        |        | (10,5) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        | F      |        |        | PRFRSL |        |
| 021 |        |        | IRETHR |        |        |        |        |
|     |        |        |        |        |        | (1     |        |
|     |        |        | (20,5) |        |        | 00,93) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | CMDSSU | CMDSSU | CMDSSU | CMDSSU | CMDSSU | CMDSSU | CMDSSU |
| 022 |        |        |        |        |        |        |        |
|     | (1,1)  | (1,1)  | (1,1)  | (1,1)  | (1,1)  | (1,1)  | (1,1)  |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RP     | R      | R      | RP     | RP     | R      | RP     |
| 023 | CRSVAR | PIRUCF | PIRUCF | CRSVAR | CRSVAR | PIRUCF | CRSVAR |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,155) | 0,157) | 0,157) | 0,155) | 0,155) | 0,155) | 0,154) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | R      | R      | R      | R      | R      | R      | R      |
| 024 | PSASCF | PSASCF | PSASCF | PSASCF | PSASCF | PSASCF | PSASCF |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,165) | 0,167) | 0,167) | 0,165) | 0,165) | 0,165) | 0,164) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | R      | R      | R      | R      | R      | R      | R      |
| 025 | PWDECF | PWDECF | PWDECF | PWDECF | PWDECF | PWDECF | PWDECF |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,185) | 0,187) | 0,187) | 0,185) | 0,185) | 0,185) | 0,184) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RP     | R      | R      | RP     | RP     | R      | RP     |
| 026 | GLSTM1 | PPRSCF | PPRSCF | GLSTM1 | GLSTM1 | PPRSCF | GLSTM1 |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,205) | 0,207) | 0,207) | 0,205) | 0,205) | 0,205) | 0,204) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | R      | R      | R      | R      | R      | R      | R      |
| 027 | PFSSCF | PFSSCF | PFSSCF | PFSSCF | PFSSCF | PFSSCF | PFSSCF |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,225) | 0,227) | 0,227) | 0,225) | 0,225) | 0,225) | 0,224) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | R      | R      | R      | R      | R      | R      | R      |
| 028 | PSSUCF | PSSUCF | PSSUCF | PSSUCF | PSSUCF | PSSUCF | PSSUCF |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,245) | 0,247) | 0,247) | 0,245) | 0,245) | 0,245) | 0,244) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | R      | R      | R      | R      | R      | R      | R      |
| 029 | PRSLCF | PRSLCF | PRSLCF | PRSLCF | PRSLCF | PRSLCF | PRSLCF |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,275) | 0,277) | 0,277) | 0,275) | 0,275) | 0,275) | 0,274) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | R      | R      | R      | R      | R      | R      | R      |
| 02A | PSSUST | PSSUST | PSSUST | PSSUST | PSSUST | PSSUST | PSSUST |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,295) | 0,297) | 0,297) | 0,295) | 0,295) | 0,295) | 0,294) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | R      | R      | R      | R      | R      | R      | R      |
| 02B | PCSTAR | PCSTAR | PCSTAR | PCSTAR | PCSTAR | PCSTAR | PCSTAR |
|     |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,315) | 0,317) | 0,317) | 0,315) | 0,315) | 0,315) | 0,314) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RPROPL | RPROPL | RPROPL | RPROPL | RPROPL | RPROPL | RPROPL |
| 02C |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,335) | 0,337) | 0,337) | 0,335) | 0,335) | 0,335) | 0,334) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RPSLEW | RPSLEW | RPSLEW | RPSLEW | RPSLEW | RPSLEW | RPSLEW |
| 02D |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,355) | 0,357) | 0,357) | 0,355) | 0,355) | 0,355) | 0,354) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RPCLAW | RPCLAW | RPCLAW | RPCLAW | RPCLAW | RPCLAW | RPCLAW |
| 02E |        |        |        |        |        |        |        |
|     | (50    | (50    | (50    | (50    | (50    | (50    | (50    |
|     | 0,375) | 0,377) | 0,377) | 0,375) | 0,375) | 0,375) | 0,374) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | P      | P      | P      | P      | P      | P      | P      |
| 02F | RFTCTC | RFTCTC | RFTCTC | RFTCTC | RFTCTC | RFTCTC | RFTCTC |
|     |        |        |        |        |        |        |        |
|     | (10,4) | (10,4) | (10,4) | (10,4) | (      | (10,4) | (      |
|     |        |        |        |        | -1,-1) |        | -1,-1) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | D      | D      | D      | D      | D      | D      | D      |
| 030 | WLDSSU | WLDSSU | WLDSSU | WLDSSU | WLDSSU | WLDSSU | WLDSSU |
|     |        |        |        |        |        |        |        |
|     | (1,1)  | (1,1)  | (1,1)  | (1,1)  | (1,1)  | (1,1)  | (1,1)  |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RP     | RDWDE  | RPROTM | RPROTM | RPROTM |        | RP     |
| 031 | GLSTM2 |        |        |        |        |        | GLSTM2 |
|     |        | (20,2) | (50    | (50    | (50    |        |        |
|     | (50    |        | 0,395) | 0,395) | 0,395) |        | (50    |
|     | 0,215) |        |        |        |        |        | 0,214) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RPROTM | RPROTM |        | RP     | RP     | P      | RC     |
| 032 |        |        |        | GLSTM2 | GLSTM2 | RCOSTC | RSLOFS |
|     | (50    | (50    |        |        |        |        |        |
|     | 0,395) | 0,395) |        | (50    | (50    | (5,1)  | (6000  |
|     |        |        |        | 0,215) | 0,215) |        | ,5998) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        |        | RC     |        | CMDWDE | RPROTM |
| 033 |        |        |        | RSLOFS |        |        |        |
|     |        |        |        |        |        | (5,5)  | (50    |
|     |        |        |        | (6000  |        |        | 0,394) |
|     |        |        |        | ,5998) |        |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        |        |        |        | F      |        |
| 034 |        |        |        |        |        | IRETHR |        |
|     |        |        |        |        |        |        |        |
|     |        |        |        |        |        | (      |        |
|     |        |        |        |        |        | 200,5) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        |        |        |        | RPROTM |        |
| 035 |        |        |        |        |        |        |        |
|     |        |        |        |        |        | (50    |        |
|     |        |        |        |        |        | 0,395) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        |        |        |        |        |        |
| 036 |        |        |        |        |        |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        |        |        |        |        |        |        |
| 037 |        |        |        |        |        |        |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RQ     | RQ     | RQ     | RQ     | RQ     | RQ     | RQ     |
| 038 | SSUBRD | SSUBRD | SSUBRD | SSUBRD | SSUBRD | SSUBRD | SSUBRD |
|     |        |        |        |        |        |        |        |
|     | (      | (      | (      | (      | (      | (      | (      |
|     | 50,50) | 50,50) | 50,50) | 50,50) | 50,50) | 50,50) | 50,50) |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | RQ     | RQ     | RQ     | RQ     | RQ     | RQ     | RQ     |
| 039 | FSSBRD | FSSBRD | FSSBRD | FSSBRD | FSSBRD | FSSBRD | FSSBRD |
|     |        |        |        |        |        |        |        |
|     | (5,5)  | (5,5)  | (5,5)  | (5,5)  | (5,5)  | (5,5)  | (5,5)  |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   |        | RQ     | RQ     |        |        | RQ     |        |
| 03A |        | IRUBRD | IRUBRD |        |        | IRUBRD |        |
|     |        |        |        |        |        |        |        |
|     |        | (      | (      |        |        | (      |        |
|     |        | 20,20) | 20,20) |        |        | 20,20) |        |
+-----+--------+--------+--------+--------+--------+--------+--------+
| 8   | M      | M      | M      | M      | M      | M      | M      |
| 03B | DTRANS | DTRANS | DTRANS | DTRANS | DTRANS | DTRANS | DTRANS |
|     |        |        |        |        |        |        |        |
|     | (10    | (10    | (10    | (10    | (10    | (10    | (10    |
|     | 0,100) | 0,100) | 0,100) | 0,100) | 0,100) | 0,100) | 0,100) |
+-----+--------+--------+--------+--------+--------+--------+--------+

+---------------------------+------------------------------------------+
| ID                        | IAM                                      |
+---------------------------+------------------------------------------+
| 8000                      | CHKMODE                                  |
|                           |                                          |
|                           | (1,1)                                    |
+---------------------------+------------------------------------------+
| 8001                      | DISMBH                                   |
|                           |                                          |
|                           | (-1,1)                                   |
+---------------------------+------------------------------------------+
| 8002                      |                                          |
|                           |                                          |
| :                         |                                          |
|                           |                                          |
| 803A                      |                                          |
+---------------------------+------------------------------------------+
| 803B                      | MDTRANS                                  |
|                           |                                          |
|                           | (1,1)                                    |
+---------------------------+------------------------------------------+

[Table 3.3-2(c): Synchronous ASW Task (wrt mode) in order of
identifier]{.underline}

(thus showing sequence of execution in the given mode)

The Period & Phase are detailed as (Period,Phase) for each task in each
mode in the table above. Note that the actual sequence of execution is
determined by both the sequence of tasks in the task table and the phase
and period of the tasks.

\*Note that INITGLD only runs once ever in either SBM or CRP. The task
prevents itself from running again by writing -1 to its own phase in the
default mode tables.

Legend

Per Period

Phs Phase

S \"\*\" indicates the (OS) task is synchronised to the Format Pulse

┌────────┬─────┬─────┬───┬──────────────────────────────────────┬──────────────┐

│ Task │ Per │ Phs │ S │ Active │ Inhibit │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│BRDCAST │ 1 │ 1 │ \* │ Always │ None │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPTCTOUT│ -1 │ -1 │ │ During TC receipt as follows: │ None │

│ │ │ │ │ │ │

│ │ │ │ │ Interrupt 11 (TC Header word): │ │

│ │ │ │ │ -\> Activate with Phase = 100 │ │

│ │ │ │ │ │ │

│ │ │ │ │ Interrupt 12 (TC data word, expected │ │

│ │ │ │ │ & last word & checksum correct): │ │

│ │ │ │ │ -\> Activate with Phase = 100 │ │

│ │ │ │ │ │ │

│ │ │ │ │ Interrupt 12 (TC data word, expected │ │

│ │ │ │ │ & last word & checksum correct): │ │

│ │ │ │ │ -\> Deactivate with Phase = -1 │ │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│OSTSKSYN│ -1 │ -1 │ \* │ On receipt of the Format Pulse: │ None │

│ │ │ │ │ -\> Activate with Phase = 1 │ │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│REGMEMDP│ 480 │ 100 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2, 3.2 or 3.4. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│EXTMEMDP│ 300 │ 300 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 3.1. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│CHKCNF │ 480 │ 700 │ \* │ Always │ None │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│GETOSTM │ 10 │ 17 │ \* │ Always │ None │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPTHRDMD│ 160 │ 160 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 3.3. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RSTWDOG │ 1 │ 1 │ \* │ Always │ None │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│DETSTBCK│ 10 │ 9 │ │ Always │ None │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│CHKRAM │ 120 │ 50 │ │ Always │ None │

└────────┴─────┴─────┴───┴──────────────────────────────────────┴──────────────┘

[Table 3.3-3(a): Part 1 of 2. Synchronous OS Tasks]{.underline}

┌────────┬─────┬─────┬───┬──────────────────────────────────────┬──────────────┐

│ Task │ Per │ Phs │ S │ Active │ Inhibit │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPIRU │ 480 │ 200 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2, Type 3.2 or Type 3.4. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPSAS │ 240 │ 250 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2 or Type 3.2. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPRWS │ 480 │ 300 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2, Type 3.2 or Type 3.4. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPRWSTQ │ 480 │ 350 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2, Type 3.2 or Type 3.4. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPFPSS │ 10 │ 5 │ \* │ Executes only if the TM packet type │ Use other
TM │

│ │ │ │ │ is Type 2 or Type 3.3. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPRATT │ 100 │ 71 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2 or Type 3.3. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│SSUMP250│ 480 │ 400 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 3.2. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│SSUMP100│ 480 │ 400 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type3.4. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPPROS │ 120 │ 120 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2 or 3.2. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPTHRCOT│ 480 │ 450 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2, or Type 3.2. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPSSUMON│ 240 │ 130 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2, Type 3.2 or Type 3.4. │ packet type │

├────────┼─────┼─────┼───┼──────────────────────────────────────┼──────────────┤

│RPFPSSRW│ 480 │ 550 │ \* │ Executes only if the TM packet type │ Use
other TM │

│ │ │ │ │ is Type 2, Type 3.2 or Type 3.4. │ packet type │

└────────┴─────┴─────┴───┴──────────────────────────────────────┴──────────────┘

[Table 3.3-3(a): Part 2 of 2. Synchronous OS Tasks]{.underline}

The Period & Phase are detailed as \"(Period,Phase)\" for each task in
each mode.

┌──────────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐

│ Task │ IAM │ SBM │ ISA │ FSA │ RMW │ CRP │ CSP │ NM │

├──────────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤

│ ASWTKSYN │ │ -1,-1 │ -1,-1 │ -1,-1 │ -1,-1 │ -1,-1 │ -1,-1 │ -1,-1 │

│ CHKMODE │ 1,1 │ 1,1 │ 1,1 │ 20,1 │ 5,1 │ 5,1 │ 5,1 │ 5,1 │

│ CLROLLV │ │ │ │ │ │ │ │ │

│ CMDSSU │ │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │

│ CMDWDE │ │ 5,5 │ │ 20,5 │ 5,5 │ 5,5 │ 5,5 │ 5,5 │

│ CMPCLTQ │ │ │ │ │ 5,5 │ 5,5 │ │ 5,5 │

│ CSPFPY │ │ │ │ │ │ │ 5,3 │ │

│ CSPPAR │ │ │ │ │ │ │ 20,3 │ │

│ CSPPAP │ │ │ │ │ │ │ 5,3 │ │

│ CSPTRQ │ │ │ │ │ │ │ 5,3 │ │

│ DISMBH │ -1,1 │ │ │ │ │ │ │ │

│ DTSLWST │ │ │ │ │ │ │ │ │

│ DWLDSSU │ │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │

│ FILTWS │ │ 5,2 │ │ │ 5,2 │ 5,2 │ │ 5,2 │

│ FIRETHR │ │ │ 20,5 │ 20,5 │ │ │ 200,5 │ │

│ INITCRP │ │ │ │ │ │ -1,1 │ │ │

│ INITCSP │ │ │ │ │ │ │ -1,1 │ │

│ INITFSA │ │ │ │ -1,1 │ │ │ │ │

│ INITGLD │ │ -1,1 │ │ │ │ -1,1 │ │ │

│ INITISA │ │ │ -1,1 │ │ │ │ │ │

│ INITNM │ │ │ │ │ │ │ │ -1,1 │

│ INITRMW │ │ │ │ │ -1,1 │ │ │ │

│ MD2TRQ │ │ │ 20,2 │ │ │ │ │ │

│ MD3TRQ │ │ │ │ 20,3 │ │ │ │ │

│ MD4TRQP │ │ │ │ │ 5,4 │ │ │ │

│ MD4TRQR │ │ │ │ │ 50,4 │ │ │ │

│ MD4TRQY │ │ │ │ │ 5,4 │ │ │ │

│ MD5RERR │ │ │ │ │ │ 5,4003│ │ │

│ MD5TRQP │ │ │ │ │ │ 5,4 │ │ │

│ MD5TRQR │ │ │ │ │ │ 5,4004│ │ │

│ MD5TRQY │ │ │ │ │ │ 5,4 │ │ │

│ MD7EFN │ │ │ │ │ │ │ │ -1,1 │

│ MD7PCPG │ │ │ │ │ │ │ │ 50,2 │

│ MD7PCTL │ │ │ │ │ │ │ │ 5,4 │

│ MD7RCTL │ │ │ │ │ │ │ │ 50,4 │

│ MD7YCTL │ │ │ │ │ │ │ │ 5,4 │

│ MDTRANS │ 1,1
│100,100│100,100│100,100│100,100│100,100│100,100│100,100│

│ MNWDES │ │ 5,5 │ │ 20,5 │ │ │ 5,5 │ │

│ PRCASWTC │ │ 5,1 │ 20,10 │ 20,10 │ 5,6 │ 5,6 │ 5,1 │ 5,6 │

│ PRCOSTC │ │ 5,1 │ 20,10 │ 20,10 │ 5,6 │ 5,6 │ 5,1 │ 5,6 │

│ PRCFSS │ │ 10,5 │ 10,5 │ 20,3 │ 5,3 │ 5,3 │ 5,3 │ 5,3 │

│ PRCIRU │ │ │ 20,2 │ 20,3 │ │ │ 20,3 │ │

│ PRFATTM │ │ │ │ │ 5,2 │ 5,2 │ │ 5,2 │

│ PRFHXMON │ │ │ │ │ 50,2 │ 50,2 │ │ 50,2 │

│ PRFPWM1 │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM2 │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM3P │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM3R │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM3Y │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM4P │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM4R │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM4Y │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM5P │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM5R │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM5Y │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM6 │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM7 │ │ │ 20,3 │ 20,3 │ │ │ 200,3 │ │

│ PRFPWM9 │ │ │ 20,4 │ 20,4 │ │ │ 200,4 │ │

└──────────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘

┌──────────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐

│ Task │ IAM │ SBM │ ISA │ FSA │ RMW │ CRP │ CSP │ NM │

├──────────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤

│ PRFRSL │ │ │ │ │ 100,93│ │ 100,93│ 100,93│

│ PRFSSU3 │ │ │ │ │ 50,3 │ │ │ 50,3 │

│ PRFSSU7 │ │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │ 1,1 │

│ PRFSSU8 │ │ │ │ │ 50,5 │ │ │ 50,5 │

│ PRFTCTC │ │ 10,4 │ 10,4 │ 10,4 │ 10,4 │ -1,-1 │ 10,4 │ -1,-1 │

│ RCMDETM │ │ │ │ │ │ │ -1,1 │ │

│ RCRSLOFS │ │ │ │ │ 6000, │ │ │ 6000, │

│ │ │ │ │ │ 5998 │ │ │ 5998 │

│ RDFSS │ │ 10,2 │ 10,5 │ 10,2 │ 5,3 │ 5,3 │ 5,2 │ 5,3 │

│ RDIRU │ │ │ 20,2 │ 20,2 │ │ │ 20,2 │ │

│ RDSAS1 │ │ 20,1 │ │ │ │ │ │ │

│ RDSSU │ │ 10,3 │ 10,6 │ 10,6 │ 10,2 │ 10,2 │ 10,5 │ 10,2 │

│ RDWDE │ │ 5,1 │ 20,2 │ 20,1 │ 5,1 │ 5,1 │ 5,1 │ 5,1 │

│ RPCLAW │ │500,375│500,377│500,377│500,375│500,375│500,375│500,374│

│ RPCRSVAR │ │500,155│ │ │500,155│500,155│ │500,154│

│ RPCSTAR │ │500,315│500,317│500,317│500,315│500,315│500,315│500,314│

│ RPFSSCF │ │500,225│500,227│500,227│500,225│500,225│500,225│500,224│

│ RPGLSTM1 │ │500,205│ │ │500,205│500,205│ │500,204│

│ RPGLSTM2 │ │500,215│ │ │500,215│500,215│ │500,214│

│ RPIRUCF │ │ │500,157│500,157│ │ │500,155│ │

│ RPPRSCF │ │ │500,207│500,207│ │ │500,205│ │

│ RPROPL │ │500,335│500,337│500,337│500,335│500,335│500,335│500,334│

│ RPROTM │ │500,395│500,397│500,397│500,395│500,395│500,395│500,394│

│ RPRSLCF │ │500,275│500,277│500,277│500,275│500,275│500,275│500,274│

│ RPSASCF │ │500,165│500,167│500,167│500,165│500,165│500,165│500,164│

│ RPSLEW │ │500,355│500,357│500,357│500,355│500,355│500,355│500,354│

│ RPSSUCF │ │500,245│500,247│500,247│500,245│500,245│500,245│500,244│

│ RPSSUST │ │500,295│500,297│500,297│500,295│500,295│500,295│500,294│

│ RPTIMMED │ │ 50,3 │ 50,1 │ 50,1 │ 50,1 │ 50,1 │ 50,1 │ 50,1 │

│ RPWDECF │ │500,185│500,187│500,187│500,185│500,185│500,185│500,184│

│ RQFSSBRD │ │ 5,5 │ 5,5 │ 5,5 │ 5,5 │ 5,5 │ 5,5 │ 5,5 │

│ RQIRUBRD │ │ │ 20,20 │ 20,20 │ │ │ 20,20 │ │

│ RQSSUBRD │ │ 50,50 │ 50,50 │ 50,50 │ 50,50 │ 50,50 │ 50,50 │ 50,50 │

│ SEUCHK │ │ │ │ │ 50,2 │ │ │ 50,2 │

│ TRANSF2B │ │ -1,1 │ -1,1 │ │ │ │ │ │

│ WDESREF │ │ │ │ -1,3 │ │ │ -1,3 │ │

└──────────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘

The Period & Phase are detailed as \"(Period,Phase)\" for each task in
each mode.

[Table 3.3-3(b): Synchronous ASW Tasks (Period & Phase)]{.underline}

(mode) = Inhibit by not entering the mode in which the task is active

┌─────────┬──────────────────────────────────────────────────┬─────────────────┐

│Task │ Active │ Inhibit │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│ASWTKSYN │ In all modes except IAM. This is executed in the │ None │

│ │ second 10ms slot following the Format Pulse │ │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CHKMODE │ Always in all valid modes. │ None │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CLROLLV │ Never executed. (Previously used in RMW) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CMDSSU │ In all valid modes except IAM. No effective │ Do not issue │

│ │ action is performed unless requested by ABACU211 │ ABACU211 │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CMDWDE │ When in SBM, RMW, CRP or NM │ (mode) │

│ │ Also previously used in FSA and CSP. │ │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CMPCLTQ │ When in RMW, CRP or NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CSPFPY │ Never executed. Previously used in CSP │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CSPPAR │ Never executed. Previously used in CSP │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CSPPAP │ Never executed. Previously used in CSP │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│CSPTRQ │ Never executed. Previously used in CSP │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│DISMBH │ This is executed once only on entry to IAM │ None │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│DTSLWST │ Never executed. Previously used in RMW │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│DWLDSSU │ In all valid modes except IAM. No effective │ Do not issue │

│ │ action is performed unless requested by ABACU211 │ ABAC211 │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│FILTWS │ When in SBM, RMW, CRP or NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│FIRETHR │ Never executed. Was used in ISA, FSA, and CSP │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│INITCRP │ This is executed once only on entry to CRP. │ Do not enter │

│ │ Effective action is only performed if mode │ CRP or Clear │

│ │ initialisation flags are asserted │ transition flag │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│INITCSP │ Never executed. │ Transitions to │

│ │ This was executed only once on entry to CSP. │ CSP inhibited │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│INITFSA │ Never executed. │ Transitions to │

│ │ This was executed only once on entry to FSA. │ FSA inhibited │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│INITGLD │ This is executed only once ever either on the │ After
execution │

│ │ first entry to CRP following the Gyroless update │ the task over- │

│ │ or in SBM if the Gyroless update is performed in │ writes its own │

│ │ SBM. │ phase with -1. │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│INITISA │ Never executed. │ Transitions to │

│ │ This was executed only once on entry to ISA. │ ISA inhibited │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│INITNM │ This is executed once only on entry to NM. │ Do not enter │

│ │ Effective action is only performed if mode │ NM or Clear │

│ │ initialisation flags are asserted │ transition flag │

└─────────┴──────────────────────────────────────────────────┴─────────────────┘

┌─────────┬──────────────────────────────────────────────────┬─────────────────┐

│Task │ Active │ Inhibit │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│INITRMW │ This is executed once only on entry to RMW. │ Do not enter │

│ │ Effective action is only performed if mode │ RMW or clear │

│ │ initialisation flags are asserted │ transition flag │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD2TRQ │ Never executed. Previously used in ISA │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD3TRQ │ Never executed. Previously used in FSA │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD4TRQP │ When in RMW │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD4TRQR │ When in RMW │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD4TRQY │ When in RMW │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD5RERR │ When in CRP │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD5TRQP │ When in CRP │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD5TRQR │ When in CRP │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD5TRQY │ When in CRP │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD7EFN │ This is executed once only on entry to NM │ Do not enter NM │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD7PCPG │ When in NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD7PCTL │ When in NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD7RCTL │ When in NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MD7YCTL │ When in NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MDTRANS │ Always in all valid maodes. No effective action │ Do not
command │

│ │ is performed if no mode transition is pending │ mode transition │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│MNWDES │ When in SBM. │ (mode) │

│ │ Also previously used in FSA and CSP. │ │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRCASWTC │ In all valid modes except IAM. No effective │ Do not issue │

│ │ action is performed if no telecommand is pending│ telecommands │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRCFSS │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRCIRU │ No longer executed. │ Always │

│ │ Previously used in all modes except IAM. │ │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRCOSTC │ In all modes valid except IAM. No effective │ Do not issue │

│ │ action is performed if no telecommand is pending │ telecommands │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFATTM │ When in RMW, CRP or NM. No effective action is │ Do not issue
│

│ │ performed unless an attitude manoeuvre has been │ att. manoeuvre │

│ │ requested. │ telecommands │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFHXMON │ When in RMW, CRP or NM. │ (mode) │

└─────────┴──────────────────────────────────────────────────┴─────────────────┘

┌─────────┬──────────────────────────────────────────────────┬─────────────────┐

│Task │ Active │ Inhibit │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM1 │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM2 │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM3P │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM3R │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM3Y │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM4P │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM4R │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM4Y │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM5P │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM5R │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM5Y │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM6 │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM7 │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFPWM9 │ Never executed. (Was used in ISA, FSA or CSP) │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFRSL │ When in RMW or NM. (Also previously used in CSP) │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFSSU3 │ When in RMW or NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFSSU7 │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFSSU8 │ When in RMW or NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│PRFTCTC │ When in SBM or RMW. (Previously also in ISA, │ Do not issue │

│ │ FSA, CSP and NM). No effective action is │ ABACU201 │

│ │ performed unless requested by ABACU201 │ │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RCMDETM │ Never executed. │ Always │

│ │ (Was executed once only on entry to RMW and CSP) │ │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RCRSLOFS │ When in RMW or NM │ (mode or set │

│ │ │ task phase = -1)│

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RDFSS │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RDIRU │ Never executed. Was used in all modes except IAM │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RDSAS1 │ When in ISA │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RDSSU │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RDWDE │ In all valid modes except IAM │ (mode) │

└─────────┴──────────────────────────────────────────────────┴─────────────────┘

┌─────────┬──────────────────────────────────────────────────┬─────────────────┐

│Task │ Active │ Inhibit │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPCLAW │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPCRSVAR │ When in SBM, RMW, CRP or NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPCSTAR │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPFSSCF │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPGLSTM1 │ When in SBM, RMW, CRP or NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPGLSTM2 │ When in SBM, RMW, CRP or NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPIRUCF │ Never executed. Was used in all modes except IAM │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPPRSCF │ Never executed. Was used in all modes except IAM │ Always │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPROPL │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPROTM │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPRSLCF │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPSASCF │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPSLEW │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPSSUCF │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPSSUST │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPTIMMED │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RPWDECF │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RQFSSBRD │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RQIRUBRD │ Never executed. Was used in all modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│RQSSUBRD │ In all valid modes except IAM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│SEUCHK │ When in RMW or NM │ (mode) │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│TRANSF2B │ This is executed once only on entry to SBM │ Do not enter │

│ │ (Previously also ISA) │ SBM │

├─────────┼──────────────────────────────────────────────────┼─────────────────┤

│WDESREF │ Never executed. │ Always │

│ │ Was executed once only on entry to FSA and CSP │ │

└─────────┴──────────────────────────────────────────────────┴─────────────────┘

(mode) = Inhibit by not entering the mode in which the task is active

[Table 3.3-3(c): Conditions for execution of Synchronous ASW
Tasks]{.underline}

┌──────────┬─────┬─────┬─────────────────────────────┬─────────┐

│ Task │ Per │ Phs │ Active │ Inhibit │

├──────────┼─────┼─────┼─────────────────────────────┼─────────┤

│ CDCHKSUM │ 1 │ 1 │ Always │ None │

├──────────┼─────┼─────┼─────────────────────────────┼─────────┤

│ TMCOMMON │ -1 │ 1 │ On execution of OSTSKSYN: │ None │

│ │ │ │ -\> Activate with Phase = 1 │ │

└──────────┴─────┴─────┴─────────────────────────────┴─────────┘

[Legend]{.underline}

Per Period

Phs Phase

S \"\*\" indicates the (OS) task is synchronised to the Format Pulse

[Table 3.3-3(d): Background Tasks]{.underline}

## 3.4 TELEMETRY

### 3.4.1 Introduction

> Telemetry consist of 556-word packets issued every TM period. Each
> packet is generated in one TM period and transmitted in the next TM
> period.
>
> The OBS processing consists of
>
> · TM packet generation
>
> · TM packet transmission

### 3.4.2 TM Packet Transmission

> The transmission of the TM packet is controlled by the Format Pulse.
> The occurrence of this forces the OBS to make a TM packet available
> for transmission irrespective of whether or not all data has been
> generated for that TM packet.
>
> The OBS then expects 556 data acquisition interrupts (Interrupt 2)
> from the OBDH. The data acquisition interrupt is generated after a
> data word (starting at word 0 in the packet) is acquired by the RTU.
>
> The errors detected by this OBS function are

Overflow \> 556 data acquisitions made by the OBDH (ERRTMOVF)

Underflow \< 556 data acquisitions made by the OBDH (ERRTMUNF)

Incomplete TM packet generation not complete

on the occurrence of the Format Pulse (ERRTMINC)

> The mnemonic in brackets is the error ID as defined in §3.6.2.

### 3.4.3 TM Packet Generation

3.4.3.1 General

> The TM packet generation is the gathering of data for a TM packet over
> the TM period. There are five distinct packet types defined, one of
> which is operative at any one time. The packet types are
>
> type 2 Nominal TM packet type for S/C operations
>
> type 3.1 Extended Memory Dump facility
>
> type 3.2 Extended SSU Data Dump to support star mapping during RMW
>
> mode
>
> type 3.3 Extended Thruster Activation Data Dump
>
> type 3.4 Extended SSU Data Dump to support star mapping during early
>
> mission phases.
>
> The packet type can be selected by the ABACU104 telecommand.
>
> Two forms of data words can be identified with respect to their timing
> properties,
>
> · [Buffered]{.underline}, the data word is stored in the TM packet
> which is not transmitted until the next Format Pulse.
>
> · [Immediate]{.underline}, the data word is stored in the TM packet
> which is currently being transmitted to the OBDH.
>
> Each of the five packet types is detailed below as follows:
>
> word: The word number(s) within the 0 to 555 word TM packet.
>
> Word 0 is the first word transmitted to the OBDH.
>
> Mnemonic: A mnemonic used to reference individual words in the TM
>
> packet. This mnemonic is unique throughout the four TM packet types.
>
> Type: The format of the word. Each of the identified types is
>
> defined to bit-level in 3.4.3.7.
>
> Init value: The initial value assigned during the OBS
>
> Initialisation State or following the Gyroless update. An assignment
> of \"n/a\" means that the first TM packet in the OBS Active State
> contains an actual or default value.
>
> Timing: Defines when this word is generated during the TM
>
> period. The time given for a block of TM represents when that block is
> written to the packet, while the time given for a word of TM
> represents when that word is created by the S/W.

Time is given in units of seconds.

> Validity: Defines when this word is valid.
>
> Description: A short description of the word. Additional information
>
> is specified in AD.2.

**3.4.3.2 Type 2 Packet**

┌─────────┬─────────┬─────────┬─────┬─────────────┬────────┬───────────────────┐

│word │Mnemonic │Type │Init │Timing │Validity│Description │

│ │ │ │value│ │ │ │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│0..2 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│3..5 │AKLOBTGS │time │0 │\[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │generation start │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│6 │AKACUST │acust │n/a │\[0\] │Always │ACU status word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│7 │AKNBSCH │int │0 │\[0\] │Always │No. of background │

│ │ │ │ │ │ │schedulers run │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│8 │AKNSSCH │int │0 │\[0\] │Always │No. of synchronous │

│ │ │ │ │ │ │schedulers run │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│9 │AKTIMERB │word │n/a │\[0\] │Always │1750A Timer/B value│

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│10 │AKMODEST │mdst │n/a │Imm.\[13\] │Always │Mode status word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│11 │AKROMCHK │word │n/a │\[14.87±0.010\]│Always │Last code checksum │

│ │ │ │ │ │ │value │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│12 │AARAMFAI │word │0 │\[14.87±0.010\]│Always │Number of RAM │

│ │ │ │ │ │ │failures │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│13 │AKARD │int │ │13 (Imm) │Always │Roll attitude │

│ │ │ │ │ │ │data word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│14..16 │AYFTRPT │t:3.4-1 │0 │Int-1 │iff │Fault Register │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│17 │AKTCHED │word │0 │\[end\] │Always │Last TC header │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│18 │AKTCDAT │word │0 │\[end\] │Always │Last TC data word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│19..20 │AYTCERRS │t:3.4-2 │- │\[end\] │Always │TC error report │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│21 │AKNULL │N/A │0 │N/A │N/A │Always = 000016 │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│22 │AKMDSADR │word │Nt1 │\[1±0.010\] │Always │Start address of │

│ │ │ │ │ │ │memory dump │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│23..38 │AYMDRG │t:3.4-4 │n/a │\[1±0.010\] │Always │Memory Dump data │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│39 │AKTC106D │word │0 │abacu106 │iff │ABACU106 result │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│40..55 │AYERRRPT │t:3.4-5 │- │s/w error │iff │Error report buffer│

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│56..70 │AYTCEXEH │t:3.4-6 │- │\[end\] │Always │TC execution │

│ │ │ │ │ │ │history │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│71..80 │AYTCERRH │t:3.4-7 │- │\[end\] │Always │TC error history │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│81..84 │AYFTERR │t:3.4-8 │- │Int-1 │iff │Memory parity & │

│ │ │ │ │ │ │Watchdog error │

│ │ │ │ │ │ │report │

└─────────┴─────────┴─────────┴─────┴─────────────┴────────┴───────────────────┘

┌─────────┬─────────┬─────────┬─────┬─────────────┬────────┬───────────────────┐

│word │Mnemonic │Type │Init │Timing │Validity│Description │

│ │ │ │value│ │ │ │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│85..86 │AYMACERR │t:3.4-9 │- │\[end\] │Always │MACS error report │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│87 │AKTCST │tcst │- │\[end\] │Always │TC status word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│88 │AKHWCNF │tchcf │Arb. │\[7±0.010\] │Always │H/W configuration │

│ │ │ │ │ │ │word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│89..90 │AYIRUDA │t:3.4-10 │- │\[2±0.010\] │Always │IRU Data │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│91..100 │AYCRSDA │t:3.4-11 │- │l3 │Always │CRS data │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│101..106 │AYSASDA │t:3.4-12 │- │\[12.5±0.010\] │Always │SAS data report
│

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│107..110 │AYSASCFV │t:3.4-13 │ │l3 │Always │SAS common function│

│ │ │ │ │ │ │variables │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│111..114 │AYWDEDA │t:3.4-14 │ - │\[3±0.010\] │Always │WDE wheel speeds
│

│ │ │ │ │ │ │report │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│115..122 │AYWDECFV │t:3.4-15 │ - │l3 │Always │WDE common function│

│ │ │ │ │ │ │variables │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│123..126 │AYWDETRQ │t:3.4-16 │ - │\[3.5±0.010\] │Always │WDE torque
demands │

│ │ │ │ │ │ │report │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│127 │AKSSUTSU │int │0 │13 │Always │Trans SSU SEU cnt │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│128..130 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│131..251 │AYFSSDA1 │t:3.4-17 │ - │see t:3.4-17 │Always │FPSS data
report#1 │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│252..277 │AYROL1 │t:3.4-19 │ - │see t:3.4-19 │Always │Roll attitude │

│ │ │ │ │ │ │telemetry block #1 │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│278..280 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│281..290 │AYPRSMN │t:3.4-21 │- │see t:3.4-21 │Always │PROS Monitoring │

│ │ │ │ │ │ │report │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│291 │AKARD │int │ │l3 (Imm) │Always │Roll attitude data │

│ │ │ │ │ │ │word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│292..317 │AYGLSTM │t:3.4-22 │ - │l3 │Always │Gyroless sensor TM │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│318..341 │AYPRSUSE │t:3.4-23 │ - │see t:3.4-23 │Always │Thruster usage
│

│ │ │ │ │ │ │report │

└─────────┴─────────┴─────────┴─────┴─────────────┴────────┴───────────────────┘

┌─────────┬─────────┬─────────┬─────┬─────────────┬────────┬───────────────────┐

│word │Mnemonic │Type │Init │Timing │Validity│Description │

│ │ │ │value│ │ │ │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│342..363 │AYFSSCFV │t:3.4-24 │ - │l3 │Always │FPSS common │

│ │ │ │ │ │ │function variables │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│364..365 │AYSSUSCW │t:3.4-25 │ - │l3 │Always │SSU Status & │

│ │ │ │ │ │ │command info │

│ │ │ │ │ │ │status word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│366..391 │AYSSUCFV │t:3.4-26 │- │l3 │Always │SSU common │

│ │ │ │ │ │ │function variables │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│392 │AKSSUMST │macs │0 │l3 │Always │SSU mode status │

│ │ │ │ │ │ │word (from SSU) │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│393 │AKSSUHCS │macs │0 │13.3+/-0.01 │Always │SSU health check │

│ │ │ │ │ │ │status word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│394..397 │AYSSUMON │t:3.4-28 │ - │\[13.3±0.010\] │Always │SSU monitors
│

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│398..402 │AYFSSRAW │t:3.4-29 │ - │\[5.5±0.010\] │Always │Unprocessed
FPSS │

│ │ │ │ │ │ │data │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│403..404 │AYFSSANG │t:3.4-40 │ - │ 13 │Always │Measured FPSS pitch│

│ │ │ │ │ │ │and yaw angles │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│405 │AKMODEST │mdst │ n/a │Imm.\[13\] │Always │Mode status word │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│406..408 │AKLOBTTS │time │ n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│409..529 │AYFSSDA2 │t:3.4-30 │ - │see t:3.4-30 │Always │FPSS data
report #2│

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│530..533 │AYROL2 │t:3.4-31 │ - │see t:3.4-31 │Always │Roll attitude │

│ │ │ │ │ │ │telemetry block #2 │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│534..535 │AKSSUROP │flt │ 0.0 │l3 │Always │SSU roll │

│ │ │ │ │ │ │off-pointing limit │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│536..537 │AKRSLCFV │t:3.4-32 │- │l3 │Always │RSL common │

│ │ │ │ │ │ │function variables │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│538..544 │AYSLWDA │t:3.4-33 │- │l3 │Always │Slew data │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│545..550 │AYTORQ │t:3.4-34 │ - │l3 │Always │Torque Demands │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│551..552 │AKSSUROT │flt │ 0.0 │13 │Always │Roll TM offset │

├─────────┼─────────┼─────────┼─────┼─────────────┼────────┼───────────────────┤

│553..555 │AKNULL │N/A │ 0 │N/A │N/A │Always = 000016 for│

│ │ │ │ │ │ │all 4 words │

└─────────┴─────────┴─────────┴─────┴─────────────┴────────┴───────────────────┘

**3.4.3.3 Type 3.1 Packet**

┌────────┬────────┬────────┬────────┬─────────────┬────────┬───────────────────┐

│word │Mnemonic│Type │Init │Timing │Validity│ Description │

│ │ │ │value │ │ │ │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│0..2 │AKLOBTTS│time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│3..5 │AKLOBTGS│time │0 │\[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │generation start │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│6 │AKACUST │acust │n/a │\[0\] │Always │ACU status word │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│7 │AKNBSCH │int │0 │\[0\] │Always │No. of background │

│ │ │ │ │ │ │schedulers run │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│8 │AKNSSCH │int │0 │\[0\] │Always │No. of synchronous │

│ │ │ │ │ │ │schedulers run │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│9 │AKTIMERB│word │n/a │\[0\] │Always │1750A Timer/B value│

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│10 │AKMODEST│mdst │n/a │Imm. \[0\] │Always │Mode status word │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│11 │AKROMCHK│word │n/a │\[14.87±0.010\]│Always │Last code checksum │

│ │ │ │ │ │ │value │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│12 │AARAMFAI│word │0 │\[14.87±0.010\]│Always │Number of RAM │

│ │ │ │ │ │ │failures │

│ │ │ │ │ │ │(extended) │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│13 │AKNULL │N/A │0 │N/A │N/A │Always = 000016 │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│14 │AKMDSADR│word │0000 │\[3±0.010\] │Always │Start address of │

│ │ │ │ │ │ │memory dump │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│15..127 │AYMDEX1 │113wd │n/a │\[3±0.010\] │Always │Memory Dump data #1│

│ │ │ │ │ │ │(extended) │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│128..130│AKLOBTTS│time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│131..277│AYMDEX2 │147wd │n/a │\[6±0.010\] │Always │Memory Dump data #2│

│ │ │ │ │ │ │(extended) │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│278..280│AKLOBTTS│time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│281..404│AYMDEX3 │124wd │n/a │\[9±0.010\] │Always │Memory Dump data #3│

│ │ │ │ │ │ │(extended) │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│405 │AKMODEST│mdst │n/a │Imm. \[0\] │Always │Mode status word │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│406..408│AKLOBTTS│time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│409..536│AYMDEX4 │128wd │n/a │\[12±0.010\] │Always │Memory Dump data
#4│

│ │ │ │ │ │ │(extended) │

├────────┼────────┼────────┼────────┼─────────────┼────────┼───────────────────┤

│537..555│AKNULL │N/A │0 │N/A │N/A │Always = 000016 │

└────────┴────────┴────────┴────────┴─────────────┴────────┴───────────────────┘

**3.4.3.4 Type 3.2 Packet**

┌─────────┬────────┬──────────┬──────┬─────────────┬────────┬──────────────────┐

│word │Mnemonic│Type │Init │Timing │Validity│Description │

│ │ │ │value │ │ │ │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│0..2 │AKLOBTTS│time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start│

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│3..5 │AKLOBTGS│time │0 │\[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │generation start │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│6 │AKACUST │acust │n/a │\[0\] │Always │ACU status word │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│7 │AKNBSCH │int │0 │\[0\] │Always │No. of background │

│ │ │ │ │ │ │schedulers run │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│8 │AKNSSCH │int │0 │\[0\] │Always │No. of synchronous│

│ │ │ │ │ │ │schedulers run │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│9 │AKTIMERB│word │n/a │\[0\] │Always │1750A Timer/B │

│ │ │ │ │ │ │value │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│10 │AKMODEST│mdst │n/a │Imm. \[0\] │Always │Mode status word │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│11 │AKROMCHK│word │n/a │\[14.87±0.010\]│Always │Last code checksum│

│ │ │ │ │ │ │value │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│12 │AARAMFAI│word │0 │\[14.87±0.010\]│Always │Number of RAM │

│ │ │ │ │ │ │failures │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│13 │AKARD │int │ │l3 │Always │Roll attitude data│

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│14..16 │AYFTRPT │t:3.4-1 │0 │Int-1 │iff │Fault Register │

│ │ │ │ │ │ │data │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│17 │AKTCHED │word │0 │\[end\] │Always │Last TC header │

│ │ │ │ │ │ │word │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│18 │AKTCDAT │word │0 │\[end\] │Always │Last TC data word │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│19..20 │AYTCERRS│t:3.4-2 │- │\[end\] │Always │TC error report │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│21 │AKNULL │N/A │0 │N/A │N/A │Always = 000016 │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│22 │AKMDSADR│word │Nt1 │\[1±0.010\] │Always │Start address of │

│ │ │ │ │ │ │memory dump │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│23..38 │AYMDRG │t:3.4-4 │n/a │\[1±0.010\] │Always │Memory Dump data │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│39 │AKTC106D│word │0 │abacu106 │iff │ABACU106 result │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│40..55 │AYERRRPT│t:3.4-5 │- │s/w error │iff │Error report │

│ │ │ │ │ │ │buffer │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│56..70 │AYTCEXEH│t:3.4-6 │- │\[end\] │Always │TC execution │

│ │ │ │ │ │ │history │

├─────────┼────────┼──────────┼──────┼─────────────┼────────┼──────────────────┤

│71..80 │AYTCERRH│t:3.4-7 │- │\[end\] │Always │TC error history │

└─────────┴────────┴──────────┴──────┴─────────────┴────────┴──────────────────┘

┌─────────┬─────────┬──────────┬──────┬────────────┬────────┬──────────────────┐

│word │Mnemonic │Type │Init │Timing │Validity│Description │

│ │ │ │value │ │ │ │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│81..84 │AYFTERR │t:3.4-8 │- │Int-1 │iff │Memory parity & │

│ │ │ │ │ │ │Watchdog error │

│ │ │ │ │ │ │report │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│85..86 │AYMACERR │t:3.4-9 │- │\[end\] │Always │MACS error report │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│87 │AKTCST │tcst │- │\[end\] │Always │TC status word │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│88 │AKHWCNF │tchcf │Arb. │\[7±0.010\] │Always │H/W config word │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│89..90 │AYIRUDA │t;3.4-10 │- │\[2.5±0.010\] │Always │IRU Data │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│91..100 │AYCRSDA │t:3.4-11 │- │l3 │Always │CRS data │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│101-106 │AYSASDA │t:3.4-12 │- │\[27.5±0.010\]│Always │SAS data report │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│107-110 │AYSASCFV │t:3.4-13 │- │13 │Always │SAS common │

│ │ │ │ │ │ │function variables│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│111-114 │AYWDEDA │t:3.4-14 │- │\[3±0.010\] │Always │WDE wheel speeds │

│ │ │ │ │ │ │report │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│115..122 │AYWDECFV │t:3.4-15 │- │l3 │Always │WDE common │

│ │ │ │ │ │ │function variables│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│123..126 │AYWDETRQ │t:3.4-16 │- │\[3.5±0.010\] │Always │WDE torque
demands│

│ │ │ │ │ │ │report │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│127 │AKSSUTSU │int │0 │13 │Always │Trans SSU SEU cnt │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│128..130 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│131 │AYSSUBFC │int │ │\[4±0.010\] │Always │Block seq. no. of │

│ │ │ │ │ │ │SSU buffered data │

│ │ │ │ │ │ │report. │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│132..256 │AYSSUBF1 │ssubf1 │- │\[9±0.010\] │Always │Buffered SSU data │

│ │ │ │ │ │ │block (1st. half) │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│257..277 │AKNULL │N/A │0 │N/A │N/A │Always = 000016 │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│278..280 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│281..290 │AYPRSMN │t:3.4-21 │- │\[13.2±0.010\]│Always │PROS Monitoring
│

│ │ │ │ │ │ │report │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│291 │AKARD │int │ │l3 │Always │Roll attitude data│

│ │ │ │ │ │ │word │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│292..317 │AYGLSTM │t:3.4-22 │- │l3 │Always │Gyroless sensor TM│

└─────────┴─────────┴──────────┴──────┴────────────┴────────┴──────────────────┘

┌─────────┬─────────┬──────────┬──────┬────────────┬────────┬──────────────────┐

│word │Mnemonic │Type │Init │Timing │Validity│Description │

│ │ │ │value │ │ │ │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│318..341 │AYPRSUSE │t:3.4-23 │- │see t:3.4-23│Always │Thruster usage │

│ │ │ │ │ │ │report │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│342..363 │AYFSSCFV │t:3.4-24 │- │l3 │Always │FPSS common │

│ │ │ │ │ │ │function variables│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│364..365 │AYSSUSCW │t:3.4-25 │- │l3 │Always │SSU Status & │

│ │ │ │ │ │ │command info │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│366..391 │AYSSUCFV │t:3.4-26 │- │l3 │Always │SSU common │

│ │ │ │ │ │ │function variables│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│392 │AKSSUMST │macs │0 │l3 │Always │SSU mode status │

│ │ │ │ │ │ │word (from SSU) │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│393 │AKSSUHCS │macs │0 │13.3+/-0.01 │Always │SSU health check │

│ │ │ │ │ │ │status word │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│394..397 │AYSSUMON │t:3.4-28 │- │\[13.3±0.010\]│Always │SSU monitors │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│398..402 │AYFSSRAW │t:3.4-29 │- │\[5.5±0.010\] │Always │Unprocessed
FPSS │

│ │ │ │ │ │ │data │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│403..404 │AYFSSANG │t:3.4-40 │ - │ 13 │Always │Measured FPSS │

│ │ │ │ │ │ │pitch & yaw angles│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│405 │AKMODEST │mdst │n/a │Imm. \[0\] │Always │Mode status word │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│406..408 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│409..533 │AYSSUBF2 │ssubf1 │- │\[14±0.010\] │Always │Buffered SSU data
│

│ │ │ │ │ │ │block (2nd. half) │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│534..535 │AKSSUROP │flt │0.0 │l3 │Always │SSU roll off │

│ │ │ │ │ │ │pointing limit │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│536..537 │AKRSLCFV │t:3.4-32 │- │l3 │Always │RSL common │

│ │ │ │ │ │ │function variables│

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│538..544 │AYSLWDA │t:3.4-33 │- │l3 │Always │Slew data │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│545..550 │AYTORQ │t:3.4-34 │- │l3 │Always │Torque Demands │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│551..552 │AKSSUROT │flt │0.0 │13 │Always │Roll TM offset │

├─────────┼─────────┼──────────┼──────┼────────────┼────────┼──────────────────┤

│553..555 │AKNULL │N/A │0 │N/A │N/A │Always = 000016 │

│ │ │ │ │ │ │for all 4 words │

└─────────┴─────────┴──────────┴──────┴────────────┴────────┴──────────────────┘

**3.4.3.5 Type 3.3 Packet**

┌─────────┬─────────┬──────────┬─────┬────────────┬────────┬───────────────────┐

│word │Mnemonic │Type │Init │ Timing │Validity│Description │

│ │ │ │value│ │ │ │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│0..2 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│3..5 │AKLOBTGS │time │0 │\[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │generation start │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│6 │AKACUST │acust │n/a │\[0\] │Always │ACU status word │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│7 │AKNBSCH │int │0 │\[0\] │Always │No. of background │

│ │ │ │ │ │ │schedulers run │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│8 │AKNSSCH │int │0 │\[0\] │Always │No. of synchronous │

│ │ │ │ │ │ │schedulers run │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│9 │AKTIMERB │word │n/a │\[0\] │Always │1750A Timer/B value│

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│10 │AKMODEST │mdst │n/a │Imm. \[0\] │Always │Mode status word │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│11..126 │AYTHR1 │t:3.4-35 │- │Nt2 │Always │Thruster demand │

│ │ │ │ │ │ │data block 1 │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│127 │AKSSUTSU │int │0 │13 │Always │Trans SSU SEU cnt │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│128..130 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│131..251 │AYFSSDA1 │t:3.4-17 │- │see t:3.4-17│Always │FPSS data report
#1│

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│252..277 │AYROL1 │t:3.4-19 │- │see t:3.4-19│Always │Roll attitude │

│ │ │ │ │ │ │telemetry block #1 │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│278..280 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│281..396 │AYTHR2 │t:3.4-35 │- │Nt2 │Always │Thruster demand │

│ │ │ │ │ │ │data block 2 │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│397 │AKTHRFN │int │ │\[14.4 │Always │Number of thruster │

│ │ │ │ │ ± 010\] │ │firings │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│398..404 │AYTHRTI │t:3.4-36 │- │\[end\] │Always │Total thruster │

│ │ │ │ │ │ │on-time increment │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│405 │AKMODEST │mdst │n/a │Imm. \[0\] │Always │Mode status word │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│406..408 │AKLOBTTS │time │n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│409..529 │AYFSSDA2 │t:3.4-30 │- │see t:3.4-30│Always │FPSS data report
#2│

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│530..533 │AYROL2 │t:3.4-31 │- │see t:3.4-31│Always │Roll attitude │

│ │ │ │ │ │ │telemetry block #2 │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│534..535 │AKSSUROP │flt │0.0 │l3 │Always │SSU roll off │

│ │ │ │ │ │ │pointing limit │

└─────────┴─────────┴──────────┴─────┴────────────┴────────┴───────────────────┘

┌─────────┬─────────┬──────────┬─────┬────────────┬────────┬───────────────────┐

│word │Mnemonic │Type │Init │ Timing │Validity│Description │

│ │ │ │value│ │ │ │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│536..537 │AKRSLCFV │t:3.4-32 │- │l3 │Always │RSL common │

│ │ │ │ │ │ │function variables │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│538..544 │AYSLWDA │t:3.4-33 │- │l3 │Always │Slew data │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│545..550 │AYTORQ │t:3.4-34 │- │l3 │Always │Torque Demands │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│551..552 │AKSSUROT │flt │0.0 │13 │Always │Roll TM offset │

├─────────┼─────────┼──────────┼─────┼────────────┼────────┼───────────────────┤

│553..555 │AKNULL │N/A │0 │N/A │N/A │Always = 0 │

└─────────┴─────────┴──────────┴─────┴────────────┴────────┴───────────────────┘

**3.4.3.6 Type 3.4 Packet**

┌────────┬─────────┬─────────┬──────┬─────────────┬────────┬───────────────────┐

│ word │ Mnemonic│Type │ Init │Timing │Validity│Description │

│ │ │ │ value│ │ │ │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│ 0..2 │ AKLOBTTS│time │ n/a │Imm. \[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│ 3..5 │ AKLOBTGS│time │ 0 │\[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │generation start │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│ 6 │ AKACUST │acust │ n/a │\[0\] │Always │ACU status word │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│ 7 │ AKNBSCH │int │ 0 │\[0\] │Always │No. of background │

│ │ │ │ │ │ │schedulers run │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│ 8 │ AKNSSCH │int │ 0 │\[0\] │Always │No. of synchronous │

│ │ │ │ │ │ │schedulers run │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│ 9 │ AKTIMERB│word │ n/a │\[0\] │Always │1750A Timer/B value│

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│10 │ AKMODEST│mdst │ n/a │Imm. \[0\] │Always │Mode status word │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│11 │ AKROMCHK│word │ n/a │\[14.87±0.010\]│Always │Last code checksum │

│ │ │ │ │ │ │value │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│12 │ AARAMFAI│word │ 0 │\[14.87±0.010\]│Always │Number of RAM │

│ │ │ │ │ │ │failures │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│13 │ AKARD │int │ │13 │Always │Roll attitude data │

│ │ │ │ │ │ │word │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│14..16 │ AYFTRPT │t:3.4-1 │ 0 │Int-1 │iff │Fault Register data│

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│17 │ AKTCHED │word │ 0 │\[end\] │Always │Last TC header word│

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│18 │ AKTCDAT │word │ 0 │\[end\] │Always │Last TC data word │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│19..20 │ AYTCERRS│t:3.4-2 │ - │\[end\] │Always │TC error report │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│21 │ AKNULL │N/A │ 0 │N/A │N/A │Always = 000016 │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│22 │ AKMDSADR│word │ Nt1 │\[1±0.010\] │Always │Start address of │

│ │ │ │ │ │ │memory dump │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│23..38 │ AYMDRG │t:3.4-4 │ n/a │\[1±0.010\] │Always │Memory Dump data │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│39 │ AKTC106D│word │ 0 │abacu106 │iff │ABACU106 result │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│40..55 │ AYERRRPT│t:3.4-5 │ - │s/w error │iff │Error report buffer│

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│56..70 │ AYTCEXEH│t:3.4-6 │ - │\[end\] │Always │TC execution │

│ │ │ │ │ │ │history │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│71..80 │ AYTCERRH│t:3.4-7 │ - │\[end\] │Always │TC error history │

├────────┼─────────┼─────────┼──────┼─────────────┼────────┼───────────────────┤

│81..84 │ AYFTERR │t:3.4-8 │ - │Int-1 │iff │Memory parity & │

│ │ │ │ │ │ │Watchdog error rpt.│

└────────┴─────────┴─────────┴──────┴─────────────┴────────┴───────────────────┘

┌────────┬──────────┬─────────┬──────┬────────────┬────────┬───────────────────┐

│ word │ Mnemonic │Type │ Init │Timing │Validity│Description │

│ │ │ │ value│ │ │ │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│85..86 │ AYMACERR │t:3.4-9 │ - │\[end\] │Always │MACS error report │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│87 │ AKTCST │tcst │ - │\[end\] │Always │TC status word │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│88 │ AKHWCNF │tchcf │ Arb. │\[7±0.010\] │Always │H/W configuration │

│ │ │ │ │ │ │word │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│89..90 │ AYIRUDA │t:3.4-10 │ - │\[2.5±0.010\] │Always │IRU Data │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│91..94 │ AYWDEDA │t:3.4-14 │ - │\[3±0.010\] │Always │WDE wheel speeds │

│ │ │ │ │ │ │report │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│95..98 │ AYWDETRQ │t:3.4-16 │ - │\[3.5±0.010\] │Always │WDE torque
demands │

│ │ │ │ │ │ │report │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│99..120 │ AYFSSCFV │t:3.4-24 │ - │l3 │Always │FPSS common │

│ │ │ │ │ │ │function variables │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│121..122│ AYSSUSCW │t:3.4-25 │ - │l3 │Always │SSU Status & │

│ │ │ │ │ │ │command info │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│123..127│ AYSSUCSD │t:3.4-37 │ - │l3 │Always │Control star data │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│128..130│ AKLOBTTS │time │ N/A │1mm\[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│131..277│ AKSPARE │N/A │ - │N/A │N/A │value = 0000 │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│278..280│ AKLOBTTS │time │ N/A │1mm\[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│281..284│ AYSSUMON │t:3.4-28 │ - │\[13.3±0.010\]│Always │SSU monitors │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│285..286│ AKSSUROP │flt │ 0.0 │l3 │Always │SSU roll off │

│ │ │ │ │ │ │pointing limit │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│287..290│ AYSLWDA1 │t:3.4-38 │ - │l3 │Always │Slew rate & angle │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│291 │ AKARD │int │ │l3 │Always │Roll attitude data │

│ │ │ │ │ │ │word │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│292..294│ AYSLWDA2 │t:3.4-39 │ - │l3 │Always │Slew Acceleration │

│ │ │ │ │ │ │& delay time │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│295 │AKSSUTSU │int │0 │13 │Always │Trans SSU SEU cnt │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│296..300│ AYFSSRAW │t:3.4-29 │ - │\[5.5±0.010\] │Always │Unprocessed
FPSS │

│ │ │ │ │ │ │data │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│301 │ AYSSUBFN │int │ │\[4±0.010\] │Always │Block seq. no. of │

│ │ │ │ │ │ │SSU buffered data │

│ │ │ │ │ │ │report. │

└────────┴──────────┴─────────┴──────┴────────────┴────────┴───────────────────┘

┌────────┬──────────┬─────────┬──────┬────────────┬────────┬───────────────────┐

│ word │ Mnemonic │Type │ Init │Timing │Validity│Description │

│ │ │ │ value│ │ │ │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│302..401│ AYSSUBFA │ssubf2 │ - │\[4±0.010\] │Always │Buffered SSU data
│

│ │ │ │ │ │ │block │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│402 │ AKSSUSTS │macs │ 0 │13 │Always │Star data status │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│403 │ AKSSUMST │macs │ 0 │13 │Always │SSU mode status │

│ │ │ │ │ │ │word │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│404 │ AKSSUHCS │macs │ 0 │\[13.3±0.010\]│Always │SSU health check │

│ │ │ │ │ │ │status word │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│405 │ AKMODEST │mdst │ n/a │Imm. \[0\] │Always │Mode status word │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│406..408│ AKLOBTTS │time │ N/A │1mm\[0\] │Always │LOBT at packet │

│ │ │ │ │ │ │transmission start │

├────────┼──────────┼─────────┼──────┼────────────┼────────┼───────────────────┤

│409..555│ AKSPARE │N/A │ - │N/A │N/A │value = 0000 │

└────────┴──────────┴─────────┴──────┴────────────┴────────┴───────────────────┘

**3.4.3.7 Notes & Data Types**

> Notes on the Telemetry tables in the previous subsections are given
> below:
>
> n/a Not Applicable (data always written)
>
> Nt1 Initial data = (0, PHR\'address), see §3.9
>
> Nt2 Thruster demand data blocks 1 and 2 are each divided into 4 sub
> blocks which are written at intervals of 0.16 seconds starting 0.16
> seconds after the format pulse. The number of subblocks written to
> telemetry is the minimum number necessary to record all the thruster
> demands issued during the previous telemetry cycle.
>
> Arb. Arbitrary value
>
> \[t\] At the time \"t\" from the last Format Pulse. When \"±n\" is
> given, this is to allow for the potential difference between the
> Format Pulse and the RTCI.
>
> \[end\] At the end of TM generation, i.e. at the next Format Pulse
>
> but before the TM packet is made ready for transmission
>
> Imm. This word is inserted into the TM packet being transmitted as
> well as into the TM packet being generated. It is known as \"immediate
> data\".
>
> 13 Controlled by a Level-3 task. Since these Level-3 tasks are
>
> synchronised to a 10ms clock whilst the Format Pulse is not
> synchronised with this clock, the timing of these TM words/blocks will
> (systematically) drift with respect to the Format Pulse.

Int-1 On occurrence of Interrupt 1

TC recd On complete receipt of a block telecommand

abacu106 On successful receipt & processing of ABACU106 telecommand

s/w error On occurrence of a s/w error defined in Table 3.6-2

> iff Only if the event specified under \'Timing\' has occurred
>
> The data types and Tables referred to in the previous sub-sections of
> section 3.4.3 are defined below.

┌──────┬──────────┬───────┬───────┬────────────┬────────┬─────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼───────┼───────┼────────────┼────────┼─────────────────────┤

│ 14 │ AANINT1 │ int │ 0 │ Int-1 │iff │Number of interrupt 1│

│ │ │ │ │ │ │assertions │

├──────┼──────────┼───────┼───────┼────────────┼────────┼─────────────────────┤

│ 15 │ AAFTREG │ ftreg │ 0 │ 1st. Int-1 │iff │Fault Register on │

│ │ │ │ │ │ │1st interrupt 1 │

│ │ │ │ │ │ │assertion │

├──────┼──────────┼───────┼───────┼────────────┼────────┼─────────────────────┤

│ 16 │ AAFTDT │ dtime │ 0 │ 1st. Int-1 │iff │Datation time for │

│ │ │ │ │ │ │AAFTREG │

└──────┴──────────┴───────┴───────┴────────────┴────────┴─────────────────────┘

[Table 3.4-1: AYFTRPT definition]{.underline}

┌────┬───────────┬────────┬───────┬────────┬────────────┬─────────────────────┐

│word│ Mnemonic │ Type │ Init │ Timing │ Validity │ Description │

│ │ │ │ value │ │ │ │

├────┼───────────┼────────┼───────┼────────┼────────────┼─────────────────────┤

│19 │ AATCEN │ int │ 0 │ \[end\] │ Always │ Number of TC errors │

├────┼───────────┼────────┼───────┼────────┼────────────┼─────────────────────┤

│20 │ AATCEDT │ dtime │ 0 │ \[end\] │ Always │ Datation time of 1st│

│ │ │ │ │ │ │ TC fail │

└────┴───────────┴────────┴───────┴────────┴────────────┴─────────────────────┘

[Table 3.4-2: AYTCERRS definition]{.underline}

[Table 3.4-3: (Deleted)]{.underline}

┌──────┬────────────┬───────┬───────┬───────────┬────────┬─────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │Validity│ Description │

│ │ │ │ value │ │ │ │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 23 │ AKMDRG01 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 1 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 24 │ AKMDRG02 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 2 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 25 │ AKMDRG03 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 3 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 26 │ AKMDRG04 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 4 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 27 │ AKMDRG05 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 5 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 28 │ AKMDRG06 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 6 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 29 │ AKMDRG07 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 7 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 30 │ AKMDRG08 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 8 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 31 │ AKMDRG09 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 9 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 32 │ AKMDRG10 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 10 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 33 │ AKMDRG11 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 11 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 34 │ AKMDRG12 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 12 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 35 │ AKMDRG13 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 13 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 36 │ AKMDRG14 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 14 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 37 │ AKMDRG15 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 15 │

├──────┼────────────┼───────┼───────┼───────────┼────────┼─────────────────────┤

│ 38 │ AKMDRG16 │ word │ 0 │ \[1±0.010\] │Always │ Memory dump word 16 │

└──────┴────────────┴───────┴───────┴───────────┴────────┴─────────────────────┘

[Table 3.4-4: AYMDRG Definition]{.underline}

┌──────┬───────────┬────────┬─────┬─────────┬────────┬─────────────────────────┐

│word │ Mnemonic │ Type │Init │Timing 1 │Validity│Description │

│ │ │ │value│ │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│40 │ AAERR1CD │ ecode │0 │1st s/w │iff │Error report #1 code │

│ │ │ │ │error │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│41 │ AAERR1DT │ dtime │0 │1st s/w │iff │Error report #1 datation │

│ │ │ │ │error │ │time │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│42 │ AAERR2CD │ ecode │0 │2nd s/w │iff │Error report #2 code │

│ │ │ │ │error │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│43 │ AAERR2DT │ dtime │0 │2nd s/w │iff │Error report #2 datation │

│ │ │ │ │error │ │time │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│44 │ AAERR3CD │ ecode │0 │3rd s/w │iff │Error report #3 code │

│ │ │ │ │error │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│45 │ AAERR3DT │ dtime │0 │3rd s/w │iff │Error report #3 datation │

│ │ │ │ │error │ │time │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│46 │ AAERR4CD │ ecode │0 │4th s/w │iff │Error report #4 code │

│ │ │ │ │error │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│47 │ AAERR4DT │ dtime │0 │4th s/w │iff │Error report #4 datation │

│ │ │ │ │error │ │time │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│48 │ AAERR5CD │ ecode │0 │5th s/w │iff │Error report #5 code │

│ │ │ │ │error │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│49 │ AAERR5DT │ dtime │0 │5th s/w │iff │Error report #5 datation │

│ │ │ │ │error │ │time │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│50 │ AAERR6CD │ ecode │0 │6th s/w │iff │Error report #6 code │

│ │ │ │ │error │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│51 │ AAERR6DT │ dtime │0 │6th s/w │iff │Error report #6 datation │

│ │ │ │ │error │ │time │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│52 │ AAERR7CD │ ecode │0 │7th s/w │iff │Error report #7 code │

│ │ │ │ │error │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│53 │ AAERR7DT │ dtime │0 │7th s/w │iff │Error report #7 datation │

│ │ │ │ │error │ │time │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│54 │ AAERR8CD │ ecode │0 │8th s/w │iff │Error report #8 code │

│ │ │ │ │error │ │ │

├──────┼───────────┼────────┼─────┼─────────┼────────┼─────────────────────────┤

│55 │ AAERR8DT │ dtime │0 │8th s/w │iff │Error report #8 datation │

│ │ │ │ │error │ │time │

└──────┴───────────┴────────┴─────┴─────────┴────────┴─────────────────────────┘

[Table 3.4-5: AYERRRPT definition]{.underline}

1\. Note that in the above table, \"1st\", \"2nd\" etc denotes position
in the table, not necessarily in chronological order. The error report
buffer is a circular buffer and if more than 8 errors are reported
during acquisition of the TM buffered data, only the 8 most recent are
retained, earlier reports being overwritten. The datation times of the
error reports can be used to determine the sequence in which they
occurred.

┌──────┬───────────┬───────┬────────┬─────────┬──────────┬─────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │ Validity │Description │

│ │ │ │ value │ │ │ │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 56 │ AKTCHD15 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 57 │ AKTCHD14 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 58 │ AKTCHD13 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 59 │ AKTCHD12 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 60 │ AKTCHD11 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 61 │ AKTCHD10 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 62 │ AKTCHD09 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 63 │ AKTCHD08 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 64 │ AKTCHD07 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 65 │ AKTCHD06 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 66 │ AKTCHD05 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 67 │ AKTCHD04 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 68 │ AKTCHD03 │ tchd │ 0 │ \[end\] │ Always │Successful TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 69 │ AKTCHD02 │ tchd │ 0 │ \[end\] │ Always │Next last successful │

│ │ │ │ │ │ │TC header │

├──────┼───────────┼───────┼────────┼─────────┼──────────┼─────────────────────┤

│ 70 │ AKTCHD01 │ tchd │ 0 │ \[end\] │ Always │Last successful TC │

│ │ │ │ │ │ │header │

└──────┴───────────┴───────┴────────┴─────────┴──────────┴─────────────────────┘

[Table 3.4-6: AYTCEXEH definition]{.underline}

┌──────┬──────────┬────────┬───────┬────────┬───────────┬──────────────────────┐

│word │ Mnemonic │ Type │ Init │ Timing │ Validity │ Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│71 │ AATCERRA │ tcerr │ 0 │ \[end\] │ Always │ Unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│72 │ AATCERR9 │ tcerr │ 0 │ \[end\] │ Always │ Unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│73 │ AATCERR8 │ tcerr │ 0 │ \[end\] │ Always │ Unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│74 │ AATCERR7 │ tcerr │ 0 │ \[end\] │ Always │ Unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│75 │ AATCERR6 │ tcerr │ 0 │ \[end\] │ Always │ Unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│76 │ AATCERR5 │ tcerr │ 0 │ \[end\] │ Always │ Unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│77 │ AATCERR4 │ tcerr │ 0 │ \[end\] │ Always │ Unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│78 │ AATCERR3 │ tcerr │ 0 │ \[end\] │ Always │ Unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│79 │ AATCERR2 │ tcerr │ 0 │ \[end\] │ Always │ Next last │

│ │ │ │ │ │ │ unsuccessful TC │

│ │ │ │ │ │ │ error report │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│80 │ AATCERR1 │ tcerr │ 0 │ \[end\] │ Always │ Last unsuccessful TC│

│ │ │ │ │ │ │ error report │

└──────┴──────────┴────────┴───────┴────────┴───────────┴──────────────────────┘

[Table 3.4-7: AYTCERRH definition]{.underline}

┌──────┬──────────┬────────┬───────┬────────┬───────────┬──────────────────────┐

│word │ Mnemonic │ Type │ Init │ Timing │ Validity │ Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│81 │ AAMPARN │ int │ 0 │ Int-1 │ iff │Number of memory │

│ │ │ │ │ │ │parity errors │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│82 │ AAMPARDT │ dtime │ 0 │ Int-1 │ iff │Datation time of 1st │

│ │ │ │ │ │ │memory parity │

│ │ │ │ │ │ │error │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│83 │ AAWDOGN │ int │ 0 │ Int-1 │ iff │Number of watchdog │

│ │ │ │ │ │ │timeout errors │

├──────┼──────────┼────────┼───────┼────────┼───────────┼──────────────────────┤

│84 │ AAWDOGDT │ dtime │ 0 │ Int-1 │ iff │Datation time of 1st │

│ │ │ │ │ │ │watchdog timeout error│

└──────┴──────────┴────────┴───────┴────────┴───────────┴──────────────────────┘

[Table 3.4-8: AYFTERR definition]{.underline}

┌──────┬──────────┬───────┬───────┬─────────┬────────┬─────────────────────────┐

│ word │ Mnemonic │ Type │ Init │Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼───────┼───────┼─────────┼────────┼─────────────────────────┤

│ 85 │ AAMERRN │ int │ 0 │ \[end\] │Always │Number of MACS errors │

├──────┼──────────┼───────┼───────┼─────────┼────────┼─────────────────────────┤

│ 86 │ AAMERRDT │ dtime │ 0 │ \[end\] │Always │Datation time of 1st │

│ │ │ │ │ │ │MACS error │

└──────┴──────────┴───────┴───────┴─────────┴────────┴─────────────────────────┘

[Table 3.4-9: AYMACERR definition]{.underline}

┌──────┬──────────┬───────┬───────┬─────────┬────────┬─────────────────────────┐

│ word │ Mnemonic │ Type │ Init │Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼───────┼───────┼─────────┼────────┼─────────────────────────┤

│ 89 │ AKIRUST │ macs │ 0 │\[2±0.010\]│Always │IRU status word │

├──────┼──────────┼───────┼───────┼─────────┼────────┼─────────────────────────┤

│ 90 │ AKIRURA │ macs │ 0 │\[2±0.010\]│Always │IRU roll angle increment
│

│ │ │ │ │ │ │word │

└──────┴──────────┴───────┴───────┴─────────┴────────┴─────────────────────────┘

[Table 3.4-10: AYIRUDA definition]{.underline}

  ------ ---------- ------ ------- -------- ------------ --------------- -------------
  Word   Mnemonic   Type   Init    Timing   Validity\*   Description     Scaling
                           value                                         

  91     AKWDFSP1   int    0       13       SBM, RMW,    Filtered wheel  LSB = 0.122
                                            CRP & NM     speed (wheel 1) rev/min

  92     AKWDFSP2   int    0       13       SBM, RMW,    Filtered wheel  LSB = 0.122
                                            CRP & NM     speed (wheel 2) rev/min

  93     AKWDFSP3   int    0       13       SBM, RMW,    Filtered wheel  LSB = 0.122
                                            CRP & NM     speed (wheel 3) rev/min

  94     AKWDFSP4   int    0       13       SBM, RMW,    Filtered wheel  LSB = 0.122
                                            CRP & NM     speed (wheel 4) rev/min

  95     AKCRSMES   int    0       13       CRP          CRS raw         LSB =
                                                         measured angle  5.493164e-3
                                                                         degrees

  96     AKCRSREF   int    0       13       CRP          CRS current     LSB =
                                                         reference angle 5.493164e-3
                                                                         degrees

  97     AKCRSCMP   int    0       13       CRP          CRS drift       LSB =
                                                         compensation    2.750197e-3
                                                         angle           degrees

  98, 99 AKCRSDRD   flt    0.0     13       RMW, CRP &   Computed CRS    n/a
                                            NM           drift delta     

  100    AKCRSDRT   word   0       13       RMW, CRP &   Time of last    LSB = 2048
                                            NM           CRS drift       seconds
                                                         estimate        
  ------ ---------- ------ ------- -------- ------------ --------------- -------------

\* In this table the 'Validity' column shows the modes in which the
telemetered parameter is updated. In all cases, the parameter value in
other modes is either the last value computed before exiting a mode in
which the parameter is updated or the initial value. Note that the
parameters are reported in the telemetry packet in all valid modes
except IAM (ie, SBM, RMW, CRP and NM).

[Table 3.4-11: AYCRSDA definition]{.underline}

┌────────┬────────┬──────┬───────┬────────────┬────────┬───────────────────────┐

│ word │Mnemonic│ Type │ Init │Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├────────┼────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 101 │AKSAS1A │ macs │ 0 │\[2.5±0.010\] │Always │Unprocessed SAS 1a
data│

├────────┼────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 102 │AKSAS1B │ macs │ 0 │\[4.5±0.010\] │Always │Unprocessed SAS 1ß
data│

├────────┼────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 103 │AKSAS2A │ macs │ 0 │\[6.5±0.010\] │Always │Unprocessed SAS 2a
data│

├────────┼────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 104 │AKSAS2B │ macs │ 0 │\[8.5±0.010\] │Always │Unprocessed SAS 2ß
data│

├────────┼────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 105 │AKSAS3A │ macs │ 0 │\[10.5±0.010\]│Always │Unprocessed SAS 3a
data│

├────────┼────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 106 │AKSAS3B │ macs │ 0 │\[12.5±0.010\]│Always │Unprocessed SAS 3ß
data│

└────────┴────────┴──────┴───────┴────────────┴────────┴───────────────────────┘

[Table 3.4-12: AYSASDA definition]{.underline}

┌────────┬────────┬──────┬───────┬────────────┬────────┬───────────────────────┐

│ word │Mnemonic│ Type │ Init │ Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├────────┼────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│107..108│AKSASBA │ flt │ 0.0 │ l3 │Always │SAS 1a bias correction │

│ │ │ │ │ │ │term │

├────────┼────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│109..110│AKSASBB │ flt │ 0.0 │ l3 │Always │SAS 1ß bias correction │

│ │ │ │ │ │ │term │

└────────┴────────┴──────┴───────┴────────────┴────────┴───────────────────────┘

[Table 3.4-13: AYSASCFV definition]{.underline}

┌──────┬──────────┬──────┬───────┬─────────┬────────┬──────────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼──────┼───────┼─────────┼────────┼──────────────────────────┤

│ 111 │ AKWDESP1 │ macs │ 0 │\[3±0.010\]│Always │Unprocessed wheel 1
speed │

│ │ │ │ │ │ │& direction │

├──────┼──────────┼──────┼───────┼─────────┼────────┼──────────────────────────┤

│ 112 │ AKWDESP2 │ macs │ 0 │\[3±0.010\]│Always │Unprocessed wheel 2
speed │

│ │ │ │ │ │ │& direction │

├──────┼──────────┼──────┼───────┼─────────┼────────┼──────────────────────────┤

│ 113 │ AKWDESP3 │ macs │ 0 │\[3±0.010\]│Always │Unprocessed wheel 3
speed │

│ │ │ │ │ │ │& direction │

├──────┼──────────┼──────┼───────┼─────────┼────────┼──────────────────────────┤

│ 114 │ AKWDESP4 │ macs │ 0 │\[3±0.010\]│Always │Unprocessed wheel 4
speed │

│ │ │ │ │ │ │& direction │

└──────┴──────────┴──────┴───────┴─────────┴────────┴──────────────────────────┘

[Table 3.4-14: AYWDEDA definition]{.underline}

┌────────┬────────┬──────┬───────┬────────┬────────┬──────────────────────────┐

│ word │Mnemonic│ Type │ Init │ Timing │Validity│ Description │

│ │ │ │ value │ │ │ │

├────────┼────────┼──────┼───────┼────────┼────────┼──────────────────────────┤

│115..116│AKWDERF1│ flt │ 0.0 │ 13 │ Always │ Wheel 1 speed reference │

├────────┼────────┼──────┼───────┼────────┼────────┼──────────────────────────┤

│117..118│AKWDERF2│ flt │ 0.0 │ 13 │ Always │ Wheel 2 speed reference │

├────────┼────────┼──────┼───────┼────────┼────────┼──────────────────────────┤

│119..120│AKWDERF3│ flt │ 0.0 │ 13 │ Always │ Wheel 3 speed reference │

├────────┼────────┼──────┼───────┼────────┼────────┼──────────────────────────┤

│121..122│AKWDERF4│ flt │ 0.0 │ 13 │ Always │ Wheel 4 speed reference │

└────────┴────────┴──────┴───────┴────────┴────────┴──────────────────────────┘

[Table 3.4-15: AYWDECFV definition]{.underline}

┌──────┬──────────┬──────┬───────┬────────────┬────────┬───────────────────────┐

│ word │ Mnemonic │ Type │ Init │Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 123 │ AKWDETQ1 │ macs │ 0 │\[3.5.±0.010\]│Always │Wheel 1 torque
demand │

│ │ │ │ │ │ │as issued to WDE │

├──────┼──────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 124 │ AKWDETQ2 │ macs │ 0 │\[3.5.±0.010\]│Always │Wheel 2 torque
demand │

│ │ │ │ │ │ │as issued to WDE │

├──────┼──────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 125 │ AKWDETQ3 │ macs │ 0 │\[3.5.±0.010\]│Always │Wheel 3 torque
demand │

│ │ │ │ │ │ │as issued to WDE │

├──────┼──────────┼──────┼───────┼────────────┼────────┼───────────────────────┤

│ 126 │ AKWDETQ4 │ macs │ 0 │\[3.5.±0.010\]│Always │Wheel 4 torque
demand │

│ │ │ │ │ │ │as issued to WDE │

└──────┴──────────┴──────┴───────┴────────────┴────────┴───────────────────────┘

[Table 3.4-16: AYWDETRQ definition]{.underline}

┌─────────┬────────┬────────┬──────┬─────────────┬────────┬────────────────────┐

│word │Mnemonic│Type │ Init │Timing │Validity│Description │

│ │ │ │ value│ │ │ │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│131..138 │AYFSSB00│t:3.4-18│ - │\[0.05±0.010\] │Always │FPSS data block
0 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│139..146 │AYFSSB01│t:3.4-18│ - │\[0.55±0.010\] │Always │FPSS data block
1 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│147..154 │AYFSSB02│t:3.4-18│ - │\[1.05±0.010\] │Always │FPSS data block
2 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│155..162 │AYFSSB03│t:3.4-18│ - │\[1.55±0.010\] │Always │FPSS data block
3 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│163..170 │AYFSSB04│t:3.4-18│ - │\[2.05±0.010\] │Always │FPSS data block
4 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│171..178 │AYFSSB05│t:3.4-18│ - │\[2.55±0.010\] │Always │FPSS data block
5 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│179..186 │AYFSSB06│t:3.4-18│ - │\[3.05±0.010\] │Always │FPSS data block
6 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│187..194 │AYFSSB07│t:3.4-18│- │\[3.55±0.010\] │Always │FPSS data block
7 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│195..202 │AYFSSB08│t:3.4-18│- │\[4.05±0.010\] │Always │FPSS data block
8 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│203..210 │AYFSSB09│t:3.4-18│- │\[4.55±0.010\] │Always │FPSS data block
9 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│211..218 │AYFSSB10│t:3.4-18│- │\[5.05±0.010\] │Always │FPSS data block
10 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│219..226 │AYFSSB11│t:3.4-18│- │\[5.55±0.010\] │Always │FPSS data block
11 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│227..234 │AYFSSB12│t:3.4-18│- │\[6.05±0.010\] │Always │FPSS data block
12 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│235..242 │AYFSSB13│t:3.4-18│- │\[6.55±0.010\] │Always │FPSS data block
13 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│243..250 │AYFSSB14│t:3.4-18│- │\[7.05±0.010\] │Always │FPSS data block
14 │

├─────────┼────────┼────────┼──────┼─────────────┼────────┼────────────────────┤

│251 │AKFSSVL1│fssv1 │N/A │(parallel) │Always │FPSS data blocks │

│ │ │ │ │ │ │0-14 validity word │

└─────────┴────────┴────────┴──────┴─────────────┴────────┴────────────────────┘

[Table 3.4-17: AYFSSDA1 definition]{.underline}

┌────────┬─────────┬────────┬───────┬────────────┬────────┬────────────────────┐

│word │Mnemonic │Type │ Init │Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│+0 │AKFSSbbA │word │ und │+0.000 │- │Pitch attitude │

│ │ │ │ │ │ │derived from FPSS │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│+1 │AKFSSbbB │word │ und │+0.000 │- │Yaw attitude derived│

│ │ │ │ │ │ │from FPSS │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│+2 │AKFSSbbC │macs │ und │+0.000 │- │FPSS status word (as│

│ │ │ │ │ │ │read from the FPSS) │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│+3 │AKFSSbbD │dtime │ und │+0.000 │- │Datation time of │

│ │ │ │ │ │ │FPSS data │

│ │ │ │ │ │ │aquisition │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│+4 │AKFSSbbE │fincr │ und │+0.100 │- │Increment of pitch &│

│ │ │ │ │ │ │yaw since A, B │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│+5 │AKFSSbbF │fincr │ und │+0.200 │- │Increment of pitch &│

│ │ │ │ │ │ │yaw since E │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│+6 │AKFSSbbG │fincr │ und │+0.300 │- │Increment of pitch &│

│ │ │ │ │ │ │yaw since F │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│+7 │AKFSSbbH │fincr │ und │+0.400 │- │Increment of pitch &│

│ │ │ │ │ │ │yaw since G │

└────────┴─────────┴────────┴───────┴────────────┴────────┴────────────────────┘

bb refers to the FPSS data block number in Tables 3.4-17 and 3.4-30

und Undefined

+t Time to be added to Time of FPSS Data Block bb

[Table 3.4-18: AYFSSBbb definition]{.underline}

┌────────┬─────────┬────────┬───────┬────────────┬────────┬────────────────────┐

│word │ Mnemonic│Type │ Init │Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│252..253│ AKROL00 │lint │ - │\[0.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 0 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│254..255│ AKROL01 │lint │ - │\[1.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 1 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│256..257│ AKROL02 │lint │ - │\[2.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 2 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│258..259│ AKROL03 │lint │ - │\[3.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 3 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│260..261│ AKROL04 │lint │ - │\[4.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 4 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│262..263│ AKROL05 │lint │ - │\[5.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 5 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│264..265│ AKROL06 │lint │ - │\[6.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 6 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│266..267│ AKROL07 │lint │ - │\[7.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 7 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│268..269│ AKROL08 │lint │ - │\[8.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 8 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│270..271│ AKROL09 │lint │ - │\[9.7±0.010\] │Always │Roll attitude │

│ │ │ │ │ │ │data 9 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│272..273│ AKROL10 │lint │ - │\[10.7±0.01\] │Always │Roll attitude │

│ │ │ │ │ │ │data 10 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│274..275│ AKROL11 │lint │ - │\[11.7±0.01\] │Always │Roll attitude │

│ │ │ │ │ │ │data 11 │

├────────┼─────────┼────────┼───────┼────────────┼────────┼────────────────────┤

│276..277│ AKROL12 │lint │ - │\[12.7±0.01\] │Always │Roll attitude │

│ │ │ │ │ │ │data 12 │

└────────┴─────────┴────────┴───────┴────────────┴────────┴────────────────────┘

[Table 3.4-19: AYIRU1 definition]{.underline}

┌────┬────────┬────┬───────┬────────────┬────────┬───────────────────────────┐

│word│Mnemonic│Type│ Init │Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│281 │AKPRSBPR│macs│ 0 │\[12.0±0.010\]│Always │PROS branch pressure │

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│282 │AKPRSCBH│macs│ 0 │\[1.2±0.010\] │Always │CBH status │

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│283 │AKTH1CBT│macs│ 0 │\[2.4±0.010\] │Always │Thruster 1 CBH
thermocouple│

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│284 │AKTH2CBT│macs│ 0 │\[3.6±0.010\] │Always │Thruster 2 CBH
thermocouple│

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│285 │AKTH3CBT│macs│ 0 │\[4.8±0.010\] │Always │Thruster 3 CBH
thermocouple│

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│286 │AKTH4CBT│macs│ 0 │\[6.0±0.010\] │Always │Thruster 4 CBH
thermocouple│

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│287 │AKTH5CBT│macs│ 0 │\[7.2±0.010\] │Always │Thruster 5 CBH
thermocouple│

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│288 │AKTH6CBT│macs│ 0 │\[8.4±0.010\] │Always │Thruster 6 CBH
thermocouple│

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│289 │AKTH7CBT│macs│ 0 │\[9.6±0.010\] │Always │Thruster 7 CBH
thermocouple│

├────┼────────┼────┼───────┼────────────┼────────┼───────────────────────────┤

│290 │AKTH8CBT│macs│ 0 │\[10.8±0.010\]│Always │Thruster 8 CBH
thermocouple│

└────┴────────┴────┴───────┴────────────┴────────┴───────────────────────────┘

[Table 3.4-21: AYPRSMN definition]{.underline}

  ---------- ---------- ------ ------- -------- ---------- --------------- -------------
  Word       Mnemonic   Type   Init    Timing   Validity   Description     Scaling
                               value                                       

  292..293   AKRSLVAL   flt    0.0     13       RMW & NM   Current line    n/a
                                                           value of RSL    

  294..295   AKRSLOF1   flt    0.0     13       RMW & NM   RSL offset for  n/a
                                                           star 1          

  296..297   AKRSLOF2   flt    0.0     13       RMW & NM   RSL offset for  n/a
                                                           star 2          

  298..299   AKRSLOF3   flt    0.0     13       RMW & NM   RSL offset for  n/a
                                                           star 3          

  300..301   AKRSLOF4   flt    0.0     13       RMW & NM   RSL offset for  n/a
                                                           star 4          

  302..303   AKRSLOF5   flt    0.0     13       RMW & NM   RSL offset for  n/a
                                                           star 5          

  304        AKGLWORD   glst   n/a     13       SBM, RMW,  CRS/CRP and     n/a
                                                CRP & NM   manoeuvre       
                                                           general status  

  305        AKRSLEW    int    0       13       In CRP     Current roll    LSB =
                                                during a   slew angle in   5.493164e-3
                                                roll man   CRP             degrees
                                                -oeuvre                    

  306        AKRAO      int    0       13       In RMW &   Current roll    LSB =
                                                NM during  attitude offset 5.493164e-3
                                                a roll man in RMW or NM    degrees
                                                -oeuvre                    

  307        AKSEUMAX   word   0       13       RMW & NM   SEU staircase   n/a
                                                           filter counter  
                                                           maximum value   

  308        AKSEUTH    word   5       13       Updated by SEU staircase   n/a
                                                ABAC213    filter          
                                                           threshold       

  309        AKSEUCNT   word   0       13       RMW & NM   SEU staircase   n/a
                                                           filter counter  
                                                           value           

  310        AKNSWAPS   word   0       13       RMW & NM   Number of star  n/a
                                                           swaps since     
                                                           last reset of   
                                                           value           

  311        AKZFILTH   word   125     13       Fixed      SSU Z-coord     LSB = 1/7um
                                                           spike filter    
                                                           threshold       

  312        AKZSPIKE   word   0       13       RMW & NM   Number of times n/a
                                                           SSU Z-coord     
                                                           spike filter    
                                                           threshold       
                                                           exceeded since  
                                                           last ACU        
                                                           init'n, mode    
                                                           change or star  
                                                           swap            
  ---------- ---------- ------ ------- -------- ---------- --------------- -------------

continued\...

[Table 3.4-22: AYGLSTM definition]{.underline}

  ------ ---------- ------ ------------ -------- ---------- ------------- ----------
  Word   Mnemonic   Type   Init value   Timing   Validity   Description   Scaling

  313    AKHXTH     int    700 (7.0Nms) 13       Fixed      Hx threshold  LSB =
                                                                          0.01Nms

  314    AKHXLOW    int    -1000        13       Fixed      Hx lowest     LSB =
                           (-10.0NMs)                       edge          0.01Nms

  315    AKHXMAX    int    0            13       Computed   Hx max bound  LSB =
                                                 when HX                  0.01Nms
                                                 mon                      
                                                 enabled                  

  316    AKHXMIN    int    0            13       Computed   Hx min bound  LSB =
                                                 when HX                  0.01Nms
                                                 mon                      
                                                 enabled                  

  317    AKHXVAL    int    0            13       RMW, CRP & Current Hx    LSB =
                                                 NM         value         0.01Nms
  ------ ---------- ------ ------------ -------- ---------- ------------- ----------

\* In this table the 'Validity' column shows the modes in which the
telemetered parameter is updated. In all cases, the parameter value in
other modes is either the last value computed before exiting a mode in
which the parameter is updated or the initial value. Note that the
parameters are reported in the telemetry packet in all valid modes
except IAM (ie, SBM, RMW, CRP and NM).

[Table 3.4-22: AYGLSTM definition (continued)]{.underline}

┌────────┬────────┬────┬─────┬───────────┬────────┬────────────────────────────┐

│word │Mnemonic│Type│Init │Timing │Validity│ Description │

│ │ │ │value│ │ │ │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│318 │AKTH1OTI│nat │ 0 │\[end\] │Always │ Thruster 1 total on-time │

│ │ │ │ │ │ │ increment │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│319 │AKTH2OTI│nat │ 0 │\[end\] │Always │ Thruster 2 total on-time │

│ │ │ │ │ │ │ increment │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│320 │AKTH3OTI│nat │ 0 │\[end\] │Always │ Thruster 3 total on-time │

│ │ │ │ │ │ │ increment │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│321 │AKTH4OTI│nat │ 0 │\[end\] │Always │ Thruster 4 total on-time │

│ │ │ │ │ │ │ increment │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│322 │AKTH5OTI│nat │ 0 │\[end\] │Always │ Thruster 5 total on-time │

│ │ │ │ │ │ │ increment │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│323 │AKTH6OTI│nat │ 0 │\[end\] │Always │ Thruster 6 total on-time │

│ │ │ │ │ │ │ increment │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│324 │AKTH7OTI│nat │ 0 │\[end\] │Always │ Thruster 7 total on-time │

│ │ │ │ │ │ │ increment │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│325 │AKTH8OTI│nat │ 0 │\[end\] │Always │ Thruster 8 total on-time │

│ │ │ │ │ │ │ increment │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│326..327│AKTH1COT│lint│ 0 │\[4.5±0.010\]│Always │ Accumulated thruster
1 │

│ │ │ │ │ │ │ on-time │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│328..329│AKTH2COT│lint│ 0 │\[4.5±0.010\]│Always │ Accumulated thruster
2 │

│ │ │ │ │ │ │ on-time │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│330..331│AKTH3COT│lint│ 0 │\[4.5±0.010\]│Always │ Accumulated thruster
3 │

│ │ │ │ │ │ │ on-time │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│332..333│AKTH4COT│lint│ 0 │\[4.5±0.010\]│Always │ Accumulated thruster
4 │

│ │ │ │ │ │ │ on-time │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│334..335│AKTH5COT│lint│ 0 │\[4.5±0.010\]│Always │ Accumulated thruster
5 │

│ │ │ │ │ │ │ on-time │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│336..337│AKTH6COT│lint│ 0 │\[4.5±0.010\]│Always │ Accumulated thruster
6 │

│ │ │ │ │ │ │ on-time │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│338..339│AKTH7COT│lint│ 0 │\[4.5±0.010\]│Always │ Accumulated thruster
7 │

│ │ │ │ │ │ │ on-time │

├────────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────┤

│340..341│AKTH8COT│lint│ 0 │\[4.5±0.010\]│Always │ Accumulated thruster
8 │

│ │ │ │ │ │ │ on-time │

└────────┴────────┴────┴─────┴───────────┴────────┴────────────────────────────┘

[Table 3.4-23: AYPRSUSE definition]{.underline}

┌────────┬────────┬────┬─────┬────────┬────────┬──────────────────────────────┐

│word │Mnemonic│Type│Init │ Timing │Validity│Description │

│ │ │ │value│ │ │ │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│342..343│AKFSSPSR│flt │0.0 │ l3 │Always │FPSS Pitch angle reference │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│344..345│AKFSSUP │flt │n1 │ l3 │Always │Pitch upper limit │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│346..347│AKFSSLP │flt │n2 │ l3 │Always │Pitch lower limit │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│348..349│AKFSSAP │flt │0.0 │ l3 │Always │Sum of squares of pitch
values│

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│350..351│AKFSSPSF│flt │pi/2 │ l3 │Always │Pitch output scaling factor │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│352..353│AKFSSYAR│flt │0.0 │ l3 │Always │FPSS Yaw angle reference │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│354..355│AKFSSUY │flt │n1 │ l3 │Always │Yaw upper limit │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│356..357│AKFSSLY │flt │n2 │ l3 │Always │Yaw lower limit │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│358..359│AKFSSAY │flt │0.0 │ l3 │Always │Sum of squares of yaw values │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│360..361│AKFSSYSF│flt │pi/2 │ l3 │Always │Yaw output scaling factor │

├────────┼────────┼────┼─────┼────────┼────────┼──────────────────────────────┤

│362..363│AKFSSXAL│flt │0.0 │ l3 │Always │X-axis attitude limit squared
│

└────────┴────────┴────┴─────┴────────┴────────┴──────────────────────────────┘

n1 = 5.9996E+08

n2 = 3.2777E+08

[Table 3.4-24: AYFSSCFV definition]{.underline}

┌──────┬──────────┬──────┬────────┬────────┬────────┬──────────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼──────┼────────┼────────┼────────┼──────────────────────────┤

│ 364 │ AKSSUPST │ ssus │ │l3 │Always │SSU processing status word│

├──────┼──────────┼──────┼────────┼────────┼────────┼──────────────────────────┤

│ 365 │ AKSSUMRT │ word │ 180016 │l3 │Always │SSU Mag & Rel/Trk from │

│ │ │ │ │ │ │telecommand │

└──────┴──────────┴──────┴────────┴────────┴────────┴──────────────────────────┘

[Table 3.4-25: AYSSUSCW definition]{.underline}

┌────────┬────────┬─────────┬──────┬──────┬────────┬──────────────────────────┐

│word │Mnemonic│Type │Init │Timing│Validity│ Description │

│ │ │ │value │ │ │ │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│366..367│AKSSURA1│flt │0.0 │l3 │Always │ Roll angle reference for │

│ │ │ │ │ │ │ Star 1 │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│368..369│AKSSURA2│flt │0.0 │l3 │Always │ Roll angle reference for │

│ │ │ │ │ │ │ Star 2 │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│370..371│AKSSURA3│flt │0.0 │l3 │Always │ Roll angle reference for │

│ │ │ │ │ │ │ Star 3 │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│372..373│AKSSURA4│flt │0.0 │l3 │Always │ Roll angle reference for │

│ │ │ │ │ │ │ Star 4 │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│374..375│AKSSURA5│flt │0.0 │l3 │Always │ Roll angle reference for │

│ │ │ │ │ │ │ Star 5 │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│376..378│AYSSUD1 │t:3.4-27 │- │l3 │Always │ Star 1 data │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│379..381│AYSSUD2 │t:3.4-27 │- │l3 │Always │ Star 2 data │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│382..384│AYSSUD3 │t:3.4-27 │- │l3 │Always │ Star 3 data │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│385..387│AYSSUD4 │t:3.4-27 │- │l3 │Always │ Star 4 data │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│388..390│AYSSUD5 │t:3.4-27 │- │l3 │Always │ Star 5 data │

├────────┼────────┼─────────┼──────┼──────┼────────┼──────────────────────────┤

│391 │AKSSUUST│macs │0 │l3 │Always │ SSU Status word (from │

│ │ │ │ │ │ │ SSU) │

└────────┴────────┴─────────┴──────┴──────┴────────┴──────────────────────────┘

[Table 3.4-26: AYSSUCFV definition]{.underline}

┌──────┬──────────┬──────┬───────┬────────┬──────────┬────────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │ Validity │ Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼──────┼───────┼────────┼──────────┼────────────────────────┤

│+0 │ AKSSUMc │ macs │ 0 │ - │ - │ Magnitude for Star c │

├──────┼──────────┼──────┼───────┼────────┼──────────┼────────────────────────┤

│+1 │ AKSSUYc │ macs │ 0 │ - │ - │ Y-coordinate for Star c│

├──────┼──────────┼──────┼───────┼────────┼──────────┼────────────────────────┤

│+2 │ AKSSUZc │ macs │ 0 │ - │ - │ Z-coordinate for Star c│

└──────┴──────────┴──────┴───────┴────────┴──────────┴────────────────────────┘

c refers to the Star number in Table 3.4-26

[Table 3.4-27: AYSSUDc definition]{.underline}

┌────┬────────┬────┬─────┬─────────┬────────┬─────────────────────────────────┐

│word│Mnemonic│Type│Init │Timing │Validity│Description │

│ │ │ │value│ │ │ │

├────┼────────┼────┼─────┼─────────┼────────┼─────────────────────────────────┤

│+0 │AKSSUCCD│macs│ 0 │\[5±0.010\]│Always │SSU CCD Temperatures │

├────┼────────┼────┼─────┼─────────┼────────┼─────────────────────────────────┤

│+1 │AKSSUBKL│macs│ 0 │\[5±0.010\]│Always │SSU Background level │

├────┼────────┼────┼─────┼─────────┼────────┼─────────────────────────────────┤

│+2 │AKSSUFL │macs│ 0 │\[5±0.010\]│Always │SSU Focal length of optics │

├────┼────────┼────┼─────┼─────────┼────────┼─────────────────────────────────┤

│+3 │AKSSUERR│macs│ 0 │\[5±0.010\]│Always │SSU error status of input
data │

└────┴────────┴────┴─────┴─────────┴────────┴─────────────────────────────────┘

[Table 3.4-28: AYSSUMON definition]{.underline}

┌────┬────────┬────┬─────┬───────────┬────────┬────────────────────────────────┐

│word│Mnemonic│Type│Init │Timing │Validity│Description │

│ │ │ │value│ │ │ │

├────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────────┤

│398 │AKFSSSY │macs│0 │\[5.5±0.010\]│Always │Unprocessed FPSS sine Y
data │

├────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────────┤

│399 │AKFSSCY │macs│0 │\[5.5±0.010\]│Always │Unprocessed FPSS cosine Y
data │

├────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────────┤

│400 │AKFSSSZ │macs│0 │\[5.5±0.010\]│Always │Unprocessed FPSS sine Z
data │

├────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────────┤

│401 │AKFSSCZ │macs│0 │\[5.5±0.010\]│Always │Unprocessed FPSS cosine Z
data │

├────┼────────┼────┼─────┼───────────┼────────┼────────────────────────────────┤

│402 │AKFSSYZ │macs│0 │\[5.5±0.010\]│Always │Unprocessed FPSS coarse Y &
Z │

│ │ │ │ │ │ │angle │

└────┴────────┴────┴─────┴───────────┴────────┴────────────────────────────────┘

[Table 3.4-29: AYFSSRAW definition]{.underline}

┌────────┬────────┬────────┬──────┬─────────────┬────────┬─────────────────────┐

│word │Mnemonic│ Type │ Init │Timing │Validity│Description │

│ │ │ │ value│ │ │ │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│409..416│AYFSSB15│t:3.4-18│ - │\[7.55±0.010\] │Always │FPSS data block
15 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│417..424│AYFSSB16│t:3.4-18│ - │\[8.05±0.010\] │Always │FPSS data block
16 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│425..432│AYFSSB17│t:3.4-18│ - │\[8.55±0.010\] │Always │FPSS data block
17 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│433..440│AYFSSB18│t:3.4-18│ - │\[9.05±0.010\] │Always │FPSS data block
18 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│441..448│AYFSSB19│t:3.4-18│ - │\[9.55±0.010\] │Always │FPSS data block
19 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│449..456│AYFSSB20│t:3.4-18│ - │\[10.05±0.010\]│Always │FPSS data block
20 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│457..464│AYFSSB21│t:3.4-18│ - │\[10.55±0.010\]│Always │FPSS data block
21 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│465..472│AYFSSB22│t:3.4-18│ - │\[11.05±0.010\]│Always │FPSS data block
22 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│473..480│AYFSSB23│t:3.4-18│ - │\[11.55±0.010\]│Always │FPSS data block
23 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│481..488│AYFSSB24│t:3.4-18│ - │\[12.05±0.010\]│Always │FPSS data block
24 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│489..496│AYFSSB25│t:3.4-18│ - │\[12.55±0.010\]│Always │FPSS data block
25 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│497..504│AYFSSB26│t:3.4-18│ - │\[13.05±0.010\]│Always │FPSS data block
26 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│505..512│AYFSSB27│t:3.4-18│ - │\[13.55±0.010\]│Always │FPSS data block
27 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│513..520│AYFSSB28│t:3.4-18│ - │\[14.05±0.010\]│Always │FPSS data block
28 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│521..528│AYFSSB29│t:3.4-18│ - │\[14.55±0.010\]│Always │FPSS data block
29 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│529 │AKFSSVL2│fssv2 │ N/A │(parallel) │Always │FPSS data blocks │

│ │ │ │ │ │ │ 15-29 validity word │

└────────┴────────┴────────┴──────┴─────────────┴────────┴─────────────────────┘

[Table 3.4-30: AYFSSDA2 definition]{.underline}

┌────────┬────────┬────────┬──────┬─────────────┬────────┬─────────────────────┐

│word │Mnemonic│ Type │ Init │Timing │Validity│Description │

│ │ │ │ value│ │ │ │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│530..531│AKROL13 │lint │ - │\[13.71±0.010\]│Always │Roll attitude │

│ │ │ │ │ │ │data 13 │

├────────┼────────┼────────┼──────┼─────────────┼────────┼─────────────────────┤

│532..533│AKROL14 │lint │ - │\[14.71±0.010\]│Always │Roll attitude │

│ │ │ │ │ │ │data 14 │

└────────┴────────┴────────┴──────┴─────────────┴────────┴─────────────────────┘

[Table 3.4-31: AYIRU2 definition]{.underline}

┌────────┬────────┬────────┬───────┬────────────┬────────┬─────────────────────┐

│ word │Mnemonic│ Type │ Init │Timing │Validity│Description │

│ │ │ │ value │ │ │ │

├────────┼────────┼────────┼───────┼────────────┼────────┼─────────────────────┤

│ 536 │AKRSLADR│ int │ 0 │l3 │Always │Roll steering address│

│ │ │ │ │ │ │used for RSL │

├────────┼────────┼────────┼───────┼────────────┼────────┼─────────────────────┤

│ 537 │AKRSLPER│ int │ 65535 │l3 │Always │Roll steering update │

│ │ │ │ │ │ │period used for RSL │

└────────┴────────┴────────┴───────┴────────────┴────────┴─────────────────────┘

[Table 3.4-32: AYRSLCFV definition]{.underline}

┌────────┬──────────┬───────┬───────┬────────┬─────────┬──────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │ Validity│Description │

│ │ │ │ value │ │ │ │

├────────┼──────────┼───────┼───────┼────────┼─────────┼──────────────────────┤

│538..539│ AKSLWANG │ flt │ 0.0 │ l3 │ Always │Slew angle used for │

│ │ │ │ │ │ │Mode4 control laws │

├────────┼──────────┼───────┼───────┼────────┼─────────┼──────────────────────┤

│540..541│ AKSLWRTE │ flt │ n1 │ l3 │ Always │Slew rate used for │

│ │ │ │ │ │ │Mode4 control laws │

├────────┼──────────┼───────┼───────┼────────┼─────────┼──────────────────────┤

│542..543│ AKSLWACC │ flt │ n2 │ l3 │ Always │Slew acceleration used│

│ │ │ │ │ │ │for Mode4 control laws│

├────────┼──────────┼───────┼───────┼────────┼─────────┼──────────────────────┤

│544 │ AKSLWDTM │ word │ 300 │ l3 │ Always │Slew delay time used │

│ │ │ │ │ │ │for Mode4 control laws│

└────────┴──────────┴───────┴───────┴────────┴─────────┴──────────────────────┘

n1 1.745E-03

n2 2.9088E-05

[Table 3.4-33: AYSLWDA definition]{.underline}

┌────────┬────────┬────────┬───────┬────────┬──────────┬──────────────────────┐

│word │Mnemonic│ Type │ Init │ Timing │ Validity │ Description │

│ │ │ │ value │ │ │ │

├────────┼────────┼────────┼───────┼────────┼──────────┼──────────────────────┤

│545..546│AKTORQR │ flt │ none │ l3 │ \* │ Control torque demand│

│ │ │ │ │ │ │ for the roll axis │

├────────┼────────┼────────┼───────┼────────┼──────────┼──────────────────────┤

│547..548│AKTORQP │ flt │ none │ l3 │ \* │ Control torque demand│

│ │ │ │ │ │ │ for the pitch axis │

├────────┼────────┼────────┼───────┼────────┼──────────┼──────────────────────┤

│549..550│AKTORQY │ flt │ none │ l3 │ \* │ Control torque demand│

│ │ │ │ │ │ │ for the yaw axis │

└────────┴────────┴────────┴───────┴────────┴──────────┴──────────────────────┘

\* This data is valid only when torque demands are being calculated

[Table 3.4-34: AYTORQ definition]{.underline}

┌──────┬──────────┬──────┬───────┬────────┬──────────┬─────────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │ Validity │ Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ +0 │ AKTHRTDA │ thrt │ n/a │ prev. │ Always │ Thruster demand │

│ │ │ │ │ frame │ │ definition │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ +1 │ AKTHRTDT │ dtime│ n/a │ prev. │ Always │ Time that AKTHRTDA │

│ │ │ │ │ frame │ │ definition │

└──────┴──────────┴──────┴───────┴────────┴──────────┴─────────────────────────┘

AYTHR1 and AYTHR2 consist of up to 58 blocks of 2 words as defined
above. The number of actual blocks inserted in TM depends on the usage
of thrusters.

Note that all the data recorded is from the previous TM Format period.

[Table 3.4-35: AYTHR1 definition]{.underline}

┌──────┬──────────┬──────┬───────┬────────┬──────────┬─────────────────────────┐

│ word │ Mnemonic │ Type │ Init │ Timing │ Validity │ Description │

│ │ │ │ value │ │ │ │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ 318 │ AKTH1OTI │ nat │ 0 │ \[end\] │ Always │ Thruster 1 total │

│ │ │ │ │ │ │ on-time increment │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ 319 │ AKTH2OTI │ nat │ 0 │ \[end\] │ Always │ Thruster 2 total │

│ │ │ │ │ │ │ on-time increment │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ 320 │ AKTH3OTI │ nat │ 0 │ \[end\] │ Always │ Thruster 3 total │

│ │ │ │ │ │ │ on-time increment │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ 321 │ AKTH4OTI │ nat │ 0 │ \[end\] │ Always │ Thruster 4 total │

│ │ │ │ │ │ │ on-time increment │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ 322 │ AKTH5OTI │ nat │ 0 │ \[end\] │ Always │ Thruster 5 total │

│ │ │ │ │ │ │ on-time increment │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ 323 │ AKTH6OTI │ nat │ 0 │ \[end\] │ Always │ Thruster 6 total │

│ │ │ │ │ │ │ on-time increment │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ 324 │ AKTH7OTI │ nat │ 0 │ \[end\] │ Always │ Thruster 7 total │

│ │ │ │ │ │ │ on-time increment │

├──────┼──────────┼──────┼───────┼────────┼──────────┼─────────────────────────┤

│ 325 │ AKTH8OTI │ nat │ 0 │ \[end\] │ Always │ Thruster 8 total │

│ │ │ │ │ │ │ on-time increment │

└──────┴──────────┴──────┴───────┴────────┴──────────┴─────────────────────────┘

[Table 3.4-36: AYTHRTI definition]{.underline}

┌────────┬──────────┬────────┬─────┬──────┬────────┬───────────────────────────┐

│word │ Mnemonic │Type │Init │Timing│Validity│Description │

│ │ │ │value│ │ │ │

├────────┼──────────┼────────┼─────┼──────┼────────┼───────────────────────────┤

│123..124│ AKSSURAS │flt │0.0 │ l3 │Always │Roll angle reference for │

│ │ │ │ │ │ │control star │

├────────┼──────────┼────────┼─────┼──────┼────────┼───────────────────────────┤

│125..127│ AKSSUDS │t:3.4-27│- │ 13 │Always │Control star data │

└────────┴──────────┴────────┴─────┴──────┴────────┴───────────────────────────┘

[Table 3.4-37: AYSSUCSD definition]{.underline}

┌────────┬──────────┬────────┬─────┬──────┬────────┬───────────────────────────┐

│word │Mnemonic │Type │Init │Timing│Validity│Description │

│ │ │ │value│ │ │ │

├────────┼──────────┼────────┼─────┼──────┼────────┼───────────────────────────┤

│287..288│AKSLWANG │flt │0.0 │ l3 │Always │Slew angle used for │

│ │ │ │ │ │ │Mode4 control laws │

├────────┼──────────┼────────┼─────┼──────┼────────┼───────────────────────────┤

│289..290│AKSLWRTE │flt │n1 │ l3 │Always │Slew rate used for │

│ │ │ │ │ │ │Mode4 control laws │

└────────┴──────────┴────────┴─────┴──────┴────────┴───────────────────────────┘

n1 1.745E-03

[Table 3.4-38: AYSLWDA1 definition]{.underline}

┌────────┬──────────┬────────┬─────┬──────┬────────┬───────────────────────────┐

│word │Mnemonic │Type │Init │Timing│Validity│Description │

│ │ │ │value│ │ │ │

├────────┼──────────┼────────┼─────┼──────┼────────┼───────────────────────────┤

│292..293│AKSLWACC │flt │n2 │l3 │Always │Slew acceleration used │

│ │ │ │ │ │ │for Mode4 control laws │

├────────┼──────────┼────────┼─────┼──────┼────────┼───────────────────────────┤

│294 │AKSLWDTM │word │0 │l3 │Always │Slew delay time used │

│ │ │ │ │ │ │for Mode4 control laws │

└────────┴──────────┴────────┴─────┴──────┴────────┴───────────────────────────┘

n2 2.9088E-05

[Table 3.4-39: AYSLWDA2 definition]{.underline}

┌────────┬──────────┬────────┬─────┬──────┬────────┬─────────────┬─────────────┐

│word │Mnemonic │Type │Init │Timing│Validity│Description │ Scaling │

│ │ │ │value│ │ │ │ │

├────────┼──────────┼────────┼─────┼──────┼────────┼─────────────┼─────────────┤

│403 │AKFPITCH │ int │ 0 │l3 │Always │Measured FPSS│ LSB = 0.3 │

│ │ │ │ │ │ │pitch angle │ arcsec │

├────────┼──────────┼────────┼─────┼──────┼────────┼─────────────┼─────────────┤

│404 │AKFYAW │ int │ 0 │l3 │Always │Measured FPSS│ LSB = 0.3 │

│ │ │ │ │ │ │yaw angle │ arcsec │

└────────┴──────────┴────────┴─────┴──────┴────────┴─────────────┴─────────────┘

[Table 3.4-40: AYFSSANG definition]{.underline}

**[Data types]{.underline}**

> **time**

This is a 3-word data block:

0 1 2

0 │ 0 │ 0

┌─────────────────────┼─────────────────────┼────────────────────────┐

│ Word 1 │ Word 2 │ Word 3 │

└─────────────────────┴─────────────────────┴────────────────────────┘

Word 1:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

Word 2:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

Word 3:

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ t │ t │ t │ t │ t │ t │ t │ t │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

t..t Time expressed as number of 1/256s intervals

**dtime**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │ t │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

t..t time expressed as number of 1/256s intervals

**int** 16-bit 2\'s complement word.

**lint** 32-bit 2\'s complement word

**nat** 15-bit magnitude word with bit 0 set to 0.

**word** 16-bit word

**113wd** 113 x word

**147wd** 147 x word

**124wd** 124 x word

**128wd** 128 x word

**flt** 32-bit MIL-STD-1750A floating point representation, see RD.2

**macs** 16-bit word as read via the MACS bus. The representation for

> each particular word is defined in RD.5.

**acust**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ e │ e │ e │ e │ e │ e │ n │ n │ n │ n │ n │ s │ f │ r │ b │ b │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

───────┼───────┼──────────┼────────────────────────────────────────────────

e..e │ 0..5 │ AAACSREC │ Cumulative count of recoverable errors.

│ │ │ This count wraps around from 63 to 0.

│ │ │

n..n │ 6..A │ AAACSNRE │ Cumulative count of non-recoverable errors.

│ │ │ This count wraps around from 31 to zero.

│ │ │

s │ B │ AAACSSWR │ Equal to 1 if a software reset has occurred.

│ │ │

f │ C │ AAACSFPA │ FPSS Anomaly (X-axis off-pointing flag)

│ │ │

r │ D │ AAACSRLA │ Roll Anomaly (Roll axis off-pointing flag)

│ │ │

bb │ E..F │ AAACSRST │ The reset cause bits

│ │ │ which define the cause of the reset:

│ │ │ 00 H/W powerup or S/W Reset.

│ │ │ 01 Memory Parity fault

│ │ │ 10 Watchdog Fault

│ │ │ 11 Both Memory Parity and Watchdog Faults.

**mdst**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ p │ c │ c │ c │ c │ a │ a │ a │ a │ s │ t │ h │ u │ st│ st│ st│

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

───────┼───────┼───────────┼────────────────────────────────────────

p │ 0 │ AKMDSTRP │ Mode Transition in progress

│ │ │ 0 No mode transition in progress

│ │ │ 1 Mode transition in progress

───────┼───────┼───────────┼────────────────────────────────────────

cccc │ 1..4 │ AKMDSCOM │ Commanded Mode Number

───────┼───────┼───────────┼────────────────────────────────────────

aaaa │ 5..8 │ AKMDSACT │ Active Mode Number

───────┼───────┼───────────┼────────────────────────────────────────

s │ 9 │ AKMDSCRP │ CRP mode requested flag

│ │ │ 0 CRP mode not requested

│ │ │ 1 CRP mode requested due to no valid

│ │ │ and eligible stars available after

│ │ │ detection of successive SSU SEUs.

───────┼───────┼───────────┼────────────────────────────────────────

t │ A │ AKMDSTMP │ Telemetry Packet Type.

│ │ │ Corresponds to bit A of ABACU104 Word 1,

│ │ │ ie, 0 = type 2, 1 = type 3

───────┼───────┼───────────┼────────────────────────────────────────

h │ B │ AKMDSHXF │ Roll momentum vector (Hx) range exceeded,

│ │ │ ie, min/max bounds exceeded or below

│ │ │ lowest edge threshold.

│ │ │ 0 Hx in range

│ │ │ 1 Hx range exceeded

───────┼───────┼───────────┼────────────────────────────────────────

u │ C │ AKMDSTMF │ Indicates Gyroless Telemetry definition

│ │ │ 1 Gyroless TM definition (always set)

───────┼───────┼───────────┼────────────────────────────────────────

st │ D..F │ AKMDSSUB │ Telemetry Packet sub-type code.

│ │ │ This corresponds to bits D..F of

│ │ │ ABACU104 Word 1.

**tcst**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ s │ s │ s │ s │ s │ s │ s │ s │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

──────┼───────┼────────────┼─────────────────────────────────

t │ 7 │ AKTCTBIT │ Toggle bit value. This bit is

│ │ │ changed on every successful

│ │ │ receipt of a block telecommand.

──────┼───────┼────────────┼─────────────────────────────────

s..s │ 8..F │ AKTCOKN │ Running count of successful TCs.

│ │ │ This count wraps around from 255 to 0

**ftreg**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ │ │ m │ │ │ │ │ w │ a │ i │ │ │ │ b │ b │ b │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

───┼───────┼───────────┼────────────────────────────────

│ 0 │ │ CPU Memory Protection Fault

│ 1 │ │ DMA Memory Protection Fault

m │ 2 │ AAFTMPAR │ Memory Parity Fault

│ 3 │ │ PIO Channel Parity Fault

│ 4 │ │ DMA Channel Parity Fault

│ 5 │ │ Not implemented

│ 6 │ │ PIO Transmission Fault

w │ 7 │ AAFTWDOG │ Watchdog Timeout Fault

a │ 8 │ AAFTILAD │ Illegal Address Fault

i │ 9 │ AAFTILIN │ Illegal Instruction Fault

│ A │ │ Privileged Instruction Fault

│ B │ │ Address state Fault

│ C │ │ Spare

b │ D..F │ AAFTBITE │ Built-in Test Fault

**fssv1**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ a │ b │ c │ d │ e │ f │ g │ h │ i │ j │ k │ l │ m │ n │ o │ 0 │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

──────┼───────┼────────────┼──────────────────────────

│ │ │ = 1 if block not valid

a │ 0 │ AKFSSV00 │ Validity of AYFSSB00

b │ 1 │ AKFSSV01 │ Validity of AYFSSB01

c │ 2 │ AKFSSV02 │ Validity of AYFSSB02

d │ 3 │ AKFSSV03 │ Validity of AYFSSB03

e │ 4 │ AKFSSV04 │ Validity of AYFSSB04

f │ 5 │ AKFSSV05 │ Validity of AYFSSB05

g │ 6 │ AKFSSV06 │ Validity of AYFSSB06

h │ 7 │ AKFSSV07 │ Validity of AYFSSB07

i │ 8 │ AKFSSV08 │ Validity of AYFSSB08

j │ 9 │ AKFSSV09 │ Validity of AYFSSB09

k │ A │ AKFSSV10 │ Validity of AYFSSB10

l │ B │ AKFSSV11 │ Validity of AYFSSB11

m │ C │ AKFSSV12 │ Validity of AYFSSB12

n │ D │ AKFSSV13 │ Validity of AYFSSB13

o │ E │ AKFSSV14 │ Validity of AYFSSB14

│ F │ │ Not used

**fssv2**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ a │ b │ c │ d │ e │ f │ g │ h │ i │ j │ k │ l │ m │ n │ o │ 0 │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

─────┼───────┼────────────┼───────────────────────

│ │ │ =1 if block invalid

a │ 0 │ AKFSSV15 │ Validity of AYFSSB15

b │ 1 │ AKFSSV16 │ Validity of AYFSSB16

c │ 2 │ AKFSSV17 │ Validity of AYFSSB17

d │ 3 │ AKFSSV18 │ Validity of AYFSSB18

e │ 4 │ AKFSSV19 │ Validity of AYFSSB19

f │ 5 │ AKFSSV20 │ Valdiity of AYFSSB20

g │ 6 │ AKFSSV21 │ Validity of AYFSSB21

h │ 7 │ AKFSSV22 │ Validity of AYFSSB22

i │ 8 │ AKFSSV23 │ Validity of AYFSSB23

j │ 9 │ AKFSSV24 │ Validity of AYFSSB24

k │ A │ AKFSSV25 │ Validity of AYFSSB25

l │ B │ AKFSSV26 │ Validity of AYFSSB26

m │ C │ AKFSSV27 │ Validity of AYFSSB27

n │ D │ AKFSSV28 │ Validity of AYFSSB28

o │ E │ AKFSSV29 │ Validity of AYFSSB29

│ F │ │ Not Used

**fincr**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ p │ p │ p │ p │ p │ p │ p │ p │ y │ y │ y │ y │ y │ y │ y │ y │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

───────┼───────┼──────────┼───────────────────────────────────────

p..p │ 0..7 │ AKFSSbbP │ Pitch attitude increment for block bb

y..y │ 8..F │ AKFSSbbY │ Yaw attitude increment for block bb

│ │ │ Note : if increment overflows 8 bits,

│ │ │ corresponding fssv bit is set.

**prsst**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ d │ 0 │ 0 │ t │ t │ t │ t │ t │ t │ t │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

────┼──────┼────────────┼──────────────────────────────────────────

│ 0..5 │ │ Not used

d │ 6 │ AKPRSST1 │ 0 = on-mod, 1 = off-mod

│ 7..8 │ │ Not used

t..t│ 9..F │ AKPRSST2 │ Off-modulated thruster selection

│ │ │ 000116: Thrusters 1 and 2 off-modulated

│ │ │ 000416: Thrusters 3 and 4 off-modulated

│ │ │ 001016: Thrusters 5 and 6 off-modulated

│ │ │ 004016: Thrusters 7 and 8 off-modulated

**ssus**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ 0 │ 0 │ 0 │ u │ p │ i │ c │ r │ e │ 0 │ 0 │ m │ v │ s │ s │ s │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

───┼──────┼──────────┼───────────────────────────────────────────

│ 0..2 │ - │ Not used

│ │ │

u │ 3 │ AKSSUSUE │ SSU SEU Monitoring: 1= enabled,

│ │ │ 0 = disabled

p │ 4 │ AKPCPGP1 │ PCPG manoeuvre: 1 = in progress,

│ │ │ 0 = terminated

i │ 5 │ AKSSUDLD │ SSU memory download: 1 = in progress,

│ │ │ 0 = not in progress

c │ 6 │ AKSSUDFL │ SSU download buffer 1 = full

│ │ │ 0 = not full

r │ 7 │ AKSSUATM │ Roll attitude TM: 1 = derived from SSU

│ │ │ 0 = derived from CRS

e │ 8 │ AKSSUPS1 │ Roll Steering Law: 1 = enabled

│ │ │ 0 = disabled

│ 9, A │ - │ Not used

│ │ │

m │ B │ AKSSUPS4 │ SSU mapping: 1 = complete

│ │ │ 0 = in progress

v │ C │ AKSSUCSV │ Control Star \* 1 = valid

│ │ │ 0 = invalid

sss│ D..F │ AKSSUPS6 │ Control star number: 1..5

\* Control star valid indicates that the SSU mode is either
Search/Tracking, Search/Tracking Restricted or Mapping, and the IN field
for the currently defined control star in the most recently acquired
star data status word indicates 'Data valid - full accuracy' and the SSU
health check result is 'healthy'. Control star invalid is the inverse of
this condition.

**thrt**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ c │ t │ t │ t │ d │ d │ d │ d │ d │ d │ d │ d │ d │ d │ d │ d │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

─────┼────────┼──────────┼────────────────────────────────────────

c │ 0 │ AKTHRCAE │ CAE identifier.

│ │ │ 0 = CAE/A, 1 = CAE/B

ttt │ 1..3 │ AKTHRTHR │ Thruster identifier in the range 0..7.

d..d │ 4..F │ AKTHRDUR │ Thruster on-time

**ssubf1** 125 words of SSU Mapping data. The order (over the
**complete** SSU buffer) is \[Star 1 Magnitude, Y-coord, Z-coord\], ..
\[Star 5 Magnitude, Y-coord, Z-coord\], \[Star data status\]. The
representation of each word is as received via the MACS bus.

**ssubf2** 100 words of SSU Mapping data. The order and representation
are as defined for **ssubf1**.

**tchcf** See §3.5.3

**ecode** See §3.6.3.1

**tchd** See §3.5.2

**tcerr** See §3.6.3.2

**glst**

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ e │ e │ e │ e │ e │ h │ a │ r │ v │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

│ Bit │ Mnemonic │ Description

───────┼───────┼───────────┼────────────────────────────────────────

eeeee │ 7 │ AKGLEL1 │ 0 Star 1 not eligible for swapping

│ │ │ 1 Star 1 eligible for swapping

│ 8 │ AKGLEL2 │ 0 Star 2 not eligible for swapping

│ │ │ 1 Star 2 eligible for swapping

│ 9 │ AKGLEL3 │ 0 Star 3 not eligible for swapping

│ │ │ 1 Star 3 eligible for swapping

│ A │ AKGLEL4 │ 0 Star 4 not eligible for swapping

│ │ │ 1 Star 4 eligible for swapping

│ B │ AKGLEL5 │ 0 Star 5 not eligible for swapping

│ │ │ 1 Star 6 eligible for swapping

───────┼───────┼───────────┼────────────────────────────────────────

h │ C │ AKGLHXFN │ 0 Hx monitoring not authorised

│ │ │ 1 Hx monitoring authorised

───────┼───────┼───────────┼────────────────────────────────────────

a │ D │ AKGLPROF │ 0 Attitude manoeuvre not in progress

│ │ │ 1 Attitude manoeuvre in progress

───────┼───────┼───────────┼────────────────────────────────────────

r │ E │ AKGLRRVF │ 0 CRP roll reference not being set

│ │ │ 1 CRP roll reference being set

───────┼───────┼───────────┼────────────────────────────────────────

v │ F │ AKGLRAVF │ 0 CRP roll angle invalid

│ │ │ 1 CRP roll angle valid

## 3.5 TELECOMMAND

### 3.5.1 General

> There are 32 permitted telecommands for the ACU OBS of which 26 have
> been defined. All these telecommands are block telecommands. These
> telecommands are divided into 3 levels:
>
> 0\. Ground based fault diagnosis and fault recovery only, i.e.
> non-nominal.
>
> 1\. Associated with IOS and SWS functions,
>
> 2\. Mode and common functions and formatted unit commanding.
>
> The On-Board telecommand processing consists of 2 distinct processes:
>
> · Command receipt and verification
>
> · Command execution
>
> Each of these processes is described below.

### 3.5.2 Command Receipt and Verification

> A block telecommand is received as a collection of 16-bit words in the
> order
>
> · Header word
>
> · Data words
>
> · Checksum word
>
> The receipt of telecommand words is totally interrupt driven. Each
> word is read in response to the interrupts as shown:
>
> Header word Interrupt 11
>
> Data word Interrupt 12
>
> Checksum word Interrupt 12
>
> The Header word has the format

0 1 2 3 │ 4 5 6 7 │ 8 9 A B │ C D E F

┌───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┼───┬───┬───┬───┐

│ x │ x │ d │ d │ d │ d │ c │ c │ c │ c │ c │ n │ n │ n │ n │ n │

└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

where

xx [Reserved]{.underline}, unused by the ACU OBS

dddd [Destination Address]{.underline}, always 00012

ccccc [Command Identifier]{.underline}, defines the telecommand, see
Table 3.5-1

nnnnn [Block Length]{.underline}, defines the number of words in the
block telecommand excluding the Header word. (The total number of words
in the block TC is nnnnn+1).

> The Data words are 16-bit words where the format of each word depends
> on the particular telecommand.
>
> The Checksum word is a 16-bit word containing the expected checksum of
> the telecommand.
>
> Verification is performed on receipt of the Header word and on the
> complete receipt of a telecommand, i.e. on receipt of the Checksum
> word.
>
> The verification of a telecommand consists of ensuring that
>
> · the Destination Address is 00012
>
> . the Block Length is non-zero.
>
> · the Actual checksum = expected checksum (Checksum word)
>
> The Actual checksum is calculated by summing the Header word and all
> the Data words of the telecommand, i.e. the Checksum word is not
> included in the checksum calculation. The summation is performed by
> addition modulo 65536.
>
> · the number of words received is as specified in the Header word.
>
> The following errors are trapped in this process:
>
> 1\. Header word received when not expected, i.e. too few words
> received between Header words. (ERRTCLEN)
>
> 2\. A Data word or the Checksum word received when not expected, i.e.
> too many words received between Header words. (ERRTCHEX)
>
> 3\. Greater than 1 second elapses between expected successive
> telecommand words. (ERRTCTIM)
>
> 4\. The Destination Address (in the Header word) is not equal to
> 00012. (ERRTCDST)
>
> 5\. The Block Length is equal to 0. (ERRTCLEN)
>
> 6\. The checksums do not agree. (ERRTCDAT)
>
> 7\. A telecommand is overwritten, i.e. a telecommand is received (in
> full) before the ACU OBS has executed the previous (stored)
> telecommand. (ERRTCOVW)
>
> The mnemonic in brackets is the error reported, see section 3.6.
>
> Successful reception of a block telecommand is indicated by the
> toggling (change state) of the telecommand toggle bit, and reporting
> the telecommand header word in the telecommand execution report
> buffer.

### 3.5.3 Command Execution

> A telecommand is executed by a scheduled task, either the PRCOSC or
> PRCASWTC, see section 3.3. A telecommand is executed only when it has
> been completely received and verified successfully. A complete list of
> the defined telecommands is given in Table 3.5-1.
>
> A telecommand with an identifier which has no defined action causes no
> operation other than the report of an illegal command identifier.
>
> The successful execution of a telecommand is reported in the TM word
> AKTCST and the TM block AYTCEXEH.
>
> Each of these telecommands is individually described below as follows:
>
> ID ABACUvnn where \"v\" is the OBS level and \"nn\" is an arbitrary
> number to distinguish the telecommands within a level.
>
> The relationship between the \"v\" and the processing tasks is
>
> \"v\" = 0,1 PRCOSTC
>
> \"v\" = 2 PRCASWTC
>
> There follows a short descriptive name of the telecommand.
>
> This is followed by the word format of the complete telecommand. The
> bit format is always a 16-bit hex word subject to the individual word
> constraints.
>
> S/W Checks: Describes the checks performed by the OBS with a
>
> definition of the error report made, if any.
>
> S/W Processing: Describes the telecommand-specific processing
>
> performed by the OBS.
>
> S/W Constraints: Describes any constraints imposed by the OBS.
>
> Timing Constraints: Details the actual processing time required over
>
> and above the nominal time for the relevant task as reported in §3.3.
>
> Observability: Describes how the execution can be monitored by
>
> ground. This does not repeat the general telecommand monitoring
> procedure which is described below for all telecommands.

Operational Defines the individual word constraints for Data

Constraints words and describes constraints to be imposed on

ground due to OBS considerations.

Telecommand │ \# │ Header word(s) │ Name

│ │ (Hex) │

──────────────┼───┼──────────────────┼─────────────────────────────────────

ABACU001 │ 2 │ X443 │ Unchecked i/o address space write

ABACU002 │ 3 │ X463 to X472 │ Unchecked write to memory

ABACU003 │ 4 │ X483 │ Write to current telemetry packet

ABACU004 │ 0 │ X401 │ Dummy telecommand

ABACU101 │ 5 │ X4A6 │ MACS bus command

ABACU102 │ 6 │ X4C4 │ Change task scheduling parameters

ABACU103 │ 7 │ X4E3 to X4F2 │ Checked memory write

ABACU104 │ 8 │ X502 │ Set telemetry packet type

ABACU105 │ 9 │ X523 │ Set memory dump parameters

ABACU106 │10 │ X542 │ i/o address space read

ABACU107 │11 │ X561 │ Undefined telecommand

ABACU108 │ 1 │ X424 │ On-board time transmission

ABACU201 │12 │ X595 │ Thruster command

ABACU202 │13 │ X5A2 │ Undefined telecommand

ABACU203 │14 │ X5C6 │ Change SAS bias

ABACU204 │15 │ X5E4 │ Undefined telecommand

ABACU205 │16 │ X60A │ Roll manoeuvre command

ABACU206 │17 │ X624 │ Roll attitude telemetry command

ABACU207 │18 │ X648 │ Undefined telecommand

ABACU208 │20 │ X68A │ Undefined telecommand

ABACU209 │21 │ X6A2 │ Modify hardware configuration parameter

ABACU210 │22 │ X6C3 to X6DE │ RSL common functions command

ABACU211 │23 │ X6E2 to X6EF │ SSU command

ABACU212 │24 │ X706 │ Undefined telecommand

ABACU213 │25 │ X724 │ SSU common functions command

ABACU214 │26 │ X746 │ FPSS common functions command

ABACU215 │19 │ X664 to X67F │ General mode command

ABACU216 │27 │ X768 │ Undefined telecommand

ABACU217 │28 │ X789 │ WDE common functions command

ABACU218 │29 │ X7A4 to X7BF │ General ASW common functions command

ABACU219 │30 │ X7C9 │ Set PCPG task parameters command

N/A │31 │ N/A │ Undefined telecommand

\'#\' is the number assigned to the Command Identifier in the Header
Word.

The \"X\" in the Header word = xx002 where xx is any binary value.

[Table 3.5-1: Telecommand numbering]{.underline}

┌─────────────────────┬────────────────────────────────────────────────────────┐

│ ID = ABACU001 │ Unchecked i/o address space write │

├─────────────────────┴────────────────────────────────────────────────────────┤

│ ┌──────┬───────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────┼───────────────────────────────────────┤ │

│ │ 0 │ Header Word = X44316 │ │

│ ├──────┼───────────────────────────────────────┤ │

│ │ 1 │ Address for i/o write │ │

│ ├──────┼───────────────────────────────────────┤ │

│ │ 2 │ Data word to be written to Address │ │

│ ├──────┼───────────────────────────────────────┤ │

│ │ 3 │ Checksum Word │ │

│ └──────┴───────────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│S/W Checks: MSB of Word 1 is always cleared (to safeguard H/W). No │

│ error report is made if set (= \"1\"). │

│ │

│S/W Processing: Write Word 2 to i/o address given by Word 1 using an
XIO │

│ instruction. │

│ │

│ If the i/o address is LMC (= 0318) then the XIO instruction│

│ is followed by a 100µs wait before low memory is accessed. │

│ (Note that the processing including the 100µs wait [must]{.underline}
be │

│ performed in high RAM - as is the case in the nominal S/W).│

│ │

│S/W Constraints: None │

│ │

│Timing │

│Constraints: None │

│ │

│Observability: None (except by virtue of the XIO instruction
performed). │

│ │

│Operational Word 1 Constrained by H/W. The i/o addresses used by the│

│Constraints: OBS are detailed in §3.1.2.3.1. The available i/o│

│ addresses are defined in H/W specific documents │

│ outside the scope of this document. │

│ │

│ Word 2 Constrained by the i/o address, see Word 1 │

│ │

│ This telecommand is restricted to ground based fault │

│ diagnosis and fault recovery only. │

│ │

│ Care is required since this command allows unchecked │

│ writing to hardware with the consequent results. │

│ │

│ A trap for illegal XIO commands is not implemented. │

│ │

│ If this is used to change the interrupt mask (using the SMK│

│ i/o address), care must be taken regarding interrupts 7, 9 │

│ and 14 which are asserted as part of nominal behaviour. The│

│ unmasking of any of these interrupts will result in error │

│ messages being reported, see §3.6.2. │

│ │

│ Word 2 can contain arbitrary data if the i/o address being │

│ written to does not require data, e.g. ENBL. │

│ │

│ If the PROM is to be turned on by means of this │

│ telecommand, then it is necessary to first disable the │

│ continuous non-destructive ram test task \"CHKRAM\". │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU002 │ Unchecked write to memory │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌───────────┬─────────────────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├───────────┼─────────────────────────────────────────────────┤ │

│ │ 0 │ Header Word = X46316 to X47216 │ │

│ ├───────────┼─────────────────────────────────────────────────┤ │

│ │ 1 │ Start address for write to memory │ │

│ ├───────────┼─────────────────────────────────────────────────┤ │

│ │ 2+0 │ Data word 1 to be written to Address+0 │ │

│ ├───────────┼─────────────────────────────────────────────────┤ │

│ │ .. │ \..... │ │

│ ├───────────┼─────────────────────────────────────────────────┤ │

│ │ 2+n-1 │ Data word n to be written to Address+n-1 │ │

│ ├───────────┼─────────────────────────────────────────────────┤ │

│ │ 3+n-1 │ Checksum Word │ │

│ └───────────┴─────────────────────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ S/W Checks: None │

│ │

│ S/W Words 2 to 2+n-1 are written directly to memory starting │

│ Processing: at the address given by Word 1, where 1 ≤ n ≤ 16. │

│ │

│ If the contents of Word 1 + number of words to be written │

│ to memory (= n) is greater than 65535, a wrap-around │

│ beginning at location 0 is performed. │

│ │

│ S/W Writing to many OBS locations can cause a S/W failure, │

│ Constraints: for example the stack, the code that is processing this │

│ TC, interrupt handlers. │

│ │

│ Timing None │

│ Constraints: │

│ │

│ Observability: Memory Dump of the memory locations written to. │

│ │

│ Operational Word 1 None │

│ Constraints: Word 1..2+n-1 None │

│ │

│ This telecommand is restricted to ground based fault │

│ diagnosis and fault recovery only. │

│ │

│ Since this directly overwrites memory without any checks │

│ being performed, it is important to ensure that │

│ │

│ . the correct memory area is being written to │

│ . the correct data is being written to memory │

│ │

│ **Detailed analysis must be performed on ground in order to** │

│ **ensure that the on-board software is not corrupted.** │

│ Particular care with interrupt handlers is essential. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU003 │ Write to current telemetry packet │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────┬────────────────────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────┼────────────────────────────────────────────────────┤ │

│ │ 0 │ Header Word = X48316 │ │

│ ├──────┼────────────────────────────────────────────────────┤ │

│ │ 1 │ Packet position in the Telemetry frame │ │

│ ├──────┼────────────────────────────────────────────────────┤ │

│ │ 2 │ Data word to be written to the telemetry frame │ │

│ ├──────┼────────────────────────────────────────────────────┤ │

│ │ 3 │ Checksum Word │ │

│ └──────┴────────────────────────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ S/W Checks: if the constraints on Word 1 is not met, see below, then │

│ report a TC error in TM with Reason = Bad_Data and halt TC │

│ processing. │

│ │

│ S/W Write Word 2 to the position given by Word 1 in the current │

│ Processing: TM packet being generated irrespective of the packet type.
│

│ │

│ S/W The TM packet overwritten is the TM packet being generated │

│ Constraints: and [not]{.underline} the TM packet being transmitted to
the OBDH. │

│ │

│ Timing None │

│ Constraints: │

│ │

│ Observability: The TM packet transmitted after receipt of the next
Format │

│ Pulse. In order to prevent the word from being overwritten, │

│ it is useful to use a word that is not regularly updated, │

│ i.e. would normally remain 000016. │

│ │

│ Operational Word 1 0 ≤ Word 1 ≤ 22B16 (= 55510) │

│ Constraints: Word 2 None │

│ │

│ The data written by this telecommand can be overwritten by │

│ │

│ . the autonomous actions of the OBS in generating TM │

│ . the autonomous actions of the OBS in writing immediate│

│ data. │

│ │

│ This telecommand is restricted to ground based fault │

│ diagnosis and fault recovery only. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU004 │ Dummy telecommand │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌─────────┬────────────────────────┐ │

│ │ Word │ Content │ │

│ ├─────────┼────────────────────────┤ │

│ │ 0 │ Header Word = X40116 │ │

│ ├─────────┼────────────────────────┤ │

│ │ 1 │ Checksum Word │ │

│ └─────────┴────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ S/W Checks: None │

│ │

│ S/W None │

│ Processing: │

│ │

│ S/W None │

│ Contraints: │

│ │

│ Timing None │

│ Constraints: │

│ │

│ Observability: None (apart from TM.AYTCEXEH and other TC-related TM │

│ words). │

│ │

│ Operational This telecommand is restricted to ground based fault │

│ Constraints: diagnosis and fault recovery only. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU101 │ MACS bus command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────┬────────────────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────┼────────────────────────────────────────────────┤ │

│ │ 0 │ Header Word = X4A616 │ │

│ ├──────┼────────────────────────────────────────────────┤ │

│ │ 1 │ MACS communication type │ │

│ ├──────┼────────────────────────────────────────────────┤ │

│ │ 2 │ MACS destination address │ │

│ ├──────┼────────────────────────────────────────────────┤ │

│ │ 3 │ MACS Sub-address │ │

│ ├──────┼────────────────────────────────────────────────┤ │

│ │ 4 │ Data to be sent if Word 1 indicates an RD │ │

│ ├──────┼────────────────────────────────────────────────┤ │

│ │ 5 │ Number of retries to be performed (if needed) │ │

│ ├──────┼────────────────────────────────────────────────┤ │

│ │ 6 │ Checksum Word │ │

│ └──────┴────────────────────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│S/W Checks: if any of the constraints on the words is not met, see │

│ below, then report a TC error in TM with Reason = Bad_data │

│ and halt TC processing. │

│ │

│ if a MACS bus error occurs on a BRD, RC, RCP, RD or TI MACS│

│ bus transaction after all retries then report recoverable │

│ error ERRTC101 and report a TC error in TM with Reason │

│ = Bad_data. │

│ │

│ S/W case Word 1 │

│ Processing: │

│ = 0 issue a MACS bus BRD transaction using Word 3 for │

│ the subaddress bits, see §3.1.2.6.1. Words 2, 4 and │

│ 5 are discarded. │

│ │

│ = 1 issue a MACS bus RC transaction. Word 4 is │

│ discarded. │

│ │

│ = 2 issue a MACS bus RCP transaction. Word 4 is │

│ discarded. │

│ │

│ = 3 issue a MACS bus RD transaction using Word 4 for the│

│ data word. │

│ │

│ = 4 issue a MACS bus TI transaction discarding the │

│ returned data. Word 4 is discarded. │

│ │

│ The RC, RCP, RD and TI MACS bus transactions are issued │

│ using Words 2 and 3 to define the MACS bus address. Retries│

│ are performed if an error occurs when the MACS bus │

│ transaction fails; the maximum number of retries is given by│

│ Word 5. │

│ │

│ S/W None │

│ Constraints : │

│ │

│ Timing None │

│ Constraints: │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ Observability: Only the RD and TI commands can be observed (to have │

│ occurred) by monitoring the MACS bus data area, see §3.9. │

│ This will contain Word 1 for an RD command and the resultant│

│ data for a TI command, at an offset given by the 10-bit MACS│

│ bus address combined from Word 2 and Word 3 (by Word 2 \* 32 │

│ + Word 3). (Note the base address of the MACS bus data area│

│ is 9000h). │

│ │

│ Operational Word 1 0 ≤ Word 1 ≤ 4 │

│ Constraints: Word 2 0 ≤ Word 2 ≤ 1F16 │

│ Word 3 0 ≤ Word 3 ≤ 1F16 │

│ Word 4 This is only constrained if Word 1 = 3. The │

│ actual constraint depends on the MACS bus address │

│ used and is given in the MACS bus interface │

│ document RD.5. │

│ Word 5 0 ≤ Word 5 ≤ 1F16 │

│ │

│ If any of the above constraints is not met, then │

│ an error is reported. │

│ │

│ The only means to obtain the resultant data-word │

│ of a TI command is to use the above examination of│

│ memory. │

│ │

│ It may not be possible to observe the RD command │

│ executed or obtain the TI resultant data if the │

│ OBS is autonomously performing RD/TI │

│ communications to the same MACS address. │

│ │

│ It is not possible to observe an RC or RCP command│

│ except by its effect on the destination unit. │

│ │

│ The BRD is sent immediately and transparently to │

│ the autonomous OBS Broadcast management. Thus it │

│ is possible that this will upset the timing │

│ characteristics of the units. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU102 │ Change task scheduling parameters │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X4C416 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Task identifier │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ New period for the task │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ New phase for the task │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ S/W Checks: If Word 1 not valid then report a TC error in TM with │

│ Reason = Bad_data and halt TC processing. │

│ │

│ S/W Set the task period and phase parameters to Word 2 and│

│ Processing: Word 3 respectively for the task identified by Word 1.│

│ │

│ This affects the currently executing tasks. │

│ │

│ S/W This telecommand changes the period and phase of tasks│

│ Constraints: only. If it is required to change the order of tasks │

│ it is necessary to perform a memory write to the │

│ scheduler tables. If it is required to change the │

│ synchronisation of the tasks, e.g. to the Format │

│ Pulse, it is necessary to perform a reprogramming │

│ action. │

│ │

│ The effect of ABACU102 updates to parameters will │

│ persist as follows:- │

│ │

│ │

│ For OS tasks - until the next TM Packet Type change. │

│ For ASW tasks - until the next mode transition. │

│ For asynchronous tasks - until reinitialisation of │

│ the software. │

│ │

│ Timing None │

│ Constraints: │

│ │

│ Observability: Use a memory dump of the Task Table being changed. │

│ │

│ Operational Word 1 See Figure 3.5-1. │

│ Constraints: Word 2 2\'s complement value. 800016 to FFFF16 │

│ defines an inactive task. │

│ Word 3 2\'s complement value. 800016 to FFFF16 │

│ defines an inactive task. │

│ Extreme care must be taken with this telecommand. It │

│ is essential to validate the new task parameters on │

│ ground before use. An example of a fatal error is to │

│ deactivate the task PROSTC which handles this tele- │

│ command. The result would be to prevent any further │

│ ABACU0xx or ABACU1xx telecommands being processed │

│ which includes this telecommand. The only means then │

│ to reactivate the task is to force an ACU reset. │

└──────────────────────────────────────────────────────────────────────────────┘

0 1 2 3│ 4 5 6 7│ 8 9 A B│ C D E F

┌──┬──┬──┬──┼──┬──┬──┬──┼──┬──┬──┬──┼──┬──┬──┬──┐

│ s│ s│ i│ i│ i│ i│ i│ i│ i│ i│ i│ i│ i│ i│ i│ i│

└──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘

ss Scheduler selector

00 Background ASW Scheduler

01 Background OS Scheduler

10 Synchronous ASW Scheduler

11 Synchronous OS Scheduler

iii\... Task number index

> Note that due to the linking of the Sync_OS and Sync_ASW task tables a
> command to the Sync_OS scheduler list with a task index number beyond
> the OS range may update an ASW task.

[Figure 3.5-1: The format of the task identifier]{.underline}

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU103 │ Checked memory write │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬────────────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ 0 │ Header Word = X4E316 to X4F216 │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ 1 │ Start address for write to memory │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ 2+0 │ Data word 1 to be written to Address + 0 │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ .. │ \..... │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ 2+n-1 │ Data word n to be written to Address+n-1 │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ 3+n-1 │ Checksum Word │ │

│ └──────────┴────────────────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: if any address within Address .. Address+n-1 inclusive is
│

│ in a protected memory area (see §3.9) then report a TC │

│ error in TM with Reason = Bad_data and halt TC execution. │

│ │

│ S/W Words 2 to 2+n-1 are written directly to memory starting │

│ Processing: at the address given by Word 1, where 1 ≤ n ≤ 16. │

│ │

│ If the contents of Word 1 + number of words to be written │

│ to memory (= n) is greater than 65535, a wrap-around │

│ beginning at location 0 is performed. │

│ │

│ S/W None │

│ Constraints: │

│ │

│ Timing None │

│ Constraints: │

│ │

│ Observability: Memory Dump of the locations written to. │

│ │

│ Operational Word 1 See §3.9 │

│ Constraints: Word 2..2+n-1 None │

│ │

│ The new contents of memory [must]{.underline} be validated on ground │

│ before this telecommand is issued. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU104 │ Set telemetry packet type │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬────────────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ 0 │ Header Word = X50216 │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ 1 │ New type code for the Telemetry packet │ │

│ ├──────────┼────────────────────────────────────────────┤ │

│ │ 2 │ Checksum Word │ │

│ └──────────┴────────────────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ S/W Checks: if Word 1 not valid then report a TC error in TM with │

│ Reason = Bad_data and halt TC execution. │

│ │

│ S/W Set the TM packet type for the next TM packet to be │

│ Processing generated from bits \[ABCDEF\] of Word 1 as follows: │

│ │

│ \[ABCDEF\] = 0xxxxx =\> Type 2 │

│ \[ABCDEF\] = 1xx001 =\> Type 3.1 │

│ \[ABCDEF\] = 1xx010 =\> Type 3.2 │

│ \[ABCDEF\] = 1xx011 =\> Type 3.3 │

│ \[ABCDEF\] = 1xx100 =\> Type 3.4 │

│ │

│ S/W The execution of this telecommand caues the next TM │

│ Constraints packet to be filled to be of the new TM packet type. │

│ However, this new packet is not seen by ground until two │

│ Format Pulses later since both the packet being read by │

│ the OBDH [and]{.underline} the packet being filled by the OBS when the
│

│ telecommand is processed have to be read in their entirety │

│ by the OBDH. │

│ │

│ The last TM packet of the old type read by the OBDH will │

│ contain the immediate data of the old type and [not]{.underline} for
the │

│ new type. Similarly, the first TM packet of the new type │

│ read by the OBDH will contain the immediate data for the │

│ new type and not for the old type. │

│ │

│ Immediate data for the new type will not be inserted until │

│ the TM packet being read by the OBDH is of the new type. │

│ │

│ The dynamics are shown in Figure 3.5-2. │

│ │

│ Timing None │

│ Constraints: │

│ │

│ The worst-case time between receipt of the telecommand and │

│ the change will be 30 seconds. │

│ │

│ Observability: The TM packet after 2 Format Pulses is to be of the │

│ required type. │

│ │

│ The TM packet type is recorded immediately in the Mode │

│ Status word TM.AKMODEST.AKMDSTMP. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ Operational Word 1 Any of the following values for │

│ Constraints: bits \[ABCDEF\] are invalid : │

│ │

│ 1xx000, 1xx101, 1xx110, 1xx111 │

│ │

│ where \"x\" is \"0\" or \"1\". │

│ │

│ Bits 0 .. 9 are discarded. │

│ │

│ In order to prevent anomalies in Telemetry, this │

│ telecommand shall not be issued at intervals of less │

│ than 60 seconds. The consequences if this constraint │

│ is not followed are that the first command may be ignored. │

└──────────────────────────────────────────────────────────────────────────────┘

ABACU104

TC receipt

│ \<\-\-\-\-\-- TM period \-\-\-\-\--\>

│ │ │ │ │

│ V │ │ │

└──────────────────────┴───────────────────────┴───────────────────────┘

gen: TMOld TMNew TMNew

i/f: TMOld TMOld TMNew

[Key]{.underline}

gen Generation of a TM packet

i/f Transmission to the OBDH

TMOld Old TM packet type

TMNew New TM packet type

[Figure 3.5-2: Schematic of the dynamics when changing TM packet
type]{.underline}

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU105 │ Set memory dump parameters │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X52416 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Start address for memory dump │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Increment used in memory dump │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Store Words 1 and 2 for use by the next memory dump, │

│ in the current TM packet generation. │

│ │

│ Word 2 is used only in the regular memory dump. This │

│ is available only when the TM packet is Type 2, Type │

│ 3.2 or Type 3.4. It is not used for the extended │

│ memory dump (issued when the TM packet is Type 3.1). │

│ │

│ S/W None Constraints: None │

│ │

│ Timing Constraints : None │

│ │

│ Observability: TM.AYMDPARM (excluding Word 3) │

│ │

│ Operational In order to perform a memory dump on the PROM, it is │

│ Constraints: necessary to first select the PROM as active memory by│

│ the XIO write telecommand, ABACU001. (Note that this │

│ is not a nominal operating condition). │

│ │

│ If a memory dump is performed on the PROM and the │

│ memory to be dumped is non-existing (as PROM) then the│

│ data dumped is indeterminate. │

│ │

│ It is necessary to issue this telecommand after an │

│ extended memory dump (TM packet type 3.1) in order to │

│ return to a ground determined memory dump area. │

│ (Note that the memory dump data reported starts at the│

│ start address reported in the same TM packet. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU106 │ I/O address space read │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X54216 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Address for i/o read │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

│ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: MSB of Word 1 is always asserted (to safeguard H/W). │

│ No error report is made if clear (= \"0\"). │

│ │

│ S/W Processing: Read data from the i/o address given by Word 1 using │

│ an XIO instruction. The resultant word is reported in │

│ TM.AKTC106D. │

│ │

│ S/W Constraints: The word as read is only reported in TM packet types
2│

│ or 3.2. │

│ │

│ When storing in TM, any already existing word is │

│ overwritten and lost. │

│ │

│ Timing Constraints: None │

│ │

│ Observability: TM.AKTC106D │

│ │

│ Operational Word 1 Constrained by H/W. The i/o addresses used │

│ Constraints: by the OBS are detailed in §3.1.2.3.1. The │

│ available i/o addresses are defined in the │

│ H/W-S/W interface definition document RD.7. │

│ │

│ This telecommand is to be issued only once in any one │

│ TM packet acquisition period. │

│ │

│ This telecommand is to be issued only when the correct│

│ TM packet type is operative (otherwise the result is │

│ not reported). │

│ │

│ A trap for illegal XIO commands is not implemented. │

│ │

│ Note that the use of this command with address = │

│ 0A0016 will return the contents of the Fault Register │

│ and then have the side effect of clearing it. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU107 │ Undefined Telecommand │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X56116 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

│ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Report a TC error in TM with Reason = Bad_ID. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: None (apart from TM.AYTCERRH) │

│ │

│ Operational This telecommand is undefined and is not to be used. │

│ Constraints: │

│ │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU108 │ On-board Time Transmission │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X42416 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ OBT bytes 6 and 5 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ OBT bytes 4 and 3 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ OBT bytes 2 and 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Store Words 1, 2 and 3 in the On-board time, see │

│ below, keeping the least significant byte as 0016. │

│ │

│ S/W Constraints: The actual update of the LOBT is not performed until
│

│ the next Format Pulse. │

│ │

│ Timing Constraints: None │

│ │

│ Observability: The TM packet transmitted following the next Format │

│ Pulse. This will contain one LOBT with the value │

│ before the update; the other LOBTs will contain the │

│ updated value or greater (if the LOBT is incremented │

│ before it is written to TM). │

│ │

│ Operational It is not possible to set the least significant byte │

│ Constraints: of the On-board time. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌────────────────────┬────────────────────┬──────────────────┐

Telecommand: │ Word 1 │ Word 2 │ Word 3 │

LOBT: ├─────────┬──────────┼─────────┬──────────┼─────────┬────────┤

│ Byte 6 │ Byte 5 │ Byte 4 │ Byte 3 │ Byte 2 │ Byte 1 │

└─────────┴──────────┴─────────┴──────────┴─────────┴────────┘

MSB LSB

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU201 │ Thruster command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ ┌─────────┬──────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 0 │ Header Word = X59516 │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 1 │ Thruster A selection │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 2 │ Thruster A on time │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 3 │ Thruster A start time │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 4 │ Thruster A repetition count │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 5 │ Thruster A repetition interval │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 6 │ Thruster B selection │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 7 │ Thruster B on time │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 8 │ Thruster B start time │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 9 │ Thruster B repetition count │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 10 │ Thruster B repetition interval │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 11 │ Thruster C selection │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 12 │ Thruster C on time │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 13 │ Thruster C start time │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 14 │ Thruster C repetition count │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 15 │ Thruster C repetition interval │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 16 │ Thruster D selection │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 17 │ Thruster D on time │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 18 │ Thruster D start time │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 19 │ Thruster D repetition count │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 20 │ Thruster D repetition interval │ │

│ ├─────────┼──────────────────────────────────┤ │

│ │ 21 │ Checksum Word │ │

│ └─────────┴──────────────────────────────────┘ │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ │

│ S/W Checks: On receipt of this telecommand, the software checks │

│ for the following error conditions: │

│ │

│ A Thrusters repeated in selection │

│ │

│ B Invalid thruster selection code (see Operational │

│ Constraints, below) │

│ │

│ C Delay between receipt of this telecommand and time│

│ when firing should commence is \< 1 second or \> │

│ 4096 seconds │

│ │

│ D Any repetition count \< 1 │

│ │

│ E Any repetition count \> 1 and the corresponding │

│ repetition interval \< 1 │

│ │

│ F A thruster firing sequence commanded by a previous│

│ instance of this telecommand is in progress │

│ │

│ If any of the above conditions is detected, then │

│ report a TC error in TM with Reason = Bad_data and │

│ halt TC execution. │

│ │

│ The above parameter checks A, C, D and E are performed│

│ only if a (physical) thruster is selected. │

│ │

│ If any thruster command execution fails due to a MACS │

│ error or no CAE unit active, report an error │

│ (ERRTC201) in TM.AYERRRPT and abort the remaining │

│ thruster commands. │

│ │

│ S/W Processing: Store the uplinked commands in a thruster command │

│ block and execute each command when the associated │

│ delay time elapses. The delay time is calculated on │

│ TC receipt as the period between the current LOBT and │

│ the commanded Start-Time. │

│ │

│ S/W Constraints: This telecommand is not executed if the currently │

│ active mode is either CRP or NM. If this telecommand │

│ is received in CRP or NM then the OBS will report a │

│ TC error in TM with Reason = Bad_data │

│ │

│ Timing Constraints: None │

│ │

│ Observability: At execution time, each thruster command is recorded │

│ in the thruster demand buffer, which is downloaded in │

│ TM packet type 3.3 (and may be viewed in other packet │

│ types by using the memory dump facility). │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

+-----------------------------------------------------------------------+
| Operational Constraints :                                             |
|                                                                       |
| > Words 1, 6, 11, 16: The thruster selection is coded as follows:     |
| >                                                                     |
| > (X = don\'t care)                                                   |
| >                                                                     |
| > XXX016 : no thruster selected                                       |
| >                                                                     |
| > XXX116 : thruster 1 selected                                        |
| >                                                                     |
| > XXX216 : thruster 2 selected                                        |
| >                                                                     |
| > XXX316 : thruster 3 selected                                        |
| >                                                                     |
| > XXX416 : thruster 4 selected                                        |
| >                                                                     |
| > XXX516 : thruster 5 selected                                        |
| >                                                                     |
| > XXX616 : thruster 6 selected                                        |
| >                                                                     |
| > XXX716 : thruster 7 selected                                        |
| >                                                                     |
| > XXX816 : thruster 8 selected                                        |
| >                                                                     |
| > It is recommended that this telecommand is not used in any mode in  |
| > which thruster commands are generated autonomously by the control   |
| > laws. It is essential to perform detailed analysis on ground to     |
| > determine the effects of the thruster commands and their            |
| > interaction with autonomous attitude control before issuing this    |
| > telecommand.                                                        |
+-----------------------------------------------------------------------+
| > Note that the thruster-based modes are no longer valid modes in the |
| > Gyroless update to the OBS.                                         |
+-----------------------------------------------------------------------+
| > Ground must not issue a mode transition whilst this telecommand is  |
| > active.                                                             |
+-----------------------------------------------------------------------+
| > On mode transitions from RMW or NM into CRP, (eg, as requested by   |
| > the OBS when unable to maintain an SSU-based mode), or on the       |
| > transition from SBM to CRP, any pending or currently executing      |
| > thruster command (as initiated by receipt of this telecomand) will  |
| > be aborted.                                                         |
| >                                                                     |
| > Note that the mode transition from RMW to NM is conditional on no   |
| > thruster command in progress or programmed to execute (unless       |
| > overridden by a mode 7 entry flag), ie, any pending or currently    |
| > executing thruster command will not be aborted.                     |
+-----------------------------------------------------------------------+
| > It is [not]{.underline} possible to advance the thruster start time |
| > by updating the LOBT (ABACU108).                                    |
| >                                                                     |
| > All thruster on-times must have a maximum value of 2 seconds.       |
+-----------------------------------------------------------------------+
| > For correct response to the start time parameter when LOBT is in    |
| > the range xxxx F000 xxxx to xxxx 0000 xxxx, Patch 001 (See Appendix |
| > C) must be installed. To avoid multiple error reporting when check  |
| > F is failed Patch 001 (See Appendix C) must be installed. Note,     |
| > however, that Patch 001 is part of the OBS software version FM_2_3A |
| > in PROM. This patch is incorporated in the Gyroless update to the   |
| > procedure which executes this telecommand.                          |
+-----------------------------------------------------------------------+
| Units - on time : 0.244 msec / bit                                    |
|                                                                       |
| \- start time: 1 sec / bit                                            |
|                                                                       |
| \- repetition interval : 100 msec / bit                               |
|                                                                       |
| > To abort a currently executing ABACU201 block telecommand use       |
| > ABACU002 to write a value of 0000H to the address of                |
| > Thruster_Command_Block. In_Progress. That address is given          |
| > SH-BAe-MA-4454 \"Annex to Software User Manual\".                   |
+-----------------------------------------------------------------------+

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU202 │ Undefined Telecommand │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X5A216 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Command Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Report a TC error in TM with Reason = Bad_ID. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: None (apart from TM.AYTCERRH) │

│ │

│ Operational This telecommand is undefined and is not to │

│ Constraints: be used. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU203 │ Change SAS Bias │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X5C616 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Data Word 3 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 5 │ Data Word 4 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 6 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: If the data description word (TC Word 1) is not │

│ 000016, report a TC error in TM with Reason = Bad_Data│

│ and halt TC execution. │

│ │

│ S/W Processing: Update the current values of the Mode 2 parameters │

│ SAS1_Bias(a) and SAS1_Bias(ß) from Data Words 1, 2 and│

│ 3, 4 respectively. Both value have units of radians. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: The uplinked values of SAS1_Bias may be viewed in │

│ TM.AYSASCFV. │

│ │

│ Operational Data Words 1 and 2 (TC Words 2 and 3) must together │

│ Constraints: form a valid normalised floating point number; │

│ likewise Data Words 3 and 4. The value of the offsets│

│ should not lie outside the range ±0.05 radians │

│ (±2.9 degs). │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU204 │ Undefined Telecommand │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X5E416 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Report a TC error in TM with Reason = Bad_ID. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: None (apart from TM.AYTCERRH) │

│ │

│ Operational This telecommand is undefined and is not to │

│ Constraints: be used. │

│ │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU205 │ Roll Manoeuvre command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X60A16 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Data Word 3 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 5 │ Data Word 4 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 6 │ Data Word 5 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 7 │ Data Word 6 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 8 │ Data Word 7 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 9 │ Data Word 8 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 10 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ S/W Checks: Report a TC error in TM with Reason = Bad_data and │

│ halt TC execution if: │

│ │

│ · The data description word is not one of 4, 5, or 6 │

│ │

│ · The data description word is 5 and an attitude │

│ manoeuvre is already in progress. │

└──────────────────────────────────────────────────────────────────────────────┘

S/W Processing :

case word 1

= 0 Invalid data description word

= 1 Invalid data description word

= 2 Invalid data description word

= 3 Invalid data description word

= 4 Update the parameter Requested_Slew_Angle (a delta angle in units of
radians) using data words 1 & 2. The roll manoeuvre is not started until
reciept of a ABACU205 block telecommand with word 1 set to 5. Data words
3-8 are not used.

= 5 If an attitude manoeuvre is not already in progress, a roll
manoeuvre will be caused to commence using the current value of
Requested_Slew_Angle.

Data words 1 to 8 are not used.

= 6 Any currently executing roll manoeuvre will be aborted.

Data words 1 to 8 are not used.

S/W Constraints : None

Timing Constraints : None

Observability : Requested_Slew_Angle is not reported in TM. However,
while an attitude manoeuvre is in progress, the progress of the slew is
reported in TM.AKRSLEW (Current roll slew angle in CRP) or TM.AKRAO
(Current roll attitude offset in RMW or NM). These parameters are set to
zero at the end of the slew or if the slew is aborted.

The status of attitude manoeuvres (in progress or not) is reported in
TM.AYGLSTM.AKGLWORD.AKGLPROF.

Operational Constraints :

For word 1 = 4, Data Words 1 and 2 (TC Words 2 and 3) must together form
a valid normalised floating point number.

NB: Attitude manoeuvres will be autonomously aborted by the OBS on mode
transitions from RMW, CRP or NM into CRP or if the CRS angle becomes
invalid in CRP mode.

If an attitude manoeuvre is currently executing when a transition from
CRP to RMW is requested, the attitude manoeuvre will [not]{.underline}
be aborted and the mode transition will not take place.

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU206 │ Roll attitude telemetry command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X62416 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: Report a TC error in TM with Reason = Bad_Data and │

│ halt TC execution if the Data Description Word is 0 │

│ and Data Word 1 is not 0000 or FFFF. │

│ │

│ S/W Processing: case Word 1 │

│ │

│ = 0 : Invalid data description word │

│ │

│ = 1 Update Roll_TM_Offset from Data Words 1 and 2 │

│ (units of radians) │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: By TM.AKSSUROT │

│ │

│ Operational case Word 1 │

│ Constraints: │

│ = 1 Data Words 1 and 2 (TC Words 2 and 3) must │

│ together form a valid normalised floating point │

│ number which should not lie outside the range │

│ ±10411.0 rads (596523 degs). │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU207 │ Undefined Telecommand │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X64816 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Data Word 3 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 5 │ Data Word 4 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 6 │ Data Word 5 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 7 │ Data Word 6 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 8 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Report a TC error in TM with Reason = Bad_ID. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: None (apart from TM.AYTCERRH) │

│ │

│ Operational This telecommand is undefined and is not to │

│ Constraints: be used. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU208 │ Undefined Telecommand │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X68A16 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Data Word 3 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 5 │ Data Word 4 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 6 │ Data Word 5 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 7 │ Data Word 6 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 8 │ Data Word 7 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 9 │ Data Word 8 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 10 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Report a TC error in TM with Reason = Bad_ID. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: None (apart from TM.AYTCERRH) │

│ │

│ Operational This telecommand is undefined and is not to │

│ Constraints: be used. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU209 │ Modify hardware configuration parameter │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X6A216 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: Report a TC error in TM with Reason = Bad_data and │

│ halt TC execution if: │

│ │

│ . More than 1 IRU is set to active. │

│ │

│ · Bit 0 of the data word is 02 and both main (A) │

│ and redundant (B) functions of any sensor are set │

│ to active or if both main (A) and redundant (B) │

│ CAE functions are set to active (see S/W │

│ processing, below). │

│ │

│ │

│ S/W Processing: If Bit 0 of the data word is 12: │

│ │

│ The IRU functions are set to the IRU selection │

│ set by bits 1, 6, and 7 (subject to the above │

│ check) with other functions remaining unchanged. │

│ │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ If Bit 0 is 02: │

│ │

│ The data word is decoded as follows: │

│ │

│ Bit 1 1 =\> Auxiliary (C) IRU active │

│ Bits 2 .. 3: 002 =\> Wheel selection = 2, 3, 4 │

│ 012 =\> Wheel selection = 1, 3, 4 │

│ 102 =\> Wheel selection = 1, 2, 4 │

│ 112 =\> Wheel selection = 1, 2, 3 │

│ Bit 4: 0 =\> Redundant (B) CAE inactive │

│ 1 =\> Redundant (B) CAE active │

│ Bit 5: 0 =\> Main (A) CAE inactive │

│ 1 =\> Main (A) CAE active │

│ Bit 6: 1 =\> Redundant (B) IRU active │

│ Bit 7: 1 =\> Main (A) IRU active │

│ │

│ │

│ Bit 8: 0 =\> Redundant (B) FPSS inactive │

│ 1 =\> Redundant (B) FPSS active │

│ Bit 9: 0 =\> Main (A) FPSS inactive │

│ 1 =\> Main (A) FPSS active │

│ Bit 10: 0 =\> Redundant (B) SSU inactive │

│ 1 =\> Redundant (B) SSU active │

│ Bit 11: 0 =\> Main (A) SSU inactive │

│ 1 =\> Main (A) SSU active │

│ Bit 12: 0 =\> Wheel 4 (+YX) active │

│ 1 =\> Wheel 4 (+YX) inactive │

│ Bit 13: 0 =\> Wheel 3 (-ZX) active │

│ 1 =\> Wheel 3 (-ZX) inactive │

│ Bit 14: 0 =\> Wheel 2 (-YX) active │

│ 1 =\> Wheel 2 (-YX) inactive │

│ Bit 15: 0 =\> Wheel 1 (+ZX) active │

│ 1 =\> Wheel 1 (+ZX) inactive │

│ │

│ Note that the actual powering on and off of units is │

│ done independently of the ACU software and the purpose│

│ of this TC is to inform the software which units are │

│ active. Incorrect setting of units to active (i.e. │

│ when unit is not powered) may result in saturation of │

│ the MACS error buffer when the software tries to use │

│ the unit, and may lead to loss of attitude control. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: The hardware configuration word is checked once │

│ between successive format pulses by the task CHKCNF. │

│ Following the check, the configuration word is │

│ reported in telemetry as TM.AKHWCNF. │

│ │

│ Operational Note that the software does not check for │

│ Constraints: consistency between Bits 2 .. 3 and Bits 12 .. 15. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU210 │ RSL common functions command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X6C316 to X6DE16 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2+0 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ .. │ \..... │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2+n-1 │ Data Word n (1 ≤ n ≤ 28) │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2+n │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ S/W Checks: Report a TC error in TM with Reason = Bad_data and │

│ halt TC execution if: │

│ │

│ Data Description Word is not in the range 0..400 │

│ │

│ or Data Description Word = 0000 and n /=1 and n /=4 │

│ │

│ or Data Description Word = 0000 and (n = 1 or n = 4) │

│ and data word 1 = FFFF and the conditions for │

│ enabling RSL are not met (see below) │

│ │

│ or Data Description Word = 0000 and n = 4 and │

│ Delay_Time not in 0..4096 (ie, the value of data │

│ word 2 (Roll_Steering_Start_Time) is such that the │

│ difference between the start of the roll steering │

│ time derived from that value and the current value │

│ of LOBT is greater than 4096 seconds (+/- 1 sec)). │

│ │

│ or Data Description Word = 0000 and n = 4 and │

│ Data Word 4 (Roll_Steering_Address_Update) is in │

│ the range 0..399 │

│ │

│ or 1 ≤ Data Description Word ≤ 400 and n is odd │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ S/W Processing: case Data Description Word │

│ │

│ = 0 │

│ Data words 1..4 are defined as follows: │

│ 1 : Enable_Roll_Steering_Law │

│ 2 : Roll_Steering_Start_Time (1sec / bit) │

│ 3 : Roll_Steering_Update_Period (1sec / bit) │

│ 4 : Roll_Steering_Address_Update │

│ │

│ case n │

│ = 1 Set the flag Enable_Roll_Steering_Law │

│ according to the following logic: │

│ │

│ If data word 1 = FFFF then │

│ If (SSU mode = Search/Tracking or │

│ Search/Tracking Restricted or Mapping) │

│ and the control star is valid │

│ and the control star is eligible then │

│ Set Enable_Roll_Steering_Law TRUE │

│ Else │

│ Report a TC error in TM with Reason │

│ = Bad_data and halt TC execution │

│ End if │

│ Else │

│ Set Enable_Roll_Steering_Law FALSE │

│ End if │

│ │

│ = 4 Update Enable_Roll_Steering_Law in the same │

│ manner as in the previous case. Update the │

│ values of Roll_Steering_Start_Time (1sec/bit),│

│ Roll_Steering_Update_Period (1sec/bit) and │

│ Roll_Steering_Address_Update directly │

│ from Data Words 2, 3 and 4 respectively. │

│ Update Roll_Steering_Address to the │

│ value of Roll_Steering_Address_Update │

│ modulo 400. │

│ │

│ │

│ = 1..400 Let Offset = Data Description Word - 1 │

│ Table(Offset) = (Data Words 1 and 2) │

│ Table(Offset + 1) = (Data Words 3 and 4) │

│ \... │

│ Table(Offset + n-1) = (Data Words n-1 and n)│

│ │

│ where Table is the Roll Steering Law │

│ Table, and the index wraps around │

│ from 399 to 0 if necessary. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ S/W Constraints: The Roll Steering Law is performed with a period of │

│ Roll_Steering_Update_Period (in seconds). This period│

│ contains only the time period when Enable_Roll\_ │

│ Steering_Law is TRUE and Roll_Steering_Start_Time ≤ │

│ on board time. │

│ │

│ Timing Constraints: None │

│ │

│ Observability: Roll_Steering_Address and Roll_Steering_Update_Period │

│ may be observed in TM.AYRSLCFV. Other Roll Steering │

│ Law variables may be viewed using the memory dump │

│ facility. │

│ │

│ Operational If values are to be uplinked to the Roll Steering │

│ Constraints: Law Table, each successive pair of data words │

│ (1 and 2, 3 and 4 etc.) must together form a │

│ normalised floating point number, with units of │

│ radians, and is expected to lie within the range │

│ ±0.13 rads (±7.4 degs). │

│ │

│ · When the data description word is 0 and the number │

│ of data words is 4, then data word 4 must have a │

│ value between 000016 and 7FFF16. │

│ │

│ For correct response to the Roll_Steering_Start_Time parameter Patch
001 │

│ and Patch 004 (See Appendix C) must be installed. Note, however, that
these │

│ patches are part of the OBS software version FM_2_3A in PROM and are │

│ incorporated in the Gyroless update to the new procedure which
executes │

│ this telecommand │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU211 │ SSU command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X6E216 to X6EF16 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Command Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ .. │ \..... │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ n+1 │ Data Word n (0 ≤ n ≤ 6) │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ n+2 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

│ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: Report a TC error in TM with Reason = Bad_data and │

│ halt TC execution if: │

│ │

│ · SSU commanding, mapping or downloading is │

│ currently in progress except in the case of │

│ downloading in progress and download end is │

│ commanded. │

│ │

│ · SSU mapping or downloading is pending │

│ │

│ · Command Word is not in the range 0..8 │

│ │

│ S/W Processing: case Command Word │

│ │

│ = 0 Reset the SSU. There are no data words for this │

│ instance of the telecommand (i.e. n = 0). │

│ │

│ = 1 Send a CCD test command to the SSU. There are │

│ no data words for this instance of the │

│ telecommand. │

│ │

│ = 2 Send a memory test command to the SSU. There │

│ are no data words for this instance of the │

│ telecommand. │

│ │

│ = 3 Set the SSU mode to standby. There are no data │

│ words for this instance of the telecommand. │

│ │

│ = 4 Set the SSU mode to search/tracking mode. There │

│ are 5 data words: │

│ │

│ Data Word 1:y-Coordinate of search window centre │

│ Data Word 2:z-Coordinate of search window centre │

│ Data Word 3:Length of search window │

│ Data Word 4:Width of search window │

│ Data Word 5:Star magnitude threshold/Star │

│ release number │

│ │

│ S/W Processing: = 5 Set the SSU mode to search/tracking restricted │

│ (Continued) mode. There are 3 data words: │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ S/W Processing Data Word 1: y-Coordinate of search window centre│

│ (Continued) Data Word 2: z-Coordinate of search window centre│

│ Data Word 3: Star magnitude threshold/Star │

│ release number │

│ │

│ (Note that this telecommand is not expected to be│

│ used operationally, and must not be used if the │

│ SSU SEU monitor is enabled). │

│ │

│ = 6 Set the SSU mode to mapping mode. There is one │

│ data word: │

│ │

│ Data Word 1: Star magnitude threshold/Star │

│ release number │

│ = 7 Set the SSU mode to program uploading mode. │

│ There are 6 data words: │

│ │

│ Data Word 1: address of first word to be uploaded│

│ Data Word 2: first word to be uploaded │

│ Data Word 3: address of second word to be │

│ uploaded │

│ Data Word 4: second word to be uploaded │

│ Data Word 5: address of third word to be uploaded│

│ Data Word 6: third word to be uploaded │

│ │

│ = 8 Set the SSU mode to program downloading mode. │

│ There are 2 data words. If data word 2 is not │

│ 0000H then any download in progress is halted │

│ otherwise download data is acquired from the │

│ address given by data word 1. │

│ │

│ S/W Constraints: The SSU command is not sent immediately but is
instead│

│ stored in an SSU command block. A separate task, │

│ CMDSSU, reads command words from this block │

│ and issues them to the SSU. As part of the │

│ processing of this telecommand, CMDSSU is │

│ scheduled so that all words are issued in a │

│ \"window\" between successive broadcasts to the SSU. │

│ │

│ Timing Constraints: None │

│ │

│ Observability: The SSU mode is reflected in Bits 0..7 of TM.AKSSUMST.│

│ Mapping_Ended is reflected in Bit 11 of │

│ TM.AYSSUSCW.AKSSUPST. If SSU mapping or downloading │

│ has been commanded, the resultant data is placed │

│ in the appropriate buffer. The SSU mapping buffer │

│ may be viewed in TM packet types 3.2 and 3.4; the │

│ download buffer may be viewed by memory dump. │

│ │

│ Operational The format of data words to be sent to the SSU │

│ Constraints: is governed by RD.5. │

│ │

│ NB. Although the header for this TC implies that │

│ up to 13 data words are permissable - no instance │

│ of the command takes more than 6 data words. │

│ │

│ The SSU must not be commanded into Search/Track │

│ Restricted mode when the SSU SEU monitor is enabled, │

│ otherwise the monitor will detect an unexpected SSU │

│ mode and flag an SSU SEU. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU212 │ Undefined telecommand │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X70616 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Data Word 3 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 5 │ Data Word 4 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 6 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Report a TC error in TM with Reason = Bad_ID. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: None (apart from TM.AYTCERRH) │

│ │

│ Operational This telecommand is undefined and is not to │

│ Constraints: be used. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU213 │ SSU common functions command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X72416 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

└──────────────────────────────────────────────────────────────────────────────┘

[S/W Checks]{.underline} :

Report a TC error in TM with Reason = Bad_data and halt TC execution if:

Data Description Word = 0 or 16 and Data Word 1 is not in the range 1..5

Data Description Word not 0 or in the ranges 6..8 or 10..18

Data Description Word = 16 and data word 1 is in the range 1..5 and data
word 2 is 0FFFFH and the conditions for setting star eligibility true
are not met (see below)

Data Description Word = 17 and data word 1 is not in the range 0000H to
7FFFH.

[S/W Processing]{.underline} :

case Data Description Word

= 0 Update the value of Control_Star to the value of Data Word 1.

Data Word 2 is not used.

= 1..5 Invalid data description word

= 6 Update the flag Roll_Off_Pointing to True if Data Word 1 = FFFF16,
False otherwise. Data Word 2 is not used.

= 7 Update the value of Roll_Off_Pointing_Limit to the floating point
value given by Data Words 1 and 2 (radians).

= 8 If data word 1 is 0FFFFH then assert the flag Do_Star_Swap otherwise
clear it. Note that this will result in CRP mode being requested by the
OBS if there are no valid and eligible stars available for swapping.

Data Word 2 is not used.

= 9 Invalid data description word

= 10..14 Update the value of RSL_Offset(star) to the floating point
value given by data words 1 and 2 (radians), where star has the value 1
if the Data Description Word value is 10, 2 if 11, 3 if 12, 4 if 13 and
4 if 14.

= 15 Update the flag CRP_Requested (TM.AKMODEST.AKMDSCRP) to True if
Data Word 1 = FFFF16, False otherwise. Data Word 2 is not used.

= 16 Update one of the flags Star_Eligible(Star) according to the
following logic, where the Star number is given by data word 1 :

If data word 2 = 0FFFFH then

If (SSU Mode = Search/Tracking or

Search/Tracking Restricted or Mapping)

and star specified by data word 1 is valid Then

Star_Eligible(Star) will be set True and

RSL_Offset(Star) will be initialised

Else

Report a TC error in TM with Reason = Bad_data

End if

Else

Star_Eligible(Star) will be set False

End if

= 17 If data word 1 is in the range 0000H to 7FFFH then update the
current value of the SSU SEU staircase filter threshold (M7S_Threshold)
to the value given by data word 1.

Data Word 2 is not used.

= 18 The number of star swaps to date is reset to zero.

Data words 1 and 2 are not used.

[S/W Constraints]{.underline}: None

[Timing Constraints]{.underline}:None

[Observability]{.underline}:

\- Control_Star is reflected in Bits 13..15 of TM.AYSSUSCW.AKSSUPST.

\- Roll_Off_Pointing is reflected in Bit 13 of TM.AKACUST (note that the
S/W updates this, and may overwrite this value).

\- Roll_Off_Pointing_Limit may be viewed in TM.AKSSUROP.

\- The flag Do_Star_Swap is not reflected in TM, but the effect of
setting this flag True in NM or RMW will be that the value of the count
of star swaps (TM.AYGLSTM.AKNSWAPS) will increment if a valid and
eligible star is found.

\- RSL_Offsets are reported in TM.AYGLSTM.AKRSLOFS1..5.

\- The flag CRP_Requested is identical to TM.AKMODEST.AKMDSCRP.

\- The Star_Eligible flags are reflected in
TM.AYGLSTM.AKGLWORD.AKGLEL1..5.

\- The SSU SEU staircase filter threshold (M7S_Threshold) is reflected
in TM.AYGLSTM.AKSEUTHR.

\- The count of star swaps is reported in TM.AYGLSTM.AKNSWAPS.

[Operational Constraints]{.underline} :

If Data Description Word = 1 or 7 or 10..14, Data Words 1 and 2 must
together form a normalised floating point number with Data Word 1 the
most significant word.

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU214 │ FPSS common functions command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X74616 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Data Word 3 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 5 │ Data Word 4 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 6 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

└──────────────────────────────────────────────────────────────────────────────┘

[S/W Checks]{.underline} :

If Data Description Word is not in the range 0 .. 5, report a TC error
in TM with Reason = Bad_data and halt TC execution.

If the data description word is 6 or 7 and the angle specified by data
words 1 and 2 is greater than 2 degrees or an attitude manoeuvre is
already in progress then report a TC error in TM with Reason = Bad_data
and halt TC execution.

[S/W Processing]{.underline} :

case Data Description Word

= 0 Update the values of Up and Lp to the floating point values given by
Data Words 1 and 2 and Data Words 3 and 4 respectively.

= 1 Update the values of Uy and Ly to the floating point values given by
Data Words 1 and 2 and Data Words 3 and 4 respectively.

= 2 Update the values of Sp and Sy to the floating point values given by
Data Words 1 and 2 and Data Words 3 and 4 respectively.

= 3 Invalid data description word

= 4 Update the value of Xaxis_Att_Limit_Squared to the floating point
value given by Data Words 1 and 2 (in radians^2^). Data Words 3 and 4
are not used

= 5 Update the value of Xaxis_Off_Pointing_Flag to True if Data Word 1 =
FFFF16, False otherwise. Data Words 2..4 are not used.

S/W Processing (continued):

= 6 If the pitch angle specified by data words 1 and 2 is less than or
equal to 2 degrees and an attitude manoeuvre is not already in progress
then the value of Target_Pitch_Angle_Ref will be updated with the pitch
angle given by data words 1 and 2 (in units of radians) and a pitch
manoeuvre will be caused to commence.

Data words 3 & 4 are not used.

= 7 If the yaw angle specified by data words 1 and 2 is less than or
equal to 2 degrees and an attitude manoeuvre is not already in progress
then the value of Target_Yaw_Angle_Ref will be updated with the yaw
angle given by data words 1 and 2 (in units of radians) and a yaw
manoeuvre will be caused to commence.

Data words 3 & 4 are not used.

= 8 Any currently executing pitch or yaw manoeuvre will be aborted.

Data words 1 to 4 are not used.

[S/W Constraints]{.underline} : None

[Timing Constraints]{.underline} : None

[Observability]{.underline} :

Xaxis_Off_Pointing_Flag is reflected in Bit 12 of TM.AKACUST (note that
the S/W updates this, and may overwrite this value). The other items may
be viewed in TM.AYFSSCFV.

Target_Pitch_Angle_Ref and Target_Yaw_Angle_Ref are not reported in TM.
However, while a pitch or yaw manoeuvre is in progress, the progress of
the manoeuvre is reported in TM.AYFSSCFV.AKFSSPSR (FPSS Pitch angle
reference) or TM.AYFSSCFV.AKFSSYAR (FPSS Yaw angle reference).

The status of attitude manoeuvres (in progress or not) is reported in
TM.AYGLSTM.AKGLWORD.AKGLPROF.

[Operational Constraints]{.underline} :

If Data Description Word = 0, 1, 2, 4, 6 or 7, Data Words 1 and 2 must
together form a valid normalised floating point number.

If Data Description Word = 0..2, Data Words 3 and 4 must together form a
valid normalised floating point number.

NB: Attitude manoeuvres will be autonomously aborted by the OBS on mode
transitions from RMW, CRP or NM into CRP or if the CRS angle becomes
invalid in CRP mode.

If an attitude manoeuvre is currently executing when a transition from
CRP to RMW is requested, the attitude manoeuvre will [not]{.underline}
be aborted and the mode transition will not take place.

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU215 │ General mode command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X66416 to X67F16 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Mode Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Address Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data Word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ .. │ \..... │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2+n │ Data Word n (1 ≤ n ≤ 28) │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3+n │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: If Mode Word has a value outside the range 0..7, or │

│ if the address range given by Address Word .. Address │

│ Word + n - 1 does not lie completely within the │

│ memory range occupied by the infrequent variables of │

│ the mode specified by Mode Word, then report a TC │

│ error in TM with Reason = Bad_data and halt TC │

│ execution. │

│ │

│ S/W Processing: The mode word is the selection of the ACU software │

│ mode that will have its parameters updated by a │

│ successful execution of this block telecommand. │

│ │

│ Overwrite memory directly, copying Data Words │

│ 1..n to the memory locations given by Address │

│ Word..Address Word + n - 1. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: Regular telemetry or memory dump. │

│ │

│ Operational · It must be ensured that the data words used │

│ Constraints: to update a floating point value form a │

│ valid floating point word in MIL-STD-1750A format. │

│ │

│ · The address should be within high memory, i.e. the │

│ memory area \[8000..FFFF\] subject to the constraints │

│ of the S/W check. It is essential that the address │

│ does not cross the 7FFF/8000 boundary as this will │

│ negate the S/W check. │

│ │

│ The addresses of the mode infrequent variables are given in │

│ SH-BAe-MA-4454 \"Annex to Software User Manual\". │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU216 │ Undefined telecommand │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 0 │ Header Word = X76816 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 1 │ Data Description Word │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 2 │ Data word 1 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 3 │ Data word 2 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 4 │ Data word 3 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 5 │ Data word 4 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 6 │ Data word 5 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 7 │ Data word 6 │ │

│ ├──────────┼─────────────────────────────────┤ │

│ │ 8 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Checks: None │

│ │

│ S/W Processing: Report a TC error in TM with Reason = Bad_ID. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: None (apart from TM.AYTCERRH) │

│ │

│ Operational This telecommand is undefined and is not to │

│ Constraints: be used. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU217 │ WDE common functions command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 0 │ Header Word = X78A16 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 1 │ Data description word │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 2 │ Data word 1 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 3 │ Data word 2 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 4 │ Data word 3 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 5 │ Data word 4 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 6 │ Data word 5 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 7 │ Data word 6 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 8 │ Data word 7 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 9 │ Data word 8 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 10 │ Checksum │ │

│ └──────────┴─────────────────────────────────────────────┘ │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

S/W Checks:

TC error will be reported in TM with Reason = Bad_data and TC execution
will be halted if :

\- the data description word is 2 and the currently active mode is CRP

\- the data description word is 4 and the currently active mode is SBM

S/W Processing: Case Data description word

= 0 Update wheel speed reference (rads/s) for wheels 1, 2, 3, and 4 to
the values given in Data words 1 and 2, 3 and 4, 5 and 6, and 7 and 8
respectively.

= 1 Update the value of Max_Torque_Demand (the maximum deceleration
torque demand for wheel speed control purposes - in Nm) for wheels 1, 2,
3, and 4 to the values given in Data words 1 and 2, 3 and 4, 5 and 6,
and 7 and 8 respectively).

= 2 If the currently active mode is RMW or NM then the CRS drift
estimator function will be executed. Data words 1 to 8 are not used.

= 3 Update the current value of CRS_Drfit_Delta (radians) with the value
given by data words 1 & 2. Data words 3 to 8 are not used.

= 4 If the currently active mode is RMW, CRP or NM then the Roll
Momentum Vector (Hx) Monitoring function authorise flag (Authorise_Hx)
will be set according to the value of data word 1 - True if data word 1
is 0FFFFH, False otherwise. If the authorise flag is being set true then
the Hx range exceeded flag in TM.AKMODEST.AKMDSHXF will be cleared. Data
words 2 to 8 are not used.

S/W Constraints:None

Timing Constraints: None

Observability:

The wheel speed references may be viewed in TM.AYWDECFV.

The Max_Torque_Demand may be viewed in TM.AYWDECFV.

The effect of the CRS drift estimator function will be visible in the
updating of the time of last CRS drift estimate in TM.AYCRSDA.AKCRSDRT.

CRS_Drfit_Delta is reflected in TM.AYCRSDA.AKCRSDRD.

The Authorise_Hx flag is reflected in TM.AYGLSTM.AKGLWORD.AKGLHXFN

Operational Constraints:

For data description words 0 and 1, each data word pair (ie, words 1 &
2, 3 & 4, 5 & 6, 7 & 8) must correspond to the MIL-STD-1750A
floating-point format. For data description word 3, data words 1 & 2
must correspond to the MIL-STD-1750A floating-point format. For each
pair, the most significant word corresponds to bits 0..15 and the least
significant word corresponds to bits 16..31 of the 32-bit floating point
representation.

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU218 │ General ASW common functions command │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 0 │ Header Word = X7A416 to X7BF16 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 1 │ Common Function Selector │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 2 │ Address Word │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 2+0 │ Data word 1 to be written to Address+0 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ .. │ \..... │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 2+n-1 │ Data word n to be written to Address+n-1 │ │

│ │ │ (1 ≤ n ≤ 28) │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 3+n-1 │ Checksum Word │ │

│ └──────────┴─────────────────────────────────────────────┘ │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ S/W Checks: If Common Function Selector has a value outside the │

│ range 0..7, or if the address range given by Address │

│ Word .. Address Word + n - 1 does not lie completely │

│ within the memory range occupied by the infrequent │

│ variables of the common function specified by Common │

│ Function Selector, then report a TC error in TM with │

│ Reason = Bad_data and halt TC execution. │

│ │

│ S/W Processing: The Common Function Selector word selects the Common │

│ Function for parameter updating as follows: │

│ │

│ 0 : update FPSS Common Function variables │

│ 1 : update SSU Common Function variables │

│ 2 : update IRU Common Function variables │

│ 3 : update PROS Common Function variables │

│ 4 : update WDE Common Function variables │

│ 5 : update Roll Steering Law Common Function variables│

│ 6 : update Attitude Manoeuvre Common Function vars │

│ 7 : update Roll Momentum Vector Monitoring │

│ Common Function variables │

│ │

│ Overwrite memory directly, copying Data Words  │

│ 1..n to the memory locations given by Address  │

│ Word..Address Word + n - 1. │

│ │

│ S/W Constraints: None │

│ │

│ Timing Constraints: None │

│ │

│ Observability: Regular telemetry or memory dump. │

│ │

│ Operational · It must be ensured that the data words used to update │

│ Constraints: a floating point value form a valid floating point │

│ word in MIL-STD-1750A format. │

│ │

│ · The address should be within high memory, i.e. the │

│ memory area \[8000..FFFF\] subject to the constraints │

│ of the S/W check. It is essential that the address │

│ does not cross the 7FFF/8000 boundary as this will │

│ negate the S/W check. │

│ │

│ The addresses of the mode infrequent variables are given in │

│ SH-BAe-MA-4454 \"Annex to Software User Manual\". │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ID = ABACU219 │ Set PCPG Task Parameters commands │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ ┌──────────┬─────────────────────────────────────────────┐ │

│ │ Word │ Content │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 0 │ Header Word = X7C916 │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 1 │ T_Ramp (1 step / bit) │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 2 │ T_Hold (1 step / bit) │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 3 │ T_Zero (1 step / bit) │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 4 │ Delta_Theta mantissa (16 MS bits) (rads) │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 5 │ Delta_Theta mantissa (8 LS) and exponent │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 6 │ Delta_T (500 mS / bit) │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 7 │ N │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 8 │ Axis_Selector │ │

│ ├──────────┼─────────────────────────────────────────────┤ │

│ │ 9 │ Checksum │ │

│ └──────────┴─────────────────────────────────────────────┘ │

├──────────────────────────────────────────────────────────────────────────────┤

│ │

│ S/W Processing: The Axis_Selector encodes the axis chosen for the │

│ PCPG manoeuvre as follows :- │

│ 0 =\> termination command │

│ 1 =\> Roll axis selected │

│ 2 =\> Pitch axis selected │

│ 3 =\> Yaw axis selected │

│ 4 =\> Enable manoeuvre │

│ This command should be sent with an Axis_Selector │

│ value of 1, 2 , or 3 to set up the manoeuvre. When │

│ its parameters have been verified (by memory dump │

│ telemetry) it should be sent with an Axis_Selector │

│ value of 4 (the other parameter values are arbitrary │

│ in this case) to enable the manoeuvre which will then │

│ commence. The manoeuvre will autonomously terminate │

│ after N complete cycles or it may be terminated │

│ prematurely by sending the command with an │

│ Axis_Selector value of 0 (the other parameter values │

│ are arbitrary in this case) in which case the │

│ manouvre will terminate at the end of the next │

│ complete cycle after execution of the telecommand. │

│ The manoeuvre consists of a positive half-cycle │

│ followed by a negative half- cycle. The positive │

│ half-cycle consists of a ramp up of T_Ramp steps each │

│ of each Delta_Theta, a hold of T_Hold steps, with │

│ constant attitude, a ramp down of T_Ramp steps each of│

│ size Delta_Theta, and a hold at zero offset of T_Zero │

│ steps; the negative half-cycle is as the positive │

│ half-cycle but with a step size of -Delta_Theta (note │

│ that Delta_Theta may be given a positive or negative │

│ value so that the positive half-cycle may actually │

│ commence by ramping down rather than ramping up if │

│ required). The manoeuvre autonomously terminates │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ after N sets of positive cycles followed by negative │

│ cycles. The time taken for each step is set by the │

│ parameter Delta_T which provides the step time in │

│ units of 0.5 seconds per bit. │

│ │

│ S/W Checks: If Axis_Selector has a value outside the range 0.. 4 │

│ then report a TC error in TM with Reason = Bad_data │

│ and halt TC execution. │

│ │

│ S/W Constraints: The PCPG manoeuvre task only executes in Mode 7 (NM)
│

│ │

│ Timing Constraints: None │

│ │

│ Observability: Regular telemetry or memory dump. │

│ │

│ Operational The PCPG function must be allowed to terminate its │

│ Constraints: offsetting operations prior to any mode transition │

│ from NM to RMW mode. Care must be exercised in │

│ defining the PCPG function parameters to ensure that │

│ the step changes in attitude references are within │

│ the acceptable limits specified in the AOCS User │

│ Manual, SH-BAe-MA-2274, and that the time between │

│ steps is sufficient to allow adequate tracking of the │

│ profile by the control laws. The actual profile │

│ achieved by the attitude controllers will be │

│ observable via the FPSS and roll attitude telemetry │

│ (reconstituted as necessary). │

└──────────────────────────────────────────────────────────────────────────────┘

## 3.6 CONTINGENCY FUNCTIONS

### 3.6.1 General

> There are a number of errors that can occur in the OBS with different
> means of reporting these errors to ground. Errors can be classified
> generally into recoverable and non-recoverable errors, the distinction
> being that the OBS is not expected to continue normally after a
> non-recoverable error.

Table 3.6-1 gives an overview of all the identified errors together with
where the error is reported.

Each of these errors is individually described in section 3.6.2.

The errors detailed in section 3.6 are restricted to those implemented
in the current version of the design, AD.1.

### 3.6.2 OBS Errors

> Each of the OBS errors is described below as follows:
>
> Mnemonic The error mnemonic. This is followed by a short descriptive
> name.
>
> Cause The cause of the error within the OBS.
>
> Observed by: How this recoverable error can be observed by ground
> excluding the TM monitor specific for all recoverable errors.
>
> S/W corrective actions: The OBS actions that are taken in response to
> the occurrence of this error.
>
> Ground recovery actions: The suggested ground actions that should be
> taken to recover from the error.
>
> Table 3.6-2 gives a listing of all the errors that are reported in
> TM.AYERRRPT.

┌──────────────┬────┬───────────────────┬──────────────────────────────────────┐

│ Mnemonic │ ty1│ Reported in │ Description │

├──────────────┼────┼───────────────────┼──────────────────────────────────────┤

│ ERROVRN1 │ R │ TM.AYERRRPT │ 0-10ms overrun by Synch. Scheduler │

│ ERRINT00 │ R │ TM.AYERRRPT │ Interrupt 0 asserted │

│ ERRINT14 │ R │ TM.AYERRRPT │ Interrupt 14 asserted │

│ ERRINT15 │ R │ TM.AYERRRPT │ Interrupt 15 asserted │

│ ERRTCTIM │ R │ TM.AYERRRPT │ TC timeout between received words │

│ ERRTCHEX │ R │ TM.AYERRRPT │ TC Header expected error │

│ ERRTCOVW │ R │ TM.AYERRRPT │ TC overwritten │

│ ERRTMUNF │ R │ TM.AYERRRPT │ TM underflow error │

│ ERRTMOVF │ R │ TM.AYERRRPT │ TM overflow error │

│ ERRTMINC │ R │ TM.AYERRRPT │ TM incomplete error │

│ ERRHWONE │ R │ TM.AYERRRPT │ Majority decision required │

│ ERRHWALL │ N │ TM.AYERRRPT │ Majority decision not valid │

│ ERRTC101 │ R │ TM.AYERRRPT │ ABACU101 failed │

│ ERRTC201 │ R │ TM.AYERRRPT │ ABACU201 failed │

│ ERRSSUAB │ R │ TM.AYERRRPT │ SSU commanding aborted │

│ ERRTC216 │ R │ TM.AYERRRPT │ ABACU216 (CBH commanding) failed │

│ ERRRAMW │ R │ TM.AYERRRPT │ Warning RAM check error │

│ ERRMODTR │ R │ TM.AYERRRPT │ Mode transition rejected │

│ ERRSLEW │ R │ TM.AYERRRPT │ Slew calculation error │

│ ERRFPSS │ R │ TM.AYERRRPT │ FPSS processing error │

│ ERRSSUBF │ R │ TM.AYERRRPT │ SSU Buffer overflow │

│ ERRWHLSP │ R │ TM.AYERRRPT │ Wheel torque demand error │

│ ERRDLTIM │ R │ TM.AYERRRPT │ Delay time too large │

│ ERRONTIM │ R │ TM.AYERRRPT │ On time too large │

│ ERRRSLDA │ R │ TM.AYERRRPT │ RSL data error │

│ ERROVRN2 │ N │ TM.AYERRRPT │ 10-20ms overrun by Synch. Scheduler │

│ ERRBCKST │ N │ TM.AYERRRPT │ Background Scheduler stalled │

│ ERRRAMF │ N │ TM.AYERRRPT │ Fatal RAM check error │

│ ERRTCDST │ R │ TM.AYTCERRH │ Illegal TC destination │

│ ERRTCLEN │ R │ TM.AYTCERRH │ Illegal TC length │

│ ERRTCDAT │ R │ TM.AYTCERRH │ Illegal TC data │

│ ERRTCID │ R │ TM.AYTCERRH │ Illegal TC identifier │

│ ERRFPON │ R │ PHR │ Floating point overflow │

│ ERRINON │ R │ PHR │ Fixed point overflow │

│ ERRFPUN │ R │ PHR │ Floating point underflow │

│ EVTTIMRA │ R │ PHR │ Interrupt 7 asserted │

│ EVTTIMRB │ R │ PHR │ Interrupt 9 asserted │

│ ERRIROM │ N │ NPU │ PROM failure on Initialisation check │

│ ERRIRAM │ N │ NPU │ RAM failure on Initialisation check │

│ ERRINT01 │ R │ TM.AYFTRPT │ Machine error interrupt (1) asserted │

│ ERRMPAR │ R │ TM.AYFTERR │ Memory parity failure │

│ ERRWDOG │ R │ TM.AYFTERR │ Watchdog timeout failure │

│ ERRMACS │ R │ TM.AYMACERR │ MACS bus error on autonomous │

│ │ │ │ transaction │

└──────────────┴────┴───────────────────┴──────────────────────────────────────┘

1\) ty defines whether the error is recoverable (R) or non-recoverable
(N).

[Table 3.6-1: Overview of OBS errors]{.underline}

┌──────────────┬──────┬────────────────────────────────────────────────────────┐

│ Mnemonic │ Code │ Description │

├──────────────┼──────┼────────────────────────────────────────────────────────┤

│ ERROVRN1 │ 0400 │ 0-10ms overrun by Synch. Scheduler │

│ ERRINT00 │ 0800 │ Interrupt 0 asserted │

│ ERRINT14 │ 0801 │ Interrupt 14 asserted │

│ ERRINT15 │ 0802 │ Interrupt 15 asserted │

│ ERRTCTIM │ 0C00 │ TC timeout between received words │

│ ERRTCHEX │ 1000 │ TC Header expected error │

│ ERRTCOVW │ 1400 │ TC overwritten │

│ ERRTMUNF │ 1801 │ TM underflow error │

│ ERRTMOVF │ 1802 │ TM overflow error │

│ ERRTMINC │ 1C00 │ TM incomplete error │

│ ERRHWONE │ 2400 │ Majority decision required │

│ ERRHWALL │ A400 │ Majority decision not valid │

│ ERRTC101 │ 2800 │ ABACU101 failed │

│ ERRTC201 │ 2801 │ ABACU201 failed │

│ ERRSSUAB │ 2802 │ SSU commanding aborted │

│ ERRTC216 │ 2803 │ ABACU216 (CBH commanding) failed │

│ ERRRAMW │ 3400 │ Warning RAM check error │

│ ERRMODTR │ 3800 │ Mode transition rejected │

│ ERRSLEW │ 3C00 │ Slew calculation error │

│ ERRFPSS │ 4000 │ FPSS processing error │

│ ERRSSUBF │ 4400 │ SSU Buffer overflow │

│ ERRWHLSP │ 4802 │ Wheel torque demand error │

│ ERRDLTIM │ 4C02 │ Delay time too large │

│ ERRONTIM │ 4C03 │ On time too large │

│ ERRRSLDA │ 5000 │ RSL data error │

│ ERROVRN2 │ 8400 │ 10-20ms overrun by Synch. Scheduler │

│ ERRBCKST │ A000 │ Background Scheduler stalled │

│ ERRRAMF │ B400 │ Fatal RAM check error │

└──────────────┴──────┴────────────────────────────────────────────────────────┘

[Notes]{.underline}

> 1\) Code is the value of the error report word in AYERRRPT and is
> given in hexadecimal, see also sub section 3.6.3.1.

[Table 3.6-2: Errors reported in AYERRRPT]{.underline}

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERROVRN1 │ 0-10ms overrun by Synch. Scheduler │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause An overrun of a 10ms cycle execution occurs. (The RTCI│

│ is asserted while the Synchronous scheduler is still │

│ executing). │

│ │

│ Observed by: TM.AYERRRPT with Code = 040016. │

│ │

│ S/W corrective None. The overrun is noted and reported. │

│ actions: The on-going Synchronous scheduling actions are │

│ continued with the Synchronous scheduler for the │

│ current cycle being started on completion of the │

│ on-going Synchronous scheduler. │

│ │

│ Ground recovery This may indicate an overload of the S/W │

│ actions: due to │

│ │

│ . too many telecommands being sent within │

│ one (short) time-frame │

│ │

│ . new uplinked software cannot meet performance │

│ constraints │

│ │

│ . H/W fault in Interrupt 10 line │

│ │

│ . TM interrupts (Interrupt 2) overloading │

│ S/W at a critical point (this is a theoretical│

│ but most unlikely cause of this error report) │

│ │

│ It is not expected that this error would ever be │

│ raised under normal operating conditions with the │

│ software as delivered. │

│ │

│ An overrun of greater than 10ms is recorded as the │

│ non-recoverable error ERROVRN2. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRINT00 │ Interrupt 0 asserted │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Interrupt 0 asserted │

│ │

│ Observed by TM.AYERRRPT with Code = 080016. │

│ │

│ S/W corrective Return from interrupt with no action (except to │

│ actions: re-enable interrupts and report error). │

│ │

│ Whilst the interrupt handling software is re-entrant, │

│ it is not possible to guarantee that the rapid │

│ succession of interrupt 0 assertions will not cause a │

│ fatal error to the software. (\'Rapid\' is when the 2nd │

│ assertion occurs before the software has had time to │

│ react to the 1st assertion). │

│ │

│ Ground recovery This indicates a H/W problem in the ACU since the ACU
│

│ actions: design is such that Interrupt 0 will never normally be│

│ asserted. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRINT14 │ Interrupt 14 asserted │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Interrupt 14 asserted indicating MACS bus transaction │

│ complete, while masked by the OBS. The occurrence of │

│ this error indicates a failure in the masking of │

│ interrupts. │

│ │

│ Observed by: TM.AYERRRPT with Code = 080116. │

│ │

│ S/W corrective Return from interrupt with no action (except to │

│ actions: re-enable interrupts and report error) │

│ │

│ Ground recovery This indicates a hardware problem or │

│ actions: interrupt mask corruption. Recovery from this may be │

│ possible by a power-on reset of the ACU, but is more │

│ likely to require substitution of the prime ACU by the│

│ redundant ACU. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRINT15 │ Interrupt 15 asserted │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Interrupt 15 asserted while expected to be masked by │

│ the OBS. The occurrence of this error indicates that │

│ both a hardware fault has occurred in the interrupt 15│

│ line [and]{.underline} the masking of interrupt 15 has failed. │

│ │

│ Observed by: TM.AYERRRPT with Code = 080216. │

│ │

│ S/W corrective Return from interrupt with no action │

│ actions: (except to re-enable interrupts and report error). │

│ │

│ Ground recovery This indicates a hardware problem or │

│ actions: interrupt mask corruption. Recovery from this may be │

│ possible by a power on reset of the ACU, but is more │

│ likely to require substitution of the prime ACU with │

│ the redundant ACU. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTCTIM │ TC timeout between received words │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Greater than one second elapsed between a telecommand │

│ word and the expected next telecommand word. │

│ │

│ Observed by: TM.AYERRRPT with Code = 0C0016. │

│ │

│ S/W corrective The telecommand interface is set to expect │

│ actions: a Header word as the next telecommand word. All │

│ received words (of the partially received telecommand)│

│ are discarded. │

│ │

│ Ground recovery Check that the Block Length of the │

│ actions: discarded telecommand is consistent with the number of│

│ words sent to the ACU. This error will occur if too │

│ few words are sent (the underflow condition). │

│ │

│ Ensure that the time between words being sent to the │

│ ACU for a single telecommand does not exceed 1 second.│

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTCHEX │ TC Header expected error │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ Cause A Data word is received by the telecommand interface │

│ when a Header word is expected. │

│ │

│ Observed by: TM.AYERRRPT with Code = 100016. │

│ │

│ S/W corrective None apart from reporting error. This error │

│ actions : will be repeated on every occurrence of Interrupt 12 │

│ until a Header word is sent (via Interrupt 11). │

│ │

│ Ground recovery Check that the Block Length of the previous │

│ actions: telecommand is consistent with the number of words │

│ being sent to the ACU. This error will occur if too │

│ many words are sent (the overflow condition). │

│ │

│ It is necessary to send the telecommand again (or a │

│ new telecommand) starting with the Header word, │

│ otherwise the telecommand interface in the OBS remains│

│ inoperative. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTCOVW │ TC overwritten │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Case A complete telecommand is received before that OBS has│

│ been able to execute the previous telecommand │

│ │

│ Observed by: TM.AYERRRPT with Code = 140016. │

│ │

│ S/W corrective The previous telecommand is overwritten │

│ actions: (and therefore lost). │

│ │

│ Ground recovery Re-send the overwritten telecommand. │

│ actions: │

│ │

│ Ensure that the rate of telecommand being sent to the │

│ AOCS is not greater than rate of telecommand execution│

│ - defined by the periods of the tasks PRCOSTC and │

│ PRCASWTC. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTMUNF │ TM underflow │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Format pulse (Interrupt 13) asserted before all 556 │

│ words of the previous TM packet have been acquired │

│ (Interrupt 2). │

│ │

│ Observed by: TM.AYERRRPT with Code = 180116. │

│ │

│ S/W corrective Abandon the previous TM packet transmission │

│ actions: and start transmission of the new TM packet │

│ (synchronised to the Format Pulse). │

│ │

│ Ground recovery Outside the scope of this document. (Most │

│ actions: likely a problem with the OBDH). │

│ │

│ Note that it is expected that this error may occur │

│ once upon initialisation of the S/W into Active Mode │

│ following the first BCP1 pulse received by the active │

│ S/W. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTMOVF │ TM overflow │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause More than 556 TM word acquisition requests (interrupt │

│ 2) made between Format Pulses. │

│ │

│ Observed by: TM.AYERRRPT with Code = 180216. │

│ │

│ S/W corrective The OBS transmits as many words as │

│ actions: requested by interrupt 2. After 556 such requests the │

│ content of the data word is undefined. │

│ │

│ Ground recovery Outside the scope of this document. (Most │

│ actions: likely a problem with the OBDH). │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTMINC │ TM incomplete error │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Less than 14s has occurred between successive Format │

│ Pulses with the result that the TM packet is not │

│ completely filled. │

│ │

│ Observed by: TM.AYERRRPT with Code = 1C0016. │

│ │

│ S/W corrective None. The TM packet is transmitted in its │

│ actions: incomplete state. Note that certain TM entries will │

│ always be included, see §3.4.3. │

│ │

│ Ground recovery Outside the scope of this document. (Most │

│ actions: likely a problem with the OBDH). │

│ │

│ Note that it is expected that this error may occur │

│ once upon initialisation of the S/W into Active Mode │

│ following the first BCP1 pulse received by the active │

│ S/W. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRHWONE │ Majority decision required │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Only 2 of the three copies of the H/W Config word │

│ agree. │

│ │

│ Observed by: TM.AYERRRPT with Code = 240116. │

│ │

│ S/W corrective The three copies of the H/W Config word are │

│ actions: set to the majority value. │

│ │

│ Ground recovery It is extremely unlikely that this error │

│ actions: can occur without the actions of ground, e.g. in │

│ overwriting the 3 copies or inhibiting the memory │

│ parity check. │

│ │

│ It is necessary to check the H/W Config word as used │

│ by the OBS, see TM.AKHWCNF, and issue the ABACU209 │

│ telecommand if it is not as desired. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRHWALL │ Majority decision not valid │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Each of the three copies of the H/W Config word has a │

│ different value. │

│ │

│ Observed by: TM.AYERRRPT with Code = A40016. │

│ │

│ NPU Cleared. │

│ │

│ S/W corrective The H/W configuration word is set to the default │

│ actions: power-up state (all units inactive). The three copies │

│ of the H/W Config word are set to this default H/W │

│ configuration. │

│ │

│ Ground recovery Issue the ABACU209 telecommand with the │

│ actions: desired H/W configuration. │

│ │

│ It is extremely unlikely that this error can occur │

│ without the actions of ground, e.g. in overwriting │

│ the 3 copies or inhibiting the memory parity check. │

│ │

│ If this error does occur, as the default state for the│

│ h/w configuration word is all units off, attitude │

│ control (if functioning) would be lost. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTC101 │ ABACU101 failed │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The commanded MACS transaction has failed after the │

│ commanded number of retries. │

│ │

│ Observed by: TM.AYERRRPT with Code = 280016. │

│ │

│ S/W corrective None │

│ actions: │

│ │

│ Ground recovery The reason for this error is due to one of │

│ actions: │

│ 1. Illegal MACS bus communication commanded, e.g. │

│ non-existent destination address, │

│ │

│ 2. MACS bus head of the destination address │

│ not initialised │

│ │

│ 3. Failing MACS bus slave unit │

│ │

│ 4. Single-Event Upset in MACS bus controller or │

│ bus │

│ │

│ 5. Failing MACS bus Controller (on the ACU) │

│ │

│ The recovery actions for each of the above are │

│ │

│ 1. Check the ABACU101 telecommand and correct as │

│ necessary, │

│ │

│ 2. Issue the ABACU101 telecommand with an RC │

│ transaction to the destination address with a │

│ sub-address of 1. │

│ │

│ 3. Outside the scope of this document, but would be │

│ likely to require substitution of the failing │

│ slave by its redundant item. │

│ │

│ 4. Re-issue the ABACU101 telecommand with at least 2 │

│ retries │

│ │

│ 5. Outside the scope of this document, but would be │

│ likely to require substitution of the failing ACU │

│ by its redundant item. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTC201 │ ABACU201 failed │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause A thruster command initiated by ABACU201 has failed │

│ due to a MACS bus error or to both CAE units being │

│ inactive. │

│ │

│ Observed by: TM.AYERRRPT with Code = 280116 │

│ │

│ TM.AYMACERR (unless due to both CAE units being │

│ inactive) │

│ │

│ S/W corrective Any remaining thruster commands in the │

│ actions: ABACU201 sequence are aborted. │

│ │

│ Ground recovery Check that the CAE units are not both │

│ actions: inactive. Re-issue ABACU201 if necessary. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRSSUAB │ SSU commanding aborted │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause An SSU command initiated by ABACU211 or autonomously │

│ by RMW control laws has failed due to a MACS bus error│

│ or to both SSU\'s being inactive. │

│ │

│ Observed by: TM.AYERRRPT with Code = 280216 │

│ │

│ TM.AYMACERR (unless due to both SSU\'s being inactive) │

│ │

│ S/W corrective Any remaining commands in the SSU command │

│ actions: block are aborted. │

│ │

│ Ground recovery Check that the SSU\'s are not both inactive. │

│ actions: Issue ABACU211 if necessary. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTC216 │ ABACU216 (CBH commanding) failed │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause A Cat-bed heater command initiated by ABACU216 has │

│ failed due to a MACS bus error or to both CAE units │

│ inactive. │

│ │

│ Observed by: TM.AYERRRPT with Code = 280316 │

│ │

│ TM.AYMACERR (unless due to both CAE units being │

│ inactive) │

│ │

│ S/W corrective None apart from reporting the error. │

│ actions: │

│ │

│ Ground recovery Check that the CAE units are not both │

│ actions: inactive. Re-issue ABACU216 if necessary. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRRAMW │ Warning RAM check error │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The first check in the cyclic RAM check fails. │

│ │

│ The cyclic RAM check is performed in a non- │

│ destructive manner on the complete (64K) RAM every 24 │

│ hours. │

│ │

│ Observed by: TM.AYERRRPT with Code = 340016. │

│ │

│ S/W corrective A second check on the same RAM location is │

│ actions: performed. If this second check fails then the │

│ non-recoverable error ERRRAMF is reported (instead of │

│ ERRRAMW). │

│ │

│ Ground recovery Outside the scope of this document, but may require │

│ actions: the substitution of the ACU with the redundant ACU. │

│ This error could be caused by the effect of an SEU on │

│ the RAM location being checked at the time of the │

│ check, which actually maintains parity. However, such│

│ an event is highly unlikely. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRMODTR │ Mode transition rejected │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause A ground-commanded transition has been rejected by the│

│ autonomous checks. │

│ │

│ Observed by: TM.AYERRRPT with Code = 38nm16, where n is the │

│ previous mode and m is the commanded mode. │

│ │

│ S/W corrective The software remains in the previous mode. │

│ actions: │

│ │

│ Ground recovery . Check that the commanded transition is │

│ actions: legal. │

│ │

│ . A legal transition may be rejected by one of the │

│ autonomous check functions, e.g. a transition into │

│ NM from RMW is rejected if no guide star is │

│ available. Re-issue the mode transition command │

│ when conditions are suitable or issue the │

│ appropriate mode transition command. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRSLEW │ Slew calculation error │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause A slew parameter is found to be out of bounds while │

│ performing slew parameter calculations for the │

│ initiation of a slew manoeuvre in response to │

│ telecommand ABACU205 with Data Description Word = 3. │

│ │

│ Observed by: TM.AYERRRPT with Code = 3C0m16. The significance of │

│ the least significant nibble (Bits C .. F) is as │

│ follows: │

│ │

│ Bit C asserted: Angle error │

│ Bit D asserted: Rate magnitude error │

│ Bit E asserted: Acceleration error │

│ Bit F asserted: Rate sign error │

│ │

│ Note that two or more error conditions may be │

│ indicated in the same report. │

│ │

│ S/W corrective In case of a rate or acceleration magnitude error, │

│ actions: the software continues processing with default.values.│

│ In the case of an angle error, rate sign error, or │

│ acceleration sign-error, the slew manoeuvre is not │

│ executed. │

│ │

│ Ground recovery Check uplinked RMW slew parameter values. │

│ actions: │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRFPSS │ FPSS processing error │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause An error condition occurs during calculation of pitch │

│ and yaw angle errors from FPSS data. │

│ │

│ Observed by: TM.AYERRRPT with Code = 40nm16. The significance of │

│ the least significant byte (Bits 8 .. 15) is as │

│ follows: │

│ │

│ Bits 8..9: Always clear │

│ Bit A asserted: Sun_present_y not set │

│ Bit B asserted: Sun_present_p not set │

│ Bit C asserted: Bad yaw input (sine and cosine │

│ both zero) │

│ Bit D asserted: Bad pitch input (sine and cosine │

│ both zero) │

│ Bit E asserted: Yaw amplitude out of bounds │

│ Bit F asserted: Pitch amplitude out of bounds │

│ │

│ Note that two or more error conditions may be │

│ indicated in the same report. │

│ │

│ S/W corrective Continue processing with default values. │

│ actions: │

│ │

│ Ground recovery May indicate a problem with the FPSS, which may │

│ actions: require a switch to the redundant FPSS. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRSSUBF │ SSU Buffer overflow │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The SSU fills the mapping buffer and fails to leave │

│ mapping mode. │

│ │

│ Observed by: TM.AYERRRPT with Code = 440016 │

│ │

│ S/W corrective SSU mapping is aborted. │

│ actions: │

│ │

│ Ground recovery May indicate a problem with the SSU which may require
│

│ actions: a switch to the redundant SSU, or may simply be due to│

│ an extremely dense star field or an empty star field │

│ (both unlikely, but latter might be due to the star │

│ magnitude threshold being set for bright stars, with │

│ no stars above this threshold being present in the │

│ SSU field of view). │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRWHLSP │ Wheel torque demand error │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Formatting of wheel commands generated by control │

│ laws results in a wheel torque larger than the maximum│

│ value that can be commanded to the wheels. │

│ │

│ Observed by: TM.AYERRRPT with Code = 480216 │

│ │

│ S/W corrective The wheel torque is replaced by the maximum │

│ actions: commandable value (with the sign preserved). │

│ │

│ Ground recovery May indicate an attitude control instability │

│ actions: occurring, but note that this error is to be expected │

│ under certain transient conditions in RMW mode and │

│ NM operations. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRDLTIM │ Delay time too large │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Formatting of thruster commands generated by control │

│ laws results in a delay time larger than the maximum │

│ value that can be commanded to the thrusters. │

│ │

│ Observed by: TM.AYERRRPT with Code = 4C0216 │

│ │

│ S/W corrective The delay time is replaced by the maximum │

│ actions: commandable value. │

│ │

│ Ground recovery Due to the design of the PWM software function, this │

│ actions: error should never occur, hence if it does occur, it │

│ implies an anomalous software operation, which may │

│ require substitution of the ACU with the redundant │

│ unit. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRONTIM │ On Time too large │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Formatting of thruster commands generated by control │

│ laws results in an on-time larger than the maximum │

│ value that can be commanded to the thrusters. │

│ │

│ Observed by: TM.AYERRRPT with Code = 4C0316 │

│ │

│ S/W corrective The on-time is replaced by the maximum │

│ actions: commandable value. │

│ │

│ Ground recovery Due to the design of the PWM software function, this │

│ actions: error should never occur, hence if it does occur, it │

│ implies an anomalous software operation, which may │

│ require substitution of the ACU with the redundant │

│ unit. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRRSLDA │ RSL data error │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Reported by ABACU210 when the telecommanded value of │

│ Start_Time or RSL_Data_Address lie outside the allowed│

│ range. │

│ │

│ Observed by: TM.AYERRRPT with Code = 5000 │

│ │

│ S/W corrective The error is reported and further processing of the │

│ actions: telecommanded data is abandoned. │

│ │

│ Ground recovery Re-send the telecommand with valid data. │

│ actions: │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERROVRN2 │ 10-20ms overrun by Synch. Scheduler │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The same Synchronous scheduler is running for 2 │

│ successive RTCIs. │

│ │

│ Observed by: TM.AYERRRPT with Code = 840016. │

│ │

│ NPU cleared │

│ │

│ S/W corrective None │

│ actions: │

│ │

│ Ground recovery It is not expected that this error would ever be │

│ actions: raised under normal operating conditions with the │

│ software as delivered. See also error code ERROVRN1. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRBCKST │ Background Scheduler stalled │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The Background scheduler has not completed between │

│ two executions of the DETSTBCK synchronous task. │

│ │

│ Observed by: TM.AYERRRPT with Code = A00016. │

│ │

│ NPU cleared │

│ │

│ S/W corrective None. │

│ actions: │

│ │

│ Ground recovery This may occur if the period of the │

│ actions: DETSTBCK task is too low, i.e. it is not possible │

│ for the Background scheduler to complete within the │

│ period of the DETSTBCK task. In such a case, issue │

│ the ABACU102 telecommand to change the period of the │

│ DETSTBCK task. │

│ │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRRAMF │ Fatal RAM check error │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The second check in the cyclic RAM check fails. │

│ │

│ The cyclic RAM check is performed in a non-destructive│

│ manner on the complete (64K) RAM every 24 hours. │

│ │

│ Observed by: TM.AYERRRPT with Code = B40016. │

│ │

│ PHR with entry type = 5 │

│ │

│ NPU cleared │

│ │

│ S/W corrective None. │

│ actions: │

│ │

│ Ground recovery It is likely that the cause of this error is a │

│ actions: hardware failure in the ACU which may require a switch│

│ to the redundant ACU. If the RAM failure occurs in a │

│ location which is not used by the ACU S/W then it is │

│ feasible to continue operations with the current ACU. │

│ │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTCDST │ Illegal TC destination │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The Destination Address in the TC Header word is not │

│ equal to 000116 │

│ │

│ Observed by: TM.AYTCERRH with Reason = 01002 │

│ │

│ S/W corrective TC Header word is discarded. Any succeeding │

│ actions: Data words will be trapped by the ERRTCHEX error. │

│ │

│ Ground recovery. . Look for errors in the OBDH relating to routing of
│

│ actions: telecommands │

│ │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTCLEN │ Illegal TC length │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause 1. the Block Length in the TC Header word = 0 │

│ │

│ 2. the receipt of the expected number of TC │

│ data words is interrupted by a TC Header │

│ word │

│ │

│ Observed by: TM.AYTCERRH with Reason = 00012 │

│ │

│ S/W corrective 1. TC Header word is discarded. Any succeeding │

│ actions: Data words will be trapped by the ERRTCHEX error. │

│ │

│ 2. The received data words are discarded and the │

│ received Header word is used to start TC receipt. │

│ │

│ Ground recovery · Re-send the TC with the correct Block Length (1). │

│ actions: │

│ · Re-send the TC with the correct number of │

│ Data words and Checksum Word (2). │

│ │

│ · Look for errors in the OBDH relating to handling │

│ of telecommand words. │

└──────────────────────────────────────────────────────────────────────────────┘

+---------------+------------------------------------------------------+
| > ERRTCDAT    | Illegal TC data                                      |
+---------------+------------------------------------------------------+
| > Cause       | 1\. The calculated checksum does not agree with the  |
|               | value included in the Checksum word.                 |
|               |                                                      |
|               | 2\. ABACU101 Words 1, 2, 3, or 5 do not meet the     |
|               | constraints.                                         |
|               |                                                      |
|               | 3\. ABACU101 commanded MACS bus transaction fails.   |
|               | (ERRTC101 is also reported).                         |
|               |                                                      |
|               | 4\. ABACU102 Word 1 does not meet the constraint.    |
|               |                                                      |
|               | 5\. ABACU103 Word 1 does not meet the constraint.    |
|               |                                                      |
|               | 6\. ABACU104 Word 1 does not meet the constraint.    |
|               |                                                      |
|               | 7\. ABACU003 Word 1 does not meet the constraint.    |
|               |                                                      |
|               | 8\. Any of the s/w checks fail for the following     |
|               | telecommands:                                        |
|               |                                                      |
|               | ABACU201, ABACU203, ABACU205, ABACU206, ABACU209,    |
|               | ABACU210, ABACU211, ABACU213, ABACU214, ABACU215,    |
|               | ABACU217, ABACU218, ABACU219                         |
+---------------+------------------------------------------------------+
| > Observed    | TM.AYTCERRH with Reason = 10002                      |
| > by:         |                                                      |
+---------------+------------------------------------------------------+
| > S/W         | All the TC data is discarded. The OBS expects the    |
| > corrective  | next TC word to be a Header word.                    |
| > actions:    |                                                      |
+---------------+------------------------------------------------------+
| > Ground      | Re-send the TC with the correct Checksum word (1).   |
| > recovery    |                                                      |
| > actions :   | Resend the TC with the valid Data words (2..8).      |
|               |                                                      |
|               | Look for errors in the OBDH relating to the handling |
|               | of telecommand words.                                |
+---------------+------------------------------------------------------+

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRTCID │ Illegal TC identifier │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The Command Identifier in the TC Header word is not │

│ recognised by the OBS. Currently this applies if the │

│ identifier is 11, 13, 15, 18, 20, 24, 27 or 31. │

│ │

│ Observed by: TM.AYTCERRH with Reason = 00102 │

│ │

│ S/W corrective None except to report error. │

│ actions: │

│ │

│ Ground recovery Do not send commands with the above identifiers. │

│ actions: │

│ Look for errors in the OBDH relating to the │

│ handling of telecommand words. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRFPON │ Floating point overflow │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Interrupt 3 asserted signalling that a floating point │

│ overflow condition has occurred. │

│ │

│ Observed by: PHR with entry type = 0 │

│ │

│ S/W corrective No action except to report the error. │

│ actions │

│ │

│ Ground recovery · Check uplinked mode or common function │

│ actions: parameter values (if any) │

│ │

│ · Check reprogrammed code (if any) │

│ │

│ · Check H/W (outside the scope of this document) │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRINON │ Fixed point overflow │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Interrupt 4 asserted signalling that a fixed point │

│ overflow condition has occurred. │

│ │

│ Observed by: PHR with entry type = 1 │

│ │

│ S/W corrective No action except to report the error. │

│ actions: │

│ │

│ Ground recovery · Check data areas that have been changed by │

│ actions: ground for very large (absolute) values. │

│ │

│ · Check reprogrammed code (if any) │

│ │

│ · Check H/W (outside the scope of this document) │

│ │

│ · Note that this error can arise as part of nominal │

│ IRU processing. There is no other impact on OBS │

│ behaviour. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRFPUN │ Floating point underflow │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Interrupt 6 asserted signalling that a floating point │

│ underflow condition has occurred. │

│ │

│ Observed by: PHR with entry type = 2 │

│ │

│ S/W corrective No action except to report the error. Note │

│ actions: that the H/W will set the underflow register to 0.0. │

│ │

│ Ground recovery · Check uplinked mode or common function │

│ actions: parameter values (if any) │

│ │

│ · Check reprogrammed code (if any) │

│ │

│ · Check H/W (outside the scope of this document) │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ EVTTIMRA │ Timer/A overflow │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause Interrupt 7 asserted indicating Timer/A overflow, │

│ while masked by the OBS. The occurrence of this error │

│ indicates a failure in the masking of interrupts │

│ │

│ Observed by: PHR with entry type = 3 │

│ │

│ S/W corrective None │

│ actions: │

│ │

│ Ground recovery This indicates a hardware problem or │

│ actions: interrupt mask corruption. Recovery from this may │

│ require switching from the prime ACU to the redundant │

│ ACU. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ EVTTIMRB │ Timer/B overflow │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ Cause Interrupt 9 asserted indicating Timer/B overflow, │

│ while masked by the OBS. The occurrence of this error │

│ indicates a failure in the masking of interrupts │

│ │

│ Observed by: PHR with entry type = 4 │

│ │

│ S/W corrective None │

│ actions │

│ │

│ Ground recovery This indicates a hardware problem or │

│ actions: interrupt mask corruption. Recovery from this may │

│ require switching from the prime ACU to the redundant │

│ ACU. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRIROM │ PROM failure on Initialisation check │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause The PROM test performed as part of OBS initialisation │

│ failed. │

│ │

│ Observed by: NPU cleared │

│ │

│ S/W corrective Re-starts OBS. This action is repeated until │

│ actions: the PROM test succeeds; thus, if the PROM check never │

│ succeeds, the ACU executes in an infinite loop of │

│ OBS restarts and PROM checks. │

│ │

│ Ground recovery 1. Check to see if any Telemetry is received, │

│ actions: i.e. if the OBS is alive and operating the │

│ synchronous scheduler. │

│ │

│ If alive then go to Step 2, else go to Step 3 │

│ │

│ 2. If yes, then perform a memory dump of the │

│ PROM to check if it is as expected. (It │

│ may be considered to skip this and go │

│ directly to step 3). │

│ │

│ If the memory dump indicates discrepancies │

│ then go to Step 3. │

│ │

│ 3. Switch to use the redundant ACU. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRIRAM │ RAM failure on Initialisation check │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ Cause The destructive RAM test performed as part of OBS │

│ initialisation failed. │

│ │

│ Observed by: NPU cleared │

│ │

│ S/W corrective Re-starts OBS. This action is repeated until │

│ actions: the RAM test succeeds; thus, if the RAM check never │

│ succeeds, the ACU executes in an infinite loop of │

│ OBS restarts and RAM checks. │

│ │

│ Ground recovery 1. Check to see if any Telemetry is received, │

│ actions: i.e. if the OBS is alive and operating the │

│ synchronous scheduler. │

│ │

│ If alive then go to Step 2, else go to Step 3 │

│ │

│ 2. If yes, then perform a memory dump of the │

│ PROM to check if it is as expected. (It │

│ may be considered to skip this and go │

│ directly to step 3). │

│ │

│ If the memory dump indicates discrepancies then │

│ go to Step 3. │

│ │

│ 3. Switch to use the redundant ACU. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRINT01 │ Machine error interrupt (1) asserted │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ Cause Interrupt 1 asserted. This is the Machine Check │

│ interrupt which means that a H/W fault has been │

│ trapped and recorded on the Fault Register. │

│ │

│ Note that ERRMPAR and/or ERRWDOG are also reported if │

│ the requisite bits in the FT are set. │

│ │

│ Observed by: TM.AYFTRPT │

│ │

│ S/W corrective No action except to report error. │

│ actions: │

│ │

│ Ground recovery 1. Determine cause of Fault (from the register │

│ actions: contents as reported in TM.AYFTRPT.AAFTREG). │

│ │

│ If due solely to Memory Parity (AAFTMPAR) or │

│ Watchdog Timeout (AAFTWDOG), then proceed as │

│ described under ERRMPAR and ERRWDOG respectively. │

│ │

│ 2. Otherwise, the fault is due to a H/W malfunction │

│ or a reprogramming error. In the former case, │

│ this is likely to require switching to the │

│ redundant ACU. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRMPAR │ Memory parity failure │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause A memory parity error has been trapped and recorded in│

│ the Fault Register. (This error will only be reported │

│ if ground has disabled the autonomous processor reset)│

│ │

│ Observed by: TM.AYFTERR.AAMPARN │

│ │

│ S/W corrective No action except to report error. │

│ actions: │

│ │

│ Ground recovery This is due to H/W malfunctions with the │

│ actions: autonomous processor reset disabled. If it is │

│ necessary to have the autonomous processor reset │

│ disabled, then no action is possible other than to │

│ switch to the redundant ACU. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRWDOG │ Watchdog timeout failure │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause A watchdog timeout has occurred which has been trapped│

│ and recorded in the Fault Register. (This error will │

│ only be reported if ground has disabled the autonomous│

│ processor reset). │

│ │

│ Observed by: TM.AYFTERR.AAWDOGN │

│ │

│ S/W corrective No action except to report error │

│ actions: │

│ │

│ Ground recovery This is due to │

│ actions: │

│ │

│ · S/W error in reprogrammed code, e.g. an infinite │

│ loop introduced in a synchronous task. It is │

│ necessary to remove the offending S/W - enabling │

│ the autonomous processor reset will ensure this. │

│ │

│ · H/W malfunctions with the autonomous processor │

│ reset disabled. If it is necessary to have the │

│ autonomous processor reset disabled, then no │

│ action is possible other than to switch to the │

│ redundant ACU. │

└──────────────────────────────────────────────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────────────────────────┐

│ ERRMACS │ MACS bus error on autonomous transaction │

├───────────────────┴──────────────────────────────────────────────────────────┤

│ │

│ Cause A MACS bus error occurred on one of the following: │

│ │

│ 1. a unit initialisation command (RC) for any of │

│ FPSS, IRU, CAE or SSU. │

│ 2. a WDE initialisation command (RC). │

│ 3. any of the 5 FPSS data acquisitions (TI). │

│ 4. on reading the IRU Status word (TI). │

│ 5. on reading the IRU Roll-angle Increment word (TI).│

│ 6. on reading analogue data from the CAE (RC and/or │

│ TI). │

│ 7. on reading a data word from a wheel (TI). │

│ 8. on issuing a torque command to a wheel (RD). │

│ 9. on a THR initialisation command (RC) for any THR. │

│ 10. on reading a data word from the SSU (TI). │

│ 11. on one of a series of words sent to the SSU (RD). │

│ 12. on issue of a Broadcast. │

│ 13. on the issue of a thruster firing command │

│ (RD). This error is reported if either │

│ the (optional) delay-time or on-time RD │

│ fails. │

│ │

│ Observed by: TM.AYMACERR │

│ │

│ Note that there is no means to distinguish the actual │

│ cause. │

│ │

│ S/W corrective · None except to report error (1, 2, 9, 12, 13). │

│ actions: · Declare the FPSS data as not valid. (3) │

│ · Declare the IRU Status word as not valid. (4) │

│ · Declare the IRU Roll-angle Increment word as not │

│ valid. (5) │

│ · Declare the analogue data word as not valid. (6) │

│ · Declare the wheel data word as not valid. (7) │

│ · Indicate to Level 3 that the command failed. │

│ (3, 8, 10, 13.) │

│ · Declare the SSU data word as not valid. (10) │

│ · Declare the SSU commanding to be not valid (11) │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────────────────────┐

│ Ground recovery Since it is not possible to determine the │

│ actions: precise MACS bus errors that have occurred, it is only│

│ possible to present general actions for ground │

│ recovery. │

│ │

│ 1. Ensure that the unit configuration is │

│ correct and that any active units are │

│ both powered and initialised. │

│ │

│ 2. If MACS bus errors continue then any recovery │

│ actions are outside the scope of this │

│ document. │

│ │

│ The unit configuration is controlled by means of the │

│ ABACU209 telecommand. This defines the active unit │

│ for the FPSS, IRU, CAE and SSU, and the status of the │

│ wheels - whether or not powered and the inactive wheel│

│ │

│ When a unit is configured as \"None\" (FPSS, IRU, SSU │

│ and CAE), the OBS will not perform autonomous MACS bus│

│ transactions with that unit. The OBS will not │

│ perform autonomous transactions with the inactive │

│ wheel. │

│ │

└──────────────────────────────────────────────────────────────────────────────┘

### 3.6.3 Error Report Formats

3.6.3.1 AYERRRPT

> AYERRRPT consists of a buffer of 8 x 2-word blocks reported
> continu­ously in Telemetry. Each of the 8 2-word blocks has the
> following format:

┌───────────────────┬──────────────────┐

│ Error Report │ Datation Time │

└───────────────────┴──────────────────┘

> Error Report has the following format:

0 1 2 3│4 5 6 7│8 9 A B│C D E F

┌─┬─┬─┬─┼─┬─┬─┬─┼─┬─┬─┬─┼─┬─┬─┬─┐

│t│i│i│i│i│i│d│d│d│d│d│d│d│d│d│d│

└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

> t Error type, 0 = Recoverable, 1 = non-recoverable

iiiii Error identifier

d..d Data word when applicable,

otherwise bits 1 to F are the identifier.

> In the error descriptions in §3.6.2, the complete 16-bit word is
> given.

3.6.3.2 AYTCERRH

> AYTCERRH consists of a buffer of 10 words reported continuously in
> Telemetry. Each of the 10 words has the following format:
>
> 0 1 2 3│4 5 6 7│8 9 A B│C D E F

┌─┬─┬─┬─┼─┬─┬─┬─┼─┬─┬─┬─┼─┬─┬─┬─┐

│d│d│d│d│c│c│c│c│c│x│x│x│r│r│r│r│

└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

dddd Destination Address of Header word

ccccc Command Identifier of Header word

xxx Undefined

rrrr Reason (for TC error)

10002 = Data field error (ERRTCDAT)

01002 = Destination Address error (ERRTCDST)

00102 = Command Identifier error (ERRTCID)

00012 = Block length error (ERRTCLEN)

3.6.3.3 PHR

> The PHR is implemented as a circular buffer of 50 entries. Whenever
> one of the following events occurs,
>
> · Interrupt 3 asserted (Floating point overflow) Entry type = 0
>
> · Interrupt 4 asserted (Fixed point overflow) Entry type = 1
>
> · Interrupt 6 asserted (Floating point underflow) Entry type = 2
>
> · Interrupt 7 asserted (Timer/A overflow) Entry type = 3
>
> · Interrupt 9 asserted (Timer/B overflow) Entry type = 4
>
> · Hard RAM error Entry type = 5
>
> an entry containing the accumulated count of occurrences of this
> event, the above event type and the current datation time is added to
> the PHR.
>
> The format of each 3-word entry is
>
> Word 1 Accumulated count of event occurrences
>
> Word 2 Entry type
>
> Word 3 Datation time of the entry
>
> This accumulated count (which is separate for each event type) is
> performed modulo 32767.
>
> The PHR is read using the Memory Dump facility - a dump of 150 words
> is required to read the complete PHR. A \"quick-look\" facility is
> available by performing a Memory Dump on the accumulated count of each
> event (which are available in a separate array of counters).

3.6.3.4 NPU

> The NPU is a ACU H/W line which is to be monitored external to the
> ACU. The default (power-up) value of high (=1). On the occurrence of
> non-recoverable error, the NPU is set low (=0).

3.6.3.5 AYFTRPT

> This consists of three words containing
>
> Word 1 Number of Interrupt 1 assertions since last Format Pulse
>
> Word 2 Fault Register on the first interrupt 1 assertion since the
> last Format Pulse
>
> Word 3 Datation time of the first interrupt 1 assertion since the last
> Format Pulse

3.6.3.6 AYFTERR

> This consists of 4 words containing
>
> Word 1 Number of memory parity errors trapped since the last Format
> Pulse
>
> Word 2 Datation time of the first memory parity error since the last
> Format Pulse
>
> Word 3 Number of watchdog timeout errors trapped since the last Format
> Pulse
>
> Word 4 Datation time of the first watchdog timeout error since the
> last Format Pulse

3.6.3.7 AYMACERR

> This consists of two words; the first containing the accumulated
> number of MACS bus errors that have occurred since the last Format
> Pulse and the second containing the datation time of the first of
> these MACS bus errors.
>
> **NOTES**
>
> 1\) It is not possible to distinguish between the different MACS bus
> errors or to isolate the cause of a MACS bus error. The only
> information available is the number of MACS bus errors that have
> occurred within a Telemetry format and the time that the first MACS
> bus error occurred.
>
> 2\) MACS bus errors arising from MACS bus transactions initiated by
> ABACU101 are not reported in AYMACERR. If ABACU101 has been issued,
> the number of occurrences of ERRTC101 in TM.AYERRRPT (if any) must be
> added to the number of errors recorded in AYMACERR to obtain the total
> number of MACS bus errors since the last format pulse.

## 3.7 SINGLE EVENT UPSETS

> The only parts of the ACU hardware that exhibit significant
> sensitivi­ty to SEUs are the RAM chips. The result of an SEU on the RAM
> is to cause one or more bits to be inverted.
>
> The RAM consists of 17 64K x 1-bit devices of which 16 devices make up
> the 16-bit word and the 17th device is a parity bit. This parity bit
> is generated on all RAM writes and is checked on all RAM reads
> (includ­­­ing DMA accesses). It is not possible to disable the parity
> generation or check.
>
> The assertion of a parity error will nominally result in a warm reset
> of the software (provided the reset is enabled). This is then followed
> by the S/W initialisation sequence (during which the SURE is
> asserted), which writes to all RAM locations returning all parity bits
> to their correct state.
>
> The full interaction of H/W and S/W is as follows:

-   The assertion of a parity error is latched by an edge triggered
    latch

-   The output of this latch provides the MPEN input to the processor
    (to bit 2 of the FT) and is also routed to a pulse generator that
    provides a reset pulse to the processor. This causes a processor
    reset and asserts the SURE.

-   The OBS performs a warm reset (due to bit 2 of the FT being
    asserted). As part of the initialisation sequence, all RAM locations
    are written to, thus ensuring that all parity bits are returned to a
    correct state.

-   At the end of initialisation, the SURE is cleared.

-   The output of the latch and a subset of the associated memory
    address bits is made available to ground by software independent
    serial digital telemetry.

-   The latch has a reset input that is driven from a software
    independent memory load telecommand.

> **CAUTION**
>
> It is a restriction on ground that the latch is not reset while the
> SURE is asserted. Failure to follow this restriction can lead to
> repeated resets.

## 3.8 SW MAINTENANCE

### 3.8.1 Software Structure

> The package structure used for the software is designed to

-   Permit open access to all \"internals\" in order to ease testing

-   Allow grouping of common data items to allow optimisation of
    initialisation

> There are three types of data considered:

Type 1 Has an initial value of 000016,

e.g 0, 0.0, false, enumeration\'first

Type 2 Has an initial value /~~=~~ 000016.

Type 3 Has no explicit initial value, i.e. initialised by software code
(e.g by elaboration code).

> All data introduced for the Gyroless update is Type 3 data, although
> it is not physically grouped with this data.
>
> The following package structure is used for all objects, (where
> \"XXX\" is the object name):

XXX Defines (via **rename**) the provided interface.

XXX_AUX1 Declares Type 1 data and all operations.

XXX_AUX1B Contains the code for all operations.

XXX_AUX2 Declares Type 2 data.

XXX_AUX2A Declares Type 2 data as constants.

The order must be the same as for the data declared in the AUX2 package.

XXX_AUX3 Defines all the types and declares Type 3 data.

> Within the OBS, the allowed **with** and **use** clauses are
> (excluding
>
> other objects used by XXX),

in package allowed **with** and **use** clauses

────────────────────────────────────────────────

YYY **with** XXX;

XXX **with** XXX_AUX1;

> **with** XXX_AUX2;
>
> **with** XXX_AUX3;

XXX_AUX1 **with** XXX_AUX3; **use** XXX_AUX3;

**with** XXX_AUX3; **use** XXX_AUX3;

XXX_AUX2 **with** XXX_AUX3;

XXX_AUX2A **with** XXX_AUX3;

XXX_AUX3 None

For the Gyroless update, only one new object has been introduced to
handle initialisation of new data. However, several new packages have
been created which contain new versions of procedures defined for
existing objects. These packages are named by adding '\_GL' to the
existing package name, eg, Control_Laws_GL. The following package
structure is used:

XXX_GL Declares types, constants, data and all operations.

XXX_GLB Contains the code for all operations.

In the link procedure, the following grouping is performed (determined
principally by the contents of the linker directive file CSECT.DIR):

> · All XXX_AUX1 package \$DATA\$ sections are placed in contigu­ous
> memory. These are then initialised within the BOOT procedure by
> setting the complete block of memory to 000016.
>
> · All XXX_AUX2A package \$CONS\$ sections are placed in contigu­ous ROM
> memory.
>
> · All XXX_AUX2 package \$DATA\$ sections are placed in contigu­ous
> memory. These are then initialised within the BOOT procedure by
> copying the memory block containing the XXX_AUX2A \$CONS\$ sections
> onto the block of memory contain­ing the XXX_AUX2 \$DATA\$ sections.
>
> · All XXX_AUX3 package \$DATA\$ sections are placed in contigu­ous
> memory. No initialisation is required for this block of memory.

The \$CONS\$, \$DATA\$ and \$ISECT\$ sections for the Gyroless update
are placed using CSECT directives for each individual section.

### 3.8.2 Principles For Software Update

> The following sections are concerned with changes to the software
> while it is embedded in the ACU. The following topics are not covered
> in this section
>
> · Modifying the software itself (see the SDD, AD.1 and SQAP, AD.5)
>
> · Building the software, see §4.
>
> · Burning the software into PROMs.
>
> If it is necessary to modify the software and reload it into the
> PROMs, then the normal development procedures are to be followed, see
> the SQAP, AD.5.
>
> The software changes foreseen are
>
> · Adding a new task to the software
>
> · Replacing a task within the software
>
> · Modifying parameters within the software
>
> · Modifying a service procedure in the software, i.e. software that is
> common to more than one task.
>
> · Modifying interrupt handlers

### 3.8.3 Detailed Procedures

3.8.3.1 Background

> The software must execute different sets of tasks depending on which
> operational mode is in force and which telemetry packet type has been
> selected. This is implemented by defining three task banks: a
> synchro­nous OS task bank, a synchronous ASW task bank and a background
> task bank. The synchronous OS task bank contains one task table for
> each telemetry packet type and the synchronous ASW task bank contains
> one task table for each operational mode. The background task bank
> con­tains a single task table.
>
> In addition to the task banks, three \"working\" task tables are
> main­tained: a synchronous OS task table, a synchronous ASW task table
> and a background task table. On a change of telemetry packet type, the
> appropriate table from the synchronous OS task bank is copied onto the
> working synchronous OS task table. Similarly, on a mode transition the
> table corresponding to the destination mode is copied from the
> syn­chronous ASW task bank onto the working synchronous ASW task table.
> The default background task table is copied onto the working
> back­ground task table once only, on software initialisation.
>
> Each element of a task table is a [Task Control Block]{.underline}
> consisting of three words:
>
> Address of the procedure to be executed

Phase

> Period
>
> The phase and period are described in §3.1.4.3.2.
>
> The final element of the task scheduling mechanism is the scheduler
> list. Again, there are three lists: one each for the synchronous OS
> and ASW tasks and the background tasks. Each scheduler list is a
> linked list with each element of the list containing three pointers: a
> pointer to a task control block, a pointer to the successor element
> and a pointer to the predecessor element.
>
> In nominal operation, the assertion of the RTCI causes the software to
> process the task control block pointed to by the first element in the
> synchronous OS scheduler list, followed by the block pointed to by the
> second element (which is in turn pointed to by the successor pointer
> of the first element) and so on. The successor pointer of the last
> element in the synchronous OS scheduler list points to the first
> element in the synchronous ASW scheduler list, and the successor
> pointer of the last element in the synchronous ASW scheduler list is a
> null pointer with the value 000016.
>
> The background scheduler is terminated after two tasks (by means of
> the successor pointer being set to the null pointer for the third
> element of the list).

3.8.3.2 Adding A New Task

> The last ASW synchronous task is a dummy task: the corresponding task
> control block contains the address of the null procedure (which simply
> executes a return instruction) and a phase and period of -1 indicating
> that the task is deactivated. A new task may be added by issuing
> ABACU103 to replace the null procedure address with the address of the
> procedure to be executed (either an existing or a newly uplinked
> procedure), and then issuing ABACU102 to activate the new task with
> appropriate phase and period parameters. Note however that when a mode
> transition occurs, the synchronous ASW task table will be overwritten
> and the dummy task reinstated.
>
> To add a new task permanently, ground can either write directly to the
> task bank itself (inserting the new task in the table of each mode in
> which the task should operate) or perform the following procedure.
> Select an element of the scheduler list which points to a dummy task
> (as mentioned above, the last element of the ASW list is such a task)
> and change the pointer to point to a newly uplinked task control
> block. This change will not be lost on a mode or telemetry packet
> transition since the scheduler l­ists are not overwritten.
>
> If it is desired to insert a number of tasks, the linked list
> struc­ture may be exploited. A new list and corresponding table is
> uplinked, then the successor pointer of the last scheduler list
> element before the insertion point is altered to point to the new
> list. It must be ensured that the successor pointer of the last
> element in the new list points to the first element after the
> insertion point in the existing scheduler list.
>
> Note that the background scheduler has its effective end at the third
> element in the list. It is not sufficient to replace a dummy task by a
> new task; the Background scheduler list must also be modified
> (although it is not necessary to physically extend the existing
> structure).
>
> Note however that certain tasks are re-scheduled autonomously by the
> software, which assumes that the list element corresponding to a task
> to be re-scheduled is reached by traversing a fixed number of elements
> in the list. Care must be taken not to alter the position of such
> tasks by inserting new list elements, otherwise the software will read
> or write to the task parameters of the wrong tasks. To avoid problems
> when inserting a number of tasks, they should be added to the end of
> the list, or at least after the last autonomously scheduled task in
> the list.
>
> The following table lists all tasks whose parameters are read or
> written to autonomously by the software, and their list position in
> hexadecimal notation (where 0 denotes the head of the list).

┌───────────────────┬────────────────────┬──────────┐

│ Task │ Scheduler │Position │

├───────────────────┼────────────────────┼──────────┤

│ RPTCTOUT │ Synchronous OS │ 0001 │

├───────────────────┼────────────────────┼──────────┤

│ OSTSKSYN │ Synchronous OS │ 0002 │

├───────────────────┼────────────────────┼──────────┤

│ DETSTBCK │ Synchronous OS │ 0009 │

├───────────────────┼────────────────────┼──────────┤

│ CHKRAM │ Synchronous OS │ 000A │

├───────────────────┼────────────────────┼──────────┤

│ ASWTKSYN │ Synchronous ASW │ 0002 │

├───────────────────┼────────────────────┼──────────┤

│ MD7EFN │ Synchronous ASW │ 0003 │

├───────────────────┼────────────────────┼──────────┤

│ CMDSSU │ Synchronous ASW │ 0022 │

├───────────────────┼────────────────────┼──────────┤

│ RQSSUBRD │ Synchronous ASW │ 0035 │

├───────────────────┼────────────────────┼──────────┤

│ TMCOMMON │ Background │ 0001 │

└───────────────────┴────────────────────┴──────────┘

3.8.3.3 Replacing A Task

> The discussion of the previous section showed how to add a new task by
> replacing the dummy task. The same procedures can be used to replace a
> non-dummy task. A temporary replacement may be effected by altering
> the procedure address in the task control block; this change will be
> lost on the occurrence of a mode transition or packet type change
> (depending on whether an ASW or OS task has been replaced). For a
> permanent change, ground should uplink a new task control block and
> then alter the appropriate scheduler pointer to point to it.

3.8.3.4 Modifying Parameters

> The software provides a number of telecommands for modifying software
> parameters in a structured manner:
>
> ABACU002: Unchecked memory write
>
> ABACU102: Change task parameters
>
> ABACU103: Checked memory write
>
> ABACU203: Update initial values of Mode 2 regular variables
>
> ABACU206: Update roll attitude telemetry parameters
>
> ABACU209: Uplink a new hardware configuration word
>
> ABACU210: Update current values of Roll Steering Law common function
> variables
>
> ABACU213: Update current values of SSU common function variables
>
> ABACU214: Update current values of FPSS common function variables
>
> ABACU215: Update initial values of infrequent mode variables
>
> ABACU217: Update current values of WDE common function variables
>
> ABACU218: Update current values of common function infrequent
> variables
>
> ABACU219: Update PCPG manoeuvre task values
>
> See §3.5.3 for a fuller discussion of the operation of these
> telecommands.

3.8.3.5 Modifying Service Software

> A subroutine may be replaced as follows:
>
> \(i\) Uplink an alternative subroutine to an unused area of RAM.
>
> \(ii\) Uplink a task which overwrites the first two words of the old
> subroutine with a jump instruction followed by the address of the new
> subroutine. This must be done using a DST (double store) instruction
> so that both words are overwrit­ten in a single non-interruptible
> instruction. Otherwise anomalous results could occur if an interrupt
> is asserted between the writing of the two words, and the interrupt
> service routine attempts to call the subroutine being replaced.
>
> \(iii\) Activate the task with period -1 so that it executes once
> only.

3.8.3.6 Modifying Interrupt Procedures

> The [context]{.underline} of a software process (scheduled task or
> interrupt service routine) is a three-word block of information
> containing the interrupt mask, status word and instruction counter.
> When an interrupt is asserted, the context (i.e. the current values of
> the interrupt mask, status word and instruction counter) of the
> interrupted process is saved and a predefined context (the service
> linkage) is loaded; this contains the desired interrupt mask, status
> word and instruction counter for the interrupt which was asserted. The
> instruction counter is the address of the interrupt service routine.
> The last instruction of this routine is generally an LSTI instruction
> which causes the processor to restore the saved context and continue
> execution of the previous process from the point at which it was
> interrupted.
>
> To attach a new interrupt service routine it is sufficient to alter
> the instruction counter of the service linkage to point to the new
> service routine. Care must be taken if it is deemed necessary to alter
> two or three words of the service linkage; anomalous results may occur
> if the interrupt is asserted when the service linkage has been
> par­tially updated. To prevent this occurrence, a variation of the
> method given in the previous section may be used.
>
> \(i\) Uplink an alternative service linkage.
>
> \(ii\) Uplink a task which overwrites the old linkage with the new
> linkage. This must be done using an EFST (extended floating point
> store) instruction so that all three words are overwritten in a single
> non-interruptible instruction. Note that the setting of Bit 0 in the
> interrupt mask has no effect since Interrupt 0 can never be masked;
> Bit 0 should be set to the inverse of the setting of Bit 1, so that
> the three words form a normalised extended floating-point number and
> can be stored into memory in a single instruction.
>
> \(iii\) Activate the task with period -1 so that it executes once
> only.

### 3.8.4 Summary of the methods employed in the Gyroless update

> The following significant features have been introduced in the
> Gyroless update (see RD(8) for a complete description of changes):

-   Use of wheel data to provide coarse roll attitude measurements (CRS)
    in place of IRU data.

-   New mode 5 (CRP) using the CRS, with a dedicated table of tasks

-   Inhibition of transitions to modes 2 (ISA), 3 (FSA) and 6 (CSP)

-   Use of mode 7 (NM) roll controller in mode 4 (RMW)

-   Wheel speed filtering

-   Profiled attitude manoeuvres in all axes

-   Star swapping in case of SSU SEUs

-   Roll momentum vector monitoring

-   Incorporation of 'patch 5' (SSU SEU staircase filter) and 'patch 6'
    (SSU Z-coordinate spike filter)

> These changes have been implemented in the main by writing either
> brand new procedures or new versions of existing procedures in Ada and
> linking these to the existing code by specifying absolute locations
> for the new code in the memory map.
>
> The mode task tables, TM tables and TC tables (implemented in
> Assembler) have been modified to refer to the addresses of the new
> procedures. For CRP, the existing 'Undefined' mode task table has been
> employed (previously identical to the CSP table).
>
> There are a few instances where overlay patches have been defined, eg,
> where this has been more practicable than creating a modified version
> of the affected procedure. These are of several types:
>
> \- Changes to constants in tables
>
> \- Calls to new Ada procedures
>
> \- Over-writes with NOPs or branch instructions to skip redundant code
>
> \- A call of an Assembler procedure
>
> These are fully documented in RD(9).
>
> Various new data items have been defined for use by the new
> procedures. Where extensions to existing data structure have been
> required, eg, mode infrequent variables, 'extra' records have been
> defined which can be modified by use of the General Mode Command
> (ABACU215). Similarly, extended Common Function variable records and
> new Common Function variable records can be modified by use of the
> General Common Function Command (ABACU218).
>
> In order to maintain the correct placement of code in the original
> section of linked code, it has been necessary to ensure that the
> literal pool size did not change. To achieve this an Assembler module
> has been introduced to hold new literals required by the new code.
>
> The memory map as modified by the Gyroless update is shown in figure
> 3.9-2.

## 3.9 MEMORY MAP

> An overview of the memory allocations is given in Figure 3.9-1. This
> indicates the broad allocation of memory between code, data, reserved
> sections and monitor S/W (for on-ground testing only).
>
> The memory map as modified by the Gyroless update is shown in figure
> 3.9-2.
>
> The memory available in the ACU is 64Kwords of RAM and up to 32Kwords
> of PROM (24Kw normally fitted). The 32Kword PROM is banked with the
> RAM at the same addresses as the lower 32Kwords of RAM. It is normally
> powered off, being powered on normally for initialising the OBS, i.e.
> copying the soft­ware from PROM to RAM.
>
> The definition of data items is contained in the Data Dictionary.

┌────────────────────┐ ┌───────────────────────┐

│ RAM │ │ PROM │

├────────────────────┤ ├───────────────────────┤

0000 .. 001F │Reserved \*│ 0000 .. 001F │ Reserved │

0020 .. 003F │Int. pointer Table \*│ 0020 .. 003F │ Int. pointer table │

0040 .. 00FF │Reserved \*│ 0040 .. 00FF │ Reserved │

0100 .. 4AFF │Code & constants \*│ 0100 .. 4AFF │ Code & constants │

4B00 .. 7FFF │Spare │ 4B00 .. 4DBB │ Type 2 initial values │

│ │ 4DBC .. 5F8E │ Spare │

│ │ 5F8F .. 5FFF │ Boot code │

│ │ 6000 .. 7FFF │ Spare │

8000 .. 87FF │Reserved (monitor) │ └───────────────────────┘

8800 .. 8FFF │Spare │

9000 .. AFFF │Type 1 data \*1│

B000 .. D1FF │Spare │

D300 .. D595 │Type 2 data \*2│

D596 .. D5BC │High Ram code \*│

D5BD .. D9DF │Spare │

D9E0 .. F000 │Type 3 data \*3│

F001 .. F7FF │Spare │

F800 .. FFFF │Stack \*│

└────────────────────┘

> \* Areas protected from the checked memory write (ABACU103).
>
> Entire sections are protected except:
>
> \*1 - only TC data
>
> \*2 - only Service information
>
> \*3 - Only Linkage information

[Figure 3.9-1: Overview of Memory Allocations]{.underline}

Note that if any changes are made to Type 1, Type 2, or Type 3 data then
the linker directive file must be updated to accomodate those changes.
The directive file CSECT.DIR allocates the Type 1 data sections in a
block of memory that grows upwards from address 16#9000#.

> Type 2 data sections are allocated in a block of memory that grows
> upwards from 16#D300# and type 3 data sections are allocated in a
> block of memory that grows downwards from 16#F000#. All data sections
> must be explicitly referenced in the CSECT.DIR file and are,
> there­fore, allocated manually. The user must ensure that the data
> sections produced by the compiler are referenced in the CSECT.DIR file
> with correct length and address to avoid address range overlaps and to
> avoid significant gaps in memory allocation.

  ------------ ---------------------------- ---------------------------------
  0000..001F   Reserved                     32 words

  0020..003F   Interrupt linkage pointer    32 words
               table                        

               Unused                       192 words

  0100..010F   Code                         

  0110..0130   Reserved (="dd-mmm-19994     where dd-mmm is the date of the
               FM_3_0")                     FM_3_0 build

  0131..36A8   Code                         

                                            

                                            

                                            18657 words

                                            

                                            

                                            

                                            

  36A9..3F0C   Constants                    

  3F0D..3F5E   Literal pool                 

  3F5F..49E0   ASM tables, etc              

               Unused                       287 words

  4AFF         Checksum (0000..4AFF)        

  4B00..4DBB   Type 2 initial data (PROM    700 words
               only)                        

               Unused                       580 words

  5000..5091   Patch 1-4 code & thruster    146 words
               correction                   

               Unused                       3837 words

                                            

  5F8F..5FFF   Boot code, Checksum          113 words
               (4B00..5FFF)                 

  6000..6FDE   Gyroless linked code         

                                            4063 words (TBC, FM_3_C size
                                            shown)

                                            

               Unused                       33 words

  7000..7098   Patch 5/6/7 code/data        153 words

               Unused                       103 words

  7100..7315   Gyroless linked code         534 words (TBC, FM_3_C size
                                            shown)

               Unused                       1002 words

  7700..7705   Gyroless unlinked code       6 words
               (Assember patch)             

               Unused                       250 words

  7800..79BF   Gyroless constants           448 words (TBC, FM_3_C size
                                            shown)

               Unused                       1600 words

  8000..87FF   Monitor                      2048 words

                                            

  8800..8FFF   Unused                       2048 words

                                            

  9000..93FF   Type 1 data (MACS i/f)       1024 words

  9400..A1AF   Type 1 data (unused)         

                                            3504 words

                                            

  A1B0..AFFF   Type 1 data                  3664 words

                                            Total type 1 data 8192 words,

                                            initialised to zero

                                            

  B000..B23E   Gyroless data                575 words (TBC, FM_3_C size
                                            shown)

               Unused                       

                                            

                                            

  C000                                      7617 words

                                            

                                            

                                            

  D000                                      

  D300..D595   Type 2 data (working data)   662 words initialised to non-zero
                                            values

  D596..D5BB   High RAM code                38 words

               Unused                       1060 words

  D9E0..EFFF   Type 3 data                  5664 words not initialised at
                                            startup

                                            

                                            

                                            

  F000..F01B   Copy_PROM_to_RAM working     28 words
               copy                         

               Unused                       2020 words

  F800..FFFF   Heap (Stack)                 2048 words

                                            
  ------------ ---------------------------- ---------------------------------

> [Figure 3.9-2: Memory Map for Gyroless OBS]{.underline}

# 4. SOFTWARE BUILDING

> Sections 4.1 to 4.6 below describe the software build procedure as
> followed during the original ACU software development, resulting in
> data suitable for PROM programming. Section 4.7 describes the build
> procedure followed for the development of the Gyroless update.

## 4.1 OVERVIEW

> The software build consists of four stages:

1\. Transfer of files from tape to disk on the host computer

2\. Compilation of the software

3\. Link of the software to create a load module

4\. Conversion from the load module to a format suitable for downloading

> The end result is the load module, the download files and a linker
> map.
>
> The following H/W and S/W configuration is required for the following
> procedures:
>
> · VAX hardware operating under VMS version 5.4 or later
>
> · TK70 compatible tape drive
>
> · Sufficient disk space, about 50MB
>
> . TLD ACS version 91V042
>
> · User quotas as required for the TLD ACS, see RD.3
>
> · VAX/VMS EDT editor

## 4.2 TAPE TRANSFER

> The directory structure is based on the use of logical names (in order
> to decouple the physical differences between installations). The
> directory structure is

┌───────────────┬────────────────┬─────────────────────────────────────────────┐

│ **Directory** │ **Logical Name** │ **Contents** │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX\] │ ROOT\$DIR │ Parent Directory (host dependant) │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX.RTS\] │ RTS\$DIR │ Contains source code for Run Time System │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX.IOS\] │ IOS\$DIR │ Contains source code for IOS_Functions and │

│ │ │ child objects. │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX.SWS\] │ SWS\$DIR │ Contains source code for SWS_Functions and │
│ │ │ child objects. │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX.ASW\] │ ASW\$DIR │ Contains source code for ASW_Functions and │
│ │ │ child objects. │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX.EXEC\] │ EXEC\$DIR │ Contains source code for Executive and │

│ │ │ child objects. │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX.LIS\] │ LIS\$DIR │ Initially empty - after the compilation │

│ │ │ procedure will contain list files (\*.LIS). │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX.LIB\] │ LINK\$DIR │ Initially empty. After the build │

│ │ │ procedure will contain object and other │ │ │ │ miscellaneous TLD
generated files. After │ │ │ │ the link procedure, will contain the load
│ │ │ │ module, map and symbol/trace files. │

├───────────────┼────────────────┼─────────────────────────────────────────────┤

│ \[XXX.BUILD\] │ BUILD\$DIR │ Contains command procedures (including │
│ │ │ SETUP.COM). │

└───────────────┴────────────────┴─────────────────────────────────────────────┘

**NOTE** The delivered tape may also contains test software files which
are

outside the scope of this document.

> The procedure for the transfer of files from the tape is

1\. [\$]{.underline} SET DEFAULT \<root directory\>

2\. [\$]{.underline} ALLOCATE \<tape device\> MT:

3\. [\$]{.underline} MOUNT/FOREIGN MT: \<tape label\>

4\. [\$]{.underline} BACKUP/LOG/VERIFY MT:\[\*\...\]\<saveset
name\>/LABEL

=\<tape label\> \[\...\]

5\. [\$]{.underline} DIRECTORY \[\...\]/OUTPUT=TAPE_VERIFY.LOG

\<root directory\> the desired root directory on the host VAX, i.e.

> the \[XXX\] directory on the previous page.

\<tape device\> a TK50 compatible tape drive.

\<tape label\> the tape label as supplied in the Delivery note.

\<saveset name\> the name of the saveset as supplied in the Delivery
Note

> The listing in TAPE_VERIFY.LOG should correspond to the listing of
> files supplied in the Delivery Note.

## 4.3 BUILD

> The procedure is as follows
>
> 1\. [\$]{.underline} SET DEFAULT BUILD\$DIR
>
> 2\. [\$]{.underline} \@SETUP
>
> 3\. [\$]{.underline} SET DEFAULT LINK\$DIR

4\. [\$]{.underline} \@BUILD\$DIR:BUILD_SW_VERSION build_identifier

> The build procedure then automatically compiles/assembles the source
> code, links the object files produced with insertion of the build
> identifier (autonomously implementing the link procedure described
> below) and generates the load modules (\*.UP and \*.DWN in Intel Hex
> format converted from the TLD format load module \*.LDM with
> correction of the Intel format error in the TLD2HEX conversion
> utility) with the correct checksum values inserted.

## 4.4 LINK

> The build procedure automates the link procedure and, therefore, the
> link procedures described here are not necessary for building load
> modules.
>
> The load module may be generated in a two-stage procedure, both of
> which are controlled by the linker command procedure
> (Build\$Dir:Link.com).
>
> In the first stage, Initialise_SWS is elaborated by the TLD ALK
> utility. This step nominates Initialise_SWS as the main Ada program
> and generates the linker INCLUDE file (Initialise_SWS.inc) and the
> linker directive file (Initialise_SWS.lnk). The INCLUDE file contains
> a sequence of directives instructing the linker to include all Ada
> compiler generated object files in the load module. The linker
> direc­tive file contains default settings concerning the size of the
> stack, heap and reserved areas in memory. These files are modified by
> Link.com as follows -
>
> \(1\) Initialise_SWS.inc is edited by Link.com so as to remove
>
> references to TLD generated object files (Sys­tem.obj, Mcode.obj,
> Conversion.obj and Bitops.obj) which are ordinar­ily included by
> default from a TLD directory. These object files are generated by the
> build procedure from the source files in RTS\$DIR and so the INCLUDE
> file is modified to reference the corresponding object files in
> LINK\$DIR.
>
> \(2\) Initialise_SWS.lnk is edited to remove the references to
> numerous TLD default files and to insert a reference to the SOHO
> linker directive file (Build\$Dir:CSECT.dir). Removing references to
> the TLD defaults prevents the linker from including superfluous code
> and data (mostly associated with terminal input/output). The SOHO
> linker directive file contains SOHO specific commands to instruct the
> linker on the placement of code and data in the load module.
>
> Note that the editor command files which perform the above actions are
> generated automatically by Link.com and are deleted immediately after
> use. A parameter passed to the ALK utility instructs it to use the
> file Build\$Dir:ASM_Files.inc - this contains the list of object files
> generated by the Assembler and must be explicitly included as they are
> not normally included by the TLD linker (since they have Assembler
> sources).
>
> The second stage in the link procedure calls the TLD linker which
> builds the load module (.LDM) and software map (.MAP). Note that the
> linker uses the edited versions of the directive and INCLUDE files in
> building the load module.
>
> The linker command procedure causes a 64 character configuration
> identifier (consisting of the current date and a build identifier
> string) to be located at a fixed location in PROM. The build
> identi­fier is passed as a parameter to the linker command procedure,
> and should consist of a sequence of alphanumeric characters. Note that
> the characters of the configuration identifier are packed two per word
> in PROM. If the combined length of the current date and build
> identi­fier exceeds 64 characters then the configuration identifier is
> constructed from the first 64 characters.
>
> The procedure is as follows
>
> 1\. [\$]{.underline} SET DEFAULT BUILD\$DIR
>
> 2\. [\$]{.underline} \@SETUP
>
> 3\. [\$]{.underline} SET DEFAULT LINK\$DIR
>
> 4\. [\$]{.underline} \@BUILD\$DIR:LINK build_identifier
>
> Note that build_identifier in step 4 is a string of characters used to
> uniquely identify the current software version.
>
> This results in the files x.LDM and x.MAP
>
> [PROM Checksum Generation]{.underline}
>
> Note that the automatic build procedure autonomously genrates the
> correct checksum values (including the correction for the known
> problem with the TLD checksum calculation).
>
> The PROM code is divided into two sections-
>
> \(1\) SECTION 1: consisting of code and constants whose addresses lie
> in the range 16#0000# - 16#4AFF#. A linker directive (CSECT) is used
> to locate a one word checksum correction word (I213\$Last_Address) at
> the end of this section. The correction word is chosen so that the
> four least significant hexadecimal digits of the sum of the contents
> of all memory locations in the section 1 area is equal to 16#0000#.
> This section is copied to RAM memory underlying PROM memory (low RAM)
> on warm and cold resets.
>
> \(2\) SECTION 2: consisting of code and constants whose addresses lie
> in the range 16#4B00# - 16#5FFF#. This section is copied to high RAM
> on warm and cold resets and is used to initialise the type 2 data
> (data with non-zero initialisa­tion values) and to copy from the master
> copies to the working copies those operations which must execute from
> high RAM. A linker directive (CSECT) is used to locate a one word
> checksum correction word (I14\$PROM_End) at the end of this section.
> The correction word is chosen so that the four least significant
> hexadecimal digits of the sum of the contents of all memory locations
> in the section 2 area is equal to 16#0000#.
>
> A TLD Linker directive (SUM) is used to generate the checksum
> correc­tion word, on the assumption that unused memory location will be
> set to 16#0000h, and another directive (STORE) is used to locate the
> correction at the desired location. The syntax of the SUM command is
>
> SUM (STARTADR, ENDADR, RESULT, SKIPADR)
>
> Where STARTADR and ENDADR are the addresses of the beginning and end
> of the sections, RESULT is the desired checksum and SKIPADR is an
> address not to be included in the checksum computation. A checksum is
> generated and positioned by combining both commands thus-
>
> STORE ENDADR = SUM(STARTADR, ENDADR, RESULT, SKIPADR)
>
> The desired checksum for both sections of PROM memory is zero, hence
> RESULT is set equal to 16#0000#. Due to a TLD anomaly, however, this
> command produces erroneous results for the checksum in section 1. On
> occasions, the TLD linker generates a load module with a non-zero
> checksum for section 1, even though the directive clearly requires a
> zero checksum.
>
> In order to overcome this anomalous behaviour, the load module is
> built in a two-stage process. In the first stage, a zero-checksum is
> requested for section 1 by setting RESULT equal to 16#0000# in the
> STORE directive for this checksum. This is done by editing the linker
> directive file (CSECT.DIR). The directive is the second last line in
> the file :
>
> STORE 4AFF = SUM(0000, 4AFF, 0000, 4AFF)
>
> The load module is then built by invoking the link command procedure
> LINK.COM. The load module is examined by starting the TLD symbolic
> debugger, setting a breakpoint on the last address in section 1 and
> issuing the GO command. The debugger will halt (and report an
> \"un­known\" breakpoint) when the contents of the last address in
> section 1 are read by the checksum accumulation procedure
> (PERFORM_PROM_CHECK). The checksum accumulator (register 0) is then
> examined in order to determine the actual checksum.
>
> In the absence of TLD anomalies, the accumulator will be zero, as
> requested. The (annotated) sequence of debugger commands is summa­rised
> below-
>
> LOAD FM !load Software
>
> SET BREAK 16#5FFF# !stop at end of section 1
>
> GO !execute software
>
> EXAMINE\\RO !examine accumulator when halted
>
> EXIT !return
>
> Let the value of the accumulator as observed by the above procedure be
> denoted by SUM.
>
> The second stage of the procedure is performed by setting RESULT equal
> to 16#10000#-SUM, in the STORE directive for section 1-
>
> STORE 4AFF = SUM(0000, 4AFF, RESULT, 4AFF)
>
> The load module is then rebuilt by invoking the link command procedure
> LINK.COM. The resulting load module now has correct checksums for
> sections 1 and 2 in PROM memory.

## 4.5 CONVERSION FOR DOWNLOADING

> Conversion for downloading to equipment to be used to create firmware
> will be dependant on the requirements of that equipment. The TLD
> provided utility TLD2HEX will convert TLD LDM format files into a pair
> of the popular Intel HEX format files of high and low byte values (but
> note that there is an anomaly in the TLD utility that may cause an
> incorrect format in the last record of each file) suitable for loading
> into most PROM programming equipments. Note that the build utility
> described above will autonomously provide the pair of high (\*.up) and
> low (\*.dwn) files in Intel HEX format with correction for the TLD
> error.

## 4.6 SOFTWARE FILES

> The following software file-types are present in the SW build:

.ADA Ada source file

.MAC Assembler source file

.COM VAX/VMS DCL command file

.OBJ Object file (result of compilation or assembly)

> .LIB Library file used to bind the Ada files during compilation and
> linking

.ATR Attribute file used in Ada compilation.

.LDM Binary file suitable for loading into memory

.INC Include file used in link stage to include extra directives

.LNK Linker directive file

.DIR linker directive file

.EDT EDT editor MACRO file

.LIS Compiler or assembler listing file

.RFM Reformatted Ada source file

.UP Intel format load module file of high order bytes from each word

.DWN Intel format load module file of low order bytes from each word

## 4.6 GYROLESS UPDATE BUILD PROCESS

An important factor of the Gyroless update has been the desire to link
newly developed procedures with the existing software, without in any
way altering the original memory map. This has been achieved by locating
new procedures in unused areas of memory and resolving the calls
[to]{.underline} the original code by relinking the original and new
code and resolving the calls [from]{.underline} the original code by
'assembler' overlay patches (mainly to the task tables and TC/TM
tables).

For convenience the Gyroless update has been developed on a Sun
workstation at MMS Bristol. However, the TLD Ada compiler resident on
this workstation is a later version (V-5.6.1) to the one originally used
for the ACU software (V-2.7.3), which was developed on a VAX system
(originally at MMS Bristol, now transferred to MMS Stevenage). In order
to ensure that the Gyroless update is entirely compatible with the
original software it is necessary for the build to be performed using
the VAX (original) compiler. Eg, procedure call conventions (eg, use of
register) may have changed between versions.

The master Gyroless update source code is held in an SCCS library on the
Sun workstation, /user/SOHO/jss/gyroless/source/SCCS. Code may be
extracted from this library using custom-written procedures:

soho_get filename extract without reserving

soho_reserve filename reserve

soho_replace filename replace

soho_info list reserved files

soho_ls list library contents

The Sun workstation is also used as a repository for master scripts.

The Sun directory /user/SOHO/jss/gyroless/coms/fm_3x contains the
following compilation and linker script files:

no_csect.lnk Linker control file excluding CSECTs for new objects. This
is used for a temporary build to derive the sizes of the new sections.

bld_gl.com Script to compile all the gyroless files and link the
software (using no_csects.lnk). The compilation uses the script ada.com
(see below).\
The linker command line is :

TLDLNK /DIR=\[.GL_COMS\]NO_CSECT.LNK /MAP=\[.GL_OUTPUTS\]GL.MAP
/LDM=\[.GL_OUTPUTS\]GL.LDM\
/DEBUG /ENT

gl.lnk Linker control file including CSECTs for new objects. This is
used for the final build.

link_gl.com Link command (no compilation) using gl.lnk:

TLDLNK /DIR=\[.GL_COMS\]GL.LNK /MAP=\[.GL_OUTPUTS\]GL.MAP
/LDM=\[.GL_OUTPUTS\]GL.LDM\
/DEBUG /ENT

The directory /user/SOHO/jss/gyroless/coms contains the following
compilation and assembly script files:

ada.com controls compilation. Uses the following command:

ADATLD /16BADDR /NOCHECKS /INTSL /LIST=LIS\$DIR:\'lis_file /MACRO
/TARGET=1750A /LIBRARY=LINK\$DIR:1750A.LIB /DEBUG
/OBJECT=LINK\$DIR:\'obj_file /MODEL=MDC281 \'file

asm.com controls assembly. Uses the following command:

TLDASM /DEBUG/ LIST=LIS\$DIR:\'lis_file /MACRO /SOURCE
/OBJ=LINK\$DIR:\'obj_file \'file

where lis\$dir is a previously set up logical name for the outputs
directory, file is the supplied file name and lis_file and obj_file are
the file name with the appropriate extensions.

The procedure for building version FM_3_X is as follows :

1\) Retrieve the current source files from the SCCS library on Sun into
/user/SOHO/jss/gyroless/source using the script get_src which uses
soho_get.

In order to be able to reproduce a given version of the build, create a
version of get_src in a sub-directory
/user/SOHO/jss/gyroless/source/fm_3x. This has lines of the form: sccs
-d.. get -r1.1 asw_ctl_gl.ada. The version information can be derived by
directing the output of get_src to a temporary file.

2\) Modify no_csect.lnk and bld_gl.com in
/user/SOHO/jss/gyroless/coms/fm_3x in accordance with the configuration
of version fm_3x (the object list may have changed).

3\) Using ftp, copy the Ada and assembler source files from the Sun
(/user/SOHO/jss/gyroless/source) to the VAX
(\[CAPTEC_EM.BUILD.GL_SRC\]).

4\) Using ftp, copy no_csect.lnk and bld_gl.com from the Sun
(/user/SOHO/jss/gyroless/coms/fm_3x) to the VAX
(\[CAPTEC_EM.BUILD.GL_COMS\].

5\) Compile and link the gyroless software on the VAX using the linker
control file which excludes the CSECTS for the new code, ie, from
\[CAPTEC_EM.BUILD\] :

\$ \@SETUP

\$ @\[.GL_COMS\]BLD_GL

The link should result in no warnings, no errors and no fatal errors.

The compilation results are generated in \[CAPTEC_EM.BUILD\] and the
linker results are generated in \[CAPTEC_EM.BUILD.GL_OUTPUTS\].

In the fm_3x.map file check that the literal pool size is unchanged at
16#52 (symbol \$LTRLPOOL at address 16#3F0D).

6\) The absolute locations for the new Gyroless software in the memory
map are derived using an Excel spreadsheet, CSECT_IP.XLS. Using the
fm_3x.map file as a reference, update the spreadsheet to reflect the
current software definition.

Check that the section sizes are correct and that unexported CSECT names
such as CONTROL_LAWS_GL.PERFORM_TF15\_\$COQ048 have not changed.

Ensure that the code does not intrude into the area 16#7000..16#70FF.

From the spreadsheet generate a text file containing lines of the form:

CSECT SENSOR_PROCESSING_GL.INIT\_\$SEQ001, \$ISECT\$, 6000

This may be done by copying the required Excel cells into a Word table,
editing the table to produce lines as shown above and saving as text
only in a file, csect.txt.

Transfer the file csect.txt to /user/SOHO/jss/gyroless/coms/fm_3x.

7\) On the Sun, edit /user/SOHO/jss/gyroless/coms/fm_3x/gl.lnk to
include the CSECT directives as contained in csect.txt.

8\) Copy gl.lnk and link_gl.com to the VAX \[captec_em.build.gl_coms\]
using ftp.

9\) Link the Gyroless s/w on the VAX again, this time using link_gl.com.

\$ \@SETUP

\$ @\[.GL_COMS\]LINK_GL

The linker results are generated in \[CAPTEC_EM.BUILD.GL_OUTPUTS\]. The
link should result in no warnings, no errors and no fatal errors.

10\) Using ftp, copy the Gyroless .lis files from \[CAPTEC_EM.BUILD\]
and the linker outputs (.ldm, .map) from \[CAPTEC_EM.BUILD.GL_OUTPUTS\]
to /user/SOHO/jss/gyroless/outputs/fm_3x.

Check in the gl.map file that the code has been placed where expected.

Compare gl.map with the original map file,
/user/SOHO/jss/fm/outputs/fm.map and check that there are no unexpected
differences.

11\) On the Sun, run the tld 1750A simulator and dump the relevant
memory contents to a file.

\> dbg

\> a tldmps

\> l gl.ldm

\> set radix hex

\> set log fm_3x.dmp

\> ex 6000..6FFF (linked code)

\> ex 7100..7tbd (linked code)

\> ex 7800..7tbd (constants)

The resulting log file may be used as the basis for generating the
memory write block telecommands required to upload the software to the
ACU memory.

12\) Update the Gyroless Update Technical Note (SH-MMB-TN-7017) to
reflect the new procedure addresses.

Note that there are two procedures whose start addresses are not the
same as the CSECT addresses, namely, Report_GL_sensor_TM_2 and
Execute_ABACU210_GL. This is because these procedures have internal
procedures defined ahead of the main procedure.

# 5. GLOSSARY

> ACU Attitude Control Unit
>
> AOCS Attitude and Orbit Control Subsystem
>
> ASW Application Software
>
> BIT Built-in Test (also known as BITE in MIL­-STD-1750A)
>
> CRP Coarse Roll Pointing (mode 5)
>
> CRS Coarse Roll Sensor
>
> CSP Coarse Sun Pointing (mode 6)
>
> DMA Direct Memory Access
>
> FT Fault Register (1750A)
>
> FPSS Fine Pointing Sun Sensor
>
> FSA Fine Sun Acquisition (mode 3)
>
> H/W Hardware
>
> i/o Input/Output
>
> IAM Inactive Mode (mode 0)
>
> IOS Input/Output Services
>
> IRU Inertial Reference Unit (i.e. gyroscopes)
>
> ISA Initial Sun Acquisition (mode 2)
>
> LOBT Local On-Board Time
>
> MCC Mid-Coarse Correction
>
> NM Normal mode (mode 7)
>
> NPU Normal Power Up
>
> OBDH On-Board Data Handling sub-system
>
> OBS On-Board Software

PCPG Payload Calibration Profile Generator

> PHR Processor Health Register
>
> PIR Pending Interrupt Register (1750A)
>
> PROS Propulsion Subsystem
>
> PWM Pulse Width Modulation
>
> RSL Roll Steering Law
>
> RTCI Real-Time Clock Interrupt
>
> RTS Run-Time System
>
> RTU Remote Terminal Unit
>
> RWL Reaction Wheel
>
> RWU Reaction Wheel Unit
>
> RMW Roll Manoeuvre - Wheels (mode 4)
>
> S/C Spacecraft
>
> S/W Software
>
> SAS Sun Acquisition Sensor
>
> SBM Standby Mode (mode 1)
>
> SEU Single Event Upset
>
> SOHO Solar and Heliospheric Observatory
>
> SSU Star Sensor Unit
>
> SURE Start Up ROM Enable
>
> SWS Software Services
>
> TC Telecommand
>
> TM Telemetry
>
> WDE Wheel Drive Electronics

# APPENDIX A: MAPPING OF URD APPENDIX B DATA NAMES TO NAMES USED IN SOFTWARE

> In this appendix, we list the data items given in Appendix B of RD.6
> and the corresponding data names in the implementation (AD.1).
>
> Note that data names generally contain one of two words, \"Regular\"
> or \"Infrequent\". These words indicate the frequency with which the
> variable is likely to be set or reset by ground command.
>
> \"Regular\" applies to variables which are normally expected to be
> regularly updated by telecommand, and these data items normally have
> dedicated telecommands to update them. In the Gyroless update to the
> OBS, the only remaining example of an updateable \"Regular\" data item
> is the SAS1_Bias (which is set by telecommand ABACU203). Updating the
> other original regular data by telecommand is no longer possible.
>
> \"Infrequent\" applies to variables which are normally expected to be
> updated only infrequently, if at all, and thus these data items can be
> updated by the General Mode telecommand ABACU215, or by the General
> ASW Common function telecommand ABACU218. Examples of \"Infrequent\"
> data items are the control law gain terms and the control law state
> variables.
>
> Similarly, data names with the word \"Initial\" correspond to the data
> items which contain the initialisation value used to initialise the
> current (working) value of a data item. The data names without the
> word \"Initial\" refer to the current values of the data items.

+-----------------------+----------------------------------------------+
| **URD**               | **Data Name**                                |
+-----------------------+----------------------------------------------+
| **Mode 2 :**          | Object 3.4.1                                 |
+-----------------------+----------------------------------------------+
| KSAS(pitch),          | Mode2_Data.Infrequent.Output_Gains.KSAS      |
| KSAS(yaw)             |                                              |
+-----------------------+----------------------------------------------+
| Θbias(∝), Θbias(ß)    | Mode2_Data.Regular.SAS1_Bias                 |
+-----------------------+----------------------------------------------+
| A1, A2                | Mode2_Data.Infrequent.Filter_Gains.A1 (etc.) |
+-----------------------+----------------------------------------------+
| B1, B2, B3            | Mode2_Data.Infrequent.Filter_Gains.B1 (etc.) |
+-----------------------+----------------------------------------------+
| Ty\[n-1\],\           | Mode2_Data.Infrequent.Aged_Variables.Ty_Old, |
| a\[n-1\]              | Mo                                           |
|                       | de2_Data.Infrequent.Aged_Variables.ALPHA_Old |
+-----------------------+----------------------------------------------+
| Ky                    | Mode2_Data.Infrequent.Output_Gains.Ky        |
+-----------------------+----------------------------------------------+
| C1, C2, C3            | Mode2_Data.Infrequent.Filter_Gains.C1 (etc.) |
+-----------------------+----------------------------------------------+
| Tz\[n-1\],\           | Mode2_Data.Infrequent.Aged_Variables.Tz_Old, |
| ß\[n-1\]              | M                                            |
|                       | ode2_Data.Infrequent.Aged_Variables.BETA_Old |
+-----------------------+----------------------------------------------+
| Kz                    | Mode2_Data.Infrequent.Output_Gains.Kz        |
+-----------------------+----------------------------------------------+
| default actuation     | Object 3.4.3                                 |
| interval for Mode 2   |                                              |
| control               | PROS_Data.Infrequent.FAP_Slots_Int(Two)      |
+-----------------------+----------------------------------------------+
| **Mode 3 :**          | Object 3.4.1                                 |
+-----------------------+----------------------------------------------+
| A1, A2                | Mode3_Data.Infrequent.Filter_Gains.A1 (etc.) |
+-----------------------+----------------------------------------------+
| B1, B2, B3            | Mode3_Data.Infrequent.Filter_Gains.B1 (etc.) |
+-----------------------+----------------------------------------------+
| Ty\[n-1\],\           | Mode3_Data.Infrequent.Aged_Variables.Ty_Old, |
| ∝\[n-1\]              | Mo                                           |
|                       | de3_Data.Infrequent.Aged_Variables.ALPHA_Old |
+-----------------------+----------------------------------------------+
| C1, C2, C3            | Mode3_Data.Infrequent.Filter_Gains.C1 (etc.) |
+-----------------------+----------------------------------------------+
| Ky, Kz                | Mode3_Data.Infrequent.Output_Gains.Ky,       |
|                       | Mode3_Data.Infrequent.Output_Gains.Kz        |
+-----------------------+----------------------------------------------+
| Tz\[n-1\],\           | Mode3_Data.Infrequent.Aged_Variables.Tz_Old, |
| ß\[n-1\]              | M                                            |
|                       | ode3_Data.Infrequent.Aged_Variables.BETA_Old |
+-----------------------+----------------------------------------------+
| default actuation     | Object 3.4.3                                 |
| interval for Mode 3   |                                              |
| control               | PROS_Data.Infrequent.FAP_Slots_Int(Three)    |
+-----------------------+----------------------------------------------+

  ------------------------ -----------------------------------------------------
  **URD**                  **Data Name**

  **Mode 4 :**             Object 3.4.1

  Max_Slew_Rate            Mode4_Data.Infrequent.Slew_Values.Max_Rate

  Max_Slew_Accn            Mode4_Data.Infrequent.Slew_Values.Max_Accn

  Star_Threshold           Mode4_Data.Regular.Star_Threshold

  Slew_Angle               Mode4_Data.Regular.Slew.Angle

  Slew_Rate                Mode4_Data.Regular.Slew.Rate

  Slew_Accel               Mode4_Data.Regular.Slew.Accel

  Slew_Delay_Time          Mode4_Data.Regular.Slew.Slew_Delay_Time

  Bound_Angle              Mode4_Data.Infrequent.Slew_Values.Bound_Angle

  Bound_Rate               Mode4_Data.Infrequent.Slew_Values.Bound_Rate

  SSU_Rate_Limit           Mode4_Data.Infrequent.Slew_Values.SSU_Rate_Limit

  Roll_Accel               Mode4_Data.Infrequent.Slew_Values.Roll_Accel

  Roll_Dead_Band_Level     Mode4_Data.Infrequent.Dead_Band_Levels(Roll)

  A1, A2, A3 (roll)        Mode4_Data_Extra.Infrequent.Filter_Gains_Roll.A1..3

  Xp\[n-1\]                See Xi\[n-1\]

  Yp\[n-1\]                Mode4_Data_Extra.Infrequent.Aged_Variables_Roll.
                           Yp_Old

  B1, B2, B3 (roll)        Mode4_Data.Infrequent.Filter_Gains_Roll.B1 (etc)

  Xi\[n-1\], Yi\[n-1\]     Mode4_Data.Infrequent.Aged_Variables_Roll.\
                           Xi_Old, Yi_Old

  Kr, Krr                  Mode4_Data.Infrequent.Output_Gains.Kr, Krr

  Jrc                      Mode4_Data.Regular.Jrc

  Pitch_Dead_Band_Level    Mode4_Data.Infrequent.Dead_Band_Levels(Pitch)

  A1, A2, A3, A4, A5       Mode4_Data.Infrequent.Filter_Gains_Pitch.A1 (etc)
  (pitch)                  

  Xp\[n-1\], Xp\[n-2\],\   Mode4_Data.Infrequent.Aged_Variables_Pitch.\
  Yp\[n-1\], Yp\[n-2\]     Xp_Old, Xp_Older, Yp_Old, Yp_Older

  B1, B2, B3 (pitch)       Mode4_Data.Infrequent.Filter_Gains_Pitch.B1 (etc)

  Xi\[n-1\]                See Xp\[n-1\]

  Yi\[n-1\]                Mode4_Data.Infrequent.Aged_Variables_Pitch.Yi_Old

  Kp                       Mode4_Data.Infrequent.Output_Gains.Kp
  ------------------------ -----------------------------------------------------

  ------------------------ -------------------------------------------------
  **URD**                  **Data Name**

  **Mode 4 (continued) :** Object 3.4.1

  Yaw_Dead_Band_Level      Mode4_Data.Infrequent.Dead_Band_Levels(Yaw)

  A1, A2, A3, A4, A5 (yaw) Mode4_Data.Infrequent.Filter_Gains_Yaw.A1 (etc)

  Xp\[n-1\], Xp\[n-2\],\   Mode4_Data.Infrequent.Aged_Variables_Pitch.\
  Yp\[n-1\], Yp\[n-2\]     Xp_Old, Xp_Older, Yp_Old, Yp_Older

  B1, B2, B3 (yaw)         Mode4_Data.Infrequent.Filter_Gains_Yaw.B1 (etc)

  Xi\[n-1\]                See Xp\[n-1\]

  Yi\[n-1\]                Mode4_Data.Infrequent.Aged_Variables_Yaw.Yi_Old

  Ky                       Mode4_Data.Infrequent.Output_Gains.Ky

  WS_BM_Matrix             Mode4_Data.Infrequent.WS_BM_Matrix

  Roll_Angle_Increment     Mode4_Data.Infrequent.Roll_Angle_Increment
  ------------------------ -------------------------------------------------

  ------------------------ ---------------------------------------------------
  **URD**                  **Data Name**

  **Mode 5 :**             Object 3.4.1

  H_Dead_Band              Mode5_Data.Infrequent.H_Dead_Band

  A1, A2, A3, A4, A5       Mode5_Data.Infrequent.Filter_Gains_Roll.A1..3
  (roll)                   

  Xp\[n-1\], Xp\[n-2\],\   Mode5_Data.Infrequent.Aged_Variables_Roll.\
  Yp\[n-1\], Yp\[n-2\]     Xp_Old, Xp_Older, Yp_Old, Yp_Older

  B1, B2, B3 (roll)        Mode5_Data.Infrequent.Filter_Gains_Roll.B1 (etc)

  Xi\[n-1\]                See Xp\[n-1\]

  Yi\[n-1\]                Mode5_Data.Infrequent.Aged_Variables_Roll.Yi_Old

  Kr                       Mode5_Data.Infrequent.Output_Gains.Kr

  Pitch_Dead_Band_Level    Mode5_Data.Infrequent.Dead_Band_Levels(Pitch)

  A1, A2, A3, A4, A5       Mode5_Data.Infrequent.Filter_Gains_Pitch.A1 (etc)
  (pitch)                  

  Xp\[n-1\], Xp\[n-2\],\   Mode5_Data.Infrequent.Aged_Variables_Pitch.\
  Yp\[n-1\], Yp\[n-2\]     Xp_Old, Xp_Older, Yp_Old, Yp_Older

  B1, B2, B3 (pitch)       Mode5_Data.Infrequent.Filter_Gains_Pitch.B1 (etc)

  Xi\[n-1\]                See Xp\[n-1\]

  Yi\[n-1\]                Mode5_Data.Infrequent.Aged_Variables_Pitch.Yi_Old

  Kp                       Mode5_Data.Infrequent.Output_Gains.Kp

  Yaw_Dead_Band_Level      Mode5_Data.Infrequent.Dead_Band_Levels(Yaw)

  A1, A2, A3, A4, A5 (yaw) Mode5_Data.Infrequent.Filter_Gains_Yaw.A1 (etc)

  Xp\[n-1\], Xp\[n-2\],\   Mode5_Data.Infrequent.Aged_Variables_Pitch.\
  Yp\[n-1\], Yp\[n-2\]     Xp_Old, Xp_Older, Yp_Old, Yp_Older

  B1, B2, B3 (yaw)         Mode5_Data.Infrequent.Filter_Gains_Yaw.B1 (etc)

  Xi\[n-1\]                See Xp\[n-1\]

  Yi\[n-1\]                Mode5_Data.Infrequent.Aged_Variables_Yaw.Yi_Old

  Ky                       Mode5_Data.Infrequent.Output_Gains.Ky
  ------------------------ ---------------------------------------------------

  ------------------------ ----------------------------------------------
  **URD**                  **Data Name**

  **Mode 6 :**             Object 3.4.1

  Slew_Authorise           Mode4_Data.Regular.Slew.Authorise

  SSU_Authorise            Mode4_Data.Infrequent.SSU_Authorise

  R1, R2,                  CSP_Data.Infrequent.Filter_Gains.R1 (etc.)

  Xpr\[n-2\], Xpr\[n-1\],  CSP_Data.Infrequent.Aged_Variables.\
  Ypr\[n-2\], Ypr\[n-1\]   Xpr_Older, Xpr_Old, Ypr_Older, Ypr_Old

  P1, P2, P3               CSP_Data.Infrequent.Filter_Gains.P1 (etc.)

  Xpp\[n-1\], Ypp\[n-1\]   CSP_Data.Infrequent.Aged_Variables.Xpp_Old,
                           Ypp_Old

  B1, B2, B3, B4, B5       CSP_Data.Infrequent.Filter_Gains.B1 (etc.)

  Xfy\[n-2\], Xfy\[n-1\],  CSP_Data.Infrequent.Aged_Variables.\
  Yfy\[n-2\], Yfy\[n-1\]   Xfy_Older, Xfy_Old, Yfy_Older, Yfy_Old

  Y1, Y2, Y3               CSP_Data.Infrequent.Filter_Gains.Y1 (etc.)

  Xpy\[n-1\]               See Yfy\[n-1\]

  Ypy\[n-1\]               CSP_Data.Infrequent.Aged_Variables.Ypy_Old

  K(Roll, Pitch, Yaw)      CSP_Data.Infrequent.Output_Gains(Roll, Pitch,
                           Yaw)
  ------------------------ ----------------------------------------------

  ------------------------ ---------------------------------------------------
  **URD**                  **Data Name**

  **Mode 7 :**             Object 3.4.1

  Roll_Dead_Band_Level     Mode7_Data.Infrequent.Dead_Band_Levels(Roll)

  A1, A2, A3               Mode7_Data.Infrequent.Filter_Gains_Roll.A1 (etc)

  Xp\[n-1\], Yp\[n-1\]     Mode7_Data.Infrequent.Aged_Variables_Roll.\
                           Xp_Old, Yp_Old

  B1, B2, B3               Mode7_Data.Infrequent.Filter_Gains_Roll.B1 (etc)

  Xi\[n-1\]                SeeXp\[n-1\]

  Yi\[n-1\]                Mode7_Data.Infrequent.Aged_Variables_Roll.Yi_Old

  Kr                       Mode7_Data.Infrequent.Output_Gains(Roll)

  Pitch_Dead_Band_Level    Mode7_Data.Infrequent.Dead_Band_Levels(Pitch)

  A1, A2, A3, A4, A5       Mode7_Data.Infrequent.Filter_Gains_Pitch.A1 (etc)

  Xp\[n-1\], Xp\[n-2\],\   Mode7_Data.Infrequent.Aged_Variables_Pitch.\
  Yp\[n-1\], Yp\[n-2\]     Xp_Old, Xp_Older, Yp_Old, Yp_Older

  B1, B2, B3               Mode7_Data.Infrequent.Filter_Gains_Pitch.B1 (etc)

  Xi\[n-1\]                See Xp\[n-1\]

  Yi\[n-1\]                Mode7_Data.Infrequent.Aged_Variables_Pitch.Yi_Old

  Kp                       Mode7_Data.Infrequent.Output_Gains(Pitch)

  Yaw_Dead_Band_Level      Mode7_Data.Infrequent.Dead_Band_Levels(Yaw)

  A1, A2, A3, A4, A5       Mode7_Data.Infrequent.Filter_Gains_Yaw.A1 (etc)

  Xp\[n-1\], Xp\[n-2\],\   Mode7_Data.Infrequent.Aged_Variables_Yaw.\
  Yp\[n-1\], Yp\[n-2\]     Xp_Old, Xp_Older, Yp_Old, Yp_Older

  B1, B2, B3               Mode7_Data.Infrequent.Filter_Gains_Yaw.B1 (etc)

  Xi\[n-1\]                See Xp\[n-1\]

  Yi\[n-1\]                Mode7_Data.Infrequent.Aged_Variables_Yaw.Yi_Old

  Ky                       Mode7_Data.Infrequent.Output_Gains(Yaw)
  ------------------------ ---------------------------------------------------

  ------------------------- ----------------------------------------------
  **URD**                   **Data Name**

  **FPSS Common             Object 3.4.2
  Functions:**              

  Up, Lp, Uy, Ly            FPSS_Common_Fn_Vars.Up (etc.)

  Pitch_Angle_Ref,          FPSS_Common_Fn_Vars.Pitch_Angle_Ref,
  Yaw_Angle_Ref             Yaw_Angle_Ref

  Dp/2π, Dy/2π              FPSS_Common_Fn_Vars.Dp_Over_Twopi (etc.)

  Xaxis_Att_Limit_Squared   FPSS_Common_Fn_Vars.Xaxis_Att_Limit_Squared

  Xaxis_Off_Pointing_Flag   FPSS_Common_Fn_Vars.Xaxis_Off_Pointing_Flag

  **SSU Common Functions:** Object 3.4.2 (except where stated)

  Control_Star              SSU_Data.Regular.Control_Star

  F (implemented as Frcp =  SSU_Data.Infrequent.Frcp
  1/(35\*F))                

  Star_n_Valid (n = 1..5)   SSU_Data.Infrequent.Star_Valid

  Mapping_Ended             SSU_Data.Infrequent.Mapping_Ended

  Star_Threshold            Mode4_Data.Regular.Star_Threshold (object
                            3.4.1)

  SSU_Z_Limit               SSU_Data.Infrequent.Z_Limit

  SSU_Y_Limit               SSU_Data.Infrequent.Y_Limit

  Roll_Off_Pointing         SSU_Data.Infrequent.Roll_Off_Pointing_Flag

  Roll_Off_Pointing_Limit   SSU_Data.Infrequent.Roll_Off_Pointing_Limit

  Star_Mag_Rel_Trk          SSU_Data.Infrequent.Star_Mag_Rel_Trk

  Star_Eligible             SSU_Data_Extra.Star_Eligible

  Star_Swaps                SSU_Data_Extra.Star_Swaps

  CRP_Requested             Implemented as a single bit in
                            Mode_Status_Word of object 2.1.3

  Z_delta                   SSU_Data_Extra.Z_delta

  Z_Count                   SSU_Data_Extra.Z_Count

  Old_Control_Star          SSU_Data_Extra.Old_Control_Star

  M7S_Count                 SSU_Data_Extra.M7S_Count

  M7S_Increment             SSU_Data_Extra.M7S_Increment

  M7S_Decrement             SSU_Data_Extra.M7S_Decrement

  M7S_Threshold             SSU_Data_Extra.M7S_Threshold

  M7S_Maximum               SSU_Data_Extra.M7S_Maximum

  RSL_Offset                SSU_Data_Extra.RSL_Offset
  ------------------------- ----------------------------------------------

  ------------------------ ----------------------------------------------
  **URD**                  **Data Name**

  **IRU Common             Object 3.4.2
  Functions:**             

  K                        (Implementedinlineincode)

  ∆K                       IRU_Data.Regular.Delta_K

  wd                       IRU_Data.Regular.Wd

  Roll_Rate_Ref            IRU_Data.Regular.Roll_Rate_Ref

  Roll_Angle_Ref_G         IRU_Data.Regular.Roll_Angle_Ref_G

  **PROS Common            Object 3.4.3
  Functions:**             

  Thruster_Torque_Level    PROS_Data_Initial.Regular.Thruster_Moments_A
  main                     

  Thruster_Torque_Level    PROS_Data_Initial.Regular.Thruster_Moments_B
  redundant                

  Min_On_Time              PROS_Data.Infrequent.Min_On_Time

  Gamma                    PROS_Data.Infrequent.Gamma

  thruster modulation      PROS_Data.Regular.Thruster_Usage
  selection                

  DV_Status                PROS_Data.Infrequent.DV_Status

  Burn_Delay_Time          PROS_Data.Regular.Burn_Delay_Time

  Duration                 PROS_Data.Regular.Duration

  Ramp_Time                PROS_Data.Regular.TC_Ramp_Time

  Ramp_Start               PROS_Data.Infrequent.Ramp_Start

  Burn_Time                PROS_Data.Infrequent.Burn_Time

  Roll_Ff_Dem              PROS_Data.Regular.Ff_Dem(Roll)

  Pitch_Ff_Dem             PROS_Data.Regular.Ff_Dem(Pitch)

  Yaw_Ff_Dem               PROS_Data.Regular.Ff_Dem(Yaw)

  Off_Mod_pc               PROS_Data.Infrequent.Off_Mod_pc

  tolerance                PROS_Data.Infrequent.Tolerance

  Fundamental Act.Period   PROS_Data.Infrequent.FAP_Slots_Int

  Axis Actuation Period    PROS_Data.Infrequent.Ta_Values_Int

  Extend                   PROS_Data.Infrequent.Extend
  ------------------------ ----------------------------------------------

  --------------------------- ----------------------------------------------
  **URD**                     **Data Name**

  **WDE Common Functions:**   Object 3.4.3

  default speed               (Implemented inline in code)

  Wheel_Gain                  WDE_Data.Infrequent.Wheel_Gain

  Max_Demand_Torque           WDE_Data.Infrequent.Max_Demand_Torque

  Wheel_Speed_Ref             WDE_Data.Regular.Wheel_Speed_Ref

  output derivation matrices  WDE_Data.Infrequent.Mat

  Sat_Torque                  WFE_Data.Infrequent.Sat_Torque

  Drift_Comp_Period           CRS_Data.Drift_Comp_Period

  A                           CRS_Data.Axes_Body_Matrix

  I1, I2, I3, I4              CRS_Data.Wheel_Inertias

  Filtered_wheel_speed        CRS_Data.Filtered_wheel_speed

  WS_old, WS_older,\          CRS_Data.WS_old, WS_older,\
  FWS_old, FWS_older          FWS_old, FWS_older

  WSF_A..E                    CRS_Data.WSF_A..E

  CRS_Drift_Delta             CRS_Data.CRS_Drift_Delta

  Drift_Estimator_Initial'd   CRS_Data.Drift_Estimator_Initialised
  --------------------------- ----------------------------------------------

  -------------------------- ---------------------------------------------------
  **URD**                    **Data Name**

  **ARD:**                   Object 3.4.2

  Krd                        IRU_Data.Infrequent.Krd

  **Roll Steering Law Common Object 3.4.1
  Functions:**               

  Enable_Roll_Steering_Law   RSL_Data.Enable

  Roll_Steering_Start_Time   RSL_Data.Start_Time

  Roll_Steering_Update       RSL_Data.Update_Period_Period

  Roll_Steering_Address      RSL_Data.Address

  Roll_Steering_Table        RSL_Data.Table

  RSL_Start                  RSL_Data_Extra.RSL_Start

  RSL_Line_Value             SSU_Data_Extra.RSL_Line_Value

  **Mode Transition Flags:** Object 3.4.1

  MT_Flag_YX_Init\           ModeX_Data.Infrequent.Flags.MT_Flag_YX_Init,\
  YX = 12, 22, 23, 33, 34,   X = 2, 3, 4, 6, 7;\
  44, 46, 47, 64, 66, 74, 77 YX = 12, 22, 23, 33, 34, 44, 46, 47, 64, 66, 74, 77

  MT_Flag_54_Init            Mode4_Data_Extra.Infrequent.Flags.MT_Flag_54_Init

  MT_Flag_Y5_Init\           Mode5_Data.Infrequent.Flags.MT_Flag_Y5_Init,\
  Y = 1, 4, 5, 7             Y = 1, 4, 5, 7

  MT_Flag_23_Sunck           Mode3_Data.Infrequent.Flags.MT_Flag_23_Sunck

  MT_Flag_34_Slew            Mode4_Data.Infrequent.Flags.MT_Flag_34_Slew

  MT_Flag_64_Slew            Mode4_Data.Infrequent.Flags.MT_Flag_64_Slew

  MT_Flag_54_Manoeuvre,      Mode4_Data_Extra.Infrequent.Flags.
  MT_Flag_54_Starck          MT_Flag_54_Manoeuvre, MT_Flag_54_Starck

  MT_Flag_47_Starck          Mode7_Data.Infrequent.Flags.MT_Flag_47_Starck

  MT_Flag_47_Thruster        Mode7_Data_Extra.Infrequent.Flags.
                             MT_Flag_47_Thruster
  -------------------------- ---------------------------------------------------

  ---------------------------- ----------------------------------------------------
  **Attitude Manoeuvre Common  Object 3.4.1
  Function**                   

  General_Max_Slew_Rate        Attitude_Manoeuvre_Data.General_Max_Slew_Rate

  CRP_Roll_Max_Slew_Rate       Attitude_Manoeuvre_Data.CRP_Roll_Max_Slew_Rate

  CRP_Roll_Man_Internal\_      Attitude_Manoeuvre_Data.
  Period                       CRP_Roll_Man_Internal_Period

  Accel_Duration               Attitude_Manoeuvre_Data.Accel_Duration

  General_Delta_T              Attitude_Manoeuvre_Data.General_Delta_T

  CRP_Roll_Delta_T             Attitude_Manoeuvre_Data.CRP_Roll_Delta_T

  Attitude_Man_in_Progress     Attitude_Man_in_Progress

  Pitch_Manoeuvre_Requested    Pitch_Manoeuvre_Requested

  Yaw_Manoeuvre_Requested      Yaw_Manoeuvre_Requested

  Roll_Manoeuvre_Requested     Roll_Manoeuvre_Requested

  Requested_Slew_Angle         Requested_Slew_Angle

  Target_Pitch_Angle_Ref\_     Attitude_Manoeuvre_Data.
  Limit                        Target_Pitch_Angle_Ref_Limit

  Target_Yaw_Angle_Ref_Limit   Attitude_Manoeuvre_Data.Target_Yaw_Angle_Ref_Limit

  **Roll Momentum Vector       Object 3.4.2
  Monitoring Common Function** 

  Authorise_Hx                 Hx_Mon_Data.Authorise_Hx

  Hx_Range_Exceeded            Implemented as a single bit in Mode_Status_Word of
                               object 2.1.3

  Hx_Threshold                 Hx_Mon_Data.Hx_Threshold

  Hx_Lowest_Edge               Hx_Mon_Data.Hx_Lowest_Edge

  Init_Hx_Bounds               Hx_Mon_Data.Init_Hx_Bounds
  ---------------------------- ----------------------------------------------------

# APPENDIX B: CHANGE INFORMATION

> This section summarises all significant changes made to this document
> since its previous issue. The page numbers referenced are those of
> this issue.
>
> All sections : Reflects operation of ACU software modified by Gyroless
> update

# APPENDIX C: PATCHES

> The following patches have been designed for the SOHO AOCS ACU
> on-board software:

  ------------ -------------------------------------------- ----------------
  Patch 001    Correction to ABACU201 and ABACU210          SH-MMB-TN-5158
               telecommand start time handling.             

  Patch 002    Correction to ABACU205 acceleration angle    SH-MMB-TN-5158
               derivation                                   

  Patch 003    Modification of SSU control star handling    SH-MMB-TN-5158

  Patch 004    Correction to Roll Steering Law start time   SH-MMB-TN-5158
               processing                                   

  Thruster     Optional deletion or modification of         SH-MMB-TN-5198
  Correction   effective minimum off time for off           
               modulation                                   

  Patch 005    Introduction of SSU SEU staircase filter     SH-MMB-TN-5218

  Patch 006    Introduction of SSU Z-coordinate spike       SH-MMB-TN-5230
               filtering                                    

  Patch 007    Temporary patch for gyroless operation       SH-MMB-TN-7005

  Gyroless     Introduction of new mode to accomodate loss  SH-MMB-RS-7014
  update       of gyros.                                    
  ------------ -------------------------------------------- ----------------

> Patches 001 to 004 are incorporated into PROM version FM_2_3A
> (resident in the ACU). Note, however, that the functional
> modifications introduced by Patches 001 and 004 have been incorporated
> in the new procedures created for the Gyroless update and the
> procedures affected by Patches 002 and 003 are no longer executed in
> the Gyroless software.
>
> Similarly for Patches 005 and 006, which are RAM patches, either the
> modifications have been incorporated in the new procedures or the
> procedures affected are no longer executed. However, one part of Patch
> 005 (the patch to procedure Do_Regular_Memory_Dump) is unpatched as
> part of the Gyroless update.
>
> Patch 007 is superceded by the Gyroless update.
>
> The software as described in this document requires the Gyroless
> update to be in place for the operations to function as described
> herein.