Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

CubeSat Space Protocol ( CSP ) - это небольшой протокол доставки на сетевом уровне, разработанный для CubeSat . [ необходима цитата ] Идея была разработана группой студентов из Ольборгского университета в 2008 году и доработана для миссии AAUSAT3 CubeSat, которая была запущена в 2013 году. Протокол основан на 32-битном заголовке, содержащем информацию как сетевого, так и транспортного уровня. . Его реализация предназначена для встраиваемых систем, таких как 8-битный микропроцессор AVR и 32-битный ARM и AVR от Atmel. Реализация написана на C и портирована для работы на FreeRTOS и POSIX и Pthreads-основанные операционные системы, такие как Linux . Поддержка Mac OS X и Microsoft Windows будет доступна в версии 1.1. Трехбуквенная аббревиатура CSP была принята в качестве аббревиатуры для CAN Space Protocol, поскольку первый драйвер уровня MAC был написан для CAN-шины . С тех пор физический уровень был расширен за счет включения нескольких других технологий, и поэтому название было расширено до более общего CubeSat Space Protocol без изменения аббревиатуры.

Протокол и реализация активно поддерживаются студентами Ольборгского университета и дочерней компанией GomSpace . Исходный код доступен по лицензии LGPL и размещен на GitHub .

Описание [ править ]

Протокол CubeSat Space позволяет распределенным встроенным системам развертывать сервис-ориентированную топологию сети. [ необходима цитата ] Уровни CSP соответствуют тем же уровням, что и модель TCP / IP . Реализация поддерживает транспортный протокол, ориентированный на соединение (уровень 4), ядро ​​маршрутизатора (уровень 3) и несколько сетевых интерфейсов (уровни 1-2). Сервис-ориентированная топология упрощает проектирование спутниковых подсистем, поскольку коммуникационная шина сама по себе является интерфейсом.к другим подсистемам. Это означает, что разработчику каждой подсистемы нужно только определить сервисный контракт и набор номеров портов, на которые будет отвечать их система. Кроме того, взаимозависимости подсистем уменьшаются, а избыточность легко добавляется путем добавления нескольких аналогичных узлов к коммуникационной шине.

Ключевые особенности: [ необходима ссылка ]

  • Простой API, похожий на сокеты Беркли .
  • Ядро маршрутизатора со статическими маршрутами. Поддерживает прозрачную пересылку пакетов, например, по космической линии связи.
  • Поддержка как работы без установления соединения (аналогично UDP ), так и работы с установлением соединения (на основе RUDP ).
  • Обработчик службы, реализующий запросы, подобные ICMP, такие как проверка связи и состояние буфера.
  • Поддержка кольцевого трафика. Это может, например, использоваться для межпроцессного взаимодействия между задачами подсистемы.
  • Дополнительная поддержка широковещательного трафика, если поддерживается физическим интерфейсом.
  • Дополнительная поддержка неразборчивого режима, если поддерживается физическим интерфейсом.
  • Дополнительная поддержка зашифрованных пакетов с XTEA в режиме CTR .
  • Дополнительная поддержка аутентифицированных пакетов HMAC с усеченным SHA-1 HMAC.

Поддерживаемые операционные системы [ править ]

CSP должен компилироваться на всех платформах, на которых установлена ​​последняя версия компилятора gcc . CSP требует поддержки функций C99, таких как встроенные функции и назначенные инициализаторы.

  • FreeRTOS - протестировано на AVR8 , AVR32 и ARM7 .
  • Linux - протестировано на x86 , x86-64 и Blackfin .
  • Mac OS X
  • Майкрософт Виндоус

Драйверы физического уровня [ править ]

CSP поддерживает несколько технологий физического уровня. Лицензированный исходный код LGPL содержит реализацию фрагментирующего интерфейса CAN и драйверы для SocketCAN и процессоров Atmel AT90CAN128, AT91SAM7A1 и AT91SAM7A3. Начиная с версии 1.1, CSP также включает интерфейсы для I2C и RS-232 . Интерфейсам нужно только реализовать функцию для передачи пакета и вставить полученные пакеты в стек протоколов с помощью функции csp_new_packet. CSP был успешно протестирован со следующими физическими уровнями.

  • МОЖЕТ
  • I2C
  • RS-232 с использованием протокола KISS [1]
  • CCSDS 131.0-B-1-S [2] /131.0-B-2 [3] протокол космической связи
  • TCP / IP

Заголовок протокола [ править ]

Версия 1 [ править ]

Диапазон портов разделен на три регулируемых сегмента. Порты с 0 по 7 используются для общих служб, таких как проверка связи и состояние буфера, и реализуются обработчиком службы CSP. Порты с 8 по 47 используются для служб, специфичных для подсистем. Все остальные порты, с 48 по 63, являются временными портами, используемыми для исходящих соединений. Биты с 28 по 31 используются для маркировки пакетов с помощью HMAC, шифрования XTEA, заголовка RDP и контрольной суммы CRC32.

Ссылки [ править ]

  1. ^ http://www.ax25.net/kiss.aspx
  2. ^ https://public.ccsds.org/Pubs/131x0b1s.pdf
  3. ^ https://public.ccsds.org/Pubs/131x0b2ec1s.pdf

Внешние ссылки [ править ]

  • Веб-сайт проекта и хостинг исходного кода
  • Университет Ольборга, Студенческая спутниковая деятельность
  • Университет Ольборга, AAUSAT3 - первый куб-спутник AAU, использующий CSP
  • GomSpace ApS