USB (Universal Serial Bus, универсальная последовательная шина). Что такое шина USB? Последовательная шина usb режимы передачи данных

USB (Universal Serial Bus - универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники.

Приеимущества шины:

  • USB устройство может быть подсоединено к компьютеру в любой момент времени, даже когда включен;
  • когда компьютер обнаруживает подключенное USB устройство, он автоматически опрашивает его, чтобы узнать его возможности и требования;
  • производит загрузку драйвера, а при отключении устройства драйвер автоматически выгружается;
  • USB устройство не использует джемперов, DIP переключателей, никогда не вызывает конфликтов прерываний, DMA, памяти;
  • расширяющие USB хабы позволяют подключать к одной шине большое количество устройств (до 127 устройств);
  • низкая стоимость USB устройств.

Возникновение USB сделало возможным создание USB Flash Drive (USB-накопитель).

История создания и развития интерфейса USB

Первая версия компьютерного интерфейс USB появилась 15 января 1996 года. Инициаторами проекта был альянс 7 крупных компаний производителей Intel, DEC, IBM, Northen Telecom, Compaq.

Причиной возникновения нового стандарта для передачи информации, послужила желание упростить соединение ПК с периферийными устройствами. Основная цель стандарта, была создать для пользователей возможность пользоваться таким интерфейсом, который бы обладал максимальной простотой, универсальностью, и использовал принцип Plug&Play или горячее соединение.

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

Все эти задачи успешно были решены к концу 1996 года, а к весне 1997 года, стали появляться первые ПК, оборудованные разъёмами USB. Полная поддержка USB устройств была осуществлена только к концу 1998 года, в операционной системе Windows98, и только с этого этапа, началось особенно бурное развитие и выпуск периферийного оборудования, оснащённого этим интерфейсом.

По-настоящему массовое внедрение USB началось с широким распространением корпусов и системных плат форм-фактора ATX примерно в 1997-1998 годах. Не упустила шанс воспользоваться достижениями прогресса и компания Apple, представившая 6 мая 1998 года свой первый iMac, также оснащенный поддержкой USB.

Этот стандарт был рождён, в то время, когда уже существовал аналогичный последовательный интерфейс передачи данных, разработанный Apple Computer и имел название FireWare или IEE1394. USB - интерфейс был создан, как альтернатива IEE1394, и был призван не заменить его, а существовать параллельно уже существующему типу соединений.

Первая версия USB имела некоторые проблемы совместимости и содержала несколько ошибок в реализации. В итоге, в ноябре 1998 года вышла спецификаций USB 1.1.

Спецификация USB 2.0 была представлена в апреле 2000 года. Но до принятия ее в качестве стандарта прошло больше года. После этого началось массовое внедрение второй версии универсальной последовательной шины. Главным ее достоинством было 40-кратное увеличение скорости передачи данных. Но кроме этого были и другие нововведения. Так появились новые типы разъемов Mini-B и Micro-USB, добавилась поддержка технологии USB On-The-Go (позволяет USB-устройствам вести обмен данными между собой без участия USB-хоста), появилась возможность использования напряжения, подаваемого через USB, для зарядки подключенных устройств.

Принцип работы шины USB

USB обеспечивает обмен данными между хост-компьютером и множеством периферийных устройств (ПУ). Согласно спецификации USB, устройства (device) могут являться хабами, функциями или их комбинацией. Хаб (hub) только обеспечивает дополнительные точки подключения устройств к шине. Устройство-функция (function) USB предоставляет системе дополнительные функциональные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Комбинированное устройство (compound device), реализующее несколько функций, представляется как хаб с подключенными к нему несколькими устройствами.

Работой всей системы USB управляет хост-контроллер (host controller), являющийся программно-аппаратной подсистемой компьютера. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств.

Шина USB является хост-центрической: единственным ведущим устройством, которое управляет обменом, является хост-компьютер, а все присоединенные к ней периферийные устройства - исключительно ведомые. Физическая топология шины USB - многоярусная звезда. Ее вершиной является хост-контроллер, объединенный с корневым хабом (root hub). Хаб является устройством-разветвителем, кроме того, он может являться источником питания для подключенных к нему устройств. К каждому порту хаба может непосредственно подключаться периферийное устройство или промежуточный хаб; шина допускает до 5 уровней каскадирования хабов (не считая корневого). Каждый промежуточный хаб имеет несколько нисходящих (downstream) портов для подключения периферийных устройств (или нижележащих хабов) и один восходящий (upstream) порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба.

К USB-хосту сходятся данные от подключенных устройств и он же обеспечивает взаимодействие с компьютером. Все устройства подключаются по топологии "звезда". Чтобы увеличить число активных разъемов USB можно воспользоваться USB-хабами. Таким образом получится аналог логической структуры "дерево". "Ветвей" у такого дерева может быть до 127 штук на один хост-контроллер, а уровень вложенности USB-хабов не должен превышать пяти. Кроме того, в одном USB-хосте может быть несколько хост-контроллеров, что пропорционально увеличивает максимальное число подключенных устройств.

Хабы бывают двух видов. Одни просто увеличивают число USB-разъемов в одном компьютере, а другие позволяют подключать несколько компьютеров. Второй вариант позволяет использовать нескольким системам одни и те же устройства. В зависимости от хаба переключение может производится как вручную, так и автоматически.

Одно физическое устройство, подключенное через USB, может логически подразделяться на "под-устройства", выполняющие те или иные определенные функции. Например, у веб-камеры может быть встроенные микрофон - получается, что у нее два под-устройства: для передачи аудио и видео.

Передача данных происходит через специальные логические каналы. Каждому USB-устройству может быть выделено до 32 каналов (16 на прием и 16 на передачу). Каждый канал подключается к условно называемой "конечной точке". Конечная точка может либо принимать данные, либо передавать их, но не способна делать это одновременно. Группа конечных точек, необходимых для работы какой-либо функции, называется интерфейсом. Исключение составляет "нулевая" конечная точка, предназначающаяся для конфигурации устройства.

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

В отличие от шин расширения (ISA/EISA, PCI, PC Card), где программа взаимодействует с устройствами путем обращений по физическим адресам ячеек памяти, портов ввода-вывода, прерываниям и каналам DMA, взаимодействие приложений с устройствами USB выполняется только через программный интерфейс. Этот интерфейс, обеспечивающий независимость обращений к устройствам, предоставляется системным ПО контроллера USB.

Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель, при этом два провода (витая пара) в дифференциальном включении используются для приёма и передачи данных, а два провода - для питания периферийного устройства. Благодаря встроенным линиям питания, шина USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА).

Кодирование данных

Для передачи данных по шине используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Все данные кодируются с помощью метода, называемого NRZI with bit stuffing (NRZI - Non Return to Zero Invert, метод возврата к нулю с инвертированием единиц).

Вместо кодирования логических уровней как уровней напряжения USB определяет логический 0 как изменение напряжения, а логическую 1 как неизменение напряжения. Этот метод представляет собой модификацию обычного потенциального метода кодирования NRZ (Non Return to Zero, невозврат к нулю), когда для представления 1 и 0 используются потенциалы двух уровней, но в методе NRZI потенциал, используемый для кодирования текущего бита, зависит от потенциала, который использовался для кодирования предыдущего бита. Если текущий бит имеет значение 0, то текущий потенциал представляет собой инверсию потенциала предыдущего бита, независимо от его значения. Если же текущий бит имеет значение 1, то текущий потенциал повторяет предыдущий. Очевидно, что если данные содержат нули, то приемнику и передатчику достаточно легко поддерживать синхронизацию - уровень сигнала будет постоянно меняться. А вот если данные содержат длинную последовательность единиц, то уровень сигнала меняться те будет, и возможна рассинхронизация. Следовательно, для надежной передачи данных нужно исключить из кодов слишком длинные последовательности единиц. Это действие называется стаффинг (Bit stuffing): после каждых шести единиц автоматически добавляется 0.

Существует только три возможных байта с шестью последовательными единицами: 00111111, 01111110, 111111100.

Стаффинг может увеличить число передаваемых бит до 17%, но на практике эта величина значительно меньше. Для устройств, подключаемых к шине USB, кодирование происходит прозрачно: USB-контроллеры производят кодирование и декодирование автоматически.

Режимы работы шины

  • Low Speed поддерживается стандартами версии 1.1 и 2.0. Пиковая скорость передачи данных - 1.5 Мбит/с (187.5 Кбайт/с). Чаще всего применяется для HID-устройств (клавиатур, мышей, джойстиков).
  • Full Speed поддерживается стандартами версии 1.1 и 2.0. Пиковая скорость передачи данных - 12 Мбит/с (1.5 Мбайт/с). До выхода USB 2.0 был наиболее быстрым режимом работы.
  • Hi-Speed поддерживается стандартом версии 2.0 и 3.0. Пиковая скорость передачи данных - 480 Мбит/с (60 Мбайт/с).
  • Super-Speed поддерживается стандартом версии 3.0. Пиковая скорость передачи данных - 4.8 Гбит/с (600 Мбайт/с).

Передача данных

Механизм передачи данных является асинхронным и блочным. Блок передаваемых данных называется USB-фреймом или USB-кадром и передается за фиксированный временной интервал. Оперирование командами и блоками данных реализуется при помощи логической абстракции, называемой каналом. Внешнее устройство также делится на логические абстракции, называемые конечными точками. Таким образом, канал является логической связкой между хост-контроллером и конечной точкой внешнего устройства. Канал можно сравнить с открытым файлом.

Для передачи команд (и данных, входящих в состав команд) используется канал по умолчанию, а для передачи данных открываются либо потоковые каналы, либо каналы сообщений.

Информация по каналу передается в виде пакетов (Packet). Каждый пакет начинается с поля синхронизации SYNC (SYNChronization), за которым следует идентификатор пакета PID (Packet IDentifier).

Систему USB следует разделить на три логических уровня с определенными правилами взаимодействия. Устройство USB содержит интерфейсную, логическую и функциональную части. Хост тоже делится на три части - интерфейсную, системную и программное обеспечение. Каждая часть отвечает только за определенный круг задач.

Операция обмена данными между прикладной программой и шиной USВ выполняется путем передачи буферов памяти через следующие уровни: Уровень клиентского ПО в хосте:

  • обычно представляется драйвером устройства USB;
  • обеспечивает взаимодействие пользователя с операционной системой с одной стороны и системным драйвером с другой.

Уровень системного обеспечения USB в хосте (USBD, Universal Serial Bus Driver):

  • управляет нумерацией устройств на шине;
  • управляет распределением пропускной способности шины и мощности питания;
  • обрабатывает запросы пользовательских драйверов.

Хост-контроллер интерфейса шины USB (HCD, Host Controller Driver):

  • преобразует запросы ввода/вывода в структуры данных, по которым хост-контроллер выполняет физические транзакции;
  • работает с регистрами хост-контроллера.

Уровень клиентского программного обеспечения определяет тип передачи данных, необходимый для выполнения затребованной прикладной программой операции. После определения типа передачи данных этот уровень передает системному уровню следующее:

  • буфер памяти, называемый клиентским буфером;
  • пакет запроса на в/в (IRP, Input/output Request Packet), указывающий тип необходимой операции.
  • IRP содержит только сведения о запросе (адрес и длина буфера в оперативной памяти). Непосредственно обработкой запроса занимается системный драйвер USB.

Уровень системного драйвера USB необходим для управления ресурсами USB. Он отвечает за выполнение следующих действий:

  • распределение полосы пропускания шины USB;
  • назначение логических адресов устройств каждому физическому USB-устройству;
  • планирование транзакций.

Логически передача данных между конечной точкой и ПО производится с помощью выделения канала и обмена данными по этому каналу.Клиентское ПО посылает IPR-запросы уровню USBD. Драйвер USBD разбивает запросы на транзакции по следующим правилам:

  • выполнение запроса считается законченным, когда успешно завершены все транзакции, его составляющие;
  • все подробности отработки транзакций (такие как ожидание готовности, повтор транзакции при ошибке, неготовность приемника и т. д.) до клиентского ПО не доводятся;
  • ПО может только запустить запрос и ожидать или выполнения запроса или выхода по тайм-ауту;
  • устройство может сигнализировать о серьезных ошибках, что приводит к аварийному завершению запроса, о чем уведомляется источник запроса.

Драйвер контроллера хоста принимает от системного драйвера шины перечень транзакций и выполняет следующие действия:

  • планирует исполнение полученных транзакций, добавляя их к списку транзакций;
  • извлекает из списка очередную транзакцию и передает ее уровню хост-контроллера интерфейса шины USB;
  • отслеживает состояние каждой транзакции вплоть до ее завершения.

Хост-контроллер интерфейса шины USB формирует кадры. Кадры передаются последовательной передачей бит по методу NRZI.

Таким образом:

  • каждый кадр состоит из наиболее приоритетных посылок, состав которых формирует драйвер хоста;
  • каждая передача состоит из одной или нескольких транзакций;
  • каждая транзакция состоит из пакетов;
  • каждый пакет состоит из идентификатора пакета, данных (если они есть) и контрольной суммы.


Типы передачи данных

Спецификация шины определяет четыре различных типа передачи (transfer type) данных для конечных точек.

Управляющие передачи (Control Transfers) - используются хостом для конфигурирования устройства во время подключения, для управления устройством и получения статусной информации в процессе работы. Протокол обеспечивает гарантированную доставку таких посылок. Длина поля данных управляющей посылки не может превышать 64 байт на полной скорости и 8 байт на низкой. Для таких посылок хост гарантированно выделяет 10% полосы пропускания.

Передачи массивов данных (Bulk Data Transfers) - применяются при необходимости обеспечения гарантированной доставки данных от хоста к функции или от функции к хосту, но время доставки не ограничено. Taкая передача занимает всю доступную полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет у таких передач самый низкий, они могут приостанавливаться при большой загрузке шины. Допускаются только на полной скорости передачи. Такие посылки используются, например, принтерами или сканерами.

Передачи по прерываниям (Interrupt Transfers) - используются в том случае, когда требуется передавать одиночные пакеты данных небольшого размера. Каждый пакет требуется передать за ограниченное время. Операции передачи носят спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Поле данных может содержать до 64 байт на полной скорости и до 8 байт на низкой. Предел времени обслуживания устанавливается в диапазоне 1-255 мс для полной скорости и 10-255 мс - для низкой. Такие передачи используются в устройствах ввода, таких как мышь и клавиатура.

Изохронные передачи (Isochronous Transfers) - применяются для обмена данными в "реальном времени", когда на каждом временном интервале требуется передавать строго определенное количество данных, но доставка информации не гарантирована (передача данных ведется без повторения при сбоях, допускается потеря пакетов). Такие передачи занимают предварительно согласованную часть пропускной способности шины и имеют заданную задержку доставки. Изохронные передачи обычно используются в мультимедийных устройствах для передачи аудио- и видеоданных, например, цифровая передача голоса. Изохронные передачи разделяются по способу синхронизации конечных точек - источников или получателей данных - с системой. Различают асинхронный, синхронный и адаптивный классы устройств, каждому из которых соответствует свой тип канала USB.

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

  • наивысший приоритет имеют изохронные передачи;
  • после отработки всех изохронных передач система переходит к обслуживанию передач прерываний;
  • в последнюю очередь обслуживаются запросы на передачу массивов данных;
  • по истечении 90% указанного интервала хост автоматически переходит к обслуживанию запросов на передачу управляющих команд независимо от того, успел ли он полностью обслужить другие три списка или нет.

Выполнение этих правил гарантирует, что управляющим передачам всегда будет выделено не менее 10% пропускной способности шины USB. Если передача всех управляющих пакетов будет завершена до истечения выделенной для них доли интервала планирования, то оставшееся время будет использовано хостом для передач массивов данных.

Версии спецификации

Разработка спецификаций на шину USB производится в рамках международной некоммерческой организации USB Implementers Forum (USB-IF), объединяющей разработчиков и производителей оборудования с шиной USB.

С середины 1996 года выпускаются PC со встроенным контроллером USB, реализуемым чипсетом системной платы.

Первая версия спецификации USB 1.0 поддерживает два режима скорости передачи данных между устройством и компьютером:

  • Low Speed (1.5 Mbits/sec) , для таких устройств как мыши, клавиатуры и джойстики;
  • Full Speed (12 Mbits/ sec) , для модемов и сканеров.

Осенью 1998 года вышла версия 1.1 - в ней были устранены обнаруженные проблемы первой редакции.

Основные технические характеристики USB 1.1:

  • Достаточно высокая максимальная скорость обмена - до 12 Мбит/с.
  • Максимальная длина кабеля для высокой скорости обмена - 4,5 м.
  • Максимальное количество подключенных устройств (включая размножители) - до 127.
  • Возможно подключение устройств с различными скоростями обмена.
  • Не требуется использование дополнительных устройств и терминаторов.
  • Подается напряжение питания для периферийных устройств - 5 В.
  • Максимальный ток потребления на одно устройство - 500 mA.

Весной 2000 года опубликована спецификация USB 2.0, в которой предусмотрено 40-кратное повышение пропускной способности шины(до 480 Мбит/с в высокоскоростном режиме). Однако устройства USB 2.0 вышли на массовый рынок в 2002 года, когда новый интерфейс, наконец, смог утвердиться.

Вторая версия спецификации USB 2.0 позволяет использовать еще один режим High Speed (480 Mbit/sec) для таких устройств, как жесткие диски, CD-ROM, цифровые камеры. Пропускная способность 480 Мбит/с достаточная и для внешних накопителей, MP3-плееров, смартфонов и цифровых камер, которым требовалась передавать большое количество данных. Также спецификация USB 2.0 полностью поддерживает устройства, разработанные для первой версии. Контроллеры и хабы автоматически определяют версию спецификации, поддерживаемую устройством. Шина позволяет соединять до 127 устройств, удаленныех от компьютера на расстоянии до 25 м (с использованием промежуточных хабов).

После своего широкого внедрения USB 2.0 удалось полностью заменить последовательный и параллельный интерфейсы.

В настоящее время широко используются устройства, выполненные в соответствии со спецификацией USB 2.0.

USB 3.0

USB 3.0 поддерживает максимальную скорость передачи 5 Гбит/с.

Коннектор USB 3.0 типа А

Основной целью интерфейса USB 3.0 является повышение доступной пропускной способности, однако новый стандарт эффективно оптимизирует энергопотребление. У USB 3.0 есть четыре состояния подключения, названные U0-U3. Состояние подключения U0 соответствует активной передаче данных, а U3 погружает устройство в "сон". Если подключение бездействует, то в состоянии U1 будут отключены возможности приёма и передачи данных. Состояние U2 идёт ещё на шаг дальше, отключая внутренние тактовые импульсы.

Коннектор USB 3.0 типа В

Соответственно, подключённые устройства могут переходить в состояние U1 сразу же после завершения передачи данных, что, как предполагается, даст ощутимые преимущества по энергопотреблению, если сравнивать с USB 2.0.

Кроме разных состояний энергопотребления стандарт USB 3.0 отличается от USB 2.0 и более высоким поддерживаемым током. Если версия USB 2.0 предусматривала порог тока 500 мА, то в случае нового стандарта ограничение было сдвинуто до планки 900 мА. Ток при инициации соединения был увеличен с уровня 100 мА у USB 2.0 до 150 мА у USB 3.0. Оба параметра весьма важны для портативных жёстких дисков, которые обычно требуют чуть большие токи. Раньше проблему удавалось решить с помощью дополнительной вилки USB, получая питание от двух портов, но используя только один для передачи данных.

Кабели и разъемы USB

В отличие от громоздких дорогих шлейфов параллельных шин АТА и особенно шины SCSI с ее разнообразием разъемов и сложностью правил подключения, кабельное хозяйство USB простое и изящное.

Существует пять видов USB-разъемов :

Слева направо: micro USB, mini USB, B-type, A-type разъем, A-type коннектор

  • micro USB - используется в самых миниатюрных устройствах вроде плееров и мобильных телефонов;
  • mini USB - также часто обнаруживается на плеерах, мобильных телефонах, а заодно и на цифровых фотоаппаратах, КПК и тому подобных устройствах;
  • B-type - полноразмерный разъем, устанавливаемый в принтерах, сканерах и других устройствах, где размер не имеет очень принципиального значения;
  • A-type (приемник) - разъем, устанавливаемый в компьютерах (либо на удлинителях USB), куда подключается коннектор типа A-type;
  • A-type (вилка) - коннектор, подключаемый непосредственно к компьютеру в соответствующий разъем.

Cистема кабелей и коннекторов USB не дает возможности ошибиться при подключении устройств. Гнезда типа «А» устанавливаются только на нисходящих портах хабов, вилки типа «А» - на шнурах периферийных устройств или восходящих портов хабов. Гнезда и вилки типа «В» используются только для шнуров, отсоединяемых от периферийных устройств и восходящих портов хабов (от «мелких» устройств - мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). Хабы и устройства обеспечивают возможносгь «горячего» подключения и отключения.

Максимальная длина USB-кабеля может составлять 5 метров. Данное ограничение введено для снижения времени отклика устройства. Хост-контроллер ожидает поступление данных ограниченное время, и если они задерживаются, то соединение может быть потеряно.

Кабель для поддержки полной скорости шины (full-speed) выполняется как витая пара, защищается экраном и может также использоваться для работы в режиме минимальной скорости (low-speed). Кабель для работы только на минимальной скорости (например, для подключения мыши) может быть любым и неэкранированным.

Литература

  1. Косцов А.,Косцов В.Железо ПК. Настольная книга пользователя. - М.: Мартин, 2006. - 480 с.

История появления и развития стандартов Universal Serial Bus (USB)

    До появления первой реализации шины USB стандартная комплектация персонального компьютера включала один параллельный порт, обычно для подключения принтера (порт LPT), два последовательных коммуникационных порта (порты COM), обычно для подключения мыши и модема, и один порт для джойстика (порт GAME). Такая конфигурация была вполне приемлемой на заре появления персональных компьютеров, и долгие годы являлась практическим стандартом для производителей оборудования. Однако прогресс не стоял на месте, номенклатура и функциональность внешних устройств постоянно совершенствовались, что в конце концов привело к необходимости пересмотра стандартной конфигурации, ограничивающей возможность подключения дополнительных периферийных устройств, которых, с каждым днем становилось все больше и больше.

    Попытки увеличения количества стандартных портов ввода-вывода не могли привести к кардинальному решению проблемы, и возникла необходимость разработки нового стандарта, который бы обеспечивал простое, быстрое и удобное подключение большого количества разнообразных по назначению периферийных устройств к любому компьютеру стандартной конфигурации, что, в конце концов, привело к появлению универсальной последовательной шины Universal Serial Bus (USB)

    Первая спецификация последовательного интерфейса USB (Universal Serial Bus) , получившая название USB 1.0 , появилась в 1996 г. , усовершенствованная версия на ее основе, USB 1.1 - в 1998 г. Пропускная способность шин USB 1.0 и USB 1.1 - до 12 Мбит/с (реально до 1 мегабайта в секунду) была вполне достаточной для низкоскоростных периферийных устройств, вроде аналогового модема или компьютерной мышки, однако недостаточной для устройств с высокой скоростью передачи данных, что являлось главным недостатком данной спецификации. Однако, практика показала, что универсальная последовательная шина - это очень удачное решение, принятое практически всеми производителями компьютерного оборудования в качестве магистрального направления развития компьютерной периферии.

В 2000 г. появилась новая спецификация - USB 2.0 , обеспечивающая уже скорость передачи данных до 480 Мбит/с (реально до 32 мегабайт в секунду). Спецификация предполагала полную совместимость с предыдущим стандартом USB 1.X и вполне приемлемое быстродействие для большинства периферийных устройств. Начинается бум производства устройств, оснащенных интерфейсом USB. "Классические" интерфейсы ввода - вывода были полностью вытеснены и стали экзотикой. Однако, для части высокоскоростного периферийного оборудования даже удачная спецификация USB 2.0 оставалась узким местом, что требовало дальнейшего развития стандарта.

В 2005 г. была анонсирована спецификация для беспроводной реализации USB - Wireless USB - WUSB , позволяющей выполнять беспроводное подключение устройств на расстоянии до 3-х метров с максимальной скоростью передачи данных 480 Мбит/сек, и на расстоянии до 10 метров с максимальной скоростью 110 Мбит/сек. Спецификация не получила бурного развития и не решала задачу повышения реальной скорости передачи данных.

В 2006 г. была анонсирована спецификация USB-OTG (USB O n-T he-G o, благодаря которой стала возможной связь двух USB-устройств друг с другом без отдельного USB-хоста. Роль хоста в данном случае выполняет одно из периферийных устройств. Смартфонам, цифровым фотоаппаратам и прочим мобильным устройствам приходится быть как хостом, так и периферийным устройством. Например, при подключении по USB к компьютеру фотоаппарата, он является периферийным устройством, а при подключении принтеру он является хостом. Поддержка спецификации USB-OTG постепенно стала стандартом для мобильных устройств.

В 2008 г. появилась окончательная спецификация нового стандарта универсальной последовательной шины - USB 3.0 . Как и в предыдущих версиях реализации шины, предусмотрена электрическая и функциональная совместимость с предыдущими стандартами. Скорость передачи данных для USB 3.0 увеличилась в 10 раз - до 5 Гбит/сек. В интерфейсном кабеле добавились 4 дополнительные жилы, и их контакты были выведены отдельно от 4-х контактов предыдущих стандартов, в дополнительном контактном ряду. Кроме повышенной скорости передачи данных шина USB характеризуется еще и увеличившейся, по сравнению с предыдущими стандартами, силой тока в цепи питания. Максимальная скорость передачи данных по шине USB 3.0 стала приемлемой практически для любого, массово производимого периферийного компьютерного оборудования.

В 2013 году была принята спецификация следующего интерфейса - USB 3.1 , скорость передачи данных которого может достигать 10 Гбит/с. Кроме того, появился компактный 24-контактный разъём USB Type-C , который является симметричным, позволяя вставлять кабель любой стороной.

После выхода стандарта USB 3.1 организация USB Implementers Forum (USB-IF) объявила, что разъёмы USB 3.0 со скоростью до 5 Гбит/с (SuperSpeed) теперь будут классифицироваться как USB 3.1 Gen 1, а новые разъёмы USB 3.1 со скоростью до 10 Гбит/с (SuperSpeed USB 10Gbps) - как USB 3.1 Gen 2. Стандарт USB 3.1 обратно совместим с USB 3.0 и USB 2.0.

В 2017 году организация USB Implementers Forum (USB-IF) опубликовала спецификацию USB 3.2 . Максимальная скорость передачи составляет 10 Гбит/с. Однако в USB 3.2 предусмотрена возможность агрегации двух подключений (Dual-Lane Operation ), позволяющая увеличить теоретическую пропускную способность до 20 Гбит/с. Реализация этой возможности сделана опциональной, то есть ее поддержка на уровне оборудования будет зависеть от конкретного производителя и технической необходимости, которая отличается, например, для принтера и переносного жесткого диска. Возможность реализации данного режима предусмотрена только при использовании USB Type-C .

www.usb.org - Документация по спецификациям USB для разработчиков на английском языке.

Нельзя не отметить, что существовала, и пока еще существует, альтернатива шине USB. Еще до ее появления, компания Apple разработала спецификацию последовательной шины FireWire (другое название - iLink ), которая в 1995 г. была стандартизована Американским Институтом инженеров по электротехнике и электронике (IEEE) под номером 1394. Шина IEEE 1394 может работать в трех режимах: со скоростью передачи данных до 100, 200 и 400 Мбит/с. Однако, по причине высокой стоимости и более сложной реализации, чем USB, эта разновидность высокоскоростной последовательной шины, большого распространения не получила, и постепенно вытесняется USB 2.0 – USB 3.2.

Общие принципы работы периферийных устройств Universal Serial Bus (USB)

    Интерфейс USB оказался настолько удачным решением, что им оснастили практически все классы периферийных устройств, от мобильного телефона до веб-камеры или переносного жесткого диска. Наибольшее распространение получили (пока) устройства с поддержкой USB 2.0. Однако, USB 3.0 – 3.1 более востребован для высокоскоростных устройств, где он становится основным, постепенно вытесняя USB 2.0.

    Периферийные устройства, с поддержкой USB при подключении к компьютеру автоматически распознаются системой (в частности, программное обеспечение драйвера и пропускную способность шины), и готовы к работе без вмешательства пользователя. Устройства с небольшим энергопотреблением (до 500мА) могут не иметь своего блока питания и запитываться непосредственно от шины USB.

    Благодаря использованию USB отпадает необходимость снятия корпуса компьютера для установки дополнительных периферийных устройств, а также необходимость выполнения сложных настроек при их установке.

    USB устраняет проблему ограничения числа подключаемых устройств. При использовании USB с компьютером может одновременно работать до 127 устройств.

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

Проще говоря, USB позволяет фактически реализовать все преимущества современной технологии "plug and play" ("включай и работай"). Устройства, разработанные для USB 1.x могут работать с контроллерами USB 2.0. и USB 3.0

При подключении периферийного устройства вырабатывается аппаратное прерывание и управление получает драйвер HCD (Host Controller Driver ) контроллера USB (USB Host Controller - UHC ), который на сегодняшний день интегрирован во все выпускаемые чипсеты материнских плат. Он опрашивает устройство и получает от него идентификационную информацию, исходя из которой управление передается драйверу, обслуживающему данный тип устройств. UHC контроллер имеет корневой (root) концентратор (Hub), обеспечивающий подключение к шине устройств USB.

Концентратор (USB HUB).

Точки подключения называются портами . К порту, в качестве устройства, может быть подключен другой концентратор. Каждый концентратор имеет исходящий порт (upstream port ), соединяющие его с главным контроллером и нисходящие порты (downstream port ) для подключения периферийных устройств. Концентраторы могут обнаруживать, выполнять соединение и отсоединение в каждом порте нисходящей связи и обеспечивать распределение напряжения питания в устройства нисходящего соединения. Каждый из портов нисходящей связи может быть индивидуально активизирован и сконфигурирован на полной или низкой скорости. Концентратор состоит из двух блоков: контроллера концентратора и ретранслятора концентратора. Ретранслятор - работающий под управлением протокола коммутатор между портом восходящей связи и портами нисходящей связи. Концентратор содержит также аппаратные средства поддержки перевода в исходное состояние и приостановки/возобновления подключения. Контроллер обеспечивает интерфейсные регистры, обеспечивающие передачу данных в главный контроллер и обратно. Определенное состояние и управляющие команды концентратора позволяют главному процессору конфигурировать концентратор, а также контролировать и управлять его портами.


Внешние концентраторы могут иметь собственный блок питания или же запитываться от шины USB.

Кабели и разъемы USB

Разъемы типа А используются для подключения к компьютеру или концентратору. Разъемы типа B используются для подключения к периферийным устройствам.

Все разъёмы USB, имеющие возможность входить в соединение друг с другом, рассчитаны на совместную работу.

Имеется электрическая совместимости всех контактов разъёма USB 2.0 с соответствующими контактами разъёма USB 3.0. При этом разъём USB 3.0 имеет дополнительные контакты, не имеющие соответствия в разъёме USB 2.0, и, следовательно, при соединении разъёмов разных версий "лишние" контакты не будут задействованы, обеспечивая нормальную работу соединения версии 2.0. Все гнёзда и штекеры между USB 3.0 Тип A и USB 2.0 Тип A рассчитаны на совместную работу. Размер гнезда USB 3.0 Тип B несколько больше, чем это могло бы потребоваться для штекера USB 2.0 Тип B и более ранних. При этом предусмотрено подключение в эти гнёзда и такого типа штекеров. Соответственно, для подключения к компьютеру периферийного устройства с разъёмом USB 3.0 Тип B можно использовать кабели обоих типов, но для устройства с разъёмом USB 2.0 Тип B - только кабель USB 2.0. Гнёзда eSATAp, обозначенные как eSATA/USB Combo, то есть имеющие возможность подключения к ним штекера USB, имеют возможность подключения штекеров USB Тип A: USB 2.0 и USB 3.0, но в скоростном режиме USB 2.0.

Разъёмы USB Type-C служат для подключения как к периферийным устройствам, так и к компьютерам, заменяя различные разъёмы и кабели типов A и B предыдущих стандартов USB, и предоставляя возможности расширения в будущем. 24-контактный двухсторонний разъём является достаточно компактным, близким по размерам к разъёмам микро-B стандарта USB 2.0. Размеры разъёма - 8,4 мм на 2,6 мм. Коннектор предоставляет 4 пары контактов для питания и заземления, две дифференциальные пары D+/D- для передачи данных на скоростях менее SuperSpeed (в кабелях Type-C подключена только одна из пар), четыре дифференциальные пары для передачи высокоскоростных сигналов SuperSpeed, два вспомогательных контакта (sideband), два контакта конфигурации для определения ориентации кабеля, выделенный канал конфигурационных данных (кодирование BMC - biphase-mark code) и контакт питания +5 V для активных кабелей.

Контакты разъёма и разводка кабеля USB Type-C

Type-C - штекер и гнездо

Кон. Название Описание Кон. Название Описание
A1 GND Заземление B12 GND Заземление
A2 SSTXp1 Диф. пара № 1 SuperSpeed, передача, положительный B11 SSRXp1 Диф. пара № 2 SuperSpeed, приём, положительный
A3 SSTXn1 Диф. пара № 1 SuperSpeed, передача, отрицательный B10 SSRXn1 Диф. пара № 2 SuperSpeed, приём, отрицательный
A4 V BUS Питание B9 V BUS Питание
A5 CC1 Канал конфигурации B8 SBU2 Sideband № 2 (SBU)
A6 Dp1 Диф. пара не-SuperSpeed, положение 1, положительный B7 Dn2 Диф. пара не-SuperSpeed, положение 2, отрицательный
A7 Dn1 Диф. пара не-SuperSpeed, положение 1, отрицательный B6 Dp2 Диф. пара не-SuperSpeed, положение 2, положительный
A8 SBU1 Sideband № 1 (SBU) B5 CC2 Канал конфигурации
A9 V BUS Питание B4 V BUS Питание
A10 SSRXn2 Диф. пара № 4 SuperSpeed, передача, отрицательный B3 SSTXn2 Диф. пара № 3 SuperSpeed, приём, отрицательный
A11 SSRXp2 Диф. пара № 4 SuperSpeed, передача, положительный B2 SSTXp2 Диф. пара № 3 SuperSpeed, приём, положительный
A12 GND Заземление B1 GND Заземление
  1. Неэкранированная дифференциальная пара, может использоваться для реализации USB Low Speed (1.0), Full Speed (1.0), High Speed (2.0) - до 480 Мбит/с
  2. В кабеле реализована только одна из дифференциальных пар не-SuperSpeed. Данный контакт не используется в штекере.
Назначение проводников в кабеле USB 3.1 Type-C
Разъём №1 кабеля Type-C Кабель Type-C Разъём №2 кабеля Type-C
Контакт Название Цвет оболочки проводника Название Описание Контакт Название
Оплётка Экран Оплётка кабеля Экран Внешняя оплётка кабеля Оплётка Экран
A1, B1, A12, B12 GND Лужёный GND_PWRrt1
GND_PWRrt2
Общая земля> A1, B1, A12, B12 GND
A4, B4, A9, B9 V BUS Красный PWR_V BUS 1
PWR_V BUS 2
V BUS питание A4, B4, A9, B9 V BUS
B5 V CONN Жёлтый
PWR_V CONN V CONN питание B5 V CONN
A5 CC Синий CC Канал конфигурирования A5 CC
A6 Dp1 Белый UTP_Dp Неэкранированная дифференциальная пара, positive A6 Dp1
A7 Dn1 Зелёный UTP_Dn Неэкранированная дифференциальная пара, negative A7 Dn1
A8 SBU1 Красный SBU_A Полоса передачи данных A B8 SBU2
B8 SBU2 Чёрный SBU_B Полоса передачи данных B A8 SBU1
A2 SSTXp1 Жёлтый * SDPp1 Экранированная дифференциальная пара #1, positive B11 SSRXp1
A3 SSTXn1 Коричневый * SDPn1 Экранированная дифференциальная пара #1, negative B10 SSRXn1
B11 SSRXp1 Зелёный * SDPp2 Экранированная дифференциальная пара #2, positive A2 SSTXp1
B10 SSRXn1 Оранжевый * SDPn2 Экранированная дифференциальная пара #2, negative A3 SSTXn1
B2 SSTXp2 Белый * SDPp3 Экранированная дифференциальная пара #3, positive A11 SSRXp2
B3 SSTXn2 Чёрный * SDPn3 Экранированная дифференциальная пара #3, negative A10 SSRXn2
A11 SSRXp2 Красный * SDPp4 Экранированная дифференциальная пара #4, positive B2 SSTXp2
A10 SSRXn2 Синий * SDPn4 Экранированная дифференциальная пара #4, negative B3 SSTXn2
* Цвета для оболочки проводников не установлены стандартом

Подключение ранее выпущенных устройств к компьютерам, оснащённым разъёмом USB Type-C, потребует кабеля или адаптера, имеющих штекер или разъём типа A или типа B на одном конце и штекер USB Type-C на другом конце. Стандартом не допускаются адаптеры с разъёмом USB Type-C, поскольку их использование могло бы создать «множество неправильных и потенциально опасных» комбинаций кабелей.

Кабели USB 3.1 с двумя штекерами Type-C на концах должны полностью соответствовать спецификации - содержать все необходимые проводники, должны быть активными, включающими в себя чип электронной идентификации, перечисляющий идентификаторы функций в зависимости от конфигурации канала и сообщения, определяемые вендором (VDM) из спецификации USB Power Delivery 2.0. Устройства с разъёмом USB Type-C могут опционально поддерживать шины питания с током в 1,5 или 3 ампера при напряжении 5 вольт в дополнение к основному питанию. Источники питания должны уведомлять о возможности предоставления увеличенных токов через конфигурационный канал либо полностью поддерживать спецификацию USB Power Delivery через конфигурационный контакт (кодирование BMC) или более старые сигналы, кодируемые как BFSK через контакт VBUS. Кабели USB 2.0, не поддерживающие шину SuperSpeed, могут не содержать чип электронной идентификации, если только они не могут передавать ток 5 ампер.

Спецификация коннекторов USB Type-C версии 1.0 была опубликована форумом разработчиков USB в августе 2014 года. Она была разработана примерно в то же время, что и спецификация USB 3.1.

Использование коннектора USB Type-C не обязательно означает, что устройство реализует высокоскоростной стандарт USB 3.1 Gen1/Gen2 или протокол USB Power Delivery.

    Универсальная последовательная шина является самым распространенным, и наверно, самым удачным компьютерным интерфейсом периферийных устройств за всю историю развития компьютерного оборудования, что подтверждается огромным количеством USB - устройств, некоторые из которых могут показаться несколько

Благодаря своей универсальности и способности эффективно передавать разнородный трафик шина USB применяется для подключения к PC самых разнообразных устройств. Она призвана заменить традиционные порты PC - СОМ и LPT, а также порты игрового адаптера и интерфейса MIDI. Спецификация USB 2.0 позволяет говорить и о подключении традиционных «клиентов» шин АТА и SCSI, а также захвате части ниши применения шины FireWire. Привлекательность USB придает возможность подключения/отключения устройств на ходу и возможность их использования практически сразу, без перезагрузки ОС. Удобна и возможность подключения большого количества (до 127) устройств к одной шине, правда, при наличии хабов. Хост-контроллер интегрирован в большинство современных системных плат. Выпускаются и карты расширения с контроллерами USB (обычно для шины PCI). Однако повсеместное применение USB сдерживается недостаточной активностью разработчиков ПО (производителей оборудования): просматривая перечни устройств, мы видим, что для всех указывается поддержка в Windows 98/SE/ME, а вот в графах Linux, MacOS, Unix и даже Windows 2000 часто стоят неприятные пометки N/A (Not Allowed - «не дозволено»).
Для того чтобы система USB заработала, необходимо, чтобы были загружены драйверы хост-контроллера (или контроллеров, если их несколько). При подключении устройства к шине USB ОС Windows выдает сообщение «Обнаружено новое устройство» и, если устройство подключается впервые, предлагает загрузить для него драйверы. Многие модели устройств уже известны системе, и драйверы входят в дистрибутив ОС. Однако может потребоваться и драйвер изготовителя устройства, который должен входить в комплект поставки устройства, или его придется искать в Сети. К сожалению, не все драйверы работают корректно - «сырой» драйвер начальной версии, возможно, потребуется заменить более «правильным», чтобы устройство нормально опознавалось и хорошо работало. Но это общее горе пользователей любых устройств, а не только устройств для шины USB.
Перечислим основные области применения USB.
* Устройства ввода - клавиатуры, мыши, трекболы, планшетные указатели и т. п. Здесь USB предоставляет для различных устройств единый интерфейс. Целесообразность использования USB для клавиатуры неочевидна, хотя в паре с мышью USB (подключаемой к порту хаба, встроенного в клавиатуру) сокращается количество кабелей, тянущихся от системного блока на стол пользователя.
* Принтеры. USB 1.1 обеспечивает примерно ту же скорость, что и LPT-порт в режиме ЕСР, но при использовании USB не возникает проблем с длиной кабеля и подключением нескольких принтеров к одному компьютеру (правда, требуются хабы). USB 2.0 позволит ускорить печать в режиме высокого разрешения за счет сокращения времени на передачу больших массивов данных. Однако есть проблема со старым ПО, которое непосредственно работает с LPT-портом на уровне регистров, - на принтер USB оно печатать не сможет.
* Сканеры. Применение USB позволяет отказаться от контроллеров SCSI или от занятия LPT-порта. USB 2.0 при этом позволит еще и повысить скорость передачи данных.
* Аудиоустройства - колонки, микрофоны, головные телефоны (наушники). USB позволяет передавать потоки аудиоданных, достаточные для обеспечения самого высокого качества. Передача в цифровом виде от самого источника сигнала (микрофона со встроенным преобразователем и адаптером) до приемника и цифровая обработка в хост-компьютере позволяют избавиться от наводок, свойственных аналоговой передачи аудиосигналов. Использование этих аудиокомпонентов позволяет в ряде случаев избавиться от звуковой карты компьютера - аудиокодек (АЦП и ЦАП) выводится за пределы компьютера, а все функции обработки сигналов (микшер, эквалайзер) реализуются центральным процессором чисто программно. Аудиоустройства могут и не иметь собственно колонок и микрофона, а ограничиться преобразователями и стандартными гнездами («Джеками») для подключения обычных аналоговых устройств.
* Музыкальные синтезаторы и MIDI-контроллеры с интерфейсом USB. Шина USB позволяет компьютеру обрабатывать потоки множества каналов MIDI (пропускная способность традиционного интерфейса MIDI уже гораздо ниже возможностей компьютера).
* Видео- и фотокамеры. USB 1.1 позволяет передавать статические изображения любого разрешения за приемлемое время, а также передавать поток видеоданных (живое видео) с достаточной частотой кадров (25-30 Кбит/с) только с невысоким разрешением или сжатием данных, от которого, естественно, страдает качество изображения. USB 2.0 позволяет передавать поток видеоданных высокого разрешения без сжатия (и потери качества). С интерфейсом USB выпускают как камеры, так и устройства захвата изображения с телевизионного сигнала и TV-тюнеры.
* Коммуникации. С интерфейсом USB выпускают разнообразные модемы, включая кабельные и xDSL, адаптеры высокоскоростной инфракрасной связи (IrDA FIR) - шина позволяет преодолеть предел скорости СОМ-порта (115, 2 Кбит/с), не повышая загрузку центрального процессора. Выпускаются и сетевые адаптеры Ethernet, подключаемые к компьютеру по USB. Для соединения нескольких компьютеров в локальную сеть выпускаются специальные устройства, выполняющие коммутацию пакетов между компьютерами. Непосредственно (без дополнительных устройств) портами USB соединить между собой даже два компьютера нельзя - на одной шине может присутствовать лишь один хост-контроллер (см. выше). Специальное устройство для связи пары компьютеров выглядит как «таблетка», врезанная в кабель USB с двумя вилками типа «А» на концах. Объединение более двух компьютеров осложняется и топологическими ограничениями USB: длина одного сегмента кабеля не должна превышать 5 м, а использовать хабы для увеличения дальности неэффективно (каждый хаб дает всего 5 м дополнительного удаления).
* Преобразователи интерфейсов позволяют через порт USB, имеющийся теперь практически на всех компьютерах, подключать устройства с самыми разнообразными интерфейсами: Centronics и IEEE 1284 (LPT-порты), RS-232C (эмуляция UART 16550A - основы СОМ-портов) и другие последовательные интерфейсы (RS-422, RS-485, V. 35...), эмуляторы портов клавиатуры и даже Game-порта, переходники на шину AT A, ISA, PC Card и любые другие, для которых достаточно производительности. Здесь USB становится палочкой-выручалочкой, когда встает проблема 2-го (3-го) LPT- или СОМ-порта в блокнотном ПК и в других ситуациях. При этом ПО преобразователя может обеспечить эмуляцир классического варианта «железа» стандартных портов IBM PC, но только под управлением ОС защищенного режима. Приложение MS-DOS может обращаться к устройствам по адресам ввода-вывода, памяти, прерываниями, каналами DMA, но только из сеанса MS-DOS, открытого в ОС с поддержкой USB (чаще это Windows). При загрузке «голой» MS-DOS «палочка-выручалочка» не работает. Преобразователи интерфейсов позволяют продлить жизнь устройствам с традиционными интерфейсами, изживаемыми из PC спецификациями РС"99 и РС"2001. Скорость передали данных через конвертер USB - LPT может оказаться даже выше, чем у реального LPT-порта, работающего в режиме SPP.
* Устройства хранения - винчестеры, устройства чтения и записи CD и DVD, стриммеры - при использовании USB 1.1 получают скорость передачи, соизмеримую со скоростью их подключения к LPT, но более удобный интерфейс (как аппаратный, так и программный). При переходе на USB 2.0 скорость передачи данных становится соизмеримой с АТА и SCSI, а ограничений по количеству устройств достичь трудно. Особенно интересно использование USB для электронных устройств энергонезависимого хранения (на флэш-памяти) - такой накопитель может быть весьма компактным (размером с брелок для ключей) и емким (пока 16-256 Мбайт, в перспективах - гигабайт и более). Выпускаются устройства для мобильного подключения накопителей с интерфейсом АТА-AT API - по сути, это лишь преобразователи интерфейсов, помещенные в коробку-отсек формата 5" или 3, 5", а иногда выполненные прямо в корпусе 36-контактного азъема АТА. Имеются и устройства чтения-записи карт SmartMedia Card и CompactFlash Card.
* Игровые устройства - джойстики всех видов (от «палочек» до автомобильных рулей), пульты с разнообразными датчиками (непрерывными и дискретными) и исполнительными механизмами (почему бы не сделать кресло автогонщика с вибраторами и качалками?) - подключаются унифицированным способом. При этом исключается ресурсопожирающий интерфейс старого игрового адаптера (упраздненного уже в спецификации РС"99).
* Телефоны - аналоговые и цифровые (ISDN). Подключение телефонного аппарата позволяет превратить компьютер в секретаря с функциями автодозвона, автоответчика, охраны и т. п.
* Мониторы - здесь шина USB используется для управления параметрами монитора. Монитор сообщает системе свой тип и возможности (параметры синхронизации) - это делалось и без USB по шине DDC. Однако USB-мониторы позволяют системе еще и управлять ими - регулировки яркости, контраста, цветовой температуры и т. п. могут теперь выполняться программно, а не только от кнопок лицевой панели монитора. В мониторы, как правило, встраивают хабы. Это удобно, поскольку настольную периферию не всегда удобно включать в «подстольный» системный блок.
* Электронные ключи - устройства с любым уровнем интеллектуальности защиты - могут быть выполнены в корпусе вилок USB. Они гораздо компактнее и мобильнее аналогичных устройств для СОМ- и LPT-портов.
Конечно же, перечисленными классами устройств сфера применения шины USB не ограничивается.
Хабы USB выпускаются как в виде отдельных устройств, так и встраиваются в периферийные устройства (клавиатуры, мониторы). Как правило, хабы питаются от сети переменного тока (они должны питать подключаемые устройства). Выпускают и хабы, устанавливаемые внутрь системного блока компьютера и питающиеся от его блока питания. Такие хабы дешевле внешних и не требуют дополнительной питающей розетки. Один из вариантов исполнения - установка хаба на скобку, монтируемую в окно для дополнительных разъемов. Доступ к их разъемам со «спины» системного блока не очень удобен для пользователей. Другой вариант - хаб, устанавливаемый в 3"-отсек. Его разъемы легкодоступны, индикаторы состояния портов хорошо видны, но не всегда удобны кабели, выходящие с передней панели системного блока. С другой стороны, для подключения электронных ключей (если их приходится часто менять) или миниатюрных накопителей этот вариант - самый удобный.
Недавно появились и новые вспомогательные устройства, увеличивающие дальность связи (distance extender). Это пара устройств, соединяемых между собой обычным кабелем «витая пара» (или оптоволокном), включаемая между периферийным устройством и хабом. «Удлинитель» со стороны периферии может иметь и хаб на несколько портов. К сожалению, увеличение дистанции упирается в ограничения на время задержки сигнала, свойственные протоколу шины USB, и достижимо лишь удаление до 100 м. Но даже и эта длина позволяет расширить сферу применения USB, например для удаленного видеонаблюдения.

· Лекция 14. Универсальная последовательная шина USB.

Толковый словарь по вычислительным системам определяет понятие интерфейс (interface) как границу раздела двух систем, устройств или программ; элементы соединения и вспомогательные схемы управления, используемые для соединения устройств. Мы же поговорим о интерфейсах, позволяющих подключать к персональным (и не только) компьютерам разнообразные периферийные устройства и их контроллеры. По способу передачи информации интерфейсы подразделяются на параллельные и последовательные. В параллельном интерфейсе все биты передаваемого слова (обычно байта) выставляются и передаются по соответствующим параллельно идущим проводам одновременно. В PC традиционно используется параллельный интерфейс Centronics, реализуемый LPT-портами. В последовательном же интерфейсе биты передаются друг за другом, обычно по одной линии. СОМ порты PC обеспечивают последовательный интерфейс в соответствии со стандартом RS-232C. При рассмотрении интерфейсов важным параметром является пропускная способность.

В архитектуре современных компьютеров все большее значение приобретают внешние шины, служащие для подключения различных устройств. Сегодня это могут быть, например, внешние жесткие диски, CD-, DVD-устройства, сканеры, принтеры, цифровые камеры и прочее.

Широко используемый последовательный интерфейс синхронной и асинхронной передачи данных.

2.Шина USB.Общая характеристика.

USB (Universal Serial Bus - универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Версия 1.0 была опубликована в январе 1996 года. Архитектура USB определяется следующими критериями:

Ø Легко реализуемое расширение периферии PC.

Ø Дешевое решение, поддерживающее скорость передачи до 12 M бит/с.

Ø Полная поддержка в реальном времени передачи аудио и (сжатых) видеоданных.

Ø Гибкость протокола смешанной передачи изохронных данных и асинхронных сообщений.

Ø Интеграция с выпускаемыми устройствами.

Ø Доступность в PC всех конфигураций и размеров.

Ø Обеспечение стандартного интерфейса, способного быстро завоевать рынок.

Ø Создание новых классов устройств, расширяющих PC.

Ø С точки зрения конечного пользователя, привлекательны следующие черты USB:

Ø Простота кабельной системы и подключений.

Ø Скрытие подробностей электрического подключения от конечного пользователя.

Ø Самоидентифицирующиеся ПУ, автоматическая связь устройств с драйверами и конфигурирование.

Ø Возможность динамического подключения и конфигурирования ПУ.

С середины 1996 года выпускаются PC со встроенным контроллером USB, реализуемым чипсетом. Уже появились модемы, клавиатуры, сканеры, динамики и другие устройства ввода/вывода с поддержкой USB, а также мониторов с USB-адаптерами - они играют роль концентраторов для подключения других устройств.

Структура USB

USB обеспечивает одновременный обмен данными между хост-компьютером и множеством периферийных устройств (ПУ). Распределение пропускной способности шины между ПУ планируется хостом и реализуется им с помощью посылки маркеров. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств.

Ниже приводится авторский вариант перевода терминов из спецификации "Universal Serial Bus Specification", опубликованной Compaq , DEC , IBM , Intel , Microsoft , NEC и Northern Telecom . Более подробную и оперативную информацию можно найти по адресу:

Устройства (Device) USB могут являться хабами, функциями или их комбинацией. Хаб (Hub) обеспечивает дополнительные точки подключения устройств к шине. Функции (Function) USB предоставляют системе дополнительные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, выполнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Многие устройства, подключаемые к USB, имеют в своем составе и хаб, и функции. Работой всей системы USB управляет хост-контроллер (Host Controller), являющийся программно-аппаратной подсистемой хост-компьютера.

Физическое соединение устройств осуществляется по топологии многоярусной звезды. Центром каждой звезды является хаб, каждый кабельный сегмент соединяет две точки - хаб с другим хабом или с функцией. В системе имеется один (и только один) хост-контроллер, расположенный в вершине пирамиды устройств и хабов. Хост-контроллер интегрируется с корневым хабом (Root Hub), обеспечивающим одну или несколько точек подключения - портов. Контроллер U SB, входящий в состав чипсетов, обычно имеет встроенный двухпортовый хаб. Логически устройство, подключенное к любому хабу USB и сконфигурированное (см. ниже), может рассматриваться как непосредственно подключенное к хост-контроллеру.

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

Каждая функция предоставляет конфигурационную информацию, описывающую возможности ПУ и требования к ресурсам. Перед использованием функция должна быть сконфигурирована хостом - ей должна быть выделена полоса в канале и выбраны опции конфигурации.

Примерами функций являются:

Ø Указатели - мышь, планшет, световое перо.

Ø Устройства ввода - клавиатура или сканер.

Ø Устройство вывода - принтер, звуковые колонки (цифровые).

Ø Телефонный адаптер ISDN.

Хаб - ключевой элемент системы РпР в архитектуре USB. Хаб является кабельным концентратором. Точки подключения называются портами хаба. Каждый хаб преобразует одну точку подключения в их множество. Архитектура допускает соединение нескольких хабов.

У каждого хаба имеется один восходящий порт (Upstream Port), предназначенный для подключения к хосту или хабу верхнего уровня. Остальные порты являются нисходящими (Downstream Ports), предназначенными для подключения функций или хабов нижнего уровня. Хаб может распознать подключение устройств к портам или отключение от них и управлять подачей питания на их сегменты. Каждый из портов может быть разрешен или запрещен и сконфигурирован на полную или ограниченную скорость обмена. Хаб обеспечивает изоляцию сегментов с низкой скоростью от высокоскоростных.

Хабы могут управлять подачей питания на нисходящие порты; предусматривается установка ограничения на ток, потребляемый каждым портом.

Система USB разделяется на три уровня с определенными правилами взаимодействия. Устройство USB содержит интерфейсную часть, часть устройства и функциональную часть. Хост тоже делится на три части - интерфейсную, системную и ПО устройства. Каждая часть отвечает только за определенный круг задач, логическое и реальное взаимодействие между ними иллюстрирует рис. 7.1.

В рассматриваемую структуру входят следующие элементы:

Ø Физическое устройство USB - устройство на шине, выполняющее функции, интересующие конечного пользователя.

Ø Client SW - ПО, соответствующее конкретному устройству, исполняемое на хост-компьютере. Может являться составной частью ОС или специальным продуктом.

Ø USB System SW - системная поддержка USB, независимая от конкретных устройств и клиентского ПО.

Ø USB Host Controller - аппаратные и программные средства для подключения устройств USB к хост-компьютеру.

3.Физический интерфейс

Стандарт USB определяет электрические и механические спецификации шины. Информационные сигналы и питающее напряжение 5 В передаются по четырехпроводному кабелю. Используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Уровни сигналов передатчиков в статическом режиме должны быть ниже 0,3 В (низкий уровень) или выше 2,8 В (высокий уровень). Приемники выдерживают входное напряжение в пределах - 0,5...+3,8 В. Передатчики должны уметь переходить в высокоимпедансное состояние для двунаправленной полудуплексной передачи по одной паре проводов.

Передача по двум проводам в USB не ограничивается дифференциальными сигналами. Кроме дифференциального приемника каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, используемых для организации аппаратного интерфейса. Состояния Diff0 и Diff1 определяются по разности потенциалов на линиях D+ и D- более 200 мВ при условии, что на одной из них потенциал выше порога срабатывания VSE. Состояние, при котором на обоих входах D+ и D- присутствует низкий уровень, называется линейным нулем (SEO - Single-Ended Zero). Интерфейс определяет следующие состояния:

Ø Data J State и Data К State - состояния передаваемого бита (или просто J и К), определяются через состояния Diff0 и Diff1.

Ø Idle State - пауза на шине.

Ø Resume State - сигнал "пробуждения" для вывода устройства из "спящего" режима.

Ø Start of Packet (SOP) - начало пакета (переход из Idle State в К).

Ø End of Packet (EOP) - конец пакета .

Ø Disconnect - устройство отключено от порта.

Ø Connect - устройство подключено к порту.

Ø Reset - сброс устройства.

Состояния определяются сочетаниями дифференциальных и линейных сигналов; для полной и низкой скоростей состояния DiffO и Diff1 имеют противоположное назначение.
В декодировании состояний Disconnect, Connect и Reset учитывается время нахождения линий (более 2,5 мс) в определенных состояниях.

Шина имеет два режима передачи. Полная скорость передачи сигналов USB составляет 12 Мбит/с, низкая - 1,5 Мбит/с. Для полной скорости используется экранированная витая пара с импедансом 90 Ом и длиной сегмента до 5 м, для низкой - невитой неэкранированньгй кабель до 3 м. Низкоскоростные кабели и устройства дешевле высокоскоростных. Одна и та же система может одновременно использовать оба режима; переключение для устройств осуществляется прозрачно.

Низкая скорость предназначена для работы с небольшим количеством ПУ, не требующих высокой скорости. Скорость, используемая устройством, подключенным к конкретному порту, определяется хабом по уровням сигналов

на линиях D+ и D-, смещаемых нагрузочными резисторами R2 приемопередатчиков (см. рис. 7.2 и 7.3)

Сигналы синхронизации кодируются вместе с данными по методу NRZI (Non Return to Zero Invert), его работу иллюстрирует рис. 7.4. Каждому пакету предшествует поле синхронизации SYNC, позволяющее приемнику настроиться на частоту передатчика. Кабель также имеет линии VBus и GND для передачи питающего напряжения 5 В к устройствам.

Сечение проводников выбирается в соответствии с длиной сегмента для обеспечения гарантированного уровня сигнала и питающего напряжения. Стандарт определяет два типа разъемов (см. табл. 7.1 и рис. 7.5).

Разъемы типа "А" применяются для подключения к хабам (Upstream Connector). Вилки устанавливаются на кабелях, не отсоединяемых от устройств (например, клавиатура, мышь и т. п.). Гнезда устанавливаются на нисходящих портах (Downstream Port) хабов. Разъемы типа "В" (Downstream Connector) устанавливаются на устройствах, от которых соединительный кабель может отсоединяться (принтеры и сканеры). Ответная часть (вилка) устанавливается на соединительном кабеле, противоположный конец которого имеет вилку типа "А".

Разъемы типов "А" и "В" различаются механически (рис. 7.5), что исключает недопустимые петлевые соединения портов хабов. Четырехконтактные разъемы имеют ключи, исключающие неправильное присоединение. Конструкция разъемов обеспечивает позднее соединение и раннее отсоединение сигнальных цепей по сравнению с питающими. Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозначение.

Рис. 7.5. Гнезда USB: а - типа "А", б - типа "В", в - символическое обозначение

Питание устройств USB возможно от кабеля (Bus-Powered Devices) или от собственного блока питания (Self-Powered Devices). Хост обеспечивает питанием непосредственно подключенные к нему ПУ. Каждый хаб, в свою очередь, обеспечивает питание устройств, подключенных к его нисходящим портам. При некоторых ограничениях топологии допускается применение хабов, питающихся от шины. На рис. 7.6 приведен пример схемы соединения устройств USB.

Здесь клавиатура, перо и мышь могут питаться от шины.

USB поддерживает как однонаправленные, так и двунаправленные режимы связи. Передача данных производится между ПО хоста и конечной точкой устройства. Устройство может иметь несколько конечных точек, связь с каждой из них (канал) устанавливается независимо.

Архитектура USB допускает четыре базовых типа передачи данных:

Ø Управляющие посылки (Control Transfers), используемые для конфигурирования во время подключения и в процессе работы для управления устройствами. Протокол обеспечивает гарантированную доставку данных. Длина поля данных управляющей посылки не превышает 64 байт на полной скорости и 8 байт на низкой.

Ø Сплошные передачи (Bulk Data Transfers) сравнительно больших пакетов без жестких требований ко времени доставки. Передачи занимают всю свободную полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Допускаются только на полной скорости передачи.

Ø Прерывания (Interrupt) - короткие (до 64 байт на полной скорости, до 8 байт на низкой) передачи типа вводимых символов или координат. Прерывания имеют спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Предел времени обслуживания устанавливается в диапазоне 1-255 мс для полной скорости и 10-255 мс - для низкой.

Ø Изохронные передачи (Isochronous Transfers) - непрерывные передачи в реальном времени, занимающие предварительно согласованную часть пропускной способности шины и имеющие заданную задержку доставки. В случае обнаружения ошибки изохронные данные передаются без повтора - недействительные пакеты игнорируются. Пример - цифровая передача голоса. Пропускная способность определяется требованиями к качеству передачи, а задержка доставки может быть критичной, например, при реализации телеконференций.

Полоса пропускания шины делится между всеми установленными каналами. Выделенная полоса закрепляется за каналом, и если установление нового канала требует такой полосы, которая не вписывается в уже существующее распределение, запрос на выделение канала отвергается.

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

Изохронные передачи классифицируются по способу синхронизации конечных точек - источников или получателей данных - с системой: различают асинхронный, синхронный и адаптивный классы устройств, каждому из которых соответствует свой тип канала USB.

Протокол

Все обмены (транзакции) по USB состоят из трех пакетов. Каждая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-аркер (Token Packet). Он описывает тип и направление передачи, адрес ус-тройства USB и номер конечной точки. В каждой транзакции возможен обмен только между адресуемым устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных (определенный маркером) передает пакет данных (или уведомление об отсутствии данных, предназначенных для передачи). После успешного приема пакета приемник данных посылает пакет подтверждения (Handshake Packet).

Планирование транзакций обеспечивает управление поточными каналами. На аппаратном уровне использование отказа от транзакции (NAck) при недопустимой интенсивности передачи предохраняет буферы от переполнения сверху и снизу. Маркеры отвергнутых транзакций повторно передаются в свободное для шины время. Управление потоками позволяет гибко планировать обслуживание одновременных разнородных потоков данных.

Устойчивость к ошибкам обеспечивают следующие свойства USB:

Ø Высокое качество сигналов, достигаемое благодаря дифференциальным приемникам/передатчикам и экранированным кабелям.

Ø Защита полей управления и данных CRC-кодами.

Ø Обнаружение подключения и отключения устройств и конфигурирование ресурсов на системном уровне.

Ø Самовосстановление протокола с тайм-аутом при потере пакетов.

Ø Управление потоком для обеспечения изохронности и управления аппаратными буферами.

Ø Независимость функций от неудачных обменов с другими функциями.

Для обнаружения ошибок передачи каждый пакет имеет контрольные поля CRC-кодов, позволяющие обнаруживать все одиночные и двойные битовые ошибки. Аппаратные средства обнаруживают ошибки передачи, а контроллер автоматически производит трехкратную попытку передачи. Если повторы безуспешны, сообщение об ошибке передается клиентскому ПО.

Устройства USB - функции и хабы

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

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

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

Управление энергопотреблением является весьма развитой функцией USB. Для устройств, питающихся от шины, мощность ограничена. Любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. Рабочий ток (не более 500 мА) заявляется в конфигурации, и если хаб не сможет обеспечить устройству заявленный ток, оно не конфигурируется и, следовательно, не может быть использовано.

Устройство USB должно поддерживать приостановку (Suspended Mode), в котором его потребляемый ток не превышает 500 мкА. Устройство должно автоматически приостанавливаться при прекращении активности шины.

Возможность удаленного пробуждения (Remote Wakeup) позволяет приостановленному устройству подать сигнал хосткомпьютеру, который тоже может находиться в приостановленном состоянии. Возможность удаленного пробуждения описывается в конфигурации устройства. При конфигурировании эта функция может быть запрещена.

Хаб в USB выполняет коммутацию сигналов и выдачу питающего напряжения, а также отслеживает состояние подключенных к нему устройств, уведомляя хост об изменениях. Хаб состоит из двух частей - контроллера (Hub Controller) и повторителя (Hub Repeater). Повтори Повторитель представляет собой управляемый ключ, соединяющий выходной порт со входным. Он имеет средства поддержки сброса и приостановки передачи сигналов. Контроллер содержит регистры для взаимодействия с хостом. Доступ к регистрам осуществляется по специфическим командам обращения к хабу. Команды позволяют конфигурировать хаб, управлять нисходящими портами и наблюдать их состояние.

Нисходящие (Downstream) порты хабов могут находиться в следующих состояниях:

Ø Powered (питание отключено) - на порт не подается питание (возможно только для хабов, коммутирующих питание). Выходные буферы переводятся в высокоимпедансное состояние, входные сигналы игнорируются.

Ø Disconnected (отсоединен) - порт не передает сигналы ни в одном направлении, но способен обнаружить подключение устройства (по отсутствию состояния SEO в течение 2,5 мкс). Тогда порт переходит в состояние Disabled, а по уровням входных сигналов {DiffO или Diff1 в состоянии Idle) он определяет скорость подключенного устройства.

Ø Disabled (запрещен) - порт передает только сигнал сброса (по команде от контроллера), сигналы от порта (кроме обнаружения отключения) не воспринимаются. По обнаружении отключения (2,5 мкс состояния SEO) порт переходит в состояние Disconnect, а если отключение обнаружено "спящим" хабом, контроллеру будет послан сигнал Resume.

Ø Enabled (разрешен) - порт передает сигналы в обоих направлениях. По команде контроллера или по обнаружении ошибки кадра порт переходит в состояние Disabled, а по обнаружении отключения - в состояние Disconnect.

Ø Suspended (приостановлен) - порт передает сигнал перевода в состояние останова ("спящий" режим). Если хаб находится в активном состоянии, сигналы через порт не пропускаются ни в одном направлении. Однако "спящий" хаб воспринимает сигналы смены состояния незапрещенных портов, подавая "пробуждающие" сигналы от активизировавшегося устройства даже через цепочку "спящих" хабов. Состояние каждого порта идентифицируется контроллером хаба с помощью отдельных регистров. Имеется общий регистр, биты которого отражают факт изменения состояния каждого порта (фиксируемый во время EOF). Это позволяет хост-контроллеру быстро узнать состояние хаба, а в случае обнаружения изменений специальными транзакциями уточнить состояние.

Хост-контроллер

Хост-компьютер общается с устройствами через контроллер. Хост имеет следующие обязанности:

Ø обнаружение подключения и отсоединения устройств USB;

Ø манипулирование потоком управления между устройствами и хостом;

Ø управление потоками данных;

Ø сбор статистики;

Ø обеспечение энергосбережения подключенными ПУ.

Ø Системное ПО контроллера управляет взаимодействием между устройствами и их ПО, функционирующим на хост-компьютере, для согласования:

Ø нумерации и конфигурации устройств;

Ø изохронных передач данных;

Ø асинхронных передач данных;

Ø управления энергопотреблением;

Ø информации об управлении устройствами и шиной.

Шина USB

Посмотрите на заднюю стенку своего аппарата. Вы увидите там множество всяких разъемов: последовательные и параллельный порты, разъемы для подключения джойстика, колонок, клавиатуры, мыши и еще множество других. Такое изобилие не есть очень хорошо, так как, во-первых, это не сказывается положительно на стоимости материнской платы (незначительно, конечно, но все-таки), а, во-вторых (что более важно) создает некоторые трудности для подключения внешней перифирии. В самом деле, если человек никогда не видел компьютера, а тут ему стало нужно подключить мышь, то он просто не будет знать, куда ее вставлять. Кроме того, программное обеспечение должно поддерживать все эти стандарты, а это только зря усложняет его (обеспечение), и создает дополнительные трудности для установки драйверов, настройки и т. п. Конечно, для знающего пользователя все это мелочи, но весь компьютерный мир стремится сделать "easy PC", то есть когда пришел, поставил, воткнул, включил, загрузил и играй в Unreal Tournament, а все остальное сделается само. Да и, как уже говорилось, не все же знают, куда же надо мышку пихать, а без мышки, сами понимаете, Unreal не Unreal. Кстати, тут я полностью разделяю позицию производителей железа - пользователь должен использовать компьютер, а не возиться со всякими прерываниями, разъемами и проч., потому что даже если все это и не составляет особого труда, то все равно очень неприятно. И все эти проблемы, как вы наверное, уже догадались, "должна решить шина USB". Поэтому перейдем сразу к делу.

Шина USB (Universal Serial Bus ) - универсальная шина, предназначенная для легкого и быстрого подключения периферийных устройств. Стандарт разработали семь компаний: Compaq, Digital Equipment, IBM, Intel, Microsoft, NEC и Northern Telecom. USB-шнур представляет собой две скрученные пары: по одной паре происходит передача данных в каждом направлении (дифференциальное включение), а другая есть линия питания (+5 V). Благодаря встроенным линиям питания, обеспечивающим ток до 500 мА, USB часто позволяет применять устройства без собственного блока питания (если эти устройства потребляют ток силой не более 500 мА).

К одному компьютеру можно подсоединить до 127 устройств через цепочку концентраторов (они используют топологию звезда). Причем эти устройства могут быть самыми разными - начиная от клавиатуры с мышью и кончая сканерами и цифровыми камерами. Представьте себе принтер, сканер, клавиатуру, колонки, джойстик и еще десяток мышек, подключенных сразу к одному порту и еще одновременно работающих! Правда, нужно сделать небольшое уточнение: все эти устройства для эффективной работы должны иметь в своем расоряжении необходимую им полосу пропускания, а она ограничена 12-ю мегабитами, которые может дать USB, то есть один сканер с хорошим принтером сожрут больше, а тут еще и колонки, и модем и что угодно. Иначе говоря, работать то оно будет, но получится ситуация, как в том анекдоте: "А теперь попробуем со всем этим взлететь". Я бы не рекомендовал на один USB-разъем (системные платы имеют два и более разъема) вешать слишком много скоростных устройств, которые предполагается использовать одновременно. Кстати, все эти мышки и модемы потребляют определенный ток, который поставляется шиной (если устройство не имеет собственного блока питания), а он не должен превысить максимального значения, что тоже снижает 127 до некоторого другого, значительно меньшего числа.

Передача данных по шине может осуществляться как в асинхронном, так и в синхронном режиме. В USB обмен информации с быстрыми устройствами идет на скорости 12 Мbits/s, а с медленными - 1.5 Мbits/s. Все подключенные к USB-устройства конфигурируются автоматически (PnP) и допускают Hot-Swap включение/выключение (без перезагрузки или выключения компьютера). Достигается это следующим образом. При подключении кабеля к USB-разъему контроллер USB-контроллер чувствует скачок напряжения и подает соответствующий сигнал операционной системе, а она загружает драйвер, который и обеспечивает работу устрйства на программном уровне. Или, если драйвер не был установлен, система, видя это безобразие, опознает устройство и самостоятельно или с помощью пользователя ставит необходимые драйвера. При дальнейшем включении/выключении этого устройство инициализация происходит, как описано в первом случае. Во время опознавания на экране появляется соответствующее сообщение, а изменения в Device Manager"е происходят автоматически. Устройство также сообщает информацию о его типе, производителе, назначении и требуемой пропускной способности. Ему назначается уникальный идентификационный номер. Это все, что нужно, никаких вопросов об IRQ, адресах портов и DMA больше не будет. Правда, одно прерывание все же нужно - для самого контроллера USB.

Для взаимодействия устройств используется вышеупомянутый кабель, имеющий на концах разъемы, напоминающие телефонные. Существует два вида разъемов: разем типа "А" и разем типа "B". Как правило, устройство подключается к кабелю одним разъемом (B), а другим к USB-порту (A). Устройства можно подключать по цепочке, для этого они могут иметь дополнительный порт для подключения кабеля, идущего на следующее устройство. Однако это не всегда так. Поэтому существуют специальные USB-хабы, подключаемые к порту USB и делящих его на несколько. Есть хабы с блоком питания, они позволяют в некоторой степени обойти ограничение на электрическую нагрузку. На рисунке слева приведен внутренний хаб, вставляющийся в 5" отсек и соединяющийся с USB-портом внешним кабелем, выходящим наружу из задней стенки PC. Наб является обычным USB-устрйством, поэтому их количество может быть более одного; их тоже можно включать в цепочку. Старые компьютеры, не имеющие USB (сейчас USB-контроллер встраивается непосредственно в чипсет), можно оснастить картой типа PCI to USB.

В отличие от чуть ли не всей компьютерной индустрии, когда еще далеко до принятия стандарта, а устройства, поддерживающие его, уже вовсю продаются на рынке, с шиной USB все получилось наоборот. Стандарт был принят аж в 1995-м году, а в 1997-м еще никто толком не мого объяснить, что такое USB. Причина - поддержка (точнее ее отсутствие) со стороны программного обеспечения. Здесь производители устройств ждали, пока Microsoft выпустит ОС с поддержкой USB, а Microsoft в свою очередь заявляла: зачем делать новую систему, когда USB-устройства можно пересчитать по пальцам. К тому же Windows 95 все же может работать с USB, пусть и плохо. Получился в своем роде замкнутый круг. Но в 1998-м году фирма Microsoft напряглась и сделала наконец-то операционную систему с более или менее полноценной поддержкой USB (имеется ввиду Windows 98). Естественно, в последующих версиях систем от дядюшки Билли эта поддержка сохранилась. И тут устройства USB начали появляться словно грибы после дождя. Так что сейчас практически вся периферия имеет USB-варианты, а очень большое количество устройств и вовсе делается только под эту шину. Более подробную информацию о том, что можно подключить к USB, можно найти на http://www.allusb.com/ .

Теоретически к шине USB можно подключить все что угодно - хоть жесткий диск или систему видеомонтажа. Такие устройства даже существуют (смотрите, например, фотографию конвертера ниже) и покупаются. Но это уже, как говориться, попытка совместить несовместимое. Все упирается в максимальную пропускную способность шины. Ее хватает только для передачи видео очень посредственного качества. Жесткий диск тоже будет сильно притормаживать, так как 12 мегабит для жесткого диска, сами понимаете, не скорость. Единствнная область, где ему можно найти применение, это роль "большой дискеты" или использование в качестве второго диска большой емкости в портативном компьютере, но уж писать высококачественный AVI-файл в реальном времени на такой арегат никак не получится. Правда, на подходе USB 2.0, где скорость будет намного увеличена.

В последнее время Microsoft вместе с Intel и другими компаниями всюду продвигают идею компьютера, в котором чего-либо нет. И если в 1999-м под горячую руку попала ISA , то теперь в компьютере "не должно быть никаких последованельных, параллельных или PS/2 портов". Все это хозяйство должна заменить USB. Вполне возможно, что в скорем времени именно так и случится - уже практически убрана ведь из РС поддержка ISA. Ну да ладно, бог с ней, в общем, с ISA, - не велика потеря. Сейчас все современые устройства поставляются в PCI-варианте, а для ISA уже мало что хорошего осталось, а если у кого-то и осталось что-то любимое, то можно найти современную плату со слотами ISA и работать себе в Windows 98, а если очень хочется чего-то посовременнее, то можно потратить деньги и заменить устройства на новые, а денег хватит, потому что для работы современными приложениями (иначе зачем тогда современное железо?) нужен не самый дешевый компьютер, и если хватило на компьютер, то хватит и на тот же FM-тюнер для PCI. Мы же обсуждаем USB. Тут ситуация такая же, как и с ISA в свое время, но только сейчас она актуальней. Ну с какой стати кто-то захочет менять свою дорогую и любимую мышь с PS/2 на USB, пусть даже она плавней ползает? А модем, который вот уже сколько гигабайт перекачал из интернета и еще с не меньшим успехом может перекачать столько же? Ну с принтерами еще ладно, все нормальные современные принтеры могут работать как и с LPT, так и с USB. Но отдавать лишние деньги за чисто альтернативные устройства для USB мало кто захочет, так как те же клавиатуры с мышами стоят дороже долларов на 10-20, чем точно такие же, но "не USB".

Но, тем не менее, по моему, если вы покупаете что-нибудь новое, то внимание на USB все же стоит обратить в первую очередь. Во первых, для некоторых устройств (принтеров, сканеров, причем цена последних, кстати, зачастую даже ниже в USB-варианте) USB дает прирост призводительности вследствие большей пропускной способности. С другой стороны, вы получате удобство пользования и, возможно, некоторые дополнительные возможности. В-третьих, становитесь обладателем современного устройства, а не всякого там антиквариата. Я полностью согласен с концепцией необходимости полного перехода USB, предлагаемой некоторыми фирмами, - нужно избавляться от технологий каменного века.