Национальный стандарт РФ ГОСТ Р 70020-2022
"Космическая техника. Интерфейсы и протоколы высокоскоростного межприборного информационного обмена и комплексирования бортовых систем космических аппаратов. SpaceWire-RUS"
(утв. и введен в действие приказом Федерального агентства по техническому регулированию и метрологии от 17 февраля 2022 г. N 80-ст)
Space products. Interfaces and protocols of high-speed interunit information exchange and integration of spacecrafts onboard systems. SpaceWire-RUS
УДК 629.7:006.354
ОКС 49.090
Дата введения - 1 июня 2022 г.
Введен впервые
Предисловие
1 Разработан Акционерным обществом "Центральный научно-исследовательский институт машиностроения" (АО "ЦНИИмаш")
2 Внесен Техническим комитетом по стандартизации ТК 321 "Ракетно-космическая техника"
3 Утвержден и введен в действие Приказом Федерального агентства по техническому регулированию и метрологии от 17 февраля 2022 г. N 80-ст
4 Введен впервые
Введение
Технология SpaceWire - это перспективная системообразующая технология высокоскоростных коммуникаций и комплексирования высоконадежных бортовых систем космических и других летательных аппаратов, а также систем наземных инфраструктур. Ее поддерживают и внедряют в перспективные космические аппараты (КА) Европейское космическое агентство ESA, космические агентства США (NASA), Японии (JAXA) и Госкорпорация "Роскосмос". Она может быть использована для построения распределенных гетерогенных бортовых систем, прежде всего - аэрокосмического назначения. Эта технология отвечает потребностям решения задач сбора, обработки информации и управления на борту КА. Технология SpaceWire поддерживает интегрирование и тестирование бортовых систем с использованием наземного оборудования. Мониторинг и тестирование бортовых систем, выполненных с применением технологии SpaceWire, могут быть проведены без необходимости создания отдельного физического интерфейса с бортовой аппаратурой КА.
Технология SpaceWire-RUS является результатом адаптации к национальным особенностям технологии SpaceWire. Технология SpaceWire полностью совместима с технологией SpaceWire-RUS.
Технология SpaceWire-RUS способствует обеспечению современных тактико-технических характеристик перспективных российских КА, конкурентоспособности на мировом рынке космических технологий и услуг, развитию международного сотрудничества в космической области с другими странами, совместимости и унификации однотипной по назначению аппаратуры КА, производимой российскими предприятиями. Развитие и внедрение технологии SpaceWire-RUS поддерживается Госкорпорацией "Роскосмос".
1 Область применения
Настоящий стандарт устанавливает общие требования к интерфейсам и протоколам высокоскоростного межприборного информационного обмена и комплексирования бортовых систем космических аппаратов и систем наземных инфраструктур технологии SpaceWire-RUS.
Настоящий стандарт распространяется на служебные системы и системы полезной нагрузки космических и других летательных аппаратов, а также на системы наземных инфраструктур.
Настоящий стандарт применяется в тех случаях, в которых его применение предписано требованиями технического задания, а также в ходе выполнения международных договоров и реализации международных проектов и программ при взаимном согласовании всех заинтересованных сторон.
2 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями:
2.1 адрес назначения (destination address): Последовательность символов данных, обозначающая идентификатор приемника (при логической адресации) или маршрут, по которому следует пакет от источника к получателю (при путевой адресации).
2.2 арбитрирование (arbitration): Механизм, предназначенный для определения одного входного порта, которому будет разрешено выполнить отправку полученного пакета на заданный выходной порт для отправки по соотнесенному с этим портом каналу в том случае, когда два или более входных порта находятся в состоянии готовности, чтобы передать полученные ими свои пакеты на этот же выходной порт для отправки по соотнесенному с этим портом каналу.
2.3 атомарная операция (atomic operation): Операция, выполнение которой не может быть прервано и которая постоянно происходит в полном объеме, предназначенная для установки и сброса бита в регистре ISR механизма распределенных прерываний.
2.4 баланс постоянного тока (direct current balance): Условие, которое выполняется в том случае и только в том случае, когда разница между количеством единиц и нолей в 20 подряд идущих битах - не более двух и в любой момент времени передается не более 5 единиц или нулей подряд.
2.5 буфер передачи хост-системы (host transmit buffer): Область памяти хост-системы, предназначенная для хранения данных перед их передачей в канальный интерфейс.
2.6 буфер приема хост-системы (host receive buffer): Область памяти хост-системы, предназначенная для хранения данных после их приема из канального интерфейса.
2.7 входной порт (input port): Принимающая часть канального интерфейса.
2.8 выходной порт (output port): Передающая часть канального интерфейса.
2.9 групповое широковещание (multicast): Передача одного и того же пакета последовательно только нескольким заранее определенным узлам сети - группе узлов.
2.10 декодирование (decoding): Преобразование последовательности битов в первоначальную последовательность битов.
2.11 десериализация (de-serialisation): Преобразование последовательного потока битов в параллельный поток данных.
2.12 джиттер (jitter): Размах случайных смещений фронта импульсного сигнала во времени.
2.13 диаграмма состояний (state diagram): Графическое представление множества состояний и условий переходов машины состояний канального интерфейса в виде размеченного ориентированного графа, вершины которого - состояния интерфейса, ребра - переходы из одного состояния в другое, а метки ребер - условия перехода из одного состояния в другое и предназначенное для математического моделирования канального интерфейса.
2.14 идентификатор назначения (destination identifier): Поле фиксированного размера, размером в один или два символа в составе адреса получателя пакета.
2.15 информационный символ (normal-character): Символ данных, или ЕОР-символ, или ЕЕР-символ.
2.16 источник (source): Узел или маршрутизирующий коммутатор, отправляющий пакет.
2.17 кабельная сборка (cable assembly): Два идентичных соединителя, соединенные кабелем определенной длины.
2.18 канал (link): Двунаправленное соединение между источником и получателем бортовой вычислительной сети, предназначенное для передачи и приема потоков данных и управляющей информации.
2.19 канальный интерфейс (link interface): Интерфейс между каналом SpaceWire (GigaSpaceWire) и хост-системой.
2.20 кодирование (coding): Преобразование исходного набора битов к новому набору битов по определенному алгоритму.
2.21 кодовая последовательность (code sequence): Последовательность из 10 битов - результат 8b-, 10b-кодирования 8b-символа.
2.22 логический адрес (logical address): Идентификатор, однозначно специфицирующий получателя пакета или регион получателя пакета.
2.23 маршрутизирующий коммутатор (routing switch): Коммутатор, соединяющий несколько каналов и перенаправляющий пакеты из одного канала в другой.
2.24 машина состояний (state machine): Математическая абстракция, модель, имеющая определенное конечное число возможных состояний и находящаяся в каждый момент времени только в одном из множества возможных состояний, предназначенная для анализа и описания работы и использования при реализации канального интерфейса.
2.25 наполнитель (filler): Компонент из политетрафторэтилена, предназначенный для заполнения промежутков между изолированными сигнальными проводами или витыми парами и для обеспечения стабильности характеристик кабеля по его длине.
2.26 обмотка (binder): Лента, охватывающая один кабель или более и предназначенная для удержания этих кабелей в фиксированном положении.
2.27 пакет (packet): Последовательность информационных символов, состоящая из адреса назначения, передаваемых данных и символа конца пакета.
2.28 передатчик (transmitter): Электронное устройство, входящее в состав канального интерфейса и предназначенное для передачи битовых потоков в физическую среду канала бортовой вычислительной сети.
2.29 полнодуплексный канал передачи данных (full-duplex data link): Канал передачи данных, предназначенный для поддержания передачи сигналов одновременно в двух направлениях.
2.30 получатель (destination): Узел, для которого предназначен пересылаемый пакет данных.
2.31 путевой адрес (path address): Последовательность, состоящая из одного или нескольких символов данных и предназначенная для указания маршрута продвижения пакета данных по сети от источника к получателю.
2.32 приемник (receiver): Электронное устройство, входящее в состав канального интерфейса и предназначенное для приема битовых потоков из физической среды канала бортовой вычислительной сети.
2.33 протокол (protocol): Упорядоченная последовательность действий в сетях SpaceWire-RUS, предназначенная для решения определенных задач межприборного информационного обмена и комплексирования бортовых систем космического аппарата.
2.34 сериализация (serialisation): Преобразование 10-битной кодовой последовательности в последовательный поток битов.
2.35 сетевая коллизия (network collision): Конфликт двух пакетов, переданных разными передатчиками в один и тот же канал одновременно, приводящий к потере или искажению данных пакетов.
2.36 сетевой уровень (network level): Уровень стека протоколов SpaceWire, определяющий узлы, маршрутизирующие коммутаторы и механизмы передачи пакетов по сети.
2.37 сеть (network): Совокупность устройств, соединенных между собой посредством исключительно каналов или каналов и маршрутизирующих коммутаторов.
2.38 сигнальный уровень (signal level): Уровень стека протоколов SpaceWire-RUS, определяющий характеристики электрических сигналов, методы их кодирования и передачи по физической среде.
2.39 символ (character): Управляющий символ или символ данных.
2.40 символ данных (data character): Минимальная смысловая единица информационного обмена, кодируемая 1 байтом данных для передачи по каналу.
2.41 символьный уровень (character level): Уровень стека протоколов SpaceWire, определяющий преобразование символов данных, а также управляющих символов и кодов в битовый поток.
2.42 символьное выравнивание (character alignment): Процедура установки границы между принимаемыми из канала кодовыми последовательностями.
2.43 системное время (system time): Время, формируемое бортовой центральной вычислительной машиной космического аппарата и предназначенное для реализации действий по управлению космическим аппаратом, его системами и элементами в определенной последовательности и с определенными интервалами.
2.44 скос (skew): Разница во времени между фронтами двух сигналов, которая возникает при передаче этих сигналов по реальному каналу.
2.45 соединение по типу точка - точка (point to point): Соединение только двух узлов, или только двух маршрутизаторов, или одного узла и одного маршрутизатора.
2.46 скорость передачи данных (data signalling rate): Число битов управляющих символов и символов данных, переданных по каналу в единицу времени.
2.47 список назначения (destination list): Список идентификаторов назначения, предназначенный для формирования адреса назначения пакета.
2.48 стек (stack): Иерархический набор протоколов, предназначенный для организации высокоскоростного межприборного информационного обмена и комплексирования бортовых систем космических аппаратов.
2.49 сторожевое условие (guarded condition): Необходимое и достаточное условие перехода из одного состояния в другое.
2.50 счетчик кредитов передачи (credit counter in the transmitter): Счетчик, входящий в состав каждого передатчика, предназначенный для подсчета количества информационных символов (кредитов), которые могут быть переданы данным передатчиком на другую принимающую сторону канала.
2.51 таблица переходов (table listing the exit conditions from each state): Представление машины состояний канального интерфейса в виде таблицы, в одном из столбцов которой представлены ее возможные состояния, а в другом - условия переходов из одного состояния в другое, предназначенное для математического моделирования канального интерфейса.
2.52 тайм-аут (time-out): Отрезок времени между двумя событиями.
2.53 тайм-аут разъединения (disconnect timeout): Максимально допустимый отрезок времени между двумя последовательными изменениями на линии данных и линии строба.
2.54 тайм-аут соединения (connection timeout): Отрезок времени, предназначенный для определения выполнения или невыполнения конкретного условия.
2.55 тайм-аут сброса D и S (D and S reset timing): Предварительно установленный отрезок времени между сбросом сигнала данных и сигнала строба.
2.56 узел (node): Сетевой абонент - источник и/или получатель пакетов и широковещательных сообщений, реализующий интерфейс между сетью SpaceWire и приложением, использующим сервисы сети.
2.57 управляющий код (control code): Последовательность из двух символов (ESC-символа и следующего за ним управляющего символа - FCT-символа или символа данных), предназначенная для передачи управляющей информации по каналу.
2.58 управляющий символ (control character): Символ, предназначенный для передачи управляющей информации по каналу.
2.59 уровень обмена (exchange level): Уровень стека протоколов SpaceWire, определяющий механизмы инициализации канала, управления потоком, определения ошибок в канале и восстановления после ошибок.
2.60 физический уровень (physical level): Уровень стека протоколов SpaceWire, определяющий физические средства связи.
2.61 физическая среда (physical medium): Медная витая пара, медный коаксиальный кабель, волоконно-оптическая линия связи, печатные платы, кабельные соединители, соединители печатных плат.
2.62 флаг (flag): Логическая переменная, предназначенная для регистрации появления определенного события.
2.63 хост-система (host system): Электронный модуль в составе узла бортовой вычислительной сети SpaceWire-RUS, связанный с этой сетью через канальный интерфейс и использующий ее сервисы для решения определенных задач с помощью приложений данного узла.
2.64 частота появления ошибочных битов (bit error rate): Отношение количества битов, принятых с ошибкой, к общему количеству битов, переданных по каналу за определенный отрезок времени.
2.65 червячная маршрутизация (wormhole routing): Передача, при которой заголовок пакета инициализирует канал внутри маршрутизатора, по которому остальные символы данного пакета проходят маршрутизатор напрямую с входного порта в выходной.
2.66 шаг скрутки (lay-length): Число полных витков провода на единицу длины кабеля.
2.67 широковещание (broadcast): Передача одного и того же пакета всем узлам сети.
2.68 широковещательные коды (broadcast code): Коды, распределенно распространяющиеся по всей сети или группе узлов сети SpaceWire-RUS от одного источника.
2.69 экран (screen): Защитный покров кабельного изделия (дифференциальной пары, двух или четырех дифференциальных пар) из переплетенных проволок.
2.70 8b-10b-кодирование (8В-10В encoding): Преобразование 8-битных символов в 10-битные кодовые последовательности.
2.71 8b-символ (8B-character): 8-битный символ - символ, состоящий из 8 битов.
2.72 8b-кодирование (8B-encoding): Преобразование символов и кодов уровня обмена GigaSpaceWire в 8b-символы (специальные символы) GigaSpaceWire.
2.73 DS-кодирование (DS coding): Способ кодирования, при котором передаваемые данные кодируются двумя последовательностями битов: одна последовательность (данных) содержит только передаваемые данные, а другая последовательность (строба) - биты, изменяющие свое состояние в том случае и только в том случае, когда в последовательности данных идут подряд два одинаковых бита.
2.74 DS-декодирование (DS decoding): Способ декодирования, при котором две последовательности битов: последовательность (данных), которая содержит только передаваемые данные, и другая последовательность (строба), которая содержит биты, изменяющие свое состояние в том случае и только в том случае, когда в последовательности данных идут подряд два одинаковых бита, - преобразуются в исходную последовательность битов данных.
3 Обозначения и сокращения
3.1 В настоящем стандарте применены следующие обозначения:
AWG - американский калибр проводов (american wire gauge);
BER - отношение количества битов, принятых из канала с ошибкой, к суммарному количеству битов, переданному по каналу за определенный отрезок времени (bit error rate);
Comma-символ - управляющий канальный символ, предназначенный для поддержания соединения на уровне обмена и только в каналах GigaSpaceWire;
CommaTime - настраиваемый интервал между передачей двух символов Comma, предназначенный для использования в механизме управления потоком данных GigaSpaceWire;
D - сигнал данных;
D+, D- - дифференциальные сигналы данных - положительная и отрицательная составляющие соответственно;
Din+, Din- - дифференциальные сигналы данных на входе приемника - положительная и отрицательная составляющие соответственно;
DiscDetect - настраиваемый максимально допустимый по продолжительности отрезок времени между передачей двух символов Comma, предназначенный для использования в механизме управления потоком данных с помощью FCT-символов только в каналах GigaSpaceWire;
DMA - прямой доступ к памяти (direct memory access);
Dout+, Dout- - дифференциальные сигналы данных на выходе передатчика - положительная и отрицательная составляющие соответственно;
DS - дата-строб (data-strobe);
ЕЕР-символ - управляющий информационный символ (error end of packet), предназначенный для указания пакета данных, переданного с ошибкой;
ЕОР-символ - управляющий информационный символ (end of packet marker), предназначенный для указания пакета данных, переданного без ошибок;
ESC-символ - управляющий канальный символ (escape character), предназначенный только для формирования NULL-кода, Time-кода, Interrupt-кода и Interrupt_Acknowledge-кода;
FCT-символ - управляющий канальный символ (flow control token), предназначенный для использования в механизме управления потоком данных, а также для формирования NULL-кода;
FCT_Count - параметр, предназначенный для использования в механизме управления потоком данных с помощью FCT-символов;
FEP - фторэтиленпропилен;
FIFO - буфер в памяти, организованный по принципу "первым пришел - первым ушел" (first in-first out);
GigaSpaceWire - канальный интерфейс с гигабитными скоростями для сетей SpaceWire-RUS;
IDLE-символ - канальный символ, предназначенный для использования в ходе инициализации канала GigaSpaceWire и после нее для поддержания канала GigaSpaceWire в рабочем состоянии, когда отсутствует информация для передачи;
Interrupt-код - управляющий широковещательный канальный код, предназначенный для распространения сигналов прерываний по сети SpaceWire;
Interrupt_Acknowledge-код - управляющий широковещательный канальный код, предназначенный для подтверждения принятия кода прерывания узлом назначения;
ISR - 32-битный регистр источников прерываний (interrupt source register);
LVDS-метод - передача низковольтных дифференциальных сигналов (low voltage differential signalling);
Max_FCT_Count - максимальное значение счетчика кредитования;
N-Char-символ - информационный символ (normal-character);
NULL-код - управляющий широковещательный канальный код, предназначенный для использования только в интерфейсе SpaceWire;
PFA - фторполимерный пенополиуретан;
PTFE - политетрафторэтилен;
RD - динамический дисбаланс, бинарный параметр;
Reset_Time - настраиваемый максимальный отрезок времени;
S - сигнал строба;
S+, S- - дифференциальные сигналы строба (положительная и отрицательная составляющие соответственно);
Sin+, Sin- - дифференциальные сигналы строба с принимающей стороны - положительная и отрицательная составляющие соответственно;
Sout+, Sout- - дифференциальные сигналы с передающей стороны - положительная и отрицательная составляющие соответственно;
t G - минимальный интервал времени между приемом Interrupt_Acknowledge-кода и передачей следующего Interrupt-кода с таким же идентификатором прерывания;
t H - минимальный интервал времени между приемом Interrupt-кода и отправлением ответного Interrupt_Acknowledgе-кода;
Tick rate - частота повторения импульсов системного времени;
Time-код - управляющий широковещательный канальный код;
TX_DATA/Control_Flag - передаваемые данные и флаг управления;
wait_conn_time - настраиваемый максимальный отрезок времени.
3.2 В настоящем стандарте применены следующие сокращения:
ВОЛС - волоконно-оптическая линия связи;
КА - космический аппарат;
КМОП - комплементарная логика на транзисторах металл-оксид-полупроводник;
ЛА - логический адрес;
МК - маршрутизирующий коммутатор;
МЗБ - младший значащий бит;
ПО - программное обеспечение;
СЗБ - старший значащий бит;
ФАПЧ - фазовая автоподстройка частоты.
4 Общие положения
4.1 Настоящий стандарт предоставляет основу для применения интерфейсов и протоколов высокоскоростного межприборного информационного обмена и комплексирования бортовых систем - как в системах полезной нагрузки, так и в служебных системах космических и других летательных аппаратов, а также в системах наземных инфраструктур технологии SpaceWire-RUS.
4.2 В настоящем стандарте отражены:
- общий порядок организации сети SpaceWire-RUS, реализации ее возможных компонентов, методов передачи данных по сети, и в частности реализации метода передачи управляющих сигналов реального времени по той коммуникационной среде, по которой осуществляют передачу пользовательских и служебных данных;
- общие требования к установлению соединения по каналу, формированию и управлению потоком данных в канале и доступом к среде передачи, обработке ошибок, возникающих при установлении соединения по каналу;
- порядок обнаружения ошибок в сети и восстановления рабочего состояния сети после обнаружения ошибок.
4.3 Стандарт SpaceWire-RUS содержит целиком или частично цитаты и перевод стандарта ECSS-E-ST-50-12C (см. [1]) с особого разрешения Европейского космического агентства от имени Европейской кооперации по стандартизации в области космической техники (ECSS). Оригинальную английскую версию стандарта ECSS можно получить в секретариате ECSS.
4.4 По сравнению со стандартом SpaceWire ECSS-E-50-12C July 2008 в стандарте SpaceWire-RUS:
а) введены изменения в протоколы уровней имеющегося стека протоколов SpaceWire ECSS-E-50-12C;
б) дополнительно введен стек протоколов - дополнение GigaSpaceWire, включающее в свой состав следующие пять уровней: сетевой пакетный уровень, уровень обмена, символьный уровень, уровень кодирования, сигнальный и физический уровни;
в) введен механизм распределенных прерываний;
г) проведены другие изменения положений стандарта SpaceWire ECSS-E-50-12C.
4.5 Основные различия между стандартами SpaceWire-RUS и ECSS-E-50-12C приведены в приложении А. Обоснования различий этих стандартов приведены в таблице А.1.
4.6 Модифицированный стек протоколов SpaceWire ECSS-E-50-12C в стандарте SpaceWire-RUS определен как стек протоколов интерфейса SpaceWire.
4.7 Уровни стека протоколов дополнения GigaSpaceWire в соответствии с перечислением б) 4.4: обмена, символьный, сигнальный и физический - являются модифицированными уровнями стека протоколов интерфейса SpaceWire (обмена, символьного, сигнального и физического) соответственно.
4.8 Стек протоколов, полученный путем замены нижних уровней стека протоколов SpaceWire (обмена, символьного, сигнального и физического) на уровни дополнения GigaSpaceWire (обмена, символьного, кодирования, сигнального и физического), определен как стек протоколов интерфейса GigaSpaceWire.
4.9 Интерфейс SpaceWire предназначен для работы со скоростями межприборного информационного обмена не более 400 Мбит/с на расстояниях не более 10 м.
4.10 Для интерфейса GigaSpaceWire настоящим стандартом определены следующие значения скоростей межприборного информационного обмена: 1,0625 Гбит/с, значения скоростей, лежащие в промежутке от 5 до 125 Мбит/с, а также 312,5 Мбит/с; 625 Мбит/с; 1,25 Гбит/с и 2,5 Гбит/с - на расстояниях до 100 м.
4.11 В одной сети SpaceWire-RUS могут быть использованы каналы с интерфейсом SpaceWire (каналы SpaceWire) и каналы с интерфейсом GigaSpaceWire (каналы GigaSpaceWire) совместно, как показано в приложении Б на рисунке Б.1, или один из двух видов каналов - только каналы SpaceWire или только каналы GigaSpaceWire.
4.12 Использование в бортовой сети SpaceWire-RUS интерфейса GigaSpaceWire совместно с интерфейсом SpaceWire или только одного интерфейса GigaSpaceWire (без интерфейса SpaceWire) позволяет решить вопросы передачи больших потоков информации с высокими скоростями не более 2,5 Гбит/с на расстояния не более 100 м, проблемы наличия гальванической развязки и обеспечения электромагнитной совместимости в сигнальных цепях GigaSpaceWire, а также задачи большого веса кабельного хозяйства бортовых сетей SpaceWire за счет уменьшения в два раза количества витых пар в медном кабеле GigaSpaceWire по сравнению с кабелем SpaceWire и возможности использования в бортовых сетях GigaSpaceWire ВОЛС вместо медного кабеля.
4.13 Введение и использование механизма распределенных прерываний в бортовой сети SpaceWire-RUS, так же как и введение на физическом уровне облегченного кабеля, направлены на решение проблемы большого веса кабельного хозяйства бортовых сетей SpaceWire.
4.14 Интерфейсы SpaceWire-RUS - SpaceWire и GigaSpaceWire являются дуплексными, последовательными интерфейсами с соединениями по типу "точка - точка".
4.15 Данные для передачи по каналу SpaceWire в каждом направлении кодируются двумя дифференциальными парами сигналов. Для передачи данных в каждом направлении используется две витых пары. Общее количество проводов равно восьми, по четыре в каждом направлении.
4.16 Данные для передачи по каналу GigaSpaceWire в каждом направлении кодируют одной дифференциальной парой сигналов. Общее количество проводов равно четырем - по два в каждом направлении при использовании витых пар.
4.17 Стеки протоколов интерфейсов SpaceWire и GigaSpaceWire показаны на рисунке 1.
4.18 Стеки протоколов канального интерфейса SpaceWire и GigaSpaceWire предоставляют вышележащим уровням три сервиса передачи данных: сервис передачи байтов данных и маркеров конца пакетов SpaceWire - ЕОР- или ЕЕР-символов; сервис передачи Time-кодов и сервис передачи кодов распределенных прерываний.
4.19 Стеки протоколов SpaceWire-RUS - стек протоколов интерфейса SpaceWire и стек протоколов интерфейса GigaSpaceWire - на их общих уровнях (сетевом и пакетном) должны выполнять следующие функции:
а) на сетевом уровне определять:
1) возможные компоненты сети,
2) методы передачи пакетов по сети,
3) методы обнаружения и обработки ошибок, возникающих при передаче данных по сети,
Рисунок 1 - Стеки протоколов и потоки данных на различных уровнях стеков протоколов интерфейсов SpaceWire и GigaSpaceWire
4) арбитрирование различных потоков данных перед передачей по каналу SpaceWire-RUS,
5) механизмы распространения системного времени по сети и распределенных прерываний;
б) на пакетном уровне определять структуру пакетов с данными, передаваемых по сети SpaceWire-RUS.
4.20 Стек протоколов интерфейса SpaceWire на уровне обмена, а также на символьном, сигнальном и физическом уровнях, которые не являются общими для него и интерфейса GigaSpaceWire, должен выполнять следующие функции:
а) на уровне обмена задавать требования к следующим сервисам:
1) установление и поддержание соединения в канале,
2) установление приоритетов управляющих символов и кодов при передаче в канал и управление потоком данных,
3) определение и обработка ошибок, возникающих на уровне обмена,
4) реализация и управление распространением системного времени;
б) на символьном уровне определять:
1) назначение и структуру управляющих символов и кодов, символов данных,
2) порядок обнаружения и обработки ошибок на символьном уровне,
3) порядок очередности передачи битов после перезагрузки или ошибки в канале,
4) порядок обработки передающим и принимающим интерфейсами хост-системы 8 битов данных и 1 бита управляющего флага;
в) на сигнальном уровне определять:
1) требования к сигналам и цепям, используемым при реализации метода передачи низковольтных сигналов - LVDS,
2) порядок DS-кодирования битового потока, передаваемого на физический уровень,
3) требования к скоростям передачи данных и соответствующим характеристикам каналов SpaceWire;
г) на физическом уровне определять характеристики физической среды передачи информации: кабелей, кабельных соединителей, кабельных сборок, топологии печатных плат, соединителей печатных плат.
4.21 Стек протоколов интерфейса GigaSpaceWire на уровнях обмена, символьном, кодирования, сигнальном и физическом, которые не являются общими для него и интерфейса SpaceWire, должен выполнять следующие функции:
а) на уровне обмена осуществлять такие же функции, как и стек протоколов интерфейса SpaceWire [см. перечисление а) 4.20], и, кроме того, задавать требования к сервису выравнивания частот передачи данных на обеих сторонах канала;
б) на символьном уровне определять порядок:
1) приема на передающей стороне канала GigaSpaceWire от вышележащего уровня обмена символов данных, управляющих символов и кодов GigaSpaceWire и преобразования их к виду 8-битных символов для проведения 8b-10b-кодирования на уровне кодирования,
2) приема на принимающей стороне интерфейса GigaSpaceWire от уровня кодирования 8-битных символов и преобразования их в символы данных, управляющие символы и коды GigaSpaceWire для передачи их на уровень обмена;
в) на уровне кодирования определять порядок 8b-10b-кодирования, 8b-10b-декодирования;
г) на сигнальном уровне определять:
1) порядок символьного выравнивания битовых последовательностей данных,
2) порядок битовой синхронизации,
3) порядок сериализации и десериализации данных,
4) интерфейсы I и II последовательного электрического сигнала в разъемах устройств GigaSpaceWire для поддержки различных скоростей передачи данных в рабочем режиме канального интерфейса;
д) на физическом уровне определять характеристики физической среды передачи информации.
4.22 Для поддержки различных скоростей передачи данных с помощью канального интерфейса GigaSpaceWire должны быть использованы различные модификации электрического интерфейса: электрический интерфейс I (см. 6.3.3.3) или электрический интерфейс II (см. 6.3.3.4) - на сигнальном уровне стека протоколов, и настраиваемые в соответствии с выбранными значениями скоростей передачи данных параметры: CommaTime, DiscDetect, FCT_COUNT, MAX_FCT_COUNT, ResetTime, wait_conn_time (см. 6.6.5) - на уровне обмена стека протоколов GigaSpaceWire.
5 Интерфейс SpaceWire. Каналы SpaceWire с мегабитными скоростями в сетях SpaceWire-RUS
5.1 Стек протоколов
5.1.1 Стек протоколов интерфейса SpaceWire с мегабитными скоростями межприборного информационного обмена для сетей SpaceWire-RUS показан на рисунке 1.
5.2 Физический уровень
5.2.1 Спецификации физического уровня должны соответствовать спецификациям обеспечения электромагнитной совместимости типового КА.
5.2.2 Физический уровень стека протоколов интерфейса SpaceWire допускает применение кабелей в двух вариантах исполнения: стандартный кабель и облегченный кабель SpaceWire.
5.2.3 Облегченный кабель, соединитель облегченного кабеля и кабельная сборка с облегченным кабелем SpaceWire должны быть изготовлены, применяться и эксплуатироваться в соответствии с приложением В.
5.2.4 Требования к зарубежному аналогу стандартного кабеля SpaceWire заданы в ESCC 3902/003 (вариант 01) [2].
5.2.5 Вес стандартного кабеля должен быть не более 80 г/м.
5.2.6 Диаметр стандартного кабеля должен составлять не более 7 мм.
5.2.7 Для выполнения требований к значениям величин скоса и джиггера сигналов во всем диапазоне скоростей передачи данных, определенных настоящим стандартом, максимальная длина стандартного кабеля не должна превышать 10 м.
5.2.8 При передаче данных на малых скоростях при условии, что значения скоса и джиггера в соответствии с приложением Г на этих скоростях не превышают допустимые максимальные значения, можно использовать стандартный кабель длиной большей, чем 10 м.
5.2.9 Максимальные значения эксплуатационных параметров стандартного кабеля SpaceWire должны соответствовать данным, приведенным в таблице 1.
Таблица 1 - Максимальные значения эксплуатационных параметров стандартного кабеля SpaceWire
Параметр |
Максимальное значение |
Рабочее напряжение (эффективное), В |
200 |
Рабочий ток, А |
1,5 |
Рабочая скорость передачи информации, Мбит/с |
400 |
Диапазон рабочей температуры, °С |
От - 200 до + 180 |
Диапазон температуры хранения, °С |
От - 50 до + 60 |
5.2.10 Конструкция стандартного кабеля SpaceWire показана на рисунке 2.
5.2.10.1 В состав стандартного кабеля SpaceWire должны входить четыре скрученные между собой витые пары сигнальных проводов, наполнитель кабеля, оплетка кабеля, экран кабеля и оболочка кабеля.
1 - сигнальный провод 0,081 мм 2 (28 AWG), 7 x 0,0127 мм 2 (36 AWG); 2 - наполнитель витой пары; 3 - изоляция сигнального провода; 4 - экран витой пары [0,00501 мм 2 (40 AWG)]; 5 - витая пара; 6 - изоляция витой пары; 7 - наполнитель кабеля; 8 - оплетка кабеля; 9 - экран кабеля 0,00797 мм 2 (38 AWG); 10 - оболочка кабеля
Рисунок 2 - Конструкция стандартного кабеля SpaceWire
5.2.10.2 Каждая витая пара стандартного кабеля SpaceWire должна состоять из пары скрученных между собой сигнальных проводов, наполнителя, экрана витой пары и изоляции витой пары, расположенной поверх экрана витой пары.
5.2.10.3 Каждый сигнальный провод витой пары стандартного кабеля SpaceWire должен состоять из жилы и изоляции сигнального провода, расположенной поверх жилы.
5.2.10.4 Жила сигнального провода витой пары стандартного кабеля должна состоять из семи металлических проволок.
5.2.11 Проволоки жилы сигнального провода витой пары стандартного кабеля SpaceWire должны удовлетворять следующим требованиям:
- проволоки должны быть изготовлены из высокопрочного медного сплава;
- проволоки должны иметь внешнее серебряное покрытие;
- толщина серебряного покрытия проволок должна быть не менее 2,0 мкм.
5.2.12 Жила сигнального провода витой пары стандартного кабеля SpaceWire должна удовлетворять следующим требованиям:
- площадь сечения жилы должна составлять 0,081 мм 2;
- жила должна выдерживать относительное растяжение величиной не менее 6,0 %;
- предел прочности при растяжении жилы должен быть не менее 350 Н/мм 2;
- максимальное электрическое сопротивление жилы постоянному току должно составлять не более 256 Ом/км.
5.2.13 В качестве материала изоляции сигнального провода стандартного кабеля SpaceWire следует использовать микропористый PTFE с использованием технологических добавок.
5.2.14 Изоляции сигнальных проводов одной витой пары должны отличаться друг от друга по цвету.
5.2.15 Каждая витая пара должна удовлетворять следующим требованиям:
- величина шага скрутки двух изолированных сигнальных проводов витой пары должна находиться в пределах от 12 до 16 внешних диаметров неэкранированной витой пары;
- витые пары должны быть использованы с наполнителями.
Примечание - Наличие наполнителя необходимо для обеспечения постоянства волнового сопротивления витой пары по всей длине кабеля;
- в качестве материала наполнителя витых пар должен быть использован микропористый PTFE с необходимыми добавками, обеспечивающими нормальное функционирование;
- материал наполнителя витой пары должен быть вытянут или свернут из изоляционных лент в стержень;
- значение величины диаметра наполнителя витой пары должно составлять 1 мм;
- каждая витая пара должна быть защищена экраном витой пары;
- экран витой пары должен неплотно прилегать к витой паре, обладать свойством сохранения формы после окончания деформации и иметь коэффициент поверхностной плотности плетения, равный не менее 90 %;
- экраны витых пар не должны соприкасаться ни друг с другом, ни с экраном кабеля;
- экран витой пары должен быть выполнен из проволоки сечением 0,00501 мм 2 (40 AWG) с серебряным покрытием;
- в качестве материала проволоки экрана витой пары должна быть использована мягкая или отожженная бескислородная медь;
- толщина серебряного покрытия проволоки, используемой для изготовления экрана витой пары, должна быть не менее 0,0025 мкм;
- относительная величина максимального растяжения, которое должна выдерживать проволока экрана витой пары, должна быть не менее 10 %;
- изоляция витой пары стандартного кабеля SpaceWire должна быть выполнена из PFA с использованием технологических добавок;
- номинальное значение толщины стенок изоляции витой пары должно быть равно 0,15 мм;
- волновое сопротивление каждой витой пары должно составлять (100 6) Ом;
- скос между сигналами, передаваемыми по одной и той же витой паре кабеля, должен быть не более 0,1 нс/м;
- скос между сигналами, передаваемыми по различным витым парам кабеля, должен быть не более 0,15 нс/м.
5.2.16 Длина одного шага скрутки четырех витых пар сигнальных проводов стандартного кабеля SpaceWire должна находиться в пределах от 12 до 16 внешних диаметров двух экранированных витых пар в оболочке.
5.2.17 Наполнитель стандартного кабеля SpaceWire должен удовлетворять следующим требованиям:
- наполнитель должен быть расположен в центре между четырьмя дифференциальными сигнальными парами;
- материал наполнителя должен быть выполнен из микропористого PTFE и только с необходимыми добавками, обеспечивающими нормальное функционирование наполнителя;
- материал наполнителя должен быть вытянут или свернут из изоляционных лент в стержень;
- диаметр наполнителя кабеля должен составлять 1,4 мм.
5.2.18 Оплетка стандартного кабеля должна охватывать четыре дифференциальные сигнальные пары и центральный наполнитель и удерживать их вместе в фиксированном положении.
5.2.18.1 В качестве материала оплетки кабеля должен быть использован неповрежденный скрученный PTFE с необходимыми добавками, обеспечивающими нормальное функционирование оплетки.
5.2.18.2 Материал оплетки кабеля следует накладывать с перекрытием не более 50 %.
5.2.19 Четыре экранированные дифференциальные сигнальные пары стандартного кабеля SpaceWire должны быть защищены экраном кабеля, который должен удовлетворять следующим требованиям:
- экран кабеля должен неплотно прилегать к витым парам, обладать свойством сохранения формы и иметь коэффициент поверхностной плотности плетения не менее 90 %;
- в качестве материала проволоки экрана кабеля должна быть использована мягкая или отожженная бескислородная медь с серебряным покрытием;
- площадь сечения проволоки экрана должна быть 0,00797 мм 2 (38 AWG);
- внешнее покрытие проволоки экрана должно быть серебряным;
- толщина серебряного покрытия проволоки экрана должна быть не менее 2,5 мкм;
- величина максимального относительного растяжения, которое должна выдерживать проволока экрана кабеля, должна быть не менее 10 %;
- экран кабеля должен быть заземлен согласно требованиям по электромагнитной совместимости.
5.2.20 Оболочка стандартного кабеля должна быть выполнена экструзией из PFA с необходимыми добавками, обеспечивающими нормальное функционирование оболочки кабеля.
5.2.20.1 Толщина стенок оболочки кабеля (ее номинальное значение) должна составлять 0,25 мм.
5.2.20.2 На оболочке стандартного кабеля SpaceWire не должно быть маркировки.
Примечание - Давление на стандартный кабель SpaceWire, возникающее при нанесении маркировки, может оказать неблагоприятное воздействие на электрические характеристики кабеля.
5.2.21 Соединитель стандартного кабеля SpaceWire - это 9-контактный микроминиатюрный соединитель D-типа с контактами под пайку в соответствии с [3] или с обжимными контактами согласно [4].
5.2.21.1 Приборные части соединителя стандартного кабеля SpaceWire должны удовлетворять следующим требованиям:
- приборные части соединителя должны иметь гнездовые контакты;
- для повышения устойчивости устройства к механическим ударам и вибрации следует использовать приборные части соединителя с гибкими контактами.
5.2.21.2 Кабельная часть соединителя стандартного кабеля SpaceWire должна удовлетворять следующим требованиям:
- кабельная часть соединителя должна иметь штыревые контакты;
- проводники стандартного кабеля SpaceWire должны быть припаяны к контактам соединителя или обжаты контактами соединителя;
- металлическая оболочка соединителя должна быть соединена с экраном стандартного кабеля через резистор с величиной сопротивления менее 1 Ом для обеспечения электромагнитной совместимости;
- идентификация контактов соединителя должна соответствовать данным, приведенным в таблице 2 и на рисунке 3;
- контакт 3 соединителя стандартного кабеля SpaceWire, изображенного на рисунке 3, должен быть соединен с экранами витых пар стандартного кабеля SpaceWire.
Таблица 2 - Идентификация контактов соединителя стандартного кабеля SpaceWire
Номер контакта |
Вид сигнала |
Номер контакта |
Вид сигнала |
Номер контакта |
Вид сигнала |
1 |
Din+ |
4 |
Sout- |
7 |
Sin- |
2 |
Sin+ |
5 |
Dout- |
8 |
Sout+ |
3 |
Экраны витых пар Sout и Dout |
6 |
Din- |
9 |
Dout+ |
5.2.21.3 Контакты соединителей и стандартный кабель SpaceWire должны быть соединены (см. таблицу 3 и рисунок 4).
Примечание - Контакт 3 соединяется с экранами витых пар Sout и Dout
Рисунок 3 - Идентификация контактов соединителя стандартного кабеля SpaceWire. Вид изнутри (из прибора) на кабельную или снаружи на приборную части соединителя стандартного кабеля SpaceWire
5.2.21.4 Экраны дифференциальных сигнальных пар стандартного кабеля SpaceWire, передающих сигналы: Din-, Din+, Sin-, Sin+ должны быть изолированы друг от друга в кабельном соединителе SpaceWire.
Таблица 3 - Сигналы на контактах кабельных соединителей стандартного кабеля SpaceWire в кабельной сборке SpaceWire
Сигнал на стороне А |
Контакт на стороне А |
Соединение |
Контакт на стороне Б |
Сигнал на стороне Б |
Din+ |
1 |
Есть |
9 |
Dout+ |
Din- |
6 |
То же |
5 |
Dout- |
Sin+ |
2 |
" |
8 |
Sout+ |
Sin- |
7 |
" |
4 |
Sout- |
Экраны витых пар Sout и Dout |
3 |
Нет |
3 |
Экраны витых пар Sout и Dout |
Sout+ |
8 |
Есть |
2 |
Sin+ |
Sout- |
4 |
То же |
7 |
Sin- |
Dout+ |
9 |
" |
1 |
Din+ |
Dout- |
5 |
" |
6 |
Din- |
Экран кабеля |
Оболочка |
" |
Оболочка |
Экран кабеля |
5.2.21.5 Экраны дифференциальных сигнальных пар стандартного кабеля SpaceWire, передающих выходные сигналы Dout+, Dout- и Sout+, Sout-, должны быть соединены между собой и с выводом 3 соединителя SpaceWire (см. рисунок 4).
5.2.21.6 Соединитель стандартного кабеля SpaceWire должен иметь металлическую оболочку для обеспечения требуемого экранирования.
1 - соединение экрана кабеля и металлической оболочки соединителя через малое сопротивление (менее 1 Ом); 2 - экраны витых пар Sout и Dout соединены между собой и с выводом 3 соединителя
Рисунок 4 - Соединение стандартного кабеля SpaceWire
Примечания
1 Экраны витых пар с одноименными сигналами изолированы один от другого.
2 Такая симметричная схема, когда экраны двух дифференциальных пар соединены с оболочкой соединителя на одной стороне стандартного кабеля SpaceWire, а экраны двух других дифференциальных пар соединены с оболочкой соединителя на противоположной стороне стандартного кабеля SpaceWire, снимает проблему определения стороны стандартного кабеля SpaceWire при сборке.
5.2.22 Для передачи D- и S-сигналов допустимо использовать печатные и объединительные платы.
5.2.22.1 Печатные или объединительные платы должны поддерживать соединение только по типу "точка - точка", многоабонентная шинная структура поддерживаться не должна.
5.2.22.2 Шинные структуры могут быть организованы из соединений типа "точка - точка" между узлами одной объединительной платы.
5.2.22.3 При использовании печатной или объединительной платы дифференциальные D- и S-сигналы должны передаваться по парам параллельных дорожек с дифференциальным импедансом (100 6) Ом.
5.2.22.4 Величина относительной разности длин печатных проводников, предназначенных для передачи D- и S-сигналов, должна быть менее 5 % от длины этих проводников и не более 5 мм по абсолютной величине.
Примечание - Для печатных плат скос сигналов минимизируется путем использования для передачи D- и S-сигналов, близких по значениям длин параллельных проводников.
5.2.23 Для подключения стандартного кабеля и облегченного кабеля SpaceWire к печатным платам должны быть использованы соединители с гибкими контактами.
5.2.23.1 Все гибкие контакты соединителя стандартного кабеля и облегченного кабеля SpaceWire, используемого для подключения к печатной плате, должны быть одинаковой длины - не менее 25 мм.
Примечание - Монтаж на плату соединителей с гибкими контактами длиной менее 25 мм будет затруднителен.
5.2.23.2 При использовании прямоугольных монтажных соединителей печатных плат должна быть выполнена компенсация длины путей прохождения составляющих дифференциальных сигналов путем регулирования длины дорожек на печатной плате для поддержания дифференциального сигнала, передаваемого по печатной плате.
Примечание - Использование прямоугольных монтажных соединителей печатных плат не рекомендуется.
5.3 Сигнальный уровень
5.3.1 На сигнальном уровне стека протоколов интерфейса SpaceWire перед передачей битового потока на физический уровень должно проводиться DS-кодирование битового потока двумя сигналами: D-сигналом и S-сигналом - DS-кодирование.
Примечания
1 DS-кодирование описано в [5], [6], а также в [7].
2 Причина использования D-кодирования заключается в повышении допусков по скосу почти до одного битового интервала по сравнению с допуском по скосу, равным половине битового интервала, для простого кодирования одним сигналом, повторяющим значения битового потока, без использования S-сигнала.
5.3.1.2 D-сигнал должен повторять значение битового потока, т.е. иметь высокий уровень значения напряжения для логической единицы и низкий уровень значения напряжения для логического нуля.
5.3.1.3 Если значение D-сигнала остается неизменным для 2 битов, следующих один за другим, то S-сигнал должен изменять свое значение.
5.3.1.4 Если значение D-сигнала изменяется для 2 битов, следующих один за другим, то S-сигнал не должен изменять свое значение.
5.3.1.5 Одновременное изменение D- и S-сигналов не должно отрицательно сказываться на приеме сигналов из канала SpaceWire.
Примечания
1 Одновременное изменение D- и S-сигналов без применения специальных мер может приводить к повреждению данных.
2 Одновременное изменение D- и S-сигналов может возникать в следующих ситуациях:
- при подключении кабеля в тот момент, когда передатчик SpaceWire пытается установить соединение;
- включении передатчика SpaceWire или приемника SpaceWire в тот момент, когда передатчик пытается установить соединение.
5.3.1.6 Приемник SpaceWire должен сохранять работоспособность при одновременном изменении D- и S-сигналов.
5.3.1.7 При перезагрузке передатчика SpaceWire должны быть предусмотрены меры для исключения одновременного изменения D- и S-сигналов.
Примечание - Для исключения одновременного изменения D- и S-сигналов после прекращения передачи при перезагрузке передатчика SpaceWire в некоторых случаях первым может быть сброшен S-сигнал, а затем D-сигнал.
5.3.2 В каналах SpaceWire для передачи D- и S-сигналов на физический уровень должен быть использован метод дифференциальных сигналов низкого напряжения (LVDS) в соответствии с [5], [6]. Краткая информация о методе LVDS приведена в приложении Д.
5.3.2.1 Уровни сигналов, используемые в LVDS, должны соответствовать значениям, показанным на рисунке 6.
5.3.2.2 Значение порога шума на входе приемника LVDS должно быть не более 10 мВ.
5.3.2.3 Отказ в цепях с сигналами LVDS может быть вызван следующими причинами:
- на передатчик не подано напряжение питания;
- передатчик не включен;
- передатчик не соединен с приемником;
- разрыв во входной цепи приемника;
- короткое замыкание входов приемника.
5.3.2.4 В случае наличия какой-либо из вышеперечисленных в 5.3.2.3 причин отказа выход приемника должен быть заперт высоким логическим уровнем и значение напряжения на выходе приемника не должно изменяться при том условии, что максимальная амплитуда напряжения шума на входе приемника меньше порога шума на входе приемника (см. 5.3.2.2).
а) Напряжение на входе приемника (с параллельно подключенным согласующим резистором 100 Ом)
б) Пороговые чувствительности приемника
1 - переходная область
Рисунок 6 - Уровни LVDS сигналов
5.3.2.5 При отключенном питании передатчика LVDS значение его выходного сопротивления должно быть более 100 кОм.
5.3.2.6 При отключенном питании приемника LVDS значение его входного сопротивления должно быть более 100 кОм.
5.3.3 По каналу SpaceWire должны передаваться в противоположных направлениях две пары сигналов LVDS, каждая из которых представляет собой D- и S-сигналы.
5.3.4 Каналы SpaceWire в сети могут работать на различных скоростях передачи.
Примечание - В состоянии канального интерфейса "Рабочий режим" скорость передачи данных по каналу SpaceWire устанавливается в диапазоне от минимальной скорости передачи данных до максимальной скорости передачи данных.
5.3.4.1 Скорость передачи данных одного и того же канала SpaceWire в состоянии канального интерфейса "Рабочий режим" в разных направлениях может быть различной.
5.3.4.2 Значение минимальной скорости передачи данных по каналу SpaceWire определено величиной тайм-аута соединения (см. 5.5.26) и должно быть более 1,18 Мбит/с (т.е. 1/850 нс).
5.3.4.3 Значение минимальной скорости передачи данных по каналу SpaceWire должно составлять 2 Мбит/с.
5.3.4.4 Максимальная скорость передачи данных должна быть определена с учетом характеристик канала SpaceWire, значений скоса и джиттера, и выбрана таким образом, чтобы время предельного допуска, определенное в соответствии с выражением (Г.3) (приложение Г), было более нуля.
5.3.4.5 Примеры значений скоса и джиттера элементов типового канала SpaceWire для различных значений максимальной скорости информационного обмена приведены в приложении Е.
5.3.4.6 Значение величины начальной рабочей скорости передачи данных, на которой канальный передатчик должен начинать работу после включения или перезагрузки, должно составлять (10 1) Мбит/с.
5.3.4.7 Канальный передатчик после включения или перезагрузки должен продолжать свою работу на начальной скорости передачи данных (10 1) Мбит/с до тех пор, пока не поступит команда на изменение скорости передачи данных.
Примечание - Одинаковая невысокая начальная скорость передачи данных всех устройств позволяет проверить корректность работы всех устройств до того, как скорость передачи будет увеличена и устройства начнут работать на крайне отличающихся скоростях.
5.3.4.8 Все устройства SpaceWire должны поддерживать передачу данных по каналу SpaceWire на начальной скорости (10 1) Мбит/с, но они не должны поддерживать передачу данных по каналу SpaceWire на более высоких скоростях.
5.3.4.9 Скорость передачи данных по каналу SpaceWire не должна изменяться до того, как будет полностью установлено соединение в канале.
5.4 Символьный уровень
5.4.1 Протокол символьного уровня определяет символ данных, четыре управляющих символа (FCT-символ, ЕОР-символ, ЕЕР-символ, ESC-символ) и четыре управляющих кода: NULL-код, Time-код, Interrupt-код и Interrupt_Acknowledge-код.
5.4.2 Символ данных
5.4.2.1 Структура символа данных SpaceWire показана на рисунке 7.
5.4.2.2 Символ данных должен состоять из бита четности, флага "данные/управление" и 8 битов данных.
5.4.2.3 Значение флага "данные/управление" символа данных должно быть установлено равным нулю и указывать, что текущий символ является символом данных.
5.4.2.4 При передаче 8 битов данных МЗБ должен быть передан первым, как это показано на рисунке 7.
1 - флаг "данные/управление" равен нулю; 2 - бит четности
Рисунок 7 - Структура символа данных SpaceWire
5.4.3 Управляющие символы и коды
5.4.3.1 Управляющие символы и коды показаны на рисунке 8.
5.4.3.2 Управляющий символ должен состоять из бита четности, бита флага "данные/управление" и 2 битов кода управления.
5.4.3.3 Значение флага "данные/управление" управляющего символа должно быть равно логической единице и указывать, что текущий символ является управляющим символом.
5.4.3.4 ESC-символ должен быть использован исключительно для формирования NULL-кода, Time-кода, Interrupt-кода и Interrupt_Acknowledge-кода и только в интерфейсе SpaceWire.
5.4.3.5 Последовательности, в которых за ESC-символом следует символ ЕОР, ЕЕР или ESC, должны считаться некорректными и рассматриваться как ошибки ESC-символа (см. 5.5.18).
5.4.3.6 FCT-символ должен быть предназначен для управления потоком данных с целью защиты буфера приема хост-системы от переполнения и последующей потери данных.
Примечание - Р - бит четности.
Рисунок 8 - Управляющие символы и коды
5.4.3.7 NULL-код должен быть предназначен для поддержания и установления соединения в канале.
5.4.3.8 NULL-код должен быть сформирован из ESC-символа и следующего за ним FCT-символа.
5.4.3.9 Бит четности (Р) в составе NULL-кода должен быть равен нулю в соответствии с 5.4.4.2.
5.4.3.10 Управляющие коды - Time-код, Interrupt-код и Interrupt_Acknowledge-код должны быть сформированы из ESC-символа и следующего за ним символа данных.
5.4.3.11 Бит четности (Р) в составе Time-кода, Interrupt-кода и Interrupt_Acknowledge-кода должен быть равен единице в соответствии с 5.4.4.2.
5.4.3.12 Time-код должен быть использован для распространения единого системного времени по сети (см. 5.4.27) и изохронно с распространением системного времени распространения флагов управления.
5.4.3.13 Шесть младших разрядов символа данных Time-кода (Т 0 - Т 5) должны содержать значение системного времени.
5.4.3.14 Два старших разряда символа данных Time-кода (Т 6 и Т 7) должны содержать значения флагов управления.
5.4.3.15 Interrupt-код должен быть использован как запрос на обработку прерывания к тем узлам, которые могут выполнять процедуры обработки прерываний (см. 10.2).
5.4.3.16 Interrupt_Acknowledge-код должен быть использован для подтверждения о принятии запроса на обработку прерывания узлами, которые могут выполнять процедуры обработки прерываний (см. 10.3).
5.4.3.17 Пять младших разрядов символа данных (l 0 - l 4) Interrupt-кода и Interrupt_Acknowledge-кода должны содержать идентификатор прерывания.
5.4.3.18 Три старших разряда символа данных Interrupt-кода и Interrupt_Acknowledge-кода должны содержать распространяемый изохронно с идентификатором прерывания 3-битный идентификатор кода распределенных прерываний и иметь значения: l 5 = 0, l 6 = 0, l 7 = 1 - в случае символа данных Interrupt-кода и значения: l 5 = 1, l 6 = 0, l 7 = 1 - в случае символа данных Interrupt_Acknowledge-кода.
5.4.4 Бит четности, входящий в состав всех кодов, символов данных и управления, предназначен для обеспечения механизма определения ошибок передачи по каналу.
5.4.4.1 Бит четности должен охватывать 8 битов предыдущего символа данных или 2 бита предыдущего управляющего символа, бит четности текущего символа и флаг "данные/управление" текущего символа. Область, охватываемая битом четности, показана на рисунке 9.
Рисунок 9 - Область, охватываемая битом четности
5.4.4.2 Значение бита четности должно быть установлено таким образом, чтобы количество единиц в зоне, охватываемой данным битом, включая сам бит четности, было нечетным, в противном случае должна быть определена ошибка контроля четности.
5.4.5 После перезагрузки или ошибки в канале в состоянии канального интерфейса "Перезагрузка" должны быть выполнены (см. рисунок 10) следующие требования:
- начальные значения величин D- и S-сигналов на линиях должны быть установлены равными нулю;
- после запуска передатчика первым переданным битом должен быть бит четности;
- значение первого бита четности должно быть установлено равным нулю;
- когда передатчик будет запущен, первым изменением напряжения должно быть изменение напряжения на линии S.
5.4.6 Обработка передающим и принимающим интерфейсами хост-системы 8 битов данных и 1 бита управляющего флага должна проводиться, как показано в таблице 4.
5.4.6.1 Только МЗБ ЕОР- или ЕЕР-символов должен быть обработан передающим и принимающим интерфейсами хост-системы. Значения остальных семи старших значащих битов данных ЕОР- или ЕЕР-символов должны быть установлены равными нулю как при приеме из интерфейса приемника, так и при записи в интерфейс передатчика.
Рисунок 10 - D- и S-сигналы в момент запуска канала
Примечание - Первым происходит изменение напряжения на линии S, т.к. первым передается бит четности со значением, равным нулю.
Таблица 4 - Обработка битов данных и управляющего флага при взаимодействии хост-системы с приемником и передатчиком
Управляющий флаг |
Биты данных (СЗБ...МЗБ) |
Значение битов данных |
0 |
хххххххх |
8 битов символа данных |
1 |
XXXXXXX0 (используется 00000000) |
ЕОР-символ |
1 |
ХХХХХХХ1 (используется 00000001) |
ЕЕР-символ |
Пример - Любой символ с управляющим флагом, значение которого установлено равным единице, и младшим значащим битом данных, значение которого установлено равным нулю, должен представляться хост-системой как ЕОР-символ.
5.4.6.2 ЕЕР-символ может быть записан в интерфейс передатчика.
Примечание - Передача узлом SpaceWire-RUS ЕЕР-символа не является корректной ситуацией, а запись ЕЕР-символа в интерфейс передатчика - необходимой, за исключением некоторых ситуаций, например: произошла ошибка во время передачи узлом пакета. Маршрутизирующий коммутатор SpaceWire-RUS при возникновении ошибки во время передачи пакета должен передавать пакеты, оканчивающиеся ЕЕР-символом, поэтому в случае передачи такого пакета маршрутизирующим коммутатором любой ЕЕР-символ записывается в интерфейс передатчика (см. 8.3.3).
5.5 Уровень обмена
5.5.1 Уровень обмена SpaceWire задает требования к следующим инструментам, сервисам и механизмам:
- управлению потоком данных;
- канальному интерфейсу;
- диаграмме состояний и таблице состояний;
- инициализации канала;
- нормальной работе канала;
- определению и обработке ошибок, возникающих на уровне обмена;
- определению и обработке исключений;
- реализации и управлению распространением системного времени.
5.5.2 На уровне обмена символы данных, управляющие символы и коды разделены на два типа: информационные символы - символы, которые могут быть переданы из канала на уровень пакетов, и канальные символы и коды - символы и коды, которые не могут быть переданы из канала на уровень пакетов.
5.5.2.1 В состав информационных символов (N-Char) входят следующие символы: символ данных, ЕОР-символ и ЕЕР-символ.
5.5.2.2 В состав канальных символов (L-Char) входят ESC-символ и FCT-символ.
5.5.2.3 В состав канальных кодов входят управляющие коды: NULL-код, Time-код, Interrupt-код и Interrupt_Acknowledge-код.
5.5.2.4 Только информационные символы могут быть переданы хост-системой в канал SpaceWire.
5.5.2.5 Только информационные символы должны быть приняты хост-системой из канала SpaceWire на принимающей стороне.
5.5.3 Приоритеты символов и кодов при передаче по каналу распределены следующим образом:
- Time-код имеет высший приоритет;
- Interrupt_Acknowledge-код;
- Interrupt-код;
- FCT-символ;
- информационный символ;
- NULL-символ имеет низший приоритет.
5.5.3.1 При наличии запроса передатчик должен передавать Time-код, Interrupt_Acknowledge-код, Interrupt-код или FCT-символ немедленно, сразу после окончания передачи текущего символа или кода.
5.5.3.2 В рабочем режиме, когда отсутствуют запросы на передачу управляющего кода или FCT-символа, а в буфере передачи хост-системы есть информационные символы и значение счетчика кредитов передачи более нуля, в канал должны быть переданы информационные символы.
5.5.3.3 Когда управляющие коды, FCT-символы или информационные символы не передаются, то для подтверждения того, что канал SpaceWire находится в рабочем состоянии, в канал должны передаваться NULL-коды.
5.5.4 Управление потоком данных на уровне обмена должно быть реализовано посредством использования FCT-символов и предназначено для защиты от переполнения буфера приема хост-системы и последующей потери данных.
5.5.4.1 При применении механизма управления потоком на уровне обмена посредством FCT-символов используются два параметра: FCT_COUNT и MAX_FCT_COUNT.
5.5.4.2 Если канальный интерфейс готов к приему дополнительного количества информационных символов, то передатчик этого канального интерфейса должен передавать в канал FCT-символы.
5.5.4.3 Каждый FCT-символ, переданный канальным интерфейсом, должен указывать на то, что в буфере приема его хост-системы есть место для приема еще FCT_COUNT информационных символов.
Примечание - Буфер приема хост-системы, как правило, реализуется как FIFO-буфер.
5.5.4.4 При передаче каждого FCT-символа канальным интерфейсом в буфере приема его хост-системы должно быть зарезервировано место для приема дополнительных FCT_COUNT информационных символов.
5.5.4.5 Передатчик канального интерфейса не должен передавать информационные символы до тех пор, пока приемник этого канального интерфейса не получит один или более FCT-символов, указывающих на готовность канального интерфейса на противоположной стороне канала к приему данных.
5.5.4.6 Передатчик должен иметь счетчик кредитов передачи, указывающий то количество информационных символов, которое должно быть передано.
5.5.4.7 Значения счетчика кредитов передачи должны соответствовать следующим требованиям:
- значение счетчика кредитов передачи должно быть установлено равным нулю в состоянии "Перезагрузка";
- максимальное значение счетчика кредитов передачи должно составлять MAX_FCT_COUNT;
- если значение счетчика кредитов передачи канального интерфейса не равно MAX_FCT_COUNT, то оно должно быть увеличено на FCT_COUNT, когда этот канальный интерфейс принимает FCT-символ;
- если значение счетчика кредитов передачи не равно нулю, то оно должно быть уменьшено на единицу, когда этот передатчик передает один информационный символ.
5.5.4.8 Если значение счетчика кредитов передачи равно нулю, то передатчик не должен передавать информационные символы в канал до тех пор, пока не будет принят FCT-символ, и значение счетчика кредитов передачи вследствие этого будет увеличено на FCT_COUNT.
5.5.4.9 Если значение счетчика кредитов передачи равно нулю, то передатчик должен передавать канальные символы в канал.
5.5.4.10 Если FCT-символ принят в момент, когда значение счетчика кредитов передачи равно MAX_FCT_COUNT, то должна быть определена ошибка кредитования.
5.5.4.11 После перезагрузки или разъединения канала начальное число FCT-символов, предназначенных для передачи на одной стороне канала, должно быть установлено согласно размеру буфера приема хост-системы канального интерфейса на другой стороне канала: один FCT-символ на каждые FCT_COUNT информационных символов, которые могут быть приняты, но не более MAX_FCT_COUNT/FCT_COUNT.
5.5.4.12 Приемник канального интерфейса должен иметь счетчик ожидаемых информационных символов, определяющий и показывающий количество информационных символов, которые могут быть приняты.
5.5.4.13 Значения счетчика ожидаемых информационных символов должны соответствовать следующим требованиям:
- значение счетчика ожидаемых информационных символов должно быть установлено равным нулю после перезагрузки или разъединения канала;
- максимальное значение счетчика ожидаемых информационных символов должно составлять MAX_FCT_COUNT;
- значение счетчика ожидаемых информационных символов должно быть увеличено на FCT_COUNT каждый раз, когда передан один FCT-символ;
- значение счетчика ожидаемых информационных символов должно быть уменьшено на единицу каждый раз, когда принят один информационный символ.
5.5.4.14 Если информационный символ получен тогда, когда значение счетчика ожидаемых информационных символов установлено равным нулю, то должна быть определена ошибка кредитования.
5.5.4.15 FCT-символ должен быть передан только при одновременном выполнении следующих условий:
- значение счетчика ожидаемых информационных символов может быть увеличено на FCT_COUNT без превышения максимального значения MAX_FCT_COUNT;
- в буфере приема есть незарезервированное место для приема FCT_COUNT информационных символов.
5.5.5 Значения величин параметров настройки механизма управления потоком данных канального интерфейса SpaceWire посредством использования FCT-символов должны быть следующими:
- FCT_COUNT должен быть равен 8;
- MAX_FCT_COUNT должен быть равен 56.
5.5.6 В состав типового канального интерфейса SpaceWire должны входить следующие элементы:
- передатчик;
- генератор тактовой частоты передатчика;
- приемник;
- схема восстановления тактовой синхронизации приемника;
- таймер;
- машина состояний (реализованная в виде ПО).
5.5.6.1 Блок-схема типового канального интерфейса SpaceWire показана на рисунке 11.
Примечание - На рисунке 11 Interrupt-код и Interrupt_Acknowledge-код сокращенно обозначены как Intpt-код, Intpt_Аск-код соответственно.
Рисунок 11 - Блок-схема типового канального интерфейса SpaceWire
5.5.6.2 К передатчику типового канального интерфейса SpaceWire следует предъявлять следующие требования:
а) передатчик канального интерфейса SpaceWire должен быть предназначен для DS-кодирования и передачи данных;
б) передатчик канального интерфейса SpaceWire должен управляться хост-системой канального интерфейса SpaceWire;
в) передатчик должен получать от хост-системы информационные символы, предназначенные для передачи;
г) управление потоком данных передаваемого передатчиком канального интерфейса SpaceWire в канал SpaceWire должно быть реализовано с помощью механизма управления потоком посредством использования FCT-символов (см. 5.5.4, 5.5.5);
д) передатчик должен передавать FCT-символы только после получения от хост-системы запроса на отправку FCT-символов;
е) передатчик должен находиться только в одном из следующих состояний:
1) "перезагрузка" - передатчик не передает данных,
2) "передача NULL-кодов" - возможна передача только NULL-кодов,
3) "передача FCT-символов и NULL-кодов" - возможна передача только FCT-символов и NULL-кодов,
4) "рабочий режим" - нормальная работа передатчика, передача управляющих кодов, FCT-символов и информационных символов.
5.5.6.3 Типовой интерфейс между хост-системой и передатчиком канального интерфейса SpaceWire должен включать следующие сигналы: Tx_Ready (готовность к передаче данных), Tx_Write (запрос на передачу данных) и Tx_Data/Control_Flag (передаваемые данные и флаг управления) (см. рисунок 11).
5.5.6.4 Взаимодействие передатчика канального интерфейса SpaceWire и хост-системы посредством типового интерфейса при получении информационного символа от хост-системы для его передачи в канал SpaceWire должно происходить следующим образом:
- если передатчик готов получить от хост-системы информационный символ для передачи в канал SpaceWire, то он должен выставить сигнал Tx_Ready;
- если сигнал Tx_Ready выставлен и если хост-система имеет информационный символ для передачи, то хост-система должна отправить информационный символ на линию Tx_Data/Control_Flag и выставить сигнал Tx_Write;
- передатчик должен снять сигнал Tx_Ready после получения им информационного символа для передачи в канал SpaceWire;
- хост-система должна снять сигнал Tx_Write после снятия сигнала Tx_Ready.
5.5.6.5 Генератор сигналов тактирования (transmit clock) передатчика канального интерфейса SpaceWire должен выдавать сигналы тактирования (signalling clock signals) для обеспечения передачи данных с любой скоростью - от минимальной до максимальной (см. 5.3.4.3, 5.3.4.4).
Примечание - Частоту сигналов тактирования передатчика, как правило, задают путем деления частоты генераторов сигналов локального системного времени или умножения частоты генераторов сигналов локального системного времени с ФАПЧ.
5.5.6.6 К приемнику типового канального интерфейса SpaceWire следует предъявлять следующие требования:
а) приемник должен принимать D- и S-сигналы из канала SpaceWire и выполнять их DS-декодирование;
б) приемник должен передавать последовательность информационных символов, полученную после DS-декодирования D- и S-сигналов, принимаемых из канала SpaceWire, в хост-систему;
в) приемник должен сообщать передатчику на своей стороне канала SpaceWire о приеме каждого FCT-символа;
г) о приеме всех управляющих символов и кодов, кроме FCT-символа и NULL-кода, приемник должен сообщать машине состояний;
д) приемник должен игнорировать информационные символы, управляющие символы и коды, ошибки контроля четности или ошибки ESC-символа до получения первого NULL-кода;
е) механизм определения ошибки соединения в приемнике должен быть включен непосредственно после приема первого бита;
ж) приемник должен оповещать машину состояний уровня обмена об ошибках соединения, контроля четности, ESC-символа и кредитования;
Нумерация подпунктов приводится в соответствии с источником
и) приемник должен находиться только в одном из следующих состояний:
1) "перезагрузка" - приемник не принимает,
2) "запуск" - приемник готов к приему первого бита,
3) "принят первый бит" - приемник принял первый бит и может принимать только NULL-коды,
4) "принят NULL-код" - приемник принял первый NULL-код. Приемник может принимать NULL-коды и FCT-символы,
5) "принят FCT-символ" - приемник принял первый FCT-символ. После отправки канальным интерфейсом FCT-символа приемник может принимать информационные символы, FCT-символы и управляющие коды. Включен механизм обнаружения ошибок соединения, четности и ESC-символа,
6) "рабочий режим" - прием информационных символов, управляющих символов и кодов. Механизм обнаружения ошибок (соединения, контроля четности, ESC-символа и кредитования) включен;
к) переходы между состояниями, указанными в перечислениях 1) - 6) 5.5.6.6, контролируются машиной состояний канального интерфейса (см. 5.5.6.22, 5.5.7);
5.5.6.7 Типовой интерфейс между приемником канального интерфейса SpaceWire и хост-системой должен включать в себя следующие сигналы: сигнал готовность буфера к приему данных (сигнал Buffer_Ready), запрос на запись данных в буфер приема данных (сигнал Buffer_Write) и принятые данные и флаг управления (сигнал Rx_Data/Control_Flag).
5.5.6.8 При получении хост-системой информационного символа от приемника канального интерфейса SpaceWire (с типовым интерфейсом между приемником и хост-системой) должны быть выполнены следующие действия:
а) если хост-система готова принять информационный символ от приемника, то она должна выставить сигнал Buffer_Ready;
б) если приемник получил информационный символ и сигнал Buffer_Ready выставлен, то приемник должен передать принятый информационный символ на линию Rx_Data/Control_Flag и установить сигнал Buffer_Write;
в) получив информационный символ, хост-система должна снять сигнал Buffer_Ready;
г) если приемник получил информационный символ, а сигнал Buffer_Ready не выставлен, то должна быть определена ошибка кредитования (см. 5.4.10, 5.5.4.14).
Примечание - Ошибка кредитования может возникать при необнаруженной ошибке контроля четности, например: в символе присутствуют два ошибочных бита, что приводит к возникновению одного или более "лишних" символов FCT;
д) приемник должен снять сигнал Buffer_Write после снятия сигнала Buffer_Ready.
5.5.6.9 Сигнал тактовой синхронизации приемника Rx_Clock должен восстанавливаться путем применения операции "исключающего ИЛИ" (XOR) к принятым D- и S-сигналам.
5.5.6.10 Схему восстановления сигнала тактовой синхронизации приемника не следует применять для восстановления сигнала тактовой синхронизации локального таймера, предназначенного для определения тайм-аута разъединения.
5.5.6.11 При распространении системного времени в сети SpaceWire использованы следующие сигналы: Tick-In, Tick_Out; 6-битного входного порта значения времени - Time_In; 6-битного выходного порта значения времени - Time_Out; 2-битного входного порта флагов управления - Control_Flags_In и 2-битного выходного порта флагов управления - Control_Flags_Out.
5.5.6.12 Сигнал Tick_In должен генерироваться только одним узлом в сети SpaceWire, называемым мастером времени, и только сигнал Tick_In должен быть использован для обновления значения системного времени всей сети.
5.5.6.13 Сигнал Tick_Out должен быть использован хост-системой канального интерфейса узла, не являющегося мастером времени, или маршрутизатора при обновлении и настройке своего локального системного времени.
5.5.6.14 Каждый узел или маршрутизатор должен иметь один локальный 6-разрядный счетчик времени.
5.5.6.15 6-битный входной порт значения времени Time_In должен быть использован для передачи значения системного времени из локального счетчика времени в канальный передатчик.
5.5.6.16 6-битный выходной порт значения времени Time_Out должен быть использован для передачи значения системного времени из канального приемника в локальный счетчик времени.
5.5.6.17 2-битные выходной и входной порты флагов управления Control_Flags_Out и Control_Flags_In должны быть зарезервированы для дальнейшего использования, а первоначальные значения сигналов на них должны быть установлены равными нулю.
Примечание - Механизм распространения системного времени для каналов SpaceWire и GigaSpaceWire описан в 5.5.27.
5.5.6.18 Типовой интерфейс распределенных прерываний между хост-системой и канальным интерфейсом должен содержать в своем составе 5-битный входной порт канального интерфейса идентификатора прерывания, 5-битный выходной порт канального интерфейса идентификатора прерывания и 4 сигнала: Intr_In, Intr_Out, Intr_Ack_In и Intr_Ack_Out.
5.5.6.19 Два 5-битных порта канального интерфейса идентификатора прерывания типового интерфейса распределенных прерываний между хост-системой и канальным интерфейсом должны быть использованы для следующих целей:
- входной порт - для передачи значения идентификатора прерывания из хост-системы в передатчик канального интерфейса;
- выходной порт - для передачи значения идентификатора прерывания из приемника канального интерфейса в хост-систему.
5.5.6.20 При получении хост-системой кода распределенных прерываний от приемника канального интерфейса SpaceWire и при условии, что канальный интерфейс SpaceWire находится в состоянии "Рабочий режим", должны быть выполнены следующие действия:
- если хост-системой выставлен сигнал Intr_In и канальный интерфейс находится в состоянии "Рабочий режим", то в канал должен быть передан Interrupt-код;
- если хост-системой выставлен сигнал Intr_Ack_In и канальный интерфейс находится в состоянии "Рабочий режим", то в канал должен быть передан Interrupt_Acknowledge-код;
- если канальный интерфейс находится в состоянии "Рабочий режим" и приемник канального интерфейса SpaceWire принял Interrupt-код, то на выходе приемника Intr_Out должен быть выставлен сигнал Intr_Out;
- если канальный интерфейс находится в состоянии "Рабочий режим" и приемник принял Interrupt_Acknowledge-код, то на выходе приемника Intr_Ack_Out должен быть выставлен сигнал Intr_Ack_Out.
Примечание - Механизм распределенных прерываний для каналов SpaceWire и GigaSpaceWire описан в разделе 10.
5.5.6.21 Таймер канального интерфейса SpaceWire предназначен для реализации тайм-аутов "6,4 мкс" и "12,8 мкс", которые используют при инициализации канала SpaceWire (см. 5.5.12).
5.5.6.22 Машина состояний канального интерфейса SpaceWire предназначена для управления канальным интерфейсом при инициализации канала SpaceWire (см. 5.5.12), нормальном функционировании канала SpaceWire и при восстановлении работоспособности канала SpaceWire после возникновения ошибки.
5.5.6.23 Буферы приема и передачи данных предназначены для хранения исходящих и входящих данных и для согласования скоростей приема данных хост-системой и канальным интерфейсом и в стандарте SpaceWire-RUS рассмотрены как часть хост-системы (см. 8.3.2.1-8.3.2.3).
5.5.6.24 Управление буфером приема и передачи данных должна осуществлять хост-система.
5.5.6.25 Возможно применение нескольких вариантов реализации буфера приема и передачи данных хост-системы:
- буфер FIFO, когда размер буфера зависит от конкретного приложения, использующего данный буфер;
- буферизация памяти DMA, которая используется для передачи данных в память хост-системы. После установки DMA канала SpaceWire может быть передан незамедлительный запрос на передачу нескольких FCT-символов с целью повышения скорости передачи данных;
- отсутствие буферизации: данный подход следует применять, когда хост-система способна принимать данные быстрее, чем может обеспечить ее этими данными канальный интерфейс. В этом случае несколько FCT-символов могут быть переданы при установлении соединения, а каждый следующий FCT-символ следует передавать после получения восьми информационных символов.
5.5.6.26 В реализациях интерфейса SpaceWire предпочтительнее использовать буферы приема и передачи данных типа FIFO (см. также 8.3.2.1-8.3.2.3), к которым должны быть предъявлены следующие требования:
- после перезагрузки системы буферы FIFO должны быть пустыми;
- после установки соединения может быть осуществлена передача любых данных, записанных в буфер FIFO, если получены FCT-символы для активации передачи;
- буфер FIFO может получать данные до тех пор, пока в нем есть свободное место;
- для того чтобы инициировать чтение из буфера или запись в буфер FIFO посредством прямого доступа к памяти или запросом от процессора, должны быть использованы флаги, обозначающие наполовину полный или наполовину пустой буфер FIFO.
Примечание - Это позволяет обеспечивать равномерность потока данных в канале SpaceWire и поддерживать высокую пропускную способность канала SpaceWire;
- данные из буфера приема FIFO должна считывать хост-система.
5.5.7 Диаграмма состояний канального интерфейса SpaceWire
5.5.7.1 Диаграмма состояний канального интерфейса SpaceWire показана на рисунке 12.
Рисунок 12 - Диаграмма состояний машины состояний канального интерфейса SpaceWire
5.5.7.2 На диаграмме состояний (рисунок 12) показаны следующие условия перехода машины состояний канального интерфейса SpaceWire на уровне обмена из одних ее состояний в другие состояния:
а) "канал включен" - сторожевое условие перехода из состояния "Готовность" в состояние "Запуск" (см. 5.5.9).
Примечание - Канальный интерфейс может быть включен программным или аппаратным способом, а также автоматически при приеме NULL-кода, или канал может быть включен постоянно;
б) "канал выключен" - сторожевое условие перехода из состояния "Рабочий режим" в состояние "Перезагрузка".
Примечания
1 Стиль, используемый в настоящем стандарте при изображении диаграммы состояний, приведен в приложении Ж.
2 На рисунке 12 Interrupt-код и Interrupt_Acknowledge-код сокращенно обозначены как Intpt-код, Intpt_Ack-код соответственно.
3 "Ошибка приемника" = "ошибка соединения ИЛИ ошибка контроля четности ИЛИ ошибка ESC-символа" (см. 5.5.13).
4 "Ошибка соединения" может иметь место только после приема первого бита (см. 5.5.12).
5 Определение ошибок: контроля четности, ESC-символа, принят FCT, принят N-Char, принят Time-код, принят Interrupt-код, принят Interrupt_Ack-код - может иметь место только после выполнения условия "принят NULL-код" (см. 5.5.10);
в) "передан NULL-код" - условие (см. 5.5.11), которое считается выполненным, если в состоянии "Запуск" на противоположную сторону канала передан первый NULL-код;
г) "передан FCT-символ" - условие, которое считается выполненным, если в состоянии "Соединение" на противоположную сторону канала передан первый FCT-символ;
д) "после 12,8 мкс" - условие, которое считается выполненным, если значение времени, отсчитываемое от начала входа в текущее состояние, превысило значение тайм-аута "12,8 мкс";
е) "после 6,4 мкс" - условие, которое считается выполненным, если значение времени, отсчитываемое от начала входа в состояние "Перезагрузка", превысило длительность тайм-аута "6,4 мкс";
ж) "принят NULL-код" - условие (см. 5.5.10), которое считается выполненным, если принят первый NULL-код;
Нумерация подпунктов приводится в соответствии с источником
и) "ошибка приемника" - условие, которое считается выполненным, если на уровне обмена определена ошибка приемника (см. 5.5.14);
к) "принят FCT-символ" - условие, которое считается выполненным, если на уровне обмена SpaceWire принят FCT-символ;
л) "принят N-Char" - условие, которое считается выполненным, если на уровне обмена канальным интерфейсом SpaceWire принят информационный символ;
м) "принят Interrupt-код" - условие, которое считается выполненным, если на уровне обмена SpaceWire канальным интерфейсом принят Interrupt-код;
н) "принят Interrupt_Acknowledge-код" - условие, которое считается выполненным, если на уровне обмена SpaceWire принят Interrupt_Acknowledge-код;
Нумерация подпунктов приводится в соответствии с источником
п) "принят Time-код" - условие, которое считается выполненным, если на уровне обмена SpaceWire принят Time-код;
р) "ошибка кредитования" - условие, которые считается выполненным, если на уровне обмена определена ошибка кредитования (см. 5.5.17).
5.5.7.3 В состоянии "Перезагрузка" машины состояний канального интерфейса SpaceWire, представленной в виде диаграммы состояний, показанной на рисунке 12, должны быть выполнены следующие требования:
- вход в состояние "Перезагрузка" должен быть произведен или после перезагрузки системы, или после прекращения работы канала SpaceWire по любой причине, или после обнаружения какой-либо ошибки во время инициализации канала SpaceWire (см. 5.5.12) и после установки сигнала перезагрузки.
Примечание - Перезагрузка представляет собой перезагрузку по питанию, аппаратную перезагрузку или перезагрузку программного обеспечения;
- в состоянии "Перезагрузка" передатчик и приемник должны быть перезагружены;
- после перехода в состояние "Перезагрузка" машина состояний канального интерфейса SpaceWire должна находиться в этом состоянии до снятия сигнала перезагрузки;
- по истечении тайм-аута "6,4 мкс" после снятия сигнала перезагрузки машина состояний канального интерфейса SpaceWire должна сделать безусловный переход в состояние "Ожидание".
5.5.7.4 В состоянии машины состояний канального интерфейса SpaceWire "Ожидание" должны быть выполнены следующие требования:
а) приемник должен быть включен, передатчик должен быть перезагружен.
Примечание - Рабочее состояние приемника в состоянии "Ожидание" машины состояний гарантирует запуск механизма обнаружения ошибки соединения (после регистрации изменения уровня сигнала на линии D или S) и механизма обнаружения NULL-кода;
б) при входе машины состояний в состояние "Ожидание" должен быть запущен таймер "12,8 мкс";
в) должен быть включен механизм обнаружения NULL-кода (см. 5.5.10);
г) непосредственно после приема первого бита должен быть включен механизм определения ошибки соединения (см. 5.5.15);
д) при приеме первого NULL-кода условие "Принят NULL-код" должно быть выполнено;
е) машина состояний должна совершить переход из состояния "Ожидание" в состояние "Готовность" по истечении тайм-аута "12,8 мкс".
Примечание - Задержки, равные по длительности тайм-аутам "6,4 мкс" и "12,8 мкс" в состояниях "Перезагрузка" и "Ожидание", гарантируют запуск приемников на обеих сторонах канала до того, как будет начата передача данных (см. 5.5.22);
ж) если произошло выполнение условия по перечислению и) 5.5.7.2 или после выполнения условия по перечислению ж) 5.5.7.2 произошло выполнение любого из следующих условий по перечислениям: к), или л), или м), или н) 2, или п), то машина состояний канального интерфейса SpaceWire на уровне обмена должна выполнить переход из текущего состояния в состояние "Перезагрузка".
5.5.7.5 В состоянии "Готовность" машины состояний канального интерфейса SpaceWire должны быть выполнены следующие требования:
а) приемник должен быть включен, передатчик должен быть перезагружен;
б) при приеме первого (с момента включения механизма обнаружения) NULL-кода условие "Принят NULL-код" должно быть выполнено;
в) если сторожевое условие "Канал включен" выполнено, то машина состояний должна перейти в состояние "Запуск";
г) должно быть выполнено требование по перечислению ж) 5.5.7.4.
5.5.7.6 В состоянии "Запуск" машины состояний канального интерфейса SpaceWire должны быть выполнены следующие требования:
а) в состояние "Запуск" машина состояний должна переходить из состояния "Готовность" только после включения канального интерфейса;
б) при входе в состояние "Запуск" должен быть запущен таймер "12,8 мкс";
в) приемник канального интерфейса SpaceWire должен быть включен и должен принимать NULL-коды;
г) передатчик канального интерфейса должен быть включен и должен передавать NULL-коды на другую сторону канала SpaceWire;
д) при приеме первого NULL-кода (с момента включения механизма обнаружения) условие "Принят NULL" должно считаться выполненным;
е) при отправке первого NULL-кода условие "Передан NULL" должно считаться выполненным;
ж) если выполнено условие "Принят NULL" И "Передан NULL", то машина состояний должна перейти в состояние "Соединение";
Нумерация подпунктов приводится в соответствии с источником
и) после истечения тайм-аута "12,8 мкс" машина состояний должна перейти в состояние "Перезагрузка";
к) должно быть выполнено требование по перечислению ж) 5.5.7.4.
5.5.7.7 В состоянии "Соединение" машины состояний канального интерфейса SpaceWire должны быть выполнены следующие требования:
а) при входе машины состояний в состояние "Соединение" должен быть запущен таймер "12,8 мкс";
б) приемник и передатчик должны быть включены;
в) передатчик должен передавать FCT-символы и NULL-коды;
г) если в состоянии "Соединение" выполнены условия по перечислениям г) и к) 5.5.7.2, то машина состояний должна перейти в состояние "Рабочий режим".
Примечание - Прием FCT-символа в состоянии "Соединение" означает прием переданного NULL-кода на другой стороне канала. Прием NULL-кода и FCT-символа означает установление соединения в обоих направлениях;
д) если машина состояний находится в состоянии "Соединение" и произошло выполнение любого из следующих условий по перечислениям д), и), л), м), н), п) 5.5.7.2, то машина состояний должна перейти из состояния "Соединение" в состояние "Перезагрузка".
5.5.7.8 В состоянии "Рабочий режим" машины состояний канального интерфейса SpaceWire должны быть выполнены следующие требования:
а) в состояние "Рабочий режим" машина состояний должна переходить только из состояния "Соединение";
б) в состоянии "Рабочий режим" приемник и передатчик должны быть включены;
в) в состоянии "Рабочий режим" передатчик может передавать информационные символы, канальные символы и коды в обоих направлениях;
г) если машина состояний находится в состоянии "Рабочий режим" и произошло отключение канала или обнаружена любая из ошибок - по перечислению б) 5.5.7.2 или ошибка кредитования, то машина состояний должна перейти в состояние "Перезагрузка".
Примечание - В качестве иллюстрации, поясняющей примерный состав и порядок процессов, которые происходят при нормальной работе канала SpaceWire, когда машина состояний канального интерфейса SpaceWire находится в состоянии "Рабочий режим", может быть взят частный случай, рассмотренный в приложении И.
5.5.8 Таблица переходов канального интерфейса SpaceWire приведена в приложении К.
5.5.9 Канальный интерфейс должен иметь возможность автоматического запуска канала SpaceWire при выполнении условия "Принят NULL".
Когда поддержка автоматического запуска канала SpaceWire имеет место, сторожевое условие "Канал включен" должно быть вычислено следующим образом:
"Канал включен" = (НЕ "Канал выключен") И
,
(1)
где "Автозапуск канала" - необходимое условие в режиме автоматического запуска канала после принятия первого NULL-кода;
"Запуск канала" - необходимое условие для запуска канала и перехода из состояния "Готовность" в состояние "Запуск";
"Канал выключен", "Принят NULL-код" - условия, которые определены в перечислениях б) и ж) 5.5.7.2.
Примечание - Механизм автозапуска позволяет реализовать ту систему, в которой в случае разъединения канала одна сторона канала ожидает, когда другая сторона сделает попытку установить соединение, для того чтобы немедленно ей ответить по установленному порядку. Механизм автозапуска позволяет управлять соединением только с одной стороны канала.
5.5.10 Условие "Принят NULL" должно быть установлено выполненным, если принята последовательность битов 011101000 2, как показано на рисунке 13.
5.5.10.1 Проверка выполнения условия "Принят NULL-код" включает в себя проверку 3 битов четности: бита четности, охватывающего флаг "данные/управление" ESC-символа, бита четности, охватывающего 2 бита ESC-символа, и бита четности, охватывающего 2 бита FCT-символа.
5.5.10.2 Если в последовательности битов, принятых во время ожидания NULL-кода, обнаружена ошибка контроля четности, то условие "Принят NULL" должно быть установлено невыполненным.
5.5.11 Условие "Передан NULL" должно быть установлено, если передана последовательность битов, показанная на рисунке 13.
5.5.12 Инициализация канала SpaceWire должна начинаться при поступлении команды "Перезагрузка" на одну из сторон канала SpaceWire и последующей перезагрузке этой стороны канала и завершаться нормальной работой канала SpaceWire и передачей данных по каналу SpaceWire в обоих направлениях. Пример инициализации канала SpaceWire, когда она происходит без возникновения ошибок в идеальном случае, приведен в приложении Л.
Примечание - Р - бит четности (= 0); С - флаг "данные/управление" (= 1).
Рисунок 13 - Обнаружение NULL-кода
Примечание - При инициализации канала символом, следующим за первым NULL-кодом, будет управляющий символ или код (FCT-символ или NULL-код). Следовательно, последний бит контроля четности NULL-кода равен нулю.
5.5.13 К ошибкам, которые могут быть обнаружены и обработаны на уровне обмена, относятся следующие ошибки:
- ошибка приемника;
- ошибка последовательности символов;
- ошибка кредитования.
5.5.14 Ошибка приемника - это условное обозначение любой из ошибок: ошибки соединения, или ошибки контроля четности, или ошибки ESC-символа.
5.5.14.1 Ошибка соединения может быть определена на уровне обмена только после приема первого бита данных.
5.5.14.2 Уровни сигналов на линиях D-сигнала и S-сигнала нормально функционирующего канального интерфейса должны постоянно изменяться, так как по этим линиям должны непрерывно передаваться управляющие широковещательные коды, FCT-символы и информационные символы или NULL-коды.
5.5.14.3 Если время, отсчитываемое с момента последнего изменения напряжения на линиях D-сигнала или S-сигнала, превысило длительность тайм-аута соединения "850 нс" (см. 5.5.26), то приемник должен обнаружить ошибку соединения.
5.5.15 Ошибки контроля четности, ESC-символа и последовательности символов могут быть определены на уровне обмена только после приема первого NULL-кода.
5.5.16 Любой символ или код (за исключением первого NULL-кода) может быть принят из канала только после принятия первого NULL-кода и не должен быть передан дальше до тех пор, пока не будет получен и проверен его бит контроля четности.
5.5.17 Если в результате проверки бита контроля четности символа или кода, принятого из канала, обнаружено, что требование 5.3.4.2 не выполнено, то должна быть определена ошибка контроля четности.
5.5.18 Если после ESC-символа принят любой управляющий символ, отличный от FCT-символа, то должна быть определена ошибка ESC-символа.
Примечание - Символ ESC и следующий за ним символ FCT - NULL-код, символ ESC и следующий за ним символ данных, то - Time-код, Interrupt-код или Interrupt_Acknowledge-код.
5.5.19 Если на уровне обмена определена ошибка приемника, то восстановление системы должно происходить в соответствии с приложением М до тех пор, пока канал не будет восстановлен, либо до тех пор, пока канальные интерфейсы не будут отключены.
5.5.20 Ошибка последовательности символов может быть определена только во время инициализации канала после приема первого NULL-кода.
Ошибка последовательности символов означает, что произошел прием любого символа или управляющего кода, который не должен иметь место в текущем состоянии машины состояний уровня обмена.
Если определена ошибка последовательности символов, то канальный интерфейс должен быть перезагружен и инициализирован.
5.5.21 Ошибка кредитования может быть определена только в состоянии "Рабочий режим" в случаях 5.5.4.10, 5.5.4.14 и перечисления г) 5.5.6.8.
Если произошла ошибка кредитования, то машина состояний должна перейти в состояние "Перезагрузка" и о ней должно быть сообщено на сетевой уровень как об ошибке канала (см. 8.3.1).
5.5.22 На уровне обмена в состоянии "Рабочий режим" может иметь место прием пустого пакета.
Примечание - Прием пустого пакета имеет место, когда один ЕОР- или ЕЕР-символ следует после другого ЕОР- или ЕЕР-символа.
5.5.22.1 Пустые пакеты, которые могут быть приняты, должны быть отброшены: если в состоянии "Рабочий режим" символом, следующим за ЕОР- или ЕЕР-символом, является еще один ЕОР- или ЕЕР-символ, то канальный интерфейс должен удалить второй принятый ЕОР- или ЕЕР-символ.
5.5.22.2 О приеме пустого пакета не должно быть сообщено на сетевой уровень.
5.5.23 Информирование сетевого уровня о тех ошибках, которые были обнаружены на уровне обмена, проводится следующим образом:
- только после того, как соединение установлено, любая из ошибок, обнаруженных в состоянии "Рабочий режим" - соединения, контроля четности, ESC-символа и кредитования, - должна интерпретироваться как ошибка канала и о ней должно быть сообщено на сетевой уровень как об ошибке канала;
- информация о любой из ошибок, которые могут быть обнаружены и обработаны на уровне обмена (см. 5.5.13), во время инициализации канала в состояниях "Перезагрузка", "Ожидание", "Готовность", "Запуск" и "Соединение" не должна передаваться на сетевой уровень.
5.5.24 На сетевом уровне после принятия сообщения об ошибке канала должны быть выполнены соответствующие мероприятия по восстановлению работоспособности канала (см. 8.3).
5.5.25 Описание и обработка исключений в тех ситуациях, при которых события не следуют в ожидаемой последовательности и которые могут иметь место на уровне обмена, приведены в приложении Н.
5.5.26 Для каналов SpaceWire определены следующие тайм-ауты и их длительности:
- тайм-аут сброса D- и S-сигналов, который определяется как задержка между сбросом D-сигнала и сбросом S-сигнала, длительность которого должна находиться в пределах от 555 нс (что равно одному периоду сигнала тактирования передатчика с минимально допустимой частотой 1,8 МГц) до кратчайшего периода сигнала тактирования передатчика (величина зависит от реализации канала);
- тайм-аут соединения 850 нс, длительность которого должна находиться в пределах от 727 нс, что составляет восемь периодов сигнала тактирования с частотой 11 МГц, до 1000 нс, что составляет девять периодов сигнала тактирования с частотой 9 МГц;
- номинальное значение длительности тайм-аута соединения 850 нс должно быть равно 850 нс;
- тайм-аут уровня обмена "6,4 мкс", длительность которого должна находиться в пределах от 5,82 мкс, что составляет 64 периода сигнала тактирования с частотой, равной 11 МГц, до 7,22 мкс, что составляет 65 периодов сигнала тактирования с частотой, равной 9 МГц;
- номинальное значение длительности тайм-аута "6,4 мкс" должно быть равно 6,4 мкс;
- тайм-аут уровня обмена "12,8 мкс", длительность которого должна находиться в пределах от 11,64 мкс, что составляет 128 периодов сигнала тактирования с частотой, равной 11 МГц, до 14,33 мкс, что составляет 129 периодов сигнала тактирования с частотой, равной 9 МГц;
- номинальное значение длительности тайм-аута уровня обмена "12,8 мкс" должно быть равно 12,8 мкс.
5.5.27 Механизм распространения системного времени
5.5.27.1 Составляющие типового интерфейса системного времени между хост-системой и канальным интерфейсом и их назначение определены в 5.5.6.11-5.5.6.17.
5.5.27.2 Только один узел или маршрутизатор должен быть выделен в сети SpaceWire для управления распространением системного времени по всей сети SpaceWire и называться мастером времени.
5.5.27.3 Из хост-системы на передатчик канального интерфейса мастера времени должны периодически поступать сигналы Tick_In с заданной частотой повторения - tick rate, которые должны быть использованы для обновления значения системного времени.
5.5.27.4 Только мастер времени может иметь активный сигнал Tick_In, который периодически устанавливается хост-системой данного мастера времени.
5.5.27.5 Если канальный интерфейс мастера времени находится в состоянии "Рабочий режим", то после установления сигнала Tick_In значение его счетчика времени должно быть увеличено на единицу и немедленно, после завершения передачи текущего символа или управляющего кода, должна быть произведена передача Time-кода с 6 битами системного времени, установленными в соответствии с новым значением шестиразрядного счетчика времени, и 2 битами флагов управления в канал.
5.5.27.6 Канальный интерфейс на другой стороне канала, получив Time-код, должен проверить, является ли значение времени в принятом Time-коде на единицу больше (по модулю 64) значения его счетчика системного времени.
5.5.27.7 Если канальный интерфейс принимает Time-код со значением системного времени на единицу больше, чем текущее значение счетчика времени, то узел или маршрутизатор должен провести следующие мероприятия:
- увеличить на единицу значение своего счетчика времени;
- установить сигнал TICK_OUT;
- если сигнал TICK_OUT установлен, то выставить на выходах TIME_OUT и CONTROL_FLAGS_OUT соответствующие значения из принятого Time-кода;
- отправить Time-код в канал со значением времени, совпадающим со значением времени в принятом Time-коде.
Примечания
1 Узлы, применяющие механизм распространения системного времени, могут использовать либо сигнал Tick_Out в качестве сигнала тактирования, либо значение счетчика времени, представляющего значение шести младших битов системного времени.
2 Time-код, переданный в канал, распространяется по всем выходным портам МК. В результате все выходные порты МК отправят Time-код, в котором значение времени совпадает со значением времени в принятом Time-коде, так как значение счетчика времени МК уже увеличено на единицу. Если в сети есть замкнутые контуры, то МК этих замкнутых контуров получат Time-код со значением времени, равным значению своего счетчика времени.
5.5.27.8 Если канальный интерфейс принимает Time-код со значением, равным текущему значению счетчика времени, то:
- канальный интерфейс не должен устанавливать сигнал TICK_OUT;
- этот Time-код должен быть проигнорирован и отброшен.
Примечание - В этом случае при наличии в сети замкнутых контуров Time-код, который получат маршрутизаторы этих замкнутых контуров во второй раз со значением времени, равным значению своего счетчика времени, будет отброшен.
5.5.27.9 Если канальный интерфейс принял Time-код со значением времени, которое менее или равно единице (по модулю 64) и не равно текущему значению счетчика времени, то либо значение Time-кода, либо значение счетчика времени должно считаться неверным.
Примечание - Такая ситуация может произойти при потере Time-кода или после перезапуска канала после разъединения.
5.5.27.10 Если канальный интерфейс принял некорректный Time-код либо значение счетчика оказалось некорректным, то значение счетчика времени должно быть обновлено в соответствии со значением времени полученного Time-кода, но сигнал Tick_Out не должен быть установлен.
Примечание - Если сигнал Tick_Out не будет установлен, то дальнейшее распространение некорректного Time-кода по сети будет предотвращено. При получении следующего Time-кода возможно, что значение счетчика времени будет соответствовать значению времени в принятом Time-коде, и нормальная работа будет восстановлена.
5.5.27.11 При использовании сигнала TICK_OUT в качестве сигнала тактирования возможны потери этого сигнала при потере Time-кода в сети.
5.5.27.12 Величина рассогласования системного времени при распространении по сети зависит от количества каналов в сети, по которым происходит распространение, и от скорости работы каждого канала.
5.5.27.13 В сети с механизмом распространения системного времени с помощью Time-кодов рассогласование системного времени менее чем на 10 мкс трудно достижимо.
5.5.27.14 Оценка рассогласования системного времени в сети SpaceWire-RUS приведена в приложении П.
5.5.27.15 Так как пропуск сигнала системного времени вызывает рассогласование системного времени, то рекомендуется выполнение следующих мероприятий при реализации механизма распространения системного времени:
- сигнал Tick_Out не следует использовать для увеличения значения счетчика времени при проверке соответствия текущего значения счетчика времени системному времени;
- при установке сигнала Tick_Out обновление значения счетчика времени в соответствии с системным временем должно производиться с помощью ФАПЧ.
5.5.27.16 После сброса или после разъединения и последующего соединения канала SpaceWire в состоянии "Перезагрузка" машины состояний уровня обмена SpaceWire во всех узлах и маршрутизаторах сети SpaceWire значения счетчиков времени и сигналы на выходах флагов управления должны быть установлены равными нулю.
5.5.27.17 В дополнение к описанному базовому механизму распространения системного времени по сети могут быть использованы протоколы прикладного уровня, например: для распространения значений времени размером более 6 битов или для передачи команд, зависящих от времени.
6 Интерфейс GigaSpaceWire. Каналы с гигабитными скоростями в сетях SpaceWire-RUS
6.1 Стек протоколов
6.1.1 Стек протоколов интерфейса GigaSpaceWire с гигабитными скоростями межприборного информационного обмена для сетей SpaceWire-RUS показан на рисунке 1.
6.2 Физический уровень
6.2.1 Интерфейс GigaSpaceWire с гигабитными скоростями поддерживает работу с электрической средой передачи информации: витой парой, коаксиальным кабелем, а также с оптической средой - волоконно-оптическими линиями связи.
6.2.2 Спецификации физического уровня стека протоколов GigaSpaceWire должны соответствовать спецификациям обеспечения электромагнитной совместимости типового КА.
6.3 Сигнальный уровень
6.3.1 Функции, которые должен выполнять сигнальный уровень стека протоколов GigaSpaceWire, приведены в перечислении в) 4.21.
6.3.2 Поток данных на сигнальном уровне
6.3.2.1 Максимальная частота появления ошибочных битов (BER) во всех каналах GigaSpaceWire должна быть не более 10 12 бит/с.
6.3.2.2 На передающей стороне сигнальный уровень должен принимать 10-битные кодовые последовательности от уровня кодирования, выполнять сериализацию и битовую синхронизацию и передавать последовательный поток битов в физический канал.
6.3.2.3 На принимающей стороне сигнальный уровень должен принимать поток битов из физического канала, выполнять символьное выравнивание входящего потока битов из канала и передавать выровненные 10-битные кодовые последовательности на уровень кодирования.
6.3.2.4 Сигнальный уровень должен воспринимать только одну команду, которая разрешает или запрещает функционирование приемника и передатчика канального интерфейса на сигнальном уровне, - PHY_Enabled. Пример воздействия команды PHY_Enabled на канальный интерфейс GigaSpaceWire приведен в приложении Р.
Примечание - Команда PHY_Enabled может выдаваться управляющим объектом, назначение и принцип работы которого находятся за рамками рассмотрения настоящего стандарта.
6.3.3 Электрические интерфейсы в каналах GigaSpaceWire
6.3.3.1 В каналах GigaSpaceWire для передачи сигналов данных на различных скоростях должны быть использованы различные электрические интерфейсы - I и/или II.
6.3.3.2 Каждое устройство канала GigaSpaceWire должно соответствовать установленному режиму работы канала GigaSpaceWire: с интерфейсом I или интерфейсом II.
6.3.3.3 К электрическому интерфейсу I предъявляют следующие требования:
а) электрический интерфейс I должен поддерживать номинальную скорость передачи данных 1,0625 Гбит/с;
б) максимальное отклонение передающей частоты электрического интерфейса I не должно превышать 0,01 %;
в) выходной сигнал передатчика электрического интерфейса I не должен попадать в затененный регион маски соответствия выходного сигнала, показанной на рисунке 14;
Рисунок 14 - Маска соответствия выходного сигнала передатчика для электрического интерфейса I
г) параметры маски соответствия выходного сигнала передатчика для электрического интерфейса I должны иметь значения, приведенные в таблице 5;
Таблица 5 - Параметры маски соответствия выходного сигнала передатчика для электрического интерфейса I
Символ |
Значение, UI |
Символ |
Значение, мВ |
х 1 |
0,125 |
V DIFFmin |
550 |
х 2 |
0,315 |
V DIFFmax |
1000 |
д) входной сигнал приемника электрического интерфейса I не должен попадать в затененный регион маски соответствия входного сигнала приемника, показанной на рисунке 15;
Рисунок 15 - Маска соответствия входного сигнала приемника для электрического интерфейса I
е) параметры маски соответствия входного сигнала приемника для электрического интерфейса I должны иметь значения, приведенные в таблице 6;
Таблица 6 - Параметры маски соответствия входного сигнала приемника для электрического интерфейса I
Символ |
Значение, UI |
Символ |
Значение, мВ |
х 1 |
0,28 |
V DIFFmin |
200 |
х 2 |
0,5 |
V DIFFmax |
1000 |
ж) длительность единичного интервала (UI) на оси времени графиков, изображающих маски соответствия выходного сигнала передатчика и входного сигнала приемника для электрического интерфейса I на рисунке 14 и рисунке 15 соответственно, а также приведенных в таблице 6 и таблице 7 соответственно должна составлять 800 пс.
6.3.3.4 Электрический интерфейс II должен удовлетворять следующим требованиям:
а) для электрического интерфейса II определены значения номинальных скоростей передачи данных, лежащие в интервале от 5 до 125 Мбит/с, и значения номинальных скоростей передачи данных - 312,5 и 625 Мбит/с; 1,25 и 2,5 Гбит/с;
б) на интервале от 5 до 125 Мбит/с [см. перечисление а) 6.3.3.4] значение номинальной скорости передачи данных должно изменяться с шагом 5 Мбит/с;
в) электрический интерфейс II должен поддерживать любое непустое подмножество по перечислению а) 6.3.3.4 скоростей передачи данных;
г) максимальное отклонение значения передающей частоты при реализации электрического интерфейса II от соответствующего номинального значения по перечислению а) 6.3.3.4 не должно превышать 0,01 %;
д) выходной сигнал передатчика электрического интерфейса II не должен попадать в затененный регион маски соответствия выходного сигнала, показанной на рисунке 16;
Рисунок 16 - Маска соответствия выходного сигнала передатчика для электрического интерфейса II
е) параметры маски соответствия выходного сигнала передатчика для электрического интерфейса II должны иметь значения, приведенные в таблице 7.
Таблица 7 - Параметры маски соответствия выходного сигнала передатчика для электрического интерфейса II
Символ |
Значение, UI |
Символ |
Значение, мВ |
х 1 |
0,17 |
V DIFFmin |
300 |
х 2 |
0,39 |
V DIFFmax |
800 |
ж) входной сигнал приемника электрического интерфейса II не должен попадать в затененный регион маски соответствия входного сигнала, показанной на рисунке 17;
Нумерация подпунктов приводится в соответствии с источником
и) параметры маски соответствия входного сигнала передатчика для электрического интерфейса II должны иметь значения, приведенные в таблице 8;
к) длительность единичного интервала UI, приведенного в таблицах 5-8 и на рисунках 14-17, должна определяться по следующей формуле:
,
(2)
где R - номинальная скорость передачи данных, Гбит/с.
Рисунок 17 - Маска соответствия входного сигнала приемника для электрического интерфейса II
Таблица 8 - Параметры маски соответствия входного сигнала приемника для электрического интерфейса II
Символ |
Значение, UI |
Символ |
Значение, мВ |
x 1 |
0,275 |
V DIFFmin |
100 |
х 2 |
0,4 |
V DIFFmax |
2000 |
6.3.4 Приемник сигнального уровня должен устанавливать битовую синхронизацию при приеме К28.5 (см. 6.3.6.2).
Примечания
1 Во время установки соединения на уровне обмена кодовые последовательности К28.5 регулярно передаются в канал на протяжении 25,6 мкс (см. 6.6.8).
2 Метод, используемый для установления битовой синхронизации, зависит от реализации и находится за рамками рассмотрения настоящего стандарта.
6.3.5 Сериализация и десериализация
6.3.5.1 Схема сериализации и десериализации на сигнальном уровне стека протоколов GigaSpaceWire показана на рисунке 18.
6.3.5.2 На передающей стороне канала каждая 10-битная кодовая последовательность, полученная от уровня кодирования, должна быть трансформирована с помощью операции сериализации в последовательный поток битов и передана в канал таким образом, чтобы младший значащий бит 10-битной кодовой последовательности (бит а) был передан первым и порядок передаваемых битов соответствовал последовательности abcdeifghj в условных обозначениях 8b-10b-кодирования.
Рисунок 18 - Схема сериализации и десериализации
6.3.5.3 На принимающей стороне канала последовательный поток битов, принятый из канала, должен быть трансформирован с помощью операции десериализации в поток 10-битных кодовых последовательностей, выровнен с помощью операции символьного выравнивания и передан уровню кодирования.
6.3.6 Символьное выравнивание
6.3.6.1 Поток данных при передаче на уровень кодирования должен быть выровнен с помощью операции символьного выравнивания, проводимой на символьном уровне путем установления границ между принимаемыми из канала кодовыми последовательностями длиной 10 битов.
6.3.6.2 При проведении операции символьного выравнивания границы между 10-битными кодовыми последовательностями в принимаемом потоке битов из канала должны быть установлены путем определения наличия 10-битного представления кода К28.5 (см. 6.3.6.3) и установления первого бита следующей 10-битной кодовой последовательности непосредственно после 10-битного представления кода К28.5.
6.3.6.3 Для установления символьного выравнивания должны быть использованы 10-битные представления кода К28.5 как с положительным динамическим дисбалансом - 0011111010, так и с отрицательным динамическим дисбалансом - 1100000101.
Примечание - 10-битные представления кода К28.5 содержат положительную Comma-последовательность 0011111 и отрицательную Comma-последовательность 1100000 и являются 10-битными кодами Comma-символа (см. 6.4.5.2).
6.3.6.4 Если после установления символьного выравнивания код К28.5 обнаружен в неожидаемой позиции, то это событие должно быть интерпретировано как ошибка выравнивания, о происхождении которой должно быть передано сообщение на уровень обмена.
6.4 Уровень кодирования
6.4.1 Уровень кодирования должен выполнять 8b-10b-кодирование передаваемых данных и 8b-10b-декодирование принимаемых данных. Структурная схема передачи и приема данных на уровне кодирования показана на рисунке 19.
Рисунок 19 - Схема передачи и приема данных на уровне кодирования
6.4.2 Поток данных на уровне кодирования
6.4.2.1 На передающей стороне уровень кодирования должен принимать 8b-символы от символьного уровня и передавать 10-битные кодовые последовательности на сигнальный уровень.
6.4.2.2 На принимающей стороне уровень кодирования должен принимать 10-битные кодовые последовательности от сигнального уровня и передавать 8b-символы на символьный уровень.
6.4.3 На принимающей стороне уровень кодирования должен сообщать об обнаружении ошибки 8b-10b-декодера на уровень обмена.
6.4.4 Формат условных обозначений, используемых на уровне кодирования
6.4.4.1 Для преобразования 8b-символов в 10-битные кодовые последовательности должно использоваться 8b-10b-кодирование с сохранением баланса постоянного тока, а также с возможностью восстановления сигнала тактирования.
6.4.4.2 Биты кодируемого 8b-символа должны обозначаться прописными латинскими буквами от А до Н, где А - самый младший бит, Н - самый старший.
6.4.4.3 Самый младший бит в 8b-символе имеет номер "нуль", самый старший бит в 8b-символе имеет номер "семь".
6.4.4.4 Биты 10-битной кодовой последовательности должны быть обозначены строчными латинскими буквами от а до j, где а - самый младший бит, j - самый старший.
6.4.4.5 Каждый кодируемый 8b-символ должен иметь управляющий флаг Z, указывающий тип этого символа.
6.4.4.6 Управляющий флаг может принимать два значения, D и K. Значение D идентифицирует 8b-символ как символ данных. Значение K идентифицирует 8b-символ как специальный символ.
6.4.4.7 Каждый кодируемый 8b-символ должен быть обозначен в соответствии с нотацией Zxx.y, где Z - управляющий флаг (может принимать значения D и K);
хх - десятичное представление бита EDCBA символа (может принимать значения от 0 до 31);
y - десятичное представление бита HGF (может принимать значения от 0 до 7).
6.4.4.8 Условные обозначения, используемые на уровне кодирования, представлены на рисунке 19.
6.4.5 Правила выполнения 8b-10b-кодирования
6.4.5.1 При 8b-10b-кодировании каждому символу данных или специальному символу должны соответствовать две не обязательно разные кодовые последовательности.
6.4.5.2 Определение кодовой последовательности следует производить с помощью данных таблиц 9, 10 и значений динамического дисбаланса RD 6-битной подгруппы abcdei, 4-битной подгруппы fghj и кодовой последовательности.
6.4.5.3 Расчет RD должен быть произволен по следующим правилам:
а) после сброса величине RD кодовой последовательности должно быть присвоено отрицательное значение;
б) значение величины RD кодовой последовательности должно быть рассчитано на основании RD двух подгрупп: RD 6-битной подгруппы abcdei (таблица 9) и RD 4-битной подгруппы fghj (таблица 10);
в) значение RD 6-битной подгруппы abcdei - это значение RD, полученное после кодирования/декодирования предыдущего 8b-символа;
г) значение RD 4-битной подгруппы fghj - это значение RD, полученное после кодирования/декодирования подгруппы abcdei.
Таблица 9 - Таблица 5b/6b-кодирования
8b-символ |
Кодовая последовательность |
8b-символ |
Кодовая последовательность |
||||
RD- |
RD+ |
RD- |
RD+ |
||||
Zxx.y |
EDCBA |
abcdei |
Zxx.y |
EDCBA |
abcdei |
||
D00.y |
00000 |
100111 |
011000 |
D16.y |
10000 |
011011 |
100100 |
D01.y |
00001 |
011101 |
100010 |
D17.y |
10001 |
100011 |
|
D02.y |
00010 |
101101 |
010010 |
D18.y |
10010 |
010011 |
|
D03.y |
00011 |
110001 |
D19.y |
10011 |
110010 |
||
D04.y |
00100 |
110101 |
001010 |
D20.y |
10100 |
001011 |
|
D05.y |
00101 |
101001 |
D21.y |
10101 |
101010 |
||
D06.y |
00110 |
011001 |
D22.y |
10110 |
011010 |
||
D07.y |
00111 |
111000 |
000111 |
D23.y/K23.y |
10111 |
111010 |
000101 |
D08.y |
01000 |
111001 |
000110 |
D24.y |
11000 |
110011 |
001100 |
D09.y |
01001 |
100101 |
D25.y |
11001 |
100110 |
||
D10.y |
01010 |
010101 |
D26.y |
11010 |
010110 |
||
D11.y |
01011 |
110100 |
D27.y/K27.y |
11011 |
110110 |
001001 |
|
D12.y |
01100 |
001101 |
D28.y |
11100 |
001110 |
||
D13.y |
01101 |
101100 |
D29.y/K29.y |
11101 |
101110 |
010001 |
|
D14.y |
01110 |
011100 |
D30.y/K30.y |
11110 |
011110 |
100001 |
|
D15.y |
01111 |
010111 |
101000 |
D31.y |
11111 |
101011 |
010100 |
- |
- |
- |
- |
K28.y |
11100 |
001111 |
110000 |
д) значение RD, полученное после кодирования/декодирования 8b-символа, - это значение RD, полученное после кодирования/декодирования подгруппы fghj.
Таблица 10 - Таблица 3b/4b-кодирования
8b-символ |
Кодовая последовательность |
8b-символ |
Кодовая последовательность |
||||
RD- |
RD+ |
RD- |
RD+ |
||||
Zxx.y |
HGF |
fghj |
Zxx.y |
HGF |
fghj |
||
Dxx.0 |
000 |
1011 |
0100 |
Kxx.0 |
000 |
1011 |
0100 |
Dxx.1 |
001 |
1001 |
Kxx.1 |
001 |
0110 |
1001 |
|
Dxx.2 |
010 |
0101 |
Kxx.2 |
010 |
1010 |
0101 |
|
Dxx.3 |
011 |
1100 |
0011 |
Kxx.3 |
011 |
1100 |
0011 |
Dxx.4 |
100 |
1101 |
0010 |
Kxx.4 |
100 |
1101 |
0010 |
Dxx.5 |
101 |
1010 |
Kxx.5 |
101 |
0101 |
1010 |
|
Dxx.6 |
110 |
0110 |
Kxx.6 |
110 |
1001 |
0110 |
|
Dxx.P7 |
111 |
1110 |
0001 |
- |
- |
- |
- |
Dxx.A7 |
111 |
0111 |
1000 |
Kxx.7 |
111 |
0111 |
1000 |
е) значение RD после кодирования/декодирования подгруппы положительно, если выполнено одно из следующих условий:
1) подгруппа представляет собой последовательность, которая содержит больше логических единиц, чем нулей,
2) это подгруппа abcdei, которая представляет собой последовательность 000111b,
3) это подгруппа fghj, которая представляет собой последовательность 0011b;
ж) значение RD после кодирования/декодирования подгруппы отрицательно, если выполнено одно из следующих условий:
1) подгруппа представляет собой последовательность, которая содержит больше нулей, чем единиц,
2) это подгруппа abcdei, которая представляет собой последовательность 111000b,
3) это подгруппа fghj, которая представляет собой последовательность 1100b;
Нумерация подпунктов приводится в соответствии с источником
и) во всех других представлениях подгруппы abcdei или подгруппы fghj, отличных от представлений согласно перечислениям а) и б) 6.4.5.3, значение RD после кодирования/декодирования подгруппы не меняется, т.е. остается таким же, каким было до кодирования/декодирования этой подгруппы.
Примечание - Все подгруппы с равным числом единиц и нулей имеют нейтральный дисбаланс. Для того чтобы сократить количество единиц и нулей на границах подгрупп, правила 8b-10b-кодирования определяют, что подгруппы 000111b и 0011b могут быть использованы только в том случае, если перед началом кодирования/декодирования RD имеет положительное значение, поэтому значение RD после кодирования такой подгруппы также будет положительным. Аналогично подгруппы 111000b и 1100b могут быть использованы только в том случае, если перед началом кодирования/декодирования RD имеет отрицательное значение, поэтому значение RD после кодирования такой подгруппы также будет отрицательным.
6.4.5.4 Для символов Dxx.7 существует прямое кодирование Dxx.P7 и альтернативное кодирование Dxx.A7. Альтернативное кодирование Dxx.A7 символа Dxx.7 должно быть использовано для символов D17.7, D18.7 и D20.7 при отрицательном значении RD и для символов D11.7, D13.7 и D6.7 при положительном значении RD. Для всех остальных символов Dxx.7 следует применять прямое кодирование.
6.4.5.5 Кодируемый 8b-символ и текущее значение RD кодера должны быть использованы для выбора соответствующей кодовой последовательности.
6.4.5.6 Новое значение RD должно быть рассчитано после передачи каждой следующей кодовой последовательности.
6.4.5.7 При 8b-10b-кодировании специальных символов, таких как К28.0, К28.1, К28.2, К28.3, К28.4, К28.5, К28.6, К28.7, К23.7, К27.7, К29.7, К30.7, должны быть использованы следующие правила:
а) 8b-10b-кодирование таких специальных символов, как К28.0, К28.1, К28.2, К28.3, К28.4, К28.5, К28.6, К28.7, К23.7, К27.7, К29.7, К30.7, проводят как с использованием данных таблиц 9 и 10 с предварительным разбиением символа на подгруппы, так и с использованием только одной таблицы 11;
б) символы К28.1, К28.5 и К28.7 содержат уникальные 7-битные последовательности: положительную Comma-последовательность 0011111 и отрицательную Comma-последовательность 1100000 (см. также 6.5.2.3).
Примечание - Comma-последовательности 0011111 и 1100000 обычно используются для выравнивания потока данных (см. 6.3.6);
в) при использовании таблицы 11 следует применять значение RD, полученное после кодирования/декодирования предыдущего 8b-символа;
г) символ К28.7 запрещено передавать более одного раза подряд.
Таблица 11 - Специальные символы 8b-10b-кодирования
Символ |
Кодовая последовательность |
|||
RD- |
RD+ |
|||
Обозначение |
Десятичное значение |
HGF EDCBA |
abcdei fghj |
abcdei fghj |
К28.0 |
28 |
000 11100 |
001111 0100 |
110000 1011 |
К28.1 |
60 |
001 11100 |
001111 1001 |
110000 0110 |
К28.2 |
92 |
010 11100 |
001111 0101 |
110000 1010 |
К28.3 |
124 |
011 11100 |
001111 0011 |
110000 1100 |
К28.4 |
156 |
100 11100 |
001111 0010 |
110000 1101 |
К28.5 |
188 |
101 11100 |
001111 1010 |
110000 0101 |
К28.6 |
220 |
110 11100 |
001111 0110 |
110000 1001 |
К28.7 |
252 |
111 11100 |
001111 1000 |
110000 0111 |
К23.7 |
247 |
111 10111 |
111010 1000 |
000101 0111 |
К27.7 |
251 |
111 11011 |
110110 1000 |
001001 0111 |
К29.7 |
253 |
111 11101 |
101110 1000 |
010001 0111 |
К30.7 |
254 |
111 11110 |
0111101000 |
100001 0111 |
Примечание - Таблица 11 составлена в соответствии с правилами, изложенными в 6.4.5, и с использованием таблиц кодирования 6-битных и 4-битных подгрупп (таблицы 9 и 10). |
6.4.6 Правила выполнения 8b-10b-кодирования
Следующие правила должны быть использованы для декодирования как целой 10-битной кодовой последовательности, так и разбитой на подгруппы:
- для декодирования принятой кодовой последовательности должна быть использована колонка таблицы 11, соответствующая текущему значению RD декодера;
- если принятая кодовая последовательность найдена в таблице 11, то она считается правильной и соответствующий ей 8b-символ считается декодированным;
- если принятая кодовая последовательность не найдена в таблице 11, то она должна считаться ошибочной и означать, что произошла ошибка декодирования 8b-10b-декодера.
Примечание - Обнаружение ошибки декодирования не обязательно означает, что декодируемая кодовая последовательность содержит ошибку. Ошибка декодирования может быть результатом ошибки, которая возникла раньше, но не была обнаружена декодером и изменила значение RD декодера;
6.5 Символьный уровень
6.5.1 Основные функции, которые должен выполнять символьный уровень стека протоколов GigaSpaceWire, приведены в перечислении б) 4.21.
6.5.2 Протокол символьного уровня стека протоколов GigaSpaceWire определяет символ данных, четыре управляющих символа: FCT-символ, Comma-символ и IDLE-символ, ЕОР-символ, ЕЕР-символ, а также три управляющих кода: Time-код, Interrupt-код и Interrupt_Acknowledge-код.
6.5.2.1 Структура символа данных интерфейса GigaSpaceWire, передаваемого на уровень обмена, должна быть определена по 5.4.2.
6.5.2.2 Структура управляющих кодов GigaSpaceWire, перечисленных в 6.5.2, и управляющих символов GigaSpaceWire, FCT-, ЕОР- и ЕЕР-символов, на символьном уровне должна быть определена по 5.4.3.
6.5.2.3 Символ Comma должен быть определен как символ К28.5. Структура символа К28.5 приведена в таблице 12.
6.5.2.4 Символ IDLE должен быть определен как символ К28.0. Структура символа К28.0 приведена в таблице 12.
Примечание - Положение переключателя "Z=D, K" на рисунке 20 может быть использовано для организации процедуры 8b-10b-кодирования символов данных и любых специальных символов. Положение переключателя Z = К может быть использовано для организации процедуры 8b-10b-кодирования только для таких специальных символов, как К28.0, К28.1, К28.2, К28.3, К28.4, К28.5, К28.6, К28.7, К23.7, К27.7, К29.7, К30.7.
6.5.3 Требования к потоку данных на символьном уровне:
- на передающей стороне канала GigaSpaceWire символьный уровень должен принимать от уровня обмена символ данных, четыре управляющих символа и три управляющих кода (см. 6.5.2);
- на передающей стороне канала GigaSpaceWire символьный уровень должен кодировать принятые от уровня обмена символы данных, управляющие символы и управляющие коды (см. 6.5.2) в 8b-символы и передавать их на уровень кодирования;
- на принимающей стороне канала GigaSpaceWire символьный уровень должен принимать 8b-символы от уровня кодирования;
- на принимающей стороне канала GigaSpaceWire символьный уровень должен декодировать поток принятых от уровня кодирования 8b-символов в символы данных, управляющие символы и управляющие коды (см. 6.5.2) и передавать их на уровень обмена.
6.5.4 Информационные и управляющие символы, а также управляющие коды GigaSpaceWire (см. 6.5.2) должны быть закодированы на символьном уровне перед передачей на уровень кодирования в соответствии с таблицей 12.
Таблица 12 - 8b-кодирование управляющих символов и кодов на символьном уровне GigaSpaceWire
Символ и управляющий код уровня обмена |
8b-символ (специальный символ) уровня кодирования |
Описание |
IDLE |
К28.0 |
Символ-заполнитель GigaSpaceWire |
Time-код, Interrupt-код, Interrupt-Acknowledge-код |
К28.2 + D |
Управляющие коды |
FCT-символ |
К28.3 |
Символ управления потоком данных |
ЕЕР-символ |
К28.4 |
Символ конца ошибочного пакета |
ЕОР-символ |
К28.6 |
Символ конца правильного пакета |
Comma-символ |
К28.5 |
Канальный символ GigaSpaceWire |
Символ данных |
D |
Символ данных пакета |
6.5.5 Кодирование информационных символов, управляющих символов и управляющих кодов GigaSpaceWire в соответствии с таблицей 12 проводят следующим образом:
- байты данных должны быть закодированы как символы данных: 8 битов, составляющие байт данных, должны быть записаны в 8 битов символа данных, управляющий флаг символа данных должен быть установлен в значение "D";
- ЕОР-символ должен быть закодирован специальным символом К28.6;
- ЕЕР-символ должен быть закодирован специальным символом К28.4;
- Time-код должен быть закодирован специальным символом К28.2, за которым следует символ данных;
- Interrupt-код и Interrupt_Acknowledge-код должны быть закодированы специальным символом К28.2 и следующим за ним соответствующим символом данных;
- FCT-символ GigaSpaceWire должен быть закодирован специальным кодом К28.3;
- Comma-символ и IDLE-символ на символьном уровне при кодировании остаются без изменений.
6.5.6 Передача Time-кода, Interrupt-кода или Interrupt_Acknowledge-кода с символьного уровня на уровень кодирования, каждый из которых состоит из двух символов, не должна быть прервана для передачи любого другого символа. Таким образом, за символом К28.2 должен следовать только символ данных, содержащий идентификатор и значение передаваемого кода.
6.5.7 8b-символы, полученные от уровня кодирования, должны быть декодированы в соответствии с таблицей 12 в символы данных, управляющие символы и коды GigaSpaceWire (см. 6.5.2).
6.5.8 Ошибка декодирования символьного уровня должна определяться в следующих случаях:
- принят специальный символ, отличающийся от символов К28.0, К28.2, К28.3, К28.4, К28.5, К28.6;
- вслед за специальным символом К28.2 принят символ данных, который не идентифицирует принятый управляющий код как Time-код, Interrupt-код или Interrupt_Acknowledge-код.
Примечание - Значение старших битов символа данных, которые приняты вслед за специальным символом К28.2, должно соответствовать значению идентификатора Time-кода, или Interrupt-кода, или Interrupt_Acknowledge-кода;
- вслед за специальным символом К28.2 принят любой из специальных символов: К28.0, К28.2, К28.3, К28.4, К28.5, К28.6.
6.5.9 Сообщение об ошибке декодирования символьного уровня должно быть передано на уровень обмена.
6.6 Уровень обмена
6.6.1 Уровень обмена интерфейса GigaSpaceWr выполняет функции интерфейса GigaSpaceWire, приведенные в перечислении а) 4.21.
6.6.2 Управление потоком данных на уровне обмена интерфейса GigaSpaceWire включает проведение следующих операций:
- арбитрирование потоков данных перед передачей по каналу;
- выравнивание частот передачи данных.
6.6.3 При формировании потока данных уровень обмена передающей стороны канала GigaSpaceWire должен выполнять следующие операции:
- принимать от вышележащего пакетного уровня символы данных и символы конца пакета SpaceWire, а от вышележащего сетевого уровня - Time-коды и коды распределенных прерываний;
- генерировать канальные символы: FCT-символы, Comma-символы и IDLE-символы;
- передавать на символьный уровень информационные символы данных и символы конца пакета SpaceWire, Time-коды и коды распределенных прерываний, а также канальные символы (FCT-символы, Comma-символы и IDLE-символы).
6.6.4 При формировании потока данных уровень обмена принимающей стороны канала GigaSpaceWire должен выполнять следующие операции:
- принимать от символьного уровня информационные символы и символы конца пакета SpaceWire, Time-коды и коды распределенных прерываний, а также канальные символы (FCT-символы, Comma-символы и IDLE-символы);
- извлекать из потока принятых символов канальные символы (FCT-символы, Comma-символы и IDLE-символы) и не передавать их вышележащим уровням;
- передавать байты данных и символы конца пакета SpaceWire на уровень пакетов, а Time-коды и коды распределенных прерываний - на сетевой уровень.
6.6.5 Управляющая информация уровня обмена
6.6.5.1 К управляющей информации уровня обмена относится информация о выполнении или невыполнении условий, перечисленных в 6.6.8.2.
6.6.5.2 На уровень обмена должна поступать информация об ошибке 8b-10b-декодера от уровня кодирования и информация об ошибке декодирования от символьного уровня.
6.6.6 Требования, предъявляемые к изменяемым параметрам уровня обмена и их значениям
6.6.6.1 В состав изменяемых параметров уровня обмена должны входить следующие параметры:
- Comma_Time - временной интервал между передачей двух символов;
- Disc_Detect - максимально допустимый временной интервал, по истечении которого определяют ошибку соединения;
- Reset_Time - временной интервал нахождения канального интерфейса в состоянии "Перезагрузка";
- wait_conn_time - максимально допустимый временной интервал установки соединения обеими сторонами канала;
- FCT_COUNT - количество информационных символов, которое кредитуется одним FCT-символом;
- MAX_FCT_COUNT - максимальное значение счетчика кредитования.
6.6.6.2 Изменяемые параметры уровня обмена, перечисленные в 6.6.6.1, должны быть одинаковыми на обеих сторонах канала.
6.6.6.3 Значение параметра Comma_Time должно быть не больше, чем время, необходимое на передачу 128 символов, но не меньше, чем время, необходимое на передачу 8 символов. Работа в диапазоне значений Comma_Time от 8 до 32 символов должна поддерживаться во всех реализациях.
6.6.6.4 Значение параметра Disc_Detect должно быть в два раза больше, чем значение параметра Comma_Time.
Примечание - После перехода уровня обмена из состояния Connecting в состояние "Рабочий режим" значение параметра Disc_Detect может быть увеличено.
6.6.6.5 Значение параметра Reset_Time должен быть в четыре раза больше значения параметра Comma_Time.
6.6.6.6 Значение параметра wait conn time должно быть не менее, чем в восемь раз больше значения параметра Comma_Time.
6.6.6.7 Значение параметра FCT_COUNT должно быть равно 32 в режиме механизма управления потоком GigaSpaceWire.
6.6.6.8 Значение параметра MAX_FCT_COUNT должно быть равно 512 в режиме механизма управления потоком GigaSpaceWire.
6.6.6.9 Значения изменяемых параметров уровня обмена должны быть одинаковыми на обеих сторонах канала.
6.6.7 Механизм управления потоком в каналах GigaSpaceWire, предназначенный для защиты от переполнения буфера приема хост-системы канального интерфейса и последующей потери принимаемых данных
6.6.7.1 С целью защиты от переполнения буфера приема хост-системы канального интерфейса и последующей потери принимаемых данных в каналах GigaSpaceWire должен поддерживаться механизм управления потоком данных посредством использования FCT-символов (см. 5.4.4).
6.6.7.2 Механизм управления потоком данных посредством использования FCT-символов должен работать в каналах GigaSpaceWire только в одном режиме, SpaceWire, или в двух режимах - SpaceWire и GigaSpaceWire.
6.6.7.3 Если используемый механизм управления потоком данных может работать в двух режимах - SpaceWire и GigaSpaceWire, то непосредственно после включения механизм управления потоком данных должен работать в режиме SpaceWire.
6.6.7.4 В нормальном режиме работы канального интерфейса GigaSpaceWire должен быть использован механизм управления потоком данных в каналах в одном из двух режимов - SpaceWire или GigaSpaceWire.
6.6.7.5 Режим SpaceWire механизма управления потоком данных посредством использования FCT-символов в каналах GigaSpaceWire реализуется путем применения (см. 5.5.4) параметров FCT_COUNT и MAX_FCT_COUNT со значениями, определенными в 5.5.5.
6.6.7.6 Режим GigaSpaceWire механизма управления потоком данных посредством использования FCT-символов в каналах GigaSpaceWire реализуется путем применения параметров FCT_COUNT и MAX_FCT_COUNT со значениями, определенными в 6.6.6.7 и 6.6.6.8 соответственно.
6.6.7.7 Рекомендуемый размер буфера кредитования для канального интерфейса GigaSpaceWire, поддерживающего режим управления потоком посредством использования FCT-символов, составляет 288 символов.
6.6.8 Машина состояний уровня обмена
6.6.8.1 Диаграмма состояний машины состояний уровня обмена показана на рисунке 21.
6.6.8.2 Следующие условия перехода канального интерфейса из одного состояния в другое, выполняемые программным или аппаратным способом, должны быть использованы на уровне обмена интерфейса GigaSpaceWire:
а) "передан Comma-символ" - условие, которое считают выполненным, если уровнем обмена GigaSpaceWire передан Comma-символ;
Рисунок 21 - Диаграмма состояний машины состояний канального интерфейса GigaSpaceWire на уровне обмена
Примечание - Управление сигнальным уровнем осуществляют только посредством команды PHY_Enabled. Таким образом, если машина состояний уровня обмена переходит в состояние "Перезагрузка", то сигнальный уровень сохраняет битовую синхронизацию и символьное выравнивание.
б) "передан FCT-символ" - условие, которое считают выполненным, если уровнем обмена GigaSpaceWire передан FCT-символ;
в) "после wait_conn_time" - условие, которое считают выполненным, если значение времени, отсчитываемое от начала запуска таймера "после wait_conn_time", превысило допустимое значение величины интервала установки соединения wait_conn_time (см. 6.6.5.1);
г) "после Reset_Time" - условие, которое считают выполненным, если значение времени, отсчитываемое от начала запуска таймера Reset_Time, превысило допустимое значение величины тайм-аута Reset_Time (см. 6.6.6.5);
д) "принят N-Char" - условие, которое считают выполненным, если на уровне обмена принят информационный символ;
е) "принят Comma-символ" - условие, которое считают выполненным, если на уровне обмена GigaSpaceWire принят Comma-символ от символьного уровня;
ж) "принят FCT-символ" - условие, которое считают выполненным, если на уровне обмена GigaSpaceWire в состоянии "Соединение установлено" принят первый FCT-символ от символьного уровня и выполнено условие по перечислению г) 6.6.8.2;
Нумерация подпунктов приводится в соответствии с источником
и) "принят Interrupt-код" - условие, которое считают выполненным, если на уровне обмена GigaSpaceWire принят Interrupt-код;
к) "принят Interrupt_Acknowledge-код" - условие, которое считают выполненным, если на уровне обмена GigaSpaceWire принят Interrupt_Acknowledge-код;
л) принят Time-код" - условие, которое считают выполненным, если на уровне обмена GigaSpaceWire принят Time-код;
м) "принят ШВ-код" - условие, которое считают выполненным, если выполнено одно из условий по перечислению и), или к), или л);
н) условия "Ошибка приемника", "Ошибка эластичного буфера", "Ошибка кредитования" означают, что на уровне обмена в текущем состоянии канального интерфейса GigaSpaceWire произошла ошибка приемника (см. 6.6.13), ошибка эластичного буфера (см. 6.6.16), ошибка кредитования (см. 6.6.18) соответственно;
Нумерация подпунктов приводится в соответствии с источником
п) "Канал включен" (Link_Enabled) - сторожевое условие, которое должно быть вычислено следующим образом:
"Канал включен" = (НЕ "Канал выключен") И ("Запуск канала" ИЛИ
("Автозапуск канала" И "Принят Comma-символ")),
(3)
где "Канал выключен" (Link_Disabled) - сторожевое условие выключения канала;
"Запуск канала" (Link_Start) - условие запуска канала;
"Автозапуск канала" (Auto_Start) - условие автоматического включения канала, которое может быть выполнено только после получения первого Comma-символа;
"Принят Comma-символ" - условие, которое считают выполненным, если на уровне обмена GigaSpaceWire принят Comma-символ.
6.6.8.3 В состоянии "Перезагрузка" машины состояний канального интерфейса GigaSpaceWire должны быть выполнены следующие требования:
а) передатчик и приемник должны быть перезагружены;
б) условия: "Принят Comma-символ", "Передан Comma-символ", "Принят FCT", "Передан FCT", "Принят NChar", "Принят Interrupt-код", "Принят Interrupt_Acknowledge-код", "Принят Time-код" - должны быть установлены в исходное значение, т.е. "не выполнено";
в) в состоянии "Перезагрузка" передатчик должен быть включен и передавать IDLE-символы, приемник должен быть выключен;
г) после снятия сигнала перезагрузки в состоянии машины состояний "Перезагрузка" должен быть запущен таймер Reset_Time;
д) по окончании временного интервала Reset_Time машина состояний должна выполнить безусловный переход из состояния "Перезагрузка" в состояние "Готовность";
е) вход в состояние "Перезагрузка" должен быть проведен или после перезагрузки системы, или после прекращения работы канала GigaSpaceWire по любой причине, или после обнаружения какой-либо ошибки во время инициализации канала GigaSpaceWire (см. 5.5.12) и после установки сигнала перезагрузки.
6.6.8.4 В состоянии "Готовность" должны быть выполнены следующие требования:
а) приемник и передатчик должны быть включены, передатчик должен передавать символы IDLE-символы;
б) может быть принят первый Comma-символ, и тогда условие "принят Comma" должно считаться выполненным;
в) если выполнено сторожевое условие [Канал включен], то машина состояний должна перейти из состояния "Готовность" в состояние "Запуск";
г) если произошло выполнение любого из таких условий, как "Ошибка приемника", или "Ошибка эластичного буфера", или "принят N-Char", или "принят FCT-символ", или принят любой из управляющих кодов GigaSpaceWire (Time-код, Interrupt-код или Interrupt_Ack-код), то машина состояний должна перейти в состояние "Перезагрузка".
6.6.8.5 В состоянии "Запуск" должны выполняться следующие требования:
а) при входе в состояние "Запуск" должен быть запущен таймер с тайм-аутом длительностью wait_conn_time;
б) приемник должен быть включен, передатчик должен быть включен и передавать Comma-символы и IDLE-символы на другую сторону канала;
в) если принят первый Comma-символ, то условие "принят Comma" должно считаться выполненным;
г) если выполнено условие "принят Comma", то машина состояний должна перейти в состояние "Соединение";
д) если произошло выполнение любого из таких условий, как "ошибка приемника", или "ошибка эластичного буфера", или "принят N-Char", или "принят Time-код, или "принят Interrupt-код", или "принят Interrupt_Ack-код", или "принят FCT-символ", или закончился тайм-аут wait_conn_time, то машина состояний должна перейти в состояние "Перезагрузка".
6.6.8.6 В состоянии "Соединение" должны быть выполнены следующие требования:
а) при входе в состояние "Соединение" должен быть запущен таймер с тайм-аутом длительностью wait_conn_time;
б) приемник и передатчик должны быть включены;
в) передатчик должен передавать Comma-символы и IDLE-символы;
г) если принят первый FCT-символ, то условие "принят FCT" должно считаться выполненным;
д) если передан первый Comma-символ, то условие "Передан_Comma" должно считаться выполненным;
е) если в состоянии "Соединение" выполнены оба условия, "принят первый FCT-символ" и "передан первый Comma-символ", то машина состояний должна осуществить переход из состояния "Соединение" в состояние "Соединение установлено";
ж) если произошло выполнение любого из таких условий, как "ошибка приемника", или "ошибка эластичного буфера", или "принят N-Char", или "принят Time-код", или "принят Interrupt-код", или "принят Interrupt_Ack-код", или закончился тайм-аут wait_conn_time, то машина состояний должна перейти из состояния "Соединение" в состояние "Перезагрузка".
6.6.8.7 В состоянии "Соединение установлено" должны быть выполнены следующие требования:
а) при входе в состояние "Соединение установлено" должен быть запущен таймер с тайм-аутом длительностью wait_conn_time;
б) в состоянии "Соединение установлено" приемник и передатчик должны быть включены, передатчик должен передавать FCT-символы, Comma-символы и IDLE-символы;
в) если в состоянии "Соединение установлено" выполнены оба условия, "принят FCT-символ" и "передан FCT-символ", то машина состояний должна осуществить переход из состояния "Соединение установлено" в состояние "Рабочий режим";
г) если машина состояний находится в состоянии "Соединение установлено" и выполнено любое из таких условий, как "ошибка приемника", или "ошибка эластичного буфера", или "принят N-Char", или "принят Time-код", или "принят Interrupt-код", или "принят Interrupt_Ack-код", или "после wait_conn_time", то машина состояний должна перейти из состояния "Соединение установлено" в состояние "Перезагрузка".
6.6.8.8 К состоянию "Рабочий режим" (Run) предъявляют следующие требования:
а) в состоянии "Рабочий режим" приемник и передатчик должны быть включены;
б) в состоянии "Рабочий режим" передатчик должен передавать информационные символы, канальные символы и коды GigaSpaceWire;
в) если машина состояний находится в состоянии "Рабочий режим" и выполнено любое из таких условий, как "ошибка приемника", или "ошибка эластичного буфера", или "ошибка кредитования", или установлен сигнал "канал не доступен", то машина состояний должна выполнить переход из состояния "Рабочий режим" в состояние "Перезагрузка".
6.6.9 Приоритеты управляющих символов и кодов при передаче в канал должны быть установлены следующим образом:
- Comma-символ - высший приоритет;
- Time-код;
- Interrupt_Acknowledge-код;
- Interrupt-код;
- FCT-символ;
- байт данных или символ конца пакета;
- IDLE-символ - низший приоритет.
6.6.10 Выравнивание частот и поддержания соединения на уровне обмена GigaSpaceWire
6.6.10.1 Стороны канала GigaSpaceWire должны функционировать на одинаковой номинальной частоте передачи данных.
6.6.10.2 Отклонение передающей частоты от номинальной частоты не должно превышать 0,01 %.
6.6.10.3 Выравнивание частот на уровне обмена канального интерфейса GigaSpaceWire следует производить посредством использования Comma-символов и эластичного буфера нижеприведенным образом:
- для компенсации допустимого расхождения между передающей и принимающей частотами должен быть использован эластичный буфер;
- для выравнивания возможного расхождения частот передатчик должен периодически вставлять Comma-символы в поток передаваемых данных;
- интервал между двумя последовательно переданными Comma-символами не должен превышать 128 символов;
- если при приеме Comma-символа эластичный буфер заполнен более чем наполовину, то данный Comma-символ не должен быть записан в эластичный буфер;
- если при чтении символа Comma из эластичного буфера эластичный буфер заполнен менее чем наполовину, то данный Comma-символ не должен быть считан из эластичного буфера дважды.
6.6.11 Поддержание соединения на уровне обмена канального интерфейса GigaSpaceWire должно быть проведено посредством использования Comma-символов следующим образом:
- для поддержания соединения на уровне обмена передатчики обеих сторон должны периодически передавать Comma-символы в канал;
- если приемник одной из сторон не принял Comma-символ в течение интервала времени Disc_Detect, то это событие должно быть интерпретировано как обнаружение ошибки соединения уровня обмена этой стороны;
- после включения канала длительность интервала времени Disc_Detect должна составлять 65 символов.
Примечание - При выполнении этого требования значение величины максимально допустимого интервала времени между двумя Comma-символами, последовательно переданными в канал после включения канала, не может быть более 64 символов;
- после перехода уровня обмена в состояние "Рабочий режим" длительность интервала времени Disc_Detect может быть увеличена;
- длительность интервала времени Disc_Detect в состоянии "Рабочий режим" должна составлять 129 символов.
Примечание - Это соответствует максимально допустимому интервалу между двумя последовательно переданными Comma-символами, который составляет 128 символов;
- если уровень обмена перешел в состояние "Перезагрузка", Comma-символ не должен быть передан в канал в состояниях "Перезагрузка" или "Готовность".
Примечание - Это позволит удаленной стороне канала зафиксировать ошибку соединения и, в свою очередь, перейти в состояние "Перезагрузка".
6.6.12 На уровне обмена могут иметь место следующие ошибки:
- ошибка приемника (RX_Error);
- ошибка эластичного буфера;
- ошибка последовательности символов;
- ошибка кредитования.
6.6.13 Ошибка приемника - это условное обозначение ошибки соединения или ошибки декодирования.
6.6.14 Ошибка соединения
6.6.14.1 Для поддержания соединения на уровне обмена передатчик должен периодически передавать в канал Comma-символы.
6.6.14.2 Если приемник включен и условие "Принят comma" выполнено, но Comma-символ не был принят в течение периода разъединения Disc_Detect уровня обмена, то должна быть обнаружена ошибка соединения уровня обмена.
Примечание - Ошибка соединения уровня обмена возникает, например, когда удаленная сторона канала перешла в состояние "Перезагрузка".
6.6.14.3 При обнаружении ошибки соединения машина состояний уровня обмена должна перейти в состояние "Перезагрузка".
6.6.14.4 Если ошибка соединения произошла в рабочем состоянии (Run), то о ней должно быть сообщено на сетевой уровень как об ошибке канала.
6.6.15 Ошибка декодирования
6.6.15.1 Ошибка декодирования - это условное обозначение ошибки 8b-10b-декодера или ошибки декодирования символьного уровня.
6.6.15.2 Если приемник включен и установлено условие "Принят Comma", то ошибка декодирования должна быть обработана уровнем обмена.
6.6.15.3 При обнаружении ошибки декодирования машина состояний уровня обмена должна перейти в состояние "Перезагрузка".
6.6.15.4 Если ошибка декодирования произошла в состоянии Run, то о ней должно быть сообщено на сетевой уровень как об ошибке канала.
6.6.16
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Национальный стандарт РФ ГОСТ Р 70020-2022 "Космическая техника. Интерфейсы и протоколы высокоскоростного межприборного информационного обмена и комплексирования бортовых систем космических аппаратов. SpaceWire-RUS" (утв. и введен в действие приказом Федерального агентства по техническому регулированию и метрологии от 17 февраля 2022 г. N 80-ст)
Текст ГОСТа приводится по официальному изданию Российского института стандартизации, Москва, 2022 г.
Дата введения - 1 июня 2022 г.