Интерфейс Firewire

Firewire (IEEE 1394) – это высокоскоростной последовательный интерфейс для обмена данными с устройствами, принимающими или передающими большие объемы данных (видео и аудио данные). Он был разработан компанией Apple для общих сред (кабельных шлейфовых подключений каждого устройства) и представляет собой дуплексную, последовательную, общую шину для периферийных устройств. Он пригоден также для периферии (мышей, клавиатур и др.) как альтернатива развивающейся USB. Скорость передачи данных может быть 100, 200 и 400 Мбит/с, как расширение стандарта планируется увеличение до 800 и 1600 Мбит/с.

Устройства, которые передают данные на разных скоростях, могут быть одновременно подключены к кабелю (поскольку пары обменивающихся данными устройств используют для этого одну и ту же скорость). Рекомендуемая максимальная длина кабеля между устройствами составляет 4.5 м. К кабелю общей длиной до 72 м может быть одновременно подключено до 63 устройств, называемых узлами (nodes). У каждого устройства есть свой 6-разрядный физический идентификационный номер. Для увеличения числа шин вплоть до максимального значения 1023 могут быть использованы мосты (при этом у каждого устройства есть свой 10-разрядный идентификационный номер шины) таким образом может быть подключено до 64449 устройств. Каждое устройство обладает 64-разрядным адресом, который включает в себя перечисленные выше 6- и 10-разрядный адреса. Остальные 48 разрядов на каждое устройство могут быть использованы для адресации памяти следовательно, каждое устройство может адресовать до 248 байт (256 Тбайт) памяти.

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

Рассматривается Firewire и как конкурент шины SCSI, господствующей в секторе профессиональной техники (высокоскоростные винчестеры, мощные сканеры и т.п.).

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

Одной из функций, выполняемых корневым узлом, является функция «хозяина цикла» (cycle master), которая получает наивысший приоритет доступа к шине. Она обеспечивает общую синхронизацию остальных устройств на шине, а также изохронных сеансов передачи данных.

Кроме того, возможно наличие и диспетчера шины (bus manager). В его обязанности входит управление питанием шины и некоторые функции оптимизации.

Диспетчер изохронных ресурсов (isochronous resouce manager) распределяет временные интервалы (из пула 64 номеров каналов) для узлов, собирающихся стать передатчиками (talkers). «Хозяин цикла» посылает синхронизирующее сообщение о начале цикла (cycle start) через каждые 125 мкс. В лучшем случае 80% цикла (100 мкс) резервируется для изохронного трафика, а остальная часть цикла становится доступной для асинхронного трафика. Сначала узлы с изохронными данными для пересылки, а также те узлы, которым был назначен номер канала, пытаются получить доступ к шине на время передачи (сразу же после каждого сообщения о начале цикла) и узел, который ближе всего находится к корневому узлу, первым получит разрешение на передачу данных. Каждый последующий узел с назначенным номером канала и изохронным трафиком для пересылки последовательно получает разрешение на передачу данных. Затем пытаются получить доступ к шине и узлы с асинхронным трафиком.

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

Как правило, устройства имеют по 1-3 порта, причем одно устройство может быть включено в любое другое устройство (с учетом ограничений на то, что между любыми двумя устройствами может быть не более 16 пролетов и они не могут быть соединены петлей). Допускается подключение устройств в "горячем" режиме, поэтому устройства могут подключаться и отключаться в любой момент. При подключении устройств адреса назначаются автоматически, поэтому присваивать их вручную не придется.

Данной шиной поддерживается два режима передачи данных (каждый из которых использует пакеты переменной длины):

1) Асинхронная передача используется для пересылки данных по конкретному адресу, а подтверждения приема используются для обнаружения ошибок. Трафик, который не требует очень высоких скоростей передачи данных и не чувствителен ко времени доставки, вполне подходит для данного режима (например, для передачи некоторой управляющей информации);

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

Пакеты данных пересылаются порциям, которые имеют кратный 32 битам размер и называются квадлетами (guadlets). При этом пакеты начинаются, по меньшей мере, с двух квадлетов заголовка (с последующим циклическим избыточным кодом CRC для обнаружения ошибок), после чего следует переменное число квадлетов полезной информации (с последующим циклическим избыточным кодом CRC полезной информации). Длина заголовков асинхронных пакетов составляет, как минимум, 4 квадлета благодаря 64-разрядному адресу и наличию других разрядов, например, разрядов четности. У изохронных пакетов может быть заголовок длиной 2 квадлета, поскольку единственным необходимым при этом адресом является номер канала.

Для подключения к данной шине используется 6-контактный соединитель.

Стандарт IEEE 1394 также называют высокоскоростной последовательной шиной. К другим компаниям, способствовавшим разработке данного стандарта, относятся Texas Instruments, Molex, Adaptec, Western Digital и IBM PC Company.

Стандарт поддерживается отраслевой ассоциацией 1394 Trade Association, в которую входят компания Apple и изготовители электронных бытовых приборов. Он составит конкуренцию (не только по стоимости) стандарту DCC (который использует шину ACCESS BUS и поддерживается производителями мониторов) и стандарту USВ (который поддерживается компаниями Intel, Microsoft и основными поставщиками ПК).

Разработка стандарта была начата в 1988 году, а в декабре 1996 года стандарт IEEE-1394 был утвержден.