Cubesat Space Protocol
Космический протокол CubeSat (CSP) — это протокол доставки сетевого уровня, разработанный для CubeSats. Идея была разработана группой студентов из Ольборгского университета в 2008 году и получила дальнейшее развитие для использования в миссии AAUSAT3 CubeSat, которая стартовала в 2013 году. Протокол основан на 32-битном заголовке, содержащем информацию о сетевом и транспортном уровнях. Он предназначен для встроенных систем, таких как 8-битный микропроцессор AVR и 32-битный ARM и AVR от Atmel. Реализован на языке C и перенесен для работы на FreeRTOS и POSIX и потоконаправленные операционные системы, такие как Linux. Поддержка Mac OS X и Microsoft Windows будет доступна в версии 1.1.
Космический протокол CubeSat | |
---|---|
Тип | Протокол |
Автор | AAUSAT3 |
Разработчик | AAUSAT3, GomSpace |
Написана на | C, Python |
Операционная система | FreeRTOS, Linux, Mac OS X, Microsoft Windows |
Первый выпуск | 26 апреля 2010г. |
Последняя версия | 1.4 (7 апреля 2015; 8 лет назад (2015-04-07)) |
Лицензия | GNU Lesser General Public License |
Сайт | http://www.libcsp.org |
Аббревиатура CSP также расшифровывается как аббревиатура CAN Space Protocol, потому что первый драйвер уровня MAC был написан для CAN шин. С тех пор в физический уровень было включено несколько других технологий, и поэтому наиболее часто используемым названием стало — «космический протокол CubeSat», которое позволило не менять аббревиатуру.
Протокол активно поддерживается студентами в Ольборгском университете и побочной компанией GomSpace. Исходный код доступен под лицензией LGPL и размещен на GitHub.
ОписаниеПравить
Космический протокол CubeSat позволяет распределенным встроенным системам развертывать сервис-ориентированную топологию сети. Уровни CSP соответствует уровням модели TCP/IP. Он поддерживает ориентированный на соединение Транспортный протокол (уровень 4), маршрутизатор-ядро (уровень 3) и несколько сетевых интерфейсов (уровень 1-2). Сервис-ориентированная топология упрощает проектирование спутниковых подсистем, поскольку сама коммуникационная шина является интерфейсом для других подсистем. Это означает, что каждому разработчику подсистемы нужно только определить контракт на обслуживание и набор номеров портов, на которые будет реагировать их система. Кроме того, подсистемные взаимозависимости сокращаются, и резервирование легко обеспечивается добавлением нескольких похожих узлов в коммуникационную шину.
Ключевые особенности:
- Простой API, похожий на сокеты Berkeley.
- Ядро маршрутизатора со статическими маршрутами. Поддерживает прозрачную пересылку пакетов, например, spacelink.
- Поддержка работы без установления соединения (аналогично UDP) и операций с соединением (на основе RUDP).
- Служебный обработчик, который реализует ICMP — запросы, такие как пинг и состояние буфера.
- Поддержка циклического трафика. Это может быть использовано, например, для межпроцессорного взаимодействия задач подсистемы.
- Дополнительная поддержка широковещательного трафика, если поддерживается физическим интерфейсом.
- Дополнительная поддержка режима promiscuous(беспорядочный), если поддерживается физическим интерфейсом.
- Дополнительная поддержка зашифрованных пакетов с 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.
Bit offset | 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 |
X T E A |
R D P |
C R C | ||||||||||||||||||||||
32 | Данные (0 — 65,535 байт) |
ИсточникиПравить
- ↑ KISS Protocol (неопр.). Дата обращения: 7 декабря 2018. Архивировано 30 ноября 2018 года.
- ↑ (недоступная ссылка) http://public.ccsds.org/publications/archive/131x0b1s.pdf (недоступная+ссылка) (недоступная ссылка)
- ↑ (недоступная ссылка) http://public.ccsds.org/publications/archive/131x0b2.pdf (недоступная+ссылка) (недоступная ссылка)
СсылкиПравить
- Project Website and source code hosting (недоступная ссылка)
- Aalborg University, Student Satellite Activities (недоступная ссылка)
- Aalborg University, Архивная копия от 10 марта 2010 на Wayback Machine AAUSAT3 — первый cubase AAU для использования CSP
- GomSpace ApS
На эту статью не ссылаются другие статьи Википедии. |