Исследование протокола Ethernet-SpaceWire

Автор: Виноградов Алексей Юрьевич, Яблоков Евгений Николаевич

Журнал: Известия Самарского научного центра Российской академии наук @izvestiya-ssc

Рубрика: Информатика, вычислительная техника и управление

Статья в выпуске: 1-2 т.19, 2017 года.

Бесплатный доступ

Статья посвящена исследованию протокола Ethernet-SpaceWire на канальном уровне. Сравниваются характеристики и форматы пакетов SpaceWire, Ethernet и Ethernet-SpaceWire.

Канальный уровень, точка-точка

Короткий адрес: https://sciup.org/148205058

IDR: 148205058

Текст научной статьи Исследование протокола Ethernet-SpaceWire

Рис. 1. Стек протокола SpaceWire

Адрес назначения

Передаваемые данные

Символ конца пакета

Рис. 2. Пакет SpaceWire

Рис. 3. Фрейм Ethernet

Также имеется поле кредитования, которое используется для информирования противоположной стороны о количестве свободной памяти, для вхо\дящих данных. Имеется упрощённая версия протокола, в которой поле кредитования отсутствует. Всего для передачи определено 7 типов фреймов, из них два типа для передачи пакетов целиком, 3 — для передачи по частями и 1 — для служебных символов и кодов распределённых прерываний. Размер передаваемого фрагмента ограничен размером фрейма Ethernet и равен 1495 байт. Служебные символы и коды распределённых прерываний группируются в один фрейм и при передаче имеют приоритет над обычными данными. Во время передачи могут возникать ошибки, потери фреймов или искажение данных, и специально для таких случаев определен ещё один дополнительный тип фрейма, в котором содержится информация об ошибке и номер последнего принятого фрейма.

Протокол предусматривает возможность создавать пользовательские типы фреймов. В нашей реализации определены специальные фреймы, с помощью которых можно настраивать мост Ethernet-SpaceWire, получать информацию о состоянии моста, принимать сообщения от интегрированного тестера SpaceWire, а также определён специальный фрейм с тестовыми данными и настройками для тестера, о котором будет рассказано ниже.

Будем изучать описанные выше стандарты по следующим параметрам:

  • -    скорость передачи данных;

  • -    задержка при передаче;

  • -    соотношение полезных данных к служебным;

Выбор данных характеристик обусловлен тем, что:

  • -    скорость передачи данных крайне важна для обработки большого количества данных в реальном времени;

  • -    минимальные задержки в распространении данных по бортовой сети являются одним из важнейших параметров;

  • -    чем меньше служебных данных, тем больше полезной информации можно передать через канал на той же частоте.

Накладные расходы:

  • -    данные передаются в кадрах (фреймах (Ethernet), пакетах (SpaceWire));

  • -    у кадра есть заголовок (адрес, тип данных) и концевик (EOP, EEP, контрольная сумма);

  • -    межкадровый интервал (Ethernet).

Ограничения при исследовании:

  • -    для изучения будем предполагать, что имеется идеальный передатчик и идеальный приёмник;

  • -    бортовая сеть состоит из узлов и связей между ними. Каждая связь — это соединение типа «точка-точка»;

  • -    был рассмотрен случай без заголовка (SpaceWire);

  • -    схема кредитования не рассматривалась.

Исследование было выполнено двумя способами — теоретическим и экспериментальным. Для выполнения теоретического расчёта были построены математические модели каналов SpaceWire, Ethernet и Ethernet-SpaceWire. Модели основаны на алгебраических выражениях, позволяющих оценить скорость передачи, максимальные задержки, минимальное и максимальное соотношение полезных данных к служебным. Для расчёта времени передачи одного фрейма (пакета) введём следующие обозначения: T bit.eth — время передачи одного бита по каналу Ethernet 1000 Мбит/с; T bit.spw — время передачи одного бита по каналу SpaceWire 400 Мбит/с; L eth — размер фрейма Ethernet (бит); L spw — размер пакета SpaceWire (бит); L данные — размер передаваемой полезной информации (байт); L сл — размер служебной информации фрейма Ethernet (байт); L преамб — размер преамбулы фрейма Ethernet (7 байт); L sof — начало фрейма (1 байт); L dst

MAC адрес назначения (6 байт); L src — MAC адрес отправителя (6 байт); L тип — тип фрейма (2 байта); L crc — контрольная сумма Ethernet фрейма (4 байта); L eop — символ конца пакета SpaceWire (4 бита).

Полный размер фрейма Ethernet:

L сл = L преамб + L sof + L dst + L src + L тип + L crc L eth = (L данные + L сл ) * 8

Полный размер пакета SpaceWire:

L spw

= L данные

10 + L eop

Скорость передачи полезной информации в канале Ethernet и SpaceWire:

U eth = L данные / T eth ; U eth = L данные / T spw

Эффективность     передачи     полезной информации в канале Ethernet и SpaceWire:

P eth = U eth / 1000 * 100; P spw = U spw / 400 * 100

Расчёт задержки и скорости для протокола Ethernet-SpaceWire:

T eth-spw

= T eth + T spw ; U eth-spw = min(U eth ,U spw )

Для экспериментального исследования использовался тестер сети SpaceWire, который интегрирован в мост Ethernet-SpaceWire и позволяет генерировать пакеты SpaceWire, а также замерять время распространения по сети. На рис. 4 показана его внутренняя структура. Во внутренней структуре имеются блоки настройки тестера, блок управления TEST_P, блок управления TEST_X, буфер с данными для TEST_X, телеметрия, обратная петля и блоки тестов. Блок TEST_P позволяет работать только с одним выбранным тестом, имеет простые настройки и обладает высоким быстродействием. На текущий момент позволяет генерировать пакеты SpaceWire с четырьмя вариантами содержимого: повтор одного байта, счётчик, определённая пользователем последовательность и псевдослучайная последовательность байт. Блок управления TEST_X вместе с буфером TEST_X, блоками TEST 252-254 и блоком регистров образуют базовый 16-ти разрядный процессор. Данный процессор позволяет генерировать пакеты SpaceWire, доступные из TEST_P, в любой последовательности и без ограничений в размере (в разумных пределах). Кроме генерации пакетов, процессор имеет арифметический и логический блоки, позволяющие обрабатывать результаты тестирования, менять последовательность выполнения тестов, посылать отчёты на пользовательский компьютер (блок генерации отчётов не указан на рисунке), изменять скорость соединения SpaceWire и т.д. Для конфигурации тестера и получения результатов используется порт Ethernet. В конфигурационном фрейме находятся общие настройки тестера и в зависимости от необходимости, настройки для TEST_X и/или TEST_P. Настройки для TEST_X содержатся в виде последовательностей размером в 6 байт и могут чередоваться с последовательностями данных. В каждой последовательности содержится номер выполняемой операции (теста) и аргументы, которые могут быть как данными, так и адресами, где расположены данные или адреса для смены последовательности тестов. Для более удобной работы с тестером и наглядности была разработана программа, позволяющая описывать последовательность команд, которые должен выполнить процессор в тестере. Последовательность команд описывается на языке программирования, похожий на ассемблер. Команды начинаются с точки, метки — с двоеточия, директивы — с символа «#», а переменные — с символа «$». После команды идут аргументы, разделённые пробелами. Окно программы с последовательностью команд, предназначенного для экспериментального исследования, изображено на рис. 5.

Рис. 4. Структура тестера SpaceWire

Eth-SpW tester configurator

//Директивы для конфигуратора

#write_x

#start_x

//объявление переменных

$packet_len

$packet_num

//запись начальных значений

.rwr 0 packetlen

.rwr packetlen packetnum

//метка цикла

: loop

.add packetlen 5 packetlen

.add packet num 1 packet num

//запуск теста 1

.testOl packetlen 0 %© .eop .testOS 30000 0 %0 .

//Выдать сообщение: размер пакета, номер пакета, задержка, число ошибок .msnd packetlen packetnum %42 %41 .rwr 0 %44

//переход на метку loop если packet ten меньше 1500

. jl 1500 packetlen loop

Рис. 5. Редактор текста в конфигурационной программе

По данной программе тестер генерировал пакеты SpaceWire размером от 5 до 1500 байт с шагом 5 байт. После каждой передачи генерировался фрейм Ethernet, с результатами теста. На рис. 6 показан макет, с помощью которого проводился эксперимент. Пакеты SpaceWire передавались с порта «2» на два моста Ethernet-SpaceWire, соединённых между собой через Ethernet. В тестер пакеты возвращались на порт «1». Время передачи пакета измерялось с помощью блока обратной петли, который встроен в тестер SpaceWire. Затем информация от тестера собиралась в фреймы и отправлялась через Ethernet на компьютер.

Рис. 6. Макет для эксперимента

В ходе исследования были получены графики, отображающие время передачи, эффективную скорость передачи данных и эффективность передачи полезной информации. На рис. 7 отображена скорость передачи данных в зависимости от размера кадра для сети Gigabit Ethernet, SpaceWire и Ethernet-SpaceWire. На рис. 8 отображено время передачи данных. Все три графика рассчитаны теоретически и один (под номером 4) исходя из экспериментальной части исследования. На рис. 9 отображена эффективность передачи полезной информации для сетей Ethernet и SpaceWire.

Рис. 8. Время передачи

Рис. 7. Скорость передачи данных

Рис. 9. Эффективность передачи полезной информации

Выводы: полученные графики показывают, что SpaceWire позволяет более эффективно использовать канал связи по сравнению с Ethernet и Ethernet-SpaceWire. При экспериментальном исследовании результаты получились хуже, чем при теоретическом расчёте. Это связано с тем, что не учитывались задержки в приёмопередатчиках SpaceWire и передача данных между внутренними блоками моста Ethernet-SpaceWire. Максимальная скорость передачи данных по протоколу Ethernet-SpaceWire всегда будет определяться самым медленным протоколом.

Список литературы Исследование протокола Ethernet-SpaceWire

  • ECSS Standard ECSS-E-ST-50-12C, "SpaceWire, Links, Nodes, Routers and Networks", Issue 1, European Cooperation for Space Data Standardization, July 2008.
  • Yablokov, E. Protocol for Connection Ethernet Interface to SpaceWire Networks/E. Yablokov, V. Rozanov, A. Vinogradov//Proceedings of the 17th Conference of Open Innovations Association FRUCT, 2015.
  • IEEE STANDARTS ASSOCIATION, IEEE Standart for Ethernet, New York, USA, December 2012
Статья научная