Космический протокол Cubesat
Оригинальный автор(ы) | Йохан де Клавиль Кристиансен |
---|---|
Разработчик(и) | СпейсИнвентор , Гомспейс |
Первоначальный выпуск | 26 апреля 2010 г. |
Стабильная версия | 1,6
/ 17 апреля 2020 г |
Написано в | С , Питон |
Операционная система | FreeRTOS , Linux , Mac OS X , Microsoft Windows |
Тип | Протокол |
Лицензия | Меньшая стандартная общественная лицензия GNU |
Веб-сайт | Библиотека Github космического протокола CubeSat |
Космический протокол CubeSat ( CSP ) — небольшой протокол доставки сетевого уровня, разработанный для CubeSat . [ нужна ссылка ] Идея была развита группой студентов из Ольборгского университета в 2008 году и получила дальнейшее развитие для миссии AAUSAT3 CubeSat, запущенной в 2013 году. Протокол основан на 32-битном заголовке, содержащем информацию как сетевого, так и транспортного уровня. Его реализация предназначена для встраиваемых систем, таких как 8-битный микропроцессор AVR и 32-битный ARM и AVR от Atmel. Реализация написана на C и портирована для работы в FreeRTOS и POSIX, а также в операционных системах на основе pthreads, таких как Linux . Трехбуквенная аббревиатура CSP была принята в качестве аббревиатуры CAN Space Protocol , поскольку первый драйвер MAC-уровня был написан для CAN -шины. С тех пор физический уровень был расширен за счет включения нескольких других технологий, поэтому название было расширено до более общего космического протокола CubeSat без изменения аббревиатуры.
Протокол и его реализацию до сих пор активно поддерживают Йохан де Клавиль Кристиансен, Space Inventor и GomSpace. Исходный код доступен по лицензии LGPL и размещен на GitHub .
Описание
[ редактировать ]Космический протокол CubeSat позволяет распределенным встроенным системам развертывать сервис-ориентированную топологию сети. [ нужна ссылка ] Уровни CSP соответствуют тем же уровням, что и модель TCP/IP . Реализация поддерживает транспортный протокол, ориентированный на соединение (уровень 4), ядро маршрутизатора (уровень 3) и несколько сетевых интерфейсов (уровни 1–2). Сервис-ориентированная топология упрощает проектирование спутниковых подсистем, поскольку сама коммуникационная шина является интерфейсом для других подсистем. Это означает, что каждому разработчику подсистемы необходимо только определить сервисный контракт и набор номеров портов, на которые будет отвечать его система. Кроме того, взаимозависимости подсистем уменьшаются, а избыточность легко добавляется путем добавления нескольких аналогичных узлов к коммуникационной шине.
Ключевые особенности включают в себя: [ нужна ссылка ]
- Простой API, похожий на сокеты Беркли .
- Ядро маршрутизатора со статическими маршрутами. Поддерживает прозрачную пересылку пакетов, например, по Spacelink.
- Поддержка как работы без установления соединения (аналогично UDP ), так и работы с установлением соединения (на основе RUDP ).
- Обработчик службы, реализующий ICMP -запросы, такие как проверка связи и состояние буфера.
- Поддержка шлейфового трафика. Это можно, например, использовать для межпроцессного взаимодействия между задачами подсистемы.
- Дополнительная поддержка широковещательного трафика, если она поддерживается физическим интерфейсом.
- Дополнительная поддержка смешанного режима, если он поддерживается физическим интерфейсом.
- Дополнительная поддержка зашифрованных пакетов с XTEA в режиме CTR .
- Дополнительная поддержка пакетов, аутентифицированных HMAC , с усеченным SHA-1 HMAC.
Поддерживаемые операционные системы
[ редактировать ]CSP должен компилироваться на всех платформах, на которых установлена последняя версия компилятора gcc . CSP требует поддержки функций C99 , таких как встроенные функции и назначенные инициализаторы.
- FreeRTOS — протестировано на AVR8 , AVR32 и ARM7 .
- Linux — протестировано на x86 , x86-64 и Blackfin .
- Мак ОС Х
- Microsoft Windows
Драйверы физического уровня
[ редактировать ]CSP поддерживает несколько технологий физического уровня. Лицензионный исходный код LGPL содержит реализацию фрагментированного интерфейса CAN и драйверы для SocketCAN и процессоров Atmel AT90CAN128, AT91SAM7A1 и AT91SAM7A3. Начиная с версии 1.1, CSP также включает интерфейсы I2C и RS-232 . Интерфейсам необходимо только реализовать функцию передачи пакета и вставить полученные пакеты в стек протоколов с помощью функции csp_new_packet. CSP был успешно протестирован поверх следующих слоев:
- МОЖЕТ
- I2C
- RS-232 с использованием KISS_(TNC) [1] протокол
- CCSDS 131.0-Б-1-С [2] /131.0-B-2 [3] протокол космической связи
- UDP/IP
- СПИ [4]
Заголовок протокола
[ редактировать ]Версия 1
[ редактировать ]Диапазон портов разделен на три регулируемых сегмента. Порты от 0 до 7 используются для общих служб, таких как проверка связи и состояние буфера, и реализуются обработчиком службы CSP. Порты с 8 по 47 используются для служб, специфичных для подсистемы. Все остальные порты, с 48 по 63, являются временными портами, используемыми для исходящих соединений. Биты с 28 по 31 используются для маркировки пакетов с помощью HMAC, шифрования XTEA, заголовка RDP и контрольной суммы CRC32.
Битовое смещение | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Приоритет | Источник | Место назначения | Место назначения Порт |
Источник Порт |
Сдержанный | ЧАС М А С |
Х Т И А |
Р Д П |
С Р С | ||||||||||||||||||||||
32 | Данные (0–65 535 байт) |
Версия 2
[ редактировать ]Битовое смещение | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Приоритет | Место назначения | Источник | Место назначения Порт |
Источник Порт |
Сдержанный | ЧАС М А С |
Х Т И А |
Р Д П |
С Р С | ||||||||||||||||||||||||||||||||||||||
48 | Данные (0–65 535 байт) |
Ссылки
[ редактировать ]- ^ «Протокол ПОЦЕЛУЯ» .
- ^ «Синхронизация ТМ и канальное кодирование CCSDS 131.0-B-1 Синяя книга» (PDF) . Сентябрь 2003 года . Проверено 9 декабря 2022 г.
- ^ «Рекомендуемый стандарт синхронизации TM и канального кодирования CCSDS 131.0-B-2» (PDF) . Август 2011 года . Проверено 9 декабря 2022 г.
- ^ «Обработка информации и цифровая связь в модульном спутнике» .