Интерфейс USB был разработан лидерами компьютерной и те- лекоммуникационной промышленности (Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom) для подключения компьютер- ной периферии вне корпуса ПК с автоматическим автоконфигури- рованием (Plug&Play). Первая версия стандарта появилась в 1996 г. Интерфейс USB представляет собой последовательную, полуду-
плексную, двунаправленную шину со скоростью обмена:
USB 1.1 – 1,5 или 12 Мбит/с;
USB 2.0 – 480 Мбит/с.
Шина позволяет подключить к ПК до 127 физических уст- ройств. Каждое физическое устройство может, в свою очередь, со- стоять из нескольких логических (например, клавиатура со встроенным манипулятором-трекболом).
Кабельная разводка USB начинается с узла (host) (рис. 76). Хост обладает интегрированным корневым концентратором (root hub), который предоставляет несколько разъемов USB для подключения внешних устройств. Затем кабели идут к другим устройствам USB, которые также могут быть концентраторами, и функциональным компонентам (например, модем или акустическая система). Кон- центраторы часто встраиваются в мониторы и клавиатуры (которые являются типичными составными устройствами). Концентраторы могут содержать до семи «исходящих» портов.
Рис.76.Топология подключения устройств к USB
Хабы – это устройства, которые позволяют физически подклю- чить устройства USB к шине. Они предоставляют порты для под- ключения, ретранслируют трафик от хост-контроллера к конечным устройствам и обратно, отслеживают состояние и физически управляют электропитанием портов. У хабов есть один восхо- дящий (upstream) порт, – это тот порт, который подключен по направлению к хост-контроллеру, и несколько нисходящих (downstream) портов, – это порты, к которым подключаются конеч- ные устройства. Хабы можно каскадировать, подключая к нисхо- дящему порту хаба еще один хаб. Самый главный хаб, интегрированный с хост-контроллером, называется корневым ха- бом (он же – корневой концентратор или root hub).
Другими словами, можно сказать, что у хаба есть две основных задачи:
создать хост-контроллеру иллюзию, что он непосредственно разговаривает с подключенным к хабу устройством;
наблюдать за своим сегментом шины (за девайсами, подклю- ченными к нисходящим портам), сообщать «наверх» обо всех из- менениях и, если надо, – подключать и отключать питание портов.
Конечные устройства – это все те полезные устройства, которые мы подключаем к шине USB (флэшки, принтеры, мышки и т. д.)
Для передачи сигналов шина USB использует четырехпровод- ной интерфейс. Одна пара проводников («+5В» и «общий») пред- назначена для питания периферийных устройств с нагрузкой до 500 мА. Данные передаются по другой паре проводов. Для переда- чи данных используются дифференциальные напряжения до 3 В (с целью снижения влияния шума) и схема кодирования NRZI (что избавляет от необходимости выделять дополнительную пару про- водников под тактовый сигнал).
Интерфейс USB 1.1 декларирует два режима:
низкоскоростной подканал (пропускная способность – 1,5 Мбит/с), предназначенный для таких устройств, как мыши и клавиатуры;
мальную пропускную способность 12 Мбит/с, что может использо- ваться для подключения внешних накопителей или устройств обработки и передачи аудио- и видеоинформации.
Все концентраторы должны поддерживать на своих исходящих портах устройства обоих типов, не позволяя высокоскоростному
трафику достигать низкоскоростных устройств. Высокопроизводи- тельные устройства подключаются с помощью экранированного кабеля, длина которого не должна превышать 3 м. Если же устрой- ство не формулирует особых требований к полосе пропускания, его можно подключить и неэкранированным кабелем (который может быть более тонким и гибким). Максимальная длина кабеля для низ- коскоростных устройств – 5 м. Требования устройства к питанию (диаметр проводников, потребляемая мощность) могут обусловить необходимость использования кабеля меньшей длины. Из-за осо- бенностей распространения сигнала по кабелю число последова- тельно соединенных концентраторов ограничено шестью (или семью) пятиметровыми отрезками кабеля.
Хост узнает о подключении или отключении устройства из со- общения от концентратора (эта процедура называется опросом шины – bus enumeration). Затем хост присваивает устройству уни- кальный адрес USB (1:127). После отключения устройства от шины USB его адрес становится доступным для других устройств.
Хост опрашивает все устройства и выдает им разрешения на пе- редачу данных (рассылая для этого пакет-маркер – Token Packet). Таким образом, устройства лишены возможности непосредствен- ного обмена данными – все данные проходят через хост. Это усло- вие сильно мешало внедрению интерфейса USB на рынок портативных устройств. В результате в конце 2001 г. было принято дополнение к стандарту USB 2.0 – спецификация USB OTG (On-The-Go), предназначенная для соединения периферийных USB-устройств друг с другом без необходимости подключения к хосту (например, цифровая камера и фотопринтер). Устройство, поддерживающее USB OTG, способно частично выполнять функ- ции хоста и распознавать, когда оно подключено к полноценному хосту (на основе ПК), а когда – к другому периферийному устрой- ству. Спецификация описывает также протокол согласования вы- бора роли хоста при соединении двух USB OTG-устройств.
Архитектура USB допускает четыре базовых типа передач дан- ных между хостом и периферийными устройствами:
Изохронные передачи (isochronous transfers) – потоковые пе- редачи в реальном времени, занимающие предварительно согласо- ванную часть пропускной способности шины с гарантированным временем задержки доставки. На полной скорости (FS) можно
организовать один канал с полосой до 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно занять и менее емкими каналами). На высокой скорости (HS) можно полу- чить канал до 24 Мбайт/с (192 Мбит/с). Надежность доставки не гарантируется – в случае обнаружения ошибки изохронные данные не повторяются, недействительные пакеты игнорируются. Шина USB позволяет с помощью изохронных передач организовывать синхронные соединения между устройствами и прикладными про- граммами. Изохронные передачи нужны для потоковых устройств: видеокамер, цифровых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD). Видеопоток (без компрессии) шина USB способна переда- вать только на высокой скорости.
Прерывания (interrupts) – передачи спонтанных сообщений, которые должны выполняться с задержкой не большей, чем требу- ет устройство. Предел времени обслуживания устанавливается в диапазоне 10–255 мс для низкой и 1–255 мс для полной скорости. На высокой скорости можно заказать и 125 мкс. Доставка гаранти- рована, при случайных ошибках обмена выполняется повтор (прав- да, при этом время обслуживания увеличивается). Прерывания используются, например, при вводе символов с клавиатуры или передаче сообщений о перемещениях мыши. Прерываниями можно передавать данные и к устройству (как только устройство сигнали- зирует о потребности в данных, хост своевременно их передает). Размер сообщения может составлять 0–8 байт для низкой скорости, 0–64 байт – для полной и 0–1024 байт – для высокой скорости пе- редачи.
Передачи массивов данных (bulk data transfers) – это переда- чи без каких-либо обязательств по своевременности доставки и по скорости. Передачи массивов могут занимать всю полосу пропус- кания шины, свободную от передач других типов. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Доставка гарантированная – при случайной ошибке выполняется повтор. Передачи массивов уместны для обмена дан- ными с принтерами, сканерами, устройствами хранения и т. п.
Управляющие передачи (control transfers) используются для конфигурирования устройств во время их подключения и для управ- ления устройствами в процессе работы. Протокол обеспечивает
гарантированную доставку данных и подтверждение устройством успешности выполнения управляющей команды. Управляющая передача позволяет подать устройству команду (запрос, возможно, с дополнительными данными) и получить на него ответ (подтвер- ждение или отказ от выполнения запроса и, возможно, данные). Только управляющие передачи на USB обеспечивают синхрониза- цию запросов и ответов; в остальных типах передач явной синхро- низации потока ввода с потоком вывода нет.
Высокая помехозащищенность USB обусловлена следующими факторами:
высокое качество сигналов, достигаемое благодаря дифферен- циальным приемникам/передатчикам и экранированным кабелям;
защита полей управления и данных CRC-кодами;
независимость функций от неудачных обменов с другими функциями;
обнаружение подключения и отключения устройств и конфи- гурирование ресурсов на системном уровне;
управление потоком для обеспечения изохронности и управ- ления аппаратными буферами;
самовосстановление протокола с тайм-аутом при потере па- кетов.