SatCat5
ccsds_aos.h File Reference

Detailed Description

CCSDS "Advanced Orbiting Systems" (AOS) Space Data Link Protocol.

This file defines SatCat5 networking primitives (i.e., net::Address, net::Dispatch, and net::Protocol), and other utility functions for the CCSDS AOS Space Data Link Protocol, Blue Book 732.0-B-4.

For simplicity, SatCat5 lumps the Spacecraft ID and the Virtual Channel ID into a single address/protocol binding. The fixed size of the Transfer Frame Data Field is specified on creation.

For now, only the following configuration is supported:

  • Space Data Link Security (SDLS) is disabled.
  • Frame Header Error Control Field is disabled.
  • Transfer Frame Insert Zone is disabled.
  • Operational Control Field is disabled.
  • Frame Error Control Field (FECF) is required.

The I/O format can be configured for frame or stream mode. In "frame" mode, the underlying physical medium provides framing information and no further encoding is required. In "stream" mode, the byte-stream is further encoded using CCSDS "TM Synchronization and Channel Coding" (Blue Book 131.0-B-5) in uncoded mode. This simply inserts (or expects) a fixed 32-bit sync-word (0x1ACFFC1D) before each AOS transfer frame.

Definition in file ccsds_aos.h.

#include <satcat5/crc16_checksum.h>
#include <satcat5/net_core.h>
#include <satcat5/pkt_buffer.h>
Include dependency graph for ccsds_aos.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  satcat5::ccsds_aos::Header
 CCSDS-AOS transfer frame header. More...
 
class  satcat5::ccsds_aos::Channel
 CCSDS-AOS Virtual Channel. More...
 
class  satcat5::ccsds_aos::Dispatch
 Implemention of "net::Dispatch" API for CCSDS-AOS protocol. More...
 
class  satcat5::ccsds_aos::DispatchStatic< DSIZE >
 Dispatch with a statically-allocated working buffer. More...
 

Variables

constexpr u16 satcat5::ccsds_aos::VERSION_MASK = 0xC000
 
constexpr u16 satcat5::ccsds_aos::SCID_MASK = 0x3FC0
 
constexpr u16 satcat5::ccsds_aos::VCID_MASK = 0x003F
 
constexpr u8 satcat5::ccsds_aos::REPLAY_MASK = 0x80
 
constexpr u8 satcat5::ccsds_aos::FRCT_EXT_MASK = 0x40
 
constexpr u8 satcat5::ccsds_aos::RSVD_MASK = 0x30
 
constexpr u8 satcat5::ccsds_aos::FRCT_VAL_MASK = 0x0F
 
constexpr u16 satcat5::ccsds_aos::VERSION_2 = (1 << 14)
 
constexpr u32 satcat5::ccsds_aos::TM_SYNC_WORD = 0x1ACFFC1D
 Sync-word for CCSDS "TM Synchronization and Channel Coding".
 
constexpr u8 satcat5::ccsds_aos::TM_SYNC_BYTES [] = {0x1A, 0xCF, 0xFC, 0x1D}
 
constexpr u16 satcat5::ccsds_aos::VCID_DEFAULT = 0x0000
 
constexpr u16 satcat5::ccsds_aos::VCID_IDLE = 0x003F