Космический протокол Cubesat - Cubesat Space Protocol
Оригинальный автор (ы) | AAUSAT3 |
---|---|
Разработчики) | AAUSAT3, GomSpace |
изначальный выпуск | 26 апреля 2010 г. |
Стабильный выпуск | 1.6 / 17 апреля 2020 г. |
Написано в | 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 такие функции, как встроенные функции и назначенные инициализаторы.
- 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 используя ПОЦЕЛУЙ[1] протокол
- CCSDS 131.0-Б-1-С[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 | Приоритет | Источник | Пункт назначения | Пункт назначения Порт | Источник Порт | Зарезервированный | ЧАС M А C | Икс Т E А | р D п | C р C | ||||||||||||||||||||||
32 | Данные (0 - 65 535 байт) |
Рекомендации
внешняя ссылка
- Хостинг веб-сайта и исходного кода проекта
- Университет Ольборга, Студенческая спутниковая деятельность
- Ольборгский университет, AAUSAT3 - первый AAU cubesat, использующий CSP
- GomSpace ApS