COM умер! Да здравствует USB!
Одна из немногих вещей, дошедших до нас в неизменном виде с начала 80-х годов, когда только
начала зарождаться архитектура IBM PC совместимых компьютеров, это 2 последовательных порта. Даже
параллельный порт, и тот модифицировался, практически ни на одном из современных PC вы не
увидите "чистого" SPP порта - это будет его либо EPP, либо ECP модификация. Не найдете
вы на последних материнских платах и привычного разъема для клавиатуры - его заменило компромиссное
решение - 2 PS/2 порта. Таким образом, - единственное, что осталось неизменным в течение вот уже
почти 20 лет - это два COM порта на материнской плате. Но 20 лет - это гигантский срок для
развивающегося стремительными темпами PC, представляющего собой вихрь непрерывно рождающихся и
умирающих архитектур.
Со временем, недостатки последовательного порта все ярче проявлялись для пользователей, а
значит и для производителей. В конце концов меры надо было принимать загодя, и в 1995 году семь
компаний выдвинули инициативу универсальной последовательной шины - USB. Героев надо знать в
лицо: Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom - краса и гордость,
ниспровергатели авторитетов и выдвигатели инициатив.
Зачем понадобилась USB? Причин, если вдуматься, более чем достаточно. В принципе, если свести
характеристики претендентов на звание внешнего интерфейса в одну таблицу, большинство из
ограничений COM портов будет видно как на ладони:
| Интерфейс |
Возможность "горячей замены" |
Количество поддерживаемых устройств |
Пропускная способность |
Возможность подключения по цепочке |
Макс. длина кабеля |
| Последовательный порт |
Нет |
1 |
112.5 Кбит/с |
Нет |
1 м |
| Параллелльный порт |
Нет |
1 |
600 Кбит-1.5 Мбит/с |
Нет |
4 м |
| USB |
Да |
127 |
1.5-12 Мбит/c |
Да |
5 м |
| FireWire |
Да |
63 |
100 - 400 Мбит/c |
Да |
4.5 м |
| Стандартный PC обычно имеет
два последовательных и один параллелльный порт.
Можно использовать разветвители, но все равно, к
каждому порту в одно время может быть подключено
только одно устройство. Кроме того, чаще всего
один из COM портов уже занят мышью. |
В так сказать "бытовом" плане это выражается как в невозможности одновременного
подключения более двух внешних устройств к COM портам. В ограничении по скорости, делающим
невозможным подключение многих образцов современной периферии. В невозможности "на лету"
поменять подключенные устройства.
Особенно остро встает проблема нехватки COM портов по мере того, как периферия набирается
интеллекта. Так, например, джойстику с Force Feedback, помимо обычного порта для джойстика,
требуется еще и COM порт, найти который, на машине с мышью и модемом, мягко выражаясь
сложновато. И подобных устройств, претендующих на постоянное или временное подключение к
компьютеру, постепенно становится все больше.
Так что USB в этой ситуации весьма и весьма пришлась ко двору. Однако, рождение ее легким
не назовешь - достаточно сказать, что спецификация 0.9 вышла еще аж в ноябре 95 года. Вроде
бы, при таких то семи няньках, дитя должно быть весело и счастливо. Однако, судьба распорядилась
несколько иначе.
Беда была в отсутствии четкого взаимодействия между производителями аппаратного обеспечения
и производителем программного. ;-) Сложился замкнутый круг: производители периферии ждали,
пока Microsoft обеспечит надежную работу Windows и USB, а Microsoft, не желая утруждать себя
лишней работой по написанию драйверов для экзотического оборудования, предпочитала подождать,
пока наберется критическая масса оборудования.
В результате, несмотря на то, что Intel, как один из создателей USB, встроил контроллер USB
еще аж в 430VX и 430HX, внешне на компьютерах это практически никак не сказалось. Производители
материнских плат в более-менее массовом порядке начали выводить USB порты "на поверхность"
только с появлением TX, а в качестве стандартной принадлежности два USB коннектора появились в
группе разъемов материнской платы только с появлением ATX.
Однако, даже несмотря на то, что уже в конце 97 года большинство PC продавались "USB
ready", о массовости USB говорить было просто смешно. Подвели смежники: Windows 95 в
своем первоначальном виде практически не умела работать c USB. Это положение в какой то мере
исправил Service Release Patch 2.1, известный также как USB Supplementary Patch. Однако, патч -
это совсем не "коробочная" операционная система, что прямым путем сказалось на
распространенности Windows OSR 2.1. Таким образом, неустойчивое равновесие "нет драйверов -
нет и железа" тянулось до выхода Windows 98.
С ее выходом положение резко изменилось: полная поддержка USB применялась Microsoft в
качестве одного из аргументов в необходимости перехода с Windows 95 на Windows 98. (Да мы все
еще помним тот эпизод, с повисшей при демонстрации Биллом Гейтсом, бета версии Windows 98.
В тот момент как раз демонстрировалось подключение "на лету" USB сканера уже почившей
с миром фирмы Storm Technology.)
Разогнавшись, Microsoft даже одной из первых представила варианты своих периферийных
устройств, "портированные" на USB: Natural Keyboard и Intellimouse. Впрочем ради
этих двух продуктов огород городить никак не стоило - в 98 году PC были готовы к USB, как на
аппаратном, так и на программном уровне. Дело оставалось за разработчиками периферии.
На сей раз, подкрепленные поддержкой с обеих сторон, производители с удовольствием
откликнулись. Весь 98 год либо новые продукты сразу шли с интерфейсом USB, либо предлагались
варианты старых моделей с этим интерфейсом. Если конкретнее, то только с момента выхода
Windows 98 было выпущено или анонсировано более 60 устройств, использующих эту шину. Причем, за
счет гораздо большей пропускной способности (12 Мбит/c на все) в сторону нового интерфейса
начали поглядывать те, кто еще недавно презрительно посматривал на 112 Кбит/c СOM портов:
принтеры, сканеры, видеокамеры, внешние накопители данных.
Хотя, если нагрузить на каждый порт столько, сколько он по максимуму способен тянуть
(127 устройств), то получится ситуация, напоминающая известный анекдот: "А теперь со всем
этим попробуем взлететь". Легко прикинуть, что если одна только видеокамера потребляет
в среднем 4.5 Мбит/с... А ведь есть еще USB колонки, получающие через шину цифровой аудиопоток,
есть принтер, тоже не отличающийся малым аппетитом, модем и т.д. В общем, в качестве более-менее
оптимальной цифры, скорее можно назвать четыре-пять устройств.
К тому же, помимо ограниченной пропускной способности USB (хотя, при всей своей
ограниченности, просто несравнимой с COM портом), есть еще вопрос с питанием. Теоретически, как
мышь или клавиатура, USB устройства получают питание непосредственно с интерфейса. Однако, так
же, как и пропускная способность, мощность, предоставляемая USB конечна, хотя в данном случае
легко можно обойти это затруднение за счет использования USB концентраторов с питанием от
сети.
Вполне в духе современной тенденции к упрощению пользования PC и чуть ли не придания ему
статуса собрата видеомагнитофона, выполнена процедура подключения USB периферии. Все происходит
"на лету", при включенном PC, сразу после подключения периферии, в Windows 98 сразу,
без необходимости запуска New Hardware Wizard, появляется примерно вот такое окошко, после
чего устройство сразу готово к работе. Первый раз система просит вставить компакт или диск
производителя, в последующем же при подключении/отключении устройства, соответствующие изменения
в списке устройств будут происходить мгновенно.
Схема выполняемых в этом случае действий довольно проста. При подключении устройства,
USB-контроллер чувствует скачок напряжения в цепочке, и запрашивает вновь подключившееся
устройство о его типе, производителе, назначении и требуемой пропускной способности. Также
устройству при этом назначается уникальный идентификационный номер. Когда процесс определения
завершен, соответствующий драйвер загружается в операционную систему. Вся настройка подключенных
устройств выполняется контроллером и работающим с ним программным обеспечением. Никаких
вопросов об IRQ, адресах портов и DMA больше не будет.
Что интересно, в данном примере, при подключении клавиатуры, в ветви Keyboard Device
Manager'a, появляется некое многоэтажное сооружение, обеспечивающее для приложений, в каком-то
смысле "призрак" обычной клавиатуры. Верхний лист (а на деле наоборот - обеспечивающий
низкоуровневое взаимодействие с контроллером USB) - это член класса "Human Interface
Device", в который в Windows попадают и USB колонки, и мониторы, да практически все что
угодно, использующее USB. Чайник, управляемый через USB, тоже может в принципе считаться
HID-устройством.
Кстати, по поводу USB мониторов. Нет, они не позволяют обойтись без видеокарты, как порой
кто-то заключает, проводя аналогию с USB колонками, действительно дающими возможность
избавиться от карты звуковой. Сегодня USB в применении к мониторам - это всего лишь
концентратор, призванный сделать более удобной процедуру подключения периферии. Впрочем, кое-что
в этом направлении меняется. И пусть пока речь не идет о столь кардинальных мерах, как
избавление от видеокарты, но, в скором времени, скорее всего USB мониторы избавятся от органов
управления, доверяя, подобно USB колонкам, эту функцию программному обеспечению. Как это
уже сделал, например, CTX, сведя в Control Panel воедино все функции управления изображением -
как видеокартой, так и монитором.
Что забавно, USB стала истинной преемницей Com-порта, на новом уровне возродив старый способ
связи между PC. Возьмем, для примера EZ-Link от Anchor Chips. Так же как и при связи через
Com-порты не надо возиться с настройкой сетевых карт, точно также достаточно всего лишь
подключить кабель на двух PC. Только при использовании не надо перезагружать компьютеры,
скорость связи составляет 3 Мбит/с против максимум 112 Кбит/с. И вместо не совсем, скажем
так, удобного протокола связи Com-портов используется стандартный Ethernet, то есть, сеть будет
видеть любая современная программа или игра. Все вышеперечисленные отличия не являются чем то
грандиозным, скорее их можно выразить во фразе "Мелочь, а приятно".
Более того, пожалуй, эту же характеристику можно отнести и к самой шине USB. В большинстве
случаев вряд ли вы захотите без какой то дополнительной причины менять, скажем, свою PS/2 мышь
на ее USB вариант - в принципе, без большого труда можно обойтись без всех мелких удобств,
предоставляемых шиной USB. Вряд ли это все стоит лишних хлопот и траты денег. С другой стороны,
при вызванной каким либо другим фактором необходимости замены периферии, следует без колебаний
предпочесть модель с интерфейсом USB. В этой технологии хватает положительных черт,
складывающихся во вполне симпатичный облик.
Комментарии? Поправки? Дополнения? gavric@ixbt.com
|