Космический протокол Cubesat - Cubesat Space Protocol

CubeSat Space Протокол
Оригинальный автор (ы)AAUSAT3
Разработчики)AAUSAT3, GomSpace
изначальный выпуск26 апреля 2010 г.
Стабильный выпуск
1.6 / 17 апреля 2020 г.; 7 месяцев назад (2020-04-17)
Написано вC, Python
Операционная системаFreeRTOS, Linux, Mac OS X, Майкрософт Виндоус
ТипПротокол
ЛицензияСтандартная общественная лицензия ограниченного применения GNU
Интернет сайтhttp://www.libcsp.org

CubeSat Space Протокол (CSP) - это небольшой протокол доставки сетевого уровня, предназначенный для CubeSats.[нужна цитата ] Идея была разработана группой студентов из Ольборгский университет в 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 Протокол потому что первый драйвер MAC-уровня был написан для МОЖЕТ -автобус. С тех пор физический уровень был расширен за счет включения нескольких других технологий, и поэтому название было расширено до более общего CubeSat Space Protocol без изменения аббревиатуры.

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

Описание

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

Ключевые особенности включают:[нужна цитата ]

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

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

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

Драйверы физического уровня

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

Заголовок протокола

Версия 1

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

Заголовок CSP 1.0+
Битовое смещение31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0
0ПриоритетИсточникПункт назначенияПункт назначения
Порт
Источник
Порт
ЗарезервированныйЧАС
M
А
C
Икс
Т
E
А
р
D
п
C
р
C
32Данные (0 - 65 535 байт)

Рекомендации

внешняя ссылка