telemetry storage systems: a comparison of mission...
TRANSCRIPT
Telemetry Storage Systems:Telemetry Storage Systems:A Comparison of Mission ApproachesA Comparison of Mission Approaches
Robert Klar, Scott Miller and Paul WoodRobert Klar, Scott Miller and Paul WoodFSW FSW 20162016
(Not ITAR Restricted)(Not ITAR Restricted)
OverviewOverview
�� MagnetosphericMagnetospheric MultiscaleMultiscale (MMS)(MMS)–– Overview and Storage ApproachOverview and Storage Approach
�� Cyclone Global Navigation Satellite System (CYGNSS)Cyclone Global Navigation Satellite System (CYGNSS)–– Overview and Storage ApproachOverview and Storage Approach–– Overview and Storage ApproachOverview and Storage Approach
2
MMS MissionMMS Mission
�� MagnetosphericMagnetospheric MultiscaleMultiscale(MMS)(MMS)
–– Constellation of 4 identically Constellation of 4 identically spacecraft in variably spaced spacecraft in variably spaced tetrahedron (7 km to several 100 km)tetrahedron (7 km to several 100 km)
•• Ground contacts must be Ground contacts must be multiplexed in time in order to multiplexed in time in order to retrieve data from all 4 spacecraft retrieve data from all 4 spacecraft retrieve data from all 4 spacecraft retrieve data from all 4 spacecraft each dayeach day
�� Objective: To discover the detailed physics Objective: To discover the detailed physics of the reconnection process including its of the reconnection process including its controlling factors, its spatial distribution, controlling factors, its spatial distribution, and its temporal behavior.and its temporal behavior.
https://mms.gsfc.nasa.gov
3
MMS MissionMMS Mission
�� Solving Solving MagnetosphericMagnetosphericAcceleration, Acceleration, Reconnection, and Reconnection, and Turbulence (SMART) Turbulence (SMART) Instrument SuiteInstrument Suite
–– Central Instrument Data Central Instrument Data
Fields CEB A
FPI IDPU A
CIRASA
Data/LVDSSpW
CIDP +28V
+28V
+28V
Data/LVDS
ActuatorsActuators
+28V
+28V
PSEESA
Actuator +28V
–– Central Instrument Data Central Instrument Data Processor (CIDP)Processor (CIDP)
•• SPARC ProcessorSPARC Processor•• Stores science data Stores science data
for the Instrument for the Instrument SuiteSuite
•• Instruments can Instruments can collect far more data collect far more data than can be sent via than can be sent via downlinkdownlink
CIDP A(1 of 2 blocks shown)
FEEPS 1
FEEPS 2
EIS
HPCA
Data/RS422
CIDP +28V
+28VData/LVDS
+28V
ASPOC 1
ASPOC 2
+28VData/LVDS
+28VData/LVDS
Data/RS422+28V
Data/RS422+28V
Inst. +28VA
CIRASB
PSEESB
4
MMS MissionMMS Mission
�� Highest resolution data is voluminousHighest resolution data is voluminous–– Collect best quality data for region of interestCollect best quality data for region of interest
5
MMS Storage Approach MMS Storage Approach -- CFDPCFDP
�� CCSDS File Delivery ProtocolCCSDS File Delivery Protocol–– CFDP is a protocol for transferring files to and from a spacecraft CFDP is a protocol for transferring files to and from a spacecraft
memorymemory
•• Files can be transferred Files can be transferred reliablyreliably, where it is guaranteed that all data will be , where it is guaranteed that all data will be delivered without error, or unreliably, where a best effort delivery capability is delivered without error, or unreliably, where a best effort delivery capability is provided.provided.provided.provided.
•• Files can be transmitted through at various speeds through different link Files can be transmitted through at various speeds through different link types and through intermediate relay spacecraft.types and through intermediate relay spacecraft.
–– Class 1 Class 1 -- Unreliable transferUnreliable transfer
–– Class 2 Class 2 -- Reliable transferReliable transfer
–– Class 3 Class 3 -- Unreliable transfer Unreliable transfer via one or more waypoints in seriesvia one or more waypoints in series
–– Class 4 Class 4 -- Reliable transfer Reliable transfer via one or more waypoints in seriesvia one or more waypoints in series
•• File transfer can be initiated automatically by the onboard entity or manually File transfer can be initiated automatically by the onboard entity or manually by ground control.by ground control.
Since we do not relay through intermediate waypoints, only Class 1 and Class 2 service are implemented on the MMS CIDP
entity. In order to maximize the science data return, file transfer is initiated by the entity onboard.
6
Why use CFDP?Why use CFDP?
�� Downlink is a precious resourceDownlink is a precious resource–– Ground contacts are limited Ground contacts are limited -- make the most of themmake the most of them–– Lost data can mean lost opportunities for scienceLost data can mean lost opportunities for science
�� Operations costs are a significant part of the mission Operations costs are a significant part of the mission budgetbudget
–– CFDP helps to automate routine data delivery operations to CFDP helps to automate routine data delivery operations to –– CFDP helps to automate routine data delivery operations to CFDP helps to automate routine data delivery operations to simplify operations, thereby providing some promise for reducing simplify operations, thereby providing some promise for reducing these coststhese costs
�� Standard protocol encourages interoperabilityStandard protocol encourages interoperability–– Benefit realized as CFDP is adopted on more missionsBenefit realized as CFDP is adopted on more missions
7
MMS Storage Approach MMS Storage Approach -- CFDPCFDP
�� CIDP Mass Memory is Virtual CIDP Mass Memory is Virtual FilestoreFilestore�� No File SystemNo File System
�� Partitioned into 4 MB fixedPartitioned into 4 MB fixed--size filessize files
�� Flash buffers managed in poolsFlash buffers managed in pools�� InIn--useuse
�� FreeFree
�� HeldHeld�� Available for downlinkAvailable for downlink
�� Downlink may occur while in region of Downlink may occur while in region of interestinterest
�� HighlightsHighlights
–– CCSDS Space Packet Protocol CCSDS Space Packet Protocol
is underlying protocolis underlying protocol
–– Class 2 (Reliable) with Class 2 (Reliable) with
Deferred NAKDeferred NAK
–– Class 1 (Unreliable) is backupClass 1 (Unreliable) is backup
CFDP Library
Communications System
Protocol Entity MIB(Config)
User Application
Virtual Filestore
�� Use NASA GSFC CFDP Use NASA GSFC CFDP
LibraryLibrary
�� Implements State Implements State
MachinesMachines
�� Interfaces to User Interfaces to User
Application, Virtual Application, Virtual
FilestoreFilestore and and
Communications SystemCommunications System
interestinterest
8
RTEMS Real Time Operating System
Command
and Control
CSC
Instrument
Data
Processing
CSC
Data Data
Steering CSC
Trigger Trigger
Control CSU
Serial
Interfaces
Data Steering
Steering
ControlControl
& Status
Control &
Status Telecmds
DQ (other S/C)
Telemetry
CIDP
HK
Mass Memory
Controls
Mass
Memory
Telemetry
Telecmds
Telemetry
MMS Storage Approach MMS Storage Approach -- CFDPCFDP
Multiplex
PDU/Packet Formatting
Frame Formatting
Spacecraft
Interface
CSC
Spacewire
OutOut
FIFO
DQ
& HK
Telemetry Telecommands
HKControlsPlayback/
Transfer
Control
CFDP
CSU
CFDP File Directive PDU
Packets
Real-time Telemetry
Packets
InIn
FIFO
Telecommand
Packets
AOS Transfer Frames
9
File-data (one
chunk at a
time)
Meta-
data
Phase 1 Send Phase 1 Send
the file oncethe file once
Phase 2 Phase 2
HandoffHandoff
EOF*Retransmit
missing data
Phase 3 Phase 3
Fill gapsFill gaps
Ack-
Finished
Phase 4 Shut Phase 4 Shut
downdown(i.e., File System (i.e., File System
Deletes File)Deletes File)
Message sequence
CIDP
MMS Storage Approach MMS Storage Approach -- CFDPCFDP
* Timers are used to ensure retransmission of the EOF, Nak, and Finished messages as
required. The Nak message reports all missing data (including Metadata).
Ack-EOF Nak* Finished*
COMM
SpW TC for
every Frame
Sent
GROUND
Spw TC for
every Frame
Sent
10
�� Application InterfaceApplication Interface–– Calls to CFDP LibraryCalls to CFDP Library
•• Set Configuration (i.e. MIB) Set Configuration (i.e. MIB) DynamicallyDynamically
•• Give Request to LibraryGive Request to Library•• Give PDU to LibraryGive PDU to Library•• Control delivery rate for Control delivery rate for
PDUsPDUsFunction invoked to send
�� Virtual Virtual FilestoreFilestore InterfaceInterface–– Callbacks from libraryCallbacks from library
•• File I/O primitivesFile I/O primitivesfopen(), fseek(), fread(), fwrite(), feof(), fclose()
•• Other Other PosixPosix primitivesprimitivesrename(), remove(), tmpnam()
MMS Storage Approach MMS Storage Approach -- CFDPCFDP
Function invoked to send next data PDU
•• Register callbacks for Register callbacks for IndicationIndication
–– Callbacks from LibraryCallbacks from Library•• CFDP IndicationsCFDP Indications
�� Communication System Communication System InterfaceInterface
–– Callbacks from LibraryCallbacks from Library•• Open PDU channelOpen PDU channel•• Channel Ready?Channel Ready?•• Send PDU on channelSend PDU on channel
11
�� Virtual Virtual FilestoreFilestore InterfaceInterface–– Callbacks from libraryCallbacks from library
•• File I/O primitivesFile I/O primitivesfopen() - transfer file to Output Buffer and optionally perform compression
Set start offset to 0
Return corresponding buffer index
fread()
�� Communication System InterfaceCommunication System Interface–– Callbacks from LibraryCallbacks from Library
•• Open PDU channelOpen PDU channelInitiate HW handshaking
•• Channel Ready?Channel Ready?HW ready if SpW link is up
•• Send PDU on channelSend PDU on channelSend File Directive PDUs to Data Formatter to include in VC stream
Ignore File Data PDUs – these
MMS Storage Approach MMS Storage Approach -- CFDPCFDP
fread()
If first call after fopen() or fseek(), then initiate HW playback
Simply advance read count
fseek()
Set HW start offset for retries
fwrite()
Not allowed
Ignore File Data PDUs – these are being generated by the
12
�� Use Virtual FilenamesUse Virtual Filenames–– Mass Memory Buffer Index + TimestampMass Memory Buffer Index + Timestamp
�� Hardware forms File Data PDUsHardware forms File Data PDUs�� Software forms and responds to File Directive PDUsSoftware forms and responds to File Directive PDUs�� Hardware/Software SynchronizationHardware/Software Synchronization
–– Hardware provides for configuration of start and end offsets in Hardware provides for configuration of start and end offsets in
MMS Storage Approach MMS Storage Approach -- CFDPCFDP
–– Hardware provides for configuration of start and end offsets in Hardware provides for configuration of start and end offsets in Mass Memory BufferMass Memory Buffer
•• Aligned on segment boundaries (i.e. ~ 1 KB)Aligned on segment boundaries (i.e. ~ 1 KB)–– Once playback is initiated, HW transfers File Data PDUs until Once playback is initiated, HW transfers File Data PDUs until
completedcompleted•• Interrupt wakes up SW task when a number of segments Interrupt wakes up SW task when a number of segments
have been transferredhave been transferred•• SW task calls CFDP Library rate control function in a loop to SW task calls CFDP Library rate control function in a loop to
match up file read pointer with those segments sent by HWmatch up file read pointer with those segments sent by HW
13
CYGNSS MissionCYGNSS Mission
�� Cyclone Global NavigationCyclone Global Navigation Satellite Satellite System (CYGNSS)System (CYGNSS)
�� Constellation of 8 lowConstellation of 8 low--earth earth orbiting microsatellites that orbiting microsatellites that receive both direct and receive both direct and reflected signals from the reflected signals from the Global Positioning System Global Positioning System (GPS) satellites(GPS) satellites
�� Direct signals pinpoint Direct signals pinpoint
Objective:Objective:
Study the relationship between ocean surface properties, moist atmospheric Study the relationship between ocean surface properties, moist atmospheric
thermodynamics, radiation and convective dynamics, to determine how a tropical thermodynamics, radiation and convective dynamics, to determine how a tropical
cyclone forms and strengthens.cyclone forms and strengthens.
�� Direct signals pinpoint Direct signals pinpoint satellite positions, while the satellite positions, while the reflected signals respond to reflected signals respond to the ocean surface roughness, the ocean surface roughness, which can be used to derive which can be used to derive wind speedwind speed
http://clasp-research.engin.umich.edu/missions/cygnss
14
CYGNSS MissionCYGNSS Mission
http://clasp-research.engin.umich.edu/missions/cygnss
The 8 CYGNSS microsatellites are at an inclination of 35 degrees and are each capable of
measuring 4 simultaneous reflections, resulting in 32 wind measurements per second
across the globe. Ground tracks for 90 minutes (left) and a full day (right) of wind samples
are shown above.
15
CYGNSS Storage Trade StudyCYGNSS Storage Trade Study
Considerations CFDP Custom Packet Replay
Cost to Design No Impact Minimal Negative Impact
�� To CFDP or not to CFDP?To CFDP or not to CFDP?
�� In contrast to MMS which had long contacts (1 hour / day), CYGNSS has much In contrast to MMS which had long contacts (1 hour / day), CYGNSS has much shorter contacts (10 minutes / two days).shorter contacts (10 minutes / two days).
�� USN does not have bandwidth to relay playback data in realUSN does not have bandwidth to relay playback data in real--timetime
�� NoNo substantial benefit to using CFDP in this casesubstantial benefit to using CFDP in this case
Cost to Design No Impact Minimal Negative Impact
Cost to Implement in FSW Moderate Negative Impact Moderate Negative Impact
Cost to Implement in EGSE Moderate Negative Impact Minimal Negative Impact
Ground System and
Operations Software
Major Negative Impact Minimal Negative Impact
FSW Size Moderate Negative Impact Minimal Negative Impact
FSW Processor Load Moderate Negative Impact Minimal Negative Impact
Downlink Rate Moderate Negative Impact No Impact
16
CYGNSS Storage ApproachCYGNSS Storage Approach
�� Hybrid Hardware/Software ImplementationHybrid Hardware/Software Implementation–– Use CCSDS Space Packet Protocol without CFDPUse CCSDS Space Packet Protocol without CFDP
–– Simple Sequential Simple Sequential Input/OutputInput/Output
�� HardwareHardware
�� Does playback heavy liftingDoes playback heavy lifting
�� Maximizes downlink*Maximizes downlink*
�� Read back CCSDS Space Read back CCSDS Space
�� SoftwareSoftware
�� Does recording heavyDoes recording heavy--liftinglifting
�� Command ERASE of Flash Command ERASE of Flash blocksblocks�� Read back CCSDS Space Read back CCSDS Space
PacketsPackets
�� Formats packets into frames Formats packets into frames and ultimately CADUsand ultimately CADUs
�� One block at a timeOne block at a time�� Interrupt software when Interrupt software when
block playback completeblock playback complete
�� Write complete pages of Write complete pages of FlashFlash
�� Flash blocks only contain Flash blocks only contain complete packets to complete packets to facilitate hardware facilitate hardware playbackplayback
�� TracksTracks bad blocksbad blocks
�� Chains together consecutiveChains together consecutiveblocksblocks for playbacksfor playbacks
17
* - A hardware implementation of the CFDP protocol would be much more complex.
CYGNSS Storage ApproachCYGNSS Storage Approach
ENG_STORED_DIAGSCI_STORED_NOM SCI_STORED_RAWFlash Block W
Flash Block X + 1 Flash Block Y + 1 Flash Block Z + 1
Contains a single ENG_FILL
packet that is used to flush
the VCDU buffer out of the
hardware at the conclusion
of any TLM playback
First Flash Block
�� CCSDS Space Packets stored in partitions that consist of sequential blocks of Flash CCSDS Space Packets stored in partitions that consist of sequential blocks of Flash memorymemory
ENG_STORED_NOM
Nominal Engineering
Played Back through
FPGA on VC2
ENG_STORED_DIAG
Diagnostic Engineering
Played Back through
FPGA on VC2
SCI_STORED_NOM
Nominal Science (DDMs)
Played Back through
FPGA on VC3
SCI_STORED_RAW
Raw IF Science
Played Back through
FPGA on VC3
Flash Block W
Flash Block X Flash Block Y Flash Block Z Last Flash Block
18
Next Block
To Be
Recorded
uint32_t
Block just
before
Next Block to
be Played
Back
uint32_t
Block Area
Start Index
uint32_t
Block Area
Length
uint32_t
Next Record
Page
uint32_t
Number of
Bytes Buffered
uint32_t
Overwrite
Status
uint32_t
Ticking Byte
Counter
uint32_t
Engineering
Stored
Nominal
[Block
Index]
[Block Index] [Block Index] [Block Index] [Page Number] [Number of
Bytes]
[Overwrites
Allowed]
[Byte Counter]
CYGNSS Storage ApproachCYGNSS Storage Approach�� Data Structures Data Structures -- Flash Allocation Table (FAT)Flash Allocation Table (FAT)
�� Track playback and record pointers for circular buffersTrack playback and record pointers for circular buffers
19
Engineering
Stored
Diagnostic
[Block
Index]
[Block Index] [Block Index] [Block Index] [Page Number] [Number of
Bytes]
[Overwrites
Allowed]
[Byte Counter]
Science Stored
DDM
[Block
Index]
[Block Index] [Block Index] [Block Index] [Page Number] [Number of
Bytes]
[Overwrites
Allowed]
[Byte Counter]
Science Stored
RAW
[Block
Index]
[Block Index] [Block Index] [Block Index] [Page Number] [Number of
Bytes]
[Overwrites
Allowed]
[Byte Counter]
CYGNSS Storage ApproachCYGNSS Storage Approach
Block N+1
Block N+2
Block N+3
Block N+4 s = size of
telemetry type
record_blk
EMPTY!
record_blk points to the block that is to be written next.
playback_blk+1 points to the block that is to be played back next.
If playback_blk+1 = record_blk, then the type is EMPTY (nothing to playback).
20
Block N+4
Block N+5
Block N+s-2
Block N+s-1
…
telemetry type
partition in
blocks
playback_blk
Block N+1
Block N+2
Block N+3
Block N+4 s = size of
telemetry type
record_blk points to the block that is to be written next.
playback_blk+1 points to the block that is to be played back next.
If record_blk = playback_blk, then the type is FULL (nothing to record).
FULL!
CYGNSS Storage ApproachCYGNSS Storage Approach
21
Block N+4
Block N+5
Block N+s-2
Block N+s-1
…
telemetry type
partition in
blocks
playback_blk
record_blk
Erase Counts
uint32_t
Block Status
uint32_t
Block #1 [Erase Count 1] [NOT-BAD / BAD]
Block #2 [Erase Count 2] [NOT-BAD / BAD]
Block #3 [Erase Count 3] [NOT-BAD / BAD]
Block #4 [Erase Count 4] [NOT-BAD / BAD]
Size =
128 kB
MRAM
CYGNSS Storage ApproachCYGNSS Storage Approach�� Data Structures Data Structures -- Flash Block Table (FBT)Flash Block Table (FBT)
�� Track number of ERASE cycles and bad blocksTrack number of ERASE cycles and bad blocks
22
Block #5 [Erase Count 5] [NOT-BAD / BAD]
Block #6 [Erase Count 6] [NOT-BAD / BAD]
….continued….
MRAM
SummarySummary
�� MagnetosphericMagnetospheric MultiscaleMultiscale (MMS)(MMS)–– Used CFDP as a frontUsed CFDP as a front--end for a primitive file systemend for a primitive file system
–– Reliable file transfer provided in the protocolReliable file transfer provided in the protocol
–– Worked well for daily contacts of about 1 hourWorked well for daily contacts of about 1 hour
�� Cyclone Global Navigation Satellite System (CYGNSS)Cyclone Global Navigation Satellite System (CYGNSS)–– Used a simple sequential record/playback approachUsed a simple sequential record/playback approach
–– Reliable file transfer not provided by the protocol but loss is Reliable file transfer not provided by the protocol but loss is tolerabletolerable
–– Expect to work well for short contacts where playback data is Expect to work well for short contacts where playback data is buffered by USN and not relayed in realbuffered by USN and not relayed in real--time to mission operationstime to mission operations
23
Questions?Questions?