The following tables describe the binary encodings of the data model using the ACN Encoding Rules.

Asn1 file : base-types.asn

Module : base-types

      
T-uint8(INTEGER) ASN.1 ACN min = 1 bytes max = 1 bytes
Constraints Min Length (bits) Max Length (bits)
(0 .. 255) 8 8
 
T-uint16(INTEGER) ASN.1 ACN min = 2 bytes max = 2 bytes
Constraints Min Length (bits) Max Length (bits)
(0 .. 65535) 16 16
 
T-uint14(INTEGER) ASN.1 ACN min = 2 bytes max = 2 bytes
Constraints Min Length (bits) Max Length (bits)
(0 .. 16383) 14 14
 
T-uint32(INTEGER) ASN.1 ACN min = 4 bytes max = 4 bytes
Constraints Min Length (bits) Max Length (bits)
(0 .. 4294967295) 32 32
 
T-address(OCTET-STRING) ASN.1 min = 4 bytes max = 4 bytes
Length is Fixed equal to 4, so no length determinant is encoded.
No Field Comment Type Constraint Min Length (bits) Max Length (bits)
1 Item #1 OCTET 8 8

. . .

4 Item #4 OCTET 8 8
 
T-1000(INTEGER) ASN.1 ACN min = 4 bytes max = 4 bytes
cannot define types with constraints in ACN file
Constraints Min Length (bits) Max Length (bits)
(0 .. 1000) 32 32
 
T-timestamp(OCTET-STRING) ASN.1 ACN min = 6 bytes max = 6 bytes
Format not yet determined
Length is Fixed equal to 6, so no length determinant is encoded.
No Field Comment Type Constraint Min Length (bits) Max Length (bits)
1 Item #1 OCTET 8 8

. . .

6 Item #6 OCTET 8 8
 
T-NULL(INTEGER) ASN.1 ACN min = 0 bytes max = 0 bytes
Constraints Min Length (bits) Max Length (bits)
(0) 0 0
 
T-apid(SEQUENCE) ASN.1 min = 2 bytes max = 2 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 process-id always INTEGER (0 .. 127) 7 7
2 packet-category always INTEGER (0 .. 15) 4 4
 
T-packetSequenceControl(SEQUENCE) ASN.1 min = 2 bytes max = 2 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 sequence-groupingFlag Enumeration's values:
  • continuation-sequence-packet(0)
  • firsts-sequence-packet(1)
  • last-sequence-packet(2)
  • stand-alone-packet(3)
always T-sequenceGroupingFlag N.A. 2 2
2 sequence-count always T-uint14 N.A. 14 14
 
T-sequenceGroupingFlag(ENUMERATED) ASN.1 min = 1 bytes max = 1 bytes
Enumeration's values:
  • continuation-sequence-packet(0)
  • firsts-sequence-packet(1)
  • last-sequence-packet(2)
  • stand-alone-packet(3)
Constraints Min Length (bits) Max Length (bits)
N.A. 2 2
 
T-dpu-memory-id(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
Constraints Min Length (bits) Max Length (bits)
N.A. 8 8
 

Asn1 file : telecommand.asn

Module : telecommand

      
T-telecommand(SEQUENCE) ASN.1 ACN min = 12 bytes max = 1022 bytes








General Telecommand structure







No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 packet-header always TC-packetHeader N.A. 48 48
2 data-field-header always T-tc-dataFieldHeader N.A. 32 32
3 application-data always T-tc-applicationData N.A. 0 8080
4 crc always T-uint16 N.A. 16 16
 
TC-packetHeader(SEQUENCE) ASN.1 ACN min = 6 bytes max = 6 bytes
TC-Header and related types







No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 packet-id always T-tc-packetID N.A. 16 16
2 packet-sequence-control always T-packetSequenceControl N.A. 16 16
3 packet-length always T-uint16 N.A. 16 16
 
T-tc-packetID(SEQUENCE) ASN.1 ACN min = 2 bytes max = 2 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 ccsds-version-number always NULL N.A. 3 3
2 packet-type always NULL N.A. 1 1
3 has-data-fieldhdr always NULL N.A. 1 1
4 apid always T-apid N.A. 11 11
 
T-tc-dataFieldHeader(SEQUENCE) ASN.1 ACN min = 4 bytes max = 4 bytes
TC-Data-Field-Header and related types










No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 ccsds-2nd-header-flag always NULL N.A. 1 1
2 packet-pus-version always NULL N.A. 3 3
3 ack-execution-completion always BOOLEAN N.A. 1 1
4 ack-execution-progress always BOOLEAN N.A. 1 1
5 ack-execution-start always BOOLEAN N.A. 1 1
6 ack-acceptance always BOOLEAN N.A. 1 1
7 service-type always T-uint8 N.A. 8 8
8 service-subtype always T-uint8 N.A. 8 8
9 source-id Enumeration's values:
  • source1-dummy(0)
  • source2-dummy(1)
always T-sourceId N.A. 8 8
 
T-sourceId(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
source Ids TBD
Enumeration's values:
  • source1-dummy(0)
  • source2-dummy(1)
Constraints Min Length (bits) Max Length (bits)
N.A. 8 8
 
T-tc-applicationData(CHOICE) ASN.1 ACN min = 0 bytes max = 1010 bytes







-
Telecommand application data







-
List of all available TCs categorized by their respective pus(-sub)types
Definition of actual payload data is done in respective Types below
In the ACN-file this type is used to automatically assign the pustype and subtype fields
in encoding and determine the packet type from pustype and subtype in decoding
Types defined as T-NULL have no actual payload data besides the fields
for pustype and subtype.
No ACN Parameterswhat is this? Type
1 pusType T-uint8
2 pusSubType T-uint8
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tc-3-27-update-hk-period pusType=3 AND pusSubType=27 TC-UPDATE-HK-PERIOD N.A. 32 32
2 tc-6-2-load-memory pusType=6 AND pusSubType=2 TC-LOAD-MEMORY N.A. 112 8080
3 tc-6-5-dump-memory pusType=6 AND pusSubType=5 TC-DUMP-MEMORY N.A. 80 80
4 tc-6-9-check-memory pusType=6 AND pusSubType=9 TC-CHECK-MEMORY N.A. 72 72
5 tc-6-129-transfer-image pusType=6 AND pusSubType=129 TC-TRANSFER-IMAGE N.A. 80 80
6 tc-210-3-reset-dpu pusType=210 AND pusSubType=3 T-NULL N.A. 0 0
7 tc-210-4-enable-watchdog pusType=210 AND pusSubType=4 T-NULL N.A. 0 0
8 tc-210-5-disable-watchdog pusType=210 AND pusSubType=5 T-NULL N.A. 0 0
9 tc-210-6-boot-iasw pusType=210 AND pusSubType=6 TC-BOOT-IASW N.A. 80 80
10 tc-197-2-report-boot pusType=197 AND pusSubType=2 T-NULL N.A. 0 0
 
TC-UPDATE-HK-PERIOD(SEQUENCE) ASN.1 ACN min = 4 bytes max = 4 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 hk-report-sid always T-uint8 N.A. 8 8
2 spare always NULL N.A. 8 8
3 hk-report-period always T-uint16 N.A. 16 16
 
TC-LOAD-MEMORY(SEQUENCE) ASN.1 ACN min = 14 bytes max = 1010 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 dpu-memory-id Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
always T-dpu-memory-id N.A. 8 8
2 spare always NULL N.A. 8 8
3 start-address always T-address N.A. 32 32
4 block-length always T-1000 N.A. 32 32
5 block-data always OCTET-STRING (SIZE(4 .. 1000)) 32 8000
 
TC-DUMP-MEMORY(SEQUENCE) ASN.1 ACN min = 10 bytes max = 10 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 dpu-memory-id Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
always T-dpu-memory-id N.A. 8 8
2 spare always NULL N.A. 8 8
3 start-address always T-address N.A. 32 32
4 block-length always T-uint32 N.A. 32 32
 
TC-CHECK-MEMORY(SEQUENCE) ASN.1 ACN min = 9 bytes max = 9 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 dpu-memory-id Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
always T-dpu-memory-id N.A. 8 8
2 start-address always T-address N.A. 32 32
3 block-length always T-uint32 N.A. 32 32
 
TC-TRANSFER-IMAGE(SEQUENCE) ASN.1 ACN min = 10 bytes max = 10 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 source-memory-id Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
always T-dpu-memory-id N.A. 8 8
2 source-address always T-address N.A. 32 32
3 destination-memory-id Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
always T-dpu-memory-id N.A. 8 8
4 destination-addr always T-address N.A. 32 32
 
TC-BOOT-IASW(SEQUENCE) ASN.1 ACN min = 10 bytes max = 10 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 iasw-image-memory-id Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
always T-dpu-memory-id N.A. 8 8
2 spare always NULL N.A. 8 8
3 iasw-image-address always T-address N.A. 32 32
4 iasw-start-address always T-address N.A. 32 32
 

Asn1 file : telemetry.asn

Module : telemetry

      
T-tc-packetID(INTEGER) ASN.1 ACN min = 2 bytes max = 2 bytes
T-tc-packetID FROM telecommand;
Constraints Min Length (bits) Max Length (bits)
(0 .. 65535) 16 16
 
T-telemetry(SEQUENCE) ASN.1 ACN min = 18 bytes max = 1027 bytes







-
General Telemetry structure







-
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 packet-header always TM-packetHeader N.A. 48 48
2 data-field-header always T-tm-dataFieldHeader N.A. 80 80
3 application-data always T-tm-applicationData N.A. 1 8080
4 crc always T-uint8 N.A. 8 8
 
TM-packetHeader(SEQUENCE) ASN.1 ACN min = 6 bytes max = 6 bytes
TM-Header and related types







No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 packet-id always T-tm-packetID N.A. 16 16
2 packet-sequence-control always T-packetSequenceControl N.A. 16 16
3 packet-length always T-uint16 N.A. 16 16
 
T-tm-packetID(SEQUENCE) ASN.1 ACN min = 2 bytes max = 2 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 version-number always NULL N.A. 3 3
2 packet-type always NULL N.A. 1 1
3 has-data-fieldhdr always NULL N.A. 1 1
4 apid always T-apid N.A. 11 11
 
T-tm-dataFieldHeader(SEQUENCE) ASN.1 ACN min = 10 bytes max = 10 bytes
TM-Data-Field-Header and related types










No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 spare1 always NULL N.A. 1 1
2 packet-pus-version always NULL N.A. 3 3
3 spare2 always NULL N.A. 4 4
4 service-type always T-uint8 N.A. 8 8
5 service-subtype always T-uint8 N.A. 8 8
6 destination-id Enumeration's values:
  • destination1-dummy(0)
  • destination2-dummy(1)
always T-destinationId N.A. 8 8
7 time always T-timestamp N.A. 48 48
 
T-destinationId(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
TBD
Enumeration's values:
  • destination1-dummy(0)
  • destination2-dummy(1)
Constraints Min Length (bits) Max Length (bits)
N.A. 8 8
 
T-tm-applicationData(CHOICE) ASN.1 ACN min = 1 bytes max = 1010 bytes








Telemetry application data








List of all available TMs categorized by their respective pus(-sub)types
Definition of actual payload data is done in respective Types below
In the ACN-file this type is used to automatically assign the pustype and subtype fields
in encoding and determine the packet type from pustype and subtype in decoding
Types defined as T-NULL have no actual payload data besides the fields
for pustype and subtype.
Some services with the same pustype and subtype can send differently formatted
TM-packets this is handled by other CHOICE-types further down.
No ACN Parameterswhat is this? Type
1 pusType T-uint8
2 pusSubType T-uint8
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tm-1-1-acc-sucess pusType=1 AND pusSubType=1 TM-ACC-SUCCESS N.A. 32 32
2 tm-1-2-acc-failure pusType=1 AND pusSubType=2 TM-ACC-FAILURE N.A. 128 128
3 tm-1-7-exe-success pusType=1 AND pusSubType=7 TM-EXE-SUCCESS N.A. 32 32
4 tm-1-8-exe-failure pusType=1 AND pusSubType=8 TM-EXE-FAILURE N.A. 96 96
5 tm-3-25-hk pusType=3 AND pusSubType=25 TM-DBS-HK N.A. 1072 1072
6 tm-6-10-memory-check pusType=6 AND pusSubType=10 TM-MEMORY-CHECK N.A. 96 96
7 tm-6-6-memory-dump pusType=6 AND pusSubType=6 TM-MEMORY-DUMP N.A. 112 8080
8 tm-197-1-boot-report pusType=197 AND pusSubType=1 TM-BOOT-REPORT N.A. 1 1
9 tm-5-1-event-pr-nominal pusType=5 AND pusSubType=1 TM-EVENT-PR-NOMINAL-REPORT N.A. 64 64
10 tm-5-2-event-low-severity pusType=5 AND pusSubType=2 TM-EVENT-ANOMALY-REPORT-LOW-SEVERITY N.A. 32 128
11 tm-5-3-event-medium-severity pusType=5 AND pusSubType=3 TM-EVENT-ANOMALY-REPORT-MEDIUM-SEVERITY N.A. 32 128
12 tm-5-4-event-high-severity pusType=5 AND pusSubType=4 TM-EVENT-ANOMALY-REPORT-HIGH-SEVERITY N.A. 48 192
 
TM-ACC-SUCCESS(SEQUENCE) ASN.1 ACN min = 4 bytes max = 4 bytes
TMs of pusservice 1 and related types









No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tc-packet-id always T-tc-packetID N.A. 16 16
2 tc-Sequence-control always T-packetSequenceControl N.A. 16 16
 
TM-ACC-FAILURE(SEQUENCE) ASN.1 ACN min = 16 bytes max = 16 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tc-failure-code Enumeration's values:
  • illega-apid(0)
  • wrong-pkt-len(1)
  • wrong-crc(2)
  • ill-type(3)
  • ill-subtype(4)
  • wrong-source-id(5)
always T-tcFailureCode N.A. 16 16
2 tc-packet-id always T-tc-packetID N.A. 16 16
3 tc-sequence-control always T-packetSequenceControl N.A. 16 16
4 tc-service always T-uint8 N.A. 8 8
5 tc-subtype always T-uint8 N.A. 8 8
6 tc-packet-length-field always T-uint16 N.A. 16 16
7 received-bytes always T-uint16 N.A. 16 16
8 tc-received-crc always T-uint16 N.A. 16 16
9 tc-calculated-crc always T-uint16 N.A. 16 16
 
T-tcFailureCode(ENUMERATED) ASN.1 ACN min = 2 bytes max = 2 bytes
Enumeration's values:
  • illega-apid(0)
  • wrong-pkt-len(1)
  • wrong-crc(2)
  • ill-type(3)
  • ill-subtype(4)
  • wrong-source-id(5)
Constraints Min Length (bits) Max Length (bits)
N.A. 16 16
 
TM-EXE-SUCCESS(SEQUENCE) ASN.1 ACN min = 4 bytes max = 4 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tc-packet-id always T-tc-packetID N.A. 16 16
2 tc-Sequence-control always T-packetSequenceControl N.A. 16 16
 
TM-EXE-FAILURE(SEQUENCE) ASN.1 ACN min = 12 bytes max = 12 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tc-failure-code Enumeration's values:
  • wrong-app-data(0)
  • func-not-impl(1)
  • exe-error(2)
always T-ExeFailureCode N.A. 16 16
2 tc-packet-id always T-tc-packetID N.A. 16 16
3 tc-sequence-control always T-packetSequenceControl N.A. 16 16
4 tc-service always T-uint8 N.A. 8 8
5 tc-subtype always T-uint8 N.A. 8 8
6 wrong-byte-position always T-uint16 N.A. 16 16
7 wrong-value always T-uint16 N.A. 16 16
 
T-ExeFailureCode(ENUMERATED) ASN.1 ACN min = 2 bytes max = 2 bytes
Enumeration's values:
  • wrong-app-data(0)
  • func-not-impl(1)
  • exe-error(2)
Constraints Min Length (bits) Max Length (bits)
N.A. 16 16
 
TM-DBS-HK(SEQUENCE) ASN.1 ACN min = 134 bytes max = 134 bytes
Housekeeping TM and related types, some of them are used by other TMs aswell



















-
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 hk-report-sid always T-uint8 N.A. 8 8
2 status-byte-1 always T-hk-dbs-status-byte-1 N.A. 8 8
3 status-byte-2 always T-hk-dbs-status-byte-2 N.A. 8 8
4 status-byte-3 always T-hk-dbs-status-byte-3 N.A. 8 8
5 dbs-sw-version always T-dbs-sw-version N.A. 32 32
6 hk-dbs-exe-tc-cnt always T-uint16 N.A. 16 16
7 hk-dbs-rej-tc-cnt always T-uint16 N.A. 16 16
8 hk-dbs-last-exe-tc-id always T-tc-packetID N.A. 16 16
9 hk-dbs-last-exe-tc-type always T-uint8 N.A. 8 8
10 hk-dbs-last-exe-tc-subtype always T-uint8 N.A. 8 8
11 hk-dbs-last-exe-tc-time always T-timestamp N.A. 48 48
12 hk-dbs-last-rej-tc-id always T-tc-packetID N.A. 16 16
13 hk-dbs-last-rej-type always T-uint8 N.A. 8 8
14 hk-dbs-last-rej-subtype always T-uint8 N.A. 8 8
15 hk-dbs-last-rej-tc-time always T-timestamp N.A. 48 48
16 hk-dbs-tm-cnt always T-uint16 N.A. 16 16
17 hk-dbs-sc-packet-rec-cnt always T-uint16 N.A. 16 16
18 hk-dbs-sc-packet-send-cnt always T-uint16 N.A. 16 16
19 adc-values-TBD always OCTET-STRING (SIZE(64)) 512 512
20 hk-dbs-le-cnt always T-uint16 N.A. 16 16
21 hk-dbs-me-cnt always T-uint16 N.A. 16 16
22 hk-dbs-he-cnt always T-uint16 N.A. 16 16
23 hk-dbs-last-error-rid always T-uint16 N.A. 16 16
24 hk-dbs-last-error-code Enumeration's values:
  • reset-required(1)
  • reset-unexpected(2)
  • ahb-correctable(3)
  • ahb-uncorrectable(4)
  • seg-inv-id(5)
  • seg-inv-crc(6)
  • seg-only-end(7)
  • seg-inv-dest-addr(8)
  • seg-inv-size(9)
  • seg-copy-err(10)
  • sync-pulse-missing(11)
  • time-msg-missing(12)
  • inv-apid(13)
  • cmd-exe-not-ready(14)
  • le-dpu-sc-link-TBD(15)
always T-event-error-code N.A. 8 8
25 hk-dbs-last-error-time always T-timestamp N.A. 48 48
26 ahb-last-fail-addr always T-address N.A. 32 32
27 errcnt-seg-inv-id always T-uint8 N.A. 8 8
28 errcnt-seg-inv-crc always T-uint8 N.A. 8 8
29 errcnt-seg-only-end always T-uint8 N.A. 8 8
30 errcnt-seg-inv-dest-addr always T-uint8 N.A. 8 8
31 errcnt-seg-inv-size always T-uint8 N.A. 8 8
32 errcnt-seg-copy-err always T-uint8 N.A. 8 8
33 errcnt-time-msg-missing always T-uint8 N.A. 8 8
34 errcnt-sync-pulse-missing always T-uint8 N.A. 8 8
35 errcnt-ahb-correctable always T-uint8 N.A. 8 8
36 errcnt-ahb-uncorrectable always T-uint8 N.A. 8 8
37 errcnt-inv-apid always T-uint8 N.A. 8 8
38 errcnt-cmd-exe-not-ready always T-uint8 N.A. 8 8
39 tbd always T-uint8 N.A. 8 8
 
T-hk-dbs-status-byte-1(SEQUENCE) ASN.1 ACN min = 1 bytes max = 1 bytes
status byte-1 and related types


No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 hk-dpu-mode Enumeration's values:
  • dpuSafe(0)
always T-dpuMode N.A. 4 4
2 hk-dpu-sw-active Enumeration's values:
  • unknown(0)
  • dbs(1)
  • iasw(2)
always T-dpuActiveStatus N.A. 2 2
3 hk-dpu-watchdog-enabled always BOOLEAN N.A. 1 1
4 hk-dpu-unit Enumeration's values:
  • nominal(0)
  • redundant(1)
always T-DpuUnit N.A. 1 1
 
T-dpuMode(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Enumeration's values:
  • dpuSafe(0)
Constraints Min Length (bits) Max Length (bits)
N.A. 4 4
 
T-dpuActiveStatus(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Enumeration's values:
  • unknown(0)
  • dbs(1)
  • iasw(2)
Constraints Min Length (bits) Max Length (bits)
N.A. 2 2
 
T-DpuUnit(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Enumeration's values:
  • nominal(0)
  • redundant(1)
Constraints Min Length (bits) Max Length (bits)
N.A. 1 1
 
T-hk-dbs-status-byte-2(SEQUENCE) ASN.1 ACN min = 1 bytes max = 1 bytes
status byte-2 and related types


No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 hk-dpu-reset-type Enumeration's values:
  • unknown-cause(0)
  • power-on(1)
  • tc-reset(2)
  • watchdog(3)
  • exception-reset(4)
always T-dpuReset N.A. 3 3
2 hk-time-sync Enumeration's values:
  • time-snchronized(0)
  • time-unsynchronized(1)
always T-timeSync N.A. 1 1
3 spare always NULL N.A. 4 4
 
T-dpuReset(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Enumeration's values:
  • unknown-cause(0)
  • power-on(1)
  • tc-reset(2)
  • watchdog(3)
  • exception-reset(4)
Constraints Min Length (bits) Max Length (bits)
N.A. 3 3
 
T-timeSync(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Enumeration's values:
  • time-snchronized(0)
  • time-unsynchronized(1)
Constraints Min Length (bits) Max Length (bits)
N.A. 1 1
 
T-hk-dbs-status-byte-3(SEQUENCE) ASN.1 ACN min = 1 bytes max = 1 bytes
status byte-3 and related types


No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 hk-dpu-sc-link-enabled always BOOLEAN N.A. 1 1
2 hk-dpu-sc-link-state Enumeration's values:
  • tbd1(0)
  • tbd2(1)
always T-linkState N.A. 3 3
3 hp-dpu-sem-link-enabled always BOOLEAN N.A. 1 1
4 hk-dpu-sem-link-state Enumeration's values:
  • error-reset(0)
  • error-wait(1)
  • ready(2)
  • started(3)
  • connecting(4)
  • run(5)
always T-semLinkState N.A. 3 3
 
T-linkState(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Enumeration's values:
  • tbd1(0)
  • tbd2(1)
Constraints Min Length (bits) Max Length (bits)
N.A. 3 3
 
T-semLinkState(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Enumeration's values:
  • error-reset(0)
  • error-wait(1)
  • ready(2)
  • started(3)
  • connecting(4)
  • run(5)
Constraints Min Length (bits) Max Length (bits)
N.A. 3 3
 
T-dbs-sw-version(SEQUENCE) ASN.1 ACN min = 4 bytes max = 4 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 hk-dbs-sw-version always T-uint16 N.A. 16 16
2 hk-fpga-version always T-uint8 N.A. 8 8
3 hk-dpu-board-id always T-uint8 N.A. 8 8
 
TM-MEMORY-CHECK(SEQUENCE) ASN.1 ACN min = 12 bytes max = 12 bytes
Memory related TMs





No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 dpu-memory-id Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
always T-dpu-memory-id N.A. 8 8
2 spare always NULL N.A. 8 8
3 start-address always T-address N.A. 32 32
4 block-length always T-uint32 N.A. 32 32
5 crc-check always T-uint16 N.A. 16 16
 
TM-MEMORY-DUMP(SEQUENCE) ASN.1 ACN min = 14 bytes max = 1010 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 dpu-memory-id Enumeration's values:
  • dpu-prom(0)
  • dpu-ram(1)
  • dpu-flash1(2)
  • dpu-flash2(3)
  • dpu-flash3(4)
  • dpu-flash4(5)
  • dpu-register(6)
  • dpu-internal(7)
always T-dpu-memory-id N.A. 8 8
2 spare always NULL N.A. 8 8
3 start-address always T-address N.A. 32 32
4 block-length always T-uint32 N.A. 32 32
5 block-data always OCTET-STRING (SIZE(4 .. 1000)) 32 8000
 
TM-BOOT-REPORT(SEQUENCE) ASN.1 ACN min = 1 bytes max = 1 bytes










Event Report TMs and related types









No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tbd always BOOLEAN N.A. 1 1
 
TM-EVENT-PR-NOMINAL-REPORT(SEQUENCE) ASN.1 ACN min = 8 bytes max = 8 bytes
NOTE: The determiant option in the ACN-file requires to
the same fields in its corresponding ENUMERATED
as in its CHOICE-type. Therefore the ENUMERATED
containing all event-report-ids from Table 74 was
split up into 4 ENUMERATED (one for each report type)
This may change in the future.
NOTE: General structure is again: Have a Meta-type for
the service which contains a CHOICE-field with all
possible formats for TM from this service and define
the formats underneath
Nominal Report and related types









Used a choice with only one field here just
to be consistent with the other report types
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 event-report-id Enumeration's values:
  • pr-dbs-boot(1)
always T-event-report-id-pr N.A. 16 16
2 report-data always T-report-data-nominal N.A. 48 48
 
T-report-data-nominal(CHOICE) ASN.1 ACN min = 6 bytes max = 6 bytes
No ACN Parameterswhat is this? Type
1 id T-event-report-id-pr
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 pr-dbs-boot id = pr-dbs-boot T-event-pr-dbs-boot N.A. 48 48
 
T-event-pr-dbs-boot(SEQUENCE) ASN.1 ACN min = 6 bytes max = 6 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 status-byte-1 always T-hk-dbs-status-byte-1 N.A. 8 8
2 status-byte-2 always T-hk-dbs-status-byte-2 N.A. 8 8
3 dbs-sw-version always T-dbs-sw-version N.A. 32 32
 
T-event-report-id-pr(ENUMERATED) ASN.1 ACN min = 2 bytes max = 2 bytes
Used in the ACN-file for determination of the packet type
Enumeration's values:
  • pr-dbs-boot(1)
Constraints Min Length (bits) Max Length (bits)
N.A. 16 16
 
TM-EVENT-ANOMALY-REPORT-LOW-SEVERITY(SEQUENCE) ASN.1 ACN min = 4 bytes max = 16 bytes
Anomaly report with low severity and related types













No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 event-report-id Enumeration's values:
  • le-dpu-ahb(2)
  • le-dpu-reset(3)
  • le-dpu-sc-link(4)
  • le-inv-apid(5)
  • le-cmd-exe-not-ready(6)
always T-event-report-id-le N.A. 16 16
2 event-error-code Enumeration's values:
  • reset-required(1)
  • reset-unexpected(2)
  • ahb-correctable(3)
  • ahb-uncorrectable(4)
  • seg-inv-id(5)
  • seg-inv-crc(6)
  • seg-only-end(7)
  • seg-inv-dest-addr(8)
  • seg-inv-size(9)
  • seg-copy-err(10)
  • sync-pulse-missing(11)
  • time-msg-missing(12)
  • inv-apid(13)
  • cmd-exe-not-ready(14)
  • le-dpu-sc-link-TBD(15)
always T-event-error-code N.A. 8 8
3 event-error-cnt always T-uint8 N.A. 8 8
4 report-data always T-report-data-low-severity N.A. 0 96
 
T-report-data-low-severity(CHOICE) ASN.1 ACN min = 0 bytes max = 12 bytes
No ACN Parameterswhat is this? Type
1 id T-event-report-id-le
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 le-dpu-sc-link id = le-dpu-sc-link T-event-le-dpu-sc-link N.A. 0 0
2 le-dpu-reset id = le-dpu-reset T-event-le-dpu-reset N.A. 16 16
3 le-dpu-ahb id = le-dpu-ahb T-event-le-dpu-ahb N.A. 96 96
4 le-inv-apid id = le-inv-apid T-event-le-inv-apid N.A. 32 32
5 le-cmd-exe-not-ready id = le-cmd-exe-not-ready T-event-le-cmd-exe-not-ready N.A. 32 32
 
T-event-le-dpu-sc-link(INTEGER) ASN.1 ACN min = 0 bytes max = 0 bytes
Constraints Min Length (bits) Max Length (bits)
(0) 0 0
 
T-event-le-dpu-reset(SEQUENCE) ASN.1 ACN min = 2 bytes max = 2 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 status-byte-1 always T-hk-dbs-status-byte-1 N.A. 8 8
2 status-byte-2 always T-hk-dbs-status-byte-2 N.A. 8 8
 
T-event-le-dpu-ahb(SEQUENCE) ASN.1 ACN min = 12 bytes max = 12 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 ahb-status-register always T-address N.A. 32 32
2 ahb-failing-addr always T-address N.A. 32 32
3 ahb-valid-failed-addr always T-address N.A. 32 32
 
T-event-le-inv-apid(SEQUENCE) ASN.1 ACN min = 4 bytes max = 4 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tc-packet-id always T-tc-packetID N.A. 16 16
2 tc-sequence-control always T-packetSequenceControl N.A. 16 16
 
T-event-le-cmd-exe-not-ready(SEQUENCE) ASN.1 ACN min = 4 bytes max = 4 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 tc-packet-id always T-tc-packetID N.A. 16 16
2 tc-sequence-control always T-packetSequenceControl N.A. 16 16
 
T-event-report-id-le(ENUMERATED) ASN.1 ACN min = 2 bytes max = 2 bytes
Used in the ACN-file for determination of the packet type
Enumeration's values:
  • le-dpu-ahb(2)
  • le-dpu-reset(3)
  • le-dpu-sc-link(4)
  • le-inv-apid(5)
  • le-cmd-exe-not-ready(6)
Constraints Min Length (bits) Max Length (bits)
N.A. 16 16
 
TM-EVENT-ANOMALY-REPORT-MEDIUM-SEVERITY(SEQUENCE) ASN.1 ACN min = 4 bytes max = 16 bytes
Anomaly report with medium severity and related types













No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 event-report-id Enumeration's values:
  • me-dpu-memory(7)
  • me-dpu-sc-link(8)
  • me-dpu-ahb(11)
always T-event-report-id-me N.A. 16 16
2 event-error-code Enumeration's values:
  • reset-required(1)
  • reset-unexpected(2)
  • ahb-correctable(3)
  • ahb-uncorrectable(4)
  • seg-inv-id(5)
  • seg-inv-crc(6)
  • seg-only-end(7)
  • seg-inv-dest-addr(8)
  • seg-inv-size(9)
  • seg-copy-err(10)
  • sync-pulse-missing(11)
  • time-msg-missing(12)
  • inv-apid(13)
  • cmd-exe-not-ready(14)
  • le-dpu-sc-link-TBD(15)
always T-event-error-code N.A. 8 8
3 event-error-cnt always T-uint8 N.A. 8 8
4 report-data always T-report-data-medium-severity N.A. 0 96
 
T-report-data-medium-severity(CHOICE) ASN.1 ACN min = 0 bytes max = 12 bytes
No ACN Parameterswhat is this? Type
1 id T-event-report-id-me
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 me-dpu-sc-link id = me-dpu-sc-link T-event-me-dpu-sc-link N.A. 0 0
2 me-dpu-ahb id = me-dpu-ahb T-event-me-dpu-ahb N.A. 96 96
3 me-dpu-memory id = me-dpu-memory T-event-me-dpu-memory N.A. 96 96
 
T-event-me-dpu-sc-link(INTEGER) ASN.1 ACN min = 0 bytes max = 0 bytes
TBD
Constraints Min Length (bits) Max Length (bits)
(0) 0 0
 
T-event-me-dpu-ahb(SEQUENCE) ASN.1 ACN min = 12 bytes max = 12 bytes
event report id according to table 65 is not valid according to table 74
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 ahb-status-register always T-address N.A. 32 32
2 ahb-failing-addr always T-address N.A. 32 32
3 ahb-valid-failed-addr always T-address N.A. 32 32
 
T-event-me-dpu-memory(SEQUENCE) ASN.1 ACN min = 12 bytes max = 12 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 failed-address always T-address N.A. 32 32
2 failed-value-src always T-address N.A. 32 32
3 failed-value-dest always T-address N.A. 32 32
 
T-event-report-id-me(ENUMERATED) ASN.1 ACN min = 2 bytes max = 2 bytes
Used in the ACN-filreport-ide for determination of the packet type
Enumeration's values:
  • me-dpu-memory(7)
  • me-dpu-sc-link(8)
  • me-dpu-ahb(11)
Constraints Min Length (bits) Max Length (bits)
N.A. 16 16
 
TM-EVENT-ANOMALY-REPORT-HIGH-SEVERITY(SEQUENCE) ASN.1 ACN min = 6 bytes max = 24 bytes
Anomaly report with high severity and related types













No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 event-report-id Enumeration's values:
  • he-dpu-reset(9)
  • he-dpu-boot(10)
always T-event-report-id-he N.A. 16 16
2 event-error-code Enumeration's values:
  • reset-required(1)
  • reset-unexpected(2)
  • ahb-correctable(3)
  • ahb-uncorrectable(4)
  • seg-inv-id(5)
  • seg-inv-crc(6)
  • seg-only-end(7)
  • seg-inv-dest-addr(8)
  • seg-inv-size(9)
  • seg-copy-err(10)
  • sync-pulse-missing(11)
  • time-msg-missing(12)
  • inv-apid(13)
  • cmd-exe-not-ready(14)
  • le-dpu-sc-link-TBD(15)
always T-event-error-code N.A. 8 8
3 event-error-cnt always T-uint8 N.A. 8 8
4 report-data always T-report-data-high-severity N.A. 16 160
 
T-report-data-high-severity(CHOICE) ASN.1 ACN min = 2 bytes max = 20 bytes
No ACN Parameterswhat is this? Type
1 id T-event-report-id-he
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 he-dpu-reset id = he-dpu-reset T-event-he-dpu-reset N.A. 16 16
2 he-dpu-boot id = he-dpu-boot T-event-he-dpu-boot N.A. 160 160
 
T-event-he-dpu-reset(SEQUENCE) ASN.1 ACN min = 2 bytes max = 2 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 status-byte-1 always T-hk-dbs-status-byte-1 N.A. 8 8
2 status-byte-2 always T-hk-dbs-status-byte-2 N.A. 8 8
 
T-event-he-dpu-boot(SEQUENCE) ASN.1 ACN min = 20 bytes max = 20 bytes
No Field Comment Present Type Constraint Min Length (bits) Max Length (bits)
1 first-seg-addr always T-address N.A. 32 32
2 last-seg-addr always T-address N.A. 32 32
3 seg-header-1 always T-address N.A. 32 32
4 seg-header-2 always T-address N.A. 32 32
5 seg-header-3 always T-address N.A. 32 32
 
T-event-report-id-he(ENUMERATED) ASN.1 ACN min = 2 bytes max = 2 bytes
Used in the ACN-file for determination of the packet type
Enumeration's values:
  • he-dpu-reset(9)
  • he-dpu-boot(10)
Constraints Min Length (bits) Max Length (bits)
N.A. 16 16
 
T-event-error-code(ENUMERATED) ASN.1 ACN min = 1 bytes max = 1 bytes
Common for all event-reports
Each report could subconstrain this type
to allow only the possible error-codes
Enumeration's values:
  • reset-required(1)
  • reset-unexpected(2)
  • ahb-correctable(3)
  • ahb-uncorrectable(4)
  • seg-inv-id(5)
  • seg-inv-crc(6)
  • seg-only-end(7)
  • seg-inv-dest-addr(8)
  • seg-inv-size(9)
  • seg-copy-err(10)
  • sync-pulse-missing(11)
  • time-msg-missing(12)
  • inv-apid(13)
  • cmd-exe-not-ready(14)
  • le-dpu-sc-link-TBD(15)
Constraints Min Length (bits) Max Length (bits)
N.A. 8 8
 

ACN Parameters
In the standard ASN.1 encodings such as uPER, BER etc, the encoding and decoding of any type has no external dependencies. For example, the encoded data for a SEQUENCE OF depends on the number of items in the SEQUENCE OF (the length determinant) and the type of item contained in the SEQUENCE. On the other hand, ACN allows types to be parameterized. For instance, the length of a SEQUENCE OF may be determined by the value of an external field. In this case, the SEQUENCE OF is parameterized and the input parameter is the field providing the length.

File : base-types.asn

base-types DEFINITIONS ::= BEGIN T-uint8 ::= INTEGER(0..255) T-uint16 ::= INTEGER(0..65535) T-uint14 ::= INTEGER(0..16383) T-uint32 ::= INTEGER(0..4294967295) T-address ::= OCTET STRING ( SIZE(4) ) T-1000 ::= INTEGER(0..1000) -- cannot define types with constraints in ACN file T-timestamp ::= OCTET STRING ( SIZE(6) ) -- Format not yet determined T-NULL ::= INTEGER(0) T-apid ::= SEQUENCE { process-id INTEGER(0..127), packet-category INTEGER(0..15) } T-packetSequenceControl ::= SEQUENCE { sequence-groupingFlag T-sequenceGroupingFlag, sequence-count T-uint14 } T-sequenceGroupingFlag ::= ENUMERATED { continuation-sequence-packet(0), firsts-sequence-packet (1), last-sequence-packet (2), stand-alone-packet (3) } T-dpu-memory-id ::= ENUMERATED { dpu-prom, dpu-ram, dpu-flash1, dpu-flash2, dpu-flash3, dpu-flash4, dpu-register, dpu-internal } END

File : telecommand.asn

telecommand DEFINITIONS ::= BEGIN IMPORTS T-uint8, T-uint16, T-uint32, T-apid, T-NULL, T-1000, T-packetSequenceControl, T-address, T-dpu-memory-id FROM base-types; -------------------------------- -- General Telecommand structure -------------------------------- T-telecommand ::= SEQUENCE { packet-header TC-packetHeader, data-field-header T-tc-dataFieldHeader, application-data T-tc-applicationData, crc T-uint16 } -- TC-Header and related types ------------------------------ TC-packetHeader ::= SEQUENCE { packet-id T-tc-packetID, packet-sequence-control T-packetSequenceControl, packet-length T-uint16 } T-tc-packetID ::= SEQUENCE { -- versionNumber INTEGER(0..7), always 0 -- packetType T-packetType, always 1 for telecommand -- hasDataFieldHdr BOOLEAN, always 1 apid T-apid } -- TC-Data-Field-Header and related types ------------------------------------------ T-tc-dataFieldHeader ::= SEQUENCE { -- ccsdsHeaderFlag BOOLEAN, set to 0 -- packetPusVersion INTEGER(0..7), set to 1 ack-execution-completion BOOLEAN, -- test ack-execution-progress BOOLEAN, ack-execution-start BOOLEAN, ack-acceptance BOOLEAN, source-id T-sourceId } -- source Ids TBD T-sourceId ::= ENUMERATED { source1-dummy, source2-dummy } ------------------------------- -- Telecommand application data ------------------------------- -- List of all available TCs categorized by their respective pus(-sub)types -- Definition of actual payload data is done in respective Types below -- In the ACN-file this type is used to automatically assign the pustype and subtype fields -- in encoding and determine the packet type from pustype and subtype in decoding -- Types defined as T-NULL have no actual payload data besides the fields -- for pustype and subtype. T-tc-applicationData ::= CHOICE { -- From OBS to DBS tc-3-27-update-hk-period TC-UPDATE-HK-PERIOD, -- length 16 in table 12 - inconsistent with table 16 tc-6-2-load-memory TC-LOAD-MEMORY, tc-6-5-dump-memory TC-DUMP-MEMORY, tc-6-9-check-memory TC-CHECK-MEMORY, tc-6-129-transfer-image TC-TRANSFER-IMAGE, tc-210-3-reset-dpu T-NULL, tc-210-4-enable-watchdog T-NULL, tc-210-5-disable-watchdog T-NULL, tc-210-6-boot-iasw TC-BOOT-IASW, tc-197-2-report-boot T-NULL -- in fact no parameter } TC-UPDATE-HK-PERIOD ::= SEQUENCE { hk-report-sid T-uint8, -- default 100 hk-report-period T-uint16 -- default 8 } TC-LOAD-MEMORY ::= SEQUENCE { -- dpu-memory-id T-dpu-memory-id(dpu-ram | dpu-register | dpu-internal), bug 0000381 dpu-memory-id T-dpu-memory-id, start-address T-address, -- Destination address -- block-length INTEGER (4..1000), set in ACN, Number of bytes to load block-data OCTET STRING (SIZE(4..1000)) } TC-DUMP-MEMORY ::= SEQUENCE { dpu-memory-id T-dpu-memory-id, start-address T-address, -- Address to start dumping from block-length T-uint32 -- Number of bytes to dump } TC-CHECK-MEMORY ::= SEQUENCE { dpu-memory-id T-dpu-memory-id, start-address T-address, -- Address to start dumping from block-length T-uint32 -- Number of bytes to dump } TC-TRANSFER-IMAGE ::= SEQUENCE { source-memory-id T-dpu-memory-id, source-address T-address, -- Source address of the image destination-memory-id T-dpu-memory-id, destination-addr T-address -- Destination address of the image } TC-BOOT-IASW ::= SEQUENCE { iasw-image-memory-id T-dpu-memory-id, iasw-image-address T-address, iasw-start-address T-address } END

File : telemetry.asn

telemetry DEFINITIONS ::= BEGIN IMPORTS T-uint8, T-uint16, T-uint32, T-apid, T-packetSequenceControl, T-address, T-timestamp, T-dpu-memory-id, T-NULL FROM base-types; -- T-tc-packetID FROM telecommand; T-tc-packetID ::= T-uint16 ------------------------------- -- General Telemetry structure ------------------------------- T-telemetry ::= SEQUENCE { packet-header TM-packetHeader , data-field-header T-tm-dataFieldHeader, application-data T-tm-applicationData, crc T-uint8 } -- TM-Header and related types ------------------------------ TM-packetHeader ::= SEQUENCE { packet-id T-tm-packetID, packet-sequence-control T-packetSequenceControl, packet-length T-uint16 } T-tm-packetID ::= SEQUENCE { -- versionNumber INTEGER(0..7), always 0 -- packetType T-packetType, always 0 for telemetry -- hasDataFieldHdr BOOLEAN, apid T-apid } -- TM-Data-Field-Header and related types ------------------------------------------ T-tm-dataFieldHeader ::= SEQUENCE { -- packetPusVersion INTEGER(0..7), set to 1 destination-id T-destinationId, time T-timestamp } -- TBD T-destinationId ::= ENUMERATED { destination1-dummy, destination2-dummy } ------------------------------ -- Telemetry application data ------------------------------ -- List of all available TMs categorized by their respective pus(-sub)types -- Definition of actual payload data is done in respective Types below -- In the ACN-file this type is used to automatically assign the pustype and subtype fields -- in encoding and determine the packet type from pustype and subtype in decoding -- Types defined as T-NULL have no actual payload data besides the fields -- for pustype and subtype. -- Some services with the same pustype and subtype can send differently formatted -- TM-packets this is handled by other CHOICE-types further down. T-tm-applicationData ::= CHOICE { tm-1-1-acc-sucess TM-ACC-SUCCESS, tm-1-2-acc-failure TM-ACC-FAILURE, tm-1-7-exe-success TM-EXE-SUCCESS, tm-1-8-exe-failure TM-EXE-FAILURE, tm-3-25-hk TM-DBS-HK, -- length is TBD tm-6-10-memory-check TM-MEMORY-CHECK, tm-6-6-memory-dump TM-MEMORY-DUMP, tm-197-1-boot-report TM-BOOT-REPORT, tm-5-1-event-pr-nominal TM-EVENT-PR-NOMINAL-REPORT, tm-5-2-event-low-severity TM-EVENT-ANOMALY-REPORT-LOW-SEVERITY, tm-5-3-event-medium-severity TM-EVENT-ANOMALY-REPORT-MEDIUM-SEVERITY, tm-5-4-event-high-severity TM-EVENT-ANOMALY-REPORT-HIGH-SEVERITY } -- TMs of pusservice 1 and related types ---------------------------------------- TM-ACC-SUCCESS ::= SEQUENCE { tc-packet-id T-tc-packetID, tc-Sequence-control T-packetSequenceControl } TM-ACC-FAILURE ::= SEQUENCE { tc-failure-code T-tcFailureCode, tc-packet-id T-tc-packetID, -- Copy from TC tc-sequence-control T-packetSequenceControl, -- Copy from TC tc-service T-uint8, -- Copy from TC tc-subtype T-uint8, -- Copy from TC tc-packet-length-field T-uint16, -- Copy from TC received-bytes T-uint16, -- Number of received bytes tc-received-crc T-uint16, -- Copy from TC tc-calculated-crc T-uint16 -- CRC calculated from DBS } T-tcFailureCode ::= ENUMERATED { illega-apid, wrong-pkt-len, wrong-crc, ill-type, ill-subtype, wrong-source-id } TM-EXE-SUCCESS ::= TM-ACC-SUCCESS TM-EXE-FAILURE ::= SEQUENCE { tc-failure-code T-ExeFailureCode, tc-packet-id T-tc-packetID, -- Copy from TC tc-sequence-control T-packetSequenceControl, -- Copy from TC tc-service T-uint8, -- Copy from TC tc-subtype T-uint8, -- Copy from TC wrong-byte-position T-uint16, -- Position of the wrong value wrong-value T-uint16 -- Wrong value } T-ExeFailureCode ::= ENUMERATED { wrong-app-data, func-not-impl, exe-error } -- Housekeeping TM and related types, some of them are used by other TMs aswell ------------------------------------------------------------------------------- TM-DBS-HK ::= SEQUENCE { hk-report-sid T-uint8, status-byte-1 T-hk-dbs-status-byte-1, status-byte-2 T-hk-dbs-status-byte-2, status-byte-3 T-hk-dbs-status-byte-3, dbs-sw-version T-dbs-sw-version, -- TC statistics hk-dbs-exe-tc-cnt T-uint16, hk-dbs-rej-tc-cnt T-uint16, hk-dbs-last-exe-tc-id T-tc-packetID, hk-dbs-last-exe-tc-type T-uint8, hk-dbs-last-exe-tc-subtype T-uint8, hk-dbs-last-exe-tc-time T-timestamp, hk-dbs-last-rej-tc-id T-tc-packetID, hk-dbs-last-rej-type T-uint8, hk-dbs-last-rej-subtype T-uint8, hk-dbs-last-rej-tc-time T-timestamp, -- TM statistics hk-dbs-tm-cnt T-uint16, -- SC IF statistics hk-dbs-sc-packet-rec-cnt T-uint16, hk-dbs-sc-packet-send-cnt T-uint16, -- ADC values adc-values-TBD OCTET STRING (SIZE(64)), -- TBD -- error statistics hk-dbs-le-cnt T-uint16, hk-dbs-me-cnt T-uint16, hk-dbs-he-cnt T-uint16, hk-dbs-last-error-rid T-uint16, hk-dbs-last-error-code T-event-error-code, hk-dbs-last-error-time T-timestamp, -- ahb error statistic ahb-last-fail-addr T-address, -- error counters -- boot iasw errors errcnt-seg-inv-id T-uint8, errcnt-seg-inv-crc T-uint8, errcnt-seg-only-end T-uint8, errcnt-seg-inv-dest-addr T-uint8, errcnt-seg-inv-size T-uint8, errcnt-seg-copy-err T-uint8, -- time errors errcnt-time-msg-missing T-uint8, errcnt-sync-pulse-missing T-uint8, -- ahb errors errcnt-ahb-correctable T-uint8, errcnt-ahb-uncorrectable T-uint8, -- cmd exe errors errcnt-inv-apid T-uint8, errcnt-cmd-exe-not-ready T-uint8, -- sc link errors tbd T-uint8 } -- status byte-1 and related types ------------ T-hk-dbs-status-byte-1 ::= SEQUENCE { hk-dpu-mode T-dpuMode, hk-dpu-sw-active T-dpuActiveStatus, hk-dpu-watchdog-enabled BOOLEAN, hk-dpu-unit T-DpuUnit } T-dpuMode ::= ENUMERATED { dpuSafe } T-dpuActiveStatus ::= ENUMERATED { unknown(0), dbs(1), iasw(2) } T-DpuUnit ::= ENUMERATED { nominal(0), redundant(1) } -- status byte-2 and related types ------------ T-hk-dbs-status-byte-2 ::= SEQUENCE { hk-dpu-reset-type T-dpuReset, hk-time-sync T-timeSync } T-dpuReset ::= ENUMERATED { unknown-cause(0), power-on(1), tc-reset(2), watchdog(3), exception-reset(4) } T-timeSync ::= ENUMERATED { time-snchronized(0), time-unsynchronized(1) } -- status byte-3 and related types ------------ T-hk-dbs-status-byte-3 ::= SEQUENCE { hk-dpu-sc-link-enabled BOOLEAN, hk-dpu-sc-link-state T-linkState, hp-dpu-sem-link-enabled BOOLEAN, hk-dpu-sem-link-state T-semLinkState } T-linkState ::= ENUMERATED { tbd1, tbd2 } T-semLinkState ::= ENUMERATED { error-reset (0), error-wait (1), ready (2), started (3), connecting (4), run (5) } T-dbs-sw-version ::= SEQUENCE { hk-dbs-sw-version T-uint16, -- type unclear from table 45, just a simple number? hk-fpga-version T-uint8, -- dito hk-dpu-board-id T-uint8 } -- Memory related TMs ---------------------- TM-MEMORY-CHECK ::= SEQUENCE { dpu-memory-id T-dpu-memory-id, start-address T-address, -- Address to start checking from block-length T-uint32, -- Number of bytes to check crc-check T-uint16 } TM-MEMORY-DUMP ::= SEQUENCE { dpu-memory-id T-dpu-memory-id, start-address T-address, -- Address to start checking from --block-length T-uint32, set in ACN Number of bytes block-data OCTET STRING (SIZE (4..1000)) } -------------------------------------- -- Event Report TMs and related types -------------------------------------- TM-BOOT-REPORT ::= SEQUENCE { tbd BOOLEAN -- TBD in table 51 } --NOTE: The determiant option in the ACN-file requires to -- the same fields in its corresponding ENUMERATED -- as in its CHOICE-type. Therefore the ENUMERATED -- containing all event-report-ids from Table 74 was -- split up into 4 ENUMERATED (one for each report type) -- This may change in the future. --NOTE: General structure is again: Have a Meta-type for -- the service which contains a CHOICE-field with all -- possible formats for TM from this service and define -- the formats underneath -- Nominal Report and related types ------------------------------------ -- Used a choice with only one field here just -- to be consistent with the other report types TM-EVENT-PR-NOMINAL-REPORT ::= SEQUENCE { -- event-report-id set in ACN report-data T-report-data-nominal } T-report-data-nominal ::= CHOICE { pr-dbs-boot T-event-pr-dbs-boot } T-event-pr-dbs-boot ::= SEQUENCE { status-byte-1 T-hk-dbs-status-byte-1, status-byte-2 T-hk-dbs-status-byte-2, dbs-sw-version T-dbs-sw-version } -- Used in the ACN-file for determination of the packet type T-event-report-id-pr ::= ENUMERATED { pr-dbs-boot (1) } -- Anomaly report with low severity and related types ------------------------------------------------------ TM-EVENT-ANOMALY-REPORT-LOW-SEVERITY ::= SEQUENCE { -- event-report-id set in ACN event-error-code T-event-error-code, event-error-cnt T-uint8, report-data T-report-data-low-severity } T-report-data-low-severity ::= CHOICE { le-dpu-sc-link T-event-le-dpu-sc-link, le-dpu-reset T-event-le-dpu-reset, le-dpu-ahb T-event-le-dpu-ahb, le-inv-apid T-event-le-inv-apid, le-cmd-exe-not-ready T-event-le-cmd-exe-not-ready } T-event-le-dpu-sc-link ::= T-NULL T-event-le-dpu-reset ::= SEQUENCE { status-byte-1 T-hk-dbs-status-byte-1, status-byte-2 T-hk-dbs-status-byte-2 } T-event-le-dpu-ahb ::= SEQUENCE { ahb-status-register T-address, ahb-failing-addr T-address, ahb-valid-failed-addr T-address } T-event-le-inv-apid ::= SEQUENCE { tc-packet-id T-tc-packetID, tc-sequence-control T-packetSequenceControl } T-event-le-cmd-exe-not-ready ::= T-event-le-inv-apid -- Used in the ACN-file for determination of the packet type T-event-report-id-le ::= ENUMERATED { le-dpu-ahb (2), le-dpu-reset (3), le-dpu-sc-link (4), le-inv-apid (5), le-cmd-exe-not-ready (6) } -- Anomaly report with medium severity and related types -------------------------------------------------------- TM-EVENT-ANOMALY-REPORT-MEDIUM-SEVERITY ::= SEQUENCE { -- event-report-id set in ACN event-error-code T-event-error-code, event-error-cnt T-uint8, report-data T-report-data-medium-severity } T-report-data-medium-severity ::= CHOICE { me-dpu-sc-link T-event-me-dpu-sc-link, me-dpu-ahb T-event-me-dpu-ahb, me-dpu-memory T-event-me-dpu-memory } T-event-me-dpu-sc-link ::= T-NULL -- TBD T-event-me-dpu-ahb ::= T-event-le-dpu-ahb -- event report id according to table 65 is not valid according to table 74 T-event-me-dpu-memory ::= SEQUENCE { failed-address T-address, failed-value-src T-address, failed-value-dest T-address } -- Used in the ACN-filreport-ide for determination of the packet type T-event-report-id-me ::= ENUMERATED { me-dpu-memory (7), me-dpu-sc-link (8), me-dpu-ahb (11) -- does not show up in table 74!! } -- Anomaly report with high severity and related types ------------------------------------------------------ TM-EVENT-ANOMALY-REPORT-HIGH-SEVERITY ::= SEQUENCE { -- event-report-id set in ACN event-error-code T-event-error-code, event-error-cnt T-uint8, report-data T-report-data-high-severity } T-report-data-high-severity ::= CHOICE { he-dpu-reset T-event-he-dpu-reset, he-dpu-boot T-event-he-dpu-boot } T-event-he-dpu-reset ::= T-event-le-dpu-reset T-event-he-dpu-boot ::= SEQUENCE { first-seg-addr T-address, last-seg-addr T-address, seg-header-1 T-address, seg-header-2 T-address, seg-header-3 T-address } -- Used in the ACN-file for determination of the packet type T-event-report-id-he ::= ENUMERATED { he-dpu-reset (9), he-dpu-boot (10) } -- Common for all event-reports -- Each report could subconstrain this type -- to allow only the possible error-codes T-event-error-code ::= ENUMERATED { reset-required (1), reset-unexpected (2), ahb-correctable (3), ahb-uncorrectable (4), seg-inv-id (5), seg-inv-crc (6), seg-only-end (7), seg-inv-dest-addr (8), seg-inv-size (9), seg-copy-err (10), sync-pulse-missing (11), time-msg-missing (12), inv-apid (13), cmd-exe-not-ready (14), le-dpu-sc-link-TBD (15) -- TBD } END

File : base-types.acn

base-types DEFINITIONS ::= BEGIN T-uint8[size 8, encoding pos-int] T-uint16[size 16, encoding pos-int] T-uint14[size 14, encoding pos-int] T-uint32[size 32, encoding pos-int] T-1000[size 32, encoding pos-int] T-dpu-memory-id [size 8, encoding pos-int] T-timestamp [] T-NULL [size 0, encoding pos-int] END

File : telecommand.acn

telecommand DEFINITIONS ::= BEGIN -------------------------------- -- General Telecommand structure -------------------------------- -- pustype and subtype are automtatically determined by T-tc-applicationData -- by passing it the corresponding fields from the data-field-header T-telecommand[] { packet-header [], data-field-header [] , application-data<data-field-header.service-type, data-field-header.service-subtype>[], crc [] } TC-packetHeader [] T-tc-packetID [] { ccsds-version-number NULL [pattern '000'B], -- fixed according to table 14 packet-type NULL [pattern '1'B] , -- dito has-data-fieldhdr NULL [pattern '1'B], -- dito apid [] } -- TC-Data-Field-Header and related types ------------------------------------------ T-tc-dataFieldHeader[] { ccsds-2nd-header-flag NULL [pattern '0'B], -- fixed = 0 packet-pus-version NULL [pattern '001'B], -- fixed = 001 ack-execution-completion [true-value '1'B], ack-execution-progress [true-value '1'B] , ack-execution-start [true-value '1'B] , ack-acceptance [true-value '1'B] , service-type base-types.T-uint8 [], service-subtype base-types.T-uint8 [], source-id [] } T-sourceId [size 8, encoding pos-int, encode-values] ------------------------------- -- Telecommand application data ------------------------------- -- Table which maps the pusType and subtype to the corresponding -- packet payload data T-tc-applicationData<base-types.T-uint8:pusType, base-types.T-uint8:pusSubType> [] { tc-3-27-update-hk-period [present-when pusType== 3 pusSubType== 27 ], tc-6-2-load-memory [present-when pusType== 6 pusSubType== 2 ], tc-6-5-dump-memory [present-when pusType== 6 pusSubType== 5 ], tc-6-9-check-memory [present-when pusType== 6 pusSubType== 9 ], tc-6-129-transfer-image [present-when pusType== 6 pusSubType==129 ], tc-210-3-reset-dpu [present-when pusType==210 pusSubType== 3 ], tc-210-4-enable-watchdog [present-when pusType==210 pusSubType== 4 ], tc-210-5-disable-watchdog [present-when pusType==210 pusSubType== 5 ], tc-210-6-boot-iasw [present-when pusType==210 pusSubType== 6 ], tc-197-2-report-boot [present-when pusType==197 pusSubType== 2 ] } TC-UPDATE-HK-PERIOD [] { hk-report-sid [], spare NULL [pattern '00000000'B], hk-report-period [] } TC-LOAD-MEMORY [] { dpu-memory-id [], spare NULL [pattern '00000000'B], start-address [], block-length base-types.T-1000 [], block-data [size block-length] } TC-DUMP-MEMORY [] { dpu-memory-id [], spare NULL [pattern '00000000'B], start-address [], block-length [] } TC-CHECK-MEMORY [] TC-TRANSFER-IMAGE [] TC-BOOT-IASW [] { iasw-image-memory-id [], spare NULL [pattern '00000000'B], iasw-image-address [], iasw-start-address [] } END

File : telemetry.acn

telemetry DEFINITIONS ::= BEGIN ------------------------------ -- General Telemetry structure ------------------------------ T-telemetry[] { packet-header [], data-field-header [], application-data<data-field-header.service-type, data-field-header.service-subtype>[], crc [] } -- TM-Header and related types ------------------------------ TM-packetHeader [] T-tm-packetID[] { version-number NULL [pattern '000'B], packet-type NULL [pattern '0'B] , has-data-fieldhdr NULL [pattern '1'B], apid [] } -- TM-Data-Field-Header and related types ------------------------------------------ T-tm-dataFieldHeader [] { spare1 NULL [pattern '0'B], packet-pus-version NULL [pattern '001'B], spare2 NULL [pattern '0000'B], service-type base-types.T-uint8 [], service-subtype base-types.T-uint8 [], destination-id [], time [] } T-destinationId [size 8, encoding pos-int, encode-values] ------------------------------- -- Telemetry application data ------------------------------- T-tm-applicationData<base-types.T-uint8:pusType, base-types.T-uint8:pusSubType> [] { tm-1-1-acc-sucess [present-when pusType== 1 pusSubType== 1], tm-1-2-acc-failure [present-when pusType== 1 pusSubType== 2], tm-1-7-exe-success [present-when pusType== 1 pusSubType== 7], tm-1-8-exe-failure [present-when pusType== 1 pusSubType== 8], tm-3-25-hk [present-when pusType== 3 pusSubType== 25], tm-6-10-memory-check [present-when pusType== 6 pusSubType== 10], tm-6-6-memory-dump [present-when pusType== 6 pusSubType== 6], tm-197-1-boot-report [present-when pusType==197 pusSubType== 1], tm-5-1-event-pr-nominal [present-when pusType== 5 pusSubType== 1], tm-5-2-event-low-severity [present-when pusType== 5 pusSubType== 2], tm-5-3-event-medium-severity [present-when pusType== 5 pusSubType== 3], tm-5-4-event-high-severity [present-when pusType== 5 pusSubType== 4] } -- TMs of pusservice 1 and related types ---------------------------------------- TM-ACC-SUCCESS [] TM-ACC-FAILURE [] T-tcFailureCode [size 16, encoding pos-int, encode-values] TM-EXE-SUCCESS [] TM-EXE-FAILURE [] T-ExeFailureCode [size 16, encoding pos-int, encode-values] -- Housekeeping TM and related types, some of them are used by other TMs aswell ------------------------------------------------------------------------------- TM-DBS-HK [] -- status byte-1 and related types ------------ T-hk-dbs-status-byte-1 [] T-dpuMode [size 4, encoding pos-int, encode-values] T-dpuActiveStatus [size 2, encoding pos-int, encode-values] T-DpuUnit[size 1, encoding pos-int, encode-values] -- status byte-2 and related types ------------ T-hk-dbs-status-byte-2 [] { hk-dpu-reset-type [], hk-time-sync [], spare NULL [pattern '0000'B] } T-dpuReset [size 3, encoding pos-int, encode-values] T-timeSync [size 1, encoding pos-int, encode-values] -- status byte-3 and related types ------------ T-hk-dbs-status-byte-3 [] { hk-dpu-sc-link-enabled [true-value '1'B], hk-dpu-sc-link-state [], hp-dpu-sem-link-enabled [true-value '1'B], hk-dpu-sem-link-state [] } T-linkState [size 3, encoding pos-int, encode-values] T-semLinkState [size 3, encoding pos-int, encode-values] T-dbs-sw-version [] -- Memory related TMs ---------------------- TM-MEMORY-CHECK [] { dpu-memory-id [], spare NULL [pattern '00000000'B], start-address [], block-length [], crc-check [] } TM-MEMORY-DUMP [] { dpu-memory-id [], spare NULL [pattern '00000000'B], start-address [], block-length base-types.T-uint32 [], block-data [size block-length] } -------------------------------------- -- Event Report TMs and related types -------------------------------------- TM-BOOT-REPORT [] -- Nominal Report and related types ------------------------------------ TM-EVENT-PR-NOMINAL-REPORT [] { event-report-id T-event-report-id-pr [], report-data <event-report-id>[] } T-report-data-nominal<T-event-report-id-pr:id> [determinant id] T-event-pr-dbs-boot [] T-event-report-id-pr [size 16, encoding pos-int, encode-values] -- Anomaly report with low severity and related types ------------------------------------------------------ TM-EVENT-ANOMALY-REPORT-LOW-SEVERITY [] { event-report-id T-event-report-id-le [], event-error-code [], event-error-cnt [], report-data <event-report-id>[] } T-report-data-low-severity<T-event-report-id-le:id> [determinant id] T-event-le-dpu-sc-link [] T-event-le-dpu-reset [] T-event-le-dpu-ahb [] T-event-le-inv-apid [] T-event-le-cmd-exe-not-ready [] T-event-report-id-le [size 16, encoding pos-int, encode-values] -- Anomaly report with medium severity and related types -------------------------------------------------------- TM-EVENT-ANOMALY-REPORT-MEDIUM-SEVERITY [] { event-report-id T-event-report-id-me [], event-error-code [], event-error-cnt [], report-data <event-report-id>[] } T-report-data-medium-severity<T-event-report-id-me:id> [determinant id] T-event-me-dpu-sc-link [] T-event-me-dpu-ahb [] T-event-me-dpu-memory [] T-event-report-id-me [size 16, encoding pos-int, encode-values] -- Anomaly report with high severity and related types ------------------------------------------------------ TM-EVENT-ANOMALY-REPORT-HIGH-SEVERITY [] { event-report-id T-event-report-id-he [], event-error-code [], event-error-cnt [], report-data <event-report-id>[] } T-report-data-high-severity<T-event-report-id-he:id> [determinant id] T-event-he-dpu-reset [] T-event-he-dpu-boot [] T-event-report-id-he [size 16, encoding pos-int, encode-values] -- Common for all event-reports T-event-error-code [size 8, encoding pos-int, encode-values] END