PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Шина IEEE 1394 — FireWire

Основная информация

Конфигурирование шины

Конфигурирование шины происходит автоматически при включении питания, при подключении/отключении устройств, а также по инициативе какого-либо узла. Процесс конфигурирования выполняется только с участием уровней PHY — вышестоящие компоненты могут быть отключены. Процесс состоит из трех последовательных этапов:

  • сброс (Bus Reset) — приведение всех узлов в исходное (несконфигурированное) состояние;
  • идентификация дерева — построение иерархической структуры шины;
  • самоидентификация узлов — назначение физических адресов и сообщение ими своих свойств, относящихся к шине. На этом этапе выбирается (не обязательно) и узел-диспетчер изохронных ресурсов.

После этого шина переходит в состояние Arbitration, в котором она готова к выполнению асинхронных транзакций и изохронных передач. Теперь может быть выбран диспетчер шины, который должен подать команду на включение LINK-уровня всех узлов (с учетом бюджета мощности питания от шины). При отсутствии диспетчера шины эту задачу исполнит диспетчер изохронных ресурсов.

С этого момента начинается регулярная работа в плане асинхронных транзакций. Для начала изохронного вещания узлы должны получить у диспетчера изохронные ресурсы — номер канала и доступную полосу вещания. Сброс на шине кратковременно прерывает выполнение изохронных передач, но сразу по завершении самоидентификации узлов (переходу в состояние Arbitration) узлы, имевшие изохронные ресурсы до сброса, могут начинать изохронные передачи.

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

Идентификация дерева

Изначально (по включению питания или сбросу) шина (совокупность соединенных узлов) имеет плоскую (неоформленную) структуру (рисунок а). В ходе инициализации первым делом автоматически (взаимодействием только уровней PHY) выполняется идентификация дерева (tree identification), в результате чего шина обретает форму перевернутого дерева (рисунок б). В этом дереве имеется:

  • корень (root), являющийся «верховным арбитром». Корень выбирается автоматически в зависимости от топологии шины; при необходимости стать корнем программно можно заставить любой узел;
  • листья (leaf) — конечные узлы, подключенные к шине только одним портом;
  • ветки (branch) — узлы, подключенные несколькими портами и находящиеся в иерархии между корнем и листьями.

И корень и ветки являются промежуточными узлами, обеспечивающими трансляцию трафика. В первоначальной (плоской) структуре все порты узлов равноправны. После идентификации дерева порты дифференцируются в зависимости от их направленности в дереве:

  • «родительский», или p-порт (parent port), направлен в сторону корня (вверх);
  • «дочерний», или c-порт (child port), направлен в сторону листьев (вниз).

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

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

Самоидентификация узлов

После идентификации дерева выполняется самоидентификация узлов (Self Identification), в результате которой все узлы шины получают уникальные адреса — физические идентификаторы (phy_ID). В процессе самоидентификации с помощью арбитража каждый узел последовательно получает право на передачу широковещательного пакета самоидентификации. В этом пакете содержится идентификатор узла, число его портов, их состояние и назначение, скоростные возможности устройства и некоторые другие параметры. Устройство назначает себе идентификатор само, исходя из числа ранее «услышанных» им пакетов самоидентификации от других устройств. Первое устройство, которому предоставили право на передачу, получает phy_ID = 0; последним самоидентифицируется корень — у него будет максимальное значение phy_ID (не превышающее 62). После посылки пакета самоидентификации узел обменивается со своим партнером-«родителем» сигналами, идентифицирующими максимальную скорость работы. Это позволяет непосредственным партнерам попарно согласовать свои скоростные возможности.

По информации, собранной из всех пакетов самоидентификации, любой узел может построить карту топологии сети (topology map), а на ее основе и карту достижимых скоростей обмена (speed map) между любой парой узлов. Эти карты должен строить и публиковать узел-диспетчер (менеджер) шины, предоставляя доступ к ним любым узлам. Кроме того, информация пакетов самоидентификации используется для управления питанием от шины и оптимизации трафика.

Спецификации IEEE 1394

Стандарт для высокопроизводительной последовательной шины (High Performance Serial Bus), получивший официальное название IEEE 1394, был принят в 1995 году. Стандарт основан на шине FireWire, используемой фирмой Apple Computer еще с 1986 года в качестве дешевой альтернативы SCSI в своих компьютерах. Название FireWire («огненный провод») теперь применяется и к реализациям IEEE 1394, оно сосуществует с кратким обозначением: «1394». Другое название того же интерфейса — iLink, а иногда и Digital Link — используется фирмой Sony применительно к устройствам бытовой электроники. MultiMedia Connection — имя, используемое в логотипе 1394 High Performance Serial Bus Trade Association (1394TA).

К устройствам с интерфейсом IEEE 1394 относится большое количество спецификаций, описывающих не только собственно интерфейс последовательной шины, но и использование этой шины для транспортировки прикладных данных разного назначения, наборы команд и форматы данных. Основной источник информации по технологии, стандартам и продуктам — сайт ассоциации High Performance Serial Bus Trade Association (http://www.1394ta.org). Спецификация IEEE 1394 официально доступна через http://www.ieee.org (платно).

Документ IEEE 1394-1995 Standard for a High Performance Serial Bus определяет архитектуру шины, основанную на трехуровневой модели, и протоколы, обеспечивающие автоматическое конфигурирование, арбитраж и передачу изохронного и асинхронного трафика. В стандарте определены три возможные скорости передачи сигналов по кабелям: 98,304, 196,608 и 393,216 Мбит/с, которые округляют до 100, 200 и 400 Мбит/с и обозначаются как S100, S200 и S400 соответственно. Стандартизованы кабель и 6-контактный разъем, позволяющий передавать сигналы и питание.

В дополнении IEEE 1394a-2000 IEEE Standard for a High Performance Serial bus (Supplement) введен ряд усовершенствований:

  • приняты меры для сокращения потерь времени при подключении устройств;
  • введены механизмы ускоренного арбитража;
  • разрешена конкатенация (соединение) пакетов, передаваемых на разных скоростях;
  • расширены средства управления энергопотреблением и введена возможность приостановки и запрета портов;
  • введена возможность общения с регистрами PHY удаленного узла;
  • введен миниатюрный 4-контактный разъем (без питающих линий);
  • утвержден стандартный интерфейс PHY-LINK и возможная схема гальванической развязки в этом интерфейсе;
  • уточнены исходные спецификации ради обеспечения более высокого уровня совместимости реализаций стандарта.

Новых скоростей в этом стандарте не появилось; изменения вводились с учетом обеспечения обратной совместимости с устройствами, отвечающими исходному стандарту.

Дополнения IEEE 1394b (2002 год) в основном касаются повышения скорости и дальности передачи:

  • введены скорости S800, S1600 и архитектурная поддержка S3200;
  • введен новый (для 1394) метод сигнализации и соответствующий бета-режим работы портов. Для передачи используется пара встречных однонаправленных линий и кодирование 8B/10B, широко используемое в современных коммуникационных технологиях;
  • введен новый метод арбитража (BOSS), повышающий эффективность использования пропускной способности шины за счет исключения простоев шины (зазоров арбитража);
  • введены новые типы среды передачи для бета-режима:
  1. пара пластиковых или стеклянных оптических волокон для расстояний до 50 или до 100 м;
  2. кабель UTP-5 (используются 2 пары) с разъемами RJ-45 для расстояний до 100 м с трансформаторной гальванической развязкой.
  • Введен миниатюрный 9-контактный разъем для коротких дистанций, позволяющий передавать данные со скоростью до 3,2 Гбит/с и подавать питание по шине.

Совместимость с 1394 и 1394a обеспечивается «двуязычными» уровнями PHY, способными работать с разными методами сигнализации на своих разных портах. При этом возможно построение гибридной шины, состоящей из одного или нескольких «облаков» узлов с бета-сигнализацией, связанных друг с другом фрагментами с традиционной сигнализацией.

Проект стандарта P1394.1 относится к сетям, состоящим из нескольких шин IEEE 1394. Основа построения сети — двухпортовый мост, способный передавать трафик между соединяемыми шинами. При этом мост для процессов сброса и автоконфигурирования, прерывающих передачу полезного трафика на длительное время, изолирует шины друг от друга. Возможны и многопортовые мосты, которые с протокольной точки зрения являются комбинацией двухпортовых.

В основу IEEE 1394 положен протокол запросов-ответов архитектуры регистров управления и состояния для микрокомпьютерных шин, описанной в стандарте ISO/IEC 13213:1994 Control and Status Register Architecture for Microcomputer Busses (CSR-архитектура). Ревизия этого стандарта предполагается в проекте P1212r.

Ревизия касается возможностей бесконфликтного расширения форматов содержимого памяти конфигурации, а также регистров CSR. Планируется привести спецификацию CSR в соответствие с практикой ее использования.

К управлению энергопотреблением IEEE 1394 относится спецификация 1394 TA Power Spec, состоящая из трех частей:

  • Part 1: Cable Power Distribution — описание механизма подачи питания через кабельную шину, форматы структур данных и регистров, описывающих потребности в питании и возможности поставки питания на шину;
  • Part 2: Suspend/Resume — описание механизмов приостановки и возобновления работы отдельных портов и частей кабельной шины;
  • Part 3: Power State Management — описание четырех возможных уровней потребления узла и его блоков и механизмов управления сменой уровней.