Физический интерфейс IEEE 1394
Министерство Науки и Образования Российской Федерации
Московский
Государственный Университет
Курсовая работа на тему
«Интерфейс
IEEE 1394»
Выполнила:
студентка группы ДКБ-301
Никитина Ирина
Проверил:
Мельников
Д.А.
2011 г.
Введение 3
История возникновения 6
Основные сведения 7
Технические характеристики 7
Топология 9
Совместимость 10
Сеть на
IEEE-1394 11
Введение
IEEE 1394 или Firewire
- это последовательная
Важность взаимодействия
между различными компонентами и
устройствами в компьютерной технике
сложно переоценить. Без такого взаимодействия
просто не было бы самой компьютерной
техники. Но, с самого начала развития
компьютеров каждый производитель
решал (а кое-где и продолжает
решать) эти проблемы по-своему. Как
грибы после дождя росло
В последнее время,
в связи с бурным ростом возможностей
компьютерной обработки видеоизображений
в компьютерном мире возникла острейшая
нужда в высокоскоростной шине, по
которой было бы возможно передавать
значительные потоки данных, и кроме
этого, требовала всего нескольких
проводов (т.е. была бы последовательной),
позволяла бы строить "деревья",
на которые можно было бы "нанизывать"
различные периферийные устройства.
По скоростным характеристикам из существующих
шин, допускающих подключение
Во-первых, для высокоскоростной
передачи данных необходим
Интерфейс USB, который очень подходит
конструктивно (маленький
Именно из-за ограничений
Новая сфера применения, получившая
основное развитие с начала 2000
года - устройства хранения
Самые массовые из устройств,
в которых используется
История возникновения
История
IEEE 1394, теперь известного также как
FireWire и как i-Link, началась ещё в 1986
году, когда члены Microcomputer Standards Committee
(Комитет по Стандартам Микрокомпьютеров)
захотели объединить существовавшие в
то время различные варианты последовательной
шины (Serial Bus). Новый проект был призван
объединить существовавшие на то время
наработки: IEEE 1014 VME, IEEE 1296 Multibus II, и IEEE 896
FutureBus+R. Задачей разработчиков стало
создание универсального I/O (Input/Output) внешнего
интерфейса, пригодного как для работы
с мультимедиа, так и для работы
с накопителями данных (Mass Storage Device),
не говоря уже о более простых
вещах - вроде принтеров, сканеров, и
тому подобного. Результатом труда
разработчиков стал окончательно утверждённый
12 декабря 1995 года 10 мегабайтный документ
под названием 1394-1995.pdf, который описывал
IEEE 1394. В названии стандарта нет
никакого тайного смысла - просто это
был 1394 по счёту стандарт, выпущенный
комитетом. Интерфейс, который описывался
в этом документе был воистину
революционным. Он обеспечивал просто
невероятные по тем временам скорости
и удобство. Ведущую роль в разработке
стандата сыграла, была Apple, которая
дала ему имя FireWire, поэтому нет
ничего удивительного в том, что
она сразу же сделал ставку на использование
этого стандарта в своих
Свою
лепту в развитие IEEE 1394 внесла и Texas
Instruments, организовавшая массовое производство
действительно дешёвых
Несмотря на такой успех нового стандарта (он оказался востребованным ещё до выхода окончательной спецификации), разработчики не стояли на месте. Уже в 2000 году вышла 1394a-2000 версия протокола, сразу же с энтузиазмом воспринятая производителями. А сегодня разрабатывается P1394b.
Основные сведения
Различные компании продвигают стандарт под своими торговыми марками:
Apple — FireWire
Sony — i.LINK
Yamaha — mLAN
TI — Lynx
Creative — SB1394
Преимущества
- Горячее подключение — возможность переконфигурировать шину без выключения компьютера
- Различная скорость передачи данных — 100, 200 и 400 Мбит/с в стандарте IEEE 1394/1394a, дополнительно 800 и 1600 Мбит/с в стандарте IEEE 1394b и 3200 Мбит/с в спецификации S3200.
- Гибкая топология — равноправие устройств, допускающее различные конфигурации (возможность «общения» устройств без компьютера)
- Высокая скорость — возможность обработки мультимедиа-сигнала в реальном времени
- Поддержка изохронного трафика
- Поддержка атомарных операций — сравнение/обмен, атомарное увеличение (операции семейства LOCK — compare/swap, fetch/add и т. д.).
- Открытая архитектура — отсутствие необходимости использования специального программного обеспечения
- Наличие питания прямо на шине (маломощные устройства могут обходиться без собственных блоков питания). До полутора ампер и напряжение от 8 до 40 вольт.
- Подключение до 63 устройств.
Схема взаимодействия
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 узла внутри дерева,
и выясняет на каких скоростях
могут работать его непосредственные
соседи. Топология полностью
Инициализация сети завершена, в действие вступает нормальный арбитраж - рабочий режим работы сети. Устройства обмениваются данными, а корневое устройство следит за тем, чтобы они друг другу не мешали. Происходит это так:
Устройство,
которое хочет начать передачу, вначале
посылает запрос своему родительскому
устройству. Родительское устройство,
получив запрос, запрещает передачу
всем остальным дочерним (в один
момент обрабатывается только один запрос)
и, в свою очередь, передаёт запрос дальше,
своему родительскому устройству, где
всё повторяется. В итоге запрос
доходит до корневого устройства,
которое, в свою очередь, разрешает
передачу тому устройству, чей запрос
пришёл первым. Всем остальным передача
запрещается. Таким образом, если два
устройства одновременно пошлют запрос
на передачу данных, то ответ будет
зависеть от того, чей запрос первым
достигнет корневого
Всё
это происходит на физическом уровне
(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%.
Технические характеристики
Первоначально появились чипы, которые способны работать только на 100 Мбитах (хотя спецификация позволяла и больше), но 200 и 400-мегабитные чипы не заставили себя долго ждать. Несмотря на такой кажущийся беспорядок, пользователи не должны испытывать ни малейших неудобств (это было одно из обязательных условий, которое ставилось перед разработчиками). Поэтому IEEE 1394 позволяет в одной сети использовать самые разные устройства одновременно. Причём, пользователю не придётся беспокоиться о том, что он может неправильно их подключить. Подключать можно что угодно, и в каких угодно сочетаниях, железки сами разберутся, кто с кем и на какой скорости может взаимодействовать.
Для работы на таких высоких скоростях потребовались соответствующие кабели. Кабель для IEEE 1394 весьма сложная система: данные передаются по двум витым парам, каждая из которых отдельно экранирована. Для пущей надёжности, дополнительно экранируется и весь кабель. Кроме двух сигнальных пар, в кабеле предусмотрены две питающие жилы, которые могут обеспечить любое внешнее устройство током силой до 1.5 А и напряжением до 40 V. В разрезе кабель выглядит так:
Провода питания рассчитаны на ток до 1,5 А при напряжении от 8 до 40 В, поддерживают работу всей шины, даже когда некоторые устройства выключены. Они также делают ненужными кабели питания во многих устройствах. Не так давно инженеры Sony разработали еще более тонкий четырехпроводный кабель, в котором отсутствуют провода питания.
Кабели и розетки для подключения периферийных устройств существуют в нескольких вариантах, в зависимости от требуемых параметров (это только ряд примеров):
| Кабель на 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 А. | |
| Розетка на 6 проводов, поддержка скорости передачи до 400 Mbits/s. Напряжение питания до 40 V при токе до 1.5 А. |
Основные характеристики шины:
- скорость передачи данных до 400 Mbits/s по стандарту IEEE-1394a и 800 Mbits/s по стандарту IEEE-1394b, согласованному в 1394 Trade Association в конце мая 2001 года.
- 16-ти разрядный адрес позволяет адресовать до 64K узлов на шине
- предельная теоретическая длина шины 224 метра
- "горячее" подключение/отключение без потери данных
- автоматическое конфигурирование, аналогичное Plug&Play
- произвольная топология шины - по аналогии с локальными сетями может использоваться как "звезда" так и общая шина (только в виде цепочки, в отличие от сети на коаксиальном кабеле)
- никакие терминаторы не требуются
- возможность обмена с гарантированной пропускной способностью, что крайне необходимо для передачи видеоизображений
- Максимальное расстояние между двумя устройствами в цепочке по IEEE-1394a - 4.5 м, по IEEE-1394b - 100 м.
Топология сети на основе IEEE 1394
Топология IEEE-1394 позволяет как древовидную, так и цепочечную архитектуру, а также комбинацию из того и другого. Поэтому легко строить любые варианты подключения различных устройств к шине. Стандарт предусматривает архитектурное разделение шины на 2 основных блока - кабельная часть и контроллер (контроллеры). Так как контроллеров может быть несколько, эту часть также называют объединительной (backplane - дословно задний план, кросс-плата и т.п.).
Адрес узла на "дереве" 16-ти разрядный, что позволяет адресовать до 64К узлов. К каждому узлу может быть подключено до 16-ти конечных устройств. На объединительной панели (backplane) может быть подключено до 63 узлов к одному мосту (bridge) шины. Так как под идентификатор номера шины (моста) отведено 10 разрядов, то общее количество узлов и составляет 64K.
Каждый узел обычно предусматривает подключение 3-х устройств, хотя собственно стандарт разрешает подключение до 27 устройств. Устройства могут быть подключены через стандартные кабели длиной до 4.5 метра.
Пример топологии IEEE-1394
Здесь и далее на рисунках под DV (Digital Video) устройствами понимаются устройства с интерфейсом IEEE-1394.
Физические
адреса (ID) устройствам назначаются
при подаче питания на контроллер
шины и устройства, подключенные к
ней, после общего сброса шины, а
также при "горячем" подключении
устройства к шине. Адреса присваиваются
в порядке последовательности обнаружения
и/или подключения устройств. Никакая
установка перемычек или
Стандарт
на кабельную часть
Благодаря применению размножителей, репитеров и т.п. устройств топология 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 может использоваться для:
- Создания компьютерной сети.
- Подключения аудио и видео мультимедийных устройств.
- Подключения принтеров и сканеров.
- Подключения жёстких дисков, массивов RAID.
Топология
Стандарт 1394 определяет
общую структуру шины, а также
протокол передачи данных и
разделения носителя. Древообразная
структура шины всегда имеет
"корневое" устройство, от которого
происходит ветвление к
Корневое устройство отвечает за определенные функции управления. Так, если это ПК, он может содержать мост между шинами 1394 и PCI и выполнять некоторые дополнительные функции по управлению шиной. Корневое устройство определяется во время инициализации и, будучи однажды выбранным, остается таковым на все время подключения к шине.
Сеть 1394 может включать до 63 узлов, каждый из которых имеет свой 6-разрядный физический идентификационный номер. Несколько сетей могут быть соединены между собой мостами. Максимальное количество соединенных шин в системе - 1023. При этом каждая шина идентифицируется отдельным 10-разрядным номером. Таким образом, 16-разрядный адрес позволяет иметь до 64449 узлов в системе. Поскольку разрядность адресов устройств 64 бита, а 16 из них используются для спецификации узлов и сетей, остается 48 бит для адресного пространства, максимальный размер которого 256 Терабайт (256х10244 байт) для каждого узла.