TC Space Data Link Protocol

CCSDS 232.0-B-4 · Issue 4, October 2021 · COR. 1 October 2023 · EC 1 October 2024

A TC Transfer Frame is a 5-octet Primary Header, a Data Field of up to 1019 octets and an optional 2-octet FECF. The Data Field holds a Frame Data Unit (Type-D, with an optional Segment Header) or Control Commands (Type-C). With SDLS (§ 6.3, CCSDS 355.0-B-2) a Security Header and optional Security Trailer surround the User Data of Type-D frames.

Open the interactive diagram, Frame Builder and Frame Decoder

Transfer Frame Primary HeaderPH

BITS 0–39 · 5 OCTETS · MANDATORY · § 4.1.2 · Open in the viewer

The mandatory five-octet header of every TC Transfer Frame. Eight fields identify the frame, control the FARM acceptance checks, and give the frame length and sequence number.

The format of the Transfer Frame Primary Header is shown in figure 4-2 of the Standard.

Transfer Frame Version NumberTFVN

BITS 0–1 · 2 BITS · MANDATORY · § 4.1.2.2 · Open in the viewer

Identifies the data unit as a TC Version 1 Asynchronous Transfer Frame. Always set to ‘00’ — the only version defined by the Standard.

ValueMeaningClause
‘00’TC Version 1 Asynchronous Transfer Frame — the only version defined by this Standard§ 4.1.2.2.2 NOTE

Bypass FlagBYP

BIT 2 · 1 BIT · MANDATORY · § 4.1.2.3.1 · Open in the viewer

Controls the application of Frame Acceptance Checks by the receiving end: ‘0’ marks a Type-A frame (subject to FARM checks), ‘1’ a Type-B frame (checks bypassed).

ValueMeaningClause
BF=0 · CCF=0Type-AD — Data Field carries an FDU, subject to FARM Frame Acceptance Checks (Sequence-Controlled / AD Service of the COP)TABLE 4-1
BF=0 · CCF=1Reserved for future applicationTABLE 4-1
BF=1 · CCF=0Type-BD — Data Field carries an FDU, checks bypassed (Expedited / BD Service of the COP)TABLE 4-1
BF=1 · CCF=1Type-BC — Data Field carries Control Commands, checks bypassed (controls the Sequence-Controlled Service)TABLE 4-1

The FARM associated with the COP can be made to operate in a normal ‘Acceptance’ mode (Type-A frames) or a ‘Bypass’ mode (Type-B frames), according to the setting of the Bypass Flag.

All received Transfer Frames first undergo a basic standard set of Frame Validation Checks, applied regardless of the Bypass Flag setting (see 4.4.9.3).

Control Command FlagCCF

BIT 3 · 1 BIT · MANDATORY · § 4.1.2.3.2 · Open in the viewer

Specifies whether the Data Field conveys Control Commands (Type-C) or Data (Type-D).

ValueMeaningClause
‘0’Type-D — Data Field contains a Frame Data Unit§ 4.1.2.3.2.2 a)
‘1’Type-C — Data Field contains control information§ 4.1.2.3.2.2 b)

In the C mode, the Data Field conveys control information used to set the parameters of the FARM to the proper configuration to accept data. In the D mode, the Data Field contains a Frame Data Unit.

The combined states of the Bypass and Control Command Flags define frame types AD, BD and BC — see the Bypass Flag page (table 4-1).

Reserved SpareRSVD

BITS 4–5 · 2 BITS · MANDATORY · § 4.1.2.4 · Open in the viewer

Two bits reserved for future application; always set to ‘00’.

ValueMeaningClause
‘00’Mandatory value — reserved by the CCSDS§ 4.1.2.4.2

Spacecraft IdentifierSCID

BITS 6–15 · 10 BITS · MANDATORY · § 4.1.2.5 · Open in the viewer

Identifies the spacecraft associated with the data contained in the frame. Assigned by the CCSDS and static throughout all Mission Phases.

The Secretariat of the CCSDS assigns Spacecraft Identifiers according to the procedures in reference [6].

Virtual Channel IdentifierVCID

BITS 16–21 · 6 BITS · MANDATORY · § 4.1.2.6 · Open in the viewer

Identifies the Virtual Channel — up to 64 Virtual Channels per spacecraft on the TC link.

There are no restrictions on the selection of Virtual Channel Identifiers. In particular, Virtual Channels are not required to be numbered consecutively.

Frame LengthLEN

BITS 22–31 · 10 BITS · MANDATORY · § 4.1.2.7 · Open in the viewer

A length count C equal to one fewer than the total number of octets in the frame, measured from the first bit of the Primary Header to the last bit of the FECF (or Data Field if the FECF is omitted).

ValueMeaningClause
C = TOTAL OCTETS − 1The encoded length count§ 4.1.2.7 NOTE 1
MAX 1024 OCTETSThe size of this field limits the maximum length of a Transfer Frame to 1024 octets§ 4.1.2.7 NOTE 2

Frame Sequence NumberFSN

BITS 32–39 · 8 BITS · MANDATORY · § 4.1.2.8 · Open in the viewer

N(S) — enables the FARM to check the sequentiality of incoming Type-A frames. Maintained separately for each Virtual Channel.

ValueMeaningClause
ALL ZEROESThe COP does not use this field of Type-B Transfer Frames; in this case the contents are set to ‘all zeroes’ by COP§ 4.1.2.8 NOTE 3

The procedure for assigning the Frame Sequence Number to Transfer Frames is defined in reference [4].

The Frame Sequence Number is Virtual Channel dependent; this protocol maintains a separate Frame Sequence Number for each of the Virtual Channels.

Transfer Frame Data FieldDF

UP TO 1019 OCTETS · MANDATORY · § 4.1.3 · Open in the viewer

Carries one Frame Data Unit (Type-D frames) — optionally prefixed by a Segment Header — or Control Command information (Type-C frames).

A Frame Data Unit that has a Segment Header is called a Segment.

Segment HeaderSEG

1 OCTET · OPTIONAL · § 4.1.3.2.2 · Open in the viewer

Optional one-octet prefix of a Frame Data Unit: Sequence Flags plus the MAP Identifier. Required on Virtual Channels with more than one MAP or with service data units larger than one frame.

The Segment Header must not be present in Transfer Frames carrying Control Commands (4.1.3.2.2.1.3).

The Segment Header is required for any Virtual Channel which has more than one MAP or which transfers service data units larger than permitted in a single Transfer Frame; if used on a Virtual Channel, it must be used for all Transfer Frames carrying Frame Data Units on that channel.

Sequence FlagsSEQF

SEG HDR BITS 0–1 · 2 BITS · MANDATORY WITHIN SEG HDR · § 4.1.3.2.2.2 · Open in the viewer

Delimits the user’s service data unit by indicating the sequential position of the User Data in this Frame Data Unit relative to the whole service data unit.

ValueMeaningClause
‘01’First portion of service data unit on one MAPTABLE 4-2
‘00’Continuing portion of service data unit on one MAPTABLE 4-2
‘10’Last portion of service data unit on one MAPTABLE 4-2
‘11’No segmentation — one complete service data unit or multiple PacketsTABLE 4-2

Multiplexer Access Point IdentifierMAP

SEG HDR BITS 2–7 · 6 BITS · MANDATORY WITHIN SEG HDR · § 4.1.3.2.2.3 · Open in the viewer

Identifies the MAP Channel within a Virtual Channel — up to 64 MAPs per Virtual Channel.

There are no restrictions on the selection of MAP Identifiers. In particular, MAPs are not required to be numbered consecutively.

User Data (Frame Data Unit)FDU

UP TO 1019 OCTETS · MANDATORY IN TYPE-D FRAMES · § 4.1.3.2 · Open in the viewer

The user content of a Type-D frame: Packets, a MAP_SDU or a VCA_SDU — whole or as a segmented portion, depending on the Segment Header.

Control CommandsCC

1 OR 3 OCTETS · TYPE-C (BC) FRAMES ONLY · § 4.1.3.3 · Open in the viewer

The content of a Type-BC frame Data Field. Two Control Commands are defined — Unlock and Set V(R) — which configure the FARM to accept data.

ValueMeaningClause
00000000Unlock — a single octet of all zeroes§ 4.1.3.3.2
10000010 00000000 XXXXXXXXSet V(R) — three octets; XXXXXXXX is the value to which the FARM should set the Receiver_Frame_Sequence_Number, V(R)§ 4.1.3.3.3

All other bit combinations for Control Commands are reserved by the CCSDS for future application (4.1.3.3.4).

Frame Error Control FieldFECF

2 OCTETS · OPTIONAL · § 4.1.4 · Open in the viewer

A 16-bit CRC computed over the whole frame, for detecting errors introduced during transmission and data handling. If used, it is present in every frame of the Physical Channel.

ValueMeaningClause
G(X) = X¹⁶ + X¹² + X⁵ + 1Generating polynomial of the CRC§ 4.1.4.2.2
L(X) = X¹⁵ + X¹⁴ + … + X + 1Presetting polynomial — the shift register is preset to the all-‘1’ state before encoding§ 4.1.4.2.2

At the receiving end the syndrome S(X) is zero if no error is detected and non-zero if an error is detected (4.1.4.3).

Whether this field should be used on a particular Physical Channel is determined by mission requirements for data quality and the selected options of the underlying Channel Coding Sublayer.

Rules