Домой / Термины / Что такое шина USB? USB (Universal Serial Bus, универсальная последовательная шина) Спецификация usb напряжение на шине

Что такое шина USB? USB (Universal Serial Bus, универсальная последовательная шина) Спецификация usb напряжение на шине


Стандарты USB 1.1 и 2.0

Универсальная последовательная шина USB (Universal Serial Bus) является еще одним последовательным интерфейсом. Поскольку это самый популярный последовательный интерфейс, то он заслуживает отдельной главы.

Шина USB позволяет последовательное подсоединение до 127 устройств (вы можете подключать устройство к устройству, если производитель устройства предусмотрел такую возможность). Как и в случае с IEEE, поддерживается «горячее» отключение/подключение устройств, то есть вам для подключения/отключения устройства не нужно выключать питание компьютера. Более того, как и в случае с IEEE, устройства могут получать питание по шине USB, что позволяет обходиться без дополнительных блоков питания.

Шина USB появилась в январе 1996 года – тогда была анонсирована версия USB 1.0. Два года спустя, в 1998 году, появилась шина USB 1.1. Практически все устройства версии 1.0 совместимы с USB 1.1, и наоборот – просто изменения были незначительные.

Шина USB 2.0 появилась в 2003 году. Она обратно совместима с версиями 1.0 и 1.1. Это означает, что к шине USB 2.0 можно подключить устройства версии 1.0 и 1.1. Определить версию устройства очень легко – по логотипу USB. На рис. 10.1 изображен логотип USB версий 1.0 и 1.1 (сейчас чаще встречается устройство версии 1.1), а на рис. 10.2 – логотип USB 2.0.

Рис. 10.1. Логотип usb 1.1: старый (слева) и новый (справа)

Рис. 10.2. Логотип usb 2.0

Технические характеристики шины USB 1.1 приведены в табл. 10.1.
//-- Таблица 10.1. Технические характеристики шины USB1.1 --//


Обратите внимание, что шина USB 1.1 может работать в двух режимах: в низкоскоростном и высокоскоростном. В первом скорость обмена составляет 1,5 Мбит/с, во втором – 12 Мбит/с.
Технические характеристики шины USB 2.0 практически такие же, но для USB 2.0 предусмотрено три скоростных режима:
Low-speed (скорость 10–1500 Кбит/c) – для устройств ввода (клавиатуры, мыши, джойстиков);
Full-speed (0,5–12 Мбит/с) – различные среднескоростные устройства;
Hi-speed (5–480 Мбит/с) – носители данных, видеоустройства.

Подключение USB-устройств

На задней стенке системного блока обычно можно обнаружить четыре USB-порта (иногда 6 или даже 8). Данные порты (рис. 10.3) принадлежат к корневым концентраторам USB. У каждого корневого концентратора есть два USB-порта. Следовательно, если у вас на системной плате четыре USB-порта, то всего в системе два корневых концентратора, если восемь портов – в системе четыре корневых концентратора.

//-- Рис. 10.3. USB-порты --//
Откройте Диспетчер устройств (для этого выполните команду Пуск, Настройка, Панель управления, Система, перейдите на вкладку Оборудование и нажмите кнопку Диспетчер устройств). В окне Диспетчера устройств раскройте группу Контроллеры универсальной последовательной шиныUSB (рис. 10.4).

//-- Рис. 10.4. Диспетчер устройств --//
Щелкните правой кнопкой по любому корневому концентратору и выберите команду Свойства. В появившемся окне перейдите на вкладку Питание. Вы увидите следующую информацию (рис. 10.5):
тип питания концентратора – наш концентратор корневой, поэтому имеет свое собственное питание;
информацию о подключенных к портам концентратора устройствах и об их питании – в нашем случае подключено одно устройство и оно требует питания в 100 мА. Максимум наш концентратор может передать до 500 мА на порт;
количество свободных портов – у корневого концентратора всего два порта, один из них занят (подключено запоминающее устройство – USB-диск), поэтому свободен один порт.

//-- Рис. 10.5. Подробная информация о концентраторе --//
Если у вас всего два концентратора и к каждому можно подключить всего два устройства, то как, спрашивается, можно подключить к компьютеру до 127 USB-устройств? Во-первых, к портам корневого концентратора вы можете подключить дополнительные USB-концентраторы (рис. 10.6). USB-концентратор подключается к USB-порту, но взамен предоставляет как минимум три свободных USB-порта. Бывают два типа USB-концентраторов: с собственным питанием и с питанием от родительского порта. Лучше покупать концентраторы с собственным питанием. Почему? Как мы знаем, на один порт передается сила тока максимум 500 мА; 100 мА потребуется для питания самого концентратора, поэтому для устройств останется 400 мА. Выходит, что к каждому порту такого концентратора вы уже не сможете подключить какое-либо мощное USB-устройство, а сможете подключать устройства вроде USB-дисков, которым необходимо всего 100 мА.

//-- Рис. 10.6. USB-концентратор --//
Если же концентратор будет обладать собственным питанием, то можно будет обеспечить по 500 мА на каждый порт, то есть USB-порты будут полноценными, как на корневых концентраторах.
Кроме того, некоторые устройства, например клавиатура, могут выступать в роли USB-концентратора (данные устройства должны быть USB-устройствами). Вы подключаете клавиатуру к USB-порту, а к ней можно подключить еще несколько устройств. Обычно к клавиатуре подключают USB-мыши и иногда USB-дис-ки. Понятно, что данные устрой ства должны быть не «обжорливыми», поскольку всего на порт подаются те самые 500 мА; 100 мА уходит на питание клавиатуры, а остальное делится между подключенными к клавиатуре устройствами. Учитывая такое иерархическое подключение устройств, несложно себе представить всего 127 подключенных к компьютеру устройств. Это же не 63 000, как в случае с IEEE-1394!
Теперь о разъемах USB. Разъемы, имеющиеся на задней стенке системного блока (самые обычные USB-разъемы), называются USB типа А. Кабель для разъема типа А изображен на рис. 10.7.

//-- Рис. 10.7. Кабель типа А --//
Разъем и кабель типа B изображены на рис. 10.8. Обычно разъем типа B используется на периферийных устройствах (принтерах, сканерах). USB-кабель для подключения периферийного устройства к компьютеру (рис. 10.9) оснащен разъемом типа B (для подклю че-ния к прин теру/сканеру) и разъемом типа A (для подключения к компьютеру).

//-- Рис. 10.8. Разъем (гнездо) и кабель типа B --//
//-- Рис. 10.9. Кабель для подключения USB-принтера --//
Кроме разъемов типа A и B, есть еще мини-разъем, который так и называется – mini-USB (рис. 10.10). Обычно он используется для подсоединения USB-кабеля к цифровому фотоаппарату, мобильному телефону. При этом один конец кабеля – mini-USB, а второй – типа A.

//-- Рис. 10.10. Кабель mini-USB --//

Модернизация старых компьютеров

На старых компьютерах нет USB-портов, но можно установить USB-кон-троллер, выполненный в виде PCI-платы расширения (рис. 10.11) или в виде PC-карты (для ноутбуков). При покупке контроллера убедитесь, что он поддер живает USB 2.0 (рис. 10.12) – если ставить, то самое новое.

//-- Рис. 10.11. USB-контроллер в виде PCI-платы (4 USB-порта) --//

//-- Рис. 10.12. Двухпортовая РС-карта (добавляет поддержку USB в старый ноутбук) --//
Иногда компьютер не очень старый – поддержка USB есть, но версии 1.1, а нужно подключить устройство USB 2.0. В этом случае тоже поможет PCI-контроллер. Еще раз повторюсь: при покупке нужно убедиться, что вы покупаете именно контроллер USB 2.0.

В настоящее время стандарт USB 3.0 еще не принят, но уже находится на стадии разработки. Предполагается, что он будет передавать сигналы с помощью оптоволоконного кабеля. USB 3.0 будет обратно совместим с версиями 2.0 и 1.1.
Сейчас над созданием USB 3.0 работают следующие компании: Intel, Microsoft, Hewlett-Packard, Texas Instruments, NEC и NXP Semiconductors. Планируемая скорость передачи данных (пиковая) – 4,8 Гбит/с.

Поддерживает ли ваша система USB

Казалось бы, если есть USB-порты, то и поддержка USB тоже должна быть. Но это не всегда так. Например, в Windows 2000 и в Windows XP SP1 нет драйвера для USB 2.0. Даже если у вас контроллер USB 2.0, то без установки драйвера для USB 2.0 шина USB будет работать как USB 1.1.
Скачайте программу USB Ready по адресу http://www.usb.org/about/ faq/ans3/usbready.exe, которая протестирует вашу систему на предмет наличия поддержки USB (рис. 10.13).

//-- Рис. 10.13. Программа usb ready --//
Что же делать тем, у кого новый USB-контроллер? Есть несколько вариантов:
установить новую версию ОС – Windows Vista, но это стоит не дешево;
обновить версию ОС до Windows XP SP2; установить драйвер USB 2.0.

Далеко не всегда хочется переустанавливать хорошо работающую систему. Тогда будем искать драйвер. Иногда он поставляется вместе с материнской платой – тогда вам повезло. Но если его в комплекте нет, тогда будем искать его в Интернете. Самое интересное, что на сайте Microsoft его уже нет. Я нашел нужный драйвер на сайте softodrom.ru:
http://soft.softodrom.ru/ap/p4515.shtml.
Если к моменту выхода книги из печати его там уже не будет, обращайтесь ко мне – я поделюсь им с вами.

Толковый словарь по вычислительным системам определяет понятие интерфейс (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), обеспечивающим одну или несколько точек подключения - портов. Контроллер USB, входящий в состав чипсетов, обычно имеет встроенный двухпортовый хаб. Логически устройство, подключенное к любому хабу USB и сконфигурированное (см. ниже), может рассматриваться как непосредственно подключенное к хост-контроллеру.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

· Лекция 15. Протокол работы USB-шины.

Общие сведения об USB -шине

У любого компьютера, выпущенного в последнее время, вы обязательно обнаружите либо на лицевой панели, либо на задней стенке разъем USB. Шина USB (Universal Serial Bus) первоначально была разработана для обеспечения легкого подключения компьютера к телефонным линиям и расширения числа портов. Первая версия стандарта (версия 1.0) была выпущена в январе 1996 года. Сейчас в основном используется версия 1.1. Стандарт USB 1.1 вполне удовлетворяет всем требованиям при работе с низко-скоростными устройствами, вроде мышей и клавиатур, и даже с устройствами, работающими на средних скоростях, вроде Ethernet-адаптеров (10 Mbit/sec) или устройств бытовой электроники (таких, как цифровые камеры и MP3-плейеры), которые пересылают только несколько мегабайт данных. Но если на периферийное устройство или в обратном направлении необходимо пересылать большие объемы информации (примеры - жесткие диски, видеокамеры высокого разрешения, или одновременное использование нескольких сетевых адаптеров стандарта 100BaseT), то скорости, обеспечиваемые USB 1.1, уже недостаточны. Поэтому в 1999 году была разработана версия 2.0 стандарта USB, обеспечивающая более высокие скорости обмена данными.

Современные компьютеры обычно имеют контроллер USB-шины, установленный на материнской плате. Для USB версии 1.1 было разработано два типа таких контроллеров, отличающихся интерфейсом взаимодействия с USB-устройствами: OHCI (Open Host Controller Interface) фирмы Compaq и UHCI (Universal Host Controller Interface) фирмы Intel. Оба типа имеют примерно одинаковые возможности и USB-устройства работают с обоими типами контроллеров. Аппаратная часть UHCI-контроллеров проще, а значит, они дешевле, но зато требуют более сложных драйверов, что увеличивает нагрузку на процессор. Версия 2.0 стандарта USB использует улучшенный вариант интерфейса - EHCI (Enhanced Host Controller Interface).

Стандарт USB предусматривает строгую иерархию устройств, управляемых основным хостом, и использование протокола master/slave для управления подключаемыми устройствами. На один USB-разъем могут быть последовательно подключены до 127 устройств. Но непосредственно подключать одно устройство к другому нельзя, поскольку питание таких устройств осуществляется по той же шине. Поэтому для подключения дополнительных устройств используются специальные хабы, обеспечивающие снабжение этих устройств необходимой энергией. В результате USB-устройства образуют как бы дерево, каждая не конечная вершина которого является хабом. Поскольку любой обмен данными инициируется только хостом, и периферийные устройства не могут начать взаимодействие, исключена возможность коллизий, вследствие чего снижается стоимость устройств. Правда, такое решение приводит к некоторому снижению производительности. В результате USB-устройства версии 1.1 могут работать в двух режимах: так называемом low speed, обеспечивающем скорость передачи данных до 1.5 Mбит/сек, и full speed, в котором скорость передачи данных может составлять 12 Мбит/сек. Это только теоретический предел, а реально производительность шины даже в идеальных условиях не превышает 8,5 Мбит/сек., а в среднем составляет около 2 Мбит/сек.

Интерфейс EHCI, используемый в устройствах версии 2, обеспечивает режим работы high speed, для которого скорость передачи данных может достигать 480 Мбит/сек. Для того чтобы USB-устройства могли обмениваться данными с такой скоростью, и хост-контроллер и само устройство должны соответствовать стандарту USB 2.0 и обеспечивать работу с интерфейсом EHCI. Однако хост-контроллеры 2.0 успешно работают с устройствами версии 1.1. И наоборот, вполне можно подключать устройства USB 2.0 к хосту (и к хабам) версии USB 1.1 и они будут прекрасно работать, но со скоростью не более 12, а не 480 Мбит/сек.

В настоящее время разработан широкий спектр устройств, подключаемых по шине USB. Это клавиатуры, мыши, джойстики, игровые приставки, сканеры, модемы, принтеры, цифровые камеры, устройства хранения информации – дисководы гибких и жестких дисков, дисководы Zip, LS120 и CD-ROM. Очень перспективный и интересный класс таких устройств образуют накопители на основе Flash-памяти .

Физическая среда

Шина USB , обладает полосой пропускания 1,5 или 12 Мбит/с.

USB -кабель состоит из 4 проводников:

Два провода формируют витую пару, применяемую в дифференциальных передачах данных;

Остальные два представляют собой линии питания и заземления устройств, не имеющих собственного питания 5 В постоянного напряжения.

USB стандарт предполагает два вида кабеля и два варианта разъемов. High-speed (высокоскоростные) кабели, для связи 12Mb в секунду, лучше экранированы, чем их менее дорогие 1.5 Mb заменители. Каждый кабель имеет "А" разъем на одной стороне и "B" на другой. Рисунок 1 показывает как "А" разъемы подсоединяются к исходящему, а "В" к нисходящему. Таким образом два типа физически различны и невозможно подключить их неправильно.

Рис 1. USB топологоия "подключение звездой"

USB шина позволяет подключать до 127 устройств. Использование такого количества устройств возможно при многоуровневом каскадировании. Наглядно это объясняет следующий рисунок:

Это первая архитектурная особенность шины USB: ее логическая топология - многоуровневая звезда.

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

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

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

Физическая топология шины - звезда

Это объясняется тем, что каждый концентратор обеспечивает прозрачно для хоста соединение с устройством.

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

Хост, как уже было сказано ранее, программно-аппаратный комплекс.

В обязанности хоста входит:

· Слежение за подключением и отключением устройств

· Организация управляющих потоков между USB-устройством и хостом.

· Организация потоков данных между USB-устройством и хостом

· Контроль состояния устроств и ведение статистики активности

· Снабжение подключенных устройств электропитанием

Аппаратной частью является хост-контроллер - посредник между хостом и устройствами на шине.

Программные функции (перечисление устройств и их конфигурирование, управление энергопотреблением, процессами передачи, устройствами на шине и самой шиной) возложены на операционную систему. Первой популярной операционной системой, в которой поддержка USB реализована была в полном объеме стала Windows 98 Second Edition. Некоторые устройства могут быть работоспособными и под более ранними версиями (98 без SE, и изредка 95), но далеко не все и не всегда.

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

Хаб должен следить за подключением и отключением устройств, уведомляя хост об изменениях, управлять питанием портов. В концентраторе стандарта USB 2.0 можно выделить 3 функциональных блока: контроллер, повторитель, транслятор транзакций. Контроллер отвечает за соединения с хостом. Понятие повторитель в USB несколько отличается от принятого в сетях передачи данных. Его обязанность - соединять входной и какой-то нужный из выходных портов. Транслятор транзакций появился лишь в USB 2.0 и нужен, как всегда, из соображений совместимости с предыдущими версиями. Вкратце его суть в том, что бы обеспечивать максимальную скорость соединения с хостом. Подключенное к высокоскоростному (USB 2.0) порту старое медленное (USB 1.1) устройство съедало бы значительную часть времени, а следовательно и полезной пропускной способности шины, ведя обмен с хостом на низкой скорости (почему так происходит мы выясним позже при рассмотрении механизма обмена данными хост-устройство). Как метод борьбы транслятор транзакций буферизирует поступающий с медленного порта кадр, а затем на максимальной скорости передает его хосту, или же буферизирует получаемый на максимальной скорости кадр от хоста, передавая его затем устройству на меньшей, приемлемой для него скорости. Помимо разветвления и трансляции транзакций хаб должен осуществлять конфигурирование портов и слежение за корректным функционированием подключенных к ним устройств. Нужно сказать также, что при использовании старых и новых концентраторов вместе возможно создание неоптимальных с точки зрения производительности конфигураций. Для того что бы избежать создания узких мест в своей цепи, подключайте низкоскоростные устройства к низкоскоростным хабам, которые в свою очередь делайте последними уровнями ветвления и не подключайте их в середину высокоскоростной цепочки.

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

Структура USB пакета

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

Каждая USB транзакция состоит из следующих частей:

· Признак пакета (Заголовок определяющий что далее будет следовать)

· Пакет данных (Опционально)

· Пакет статуса транзакции (Используется для подтверждения нормального завершения транзакции и обеспечения коррекции ошибок при передаче)

Мастером на USB шине является хост. Он и является инициатором всех транзакций. Первым передаваемым пакетом является Признак (Token Packet). Он генерируется хостом для определения что будет следовать далее, какая это будет транзакция: чтение или запись, к какому устройству и конечной точке будет обращение. Следующим пакетом, как обычно, следует пакет данных (Data Packet). И в завершении транзакции следует пакет статуса (Status Packet), который либо подтверждает успешное принятие данных, либо указывает что конечная точка приостановлена (STALL) или не готова принимать данные.

Поля USB пакета

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

· Поле синхронизации (Sync Field)

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

· Поле идентификатора пакета (PID Field)

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

(LSB)

(MSB)

PID0

PID1

PID2

PID3

PID0

PID1

PID2

PID3

Рисунок 2. Формат поля PID.

Контрольная область PID генерируется как инверсия четырехбитного типа пакета и необходима для устранения ложного декодирования следующих за этим полем данных. Ошибка PID детектируется в том случае, когда инвертированная контрольная область не совпадает с соответствующими битами идентификатора пакета. Любой PID полученный с ошибкой или неуказанный в нижеследующей таблице, должен быть проигнорирован получателем пакета.

PID Тип

Имя PID

PID

Описание

Признак (Token)

0001

Адрес + номер конечной точки для транзакции ХОСТ -->Функция

1001

Адрес + номер конечной точки для транзакции ХОCT <-- Функция

0101

Маркер начала пакета и его номер

SETUP

1101

Адрес + номер конечной точки для SETUP транзакции ХОСТ ® Функция в канале управления

Данные

DATA0

0011

Четный PID пакета данных

DATA1

1011

Нечетный PID пакета данных

Статус

0010

Приемник принял пакет данных без ошибок

1010

Принимающее устройство не может принять данные, или передающее не может их отправить

STALL

1110

Конечна точка приостановлена (HALT) или запрос по управляющему каналу не поддерживается

Спец.

1100

ХОСТ инициирует преамбулу, разрешая трафик для низкоскоростных устройств

Рисунок 3. Типы PID .

PID биты приведены в таблице в MSB порядке. Когда они передаются по шине, правый бит (бит 0) выдается первым.

· Поле адреса устройства (Addr Field)

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

· Поле адреса конечной точки (Endpoint Field)

Поле адреса конечной точки имеет размерность 4 бита и позволяет размещать в устройстве до 16 конечных точек. Все функции должны поддерживать одну управляющую "0" конечную точку. Низкоскоростные устройства поддерживают только три канала передачи: управляющий канал, связанный с нулевой конечной точкой и два дополнительных канала (две Interrupt конечные точки). Полноскоростные устройства поддерживают максимум до 16 конечных точек.

· Поле номера кадра (Frame Number Field)

Поле номера кадра представляет собой 11-битное поле, которое инкрементируется хостом при инициировании нового кадра. Поле номера кадра начинается заново с нуля при достижения максимального значения 0х7FF, и используется только для SOF маркеров в каждом начале кадра.

· Поле циклического контроля по избыточности (CRC)

Циклический контроль по избыточности (CRC) используются для защиты всех полей кроме PID в маркерах и пакетах данных. Защита Маркера и пакета данных обеспечивает 100% нахождение всех одиночных и двойных битовых ошибок. Для маркеров предусмотрено пяти-битное поле CRC, которое используется для защиты полей ADDR и ENDP пакетов IN, SETUP,OUT или поле отметки времени маркера SOF. Для пакета данных используется 16-битный полином, кодирующий всё поле данных пакета.

· Поле конца пакета (EOP)

Поле конца пакета представляет собой сигнал окончания пакета и устанавливается на шине путем выставления сигнала "Single Ended Zero " SE0 в течении двух битовых интервалов следующего за J состоянием, установленным на время одного битового интервала.

Типы USB пакетов

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

· Маркерные пакеты (Token Packets)

Существуют три типа маркерных пакетов:

1. In - информируют USB устройство, что хост хочет читать данные из устройства

2. Out - информирует USB устройство, что хост хочет передавать данные в устройство

3. Setup - используются для обозначения начала управляющего (Control Transfer) типа передачи данных

Все маркерные пакеты имеют следующий формат:

SYNC

ADDR

ENDP

CRC5

Рисунок 4 . Маркерный пакет.

· Пакеты данных (Token Packets)

Существуют два типа пакетов данных, каждый из которых способен содержать до 1024 байтов данных.

  1. DATA0
  2. DATA1

У высокоскоростных устройств для пакетов данных определены два других PID-a: DATA2 и MDATA. Пакет данных имеет нижеследующий формат:

SYNC

DATA

CRC16

Рисунок 5. Пакет данных.

Данные всегда посылаются целым числом байт. Данные CRC16 вычисляются только для поля данных в пакете и не включают PID, который имеет собственное поле проверки.

· Пакеты подтверждения (Handshake Packets)

Существуют три типа пакетов подтверждения, структура которых имеет только PID поле:

ACK - подтверждение того, что пакет был успешно принят

NAK - информирует, что устройство в данный момент не может принимать либо отправлять данные. Также используется в Interrupt транзакциях для информирования хоста, что устройство не имеет новых данных для передачи. Хост никогда не может выдавать ответ NAK. NAK используется в целях управления потоком данных.

STALL - указывает, что устройство неспособно передавать или получать данные, и требуется вмешательство хоста для снятий состояния останова. Как только конечная точка устройства остановлена, устройство должно продолжить возвращать STALL, пока условие, вызвавшее останов не будет удалено с помощью вмешательства хоста. Хосту запрещено возвращать STALL.

Пакет подтверждения имеет нижеследующий формат:

SYNC

Рисунок 6. Пакет подтверждения.

· Пакеты начала кадра (Start of Frame Packets)

SOF пакет состоит из 11-ти битного номера кадра и генерируется хостом каждую 1ms ± 500ns для полноскоростной шины и каждые 125 µs ± 0.0625 µs для высокоскоростной шины.

Пакет начала кадра имеет нижеследующий формат:

SYNC

Frame Number

CRC16

Рисунок 7. Пакет начала кадра.

USB функция

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

К счастью, большинство USB контроллеров, весь физический протокол нижнего уровня поддерживают самостоятельно без вмешательства пользовательской программы. Вмешательство пользователя необходимо лишь тогда, когда на шине произошло одно из событий: прием или выдача пакета данных в/из FIFO, событие NAK или STALL, процесс энумерации или переход в режим пониженного энергопотребления.

Большинство функций имеет буфера для приема/передачи данных. Обычно их размер составляет 8 байт. Каждый буфер закреплён за определеннной конечной точкой, например за EP0 Out и EP0 In. Например хост инициирует запрос дескриптора устройства. USB контроллер функции считывает Setup пакет и определяет по адресному полю был ли он направлен именно к ней. Если пакет был направлен именно по этому адресу, то USB контроллер считывает данные в соответствующий буфер (FIFO) указанный в поле конечной точки (Endpoint Field). После этого функция генерирует пакет подтверждения, в котором указывает статус принятия пакета и устанавливает сигнал прерывания для внешнего управляющего контроллера, указывающий, что произошло событие по приему данных в RXFIFO. Все эти действия происходят без внешнего вмешательства ПО пользователя, что разгружает микроконтроллер реализующий функцию управления. ПО микроконтроллера обрабатывает прерывание - считывает из RXFIFO запрос дескриптора и отвечает на него выдачей структуры соответствующей запрошенному дескриптору.

Конечные точки

Конечные точки функции могут принимать или передавать данные. Конечные точки USB функции являются самым последним звеном в коммуникационном канале. Например, в программном слое, ваш драйвер устройства посылает пакет данных в конечную точку EP1 функции. Данные будут последовательно поступать в функцию и складываться USB контроллером в буфер RXFIFO1. Как только у управляющего микроконтроллера появиться свободное время он может считать из RXFIFO1 полученные данные. Если он хочет ответить пакетом данных, USB контроллер не может просто выставить их шину, т.к. мастером и инициатором запросов на шине является хост. Следовательно, управляющий микроконтроллер записывает пакет данных в IN конечную точку, например в EP1. Данные будут находится в буфере первой конечной точки TXFIFO1 до тех пор, пока хост не выставит на шину IN транзакцию к этой конечной точке. Конечные точки - это интерфейс связи между аппаратными средствами и микропрограммой работающей на функциональном устройстве. Все USB устройства должны поддерживать нулевую конечную точку (EP0). Она получает все управляющие и статус запросы во время процесса энумерации и всего цикла работы, пока устройство присоединено к USB шине.

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

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

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

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

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

· Групповая пересылка . Используется для гарантированной передачи данных больших объемов без предъявленных требований к скоростям и задержкам. Занимает под себя всю свободную пропускную способность шины. В любой момент доступная полоса может быть урезана при необходимости осуществления передач других видов с более высоким приоритетом, или добавлена, при освобождении другими устройствами. Обычно такие передачи используется между принтерами, сканерами, накопителями и др.

· Изохронная передачи . Используются для потоковых передач данных в реальном времени. Резервируют определенную полосу пропускания шины, гарантируют определенные величины задержек доставки, но не гарантируют доставку (в случае обнаружения ошибки повторной передачи не происходит. Передачи этого вида используются для передачи аудио и видео трафика.

Обмен данными может осуществляться в трех скоростных режимах:

· Low Speed. Низкоскоростной режим. Скорость передачи составляет 1.5 Мбит/с.

· Full Speed. Полноскоростной режим. Скорость передачи 12 Мбит/с.

· High Speed. Высокоскоростной режим. Появился лишь в спецификации 2.0. Скорость передачи 480 Мбит/с.

Устройства на шине USB делятся на ведущие и ведомые. Фактически, ведущих устройств на шине может быть только одно, и таковым является хост. Все передачи данных инициируются хостом в соответствии определенной временной программой. Функциональные устройства сами не могут инициировать передачу, а лишь отвечают на запросы хоста. Обмен данными возможен только между хостом и устройством, и не возможен на прямую между устройствами подключенными к шине (это означает, что в принципе в первую очередь USB - это шина вывода. Транзакции на USB шине состоят из двух-трех актов: посылки пакета маркера, определяющего, что будет следовать дальше (тип транзакции, адрес устройства и его конечную точку), пакета данных (опционально), и пакета статуса транзакции (для подтверждения нормального выполнения операции или сообщения об ошибке).

Приоритеты передач по USB -шине

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

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

Передачи прерываний;

Передачи управляющих команд;

Передачи данных больших объемов.

Списки постоянно обновляются новыми запросами. Планирование операций по передаче информации в соответствии с упорядоченными в виде списков запросами выполняется хостом с 1-миллисекундным интервалом. В начале каждого такого интервала хост посылает по шине пакет SOF (Start Of Frame - начало кадра), после чего начинается обслуживание запросов из списка изохронных передач (т.к. они имеют наивысший приоритет).

После того, как все запросы из этого списка будут обслужены, хост-система переходит к списку операций по передачи прерываний, затем к списку запросов на передачу данных большого объема.

По истечении 90% указанного 1-миллисекундного интервала хост автоматически переходит к обслуживанию запросов на передачу управляющих команд независимо от того, успел ли он полностью обслужить другие три списка или нет.

Тем самым гарантируется, что управляющим передачам всегда будет выделено не менее 10% пропускной способности шины. Если передача всех управляющих пакетов будет завершена до истечения выделенной для них доли интервала планирования, то оставшееся время будет использовано хостом для передачи данных большого объема (до конца указанного 1-миллисекундного интервала).

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

Изохронные передачи гарантированно получают 90% пропускной способности шины;

Передачи прерываний занимают оставшуюся часть изохронных операций часть этой 90-процентной доли;

Под передачу данных большого объема выделяется все время, оставшееся после изохронных передач и передач прерываний (по-прежнему в рамках 90%-ой доли пропускной способности);

Управляющим передачам гарантируется 10% пропускной способности;

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

Источники информации

1. www.rus-linux.net (USB - Lin . html )

2. www.is.svitonline.com (USB Masters . htm )

3. Компьютерная документация от А до Я. (Технология USB 2.0. htm )

4. www.zyxel.ru – База знаний


Благодаря своей универсальности и способности эффективно передавать разнородный трафик шина 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, например для удаленного видеонаблюдения.

Шина 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, предлагаемой некоторыми фирмами, - нужно избавляться от технологий каменного века.