IEEE 1394

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
IEEE 1394 Interface

Firewire Logo.png

Тип Последовательная связь
История
Разработчик 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) — последовательная высокоскоростная шина, предназначенная для обмена цифровой информацией между компьютером и другими электронными устройствами.

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

История[править | править вики-текст]

6-ти и 4-проводниковый FireWire 400 α-коннектор
9-проводниковый FireWire 800 коннектор
Альтернативный в стиле кабеля Ethernet использующийся в 1394c
4-проводниковый (слева) и 6-проводниковый (справа) FireWire 400 α-коннекторы
Пара 6-проводниковых α-коннекторов на плате
  • в 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 может использоваться для:

Основные сведения[править | править вики-текст]

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

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

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

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

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

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

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

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

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

Использование[править | править вики-текст]

Сеть поверх 1394[править | править вики-текст]

Существуют стандарты RFC 2734 — IP поверх 1394 и RFC 3146 — IPv6 поверх 1394. Поддерживались в ОС Windows XP и Windows Server 2003. Поддержка со стороны Microsoft прекращена в ОС Windows Vista, однако существует реализация сетевого стека в альтернативных драйверах от компании Unibrain[1]. Поддерживается во многих ОС семейства UNIX (обычно требуется пересборка ядра с этой поддержкой).

Стандарт не подразумевает эмуляцию Ethernet над 1394, и использует совершенно иной протокол ARP. Несмотря на это, эмуляция Ethernet над 1394 была включена в ОС FreeBSD и является специфичной для данной ОС.

Внешние дисковые устройства[править | править вики-текст]

Существует стандарт SBP-2 — SCSI поверх 1394. В основном используется для подключения внешних корпусов с жесткими дисками к компьютерам — корпус содержит чип моста 1394-ATA. При этом скорость передачи данных может достигать 27 МБ/с, что превышает скорость USB 2.0 как интерфейса к устройствам хранения данных, равную примерно 22 МБ/с. Однако гораздо ниже таковой для USB 3.0.

Поддерживается в ОС семейства Windows с Windows 98 и по сей день. Также поддерживается в популярных ОС семейства UNIX.

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

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

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

MiniDV видеокамеры[править | править вики-текст]

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

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

В ОС Windows подключенная по 1394 камера является устройством DirectShow. Захват видео с такого устройства возможен в самых разнообразных приложениях — Adobe Premiere, Ulead Media Studio Pro, Windows Movie Maker. Существует также огромное количество простейших утилит, способных выполнять только этот захват. Возможно также и использование тестового инструмента Filter Graph Editor из свободно распространяемого DirectShow SDK.

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

Отладчики[править | править вики-текст]

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

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

Организация устройств IEEE 1394[править | править вики-текст]

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

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

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

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

Связь между шиной PCI и Transaction Layer осуществляет Bus Manager. Он назначает вид устройств на шине, номера и типы логических каналов, обнаруживает ошибки.

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

Спецификации FireWire[править | править вики-текст]

IEEE 1394[править | править вики-текст]

В конце 1995 года IEEE принял стандарт под порядковым номером 1394. В цифровых камерах Sony интерфейс IEEE 1394 появился раньше принятия стандарта и под названием iLink.

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

Скорость передачи данных — 98,304, 196,608 и 393,216 Мбит/с, которые округляют до 100, 200 и 400 Мбит/с. Длина кабеля до 4,5 м.

IEEE 1394a[править | править вики-текст]

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

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

IEEE 1394b[править | править вики-текст]

В 2002 году появляется стандарт IEEE 1394b с новыми скоростями: S800 — 800 Мбит/с и S1600 — 1600 Мбит/с. Соответствующие устройства обозначаются FireWire 800 или FireWire 1600, в зависимости от максимальной скорости.

Изменились используемые кабели и разъёмы. Для достижения максимальных скоростей на максимальных расстояниях предусмотрено использование оптики, пластмассовой — для длины до 50 метров, и стеклянной — для длины до 100 метров

Несмотря на изменение разъёмов, стандарты остались совместимы, что позволяет использовать переходники.

12 декабря 2007 года была представлена спецификация S3200[3] с максимальной скоростью — 3,2 Гбит/с. Для обозначения данного режима используется также название «beta mode» (схема кодирования 8B10B (англ.)русск.  (англ.)). Максимальная длина кабеля может достигать 100 метров.

IEEE 1394.1[править | править вики-текст]

В 2004 году увидел свет стандарт IEEE 1394.1. Этот стандарт был принят для возможности построения крупномасштабных сетей и резко увеличивает количество подключаемых устройств до гигантского числа — 64 449[4].

IEEE 1394c[править | править вики-текст]

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

Разъёмы[править | править вики-текст]

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

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

См. также[править | править вики-текст]

IEEE 1394 Firewire PCI Expansion Card Digon3.jpg

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]