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 ----