THE OBJECT-ORIENTED ANALYSIS OF THE ON BOARD COMPUTER SOFTWARE FOR THE BRAZILIAN SCIENTIFIC MICROSATELLITE - SACI-1

 

Mário Eugênio Saturno                                           Walter Abrahão dos Santos

saturno@dea.inpe.br                                                wasky@lac.inpe.br

 

INPE - Instituto Nacional de Pesquisas Espaciais - São José dos Campos - Brazil

Phone: +55-12-325.6186, Fax: +55-12-325.6225

 

ABSTRATCT:

This paper presents the object-oriented analysis (OOA) of the on board software of the SACI-1, the firts Brazilian Microsatellite for Scientific Application. Emphasis is put on the object analysis using the OMT (Object Modeling Technique ) as the underlying OOA methodology and employing the best features of a set of others OOA methods. The on board computer (OBC) hardware architecture uses a fault-tolerant transputer system with dedicated I/O interfaces implementing a RS-422 protocol for bus and payload communications. The OBC software has a specific nucleous where a set of parallel and concurrent applications are run. The OBC software design is being a challenge due to its high complexity and diversity of function. Hence the adoption of a software developmemnt methodology based on the object-oriented paradigm. The application software has the following components: the gorund commmunication, housekeeping and payload data, payload communication and attitude determination and control. A responsability-driven approach is used for the classes decomposition of the OBC software and a set of guidelines presented for the functional and dynamics analysis.


1. INTRODUCTION

            This paper addresses the object-oriented analysis (OOA) of the on board computer (OBC) software of the first Brazilian microsatellite, SACI-1. The analysis process guides itself through many analysis methods to cope with its purpose.

            Traditionally, software systems analysis has been tackled by structured methods as presented in [Yourdon 89] nevertheless the OOA displays some advantages over the structured approach [Rumbaugh 91].

            The OBC hardware architecture is set around a transputer-based system comprising three central processing units (CPU) in a fully redundant scheme. Occam, the natural programming language for transputer systems, is emploied as the developing language for the resident software. Basically, the OBC software architecture deals with the following aspects: bus and payload data acquisition, downlink message enconding, uplink command decoding and distribuition and attitude control.

 

2. THE SACI-1 MICROSATELLITE

            SACI-1 is the first of a series of scientific microsatellites under development at INPE (The Instituto Nacional de Pesquisas Espaciais) [Dos Santos 96]. The project is based upon novel technologinal solutions as well as on previous background in developments for the Brazilian space program.

            SACI-1 will weight 60 Kg and will have a almost circular low earth polar orbit inclined 98.5 degrees to the earth equator at a 750Km altitude. During visible passes, scientific data from any of its four on board experiments will be transmitted to ground. A Long March IV launcher is expected to put on orbit the microsatellite piggybacked to the CBERS (China-Brazil Earth Resources Satellite) whose launch is due on October, 1997.

            The payload comprises four scientific experiments, namely:

·      PLASMEX, a study of the plasma bubbles in the B ionosphere;

·      ORCAS, a telescope to measure the anomalous cosmic radiation;

·      PHOTOMETER, a measurement of the terrestrial airglow emissions and

·      MAGNEX, a triaxial high precision magnetometer to investigate the geomagnetic field.

 

3. THE SACI-1 ON BOARD COMPUTER

            The SACI-1 On Board Computer (OBC) is responsible for the overall on board data acquisition, data message encoding and transmission to ground; command reception, decoding and distribution; experiment control, rotation and attitude computing and controlling.

            The computer comprises three fault-tolerant central processing units (CPU) based on the INMOS T805 transputers and three I/O interfaces. They are connected through 10-Mbps serial links. Each CPU contain a Watch-Dog Timer used to detect CPU malfunctioning and to generate a flag to the other CPU.

            Each transputer has a main memory divided into a ROM of 128 kBytes (32 kBytes x 32 bits) and a RAM of 128 kBytes (32 k x 44, 32 bits for data plus 12 bits for parity checks) protected by an error detection and correction circuit (EDAC) that detects single and double errors and correct single errors and an extended memory to store data, a RAM of 4 Mbytes (1 M x 32 bits). The extended memory has a circuit for latch-up detection as it is prone to it.

            Each interface is internally redundant and connected to two processing units. The Telemetry and Telecommand interface receives telecommands frames from the ground communication system at 19200 bps and sends telemetry frames back at 250000 bps. The Serial interface implements a communication protocol based on RS-422 between the OBC and experiments at 19200 bps. The Data Acquisition and Command interface acquires thermistor, analog and digital readings from the satellite subsystems and generate on/off commands to internal configuration control.

            The T805 is a 32 bit transputer with an integral high speed floating point processor. The transputer is an INMOS microprocessor with four full duplex communications links which facilitates CPU networking enabling parallel and concurrent applications as well as high performance computing. It has an excellent interprocessor communication support, process scheduling and management, microsecond counter, very small cross section, good power consumption.

            Transputers can be programmed in most high level languages, but to gain most benefit from the transputer architecture, the software must be programmed on its home language, Occam. Occam is a high level language and provides the maximum program efficiency to explore all the special features of the transputer architecture. Additionally, Occam also provides a framework for designing concurrent systems.

            As known, electronic components have sensitivity to space radiation. A single event upset (SEU) occurs when a radiation particle change the content of a memory cell. Also, the total ionizing dose shifts the threshold, increasing power consumption and eventual failure. Finally, a single event latch-up occurs when a particle promotes a short circuit in component.

 

4. WHY AN OBJECT-ORIENTED DEVELOPMENT APPROACH?

            The object-oriented development dues specifically with the three initial phases of a software life cicle which includes: analysis, design and implementation. It embodies a new way of seeing real world problems, focusing in the manipulation of software development essentials rather than in the accidents that may emerge from transposing it to a written code.

            Thus the underlying concern of the object-oriented development on the identification and organization of application-domain concepts, rather than their implementation in a programming language, be it object-oriented or not. This applies for our case where the OOA is used for a system whose final implementation language is not object-oriented and suitable extentions are to be undertaken.

            As emphasis is put on initial conceptial issues leaving implementation details on a second plane, chances are the final system may suffer less from design flaws which demand more expensive corrections. Moreover, this approach is less restrictive concerning design choices and may lead to a richier final product.

            Finally, object-oriented development helps specifiers, developers and customers to talk to each other thanks to a higher abstraction level. Therefore it can serve as a tool for specification, analysis, documentation, interfacing and programming which almost cover the whole span of softwar development.

            For an overview of object technology and its applications refer to [El-Rewini 95].

 

5. ON BOARD SOFTWARE CONSTRAINTS AND REQUIREMENTS

            The SACI-1 systems engineering and users in the scientific community have come up with the following list of constraints and requirements for the on board software:

 

5.1 Software Architecture Requirements

            The OBC software shall consist of two hierarchical layers:

·      FT Router: the basic software which shall control the application program execution, provide the interface between application programs and hardware and the communication and synchronization between application programs;

·      Application Programs: the application software which shall perform the OBC tasks mecessary to meet mission requirements as depicted in Fig. 1.

 

 

 

 

 

 


Fig. 1 - SACI-1 On Board Computer Software Architecture.

 

 

5.2 General Constraints

            The OBC application programs must be written in Occam programming language which optimizes CPU performance and code generation. These application programs shall be modelled by a set of parallel processes running simultaneously. The mechanism for the parallel modeling will be supported by Occam that is based upon the concept of parallel in addtition to sequential execution and provides automatic communication and synchronization between concurrent processes. The CPU sharing among processes will controlled by the CPU itself since transputers incorporate this built-in facility.

 

5.3 Functional Requirements

            The OBC functional requirements are listed below:

·      Receive telecommand frames from the TC input driver, analyze them and distribute them to the other process;

·      Upon reception of  time tagged telecommands, store them and send them for proper on/off actuation. The same applies for the case of command messages received from other processes;

·      Implement the spin and attitude control;

·      Acquire on board status data and format it for telemetry generation;

·      Receive payload experiment data and store them in the on board memory for further processing like data compression;

·      Receive event and error reports from the various on board processes and store them in the housekeeping data area;

·      Perform diagnosis of the OBC memory boards and send the diagnosis results to client processes requesting them;

·      Perform the multiple event upset error protection for the mass memory;

 

6. OBJECT-ORIENTED ANALYSIS OF THE ON BOARD SOFTWARE

            The OOA analysis of the on board software is based on a cocktail of OOA techniques using theirs best features:

·      OMT - Object Modeling Technique of [Rumbaugh 91] deals with three models: the object model which describes the objects in the system and their relantionships; the dynamic model, describing the interactions among objects in the system and the functional model, descrinbing the data transformations of the system.

·      CRC cards - based on the Responsibility Driven Design of [Wirfs-Brock 90] which have three components: class, responsability and collaboration all displayed in one side of a CRC card while class atribuites are representated in the back of the CRC cards.

·      Coad-Yourdon - based in [Coad 92] which emphasizes the identification of subjetcs and its objetcs (services, attribuites and relationships).

6.1 The Object Model

            The Object model was strongly influenced by the Coad-Youdon and Wirfs-Brock OOA methodology.

 

6.1.1 Subject Identification

            Based on the constraints and requirements presented earlier we identy the major subjects of the OBC software as depicted in Fig. 2 and their respective responsibilities:

·      Ground Communications: shall send all on-board data (telemetries) to ground and receive telecommands (data/commands) from the ground station.

·      Experiment Communications: shall send commands to experiment processors and receive experiment data from them.

·      Data-Handling: shall collect environment and experiment data and store them into memory blocks.

·      Attitude Control: shall verify spin and attitude control and correct them as necessary.

 

 

 

 

 

 

 

 

 


Fig. 2 - OBC Software Subject Identification based on Coad-Youdon.


 

6.1.2 - Objects Identification

 

            The next step, object identification we enhance the Coad-Yourdon guidelines to incorporate directions of [Gomma 93] tailored for object determination in the domain of real-time systems. Therefore, real time objetcs can be abstracted in the following classification: external device I/O objetcs, control objects, data abstraction objects, algorithm objects and user role objects.

 

            For the purpose of clarity in nomenclature, we will substitute the term ‘object’ of the Coad-Yourdon and Gomma methodologies to the term ‘class’ since this is more general in the sense that an object is an instance for a specific class. Similarlly, we will replace the term ‘subject’ for ‘subsystem’, worth mentioning that subsystems here does not have the same semantics of (spacecraft) subsystems used in the systems engineering jargon. This new nomenclature will help us incorporating some of the ideas of [Wirfs-Brock 90] later on.

 

            Henceforth, in Table 1, we have a list of classes identified per their respective susbsystems together with their acronyms.

 

            In the [Wirfs-Brock 90] methodology, subsystems and their classes have a similarity with the ideas of modular cohesion and coupling in a hierarchical software architecture according to the structured analysis [Pressman 92]. Thus a need to represent collaborations among classes to cope with their responsabilities and the way these collaborations are undertaken is by a network of interobject messages as roughly shown on Fig. 3.


 

Tab.1 - OBC Software Classes Identification per Coad-Yourdon & Gomma.

 

UNDERLYING SUBSYSTEMS

PERTINENT CLASSES

 

Ground Communications

·      ground (Ground)

·      telemetry (Tm)

·      telecomand (Tc)

 

Experiment Communications

·      experiment communications (ExpComm)

·      experiment (Exp)

 

 

 

Data-Handling

·      experiment data acquisition (ExpDatAcq)

·      environment data acquisition (EnvDatAcq)

·      housekeeping (HousKeep)

·      diagnosis (Diag)

·      Fourier analysis (Fourier)

·      memory manager (MemMgr)

 

Attitude Control

·      attitude control and determination (AttCtrlDet)

·      spin control and determination (SpinCtrlDet)

 


 

 

                                                     GROUND

 

 


                                        Ground Communications

 

 

 

 

 

 

 

 


                                                         Data Handling

Retângulo de cantos arredondados: Memory
Manager
                                                  

 

 

 


                               Attitude Ctrl

Retângulo de cantos arredondados: Spin Det.
& Control
                             

Retângulo de cantos arredondados: Fourier
Analisys
Retângulo de cantos arredondados: Housekeeping
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Fig. 3 - Collaboration graph among OBC software classes.


            Next, we explicit the CRC cards fo each classes containing its responsabilities, atributes and collaborations:

 

Class: Telemetry (Tm)

 

Resposabilities:                                                                                                                Collaboration:

·       Get data from many memory areas;                                                                          MemMgr, HousKeep,

                                                                                                                                       EnvAcq&Ctrl

·       Assemble a TM block

·       Start TM transmition upon uplink signaling                                                          Tc

 

Atributes:

·       TMTimeOut: indicates when to stop TM transmission to ground

·       TMRTime: constains a real time TM block

·       TMRTNr: points to the next RT TM block to be sent

·       MemDump: indicates if a memory dump TM block shall be sent.

 
 

 

 

 

 

 

 

Class: Telecommand (Tc)

 

Resposabilities:                                                                                                                Collaboration:

·       Transform TCs received into TC messages                                                           Ground

·       Analyse TC message block

·       Distribute decoded commands to proper adressees                                             EnvAcq&Ctrl, ExpAcq&Ctrl

 

Atributes:

·       TCBuf: buffer of Tcs received from ground

·       TCIdx: points to the position in TCBuf

·       TCPtrRx: points to the received messages

·       TCNxt:indicates the next TC packet number expected.

 
 

 

 

 

 

 

 

Class: Experiment Communication (ExpComm)

 

Resposabilities:                                                                                                                Collaboration:

·       Communicate with the payload experiments                                                          Exp

·       Store messages received into the Experiment data area                                       MemMgr

 

Atributes:

·       RSStateRx[Channel]: informs the next step receiving data from RS channel

·       RSStateTx[Channel]: informs the next step transmitting data to the RS channel

·       RSTxIdx[Channel][Channel]: points to a data message in RS channel

·       RSRxPtr[Channel]: points to a message received

·       RSTxPtr[Channel]: points to a message to be sent.

 
 

 

 

 

 

 

 

Class: Ground (Ground)

 

Resposabilities:                                                                                                                Collaboration:

·       Send TCs to S/C

·       Receive TMs from S/C                                                                               Tm

 

Atributes:

·       to be determined

 
 

 

 

 

 

Class:Experiment Data Acquisition (ExpDatAcq)

 

Resposabilities:                                                                                                                Collaboration:

·       Send messages resquesting experiment data/status                                            ExpComm

·       Send messages received to the experiment data area                                           MemMgr

 

Atributes:

·       ExpPtr: points to a message package

·       ExpIdx: indexes position in a message

 
 

 

 

 

 

Class:Environment Acquisition and Control (EnvAcq&Ctrl)

 

Resposabilities:                                                                                                                Collaboration:

·       acquire data and configure the satellite bus                                                          Tc, Tm, SpinCtrl&Det

                                                                                                                                       AttCtrl&Det, Diag, Fourier

                                                                                                                                       HousKeep, MemMgr

·       mount real time and stored TMs

 

Atributes:

·       EnvBuf: Buffer of environment data

·       EnvBufIdx: buffer of environment data

 
 

 

 

 

 

 

Class:Housekeeping (HousKeep)

 

Resposabilities:                                                                                                                Collaboration: