IEEE 1394
IEEE 1394 (FireWire, i-Link) — последовательная высокоскоростная шина, предназначенная для обмена цифровой информацией между компьютером и другими электронными устройствами.
История
- в 1986 году членами Комитета по Стандартам Микрокомпьютеров (Microcomputer Standards Committee) принято решение объединить существовавшие в то время различные варианты последовательной шины (Serial Bus)
- в 1992 году продолжением работой над интерфейса занялась Apple
- в 1995 году принят стандарт IEEE 1394
.
Основные сведения
Сам кабель состоит из 2 витых пар — А и B, распаянные как A к B, а на другой стороне кабеля как B к A. Также возможен необязательный проводник питания. Устройство может использовать от 1 до 4 портов (разъёмов). В одной топологии одновременно может быть задействовано до 64 устройств. Максимальная длина пути в топологии — 16. Топология древовидная, исключающая замкнутые петли. Во время раздачи номеров по шине идет трафик пакетов, содержащие в себе информацию о количестве портов на устройстве, а также ориентацию каждого порта — не подключен/к главному/от главного, а также максимальную скорость каждой связи (2 порта и отрезок кабеля). Контроллер 1394 осуществляет обработку этих пакетов, после чего стек драйверов генерирует карту топологии (связей между устройствами) и скоростей (наихудшая скорость на пути от контроллера до устройства).
Операции шины можно разделить на асинхронные и изохронные.
Асинхронные операции — это запись/чтение 32-битного слова, блока слов, а также атомарные операции. Асинхронные операции использую 24-битные адреса в пределах каждого устройства и 16-битные номера устройств (поддержка межшинных мостов). Часть адресов зарезервировано под главные регистры управляющие работой устройств. Асинхронные операции поддерживают двухфазное исполнение — запрос, промежуточный ответ, потом позже окончательный ответ. Изохронные операции — это передача пакетов данных в ритме, строго приуроченном к ритму 8 КГц, в свою очередь предающегося ведущим устройством шины путем инициации транзакций «запись в регистр текущего времени». Вместо адресов в изохронном трафике могут быть использованы номера каналов от 0 до 31. Подтверждений не предусмотрено, изохронные операции есть одностороннее вещание.
Для выполнения изохронных операций требуется выделение изохронных ресурсов- номер канала и полосы пропускания. Это делается атомарной асинхронной транзакцией на некие стандартные адреса одного из устройств шины, избранного как «менеджер изохронных ресурсов». Помимо кабельной реализации шины, в стандарте описана и наплатная (реализации неизвестны).