Курсовая работа «Технология SpaceWire»



Скачать 401.32 Kb.
страница1/3
Дата12.07.2019
Размер401.32 Kb.
ТипКурсовая
  1   2   3

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ
ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Факультет ИТ

Базовая кафедра № 531

КУРСОВАЯ РАБОТА

«Технология SpaceWire»

Дисциплина: Организация ЭВМ


Студент: Миронов Д. В.

Учебная группа: ВЕ-2-07

Дата выполнения:




Отметка о защите

п/п


Дата

Результат

Подпись

преподавателя



Ф.И.О.

преподавателя



1.













2.



























Москва 2009

Содержание
Введение 3

Препосылки создания стандарта SpaceWire 3

Архитектура SpaceWire 5

Структуры данных 6

Звено передачи данных 9

Сетевой уровень. Методы маршрутизации 12

Управляющие коды 15

Транспортный уровень 17

Применение технологии SpaceWire 18

Простые решения 19

Программируемая коммутационая среда 21

Отечественая элементная база для SpaceWire 24

Типичные системные конфигурации на базе СБИС “Мультиборт ” 26

Реализация технологии SpaceWire в ПЛИС 29

Введение

SpaceWire – это наиболее передовая и активно развиваемая сегодня технология для построения распределенных гетерогенных бортовых систем, прежде всего аэрокосмического назначения. Ее поддерживают и внедряют в перспективные космические аппараты (КА) и Европейское космическое агентство ESA, и космические агентства США (NASA) и Японии (JAXA). В российской космической отрасли развивать и внедрять технологию SpaceWire стратегически важно, поскольку она способствует обеспечению современных тактико-технических характеристик перспективных российских КА, конкурентоспособности на мировом рынке космических технологий и услуг, развитию международного сотрудничества в космической области с другими странами, совместимости и унификации разработок аппаратуры КА российских предприятий. Технология SpaceWire перспективна и в других областях, где используются встроенные распределенные и параллельные информационно-вычислительные и управляющие комплексы, работающие в реальном времени.

В разработке технологии SpaceWire принимали активное участие специалисты российских университетов и компаний – Санкт-Петербургского государственного университета аэрокосмического приборостроения (ГУАП), ГУП НПЦ "ЭЛВИС", ЗАО НПЦ"Микропроцессорные Технологии". Что особенно важно, компания ЭЛВИС разрабатывает и производит в рамках своего семейства "Мультикор" специализированные СБИС, оснащенные встроенными контроллерами SpaceWire. Однако отсутствие информации об этой технологии и поддерживающих ее отечественных СБИС затрудняет освоение SpaceWire фирмами-разработчиками. Восполним этот пробел.
ПРЕДПОСЫЛКИ СОЗДАНИЯ СТАНДАРТА SpaceWire

Одна из основных тенденций в области аэрокосмической техники – унификация и стандартизация оборудования и интерфейсов комплексов бортового оборудования (КБО). Важнейший элемент любого современного КБО – система передачи информации. Работы в области создания и внедрения унифицированных бортовых систем передачи данных насчитывают более чем тридцатилетнюю историю – достаточно вспомнить используемую до сих пор спецификацию MIL-Std-1553B, первый стандарт бортовых локальных сетей, утвержденный в 1973 году. По мере расширения и усложнения задач, реализуемых перспективными космическими и летательными аппаратами, возрастали и требования к комплексам бортового оборудования каналами передачи информации перестают соответствовать современным требованиям. Стали необходимы новые технологии комплексирования высокоинтеллектуальных подсистем КБО в интегрированные масштабируемые комплексы с открытой архитектурой.

В результате через 30 лет после появления MIL-Std-1553B, 24 января 2003 года, был опубликован стандарт SpaceWire (ECSS-E-50-12A "SpaceWire – соединения, узлы, маршрутизаторы и сети"). Стандарт разработан под эгидой международного комитета Consultative Committee for Space Data Systems (CCSDS) Европейской ассоциации по стандартизации космических систем ECSS (European Cooperation for Space Standartisation). Головной исполнитель – Европейский центр космических исследований и технологий ESTEC Европейского космического агентства ESA. В разработке участвовали специалисты многих стран, в том числе российских университетов и компаний: Санкт-Петербургского государственного университета аэрокосмического приборостроения (ГУАП), ГУП НПЦ "ЭЛВИС" и ЗАО НПЦ "Микропроцессорные Технологии". SpaceWire – это перспективная системообразующая технология для высокоскоростной коммуникации и комплексирования бортовых систем аэрокосмических аппаратов, которая может найти применение и в распределенных системах различного назначения (промышленных, бортовых наземных и т.п.). SpaceWire разрабатывалась в соответствии с такими требованиями аэрокосмических применений, как высокие скорости передачи информации, малые задержки доставки сообщений, устойчивость к отказам и сбоям, низкое энергопотребление, электромагнитная совместимость, компактная реализация в СБИС, поддержка систем реального времени и системных функций бортовых комплексов.

Технология SpaceWire оказалась настолько удачной, что была принята как базовая не только ESA, но и космическими агентствами США (NASA) и Японии (JAXA). Международная рабочая группа SpaceWire WG с участием представителей ESA, NASA и JAXA продолжает разработку второй очереди стандарта SpaceWire. Включиться в эту работу планирует и Федеральное космическое агентство РФ. Разработка технологии SpaceWire базировалась на трех стандартах: IEEE 1355-1995, TIA/EIA-644 и IEEE Standard 1596.3-1996. Стандарт IEEE 1355-1995 предназначался для построения высокопроизводительных масштабируемых модульных параллельных вычислительных систем. Другие два слагаемых SpaceWire – стандарты TIA/EIA-644 и IEEE 1596.3-1996 – описывают метод передачи данных дифференциальными сигналами с малым напряжением LVDS (Low Voltage Differential Signalling). Взяв за основу эти три стандарта, адаптировав их для аэрокосмических применений и добавив недостающие для космических применений свойства и характеристики, разработчики сформировали спецификацию SpaceWire.


АРХИТЕКТУРА SpaceWire

Стандарт SpaceWire регламентирует логические протоколы, физические разъемы и кабели, электрические свойства соединений, которые определяют канал связи SpaceWire, архитектуру коммуникационной сети и обеспечивают средства передачи пакетов информации от исходного узла до требуемого узла назначения через масштабируемую коммуникационную сеть. Он описывает работу коммутационной сети на шести уровнях иерархии. Их можно условно соотнести с семиуровневой эталонной моделью взаимодействия открытых систем OSI. Однако принципы межуровневого взаимодействия, положенные в основу SpaceWire, несколько отличаются от эталонной модели OSI. Например, управляющие коды, формат которых определяется на уровне символов, используются не только для управления потоком данных непосредственно в канале, но и при маршрутизации на сетевом уровне. Сеть SpaceWire состоит, в общем случае, из некоторого числа узлов-абонентов (SpaceWire nodes) и сетевых узлов – маршрутизирующих коммутаторов (routing switches). Узлы-абоненты сети SpaceWire – это устройства, передающие и принимающие потоки данных. Они связаны с маршрутизирующим коммутатором или друг с другом дуплексными каналами, называемыми линками(link). Узел оснащен одним или несколькими линк-портами и интерфейсом с источником данных (хост-устройство (host) – процессорный модуль, датчик, исполнительное устройство, периферийный контроллер, и др.). От хост-устройства узел принимает данные, кодирует их и отправляет в свой передатчик, непосредственно подключенный к линку. На другом конце линка данные принимает приемник, который их восстанавливает (декодирует) и передает адресату (другому хост-устройству) или на выходной порт маршрутизирующего коммутатора. Приемник и передатчик с необходимыми элементами управления и интерфейсами к хост-устройству образуют контроллер линка SpaceWire (по сути – традиционный для современных сетевых структур сетевой контроллер, Network Interface Controller – NIC). Контроллер линка управляет соединением и потоком данных в канале, обнаруживает рассоединение, восстанавливает соединение после сбоев и др. Как правило, весь стек протоколов SpaceWire до сетевого уровня включительно реализуется внутри контроллера линка. Узел-абонент принципиально отличается от коммутатора тем, что трансляция данных между его линк-портами, при необходимости, возможна только под управлением хост-устройства (т.е. реализуется программно), а трансляция управляющих кодов (например, маркеров времени) не производится. Напротив, маршрутизирующий коммутатор обеспечивает непосредственную передачу трафика между своими входными и выходными портами. В сетях SpaceWire могут образовываться и структуры из одних узлов-абонентов с прямыми связями между ними, без коммутаторов. Однако полноценная сетевая коммуникационная инфраструктура, с адресуемыми узлами-абонентами и с эффективной организацией потоков пакетизированной информации и управляющих кодов, возможна только с использованием маршрутизирующих коммутаторов.


СТРУКТУРЫ ДАННЫХ

Пакеты

Стандарт SpaceWire предусматривает двунаправленную передачу информации с коммутацией пакетов. Передаваемая информация – непрерывные потоки информации или сообщения – для передачи по сети SpaceWire разбиваются на пакеты. Пакет SpaceWire включает поле заголовка, содержащее адрес назначения, и поле полезной нагрузки с данными пользователя, ограниченное маркером конца пакета. Пакеты передаются по сети друг за другом без каких-либо разделителей и интервалов. В качестве начала заголовка пакета всегда рассматривается его первый символ. Адрес назначения пакета – это список из одного или нескольких идентификаторов, каждый длиной в один символ, который определяет либо маршрут, либо логический адрес узла назначения. Формат пакета с адресом места назначения ориентирован на передачу пакета через сеть из маршрутизаторов. Именно они в основном и обрабатывают заголовок с адресом назначения пакета. Если же пакет передается между двумя абонентами, связанными прямым каналом (точка-точка), то поле адреса назначения может быть и пустым. Полезная нагрузка – это данные, т.е. информация, передаваемая от источника к узлу назначения. Закрывает пакет маркер конца пакета, указывая также, является ли пакет правильным (EOP, End of Packet) или транслируется с уже обнаруженной ошибкой (EEP, Error End of Packet). Размер пакета не нормирован стандартом, на практике его ограничивают только абоненты коммуникационной сети SpaceWire и особенности прикладных задач. Процедуры коммутации пакетов через маршрутизирующие коммутаторы SpaceWire не чувствительны к длине пакета: пакет любой длины будет скоммутирован и передан через коммутатор SpaceWire.


Кодировка символов

Пакеты формируются последовательностью так называемых символов – элементарных структур данных в стандарте SpaceWire. SpaceWire использует модифицированный протокол уровня символов, определенный в IEEE1355-1995. Определены символы данных и символы управления. Они имеют разную длину в битах, что позволяет экономить пропускную способность канала при передаче управляющих кодов. Байт данных при передаче по каналу SpaceWire кодируется 10-битным "символом данных". К 8 битам исходного байта данных добавляется бит признака символа данных и бит контроля четности. Первый разряд любого символа – это бит контроля четности (Р). За ним следует флаг типа символа (данных или управления, 0 или 1 соответственно). Символы передаются по линку SpaceWire младшими битами (lsb) вперед. В стандарте SpaceWire предусмотрено четыре символа управления – конец пакета (ЕОР), конец пакета с ошибкой (ЕЕР) (он нужен, чтобы пометить пакет, заведомо содержащий ошибки, например из-за разрыва соединения при его передаче), символ управления потоком (FCT, Flow Control Token) и символ расширения (ESC). Символ расширения ESC используется для создания дополнительных управляющих кодов. В частности, сочетание символов ESC и FCT образует NULL-код, который всегда транслируется, если в канале не передаются символы данных и управления (это позволяет сохранять активность канала и определить ошибку рассоединения). Не все символы передаются в пакетах. По этому признаку стандарт SpaceWire их подразделяет на обычные (N-Char, normal-characters) и символы соединения (L-Char, link-characters). К L-Char относятся символы контроля потока FCT и расширения ESC. В пакеты входят только N-Char, к которым относятся символы данных, а также символы конца пакета ЕОР и ЕЕР. Соответственно, хост-устройство направляет в контроллер линка только пакеты данных и признаки их окончания. Контроллер линка автоматически кодирует байты данных в 10-битные символы, формирует маркеры конца пакета ЕОР/ЕЕР, а также символы управления. Принятые символы управления FCT и ESC обрабатываются автоматом управления контроллера линка и в хост-устройство не передаются. Бит проверки четности для каждого передаваемого символа поддерживает надежность функционирования канала. Поле контроля для бита четности включает 8 предшествующих бит данных (если предыдущим был символ данных) или два бита символа управления, собственно бит четности и следующий за ним флаг типа символа. Бит четности устанавливается так, чтобы сумма всех единиц в поле контроля была нечетной. Бит контроля четности формируется непосредственно в передатчике и зависит от предыдущих символов, поэтому хост-устройство не задает и не проверяет этот бит – все это делает контроллер линка. Таким образом, функциональные устройства КБО максимально освобождены от коммуникационных функций. Им достаточно выделить передаваемые данные в пакет (отметив его конец) и указать его получателя. Все остальные задачи передачи данных берут на себя контроллеры линков SpaceWire.


Управление соединением

Уровень обмена в сети SpaceWire обеспечивает инициализацию и перезапуск DS-линка, управление потоком данных между двумя узлами, обнаружение ошибок и сбоев (контроль четности, рассоединения и др.), выполнение процедур восстановления соединения. После того, как соединение установлено, оно поддерживается постоянной передачей по нему символов данных, управляющих кодов, а при их отсутствии – кодов NULL. Если сигналы в линке не изменяются в течение 850 нс, это рассматривается как разрыв соединения (отсюда – и требование на минимальную скорость передачи 2 Мбит/с). Соединение может разрываться контроллером линка по команде хост-системы (если не нужно передавать данные), а после вновь устанавливаться. Предусмотрена возможность запуска соединения по инициативе одного из абонентов (режим Autostart): по получении кода NULL второй абонент автоматически, без команды со стороны своей хост-системы, стартует и входит в соединение. Учитывая суровые условия, сложную помеховую обстановку и возможные интенсивные внешние воздействия на борту космических аппаратов и аналогичных систем, на которые ориентирован стандарт SpaceWire, разрыв и последующее автоматическое восстановление соединения является штатной ситуацией, обрабатываемой автоматически на уровне обмена. При разрыве соединения абоненты автоматически выходят на новое установление соединения, после чего передача информации продолжается. Управление потоком данных в сети во избежание переполнения буферов приемников реализуется с помощью символов управления потоком FCT. Каждый переданный символ FCT указывает на то, что в буфере приемника есть место для приема 8 символов данных (N-Char). Узел может послать сразу несколько символов FCT, но не свыше 7. Передатчику не разрешено передавать символов не больше, чем позволяет поместить буфер приемника, о чем последний и сообщает посредством FCT. На уровне обмена регулируется и очередность передачи символов в канал, обеспечивая приоритетность передачи управляющих кодов, в том числе маркеров времени и кодов прерывания/подтверждения. Управляющие символы L-Char и управляющие коды передаются, не дожидаясь завершения трансляции очередного пакета – они как бы разрезают поток данных, обеспечивая тем самым независимость передачи управляющих кодов от общей загрузки сети. Все эти действия выполняются автоматом управления в контроллере линка и не требуют вмешательства пользователя.


ЗВЕНО ПЕРЕДАЧИ ДАННЫХ

Кодирование битового потока

Символы для передачи по последовательному каналу преобразуются в последовательность битов. Битовые потоки информации обычно подвергают специальной кодировке для эффективного формирования электрических сигналов передатчиком передающей стороне и их надежного детектирования и распознавания на стороне приемной. В SpaceWire на сигнальном уровне используется DS-кодирование (Data-Strobe coding), близкое к используемым в стандартах IEEE 1355-1995 и IEEE 1394-1995 (FireWire). При DSкодировании данные передаются по линии данных (D) в прямом коде, в то время как сигнал на линии строба (S) изменяет свое значение каждый раз, когда данные остаются неизменными в очередном битовом интервале. Таким образом, в каждом такте меняется один из сигналов – либо D, либо S. DS-кодирование обладает свойством самосинхронизации: в DS-сигналах закодирован синхросигнал, который восстанавливается на приемной стороне элементарной операцией "исключающего ИЛИ" (XOR) над сигналами D и S. В результате DS-кодирование позволяет передавать данные в широком диапазоне скоростей (в стандарте SpaceWire – от 2 до 400 Мбит/с) без предварительного согласования скоростей между приемником и источником. Это позволяет использовать канал SpaceWire для работы разноскоростных устройств, легко изменять скорость обмена даже во время передачи пакетов по каналу. Не требуется периодического перехода на специальные служебные последовательности кодов для синхронизации, как, например, в каналах с кодировкой 8В/10В (используется в таких стандартах, как Fibre Channel, Serial RapidIO, 1000-Мбит Ethernet и др.). Шкала возможных скоростей передачи по линку SpaceWire практически непрерывная, что позволяет гибко адаптировать скорости обмена по линку SpaceWire к требованиям приложений и к реальным условиям применения (например, к помеховой обстановке, к расстояниям и т.п.). DS-кодирование много проще и компактней в схемотехнической реализации, чем, например, распространенное кодирование 8В/10В. Это обеспечивает одно из важных преимуществ DS-кодирования – компактную реализацию DS-кодека в СБИС и малое энергопотребление. В стандарте SpaceWire используются дуплексные соединения типа точка-точка. S- и D- сигналы передаются каждый по отдельной дифференциальной паре. Линии передачи – однонаправленные, поэтому всего в линке SpaceWire четыре дифференциальные пары, по две для каждого направления.


Передача сигналов (сигнальный уровень)

Сформированные и закодированные битовые последовательности необходимо преобразовать в электрические сигналы для передачи через физический интерфейс. Для повышенной помехозащищенности и малого энергопотребления канала используются электрические сигналы LVDS (Low Voltage Differential Signalling – дифференцированные сигналы низкого уровня) по стандартам TIA/EIA-644 и IEEE 1596.3. Эти стандарты определяют величину дифференциального сигнала в диапазоне 250–450 мВ при диапазоне входного напряжения приемника 2,4 В. При этом порог срабатывания приемника – ±100 мВ. Драйвер LVDS формирует ток, который проходит по физической линии связи (кабель, проводники на плате) и через резистор 100 Ом на принимающей стороне. Две пары транзисторов в драйвере управляют направлением прохождения тока через резистор. LVDS-приемники имеют высокое входное сопротивление, ток в основном протекает по резистору и формирует напряжение порядка ±350 мВ при номинальном токе

источника 3,5 мА. LVDS-интерфейс обладает рядом важных достоинств. Дифференциальные сигналы малочувствительны к внешним помехам (если наводка и возникает, то практически одинаковая в обоих проводах дифференциальной пары, и на входе приемника это составляющая взаимно вычитается). В свою очередь, уровень электромагнитных помех, излучаемых LVDS-системами, также низок, поскольку равные по величине и противоположные по знаку токи в близко расположенных проводниках создают взаимно компенсирующие электромагнитные поля. Также немаловажно, что поскольку уровень дифференциальных сигналов невелик, не имеет значения рабочее напряжение схемы драйвера (будь то 5 или 1,8 В). Кодирование данных не уровнем напряжения, а направлением тока обусловливает высокую устойчивость к разнице заземляющих потенциалов (до 1 В) между приемником и передатчиком: абсолютное значение входного напряжения на каждом из проводов по отношению к земле не играет большой роли. Изза практически постоянной и небольшой величины тока передатчика (3,5 мА) существенно снижается уровень его шумов. Вследствие относительно небольшой разницы потенциалов между проводниками LVDS обеспечивает низкие затраты энергии (около 50 мВт на одну дифференциальную пару) – в 2,5 раза меньше, чем при ECL/PECL (ЭСЛ/ПЭСЛ, эмиттерно-связанная логика / псевдо ЭСЛ).
Физический интерфейс

На физическом уровне стандарт описывает требования к физической среде передачи, электрическим и механическим интерфейсам, включая типы разъемов и кабелей, а также параметры сигнальных линий на печатных платах. Кабель SpaceWire – восьмипроводной, из четырех медных экранированных витых пар проводов. Стандартная длина кабеля – до 10 м. Диаметр стандартного кабеля – не более 7 мм, удельный вес – до 80 г/м. В качестве стандартных разъемов для кабелей определены микроминиатюрные 9-контактные разъемы D-типа (4 витые пары плюс сигнальная земля). В следующей редакции SpaceWire планируется расширить число типов разъемов, определить и разъемы для подключения к шине задней стенки (backplane) в блоках. Стандарт ECSS-E-50-12A регламентирует скорости передачи по каналу SpaceWire от 2 до 400 Мбит/с на расстояния до 10 м. Для передачи на максимальных скоростях на такие расстояния стандарт задает перечень требований к параметрам кабеля. В частности, фазовое рассогласование распространения сигналов (разница в приходе фронтов сигналов, скос, skew) между проводами витой пары не должно превышать 0,1 нс/м, а между разными витыми парами – не более 0,15 нс/м. Практика подтверждает, что ухудшение этих показателей приводит к снижению скорости устойчивой передачи данных по каналу SpaceWire. Однако в ряде практических применений, где не нужна скорость 400 Мбит/с, допустимы и худшие показатели скоса. Так, в лабораторных условиях при благоприятной помеховой обстановке удается обеспечивать нормальную работу со скоростями более 300 Мбит/с даже на обычном кабеле UTP 5e. Практические исследования показали, что дальность передачи также можно увеличить на десятки метров с пропорциональным уменьшением скорости передачи: 200 Мбит/с на 20 м, 100 Мбит/с на 30 м и т.д. И наоборот – при длине линий связи в пределах 1–2 м (короткий кабель, плата) можно достигнуть 600–700 Мбит/с. Кроме того, в следующей редакции стандарта SpaceWire Part 2 (начало 2007 г.) будут включены и каналы точка-точка на волоконно-оптических линях связи со скоростью до 2,5 Гбит/с на расстояние до сотен метров. Раздельное DS-кодирование каждого из линков обеспечивает независимость скоса и джиттера между побитовыми сигналами разных линков, существенно упрощая передачу на высоких скоростях на значительные, недостижимые в параллельных шинах расстояния. Кроме того, это позволяет и дальше наращивать пропускную способность канала SpaceWire, используя несколько линков SpaceWire как параллельных линий (в скоростных каналах обычно называемых lanes – полосы) одного канала точка-точка. Возможности SpaceWire по передаче высокоскоростных потоков информации можно расширить, используя так называемые "толстые линки" (Fat links) – группировки k линков SpaceWire. При k = 2 получаем пропускную способность канала до 800 Мбит/с (в каждую сторону), при k = 4 –

до 1,6 Гбит/с и т.д. "Толстый линк" SpaceWire имеет и лучший показатель "пропускная способность на контакт", чем параллельные шины – 10 Мбайт/с/контакт по сравнению с 1,56 Мбайт/с/контакт шины PCI и 7,09 Мбайт/с/контакт для PCI-X. Кроме того, "толстый линк" обеспечивает большую отказоустойчивость, чем параллельные каналы: при отказе отдельной линии лишь уменьшается общая пропускная способность, в то время как параллельный канал выходит из строя.
СЕТЕВОЙ УРОВЕНЬ. МЕТОДЫ МАРШРУТИЗАЦИИ

Описав методы передачи данных между двумя узлами, рассмотрим, как пакеты распространяются и маршрутизируются в рамках всей сети SpaceWire. Для этого предназначены процедуры сетевого уровня, который отсутствовал в стандарте IEEE 1355-1995.




Поделитесь с Вашими друзьями:
  1   2   3


База данных защищена авторским правом ©vossta.ru 2019
обратиться к администрации

    Главная страница