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. В этой технологии хватает положительных черт, складывающихся во вполне симпатичный облик.




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.