Выбрать главу

На мой взгляд, проблема с питанием в FireWire решена безобразно, несмотря на значительную его мощность (до 45 Вт): как раз миниатюрные устройства логично было бы запитать от разъема, например, для подзарядки (как делается во множестве USB-гаджетов), но этому мешает значительный допустимый разброс напряжения, что предполагает наличие универсального вторичного источника в подключаемом устройстве. Для сканеров — ситуация нормальная, а вот мобильные гаджеты от этого только усложняются и удорожаются, отчего возможности шины по части питания большей частью пропадают втуне. USB со своими жестко заданными пятью вольтами оказывается удобнее, несмотря на гораздо меньшую мощность: от такого напряжения можно, к примеру, напрямую заряжать некоторые типы аккумуляторов.

Введение новой версии стандарта IEEE 1394b внесло какое-никакое разнообразие. Касаться применения оптоволокна (с помощью которого только и можно обеспечить скорости 1600 и 3200 Мбит/с на декларируемом расстоянии 100 метров) мы не будем, достаточно того, что FireWire 800, как называет IEEE 1394b компания Apple, имеет уже 9-контактный разъем, причем сигнальных пар по-прежнему две, а дополнительные контакты используются для лучшего экранирования. Стандарт предусматривает два режима работы: так называемый бета-режим, который, собственно, и есть IEEE 1394b, и двухстандартный (буквально "двуязычный" — bilingual) режим, позволяющий подключать и старые устройства IEEE 1394a. Соответственно, к шести- и четырехконтактным разъемам добавляются два варианта 9-контактных, отличающихся размером ключа (рис. 1), а также переходные кабели во всех вариантах.

Хорош FireWire и тем, что не требует специальных корневых устройств — концентраторов, то есть он обеспечивает как подключение нескольких (до 63) устройств к главному устройству (компьютеру), так и соединение "точка-точка" при общении устройств напрямую. Интерфейс также более лоялен к горячему подключению — стыковать устройства можно при работающей шине. Заметим, что современные материнские платы все чаще снабжаются встроенным FireWire.

По большей части они поддерживают IEEE 1394a (FireWire 400), но есть и платы, поддерживающие скоростной IEEE 1394b.

Почему они последовательные?

Встатье про "Перпендикулярные терабайты" ("КТ" #741-742) я отмечал, что когда-то существовали накопители на магнитной ленте, которые за один такт могли считать сразу 36-битовое число. Долгое время в группе лидеров скоростных соединений держался сложный и дорогой параллельный SCSI. Порт LPT тоже был довольно популярен — еще лет десять назад под него выпускали не только принтеры, но и сканеры и цифровые камеры. Казалось бы, преимущество параллельной передачи данных перед последовательной видно невооруженным глазом — если по одному проводу за такт передается всего один бит, то по восьми проводам — сразу целый байт.

Однако такое естественное представление справедливо лишь для относительно небольших скоростей обмена. Когда речь заходит о десятках мегабит в секунду, преимущества параллельной передачи становятся не столь однозначными. Тот же LPT может выдать до 16 Мбайт/с — но только при качественном и не слишком длинном кабеле. Ведь в параллельной линии проводники всегда немного разные, отчего при увеличении длины кабеля и скорости передачи биты, передаваемые по разным проводам, начинают "разъезжаться" во времени — одни приходят чуть раньше, другие чуть позже. По науке это называется "фазовый сдвиг". При достаточно высоких скоростях он начинает сказываться уже на небольших расстояниях, — например, при тактовой частоте системной шины 533 МГц (и тем более при 1066 МГц) материнскую плату приходится проектировать так, чтобы проводники, связывающие процессор и память, были строго параллельными и имели одинаковую длину. Учитывая, что число одних только линий данных доходит до 128, можно представить, какая головоломная задача встает перед конструкторами.

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

В наше время выгоднее заложить максимум функциональности в микросхемы, нежели иметь дело с толстенными шлангами с сотней проводов внутри. Потому все современные интерфейсы являются последовательными. И оба рассматриваемых стандарта, USB и FireWire, стояли как раз у истоков этой "последовательной" революции: прототип FireWire появился еще в 1986 году, а первая версия последовательного интерфейса USB — в 1996-м.

Usb

Первая версия последовательного интерфейса USB появилась 15 января 1996 года. Инициатором проекта был альянс семи крупных производителей оборудования: Intel, Compaq, DEC, IBM, Microsoft, NEC и Northern Telecom. Главная цель проекта — создать универсальный интерфейс для подключения внешних устройств, который "от рождения" поддерживал бы режим Plug amp;Play и горячее соединение/ отключение. Поначалу разработчики не стремились конкурировать со скоростными интерфейсами (SCSI и FireWire), а создавали USB как замену поднадоевшим COM и LPT (позднее в этот флакон добавились PS/2 и даже GAME-порт, хотя, как мы знаем, полностью вытеснить все эти интерфейсы не удалось).

В 1998 году появилась версия 1.1, которая сейчас считается "базовой", — с максимальной скоростью 12 Мбит/с; а в 2000-м — версия USB 2.0 со скоростью 480 Мбит/с, действующая и поныне. Любая материнская плата сейчас включает четыре-шесть портов USB 2.0, хотя далеко не все периферийные устройства поддерживают именно эту версию: как, правило, мобильные девайсы (фотокамеры, КПК, смартфоны, обычные мобильники) снабжаются портами USB 1.1. И, кстати, обращайте внимание на маркировку соединительных кабелей (рис. 2) — если у вас видеокамера с USB 2.0, то первый попавшийся кабель вам не подойдет, хотя,в отличие от FireWire, разъемы для различных версий здесь взаимозаменяемы (о самих разъемах ниже).

USB, как и FireWire, базируется на скоростной шине PCI. Питание — 5 В при 0,5 А. Размножение USB-устройств производится с помощью разветвителей-хабов (концентраторов). Один концентратор обычно имеет от двух до восьми портов. Самое ценное в USB-шине то, что она использует лишь одно прерывание, даже если подключить все 127 возможных устройств (для каждого COM и LPT необходимо свое прерывание, что иногда превращало настройку старых компьютеров в головоломную задачу).

Стандарт USB 2.0 предусматривает два режима работы — HR (высокоскоростной, до 480 Мбит/с) и FS (низкоскоростной, по стандарту USB 1.1, до 12 Мбит/с).

Отметим, что USB еще со времен 1.1 поддерживает и третий режим, со скоростью 1,5 Мбит/с, — в самом деле, зачем мышам 480 Мбит/с?

Максимальная длина кабеля между двумя работающими на предельной скорости устройствами (или устройством и концентратором) — 3-5 метров, но может доходить и до 10 метров, в зависимости от качества изготовления. Чтобы увеличить дальность, приходится ставить промежуточные хабы.

Последние бывают двух типов — пассивные (с питанием от предыдущего концентратора) и активные (с собственным источником питания, иногда более мощным, чем предусматриваемый стандартом 0,5 амперный).

В USB используется кодирование данных по методу NRZI (Non Return to Zero Invent):изменение уровня напряжения соответствует нулю, а отсутствие изменения единице. При таком способе отпадает необходимость в синхроимпульсах (по отдельной "проволоке", как в PS/2, или в виде стартовых/стоповых битов, как в СОМ), которые занимали бы время и снижали пропускную способность шины. В FireWire синхроимпульсы (стробы) подаются отдельно, по второй витой паре, а вот в USB витая пара всего одна.

Поэтому для USB достаточно четырехпроводного кабеля (два провода питания и дифференциальная витая пара для передачи данных) плюс экрана, который объединяет между собой корпуса устройств.