Cubesat Space Protocol

Last updated
CubeSat Space Protocol
Original author(s) Johan de Claville Christiansen
Developer(s) SpaceInventor, GomSpace
Initial release26 April 2010
Stable release
1.6 / April 17, 2020;3 years ago (2020-04-17)
Written in C, Python
Operating system FreeRTOS, Linux, Mac OS X, Microsoft Windows
Type Protocol
License GNU Lesser General Public License
Website CubeSat Space Protocol Github Library

CubeSat Space Protocol (CSP) is a small network-layer delivery protocol designed for CubeSats.[ citation needed ] The idea was developed by a group of students from Aalborg University in 2008, and further developed for the AAUSAT3 CubeSat mission that was launched in 2013. The protocol is based on a 32-bit header containing both network and transport layer information. Its implementation is designed for embedded systems such as the 8-bit AVR microprocessor and the 32-bit ARM and AVR from Atmel. The implementation is written in C and is ported to run on FreeRTOS and POSIX and pthreads-based operating systems such as Linux. The three-letter acronym CSP was adopted as an abbreviation for CAN Space Protocol because the first MAC-layer driver was written for CAN-bus. The physical layer has since been extended to include several other technologies, and the name was therefore extended to the more general CubeSat Space Protocol without changing the abbreviation.

Contents

The protocol and the implementation is still actively maintained by Johan de Claville Christiansen, Space Inventor and GomSpace. The source code is available under an LGPL license and hosted on GitHub.

Description

The CubeSat Space Protocol enables distributed embedded systems to deploy a service-oriented network topology.[ citation needed ] The layering of CSP corresponds to the same layers as the TCP/IP model. The implementation supports a connection oriented transport protocol (Layer 4), a router-core (Layer 3), and several network-interfaces (Layer 1–2). A service-oriented topology eases the design of satellite subsystems, since the communication bus itself is the interface to other subsystems. This means that each subsystem developer only needs to define a service-contract, and a set of port-numbers their system will be responding on. Furthermore, subsystem inter-dependencies are reduced, and redundancy is easily added by adding multiple similar nodes to the communication bus.

Key features include: [ citation needed ]

Operating systems supported

CSP should compile on all platforms that have a recent version of the gcc compiler. CSP requires support for C99 features such as inline functions and designated initializers.

Physical layer drivers

CSP supports several physical layer technologies. The LGPL licensed source code contains an implementation of a fragmenting CAN interface and drivers for SocketCAN and the Atmel AT90CAN128, AT91SAM7A1 and AT91SAM7A3 processors. From version 1.1 onwards, CSP also includes interfaces for I2C and RS-232. Interfaces need only to implement a function to transmit a packet, and insert received packets into the protocol stack with the csp_new_packet function. CSP has been successfully tested on top of the following layers:

Protocol header

Version 1

The port range is divided into three adjustable segments. Ports 0 to 7 are used for general services such as ping and buffer status, and are implemented by the CSP service handler. The ports from 8 to 47 are used for subsystem specific services. All remaining ports, from 48 to 63, are ephemeral ports used for outgoing connections. The bits from 28 to 31 are used for marking packets with HMAC, XTEA encryption, RDP header and CRC32 checksum.

CSP Header 1.x
Bit offset31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0
0PrioritySourceDestinationDestination
Port
Source
Port
ReservedH
M
A
C
X
T
E
A
R
D
P
C
R
C
32Data (0 – 65,535 bytes)

Version 2

CSP Header 2.x
Bit offset4746454443424140393837363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0
0PriorityDestinationSourceDestination
Port
Source
Port
ReservedH
M
A
C
X
T
E
A
R
D
P
C
R
C
48Data (0 – 65,535 bytes)

Related Research Articles

IEEE 802.2 is the original name of the ISO/IEC 8802-2 standard which defines logical link control (LLC) as the upper portion of the data link layer of the OSI Model. The original standard developed by the Institute of Electrical and Electronics Engineers (IEEE) in collaboration with the American National Standards Institute (ANSI) was adopted by the International Organization for Standardization (ISO) in 1998, but it remains an integral part of the family of IEEE 802 standards for local and metropolitan networks.

In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages to other hosts on an Internet Protocol (IP) network. Within an IP network, UDP does not require prior communication to set up communication channels or data paths.

Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behaviour. Devices that typically support SNMP include cable modems, routers, switches, servers, workstations, printers, and more.

In computing, Internet Protocol Security (IPsec) is a secure network protocol suite that authenticates and encrypts packets of data to provide secure encrypted communication between two computers over an Internet Protocol network. It is used in virtual private networks (VPNs).

In telecommunications and computer networking, a network packet is a formatted unit of data carried by a packet-switched network. A packet consists of control information and user data; the latter is also known as the payload. Control information provides data for delivering the payload. Typically, control information is found in packet headers and trailers.

<span class="mw-page-title-main">AVR microcontrollers</span> Family of microcontrollers

AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

AX.25 is a data link layer protocol originally derived from layer 2 of the X.25 protocol suite and designed for use by amateur radio operators. It is used extensively on amateur packet radio networks.

<span class="mw-page-title-main">Contiki</span> Real-time operating system

Contiki is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things (IoT) devices. Contiki is used for systems for street lighting, sound monitoring for smart cities, radiation monitoring and alarms. It is open-source software released under the BSD-3-Clause license.

Diameter is an authentication, authorization, and accounting protocol for computer networks. It evolved from the earlier RADIUS protocol. It belongs to the application layer protocols in the internet protocol suite.

<span class="mw-page-title-main">Architecture of Windows NT</span> Overview of the architecture of the Microsoft Windows NT line of operating systems

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, they use packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

In computing, Microsoft's Windows Vista and Windows Server 2008 introduced in 2007/2008 a new networking stack named Next Generation TCP/IP stack, to improve on the previous stack in several ways. The stack includes native implementation of IPv6, as well as a complete overhaul of IPv4. The new TCP/IP stack uses a new method to store configuration settings that enables more dynamic control and does not require a computer restart after a change in settings. The new stack, implemented as a dual-stack model, depends on a strong host-model and features an infrastructure to enable more modular components that one can dynamically insert and remove.

The Spacecraft Monitoring & Control (SM&C) Working Group of the Consultative Committee for Space Data Systems, which sees the active participation of 10 space agencies and of the Space Domain Task Force of the Object Management Group, is defining a service-oriented architecture consisting of a set of standard end-to-end services between functions resident on board a spacecraft or based on the ground, that are responsible for mission operations.

BeRTOS is a real-time operating system designed for embedded systems.

The uIP is an open-source implementation of the TCP/IP network protocol stack intended for use with tiny 8- and 16-bit microcontrollers. It was initially developed by Adam Dunkels of the Networked Embedded Systems group at the Swedish Institute of Computer Science, licensed under a BSD style license, and further developed by a wide group of developers.

Internet 0 is a low-speed physical layer designed to route 'IP over anything.' It was developed at MIT's Center for Bits and Atoms by Neil Gershenfeld, Raffi Krikorian, and Danny Cohen. When it was invented, a number of other proposals were being labelled as "internet 2." The name was chosen to emphasize that this was designed to be a slow, but very inexpensive internetworking system, and forestall "high-performance" comparison questions such as "how fast is it?"

Ethernut is an open source hardware and software project for use as an embedded-Ethernet-system.

IQRF is a technology for wireless packet-oriented communication via radio frequency (RF) in sub-GHz ISM bands. It is intended for general use where wireless connectivity is needed, either point-to-point or in complex networks, e.g. for telemetry, industrial control, automation of buildings and cities and Internet of Things. Fully open functionality depends solely on a user-specific application.

<span class="mw-page-title-main">AAUSat-3</span> CubeSat built and operated by Aalborg University, Denmark

AAUSat-3,, is the third CubeSat built and operated by students from the Aalborg University in Denmark. It was launched on 25 February 2013 from the Satish Dhawan Space Centre in India on a Polar Satellite Launch Vehicle (PSLV) launch vehicle (PSLV-C20). AAUSat-3 carries two Automatic Identification System receivers as the main payload.

<span class="mw-page-title-main">Iris (transponder)</span>

The Iris transponder is a small, low power deep-space transponder designed by JPL for use in cubesats. It unifies a number of communication functions - receiver, command detector, telemetry modulator, exciters, and control functions - into one 1.2-kg package that occupies about 0.5 U. Iris is designed to handle X band uplink, UHF receive, and both X band and optional Ka band downlink. It is only one third the mass, and lower power, compared to the smallest previous solution, the Small Deep Space Transponder.

References

  1. "KISS Protocol".
  2. "TM Synchronization and Channel Coding CCSDS 131.0-B-1 Blue Book" (PDF). September 2003. Retrieved December 9, 2022.
  3. "TM Synchronization and Channel Coding Recommended Standard CCSDS 131.0-B-2" (PDF). August 2011. Retrieved December 9, 2022.
  4. "Information Processing and Digital Communications in a Modular Satellite".