Firewire ieee 1394 история создания. FireWire или чем ещё помогла цифровому миру компания Apple

Введение

В последнее время, в связи с бурным ростом возможностей компьютерной обработки видеоизображений в компьютерном мире возникла острейшая нужда в высокоскоростной шине, по которой было бы возможно передавать значительные потоки данных, и кроме этого, требовала всего нескольких проводов (т.е. была бы последовательной), позволяла бы строить "деревья", на которые можно было бы "нанизывать" различные периферийные устройства. По скоростным характеристикам из существующих шин, допускающих подключение внешних устройств к компьютеру, подходит только SCSI, но она не удовлетворяет многим из условий, описанных выше.
Во-первых, для высокоскоростной передачи данных необходим вариант Ultra Wide SCSI, который требует разъемов с большим числом контактов, что делает практически невозможным размещение такого разъема на, например, цифровой видеокамере. Во-вторых, топология SCSI шины предпологает только последовательное подключение устройств к шине, что приводит как к необходимости иметь на внешнем устройстве два разъема и так и иметь в обязательном порядке терминатор для установки его на последнем разъеме в цепи. В-третьих, шина SCSI не предусматривает цепей питания для периферийных устройств и это приводит к обязательной необходимости внешнего источника питания для каждого из периферийных устройств. В-четвертых, шина SCSI не предусматривает "горячего" (т.е. без быключения питания и перезагрузки компьютера) подключения/отключения устройств на шине.
Интерфейс USB, который очень подходит конструктивно (маленький разъем, есть цепи питания для периферийных устройств), не имеет необходимой для переноса больших потоков данных пропускной способности.
Именно из-за ограничений имеющихся шин интерфейс IEEE-1394 (FireWire) стал широко внедряться в компьютерной индустрии в последние годы уходящего века. Так как название FireWire (огненный провод) принадлежит фирме Apple Computers и может использоваться только для описания изделий Apple или с ее разрешения, правильное название - IEEE-1394. Некоторые компании придумали собственное зарегистрированное название, например у Sony - iLink. Пока основная сфера применения IEEE-1394 - поддержка обмена данными между компьютером и видеокамерами и видеомагнитофонами; DV стандарта. В связи с тем, что DV видеокамеры выпускаются во все больших и больших количествах и при непрерывном падении стоимости, некоторые производители материнских плат (В частности, фирма ASUSTeK Computers) уже объявили о выходе плат со встроенным контроллером IEEE-1394.
Новая сфера применения, получившая основное развитие с начала 2000 года - устройства хранения информации с интерфейсом IEEE-1394. Начали выпускаться внешние box"ы для установки в них любых IDE/ATAPI устройств с внешним интерфейсом IEEE-1394, питанием по этому же интерфейсу и возможностью "горячего" подключения к компьютеру. В первую очередь такие устройства находят себе применение для обмена видеоинформацией, так как на один IDE жесткий диск сейчас возможно записать до 3 часов видео DV формата и, как правило, в компьютерах, предназначенных для обработки цифрового видео, есть контроллер интерфейса IEEE-1394. Фирма Fujitsu также выпустила аналогичные накопители на магнитооптических дисках емкостью до 1.3 GBytes.

Технические характеристики

Основные характеристики шины можно свести к следующим показателям:

  • скорость передачи данных до 400 Mbits/s с развитием шины в будущем до скоростей в 800 и более Mbits/s
  • 16-ти разрядный адрес позволяет адресовать до 64K узлов на шине
  • предельная теоретическая длина шины 224 метра
  • "горячее" подключение/отключение без потери данных
  • автоматическое конфигурирование, аналогичное Plug&Play
  • произвольная топология шины - по аналогии с локальными сетями может использоваться как "звезда" так и общая шина (только в виде цепочки, в отличие от сети на коаксиальном кабеле)
  • никакие терминаторы не требуются
  • возможность обмена с гарантированной пропускной способностью, что крайне необходимо для передачи видеоизображений

Топология шины

Топология IEEE-1394 позволяет как древовидную, так и цепочечную архитектуру, а также комбинацию из того и другого. Поэтому легко строить любые варианты подключения различных устройств к шине. Стандарт предусматривает архитектурное разделение шины на 2 основных блока - кабельная часть и контроллер (контроллеры). Так как контроллеров может быть несколько, эту часть также называют объединительной (backplane - дословно задний план, кросс-плата и т.п.).
Адрес узла на "дереве" 16-ти разрядный, что позволяет адресовать до 64К узлов. К каждому узлу может быть подключено до 16-ти конечных устройств. На объединительной панели (backplane) может быть подключено до 63 узлов к одному мосту (bridge) шины. Так как под идентификатор номера шины (моста) отведено 10 разрядов, то общее количество узлов и составляет 64K.
Каждый узел обычно предусматривает подключение 3-х устройств, хотя собственно стандарт разрешает подключение до 27 устройств. Устройства могут быть подключены через стандартные кабели длиной до 4.2 метра.

Пример топологии IEEE-1394

Физические адреса (ID) устройствам назначаются при подаче питания на контроллер шины и устройства, подключенные к ней, после общего сброса шины, а также при "горячем" подключении устройства к шине. Адреса присваиваются в порядке последовательности обнаружения и/или подключения устройств. Никакая установка перемычек или переключателей на самих устройствах не требуется.
Стандарт на кабельную часть предусматривает три скорости передачи данных по шине - 98.304, 196.608 и 393.216 Mbits/s. Обычно эти значения в различных документах огругляют до 100, 200 и 400 Mbits/s, используя для краткости обозначения S100, S200 и S400.

Благодаря применению размножителей, репитеров и т.п. устройств топология IEEE-1394 может быть достаточно сложной, хотя в 90% случаев ее применения наверняка столь сложная топология не потребуется.

Совместимость

Для удобства программирования и совместимости устройств на IEEE-1394 был разработан стандарт, названный Open Host Controller Interface (OHCI). Он предъявляет определенные требования к регистрам контроллера IEEE-1394 и их отображению в памяти. Кроме этого, OHCI совместимый контроллер должен удовлетворять требованиям по управлению энергопотреблением в соответствии со спецификацией ACPI.
Microsoft в своих операционных системах Windows 98 Second Edition и Windows 2000 поддерживает только OHCI совместимые контроллеры IEEE-1394. Все остальные контроллеры (например, от Adaptec) должны сопровождаться соответствующими драйверами и совместимость таких устройств с драйверами жестких дисков операционной системы, например, не гарантируется.

Кабели и разъемы

Стандартный кабель для IEEE-1394 состоит из 2 витых пар передачи сигналов шины, двух проводов питания и все это заключено в экранированную оболочку. Провода питания рассчитаны на ток до полутора ампер и напряжение от 8 до 40 вольт. На рисунке ниже показан один из вариантов кабеля IEEE-1394.

Кабели и розетки для подключения периферийных устройств существуют в нескольких вариантах, в зависимости от требуемых параметров:

Кабель на 6/6 проводов, поддержка скорости передачи до 400 Mbits/s. Напряжение питания до 40 V при токе до 1.5 А. Длина от 0.7 м до 4.5 м.
Кабель на 6/4 проводов, поддержка скорости передачи до 100 Mbits/s. Напряжение питания до 5 V при токе до 0.5 А. Длина от 1 м до 4.5 м.
Кабель на 4 провода, поддержка скорости передачи до 100 Mbits/s. Напряжение питания до 5 V при токе до 0.5 А. Длина от 1 м до 4.5 м.
Розетка на 4 провода, поддержка скорости передачи до 400 Mbits/s. Напряжение питания до 5 V при токе до 0.5 А.
Розетка на 6 проводов, поддержка скорости передачи до 400 Mbits/s. Напряжение питания до 40 V при токе до 1.5 А.

Нашел разъем IEEE 1394 :). На протяжении многих лет я даже не задумывался о том, для чего он нужен. Большинство других пользователей, я уверен, что даже при наличии этого разъема, никогда не обращали на него внимания. А ведь в быту этот разъем очень полезен.

Последовательная высокоскоростная шина IEEE 1394 (FireWire , i-Link ) предназначена для обмена цифровой информацией между каким либо электронным устройством и компьютером.

Чаще этот обмен осуществляется между кассетной видеокамерой и ПК . Другими словами этот разъем поможет перевести данные с miniDV-кассеты в ваш компьютер. Такие разъемы бывают не только на ноутбуках но и на стационарных компьютерах. Поэтому перед тем как задуматься о покупке платы с данным разъемом нужно тщательно просмотреть ваш ПК на наличие данного разъема. У меня вот как оказалось на ноутбуке есть такой разъем.
Я думаю что не у меня одного дома завалялась какая нибудь кассетная видеокамера и кассеты к ней, с интересным видео:)
Обычно подобное копирование кассеты занимает ровно столько по времени, сколько на ней есть. То есть к примеру на кассете есть видео продолжительностью 40 минут, вот примерно столько и будет копироваться данная информация на компьютер.
Кроме самого разъема, камеры и кассеты, вам так же понадобится кабель, с одной стороны которого шестиконтактный разъем, а на другом - четырехконтактный. Такой кабель нужен для подключения камеры к плате на стационарном компьютере. Если же вы хотите подключить камеру к ноутбуку то здесь разъемы на обеих устройствах совершенно одинаковые — 4х4 pin.

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

Технические подробности

Уже почти 20 лет назад, фирма Sony показала свои первые промышленные модели mini-DV видеокамер DCR-XV700 и DCR-XV1000, и именно в них можно было встретить интерфейс IEEE 1394. После этого разъем стал своего рода стандартом для любой видеокамеры. Конечно разработан интерфейс был гораздо раньше.
Изначально высокоскоростной последовательный интерфейс IEEE 1394 разрабатывался компанией Apple как скоростной вариант SCSI. Чуть позже в Apple решили открыть стандарт и призвать к сотрудничеству заинтересованные фирмы. В следствии чего в 1990 году вышло техническое описание этой шины в виде стандарта IEEE 1394, который расшифровывается как Institute of Electrical and Electronic Engineers 1394(стандарт института инженеров по электротехнике и электронике 1394) .
Скорость передачи данных — 100, 200, 400 Мбит/c, при этом длина провода должна не превышать 4,5 метра. Максимальное количество устройств — 63. IEEE 1394 похож на USB тем, что может без выключения переконфигурировать аппаратные средства компьютера.
Чуть выше я говорил о том что существует несколько видов кабелей(проводов) и разъемов:

  • шестиконтактный разъем IEEE 1394, позволяет не только передавать данные но и подавать на подключаемое устройство питание, общий ток при этом не более 1,5А, а напряжение от 8 до 40 вольт. Именно поэтому, выше я рекомендовал отключать устройство при подключении к ПК.
  • четырехконтактный разъем IEEE 1394, дает возможность только передавать данные, при это нужно не забыть позаботиться о внешнем источнике питания

Разные компании называют этот стандарт по разному:

  • Apple - FireWire
  • Sony - i.LINK
  • Yamaha - mLAN
  • TI - Lynx
  • Creative - SB1394

Поэтому можно встретить различные описания этого разъема в интернете. Но все они работают под единым стандартом IEEE 1394.
Существуют различные вариации данного стандарта, в следствии чего варьируется и скорость передачи данных:

  • IEEE 1394/1394a — 100, 200 и 400 Мбит/с
  • IEEE 1394b — 100, 200, 400, 800 и 1600 Мбит/с
  • S3200 — 100, 200, 400, 800, 1600 и 3200 Мбит/с

Высокая скорость интерфейса передачи данных позволяет обрабатывать различные мультимедийные данные в реальном времени.
Устройства не требующие большой мощности для питания, могут использоваться с интерфейсом без дополнительного блока питания. И это возможно благодаря питанию на самой шине.
Горячее подключение - возможность переконфигурировать шину без выключения компьютера.
Из за гибкой топологии, устройства достаточно равноправны и могут подключаться друг к другу, даже без помощи компьютера.
Топология IEEE-1394 позволяет как древовидную, так и цепочечную архитектуру, а также комбинацию из того и другого. По стандарту, разделить шину архитектурно, можно двумя основными блоками — контроллер(контроллеры) и кабельная часть. Из за того что контроллер может быть не один, часть с контроллерами часто называют объединительной(backplane). Адрес узла на «дереве» 16-ти разрядный, что позволяет адресовать до 64К узлов. По 16 конечных устройств на каждый узел. К одному мосту шины (bridge) на backplane панели может быть подключено до 63 узлов. Так как под идентификатор номера шины (моста) отведено 10 разрядов, то общее количество узлов и составляет 64K.
Стандарт разрешат подключение до 27 устройств, но каждый узел может подключить 3 устройства. ID (физический адрес) назначается устройству при: горячее подключение устройства к шине, общий сброс шины, подача питания на контроллер шины и подключенного устройства. Адреса выдаются в порядке обнаружения устройства. Переключение перемычек как на HDD при этом не требуется. Если применять размножители и репитеры то можно выстроить достаточно сложную топологию IEEE 1394 . В большинстве случаев такая сложная топология попросту не нужна.
IEEE 1394 может использоваться как для создания компьютерной сети, так и для подключения различных мультимедийных(аудио,видео) устройств. Можно даже подключить принтер или сканер к примеру. На самом деле вариантов гораздо больше. Но так вышло что наибольшую популярность получил данный способ подключения, именно при подключении видеокамер. Об этом я говорил выше.
Теоретически длина кабеля может достигать 224 метра. Стандарт говорит о следующих цифрах:

  • IEEE 1394a — 4.5 м
  • IEEE 1394b — 100 м

Главной особенностью данного интерфейса является — гарантированная полоса пропуская. Что очень важно при работе с аудио и видеоматериалом. То есть не зависимо от подключенных устройств и их нагрузки на шину, всегда можно организовать так называемый «коридор» между компьютером и видеокамерой.
Кабель представляет из себя следующее: экранированная оболочка, 2 витые пары для передачи сигналов шины и 2 провода питания. Разъемы IEEE 1394 можно разделить на два типа. Первый тип отдает питание устройству(6-и контактный разъем), а второй соответственно не отдает(4-х контактный разъем).
При составлении материлов брал информацию от сюда:

IEEE 1394

IEEE 1394 Interface
Тип Последовательная связь
История
Разработчик Apple Computer (сейчас Apple, Inc.)
Разработано 1995
Производитель Разнообразный
Произведено 1995–н.в
Спецификации
Длина 4.5 м максимально
Ширина 1
Подключение на ходу Да
Внешнее Да
Макс. напряжение 30 В
Макс. ток 1.5 A
Сигнал данных Да
Полоса пропускания 400–3200 Мбит /с (50–400 Мбайт/с)
Выводы 4, 6, 9

IEEE 1394 (FireWire, i-Link) - последовательная высокоскоростная шина , предназначенная для обмена цифровой информацией между компьютером и другими электронными устройствами.

Различные компании продвигают стандарт под своими торговыми марками:

  • Apple - FireWire
  • Sony - i.LINK
  • Yamaha - mLAN
  • - Lynx
  • Creative - SB1394

История

  • в 1986 году членами Комитета по Стандартам Микрокомпьютеров (Microcomputer Standards Committee) принято решение объединить существовавшие в то время различные варианты последовательной шины (Serial Bus)
  • в 1992 году разработкой интерфейса занялась Apple
  • в 1995 году принят стандарт IEEE 1394

Преимущества

  • Горячее подключение - возможность переконфигурировать шину без выключения компьютера
  • Различная скорость передачи данных - 100, 200 и 400 Мбит/с в стандарте IEEE 1394/1394a, дополнительно 800 и 1600 Мбит/с в стандарте IEEE 1394b и 3200 Мбит/с в спецификации S3200.
  • Гибкая топология - равноправие устройств, допускающее различные конфигурации (возможность «общения» устройств без компьютера)
  • Высокая скорость - возможность обработки мультимедиа-сигнала в реальном времени
  • Поддержка изохронного трафика
  • Поддержка атомарных операций - сравнение/обмен, атомарное увеличение (операции семейства LOCK - compare/swap, fetch/add и т. д.).
  • Открытая архитектура - отсутствие необходимости использования специального программного обеспечения
  • Наличие питания прямо на шине (маломощные устройства могут обходиться без собственных блоков питания). До полутора ампер и напряжение от 8 до 40 вольт.
  • Подключение до 63 устройств.

Шина IEEE 1394 может использоваться для:

  • Создания компьютерной сети .
  • Подключения аудио и видео мультимедийных устройств.
  • Подключения принтеров и сканеров .
  • Подключения жёстких дисков , массивов RAID .

Основные сведения

Кабель представляет собой 2 витые пары - А и B, распаянные как A к B, а на другой стороне кабеля как B к A. Также возможен необязательный проводник питания.

Устройство может иметь до 4 портов (разъёмов). В одной топологии может быть до 64 устройств. Максимальная длина пути в топологии - 16. Топология древовидная, замкнутые петли не допускаются.

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

Во время раздачи номеров по шине идет трафик пакетов, каждый из которых содержит в себе количество портов на устройстве, а также ориентацию каждого порта - не подключен/к главному/от главного, а также максимальную скорость каждой связи (2 порта и отрезок кабеля). Контроллер 1394 принимает эти пакеты, после чего стек драйверов строит карту топологии (связей между устройствами) и скоростей (наихудшая скорость на пути от контроллера до устройства).

Операции шины делятся на асинхронные и изохронные.

Асинхронные операции - это запись/чтение 32-битного слова, блока слов, а также атомарные операции. Асинхронные операции используют 24-битные адреса в пределах каждого устройства и 16-битные номера устройств (поддержка межшинных мостов). Некоторые адреса зарезервированы под главнейшие управляющие регистры устройств. Асинхронные операции поддерживают двухфазное исполнение - запрос, промежуточный ответ, потом позже окончательный ответ.

Изохронные операции - это передача пакетов данных в ритме, строго приуроченном к ритму 8 КГц, задаваемому ведущим устройством шины путем инициации транзакций «запись в регистр текущего времени». Вместо адресов в изохронном трафике используются номера каналов от 0 до 31. Подтверждений не предусмотрено, изохронные операции есть одностороннее вещание.

Изохронные операции требует выделения изохронных ресурсов - номера канала и полосы пропускания. Это делается атомарной асинхронной транзакцией на некие стандартные адреса одного из устройств шины, избранного как «менеджер изохронных ресурсов».

Помимо кабельной реализации шины, в стандарте описана и наплатная (реализации неизвестны).

Использование

Сеть поверх 1394

Около 1998 г. содружество компаний, в том числе Microsoft, развивали идею обязательности 1394 для любого компьютера и использования 1394 внутри корпуса, а не только вне него. Существовали даже карты контроллеров с одним из разъемов, направленным внутрь корпуса. Также существовала идея Device Bay, то есть отсека для устройства со встроенным в отсек разъемом 1394 и поддержкой горячей замены.

Все это прослеживается в материалах Microsoft той поры, предназначенных для разработчиков компьютеров. Можно сделать вывод, что 1394 предлагали как замену ATA, то есть на роль, ныне выполняемую SATA.

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

MiniDV видеокамеры

Исторически первое использование шины. Используется и по сей день как средство захвата фильмов с MiniDV в файлы. Возможен и захват с камеры на камеру.

Видеосигнал, идущий по 1394, идет практически в том же формате, что и хранится на видеоленте. Это упрощает камеру, снижая требования к ней по наличию памяти.

Использование 1394 c miniDV положило конец проприетарным платам видеозахвата.

Отладчики

Интересным свойством контроллеров 1394 является способность читать и писать произвольные адреса памяти со стороны шины без использования процессора и ПО. Это проистекает из богатого набора асинхронных транзакций 1394, а также из ее структуры адресации.

Эта возможность чтения и редактирования памяти через 1394 без помощи процессора послужила причиной использования 1394 в двухмашинном отладчике ядра Windows - WinDbg. Такое использование существенно быстрее последовательного порта, но требует ОС не ниже Windows XP с обеих сторон. Также возможность используется в отладчиках для других ОС, например firescope для linux.

Организация устройств IEEE 1394

Устройства IEEE 1394 организованы по трехуровневой схеме - Transaction, Link и Physical, соответствующие трем нижним уровням модели OSI .

Transaction Layer - маршрутизация потоков данных с поддержкой асинхронного протокола записи-чтения.

Link Layer - формирует пакеты данных и обеспечивает их доставку.

Physical Layer - преобразование цифровой информации в аналоговую для передачи и наоборот, контроль уровня сигнала на шине, управление доступом к шине.

IEEE 1394a

В 2000 году был утверждён стандарт IEEE 1394а. Был проведён ряд усовершенствований, что повысило совместимость устройств.

Было введено время ожидания 1/3 секунды на сброс шины, пока не закончится переходный процесс установки надёжного подсоединения или отсоединения устройства.

IEEE 1394b

IEEE 1394c

Появившийся в 2006 году стандарт 1394c позволяет использовать кабель Cat 5e от Ethernet . Возможно использовать параллельно с Gigabit Ethernet , то есть использовать две логические и друг от друга не зависящие сети на одном кабеле. Максимальная заявленная длина - 100 м, Максимальная скорость соответствует S800 - 800 Мбит/с.

Разъёмы

Существуют четыре (до IEEE 1394c - три) вида разъёмов для FireWire:

  • 4pin (IEEE 1394a без питания) стоит на ноутбуках и видеокамерах. Витая пара (два контакта) для передачи сигнала (информации) и вторая витая пара (др. два контакта) - для приема.
  • 6pin (IEEE 1394a). Дополнительно два провода для питания.
  • 9pin (IEEE 1394b). Дополнительно два контакта для экранов витых пар (приёма и передачи информации). И еще один контакт - резерв.
  • RJ-45 (IEEE 1394c).

См. также

Примечания

Ссылки

  • Интерфейс IEEE 1394 По материалам курса Kramer AV Academy - Архив журнала «625» № 7/2005 картинки, грамотно показаны как функциональные схемы, дерево узлов, схемы арбитража, так и разрез кабеля и смысл переходников.
  • 1394 Trade Association (англ.)
  • Рабочая группа IEEE p1394c (англ.)

Важность взаимодействия между различными компонентами и устройствами в компьютерной технике сложно переоценить. Без такого взаимодействия просто не было бы самой компьютерной техники. Но, с самого начала развития компьютеров каждый производитель решал (а кое-где и продолжает решать) эти проблемы по-своему. Как грибы после дождя росло количество всевозможных шин и разъёмов, по которым перегонялись данные, как внутри компьютера, так и снаружи. Но, если такое разнообразие решений внутри железной коробки шло (и идёт) во благо, стимулируя технический прогресс, то с периферией всё происходит наоборот. Море разных шин и разъёмов, которыми периферия может подключаться к компьютерам не выгодно никому - ни производителям самих компьютеров, ни производителям периферии. Стало ясно, что нужны универсальные шины. И они появились. К сожалению, общий беспорядок(когда каждый тянул одеяло на себя), не миновал и эту область. Поэтому, в середине девяностых годов, взглянув на заднюю стенку компьютера, можно было увидеть кучу разнообразных разъёмов: COM, LPT, VGA, PS/2 и некоторые другие. Каждый из этих разъёмов имел свои недостатки, требовал от разработчиков отдельной реализации и требовал свою долю отнюдь не безграничных компьютерных ресурсов. Необходимость действительно универсального разъёма назрела, и разработчики с энтузиазмом принялись за работу. Так, например, небезызвестная фирма Intel с середины девяностых годов начала агрессивно проталкивать на рынок своё детище - USB (Universal Serial Bus). По сравнению с существовавшими на то время разъёмами, USB стал подлинным прорывом, обеспечивая казалось бы, всё, о чём можно было мечтать. Но это только казалось:-) В тени шумихи вокруг USB тогда мало кто заметил рождение ещё одного формата, использующего последовательную шину (Serial Bus), который умел не меньше (а то и больше), чем его широко разрекламированный конкурент. Это IEEE 1394.

С чего всё начиналось

История IEEE 1394, теперь известного также как FireWire и как i-Link, началась ещё в 1986 году, когда члены Microcomputer Standards Committee (Комитет по Стандартам Микрокомпьютеров) захотели объединить существовавшие в то время различные варианты последовательной шины (Serial Bus). Новый проект был призван объединить существовавшие на то время наработки: IEEE 1014 VME, IEEE 1296 Multibus II, и IEEE 896 FutureBus+®. Задачей разработчиков стало создание универсального I/O (Input/Output) внешнего интерфейса, пригодного как для работы с мультимедиа, так и для работы с накопителями данных (Mass Storage Device), не говоря уже о более простых вещах - вроде принтеров, сканеров, и тому подобного. Результатом труда разработчиков стал окончательно утверждённый 12 декабря 1995 года 10 мегабайтный документ под названием 1394-1995.pdf, который описывал IEEE 1394. В названии стандарта нет никакого тайного смысла - просто это был 1394 по счёту стандарт, выпущенный комитетом. Интерфейс, который описывался в этом документе был воистину революционным. Он обеспечивал просто невероятные по тем временам скорости и удобство. Ведущую роль в разработке стандата сыграла, была Apple, которая дала ему имя FireWire, поэтому нет ничего удивительного в том, что она сразу же сделал ставку на использование этого стандарта в своих компьютерах (как обычно, Apple пошёл своим путём, и, пока пользователи PC заглядывали в рот Intel с недавно появившемся USB, сделал ставку на FireWire. Хотя и USB не был забыт. Настоящей лебединой песней для IEEE 1394 стало появление любительских DV камер. Ещё при их разработке стало ясно, что, кроме IEEE 1394 в качестве внешнего интерфейса для них ничего не подходит. Поэтому, Digital VCR Conference (DVC) приняла решение использовать IEEE 1394 как стандартный интерфейс для цифровых камер. Первой ласточкой стала Sony c DCR-VX1000 и DCR-VX700 цифровыми камерами, которые впервые имели IEEE 1394 выход. Но, вскоре за Sony подтянулись и другие производители. И сегодня IEEE 1394 практически монополизировал этот быстро развивающийся рынок. Сегодня любая, произведённая сегодня DV камера в обязательном порядке оснащается IEEE 1394 интерфейсом.

Свою лепту в развитие IEEE 1394 внесла и Texas Instruments, организовавшая массовое производство действительно дешёвых микросхем для реализации IEEE 1394 интерфейса, что сыграло огромную роль в бурном росте количества IEEE 1394 контролёров в персональных компьютерах.

Несмотря на такой успех нового стандарта (он оказался востребованным ещё до выхода окончательной спецификации), разработчики не стояли на месте. Уже в 2000 году вышла 1394a-2000 версия протокола, сразу же с энтузиазмом воспринятая производителями. А сегодня разрабатывается P1394b.

Что же такого хорошего в IEEE 1394?

Как уже говорилось, разработчики опирались на выпущенные ранее стандарты, и в IEEE 1394 вошло всё лучшее, что существовало на тот момент. Из главных особенностей IEEE 1394 можно отметить:

  • Последовательная шина вместо параллельного интерфейса позволила использовать кабеля малого диаметра и разъёмы малого размера.
  • Поддержка горячего подключения и отключения всего чего угодно.
  • Питание внешних устройств через IEEE 1394 кабель.
  • Высокая скорость
  • Возможность строить сети из различных устройств и самой различной конфигурации.
  • Простота конфигурации и широта возможностей. Через IEEE 1394 может работать самое различное оборудование, причём пользователю не придётся мучаться вопросом, как это всё правильно подключить.
  • Поддержка асинхронной и синхронной передачи данных.
На последнем пункте необходимо остановиться поподробнее.

Асинхронная передача . Asybnchronous, от греческого Asyn - другой и Chronous - время. Это означает, что данные обязательно будут доставлены в целости и сохранности, пусть и не всегда в срок. Получение каждого пакета проверяется и подтверждается, если пакет не дошёл, передача будет повторена заново.

Синхронная передача . Isochronous, от греческого Iso - тот же, такой же и Chronous - время. Это означает, что скорость и непрерывность потока важнее, чем сохранность данных. Если пакет пришёл с ошибкой, или не пришёл вообще, это даже не проверяется, не говоря уже о том, чтобы переслать пакет заново. Этот тип передачи отлично подходит для мультимедийных приложений, где потеря какой-либо части информации менее критична, чем большая задержка.

Как это всё работает?

IEEE 1394 делится на несколько уровней. Выглядит это так:

Внизу находится физический уровень (Physical Layer). Аппаратная составляющая, которая отвечает за перевод сигналов, полученных по кабелям в понятную компьютеру форму (и наоборот - за перевод данных в электрические сигналы, идущие по кабелям). Эта же часть отвечает за управление физическим каналом, т.е. определяет, должно устройство занимать канал прямо сейчас, или должно подождать. Кроме того, этот же уровень обеспечивает интерфейс для кабелей и разъёмов и отвечает за следующие процессы:

Интерфейс среды (Media Interface) - отвечает за состояние сигнала, передаваемого по кабелям.

Арбитраж (Arbitration) - различные IEEE 1394 устройства, включенные в сеть разбираются между собой, кто и в каком порядке может действовать.

Кодирование/Декодирование (Encode/Decode) - перевод данных в электрические сигналы, которые могут передаваться по кабелям и обратно.

Уровнем выше расположен уровень канала (Link Layer). Сюда доставляются уже готовые пакеты данных. Именно этот уровень отвечает за пересылку данных вверх и вниз, тут происходят следующие процессы:

Приёмник пакетов (Packet Receiver) - организует и отвечает за приём пакетов данных.

Передатчик пакетов (Packet Transmitter) - организует и отвечает за передачу пакетов данных.

Контроль циклов (Cycle Control) - пакеты передаются не поодиночке, а циклами. Здесь и осуществляется контроль над этими циклами.

Эти два уровня реализованы в "железе", т.е. выполняются аппаратно. Они полностью отвечают за формирование сигнала из данных, формирование данных из сигнала, и приём/передачу в нужное время и в нужное место. Поэтому, только этих двух уровней и хватает при синхронной передаче, когда никакого контроля над тем что передаётся и получается не требуется. При асинхронной передаче это не так, и там в действие вступает:

Сетевой уровень (Transaction Layer). На этом уровне происходит проверка полученных данных. Если всё нормально (ни один пакет не потерялся или не повредился), данные отправляются потребителю. Если обнаружена ошибка - возвращаемся на физический уровень и повторяем всё сначала, пока данные не будут получены без ошибок.

Все уровни (в том числе и первые два) контролируются firmware, и этот процесс называется менеджмент последовательной шины (Serial Bus management).

Такие процессы происходят в каждом IEEE 1394 устройстве, и два любых устройства образовывают между собой соединение типа точка-точка (point-to-point). Но, кроме этого, IEEE 1394 позволяет объединять множество таких устройств и соединений в одну логическую сеть. Для этого физический уровень (physical layer) позволяет иметь больше одного физического интерфейса на одном устройстве.

Рассмотрим подробнее, как разные устройства в одной логической сети разбираются, кто, когда, и что должен делать.

Инициализация сети происходит в несколько этапов:

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

Идентификация дерева (Tree identification) - подключенные устройства выясняют, какие из них родительские, а какие дочерние, и формируют логическое дерево. Определяется корневое устройство для всего дерева.

Примечание: Первое, что определяет устройство после включения, это сколько подключенных портов оно имеет. Один (leaf) или несколько (branch). Затем определяется родительские (parent) и дочерние (child) устройства (какое к какому подключено). На основе этих данных строится дерево и определяется корневое устройство.


Самоидентификация (Self identification) - каждое из устройств получает свой собственный ID узла внутри дерева, и выясняет на каких скоростях могут работать его непосредственные соседи. Топология полностью определена. Для адресации используются принципы, описанные в IEEE 1212. Это означает 64 битную прямую адресацию (48 бит на узел, остальные 16 используются дли идентификации шины), что позволяет организовать иерархическую адресацию для 63 узлов на 1023 шинах. Единственное ограничение - между двумя устройствами, которые хотят общаться между собой, должно быть не более 16 "хопов" (сегментов).

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

Устройство, которое хочет начать передачу, вначале посылает запрос своему родительскому устройству. Родительское устройство, получив запрос, запрещает передачу всем остальным дочерним (в один момент обрабатывается только один запрос) и, в свою очередь, передаёт запрос дальше, своему родительскому устройству, где всё повторяется. В итоге запрос доходит до корневого устройства, которое, в свою очередь, разрешает передачу тому устройству, чей запрос пришёл первым. Всем остальным передача запрещается. Таким образом, если два устройства одновременно пошлют запрос на передачу данных, то ответ будет зависеть от того, чей запрос первым достигнет корневого устройства. Оно выигрывает арбитраж и получает право начать передачу. Проигравшее устройство. не получив разрешения на передачу, вынуждено ждать, пока выигравшее не освободит шину.


Всё это происходит на физическом уровне (physical layer). После того, как разрешение на передачу данных получено и требуется начать передачу данных, в дело вступает уровень канала (link layer). Как уже говорилось, именно он формирует пакеты и определяет - когда и сколько пакетов должно отсылаться. Передача данных начинается с запроса готовности к приему устройства, для которого предназначены данные, и, получив подтверждение готовности, начинает передачу. Данные идут пакетами, между которыми есть промежутки (gap). Типичный пакет данных 256 байт, или 2048 бит, из которых 160 бит приходится на заголовок. Таким образом, общая эффективность (сколько в пакете действительно данных, а не служебной информации) весьма высока и чем больше пакет, тем выше эффективность). В заголовок входит информация об отправителе, получателе и CRC. После пакета идёт небольшой промежуток, длиной меньше 0.75 msec (acknowledge gap), после чего получатель должен выслать 8-ми битовый блок данных, подтверждающий, что пакет получен в целости и сохранности (ack packet). Потом следует более длинный промежуток, длинной больше 1 msec, разделяющий пакеты (subaction gap). И так далее - пакет, acknowledge gap, подтверждающий байт (ack), subaction gap.

Для того, чтобы одно устройство, начав передавать данные, не заняло весь канал, не оставив соседям никаких шансов начать передачу, пока оно не закончит, введено понятие fairness interval. В течении одного fairness interval каждое устройство в шине получает одну возможность передать свои данные. После того как разрешение получено (арбитраж выигран), и порция данных передана, устройство должно ждать конца fairness interval и начала следующего цикла, прежде чем оно вновь получит возможность передать следующую порцию данных. Заканчивается fairness interval так называемым reset gap, который длиннее subaction gap, и вызывает сброс всей шины.

Для синхронной передачи используется несколько другая методика. Данные передаются "выстрелами", длина каждого 125 мsec. Таких выстрелов производится столько, сколько позволяет канал. Даже на одинарной (98.304 Mbit/sec) скорости за один такой цикл передаётся до 1000 байт. Чем выше скорость, тем больше данных успевает пройти. При этом, при синхроной передаче абсолютно не важно, получило принимающее устройство данные или нет. Пакеты просто идут один за другим, разделённые subaction gap, никаких ack packet никто не ждёт. Для того, чтобы принимающее устройство смогло разобраться, где синхронные, а где асинхронные данные, subaction gap при синхронной передаче короче. Это позволяет комбинировать в одном сеансе синхронные данные с асинхронными. Однако, в синхроном режиме одному устройству никогда не позволят захватить весь доступный канал. На синхроные данные может приходится не более 85% доступного канала, причём одно устройство не может занять больше 65%.

Как всё это выглядит?

IEEE 1394 позволяет передавать данные на скорости 98.304 Mbit/sec. Кроме этого, возможна передача в 2-x (196.608 Mbit/sec) и 4-x (393.216 Mbit/sec) режимах.

Первоначально появились чипы, которые способны работать только на 100 Мбитах (хотя спецификация позволяла и больше), но 200 и 400-мегабитные чипы не заставили себя долго ждать. Несмотря на такой кажущийся беспорядок, пользователи не должны испытывать ни малейших неудобств (это было одно из обязательных условий, которое ставилось перед разработчиками). Поэтому IEEE 1394 позволяет в одной сети использовать самые разные устройства одновременно. Причём, пользователю не придётся беспокоиться о том, что он может неправильно их подключить. Подключать можно что угодно, и в каких угодно сочетаниях, железки сами разберутся, кто с кем и на какой скорости может "разговаривать".

Для работы на таких высоких скоростях потребовались соответствующие кабели. Кабель для IEEE 1394 весьма сложная система, и спаять его самостоятельно (что возможно для USB) вряд ли возможно. Данные передаются по двум витым парам, каждая из которых отдельно экранирована. Для пущей надёжности, дополнительно экранируется и весь кабель. Кроме двух сигнальных пар, в кабеле предусмотрены две питающие жилы, которые могут обеспечить любое внешнее устройство током силой до 1.5 А и напряжением до 40 V. В разрезе кабель выглядит так:


Выбору разъёма, к которому должны подключаться IEEE 1394 устройства, было уделено самое пристальное внимание, ведь от разъёма в немалой степени зависит то, насколько удобно будет пользоваться новым интерфейсом. Разъём должен быть небольшим, но в то же время прочным, должен обеспечивать надёжное соединение, но в то же время легко соединяться-отсоединяться даже вслепую. Всем требованиям удовлетворил разъём, используемый в Nintendo GameBoy.

Как видно из фотографии, все контакты выведены в середину разъёма, а снаружи защищены толстым ободком из твёрдой пластмассы. Надёжность этой схемы доказана многими GameBoy, беспощадно растерзанными детьми разных возрастов.

Но даже такой продвинутый и удобный разъём не всех удовлетворил. В самом деле, зачем нам тянуть за собой две питающих жилы там, где подключенное устройство имеет собственное питание. Действительно незачем, решили разработчики и на свет появился новый, четырёхконтактный разъём. Этот новый разъём хоть и не обеспечивал такого надёжного соединения как традиционный шестиконтактный, зато позволял сэкономить место, что немаловажно на портативных устройствах. Кроме этого, кабель без двух дополнительных жил, ответственных за питание, можно сделать ещё тоньше и дешевле. Особо "по вкусу" четырёхконтактные разъёмы пришлись производителям компактных DV камер, и именно их можно увидеть на большинстве таких камер.

Производители материнских плат включают в свои последние решения поддержку обоих разъёмов:

Как это всё развивалось, и что мы имеем сегодня

Ничего идеального в мире нет, и IEEE 1394 не получился идеальным. Поэтому, выпустив первую версию стандарта в 1995 году, команда разработчиков не стала почивать на лаврах, а продолжила работу над следующими версиями стандарта. Так, уже в 2000 году вышла 1394а версия стандарта.

История

На выставке Comdex’93 было впервые продемонстрировано небывалое по тем временам достижение: компьютер в одном окне показывал видеоклип с жесткого диска, а в другом - полномасштабную видеозапись в реальном времени, которая считывалась с цифровой видеокамеры. Процессор компьютера при этом не тратил вычислительные ресурсы на показ видео в реальном времени, поскольку в видеопамять по шине 1394 поступала уже сформатированная картинка.

Изобретателем нового высокоскоростного последовательного интерфейса является фирма Apple. Еще в 1986 году она предложила использовать подобный метод при построении системной шины, а также внешнего и внутреннего интерфейса для подключения отдельных компонентов и высокоскоростных периферийных устройств для компьютеров Macintosh. FireWire (такое название дала ему фирма Apple) вначале разрабатывался как высокоскоростной последовательный вариант SCSI. Взяв за основу относительно медленную шину, инженеры Apple сначала увеличили скорость передачи данных до 50 Мбит/с, а затем еще в два раза.

Основными требованиями при разработке этого интерфейса были следующие: двунаправленная скорость передачи до 400 Мбит/с (в настоящее время готовятся к выходу устройства, работающие на скоростях до 800 Мбит/с), а также возможность «горячего» подключения, то есть подсоединения внешних устройств без перезагрузки системы. Общее число подключенных устройств в одном бридже может достигать 63.

Решение Apple «открыть» стандарт привело к сотрудничеству с заинтересованными в таком проекте разработчиками из Texas Instruments, Stewart Connector, Molex, Adaptec и Western Digital (впоследствии к ним присоединился IBM, представитель которого и возглавил работы над всем проектом).

В стандарте кабелей FireWire существует два варианта кабелей с общим экраном: 6-проводной со скоростью обмена до 400 Мбит/с и 4-проводной (без проводов питания) со скоростью обмена до 100 Мбит/с. Они заканчиваются небольшими компактными разъемами.

Техническое описание этой шины в виде стандарта IЕЕЕ-1394 (IEEE, Institute of Electrical and Electronics Engineers) вышло в 1990 году. А к моменту публикации окончательного варианта стандарта на шину IEEE-1394 максимальная скорость обмена данных по шине достигла 400 Мбит/с.

Массовое распространение новинка получила главным образом после заключения в конце апреля 1995 года лицензионного соглашения между фирмами Apple и Adaptec, в результате чего вскоре появились контроллеры Adaptec IEEE-1394, а чуть позже - и цифровые DV-камеры фирмы Sony с вариантом соединения по FireWire-интерфейсу (i.Link). Таким образом, данный интерфейс начал широко применяться в области цифрового видео, хотя основным его назначением и областью его развития и совершенствования были и остаются компьютерные технологии.

Зачем нужен новый интерфейс

Прежде всего, посмотрите на заднюю стенку своего компьютера. Там можно найти множество всяких разъемов: последовательный порт для модема, принтерный порт для принтера, разъемы для клавиатуры, мыши и монитора, SCSI-интерфейс, предназначенный для подключения внешних носителей информации и сканеров, разъемы для подключения аудио и MIDI устройств, а также для устройств захвата и работы с видеоизображениями. Это изобилие сбивает с толка пользователей и создает беспорядок из соединительных кабелей. Причем, нередко производители ноутбуков используют и другие типы коннекторов.

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

Цифровые устройства генерируют большие объемы данных, необходимые для передачи качественной мультимедиа-информации. Например:

Высококачественное видео Цифровые данные = (30 frames / second) (640 x 480 pels) (24-bit color / pel) = 221 Mbps

Видео среднего качества Цифровые данные = (15 frames / second) (320 x 240 pels) (16-bit color / pel) = 18 Mbps

Высококачественное аудио Цифровые данные = (44,100 audio samples / sec) (16-bit audio samples) (2 audio channels for stereo) = 1.4 Mbps

Аудио среднего качества Цифровые данные = (11,050 audio samples / sec) (8-bit audio samples) (1 audio channel for monaural) = 0.1 Mbps

Обозначение Mbps - мегабит в секунду.

Для решения всех этих проблем и высокоскоростной передачи данных была разработана шина IEEE 1394 (Firewire).

Преимущества

Горячее подключение - возможность переконфигурировать шину без выключения компьютера

Различная скорость передачи данных - 100, 200 и 400 Мбит/с в стандарте IEEE 1394/1394a, дополнительно 800 и 1600 Мбит/с в стандарте IEEE 1394b и 3200 Мбит/с в спецификации S3200.

Гибкая топология - равноправие устройств, допускающее различные конфигурации (возможность «общения» устройств без компьютера)

Высокая скорость - возможность обработки мультимедиа-сигнала в реальном времени

Поддержка изохронного трафика

Поддержка атомарных операций - сравнение/обмен, атомарное увеличение (операции семейства LOCK - compare/swap, fetch/add и т. д.).

Открытая архитектура - отсутствие необходимости использования специального программного обеспечения

Наличие питания прямо на шине (маломощные устройства могут обходиться без собственных блоков питания). До полутора ампер и напряжение от 8 до 40 вольт.

Подключение до 63 устройств.

Шина IEEE 1394 может использоваться для:

Создания компьютерной сети.

Подключения аудио и видео мультимедийных устройств.

Подключения принтеров и сканеров.

Подключения жёстких дисков, массивов RAID.

Основные сведения

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

Провода питания рассчитаны на ток до 1,5 А при напряжении от 8 до 40 В, поддерживают работу всей шины, даже когда некоторые устройства выключены. Они также делают ненужными кабели питания во многих устройствах. Не так давно инженеры Sony разработали еще более тонкий четырехпроводный кабель, в котором отсутствуют провода питания. (Они намерены добавить свою разработку к стандарту.) Этот так называемый AV-разъем будет связывать небольшие устройства, как "листья" с "ветками" 1394.

Гнездо разъема имеет небольшие размеры. Ширина его составляет 1/10 ширины гнезда разъема SCSI, у него всего шесть контактов (у SCSI - 25 или 50 разъемов).

К тому же кабель 1394 тонкий - приблизительно в три раза тоньше, чем кабель SCSI. Секрет тут прост - ведь это последовательная шина. Все данные посылаются последовательно, а не параллельно по разным проводам, как это делает шина SCSI.

Устройство может иметь до 4 портов (разъёмов). В одной топологии может быть до 64 устройств. Максимальная длина пути в топологии - 16. Топология древовидная, замкнутые петли не допускаются.

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

Во время раздачи номеров по шине идет трафик пакетов, каждый из которых содержит в себе количество портов на устройстве, а также ориентацию каждого порта - не подключен/к главному/от главного, а также максимальную скорость каждой связи (2 порта и отрезок кабеля). Контроллер 1394 принимает эти пакеты, после чего стек драйверов строит карту топологии (связей между устройствами) и скоростей (наихудшая скорость на пути от контроллера до устройства).

Операции шины делятся на асинхронные и изохронные.

Асинхронные операции - это запись/чтение 32-битного слова, блока слов, а также атомарные операции. Асинхронные операции используют 24-битные адреса в пределах каждого устройства и 16-битные номера устройств (поддержка межшинных мостов). Некоторые адреса зарезервированы под главнейшие управляющие регистры устройств. Асинхронные операции поддерживают двухфазное исполнение - запрос, промежуточный ответ, потом позже окончательный ответ.

Изохронные операции - это передача пакетов данных в ритме, строго приуроченном к ритму 8 КГц, задаваемому ведущим устройством шины путем инициации транзакций «запись в регистр текущего времени». Вместо адресов в изохронном трафике используются номера каналов от 0 до 31. Подтверждений не предусмотрено, изохронные операции есть одностороннее вещание.

Изохронные операции требует выделения изохронных ресурсов - номера канала и полосы пропускания. Это делается атомарной асинхронной транзакцией на некие стандартные адреса одного из устройств шины, избранного как «менеджер изохронных ресурсов».

Помимо кабельной реализации шины, в стандарте описана и наплатная (реализации неизвестны).

Топология

Стандарт 1394 определяет общую структуру шины, а также протокол передачи данных и разделения носителя. Древообразная структура шины всегда имеет "корневое" устройство, от которого происходит ветвление к логическим "узлам", находящимся в других физических устройствах.

Корневое устройство отвечает за определенные функции управления. Так, если это ПК, он может содержать мост между шинами 1394 и PCI и выполнять некоторые дополнительные функции по управлению шиной. Корневое устройство определяется во время инициализации и, будучи однажды выбранным, остается таковым на все время подключения к шине.

Сеть 1394 может включать до 63 узлов, каждый из которых имеет свой 6-разрядный физический идентификационный номер. Несколько сетей могут быть соединены между собой мостами. Максимальное количество соединенных шин в системе - 1023. При этом каждая шина идентифицируется отдельным 10-разрядным номером. Таким образом, 16-разрядный адрес позволяет иметь до 64449 узлов в системе. Поскольку разрядность адресов устройств 64 бита, а 16 из них используются для спецификации узлов и сетей, остается 48 бит для адресного пространства, максимальный размер которого 256 Терабайт (256х10244 байт) для каждого узла.

Конструкция шины удивительно проста. Устройства могут подключаться к любому доступному порту (на каждом устройстве обычно 1 - 3 порта). Шина допускает "горячее" подключение - соединение или разъединение при включенном питании. Нет также необходимости в каких-либо адресных переключателях, поскольку отсутствуют электронные адреса. Каждый раз, когда узел добавляется или изымается из сети, топология шины автоматически переконфигурируется в соответствии с шинным протоколом.

Однако есть несколько ограничений. Между любыми двумя узлами может существовать не больше 16 сетевых сегментов, а в результате соединения устройств не должны образовываться петли. К тому же для поддержки качества сигналов длина стандартного кабеля, соединяющего два узла, не должна превышать 4,5 м.

Протокол

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

Протокол IEEE 1394 реализует три нижних уровня эталонной модели Международной организации по стандартизации OSI: физический, канальный и сетевой. Кроме того, существует "менеджер шины", которому доступны все три уровня. На физическом уровне обеспечивается электрическое и механическое соединение с коннектором, на других уровнях - соединение с прикладной программой.

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

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

На сетевом уровне поддерживается асинхронный протокол записи, чтения и блокировки команд, обеспечивая передачу данных от отправителя к получателю и чтение полученных данных. Блокировка объединяет функции команд записи/чтения и производит маршрутизацию данных между отправителем и получателем в обоих направлениях.

"Менеджер шины" обеспечивает общее управление ее конфигурацией, выполняя следующие действия: оптимизацию арбитражной синхронизации, управление потреблением электрической энергии устройствами, подключенными к шине, назначение ведущего устройства в цикле, присвоение идентификатора синхронного канала и уведомление об ошибках.

Чтобы передать данные, устройство сначала запрашивает контроль над физическим уровнем. При асинхронной передаче в пакете, кроме данных, содержатся адреса отправителя и получателя. Если получатель принимает пакет, то подтверждение возвращается отправителю. Для улучшения производительности отправитель может осуществлять до 64 транзакций, не дожидаясь обработки. Если возвращено отрицательное подтверждение, то происходит повторная передача пакета.

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

Шина конфигурируется таким образом, чтобы передача кадра начиналась во время интервала синхронизации. В начале кадра располагается индикатор начала и далее последовательно во времени следуют синхронные каналы 1, 2… На рисунке изображен кадр с двумя синхронными каналами и одним асинхронным.

Оставшееся время в кадре используется для асинхронной передачи. В случае установления для каждого синхронного канала окна в кадре шина гарантирует необходимую для передачи полосу частот и успешную доставку данных.