Научная статья на тему 'Реализация передачи пакетов SpaceWire с помощью сети Ethernet'

Реализация передачи пакетов SpaceWire с помощью сети Ethernet Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
582
170
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОСТ / ФРЕЙМ / ПАКЕТ / ETHERNET / SPACEWIRE / BRIDGE / FRAME / PACKET

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Розанов Валентин Владимирович, Яблоков Евгений Николаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

IMPLEMENTATION OF TRANSFERRING SPACEWIRE PACKETS VIA ETHERNET NETWORK

The article considered a prototype device of SpaceWire packet transmission via Ethernet and the implementation of such a device. Possible problems in transmission packets are studying to ensure correct and fast operation of the bridge. The article presents a comparative analysis of the developing device with modern counterparts and identifies the advantages and disadvantages of each, compared with the present prototype.

Текст научной работы на тему «Реализация передачи пакетов SpaceWire с помощью сети Ethernet»

УДК 004.716

РЕАЛИЗАЦИЯ ПЕРЕДАЧИ ПАКЕТОВ SPACEWIRE С ПОМОЩЬЮ СЕТИ ETHERNET

© 2014 В.В. Розанов, Е.Н. Яблоков

Санкт-Петербургский государственный университет аэрокосмического приборостроения

Поступила в редакцию 02.10.2014

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

Ключевые слова: Ethernet, SpaceWire, мост, фрейм, пакет

В наше время космическая промышленность в России, Европе и Северной Америке устанавливает высокие требования для встроенных систем связи. В соответствии с [1-3] спутники и пилотируемые космические корабли требуют сети с высокими скоростями передачи данных до десятков гигабит в секунду для обработки данных, компьютерных шин и расстояний 50100 м между соседними узлами. Кроме того, необходимы приемлемая кабельная масса - приблизительно 30-60 гр/м и гальваническая развязка. Недостаток технологии SpaceWire [4] основанной на IEEE 1355-1995 [5] и ANSI/TIA/EIA-644 [6] стандартах состоит в развертывании схемы кодирования данных-строба (DS) на физическом уровне. Таким образом, максимальная скорость передачи в ссылке SpaceWire достигает 400 Мбит/с, кабель SpaceWire имеет рекомендуемую длину 10 м и включает четыре витых пары (с приемлемой массой 80 гр/м). Из-за ограничения длины кабеля SpaceWire (10 м) и необходимости соединения удаленных сегментов сети SpaceWire, которая в состоянии передать пакеты, новое решение необходимо. Основное условие - минимальная задержка и максимальная простота. Ethernet и протоколы Гигабитного Ethernet - наиболее соответствующая технология в этой проблеме.

Ethernet - это протокол, управляющий передачей данных по локальной сети. LAN Ethernet обычно использует коаксиальный кабель или специальные классы витых пар. Обычно сети Ethernet обеспечивают скорости передачи до

Розанов Валентин Владимирович, инженер. E-mail: valentin. rozanov@guap. ru.

Яблоков Евгений Николаевич, научный сотрудник. Email: evgeny.yablokov@guap.ru.

10 Мбит/с. Устройства соединены кабелем и конкурируют за доступ, используя Множественный доступ с контролем несущей и обнаружением коллизий (CSMA/CD). В настоящее время в большинстве сетей LAN широко используются Fast-Ethernet и Gigabit-Ethernet. Скорости Fast-Ethernet и Gigabit-Ethernet составляют 100 Mbits/sec и 1000 Мбит/с соответственно. Также кабели Ethernet довольно дешевые.

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

Прототип моста Ethernet-SpaceWire. На

рис. 1 представлен прототип беспроцессорного сетевого моста Ethernet-SpaceWire. На плате расположены две ПЛИС Virtex (1) и Altera (2), разъем Ethernet (4), чип gigabit-ethernet, разъемы spacewire (3), тестовые выводы и индикация (6, 7). Virtex отвечает за работу с интерфейсами SpaceWire и решает задачу формирования поля данных для передачи SpaceWire пакетов по Ethernet, а также формирует пакеты SpaceWire из получаемых по Ethernet данных. Altera в свою очередь реализует формирование и передачу фреймов Ethernet, а также необходимую инкапсуляцию передаваемых SpaceWire данных. Чип, управляющий Ethernet портом, позволяет передавать данные на скорости 10/100/1000, работать в полном дуплексе и поддерживает функции расширенного фрейма (JumboFrame) [1].

4 2 7 3

1 6

Рис. 1. Мост GigabitEthernet-SpaceWire

Существуют различные варианты включения платы в сеть передачи данных. На рис. 2 представлены три способа подключения:

Сейчас ведутся работы по созданию моста с подключением варианта один (1), который будет тестироваться в процессе разработки с использованием схемы подключения варианта два (2). Третий вариант подключения моста в данной статье не рассматривается, но является перспективой исследования, создание этого устройства будет рассматриваться в будущем.

Для анализа проблем, которые могут возникнуть при передаче пакетов SpaceWire в сети Ethernet, проведено сравнение форматов пакетов (рис. 3). Формат пакетов идентичен по наименованиям и типам полей, а именно - заголовок, поле данных, конец пакета. Однако из рис. 3 видно, что заголовок Ethernet пакета имеет фиксированную длину 14 байт, поле данных ограничено 1500 байтами и не может быть менее 64 байт, а конец пакета представляет собой 4 байта CRC [2]. В отличие от Ethernet заголовок пакета SpaceWire может иметь разную длину в зависимости от типа адресации и информации,

1. подключение моста к сети SpaceWire и ПК напрямую. В данном варианте подключения не требуется маршрутизация Ethernet фреймов, что упрощает реализацию моста, позволяя избежать необходимости реализации протоколов стека TCP/IP;

2. подключение двух удаленных друг от друга сетей SpaceWire через Ethernet, посредством разрабатываемого моста;

3. мост Ethernet-SpaceWire, обеспечивающий объединение двух сетей - сети SpaceWire, реализованной на коммутаторах SpaceWire, и сети Ethernet, построенной на коммутаторе Gigabit-Ethernet. В последнем (третьем) варианте на разрабатываемом устройстве появляется необходимость реализовывать протоколы, работающие на третьем уровне модели OSI.

передающейся в заголовке; поле данных может быть бесконечно длинным или длиной в 1 байт; конец или ошибка конца пакета [3].

Исходя из вышесказанного, можно сделать вывод о необходимости дополнительной обработки пакетов SpaceWire перед отправкой по Ethernet при длине пакета более 1500 байт. Одним из способов дополнительной обработки является разделение пакета на части и введение дополнительных служебных полей в поле данных для обозначения частей пакета и очередности сборки на принимающей стороне. При длине пакета SpaceWire от 1 до 64 байт необходимо отправлять несколько пакетов по Ethernet, так как, в противном случае, отправляется большое количество бесполезной информации, что приводит к потере быстродействия. На рис. 4 представлен график, показывающий соотношение количества полезной информации в пакете к количеству передаваемых байт в поле данных.

Рис. 2. Варианты подключения платы Ethernet-SpaceWire

Рис. 3. Сравнение пакетов Ethernet и SpaceWire

Рис. 4. Отношение полезных данных к отправленным (в %): 1 - Ethernet, 2 - SpaceWire

Из графика видно, что максимальное количество полезной информации передается уже при 30-40 байтах в поле данных пакета SpaceWire. При таком количестве байт в пакете Ethernet полезность невысока и составляет 50% от передаваемой информации. Точка перегиба на кривой 1 образуется в результате того, что минимально возможное количество байт поля данных Ethernet составляет 64 байта, и в случае отправки одного байта полезной информации недостающие 63 байта поля данных дополняются нулями. Максимальное количество полезных данных отправляется при нагрузке пакета Ethernet в 1500 байт полезных данных. Это позволяет говорить о том, что при создании моста необходимо максимально загружать пакет Ethernet,

чтобы минимизировать потери в производительности и быстродействии. Из рассмотренного выше можно выделить следующие проблемы.

1. Низкая эффективность передачи данных при отправке коротких пакетов по Ethernet.

2. Необходимость дополнительной обработки длинных пакетов SpaceWire.

3. Неэффективность передачи CCode отдельными пакетами, в виду их малой длины (см. пункт 1).

Из устройств, аналогичных разработанному, были рассмотрены продукт фирмы Aeroflex (рис. 5а) [4] и продукт фирмы Shimafuji Electric (рис. 5б) [5]. В табл. 1 представлен сравнительный анализ устройств-аналогов с разрабатываемым прототипом.

Рис. 5. Устройства Ethernet - SpaceWire

б

а

Таблица 1. Сравнение устройств Ethernet - SpaceWire

АегоПех [4] Shimafuji Electric [5] GigabitEthernet - SpaceWireBridge

программная реализация аппаратная реализация аппаратная реализация

высокие задержки при передаче пакетов внедренный TCP/IP протокол подготовка нового формата, позволяющего передавать пакет SpaceWire по Ethernet

сложность работы устройства используется для связи с ПК возможность включения режима GigabitEthernet

высокое быстродействие вследствие отсутствия избыточности

Сравнительный анализ указанных устройств по передаче SpaceWire по Ethernet показал, что они объединяют в себе функции коммутаторов, передают данные с использованием уровня TCP/IP и реализованы программно. Для объединения двух физически удаленных друг от друга сетей функционал этих устройств усложняет работу и является избыточным.

Протокол взаимодействия. Сейчас используется упрощенный вариант протокола для передачи пакетов. Предлагается ввести маленький заголовок пакета. Заголовок будет содержать информацию, содержащую длину переданного пакета, номер пакета и тип передаваемого пакета. Первый байт заголовка содержит информацию о типе пакета и, соответственно, номер пакета. Вся информация занимает 1 байт. Тип пакета кодируется первыми двумя битами. 01 - пакет заканчивается EOP 10 - пакет заканчивается EEP 00 - часть пакета (пакет не закончен, будет дальнейшая передача)

11 - пакет CCODE

Номер пакета кодируется оставшимися 6 битами. Данное поле делится на 2 части - 4 и 2 бита. Номер пакета 4-х битный будет меняться циклически от 0 до 15. Номер пакета меняется только в том случае, если в пакете содержатся данные и пакет был передан полностью. Последние 2 бита кодируют номер кусочка пакета, если пакет состоит из нескольких частей. Если фрейм Ethernet содержит только управляющий код - номер пакета не изменяется. Длина пакета будет меняться от 0 до 255. Если пакет больше 255 - в длину все равно записывается 255 - для нас существенна информация только в том случае, если пакет маленький, до 46 байт. В любом другом случае - размер пакета SpaceWire ограничен размером пакета Ethernet (рис. 6). Таким образом, если приемная сторона сможет без проблем считать данные, если их меньше 46, а также зафиксировать потерю пакета в потоке.

Ethernet заголовок Тип, номер. Длина DATA CRC

номер части

Рис. 6. Измененный фрейм Ethernet

Кроме проблемы с передачей типа пакета и длины пакета существует свободного места в буфере приема. В этом случае предполагается каждый ответный пакет с данными снабжать дополнительной информацией о кредитовании, а именно - количеством пакетов максимальной длины, которое может принять устройство.

Размер данного поля делается 1 байт. Таким образом, каждый пакет содержит дополнительную информацию о состоянии приемной стороны (число кредитов). В случае длительного отсутствия пакетов - их можно посылать по таймеру (рис. 7).

Ethernet заголовок Тип, номер. Длина Кредит DATA CRC

номер части

Рис. 7. Передача информации о состоянии приемного буфера в фрейме Ethernet

Вариант передачи пакетов SpaceWire посредством Ethernet фреймами. Невозможно передавать пакеты SpaceWire напрямую 1 в 1. Во-первых, маленькие пакеты будут передаваться очень неэффективно (если пакет меньше 46 байт передавать надо все равно 64 байта). Во-вторых, большие пакеты нельзя в принципе

передать - пакет Ethernet ограничен 1500 байтами, то есть мы наложим ограничение на сам фрейм Ethernet. В-третьих, передача управляющих кодов одним пакетом в принципе неэффективна - 1 байт будет передаваться 64 байтами в Ethernet. Соответственно напрашивается вывод -передавать несколько пакетов одним фреймом

Ethernet. Однако необходимо при этом каким-то образом сделать какую то дескрипторную часть в самом пакете, которая будет описывать тип пакетов внутри пакета Ethernet. Как говорилось выше, сам фрейм Ethernet состоит из адреса получателя, адреса отправителя и поля EtherType, в

который пишется или тип фрейма Ethernet, либо длина пакета. Для передачи дополнительной информации вводятся 4 типа дескриптора (размер 1 байт). Дескрипторы будут помещаться перед самим пакетом SpaceWire.

Таблица 2. Описание дескрипторов

Сам дескриптор Описание Комментарии

01 LLLLLL пакет (или часть пакета), которая заканчивается EOP-ом LLLLLL - длина пакета ^+1). Т.е. если в 'том поле 0 - длина пакета 1, 1 -2 и т.д., то это поле может задавать длину пакета от 1 до 64 байт

10 LLLLLL пакет (или часть пакета), которая заканчивается EEP-ом такой же пакет, который заканчивается ошибочным концом пакета

00 LLLLLL промежуточный пакет. это просто часть пакета, неизвестно чем он заканчивается, размер от 1 до 64 байт

11 XXXXXX специальный символ XXXXXX - тип специального символа

Передача небольших пакетов. Если пакеты передаются в канале небольшого размера (до 64 байт), то они пакуется напрямую в поле данных с соответствующим дескриптором. И все попадают в поле данных пакета Ethernet (рис. 8.).

Передача больших пакетов. Если пакеты больше 64 байт, они делятся на более маленькие

и передаются внутри фрейма или фреймов Ethernet (рис. 9). Большой пакет SpaceWire разбивается на несколько маленьких длиной 64 байта. И последний маленький пакет заканчивается полем TL с типом конца всего пакета.

Рис. 8. Передача несколько небольших пакетов SpaceWire в фрейме Ethernet

Рис. 9. Передача длинного пакета SpaceWire в фрейме Ethernet

Передача управляющих кодов в пакете.

Для передачи управляющих кодов используются специальные TL коды. Пакет, который передается, разбивается на 2 части (рис. 10). Таким образом, сначала помещается часть пакета с кодом TL 00 и длиной этой части пакета. Потом идет код TL 11000000, обозначающий, что идет CCode. Потом - оставшаяся часть пакета c кодом конца пакета и его длиной. Так можно передать несколько кодов CC в одном фрейме Ethernet.

Передача неполного пакета. Может возникнуть ситуация, когда необходимо резко завершить фрейм Ethernet и отправить его неполным (поле данных меньше 46 байт). Таких ситуаций может быть несколько, их мы рассмотрим

ниже. Неполный фрейм (в данном случае - из-за экстренной передачи CCode) будет заполняться специальными кодами (рис. 11). Пакет завершается, а недостающий фрейм добивается специальным кодом TL равным 11 111111.

Рис. 10. Передача CCODE SpaceWire в фрейме Ethernet

Рис. 11. Передача незаполненного фрейма Ethernet

Выводы: решена проблема создания протокола моста SpaceWire-Ethernet. Был разработан вариант простого протокола, который позволяет

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

СПИСОК ЛИТЕРАТУРЫ:

1. MicrelInc, Gigabit Ethernet Transceiver with RGMII Support, Reversion 1.2, February, 2014

2. Стандарт Ethernet IEEE 802.3

3. Шейнин, Ю.Е. Технология SpaceWire для параллельных систем и бортовых распределенных комплексов / Ю.Е. Шейнин, Т.В. Солохина, Я.Я. Пет-ричкович // Электроника: Наука, технология, бизнес. 2007. № 1. С. 38-49.

4. AerofexGaisler, GRESB Ethernet/SpaceWire Bridge, Version 1.5.9, January 2014.

5. SHIMAFUJI Electric Inc., Document No. EN210439003-0, STAND-ALONE SpaceWire to Gigabit Ether H/W specification, Date Published July 2012.

6. Virtex-5 FPGA Select IO Resources User Guide

7. ECSS Standard ECSS-E-ST-50-12C, "SpaceWire, Links, Nodes, Routers and Networks", Issue 1, European Cooperation for Space Data Standardization, July 2008.

IMPLEMENTATION OF TRANSFERRING SPACEWIRE PACKETS VIA ETHERNET NETWORK

© 2014 V.V. Rozanov, E.N.Yablokov Saint-Petersburg State University of Aerospace Instrumentation

The article considered a prototype device of SpaceWire packet transmission via Ethernet and the implementation of such a device. Possible problems in transmission packets are studying to ensure correct and fast operation of the bridge. The article presents a comparative analysis of the developing device with modern counterparts and identifies the advantages and disadvantages of each, compared with the present prototype.

Key words: Ethernet, SpaceWire, bridge, frame, packet

Valentin Rozanov, Engineer. E-mail: valentin. rozanov@guap. ru Evgeniy Yablokov, Research Fellow. E-mail: evgeny.yablokov@guap.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.