PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

USB

Применение USB

Благодаря универсальности и способности эффективно передавать разнородный трафик шина USB применяется для подключения к PC самых разнообразных устройств. Она призвана заменить традиционные порты PC — COM и LPT, а также порты игрового адаптера и интерфейса MIDI. Спецификация USB 2.0 позволяет говорить и о подключении традиционных «клиентов» шин ATA и SCSI, а также захвате части ниши применения шины FireWire. Привлекательность USB придает возможность подключения/отключения устройств на ходу и возможность их использования практически сразу, без перезагрузки ОС. Удобна и возможность подключения большого количества (до 127) устройств к одной шине, правда, при наличии хабов. Хост-контроллер интегрирован во все современные системные платы. Выпускаются и карты расширения с контроллерами USB (обычно для шины PCI). Некоторое время повсеместное применение USB сдерживалось недостаточной активностью разработчиков ПО (производителей оборудования): просматривая перечни устройств, можно было видеть, что для всех указывается поддержка в Windows 98/SE/ME, а вот в графах Linux, MacOS, Unix и даже Windows 2000/NT часто стоят неприятные пометки N/A (Not Allowed — «не дозволено»). В настоящее время ситуация меняется (теперь возникают проблемы поиска драйверов для Windows 9x), но вопросы совместимости ПО иногда доставляют дополнительные хлопоты.

Для того чтобы система USB заработала, необходимо, чтобы были загружены драйверы хост-контроллера (или контроллеров, если их несколько). При подключении устройства к шине USB ОС Windows выдает сообщение «Обнаружено новое устройство» и, если устройство подключается впервые, предлагает загрузить для него драйверы. Многие модели устройств уже известны системе, и драйверы входят в дистрибутив ОС. Однако может потребоваться и драйвер изготовителя устройства, который должен входить в комплект поставки устройства, или его придется искать в Сети. К сожалению, не все драйверы работают корректно — «сырой» драйвер начальной версии, возможно, потребуется заменить более «правильным», чтобы устройство нормально опознавалось и хорошо работало. Но это общее горе пользователей любых устройств, а не только устройств для шины USB.

Перечислим основные области применения USB:

  • устройства ввода — клавиатуры, мыши, трекболы, планшетные указатели и т. п. Здесь USB предоставляет единый интерфейс для различных устройств. Целесообразность использования USB для клавиатуры в настольных ПК пока не очевидна (порты клавиатуры и мыши PS/2 есть на всех системных платах), хотя в паре с мышью USB (подключаемой к порту хаба, встроенного в клавиатуру) сокращается количество кабелей, тянущихся от системного блока к столу пользователя;
  • принтеры. USB 1.1 обеспечивает почти ту же скорость, что и LPT-порт в режиме ECP, но при использовании USB не возникает проблем с длиной кабеля и подключением нескольких принтеров к одному компьютеру (правда, требуются хабы). USB 2.0 позволит ускорить печать в режиме высокого разрешения за счет сокращения времени на передачу больших массивов данных. Однако существует проблема со старым ПО, которое непосредственно работает с LPTпортом на уровне регистров, — на принтер USB оно печатать не сможет;
  • сканеры. Применение USB позволяет отказаться от контроллеров SCSI или от занятия LPT-порта. USB 2.0 при этом позволяет еще и повысить скорость передачи данных;
  • аудиоустройства — колонки, микрофоны, головные телефоны (наушники). USB позволяет передавать потоки аудиоданных, достаточные для обеспечения самого высокого качества. Передача в цифровом виде от самого источника сигнала (микрофона со встроенным преобразователем и адаптером) до приемника и цифровая обработка в хост-компьютере позволяют избавиться от наводок, свойственных аналоговой передаче аудиосигналов. Использование USB-аудиокомпонентов позволяет в ряде случаев избавиться и от звуковой карты компьютера—аудиокодек (АЦП и ЦАП) выводится за пределы компьютера, а все функции обработки сигналов (микшер, эквалайзер и т. п.) реализуются центральным процессором чисто программно. Аудиоустройства могут и не иметь собственных колонок и микрофона, а ограничиться преобразователями и стандартными гнездами («джеками») для подключения обычных аналоговых устройств;
  • музыкальные синтезаторы и MIDI-контроллеры с интерфейсом USB. Шина USB позволяет компьютеру обрабатывать потоки множества каналов MIDI (пропускная способность традиционного интерфейса MIDI уже гораздо ниже возможностей компьютера);
  • фото- и видеокамеры. USB 1.1 позволяет передавать статические изображения любого разрешения за приемлемое время, а также передавать поток видеоданных (живое видео) с достаточной (25–30 кадров/с) частотой кадров только с невысоким разрешением или сильным сжатием данных, от которого, естественно, страдает качество изображения. USB 2.0 теоретически позволяет передавать поток видеоданных высокого разрешения без сжатия (и потери качества). С интерфейсом USB выпускают как камеры, так и устройства захвата видеосигнала и TV-тюнеры;
  • коммуникации. С интерфейсом USB выпускают разнообразные модемы, включая кабельные и xDSL, адаптеры высокоскоростной инфракрасной связи (IrDA FIR) — шина позволяет преодолеть предел скорости COM-порта (115,2 Кбит/с), не увеличивая загрузку центрального процессора. Выпускаются и сетевые адаптеры Ethernet, подключаемые к компьютеру по USB. Непосредственно (без дополнительных устройств) портами USB соединить между собой даже два компьютера нельзя — на одной шине может присутствовать лишь один хост-контроллер. Специальное устройство для связи пары компьютеров выглядит как «таблетка», врезанная в кабель USB с двумя вилками типа «A» на концах. Объединяющее устройство (USB Link) может располагаться и на системной плате компьютера, с выходом на внешний разъем, — в этом случае компьютеры соединяются просто кабелем, подключаемым к рядовому порту USB одного компьютера и порту USB Link другого. Коммуникационное ПО USB Link позволяет даже строить сеть на основе цепочки соединений по USB. Для соединения нескольких компьютеров в локальную сеть выпускаются специальные устройства, выполняющие коммутацию пакетов между компьютерами. Объединение более двух компьютеров осложняется и топологическими ограничениями USB: длина одного сегмента кабеля не должна превышать 5 м, а использовать хабы для увеличения дальности неэффективно (каждый хаб дает всего 5 м дополнительного расстояния);
  • преобразователи интерфейсов позволяют через порт USB, имеющийся теперь практически на всех компьютерах, подключать устройства с самыми разнообразными интерфейсами: Centronics и IEEE 1284 (LPT-порты), RS-232C (эмуляция UART 16550A — основы COM-портов) и другие последовательные интерфейсы (RS-422, RS-485, V.35...), эмуляторы портов клавиатуры и даже игрового порта, переходники на шину ATA, ISA, PC Card и любые другие, для которых достаточно производительности. Здесь USB становится палочкойвыручалочкой, когда встает проблема подключения к отсутствующему LPT или COM-порту, например, в блокнотном ПК, да и в других ситуациях. При этом ПО преобразователя может обеспечить эмуляцию классического варианта «железа» стандартных портов IBM PC, но только под управлением ОС защищенного режима. Приложение MS-DOS может обращаться к устройствам по адресам ввода-вывода, памяти, прерываниями, каналами DMA, но только из сеанса MS-DOS, открытого в ОС с поддержкой USB (чаще это Windows). При загрузке «голой» MS-DOS «палочка-выручалочка» не работает. Преобразователи интерфейсов позволяют продлить жизнь устройствам с традиционными интерфейсами, изживаемыми из PC спецификациями PC’99 и PC’2001. Скорость передачи данных через конвертер USB — LPT может оказаться даже выше, чем у реального LPT-порта, работающего в режиме SPP. Однако если подключаемое устройство требует интенсивного диалогового обмена (чередований коротких операций ввода и вывода) с ПО, подключение через USB будет работать медленно;
  • устройства хранения — жесткие диски, устройства чтения и записи CD и DVD, стримеры — при использовании USB 1.1 получают скорость передачи, соизмеримую со скоростью их подключения к LPT, но более удобный интерфейс (как аппаратный, так и программный). При переходе на USB 2.0 скорость передачи данных становится соизмеримой с ATA и SCSI, а ограничений по количеству устройств достичь трудно. Особенно интересно использование USB для электронных устройств энергонезависимого хранения (на флэш-памяти) — такой накопитель может быть весьма компактным (размером с брелок для ключей) и емким (от десятка мегабайт до гигабайта и более). Логически эти накопители могут представляться различным образом: просто как устройства хранения (USB Mass Storage, рассмотренные далее) или же как устройства считывания флэшкарт (например, Smart Media Card Reader, хотя у них и нет отделяемой SMCкарты). Выпускаются устройства для мобильного подключения накопителей с интерфейсом ATA-ATAPI — по сути, это лишь преобразователи интерфейсов, помещенные в коробку-отсек формата 5” или 3,5”, а иногда выполненные прямо в корпусе разъема ATA. Имеются и устройства чтения-записи карт SmartMedia Card, CompactFlash Card и других типов флэш-карт, в которые можно вставлять соответствующие носители;
  • игровые устройства — джойстики всех видов (от «палочек» до автомобильных рулей), пульты с разнообразными датчиками (непрерывными и дискретными) и исполнительными механизмами (почему бы не сделать кресло автогонщика с вибраторами и качалками?) — подключаются унифицированным способом. При этом исключается ресурсопожирающий интерфейс старого игрового адаптера (упраздненного уже в спецификации PC’99);
  • телефоны — аналоговые и цифровые (ISDN). Подключение телефонного аппарата позволяет превратить компьютер в секретаря с функциями автодозвона, автоответчика, охраны и т. п.;
  • мониторы — здесь шина USB используется для управления параметрами монитора. Монитор сообщает системе свой тип и возможности (параметры синхронизации) — это делалось и без USB по шине DDC. Однако USB-мониторы позволяют системе устанавливать параметры монитора. Регулировки яркости, контраста, цветовой температуры и т. п. могут теперь выполняться программно, а не только кнопками на лицевой панели монитора. В мониторы, как правило, встраивают хабы. Это весьма полезно, поскольку настольную периферию не всегда удобно включать в «подстольный» системный блок;
  • электронные ключи — устройства с любым уровнем интеллектуальности защиты — могут быть выполнены в корпусе вилок USB. Они гораздо компактнее аналогичных устройств для COM- и LPT-портов.

Конечно же, перечисленными классами устройств сфера применения шины USB не ограничивается.

На современных системных платах имеется встроенный хост-контроллер USB; для плат, выпускаемых с 2002–2003 годов, характерно наличие контроллера USB 2.0 (EHC) с несколькими контроллерами-компаньонами (чаще UHC). Типовое число портов — четыре и более (раньше минимумом было два). В случае поддержки USB 2.0 эти порты могут быть как равноправными (поддерживать подключение на любой скорости), так и выделенными (часть — только HS, часть — FS/LS). Часть портов выводится на внешние разъемы системного блока непосредственно, остальные выводятся на штырьковые разъемы, расположенные на системной плате. К этим промежуточным разъемам внешние разъемы подключаются через кабели«выкидыши». К сожалению, на многих корпусах системного блока отсутствует штатное место для разъемов USB с лицевой стороны, что делает подключение устройств неудобным. Эта проблема решается установкой разъемов на заглушки для 5” или 3,5”отсеков.


ВНИМАНИЕ!
Из-за ошибок при подключении кабеля-«выкидыша» на дополнительных внешних разъемах могут оказаться перепутанными цепи +5V и GND. Из-за такой ошибки подключаемое устройство, питающееся от шины (например, флэш-память), может выйти из строя (сгореть).


Хабы USB выпускаются как в виде отдельных устройств, так и встраиваются в периферийные устройства (клавиатуры, мониторы). Как правило, хабы питаются от сети переменного тока (они должны питать подключаемые устройства). Выпускают и хабы, устанавливаемые внутрь системного блока компьютера и питающиеся от его блока питания. Такие хабы дешевле внешних и не требуют дополнительной питающей розетки. Один из вариантов исполнения — установка хаба на скобку, монтируемую в окно для дополнительных разъемов. Доступ к их разъемам со «спины» системного блока не очень удобен для пользователей. Другой вариант — хаб, устанавливаемый в 3-дюймовый отсек. Его разъемы легко доступны, индикаторы состояния портов хорошо видны, но не всегда удобны кабели, выходящие с передней панели системного блока. С другой стороны, для подключения электронных ключей (если их приходится часто менять) или миниатюрных накопителей этот вариант — самый удобный.

Выпускаются вспомогательные устройства USB, увеличивающие дальность связи (distance extender). Простейший вариант — это обычный 5-метровый кабель USB, на одном конце которого обычная вилка «A», а на другом — миниатюрный однопортовый хаб с гнездом «B». При необходимости между устройством USB и корневым хабом можно использовать цепочку из 5 таких удлинителей, что дает дальность 25 м плюс длина кабеля устройства (до 5 м). Другой вариант — пара устройств, соединяемых между собой обычным кабелем «витая пара» категории 5 (или даже оптоволокном), включаемая между периферийным устройством и корневым хабом. Дальнее (от хоста) устройство этого удлинителя может быть и хабом на несколько портов. К сожалению, увеличение дистанции упирается в ограничения на время задержки сигнала, свойственные протоколу шины USB, и максимально достижимое расстояние составляет 200 футов (около 60 м). Уже с удлинителем на 50 м дополнительные хабы недопустимы — задержка сигнала в кабеле «съедает» лимиты, отпущенные хабам в спецификации USB. Но даже и эта длина позволяет расширить сферу применения USB, например, для удаленного видеонаблюдения. Утверждения изготовителей о достижимой дальности 100 м (а на оптике и до 500 м!) вызывают некоторое недоверие, поскольку ограничения дальности в спецификации USB жестко ограничено установками тайм-аутов ожидания ответа, а быстрее света сигналы в кабелях разогнать не удается.

Далее рассматриваются подробности реализации взаимодействия по шине USB с устройствами некоторых классов. Эти примеры позволяют осмыслить прикладные возможности USB, их можно использовать как отправные точки для разработки собственных устройств, в том числе и совершенно оригинальных по функциональному назначению. Последний раздел главы посвящен разрешению проблем, возникающих при подключении устройств, в том числе и устройств собственной
разработки.