BEPI MMO Telemetry format notes
===============================
== Data frames format
Low level data frame header :
- Data [0] =
0x01 : First data
0x04 : Final data
0x02 : Normal data
With First data :
data [13..17] = passno
data [18] = sat ID
For other kind of data:
- Data [8..11] = len
Remaining data [12,..] are copied into read_pkt data structure:
- 64 bytes structure (including ad_tim)
- CCSDS header
== ADU : Application Data Unit
C'est une paquet de données au sens de l'instrument.
Elle doit fournir, dans la seconde entête CCSDS du TM packet les infos suivantes :
. Time (when ADU is generated)
. Packet ident (APID)
. Category (Section 7)
. ADU count (modulo 64)
. Packet sequence (pour chaque ADU)
== MMO TM packet
Division des ADU en plusieurs parties pour la transmission.
Pour chaque TM packet, la seconde entête CCSDS contient :
. Time (when ADU is generated)
. Packet ident (APID)
. Category (Section 7)
. ADU count (modulo 64)
. Packet sequence (pour chaque ADU)
. Packet sequence count (pour chaque ADU) modulo 65536
. ADU length
=== Décomposition
Si le paquet ADU contient dans un MMO TM packet,
l'entête est constituée :
* CCSDS header 1 (6 octets)
* CCSDS header 2 (7 octets)
* 1 octet vide
Si le paquet ADU doit être partagé en plusieurs MMO TM packet, l'entête est alors constituée de :
* CCSDS header 1 (6 octets)
* CCSDS header 2 (12 octets)
Les champs Packet Sequence Count (16 bits) et ADU lenth (24 bits)
sont ajoutés en fin de header 2
Cf. page 67 MMO Telemetry/Command Design Criteria
== Format des trames
=== CCSDS Header 1
.CCSDS Primary Header
[packetdiag, images/mmo.png]
----
{
colwidth = 16
colheight=2
node_height = 30
0-2 : Version
3 : Type
4: Sec header flag [rotate = left]
5-15: APID
16-17: Sequence flag
18-31: Sequence count
32-47: Packet length
}
----
=== CCSDS Header 2
== Node identification
.HK
----
APID == 0x628 && categ == 33 && pkt_id == 0
----
.L MODE
----
APID == 0x528 && categ == 51 && pkt_id == 2
----
.M MODE
----
APID = 0x528 && categ = 61 && pkt_id == 3
----
.H MODE
----
APID = 0x528 && categ in (71,81,91,101,111,121) && pkt_id in (5,6,7,8,9)
----
For each mode, pcs_flag field indicate:
----
11 : unique
01 : start
20 : continue
10 : stop
----
[[MEMDUMP]]
== Memory Dump data
We find some description of data APID in the following document:
link:documents/JAXA/JX-MMO-C0007_TCDC_v1_20100120.pdf[],
_See : Table 4.2.2 : Application Process ID for Telemetry_
APID is composed by several binary fields:
* Common use (3 bits)
----
100 : Report telemetry
101 : Mission telemetry
110 : HK telemetry
111 : Dump telemetry
----
* Node ID (5 bits)
----
Binary : Hexadecimal : Meaning
00001 : 01 : DMC
00010 : 02 : PCD
00011 : 03 : MDP1
00100 : 04 : MDP2
00101 : 05 : MEA1
00110 : 06 : MEA2
00111 : 07 : MIA
01000 : 08 : MSA
01001 : 09 : HEP-e
01010 : 0A : HEP-i
01011 : OB : ENA
----
* Component extension bits (3 bits)
----
000 : Fixed
----
.Example :
----
MEA1 SC data : 101 00101 000 => 0x528
MEA1 HK data : 110 00101 000 => 0x628
MEA1 memDump : 111 00101 000 => 0x728
MEA2 SC data : 101 00110 000 => 0x530
MEA2 HK data : 110 00110 000 => 0x630
MEA2 memDump : 111 00110 000 => 0x730
----
Unfortunately, APID 0x728 and 0x730 doesn't work to download memory DUMP.
==== Memory dump
It seems that memory dump are only available for MDP1 and MDP2, not for usual instruments.
----
MDP1 memdump : 111 00011 000 => 0x718
MDP2 memdump : 111 00100 000 => 0x720
----
In order to obtain memory dump data for MEA, we have to download MDP1 Memory Dump (APID = 0x718),
which is handling MEA1 and MEA2 instruments.
Therefore, we have to parse memory dump content to isolate memory dump for each instrument,
using NODE_ID field (05 for MEA1, 06 for MEA2).
.Example
----
# Date : 2012-355T19:17:30.382000Z
# APID : 0718
# Seq : 00
# Header : 00 00 02 05 01 05 00 00 06 00
# Time : 01
# Node ID : 05
# Address : 00 00 06 00
#
00000600 : 02 1A 02 16 02 11 02 0D 02 09 02 05 02 00 01 FC
00000610 : 01 F8 01 F4 01 EF 01 EB 01 E7 01 E3 01 DE 01 DA
00000620 : 01 D6 01 D2 01 CE 01 C9 01 C5 01 C1 01 BD 01 B8
00000630 : 01 B4 01 B0 01 AC 01 A7 01 A3 01 9F 01 9B 01 96
00000640 : 01 92 01 8E 01 8A 01 86 01 81 01 7D 01 79 01 75
00000650 : 01 70 01 6C 01 68 01 64 01 5F 01 5B 01 57 01 53
00000660 : 01 4E 01 4A 01 46 01 42 01 3E 01 39 01 35 01 31
00000670 : 01 2D 01 28 01 24 01 20 01 1C 01 17 01 13 01 0F
00000680 : 01 0B 01 07 01 02 00 FE 00 FA 00 F6 00 F1 00 ED
00000690 : 00 E9 00 E5 00 E0 00 DC 00 D8 00 D4 00 CF 00 CB
000006A0 : 00 C7 00 C3 00 BF 00 BA 00 B6 00 B2 00 AE 00 A9
000006B0 : 00 A5 00 A1 00 9D 00 98 00 94 00 90 00 8C 00 87
000006C0 : 00 83 00 7F 00 7B 00 77 00 72 00 6E 00 6A 00 66
000006D0 : 00 61 00 5D 00 59 00 55 00 50 00 4C 00 48 00 44
000006E0 : 2E E3 2D E5 2C E7 2B E9 2A EB 29 EC 28 EE 27 F0
000006F0 : 26 F2 25 F4 24 F6 23 F8 22 FA 21 FC 20 FE 20 00
00000700 : A3 AD A0 F0 28 F7 BA 96 50 5F C4 75 4C D3 61 15
00000710 : 86 D7 F1 27 E1 5A E6 5A 49 D6 AF 13 20 9D 19 6E
00000720 : 30 8B A5 B2 C4 8A 01 03 32 78 7E B1 C0 AD D1 7A
00000730 : 9A 44 09 90 97 E6 8C 15 07 4B A6 0D DC FD 69 53
00000740 : D7 1E 68 40 16 D2 E1 2D D0 29 02 81 EA 4E C0 F9
00000750 : C0 3F B7 37 95 D2 0B 17 71 67 BD A8 1A 22 1F 0C
00000760 : BA 16 AB 87 82 1E 97 CC AF C2 DB C1 09 9A 48 94
00000770 : 89 66 4A 6F 5B 6C F9 61 D6 42 7D 28 83 24 45 C3
00000780 : CA D4 48 86 13 62 83 02 97 AF 10 F0 D0 AD 12 6A
00000790 : 2F CC 51 32 8F 6B 2C AA D7 25 05 2E 07 7A 0B 3F
000007A0 : FF 30 78 EF BB 35 D0 9D 9F FA 9A 18 7D 38 AA 61
000007B0 : 62 7A BF 06 94 36 A9 41 B5 AA 91 86 C6 DE 2B F0
000007C0 : D9 71 7F AD 74 93 55 EA 61 9D E7 06 00 87 28 5E
000007D0 : B3 34 A0 DB A2 11 84 E8 B5 08 F2 C8 6D 6A 15 D9
000007E0 : 70 25 10 98 9A 14 5B 03 5B 2B D5 A4 0F 84 D0 27
000007F0 : B2 F2 E4 70 F9 20 DA A7 D5 D2 B4 08 CD 92 6A 77
----