modeling the solar probe plus spacewire...
Post on 27-Jul-2018
218 Views
Preview:
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 “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.
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
top related