Introduction

We have problem to set timetags for science data.

We tried to use the following algotithm, relative to various telemetry levels.

Telemetry levels

The BEPI telemetry data is encapsulated in various data levels :

  • SDTP packet

  • CCSDS packet

  • Mission or HSK packets

SDTP frame structure

SDTP header

CCSDS packet

The SDTP header contains a datetime, BCD encoded, with :

yyyyddddhhmmssmmmmmm

CCSDS frame structure

CCSDS header

packet #1

packet #2…

The CCSDS header contains datetime information :

  • An unsigned 32 bits integer,

  • that gives offset from an unknown origin,

  • each tick corresponding to 1s/32 = 31.25 ms

HSK packets

Monitored HK data

User HK data

Software HK data

Each HSK data is encapsulated in a single CCSDS frame, himself encapsulated in a single SDTP frame.

There is no specific header that contains datetime information in HSK packets.

So we can consider using the SDTP header timing information to compute CCSDS timing counter origin, supposing they correspond to the same timestamp.

Mission header (science data)

Science packet header

data

Several science data packets should be encapsulated in a single CCSDS frame,

Each science packet header contains datetime information :

  • an unsigned 32 bits integer

  • that gives offset from an unknown origin

  • each tick corresponding to 1s/512 ≃ 1,95.. ms

Algorithm

We are using HSK data to recompute the origin of time counters, supposing that the timetag given in SDTP header of each HSK packet correspond to the same timetag that the CCSDS counter.

From the SDTP header, we can extract a datetime yyyy/dddThh:mm:ss.mmmmmm

From the CCSDS header, we can extract a counter ccsds.time, and then recompute the origin of this counter :

origin = yyyy/dddThh:mm:ss.mmmmmmmm - ccsds.time / 32s

Then, we can use this time origin, considering it’s the origin of each CCSDS timetags, but also of each science data packet.

We can recompute timetags for science data, using :

timetag = origin + science.time / 512s

Example of MEA1 data for 2017/02/03

Recompute origin of ticks

The first HSK packet of MEA1 data for 2017/02/03 comes with an SDTP header datetime :

TIME (SDTP)  : 2017-034T12:06:58.854437Z

It encapsulate a CCSDS packet, with a counter :

TIME (CCSDS) : 0007D8D9     514265  16070.781

First value in hexadecimal, second one is decimal conversion, and the last is in seconds.

So, we can recompute origin of CCSDS time :

origin  = 2017-034T12:06:58.854437Z - 514265 / 32s
        = 2017-034T12:06:58.854437Z - 16070 s
        = 2017-02-03T07:39:08
Note

We can recompute the counter origin with any HSK packet, not only the first one.

HSK data have a periodicity of 8s, that we found both is SDTP timetags and in CCSDS counter ticks.

Computation of ticks origine gives roughly the same result (+/- some ms)

Recomputing science data timetags

The first science packet of MEA1 data comes with :

TIME (TI0)   : 0096CC16    9882646  19302.043

We can recompute time :

timetag = origin + 9882646 / 512s
        = origin + 19302.043s
        = 2017-02-03T13:00:50

This algorithm seems to works, except for a couple of days.

Problem for MEA1 data for 2014/11/16

The first HSK MEA1 data packet comes with :

TIME (SDTP)  : 2014-320T00:00:00.832437Z
TIME (CCSDS) : 01229759   19044185 595130.781

We can recompute ticks origin :

origin  = 2014-320T00:00:00.832437Z - 595130.781 s
        = 2014-11-09T02:41:09

The first SCI data packet comes with :

TIME (TI0)   : 113AC214  289063444 564577.062

If we recompute :

timetag = origin + 564577.062 s
        = 2014-11-15T15:30:46.281000

Problem: the science packet is not in time range 2014-11-16T00:00:00 - 2014-11-17T00:00:00