Автор (ы) оригинала | AAUSAT3 |
---|---|
Разработчики) | AAUSAT3 , GomSpace |
Первый выпуск | 26 апреля 2010 г. |
Стабильный выпуск | 1.6 / 17 апреля 2020 г . |
Написано в | C , Python |
Операционная система | FreeRTOS , Linux , Mac OS X , Microsoft Windows |
Тип | Протокол |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU |
Веб-сайт | http://www.libcsp.org |
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.
Битовое смещение | 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 | Приоритет | Источник | Назначения | Порт назначения | Исходный порт | Зарезервированный | H M A C | Х Т Е А | R D P | C R C | ||||||||||||||||||||||
32 | Данные (0 - 65 535 байт) |
Ссылки [ править ]
- ^ http://www.ax25.net/kiss.aspx
- ^ https://public.ccsds.org/Pubs/131x0b1s.pdf
- ^ https://public.ccsds.org/Pubs/131x0b2ec1s.pdf
Внешние ссылки [ править ]
- Веб-сайт проекта и хостинг исходного кода
- Университет Ольборга, Студенческая спутниковая деятельность
- Университет Ольборга, AAUSAT3 - первый куб-спутник AAU, использующий CSP
- GomSpace ApS