modeling the solar probe plus spacewire...

20
Modeling the Solar Probe Plus SpaceWire Network Hanne Paine, Stony Brook University and JHU/APL This presentation does not contain ITAR restricted information.

Upload: nguyentruc

Post on 27-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Modeling the Solar Probe Plus SpaceWire Network

Hanne Paine, Stony Brook University and JHU/APL

This presentation does not contain ITAR restricted information.

SpaceWire Project Goals

  Develop discrete event model of data transactions between spacecraft components, taking into account protocol overhead and scheduling inefficiencies

  Develop a preliminary bus schedule based on the 50 Hz attitude control cycle

  Validate reliability and responsiveness for attitude control

  Validate throughput for science and engineering data capture, storage and downlink

2

OMNeT++ Simulation

  Discrete event simulation environment based on Eclipse IDE

  Components programmed in C++ and assembled using NEtwork Description (NED) high-level language

  GUI for simulation execution, resources for event logging and analysis

3

NEtwork Description

OMNeT++ Simulation

  Discrete event simulation environment based on Eclipse IDE

  Components programmed in C++ and assembled using NEtwork Description (NED) high-level language

  GUI for simulation execution, resources for event logging and analysis

4

Result / Run Log

SpaceWire Network Connects Solar Probe Components

5

Spacecraft / Model Components: Single Board Computer

6

Spacecraft / Model Components: SpaceWire Routers

7

Spacecraft / Model Components: Spacecraft Interface, Instruments, Sensors

8

Instruments Etc.

Spacecraft / Model Components: Solid State Recorders

9

Spacecraft / Model Components: Wheel / Thruster / Actuator Control Cards

10

Spacecraft / Model Components: Transponders

11

SpaceWire “Bus” Design Concept

12

  SpaceWire time codes are generated and distributed by the SCIF / router card   The SBC Prime uses RMAP to initiate (almost) all data transfer transactions over

SpaceWire   Remote Memory Access Protocol

  As the initiator, the SBC Prime prioritizes data transfers within each 50 Hz / 20 ms frame to ensure response time and throughput requirements are met:   G&C high rate sensor data is collected and G&C processing is initiated   One to four 1 Hz command and telemetry transfers are initiated   Optionally, data is written to SSR A and B   Optionally, data is read from SSR A or B (not both)   Optionally, up to two telemetry frames are transferred to transponder A or B

(not both).   Thruster / Wheel command is transferred to the TAC when ready. This can be

done at any time before initiating the next scheduled transfer.

Event Sequence

Heritage Style Viewgraphs 13

Event Sequence

Heritage Style Viewgraphs 14

Event Sequence

Heritage Style Viewgraphs 15

Event Sequence

Heritage Style Viewgraphs 16

Event Sequence

Heritage Style Viewgraphs 17

Example Bus Schedule

18

FRAME G&C One  Hz  Slot  1 One  Hz  Slot  2 One  Hz  Slot  3 One  Hz  Slot  4 Write  SSRs Read  SSR  XWrite  

Downlink  Frames

Frame  00 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  X,  XFrame  01 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X,  XFrame  02 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  XFrame  03 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X,  XFrame  04 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  X,  XFrame  05 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X,  XFrame  06 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  XFrame  07 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X,  XFrame  08 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  X,  XFrame  09 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X,  XFrame  10 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  XFrame  11 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X,  XFrame  12 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  X,  XFrame  13 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X,  XFrame  14 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  XFrame  15 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X,  XFrame  16 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X X X,  X,  XFrame  17 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst1},   NULL NULL NULL X,  XFrame  18 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst2} NULL NULL NULL X X X,  XFrame  19 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst2} NULL NULL NULL X,  XFrame  20 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst2} NULL NULL NULL X X X,  X,  XFrame  21 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst2} NULL NULL NULL X X,  XFrame  22 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst2} NULL NULL NULL X X X,  XFrame  23 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst2} NULL NULL NULL X,  XFrame  24 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst2} NULL NULL NULL X X X,  X,  XFrame  25 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst2} NULL NULL NULL X,  XFrame  26 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst4},   NULL NULL NULL X X X,  XFrame  27 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst4},   NULL NULL NULL X,  XFrame  28 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst4},   NULL NULL NULL X X X,  X,  XFrame  29 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst4},   NULL NULL NULL X,  XFrame  30 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst5},   NULL NULL NULL X X X,  XFrame  31 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst5},   NULL NULL NULL X X,  XFrame  32 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst5},   NULL NULL NULL X X X,  X,  XFrame  33 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    READ,  CompInst5},   NULL NULL NULL X,  XFrame  34 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    WRITE,  CompInst1},     {SCIF_A,    WRITE,  CompInst2},     {SCIF_A,    WRITE,  CompInst3},     NULL X X X,  XFrame  35 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    WRITE,  CompInst4},     {SCIF_A,    WRITE,  CompInst5},     {SCIF_A,  READ,  CompPDU,  CompPDU},        NULL X,  XFrame  36 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,  READ,  CompPSE,  CompPSE},        {SCIF_A,  READ,  CompCool},     {SCIF_A,  READ,  CompRIOs},     NULL X X X,  X,  XFrame  37 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {XPD_A,  READ,  CompXpndrA},     {XPD_B,  READ,  CompXpndrB},     {SSR_A,  READ,  CompSSRA},     NULL X,  XFrame  38 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SSR_B,  READ,  CompSSRB},     {SBC_C,  READ,  CompSBC_HS},     {TAC_A,  READ,    CompProp},     NULL X X X,  XFrame  39 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {TAC_A,  READ,    CompSA_HGA},     {SCIF_A,  WRITE,  CompPDU},     {SCIF_A,  WRITE,  CompPSE},     NULL X,  XFrame  40 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,  WRITE,  CompCool},     {XPD_A,  WRITE,  CompXpndrA},     {XPD_B,  WRITE,  CompXpndrB},     NULL X X X,  X,  XFrame  41 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SSR_A,  WRITE,  CompSSR},     {SSR_B,  WRITE,  CompSSR},     {SBC_C,  WRITE,  CompSBC_HS},     NULL X X,  XFrame  42 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {TAC_A,  WRITE,    CompProp},     {TAC_A,  WRITE,    CompSA_HGA},     {SCIF_A,  WRITE,  CompImu1},     NULL X X X,  XFrame  43 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,  WRITE,  CompStarTracker1},     {SCIF_A,  WRITE,  CompStarTracker2},     {SCIF_A,  WRITE,  CompSunSensor1},     NULL X,  XFrame  44 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,  WRITE,  CompSunSensor2},     {SCIF_A,  WRITE,  CompSunSensor3},     {SCIF_A,  WRITE,  CompSunSensor4},     NULL X X X,  X,  XFrame  45 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} NULL NULL NULL NULL X,  XFrame  46 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} NULL NULL NULL NULL X X X,  XFrame  47 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} NULL NULL NULL NULL X,  XFrame  48 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} NULL NULL NULL NULL X X X,  X,  XFrame  49 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} NULL NULL NULL NULL X,  X

Read from WISPR

Read from other

components

Null tasks, allowing data

rates to be distributed among 4 stages

Write to components

Detail of Bus Schedule

19

FRAME G&C One  Hz  Slot  1 One  Hz  Slot  2 One  Hz  Slot  3 Write  SSRs Read  SSR  XWrite  

Downlink  Frames

Frame  34 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    WRITE,  CompInst1},     {SCIF_A,    WRITE,  CompInst2},     {SCIF_A,    WRITE,  CompInst3},     X X X,  XFrame  35 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,    WRITE,  CompInst4},     {SCIF_A,    WRITE,  CompInst5},     {SCIF_A,  READ,  CompPDU,  CompPDU},         X,  XFrame  36 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,  READ,  CompPSE,  CompPSE},        {SCIF_A,  READ,  CompCool},     {SCIF_A,  READ,  CompRIOs},     X X X,  X,  XFrame  37 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {XPD_A,  READ,  CompXpndrA},     {XPD_B,  READ,  CompXpndrB},     {SSR_A,  READ,  CompSSRA},     X,  XFrame  38 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SSR_B,  READ,  CompSSRB},     {SBC_C,  READ,  CompSBC_HS},     {TAC_A,  READ,    CompProp},     X X X,  XFrame  39 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {TAC_A,  READ,    CompSA_HGA},     {SCIF_A,  WRITE,  CompPDU},     {SCIF_A,  WRITE,  CompPSE},     X,  XFrame  40 {SCIF_A,    READ,  IMU,  ST},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,  WRITE,  CompCool},     {XPD_A,  WRITE,  CompXpndrA},     {XPD_B,  WRITE,  CompXpndrB},     X X X,  X,  XFrame  41 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SSR_A,  WRITE,  CompSSR},     {SSR_B,  WRITE,  CompSSR},     {SBC_C,  WRITE,  CompSBC_HS},     X X,  XFrame  42 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {TAC_A,  WRITE,    CompProp},     {TAC_A,  WRITE,    CompSA_HGA},     {SCIF_A,  WRITE,  CompImu1},     X X X,  XFrame  43 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,  WRITE,  CompStarTracker1},     {SCIF_A,  WRITE,  CompStarTracker2},     {SCIF_A,  WRITE,  CompSunSensor1},     X,  XFrame  44 {SCIF_A,    READ,  IMU},    {TAC_A,  READ,  SLS1,  SLS2,  SLS3,  SLS4} {SCIF_A,  WRITE,  CompSunSensor2},     {SCIF_A,  WRITE,  CompSunSensor3},     {SCIF_A,  WRITE,  CompSunSensor4},     X X X,  X,  X

G&C 50 Hz 1 Hz Telemetry and Commands

SSR Reads, Writes Telemetry

Frames

Questions?

Heritage Style Viewgraphs 20