<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A New Meta-Data Structure For Telecommand and Telemetry Transmission in Space Missions? Uzay Gorevlerinde Uzkomut ve Uzolcum I_letimine Yonelik Yeni Bir Meta-Veri Yap s</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fatih I_leri</string-name>
          <email>fatih.ileri@metu.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Turkish Aerospace Industries Inc.</institution>
          ,
          <addr-line>Ankara</addr-line>
          ,
          <country country="TR">Turkey</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Increasing complexities in satellite missions require the telecommand (TC) and telemetry (TM) transmission and the data structures within the telecommands and telemetries to be designed to meet the complex mission requirements. Building complex data structures yields a heavy work load on the development stage, while transmission of such data frames consumes a signi cant amount of time period of the available space link interval. In order to respond these challenges, a metadata model which is able to be generated through XML formation, together with the TC encoder, TM decoder (on the ground station), TC decoder and TM encoder (on the ight SW (FSW)) is developed in this work. This metadata model enables easy production of complex telecommands and telemetries composed of various combinations of eld types and nested structures. O zet. Uydu gorevlerindeki karmas kl klar n artmas , uzkomut ve uzolcum iletiminin ve uzkomut - uzolcum veri yap lar n n karmas k gorev gereksinimlerine de cevap verebilir sekilde tasarlanmas n gerektirmektedir. Karmas k veri yap lar insa etmek yaz l m gelistirme surecine ag r bir yuk getirmekteyken, bu tur veri paketlerinin iletimi de mumkun olan uydu baglant s suresinin ciddi bir k sm n tuketmektedir. Bu zorluklara cevap vermek uzere XML duzeni arac l g yla kodu uretilebilen bir meta-veri modeliyle birlikte yer istasyonunda uzkomut kodlay c , uzolcum cozucu, ucus yaz l m nda uzkomut cozucu, uzolcum kodlay c gelistirdik. Bu meta-veri modeli, veri tiplerinin cesitli kombinasyonlar ndan ve ic ice yap lardan olusan karmas k telekomutlar n kolayca uretilmesini mumkun k lmaktad r. Anahtar kelimeler: meta-veri uzkomut uzolcum cozucu uzay gorevleri.</p>
      </abstract>
      <kwd-group>
        <kwd>metadata telecommand telemetry encoder decoder space missions</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>kod</p>
    </sec>
    <sec id="sec-2">
      <title>Introduction</title>
      <p>
        Space missions are getting more and more complex in the recent years, such that,
space missions pose hard challenges re ected through a multitude of dependent
parameters [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Besides the transmission challenges due to the increasing size of
telecommands and telemetries from the bandwidth point of view, decomposing
the telecommands and the telemetries also brings extra load at the
corresponding receivers as the variety of these data frames increases. De ning and tailoring
mission-oriented telecommands and telemetries is also a hard task from the
development point of view, such that a modular metadata design is an emerging
need.
      </p>
      <p>
        Satellite communication system SW design and implementation is a huge
work load, which should be based on modularity as much as possible for the SW
to be easily tailored for new satellite systems. The required modularity should
enable easy tailoring the SW system through the con guration les stored in
databases rather than making modi cations on the code itself [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Architectures
which have the capability of self-adaptation in the runtime with respect to the
modi ed requirements are named as \meta-architectures" [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Thome et. al.
implemented a such an architecture for controlling (monitoring and commanding)
multiple satellites dedicated for di erent missions through a common
infrastructure [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. They designed di erent metadata for each of the satellites to be
controlled. Each metadata set composes a di erent part of a single object model. A
satellite operator is permitted to utilize only the part of the object model which
is related to the satellite system he/she is authorized to control. The authors
do not provide details about the metadata they used but the work they did is
important from the usage scenario point of view.
      </p>
      <p>
        In 2004, Simon et. al. published the XTCE - an XML based standard for the
mission operation databases - which constitutes a basis for our meta-data model
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In XTCE, the output bit stream is composed of containers. A container may
contain other containers. The useful data packaging unit is named as \message".
A message together with the identi er key is encapsulated by the \key container"
entity. The key is used by the receiver unit in identifying the related message.
The atomic data unit in the XTCE context is the \parameter". A parameter has
di erent features such as type, size and bit order. All the types of parameters
such as integer parameters, oat parameter, array parameters and etc. are
inherited from the parameter base class. All the telemetry and telecommand data
structures can be de ned in XTCE format as discussed here.
      </p>
      <p>In this work, we propose a tailored version of the XTCE approach, which
has a hierarchical architecture enabling code generation, to de ne the
telecommands and the telemetries together with all the subcomponents. Once a TC or
TM is de ned in XML format with respect to our metadata model, then the
metadata code for the TC or TM can easily be generated. The modularity of
this metadata structure enables quickness and easiness in populating di erent
versions of telecommands and telemetries. This metadata model can easily be
integrated with the TM and TC encoders and decoders to be used in FSW and
ground station software (GSW). Telecommands and telemetries are called as
\data frame" in next chapters for simplicity.
2</p>
    </sec>
    <sec id="sec-3">
      <title>Methodology</title>
      <p>The metadata is built for all the data frame (TC and TM) structures in a
hierarchical manner in XML formation for them to be programmatically populated.
All the metadata are stored in both the onboard computer and the ground
station. The metadata representing a TC is utilized by the encoder module of the
GSW, which generates the bit stream. The generated bit stream is passed to
the next layer to be transmitted to the satellite. Same methodology is applied
for the TM delivery: The metadata representing a TM frame is used by the TM
encoder module of the FSW, for the corresponding bit stream to be generated.
Once the TM bit stream is generated, it is forwarded to the next layer to be
transmitted to the ground. Decoding of a TM by the GSW, and a TC by the
FSW are handled in a similar manner.
2.1</p>
      <sec id="sec-3-1">
        <title>Metadata Model Components</title>
        <p>Field descriptions constitute the biggest part of the metadata. Field
descriptions contains all the information related to the component it refers to. Each
description consists of the following:
{ descriptionType: eld or array
{ isConditional: The ag that represents whether the existence of the related
eld is dependent to a condition or not.
{ conditionDescription: Details of the condition on which the existence of
the eld in question depends.
{ eldData: Includes the decription of a single element ( eld).
o set: Number of bytes before this eld in the encapsulating structure
in the metadata.
nativeFieldType: Enumerator representing the primitive type of the
eld in the output structure of the decoder or input structure of the
encoder.
encodedFieldType:Represents how the native eld is encoded (e.g.
unsigned, twos complement, and etc.)
eldBitLength: Size of the elds in bits
eldEndianness: Represents the bit ordering of the eld.
polynomialCoe cientsIndex: The index of the polynomial coe
cients in the polynomial coe cients multidimensional array, to be applied
on the raw eld value to obtain the corresponding engineering value.
rangeIndex: The index of the range description in the range
descriptions array, which enables range validation on the eld in question.
Negative value is assigned to rangeIndex if there is no need for a range check.
{ arrayData: Includes the decription of an array.
arrayStartO set: Number of bytes in the encapsulating structure
before the rst element of this array
isSizeFieldConstant: The ag which shows whether the array size is
constant or located in a position in the metadata
constantArraySize: If the isSizeFieldConstant ag is \True", then the
array size is written in the constantArraySize eld.
arraySizeFieldO set: If the isSizeFieldConstant ag is \False",
arraySizeFieldO set shows from where to read the array size information in
this metadata. arraySizeFieldO set is relative to the array level in which
this array is nested, or absolute (relative to the start of the upper layer
data frame structure) if there is no nesting.
arraySizeFieldO set: The enumerator which represents the type of
the array size eld. It is the same enumerator with the nativeFieldType
of the eldData.
arrayElementSize: Number of bytes allocated in the output structure
of the decoder or input structure of the encoder per element of the array
in question.
arrayDescriptionSpan:Number of component descriptions for the
array in question. It is used to understand where the descriptions of the
next element of the data to be transferred begins in the metadata.
Only one of the components eldData and arrayData can exist in a component
description, since a component in the data frame can either be an array, or a
single eld. But each element of array may contain another array together with
a eld, which is called \nested array".
2.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Conditional Fields, Arrays</title>
        <p>When the isConditional ag of a description is \True", the described element
may or may not exist in the data frame bit stream depending on the condition.
conditionDescription eld in the metadata describes how to apply a conditional
check on the related eld or array. A conditionDescription is composed of the
following components:
{ navigationParameters: A set of parameters through which the encoder
or decoder module is supposed to compute the address of the eld value on
which the condition check is going to be applied.
{ conditionFieldType: Primitive type of the condition eld
{ conditionValue: The value which will be used to determine the existence
of the eld in question
The pathway in applying a condition check on a eld is as follows:
1. Calculate absolute o set of the eld which is going to be checked,
2. Retrieve value from the eld,
3. Apply equality check between the eld value and the conditionValue,
4. If values are equal, then the described component (array or eld) exists in
the data frame bit stream,
5. If not, the described component is not present in the data frame bit stream.
An important detail about retrieving a value by using the absolute and relating
o set values is that the o setting should be related to a eld which is already
parsed from the data frame bit stream (for decoding), or written to the data
frame bit stream (for encoding).
2.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Calibration</title>
        <p>
          Calibration is the conversion of a raw value to its corresponding engineering
value. This is generally needed when it is more e cient to send the raw value
together with the calibration parameters when compared to sending the resulting
engineering value [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. In our metadata model we implemented polynomial
calibrations, such that the calibration parameters are the polynomial coe cients.
        </p>
        <p>All the coe cients are stored in a single array. The eld which will be
calibrated has the index (stored in polynomialCoe cientsIndex )for the polynomial
coe cients table. If no calibration is to be applied, polynomialCoe cientsIndex
is set to a negative number. The polynomial coe cients table is an array of
polynomialCoe cients elements. Each polynomialCoe cients element is composed
of:
{ A variable for the number of coe cients,
{ A pointer for the reaching the rst polynomial coe cient on the coe cients
array.</p>
        <p>Once the calibration parameters are accessed, then the engineering value is
computed simply as in the following:
e =
n 1
X c[i]ri
i=0
where;
n is the number of polynomial coe cients associated with the eld in question,
c is the array of polynomial coe cients,
r is the raw value,
e is the engineering value.
2.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>Range Check</title>
        <p>Range check is a protective process before encoding or decoding a data frame.
Range check is applied on a eld in the data frame if its description indicates
a range check necessity (i.e., rangeIndex has a non-negative value in the related
eld description). Range descriptions array is composed of RangeDescription
objects. A RangeDescription object has the following attributes:
(1)
{ rangeType: Type of the range check to be applied (e.g. lower limit check,
upper limit check and etc.)
{ rangeOperationParameters: The parameters of the range check
operation like the lower and upper limits, or the primitive type of the limit
parameters.</p>
        <p>A eld, value of which is 20, should pass the range test given on Table 1:
When the range test of any eld of the data frame fails, the overall data
frame is discarded and some alert mechanisms speci c to the application should
be initiated.
An array description is followed by its elements' description(s) in the metadata.
Elements of an array may be of primitive types, structured types, or
combinations of primitive and structured types. Figure 1 demonstrates a single level
(array composed of non-array elements) array description. Each element of the
given sample array is a structured type, which is composed of two primitive type
elds. It is also worth emphasizing that any integer element of the array which
is encoded in the data frame bit stream with n bits, may be represented with m
bits signed integer position in the upper layer structure (output of the decoder
or input of the encoder), where m is larger than n.
If any sub- eld of an array is also an array, this architecture is called \nested
array". The metadata structure we propose provides a exible nested array
definition. Before giving an example of nested array description, it is needed to
mention the \array level info" table. When decoding or encoding an array, the
information necessary to use with the o set values to compute the absolute
location of any eld in the higher level structure are kept in a table called \array
level info". Number of entities in this structure gives the array level in which the
encoding or decoding process is being carried on.</p>
        <p>A graphical representation of a nested array description is given in Figure 2.
Each element of the outer array consists of a 16 bits signed integer and an array.
The inner array consists of unsigned integers (encoded with 8 bits in upper layer
structure).
The eld descriptions metadata is provided to the encoder or decoder within a
codec table. One can de ne the codec table as the metadata of the eld
descriptions metadata. Components of the codec table is given below:
{ Number of eld descriptions &amp; eld descriptions array,
{ Number of range descriptions &amp; range descriptions array,
{ Number of polynomial coe cients &amp; array polynomial coe cients,
{ Byte parsing direction.</p>
        <p>Finally, considering the TC transmission; a TC bit stream is transmitted
from GS to the FSW together with the codec table for the FSW to decode the
TC bit stream. Similarly, GS utilizes the codec table to encode the upper layer
TC structure to the TC bit stream with the minimum number of bits to represent
the whole data. Block diagrams of TC encoding in GS, and TC decoding in FSW
are given in Figure 3 and Figure 4, respectively. The opposite direction of the
same pathway is applied in TM transmission.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and Future Work</title>
      <p>
        In this work, we developed a metadata structure which guides the GSW and the
FSW through the encoding and decoding of data frames. The proposed
metadata structure minimizes the bit length of the transmitted data frame, reducing
the bandwidth needed per data frame, which is a critical parameter especially
for the LEO satellites [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Since the metadata architecture is hierarchical, any
TM or TC data structure can be de ned in XML format, so that the metadata
code for that data frame can be generated. This also enables easy tailoring of
TM and TC structures. The encoder and decoders within this work are designed
in iterative fashion, while it is possible to utilize recursion. Recursive
implementation decreases the code size and complexity of the encoder and decoder. On
the other hand, it is not considered safe to implement on the onboard computer,
since it may lead to fatal errors when in erroneous codec table cases. Besides
all these; considering the approximate code size of TM/TC interfaces in space
projects, the proposed metadata format may reduce the TM/TC interface
development e ort signi cantly. As the future work; we are planning to build a speci c
language together with an editor to generate XML based metadata models for
telecommands and telemetries. This is supposed to prevent syntax errors as well
as architectural errors in producing XML les representing data models.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Balint</surname>
          </string-name>
          , T.S.:
          <article-title>Nuclear systems for Mars exploration</article-title>
          .
          <source>IEEE Aerospace Conference Proceedings</source>
          <year>2004</year>
          , vol.
          <volume>6</volume>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2004</year>
          ). https://doi.org/10.1109/AERO.
          <year>2004</year>
          .1368102
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Yoder</surname>
            ,
            <given-names>J. W.</given-names>
          </string-name>
          et al.:
          <article-title>Architecture and Design of Adaptive Object-Models</article-title>
          .
          <source>ACM Sigplan Notices</source>
          , Vol.
          <volume>36</volume>
          , pp.
          <volume>50</volume>
          {
          <issue>60</issue>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Thome</surname>
            <given-names>C.</given-names>
          </string-name>
          et al.:
          <article-title>SICSDA: An adaptive con gurable distributed software architecture applied to satellite control missions</article-title>
          . (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Simon</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          et al.:
          <article-title>XTCE: a standard XML-schema for describing mission operations databases</article-title>
          .
          <source>IEEE Aerospace Conference Proceedings</source>
          <year>2004</year>
          , IEEE (
          <year>2004</year>
          ). https://doi.org/10.1109/AERO.
          <year>2004</year>
          .1368138
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>CCSDS</given-names>
            <surname>Secretariat</surname>
          </string-name>
          <article-title>: Telecommand Data Management Service</article-title>
          . NASA, Washington, DC 20546,
          <string-name>
            <surname>USA</surname>
          </string-name>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Belokonov</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          et al.:
          <article-title>The Technology of LEO Satellite Communication Systems Utilization for the Rapid Exchange of Data with the Low-altitude Spacecraft: Scienti c Technological Equipment \Kontakt-MKA" On the Small Spacecraft \AIST-2"</article-title>
          . Procedia Engineering, vol.
          <volume>204</volume>
          , pp.
          <volume>147</volume>
          {
          <issue>156</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>