# Presentation: 517330

## Onboard CORBA StudiesProject Review

- Kevin Rice
- GST/NASA-GSFC Code 588
- April 2001
- (Updated May 2001)
- rice@gst.com

## Project Phases

- Phase 1
- Port satellite flight software to CORBA
- Phase 2
- Port “micro” CORBA to flight u-controllers
- Connect u-controllers & main CPUs via PPP over MUX-1553 bus, using CORBA
- Phase 3
- Develop “ground to space” CORBA experiment in lab environment
- Possibly team with Science System Ltd (Plc) for flight experiments on UoSat-12

## GSFC Flight Software Heritage

**MAP 6/01?**

- Architecture:
- ANSI C
- 1 main flight computer
* *several* u*-controller sub-systems
- 1553/1773 ‘network’
- VxWorks

- Architecture:
- C++
- 1 main flight computer
- VxWorks

## Use MAP Flight Software

**M**icrowave **A**nisotropy **P**robe
- Follow on to COBE
- Measures the cosmic micro-wave background radiation in the Universe
- Will launch in early summer 2001
- Well understood by GSFC flight software branch & largely finished...
- Written in ANSI C

## MAP Hardware Architecture Diagram (Simplified)

- RT

**R000**

**Power RSN**

**HouseKeeping**
**RSN**

**Transponder**
**RSN(A)**

- 1773 Bus

- MSSP

- IRU

- CSS

- DSS

- RWA

- PCS

**R000**

- RT

- RT

- ACE Custom I/O

**ACE**
**RSN (A)**

- Sensors

- ~12-14Mhz
- 32MB of “program memory”
- 256 MB recorder storage,
- VxWorks

- Harvard Architecture
- 64K IRAM
- 64KDRAM
- Custom RSN-OS
- ( 160k, 1MB of IRAM possible)

- 1553/1773 MUX Bus
- Interconnect

- Basically a Distributed Architecture

## Phase 1: MAP Software Architecture Overview

***1773***

- Medium Speed Serial
- Line

*MAC Processor*

**Software Bus**

- Time Code Task

- 1773 Bus Controller Task

- Checksum Task

- Command Ingest Task

- Mem. Scrub Task

- Memory Dwell Task

- Ephemeris Task

- Attitude Control Task

- Instrument Support Task

- Data Storage Task

- Telemetry Output Task

- Telem. & Stat. Task

- Health & Safety Task

- Stored Command Task

- CMD & Tel.

- Transponder

- Power

- Attitude Control

- Housekeeping

- Digital Sensor Input

- XRSN

- PSE
- RSN

- ACE

- HK

- DEU

- The SBUS is used as the message passing “channel”

**MSG**

- MSG

**MSG**

## SBUS Features

- No dynamic memory allocation during runtime...
- Multiple priority channels (tied to 1553), multi-cast, zero copy buffers, static connection table (compiled)
- Maps to 1553/1773 feature for carving up the bus bandwidth which is used for “harder” real-time tasks
- Small footprint (fits in 64K for RSNs, & 32MB for M5)
- Overall Goal: low-latency, bounded jitter, fixed memory size,  DETERMINISTIC

## Phase 1: CORBA PORT

***1773***

- Medium Speed Serial
- Line

***NT**** Processor*

**RT Events**

- Time Code Task

- Checksum Task

- Command Ingest Task

- Mem. Scrub Task

- Memory Dwell Task

- Ephemeris Task

- Attitude Control Task

- Instrument Support Task

- Data Storage Task

- Telemetry Output Task

- Telem. & Stat. Task

- Health & Safety Task

- Stored Command Task

- CMD & Tel.

- Replaced SBUS with TAO Real-time Event Channel

- 1773 Bus Controller Task

- Transponder

- Power

- Attitude Control

- Housekeeping

- Digital Sensor Input

- XRSN

- PSE
- RSN

- ACE

- HK

- DEU

- Actually ported Linux PORT of MAP to CORBA, on NT

- CMD & Tel.

**MSG**

**Ground System**

**MSG**

**MSG**

## Why Use RT-EVENT Channel?

- Easiest place to start, message passing similar to SBUS, supports multi-cast, HAS filtering built-in
- Also seems to support multi-priorities, bounded delivery times, and numerous real-time options (many of which I haven’t experimented with)
- BUT...
- Footprint larger than SBUS, may copy data, dynamic memory allocation, etc...
- Overall Goal seems about the same: low-latency, bounded jitter, DETERMINISTIC
- TESTING needed to compare the two...

## Phase 2: Use Micro-CORBA ORB

- Science Systems Ltd (SSL-Plc) developed a small flight ORB for their RATE experiment
- RATE flew on the STRV-1b satellite last fall with goal of testing CORBA “calls” ground to space...
- Unfortunately, the STRV-1b failed shortly after launch...
- The RATE ORB can be configured to 5-20k depending on desired functionality.
- BUT it is NOT a full featured ORB, or necessarily 100% CORBA compliant...

## SSL “MicroORB” Features(from personal email)

- standard Static Invocation Interface (SII),  no Dynamic Invocation Interface (DII)
- support for all IDL types except "any" and object-by-value
-  POA only for start-up and performing work, i.e. servant creation and processing incoming CORBA requests
-  IIOP & GIOP
-  no use of heap - static build-time dimensioning of tables, e.g. object  reference tables avoids heap fragmentation allows more accurate memory dimensioning diagnostic support for fine tuning during integration/test
-  written in ANSI C, written as many modular source files, allowing it to be built as an archive
-  library, so allowing linkage of only those object files actually  required  reduces memory footprint.
-   as an example a single process written in ANSI C on Solaris on Sparc  workstation with one object servant and one stub both of which have 3 or 4
-   relatively simple methods ORB + stub + skeleton = 10 Kbytes
-      still work in progress so I'd be happier quoting around 20K bytes until I've a more accurate figure

## Phase 2: Port Micro-CORBA to RSNs

- Science System agreed to provide binary version of CORBA using our cross-compilers
- Run PPP over 1553/1773 bus to provide “network” link...
- Map GIOP over PPP, or use GIOP+TCP+PPP if limited address space permits (easiest)

## Phase 2: Micro-CORBA + GIOP + PPP

***1773***

- Medium Speed Serial
- Line

*MAC Processor*

**RT Events/RMI?**

- Time Code Task

- 1773 Bus Controller Task

- Checksum Task

- Command Ingest Task

- Mem. Scrub Task

- Memory Dwell Task

- Ephemeris Task

- Attitude Control Task

- Instrument Support Task

- Data Storage Task

- Telemetry Output Task

- Telem. & Stat. Task

- Health & Safety Task

- Stored Command Task

- CMD & Tel.

- Transponder

- Power

- Attitude Control

- Housekeeping

- Digital Sensor Input

- XRSN

- PSE
- RSN

- ACE

- HK

- DEU

***PPP***

**Ground System**

**MSG**

**MSG**

**MSG**

- Use micro-ORB here, RTEMS, plus 1MB of ram

- Continue using ACE/TAO
- here

- Use 50% of 1553 as serial stream for PPP

## Matching GSFC-FSW Requirements to RT-CORBA?

- Thread-pools with lanes, collocation features are promising for replacing SBUS/Events with RMI
- Multiple priority network connection over 1773, challenging but desirable...
- Low latency, bounded jitter, DETERMINISTIC seems possible...
- BUT... Dynamic memory allocation during runtime, Multi-cast must be supported with looping calls (or use new pre-standard unreliable multi-cast) , and Footprint humongous, can’t support 64K for RSNs, but will support 32MB for M5)

## Phase 3: CORBA Ground to Space

- Develop in lab “flat sat” test bed to simulate ground to space CORBA
- Possibly experiment with simulated link delays and alternative protocol suites
- TCP, SCPS-TP, CCSDS (using ORB level re-transmission of GIOP?)
- Team with Science Systems Ltd on RATE “2”, using UoSAT-12

## Phase 3: CORBA Ground to Space Concept

- End-User ORB

- Control Center
- ORB(s)

- ORB Bridge?

- Protocol
- Gateway?

- TCP/IP

- TCP/IP

- GIOP

- GIOP

- TCP or SCPS-TP

- CORBA

- TCP/IIOP

- SCPS-TP?

- GIOP

- ORB Router?

## Phase Status

- Phase 1:
- Complete, but limited testing...
- Phase 2:
- Currently working w/OAR Inc, to port RTEMS-OS to *u*-controller, RTEMS can be configured to 32-120K with TCP stack (An RSN 160KB, or 1MB will need to be used...)
- July ’01 to start work w/SSL to port micro-ORB
- Design proceeding for RMI version
- Ready to test RT-Events vs. SBUS vs. UDP-SBUS

## Phase Status Cont...

- Phase 3:
- SSL secured funding with BNSC for UoSat-12 experiments, NASA-GSFC seeking funding...
- Or I have 1 yr to experiment with this in a lab environment, starting Oct 1 2001.

## Conclusion

- CORBA not quite ready for space environment, footprint is too large, performance is suspect...
- But functionally, it’s just what we need, and could be applied in a variety of ways from ground system design, to flight software, to more esoteric ideas like “CORBA ground to space...”

## Backup Slides

## SOIF Reference Model : Standard Onboard Interface