Автор: Юрий Ревич
Все нынешние компьютеры обязательно снабжаются портами USB, а для некоторых устройств это и вовсе единственный способ общения с внешним миром. Говорят, правда, что даже в "базовой" версии 400-мегабитный FireWire все равно лучше и быстрее USB 2.0 с его формальными 480 Мбит/с. Но если это действительно так, а не очередная мантра, выдуманная фанатами Apple, то почему USB доминирует количественно? И что нам даст новая версия USB 3.0, появление которой ожидается в этом году?..
В настоящее время действует несколько стандартов под этим названием: от IEEE 1394a (2000 год, усовершенствованный вариант оригинального IEEE 1394 от 1995 года) с максимальной скоростью 400 Мбит/с до IEEE 1394b в версии S3200 (2007 год) с максимальной скоростью 3,2 Гбит/с[Существует еще и IEEE 1394c — вариант FireWire 800 с использованием Ethernet-кабелей категории 5 и разъемов RJ-45].
Парадоксальным образом, Apple, находившаяся в 1995 году в глубоком дауне, чуть сама не погубила FireWire, запросив после его принятия в качестве стандарта IEEE аж по доллару лицензионных отчислений за каждый порт, установленный в устройствах сторонних производителей. Разработанный Apple совместно с Texas Instruments и предназначенный для замены сложного и дорогого параллельного SCSI, интерфейс FireWire был рассчитан на элитарных пользователей, подключающих к своим "аристократическим Макинтошам" всяческую передовую видеотехнику или суперскоростные (по тем временам) жесткие диски. В дальнейшем размер отчислений был снижен вчетверо, а кроме того, производителям совместимых устройств разрешили бесплатно использовать торговую марку FireWire, но интерфейс так и остался элитарным (заметьте, что мышь и клавиатура к совреенным Макам подключается через обычный USB). Еще до принятия стандарта IEEE 1394 Sony разработала совместимый интерфейс под названием iLink практически тот же самый FireWire, только заточенный под бытовую электронику.
Отметим также, что IEEE 1394 входит как составная часть в спецификации интерфейса Serial SCSI.
FireWire применяется в основном для подключения различных скоростных ме диа-устройств — видео- и фотокамер, внешних дисков и оптических приводов, а также мобильных рэков. "Базовый" FireWire 400 (в настоящее время под ним, как правило, подразумевается усовершенствованная версия IEEE 1394a, а не оригинальная IEEE 1394) имеет кабель с шестью проводниками, заимствованный, между прочим, у игровой приставки Nintendo GameBoy. Из них четыре проводника представляют собой две витые пары ("данные" и "стробы"), а по двум оставшимся подается довольно мощное питание (от 8 до 30 В, 1,5 А). Соответственно, разъемов тоже два типа: полный шестиконтактный и более миниатюрный четырехконтактный (без питания), использующийся в малогабаритных устройствах (вроде карманных видеокамер).
На мой взгляд, проблема с питанием в 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 появилась 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 достаточно четырехпроводного кабеля (два провода питания и дифференциальная витая пара для передачи данных) плюс экрана, который объединяет между собой корпуса устройств.
USB-разъемы спроектированы так, чтобы сначала замыкались экраны, затем входили в контакт шины питания (если вы заглянете внутрь USB-разъема типа A или mini, то увидите, что крайние контакты выдвинуты вперед) и в последнюю очередь — сигнальные линии. Тем самым обеспечивается беспроблемное горячее подключение.
Стандартом предусматривается четыре типа разъемов USB — А, В, mini-А и mini-B.
Разъем типа А (плоский) устанавливается со стороны ведущего устройства[Это необязательно компьютер. Например, принтеры с поддержкой прямой печати тоже имеют отдельный разъем типа А — для подключения камер.], а типа В (квадратный) — ведомого; соответственно, большинство соединительных кабелей и имеют эту конфигурацию — А-В.
Разъемы A и B имеют по четыре контакта.С mini-USB все не так однозначно.
Разъемы mini-A применяются редко (миниатюрные устройства, как правило, являются ведомыми), потому для них даже не предусмотрено отдельной конфигурации, все mini-гнезда в принципе одинаковы и отличаются лишь цветом пластмассы (mini-A — белый, mini-B — черный, универсальный mini A/B — серый). Но так утверждает стандарт, на практике же среди производителей царил разброд. Стандартом предусматривается 5-контактный разъем mini-USB. Пятый контакт (по порядку в разъеме он четвертый) дополнительный и либо никуда не подсоединяется, либо может использоваться в особых целях — например, для идентификации состояния перегрузки шины питания. Но в начале тысячелетия производители, кажется, специально соревновались в том, чтобы сделать свои гаджеты как можно более несовместимыми друг с другом. Я встречал по крайней мере три разновидности mini-USB — 5-контактный и более узкие 4-контактные двух разновидностей.
Сейчас эта пестрота, впрочем, сходит на нет — все новые устройства снабжаются стандартными разъемами, одинаковыми и для цифровых камер, и для КПК, потому соединительные кабели полностью взаимозаменяемы. Чудить продолжают разве что некоторые производители мобильников, в которых еще можно встретить самые разные вариации на тему подсоединения к компьютеру по USB.[Одно из самых неудачных, на мой взгляд, решений — у Nokia, зачем-то сделавшей в ряде моделей универсальный разъем на все про все, причем крайне ненадежной конструкции.]
Универсальность и обусловила широкое распространение USB: к одном и тому же порту можно подключать любое устройство, от мыши до навороченного принтера. Для тех устройств, которые поддерживают старые интерфейсы (например, широко распространены научные приборы с СОМ-выходом), существуют переходники. В принципе, с помощью USB можно даже организовывать сети, но на практике, конечно, этого никто не делает — в отличие от FireWire, который изначально проектировался с учетом удобного соединения разных по природе устройств в единый комплекс. А для того, чтобы обеспечить, например, прямое подключение камеры к принтеру по USB, пришлось придумывать специальную разновидность USB OTG (On-TheGo). В соответствии с веяниями моды в 2005 году появился и беспроводной вариант Wireless USB, только вот ажиотажа по его поводу что-то не наблюдается.
В стандарте FireWire, еще при разработке версии IEEE 1394, постарались сделать все возможное, дабы обеспечить как можно более высокую реальную скорость передачи данных. IEEE 1394a и b были значительно усовершенствованы в этом отношении. Например, при непрерывной передаче (как и происходит в обычных мультимедиа-устройствах) подтверждение приема пакета данных производится только первый раз, в дальнейшем пакеты могут следовать непрерывно друг за другом. И таких ухищрений довольно много: в IEEE 1394b, например, введена возможность определения времени отклика конкретной линии, что поз воляет оптимизировать протокол передачи. Немаловажно и то, что к шине FireWire может быть подключено несколько устройств, передающих данные каждое со своей скоростью и при этом не мешающих друг другу, вплоть до того, что при отсоединении одного из них поток данных от других не прерывается.
Наряду с этим USB имеет значительные задержки при запросах на передачу данных, и, кроме того, "общение" производится по принципу master/slave, то есть передачей управляет одна сторона. Обычно это компьютер, в котором для данной цели задействуются ресурсы центрального процессора, что тоже не ускоряет процесс.
Нельзя сказать, что реальная скорость передачи не соответствует декларированной, просто не гарантирована ее стабильность за все время обмена информацией.
Поэтому снобизм (действительный или мнимый) поклонников стандарта IEEE 1394 совершенно оправдан: FireWire 400 и правда быстрее USB 2.0, по крайней мере приработе с потоковыми данными. Другое дело, что далеко не во всех случаях это важно. Вряд ли вы заметите разницу в интерфейсах при обычной работе с внешним жестким диском, когда данные небольшими порциями перекачиваются туда-сюда. И совсем уж безразлично, какой интерфейс выбирать для внешнего оптического привода. А если скорость передачи действительно критична, выбирайте SATA, который заведомо быстрее, чем любой из "обычных" интерфейсов, за исключением разве что упомянутого FireWire S3200.
Вторая версия стандарта USB, вероятно, поставила рекорд долгожительства. USB 2.0 появился, как мы говорили, еще в 2000 году, а за истекшее время были представлены аж четыре модификации FireWire. Меж тем версия USB 3.0 с декларируемым десятикратным повышением скорости передачи ожидается лишь в этом году, а распространение поддерживающих ее гаджетов — еще годом позже.
Почему Intel, возглавляющая группу разработчиков USB, так долго тянула с организацией работ над новым стандартом (USB 3.0 Promoter Group была образована только в 2007 году), мы вряд ли узнаем, но можно предположить, что тут замешаны как объективные причины (дороговизна и сложность технологии, даже с USB 2.0 у разработчиков были трудности), так и субъективные: а оно надо?
Не будем размышлять над этим философским вопросом, а просто посмотрим, что предлагается. Во-первых, полная обратная совместимость — контакты для USB 3.0 и USB ранних версий будут разнесены в разъеме пространственно (рис. 3), но тип разъема не изменится. Во-вторых, ожидается введение системы приоритетов для трафика (Quality of Service), что позволит, наконец, конкурировать с FireWire в области скоростной потоковой передачи. Для передачи служебной информации будет предусмотрен отдельный канал, а сама передача станет пакетной, как в FireWire. Скорость SuperSpeed USB (так Intel предлагает назвать новый стандарт) может составить 4,8 Гбит/с (600 Мбайт/с), причем поддерживается и оптоволокно, и медная пара.
Новая технология, наверное, придется по вкусу видеолюбителям — действительно, перекачать 25 Гбайт фильма с носителя типа Blu-ray на жесткий диск можно будет всего за 70 секунд. Устройства, совместимые с USB 3.0, вероятно, поступят в продажу в конце 2009 — начале 2010 года.
Ловите!