Домой / Одноклассники / Универсальная последовательная шина USB. Последовательная шина usb Спецификация usb напряжение на шине

Универсальная последовательная шина USB. Последовательная шина usb Спецификация usb напряжение на шине

– Что такое USB?

Спецификация периферийной шины USB разработана лидерами компьютерной и телекоммуникационной промышленности -- Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom -- для подключения компьютерной периферии вне корпуса машины по стандарту plug"n"play, в результате отпадает необходимость в установке дополнительных плат в слоты расширения и переконфигурировании системы. Персональные компьютеры, имеющие шину USB, позволяют подключать периферийные устройства и осуществляют их автоматическое конфигурирование, как только устройство физически будет присоединено к машине, и при этом нет необходимость перезагружать или выключать компьютер, а так же запускать программы установки и конфигурирования. Шина USB позволяет одновременно подключать последовательно до 127 устройств, таких, как мониторы или клавиатуры, выполняющие роль дополнительно подключенных компонентов, или хабов (т.е. устройство, через которое подключается еще несколько).

– Кто создал USB?

USB была разработана группой из семи компаний, которые видели необходимость во взаимодействии для обеспечения дальнейшего роста и развития расцветающей индустрии интегрированных компьютеров и телефонии. Эти семь компаний, продвигающие USB, следующие: Compaq, Digital Equipment Corp, IBM PC Co., Intel, Microsoft, NEC и Northern Telecom.

– Как это работает?

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

– Какие виды периферийного оборудования поддерживает USB для подключения к моему PC?

Вы знаете эти устройства: телефоны, модемы, клавиатуры, мыши, устройства чтения CD ROM, джойстики, ленточные и дисковые накопители, сканеры и принтеры. Скорость прокачки в 12 мегабит/секунду позволяет подключать через USB все современное поколение периферийных устройств, включая аппаратуру для обработки видео данных формата MPEG-2, перчатки для управления виртуальными объектами и дигитайзеры. Также, с ожиданием большого роста в области интеграции компьютеров и телефонии, шина USB может выступать в качестве интерфейса для подключения устройств Цифровой сети с интегрированными услугами (ISDN) и цифровых устройств Private Branch eXchange (PBX), позволяющих подключать большое количество телефонов к небольшому количеству линий связи.

– Нужно ли мне покупать специальное программное обеспечение, что бы работала USB-совместимая периферия?

Операционная система Windows 95 (начиная с версии OSR 2.1, выпущенной 29 октября 1996г.) поставляется уже со встроенными драйверами, которые позволяет Вашему персональному компьютеру распознавать USB периферию. В результате, Вам не нужно покупать или инсталлировать дополнительное программное обеспеченте для каждого нового периферийного устройства. Тем не менее, вместе с новой USB периферией вы получите дискету с новыми драйверами. Однако, не все так радужно - например, корректную работу принтера с интерфейсом USB способна обеспечить только OC Windows 98 и выше.

– Что означает существование USB для поставщиков систем и периферии?

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

  • "Готовая платформа" позволяет логично связать аппаратное и программное обеспечение для совместной поставки покупателю.
  • USB может снизить риск возможной несовместимости периферийного и программного обеспечения, поставляемого с компьютерами, за счет поставки готовых систем по ключ, которые удовлетворяют требованиям специализированных рыночных ниш.
  • USB-совместимая периферия может предложить частным и корпоративным покупателям больший выбор оборудования, без страха снижения функциональных возможностей аппаратных средств.
  • Реселлеры получают большую гибкость в подборе аппаратуры и готовых систем, для стимуляции покупательского спроса, за счет возможности комбинирования комплектов поставляемой периферии, без опасений, что что-то с чем-то не будет работать в паре.
  • USB может обеспечить поставщикам периферии дополнительную выгоду, за счет поставки нового оборудования для систем, использующих технологию MMX™.
  • USB может помочь поставщикам снизить их затраты на разработки, что в свою очередь позволит им устанавливать новые, более конкурентноспособные, цены.

– Где я могу найти текущую версию спецификации USB?

Текущая версия спецификации доступна для загрузки со страницы сообщества по внедрению USB - .

– Как много USB-совместимых компьютеров можно ожидать на рынке?

Компания Dataquest считает, что до 30 миллионов USB-совместимых персональных компьютеров будет продано в течении 1997, а в 1998 году, все персональные компьютеры будут оснащены шиной USB.

– Есть ли уже устройства для USB шины?

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

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

– Как может применяться USB при наличие двух систем, например ноутбука и настольного компьютера?

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

– Что такое сообщество по внедрению USB (USB-IF)?

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

– Могу ли я присоединиться к сообществу USB-IF?

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

– Как можно сравнить USB со стандартом Sony FireWire/IEEE 1394?

Основные отличия состоят в области применения, доступности и цене. Использование USB доступно уже сейчас для традиционных устройств, подключаемых к PC, таких, как клавиатуры, мыши, джойстики и ручные сканнеры. Тем не менее, пропускная возможность USB в 12 Mb/сек более чем достаточна для большинства применений ее пользователями, включая более продвинутые игровые устройства, высококачественный звук и сжатое видео стандартов MPEG-1 и MPEG-2. Но, что более важно, применение USB не увеличивает стоимость готовой системы в силу интегрирования контроллера в чипсет.

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

– Заменит ли FireWire шину USB после своего появления?

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

– Что такое интеллектуальные вопросы собственности (Intellectual Property - IP) в отношении USB, лицензия ли это, сколько она стоит, что такое "Обратный Договор"(Reciprocal Covenent Agreement) о котором я слышал?

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

– Что такое сцпецификации OHCI и UHCI?

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

– Существует ли группа новостей про USB?

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

– Как я могу получить идентификационный индекс (ID) производителя USB?

Члены USB-IF получают ID производителя бесплатно, как только присоединяются к сообществу. Не члены сообщества могут получить ID производителя связавшись с администрацией USB-IF. С не членов сообщества взимается регистрационная пошлина в размере $200.

– Есть ли возможность увеличить длину соединения устройств через шину USB до 50-200 метров (например, используя оптоволокно), если это понадобится пользователям?

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

– Когда устройство отключено, его драйвер выгружается из памяти, если опять подключить это же устройство, будет ли его драйвер снова загружен?

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

– Существуют ли планы по увеличению пропускной способности шины USB вдвое, втрое?

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

– Может ли кто нибудь разъяснить разницу между соединителями серии "A" и "B"?

Коннекторы серии "A" разработаны для всех устройств USB, и являются разъемом для периферии и гнездом для персонального компьютера. В большинстве случаев, кабель USB должен быть встроен в периферийное устройство. Это снижает стоимость соединителей, избавляет от несовместимости, возможной в случае разного сопротивления кабелей, и упрощает действия пользователей по подключению. Однако в некоторых случаях встроенный кабель нельзя использовать. Хорошим примером могут служить очень большие и тяжелые устройства, плохо сочетатающиеся с тонким кабелем, который нельзя удалить, а так же устройства, подключаемые только изредка, которые интенсивно используются, когда не являются подключенными. Для таких случаев и были созданы коннекторы серии "B". Две серии коннекторов различаются внешне, это сделано для предотвращения соединений, которые бы могли нарушить топологию архитектуры USB.

– В чем разница между основным хабом и обычным с точки зрения аппаратной реализации и программного обеспечения?

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

– Возможно ли использование шины USB для подключения таких периферийных устройств, как CD-R, ленточных накопителей или жестких дисков?

Возможность применения основана на приемлемости уровня производительности. Если какое-то из этих устройств предполагается часто использовать, то, обычно предъявляются требования, что бы оно было механически интегрированно в систему и имело высокую производительность, опять же соответствующую уровню системы в целом. Шина USB не разрабатывалась для обеспечения постоянного соединения высокоскоростных периферийных устройств внутри корпуса компьютера. Если устройство используется время от времени или подключается к разным компьютерам, тогда, производительность, обеспечиваемая шиной USB будет более чем достаточной. Удобства использования и подключения устройств, обеспечиваемые USB с лихвой перевешивают параметры скорости предачи данных. Но все таки, USB обеспечивает скорость передачи на уровне 4x или 6x скоростных приводов CD (чего недостаточно для перезаписывающих устройств), но при этом лучшую, чем обеспечивают обычные ленточные накопители, подключенные через параллельный порт, дисководы для гибких магнитных дисков или съемные жесткие диски типа SyQuest.

Организация шины USB

USB (Universal Serial Bus — универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Версия стандарта 1.0 была опубликована в начале 1996 года, большинство устройств поддерживают стандарт 1.1, который вышел осенью 1998 года, — в нем были устранены обнаруженные проблемы первой редакции. Весной 2000 года опубликована спецификация USB 2.0, в которой предусмотрено 40-кратное увеличение пропускной способности шины. Первоначально (в версиях 1.0 и 1.1) шина обеспечивала две скорости передачи информации: полная скорость, FS (full speed) — 12 Мбит/с и низкая скорость, LS (low speed) — 1,5 Мбит/с. В версии 2.0 определена еще и высокая скорость, HS (high speed) — 480 Мбит/с, что позволяет существенно расширить круг устройств, подключаемых к шине. В одной и той же системе могут присутствовать и одновременно работать устройства со всеми тремя скоростями. Шина позволяет с использованием промежуточных хабов соединять устройства, удаленные от компьютера на расстояние до 25 м. Подробную и оперативную информацию по USB (на английском языке) можно найти на сайте http://www.usb.org . Разработку устройств и их классификацию и стандартизацию координирует USB-IF (USB Implementers Forum, Inc.).

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

Таблица. Сравнение шины USB с традиционными периферийными интерфейсами

Традиционные интерфейсы (COM, LPT, Game…) Шина USB
Подключение каждого устройства в общем случае требует присутствия собственного контроллера (адаптера) 1 Все устройства подключены через один хостконтроллер
Каждый контроллер занимает свои ресурсы (области в пространстве памяти, ввода/вывода, а также запросы прерывания) Ресурсы занимает только хост-контроллер
Малое количество устройств, которые возможно одновременно подключить к компьютеру Возможность подключения до 127 устройств
Драйверы устройств могут обращаться непосредственно к контроллерам своих устройств, независимо друг от друга Драйверы устройств обращаются только к общему драйверу хост-контроллера
Независимость драйверов оборачивается непредсказуемостью результата одновременной работы с множеством устройств, отсутствием гарантий качества обслуживания (возможность задержек и уменьшения скорости передачи)
для различных устройств
Централизованный планируемый обмен обеспечивает гарантии качества обслуживания, что позволяет передавать мультимедийные изохронные данные наряду с обычным асинхронным обменом
Разнообразие интерфейсов, разъемов и кабелей, специфичных для каждого типа устройств Единый удобный и дешевый интерфейс для подключения устройств всех типов. Возможность выбора скорости работы устройства (1,5-15-480 Мбит/с) в зависимости от потребности
Отсутствие встроенных средств обнаружения подключения/отключения и идентификации устройств, сложность поддержки PnP Возможность «горячего» подключения/отключения устройств, полная поддержка PnP, динамическое конфигурирование
Отсутствие средств контроля ошибок Встроенные средства обеспечения надежной передачи данных
Отсутствие штатного питания устройств Возможность питания устройств от шины, а также наличие средств управления энергопотреблением

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

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

  • изохронные передачи (isochronous transfers) — потоковые передачи в реальном времени, занимающие предварительно согласованную часть пропускной способности шины с гарантированным временем задержки доставки. На полной скорости (FS) можно организовать один канал с полосой до 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно занять и менее емкими каналами). На высокой скорости (HS) можно получить канал до 24 Мбайт/с (192 Мбит/с). Надежность доставки не гарантируется — в случае обнаружения ошибки изохронные данные не повторяются, недействительные пакеты игнорируются. Шина USB позволяет с помощью изохронных передач организовывать синхронные соединения между устройствами и прикладными программами. Изохронные передачи нужны для потоковых устройств: видеокамер, цифровых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD). Видеопоток (без компрессии) шина USB способна передавать только на высокой скорости;
  • прерывания (interrupts) — передачи спонтанных сообщений, которые должны выполняться с задержкой не более, чем того требует устройство. Предел времени обслуживания устанавливается в диапазоне 10-255 мс для низкой и 1-255 мс для полной скорости. На высокой скорости можно заказать и 125 мкс. Доставка гарантирована, при случайных ошибках обмена выполняется повтор, правда, при этом время обслуживания увеличивается. Прерывания используются, например, при вводе символов с клавиатуры или для передачи сообщений о перемещениях мыши. Прерываниями можно передавать данные и к устройству (как только устройство сигнализирует о потребности в данных, хост своевременно их передает). Размер сообщения может составлять 0-8 байт для низкой скорости, 0-64 байт — для полной и 0-1024 байт — для высокой скорости передачи;
  • передачи массивов данных (bulk data transfers) — это передачи без каких-либо обязательств по своевременности доставки и по скорости. Передачи массивов могут занимать всю полосу пропускания шины, свободную от передач других типов. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Доставка гарантированная — при случайной ошибке выполняется повтор. Передачи массивов уместны для обмена данными с принтерами, сканерами, устройствами хранения и т. п.;
  • управляющие передачи (control transfers) используются для конфигурирования устройств во время их подключения и для управления устройствами в процессе работы. Протокол обеспечивает гарантированную доставку данных и подтверждение устройством успешности выполнения управляющей команды. Управляющая передача позволяет подать устройству команду (запрос, возможно, и с дополнительными данными) и получить на него ответ (подтверждение или отказ от выполнения запроса и, возможно, данные). Только управляющие передачи на USB обеспечивают синхронизацию запросов и ответов; в остальных типах передач явной синхронизации потока ввода с потоком вывода нет.

Аппаратная часть USB включает:

  • периферийные устройства USB, несущие полезные функции (USB-functions);
  • хост-контроллер (Host Controller), обеспечивающий связь шины с центром компьютера, объединенный с корневым хабом (Root Hub), обеспечивающим точки подключения устройств USB. Существует два варианта хост-контроллеров USB 1.x — UHC (Universal Host Controller) и OHC (Open Host Controller), поддерживающие скорости FS/LS; высокую скорость шины USB 2.0 (HS и только) поддерживает EHC (Enhanced Host Controller);
  • хабы USB (USB Hubs), обеспечивающие дополнительные точки подключения устройств;
  • кабели USB, соединяющие устройства с хабами.

Программная часть USB включает:

  • клиентское ПО (CSw, Client Software) — драйверы устройств USB, обеспечивающие доступ к устройствам со стороны прикладного ПО. Эти драйверы взаимодействуют с устройствами только через программный интерфейс с общим драйвером USB (USBD). Непосредственного обращения к каким-либо регистрам аппаратных средств драйверы устройств USB не выполняют;
  • драйвер USB (USBD, USB Driver), «заведующий» всеми USB-устройствами системы, их нумерацией, конфигурированием, предоставлением служб, распределением пропускной способности шины, мощности питания и т. п.;
  • драйвер хост-контроллера (HCD, Host Controller Driver), преобразующий запросы ввода/вывода в структуры данных, размещенные в коммуникационной области оперативной памяти, и обращающийся к регистрам хост-контроллера. Хост-контроллер выполняет физические транзакции, руководствуясь этими структурами данных.

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

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

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

Логическая топология USB — звезда. Хабы (включая корневой) создают иллюзию непосредственного подключения каждого логического устройства к хост-контроллеру (см. рисунок ниже, б). В этой звезде устанавливаются сугубо подчиненные отношения по системе опроса-ответа: хост-контроллер по своей инициативе передает данные к выбранному устройству или принимает их. Устройство по своей инициативе передавать данные не может; непосредственные передачи данных между устройствами невозможны. Устройство по своей инициативе может лишь сигнализировать о «пробуждении» (wakeup), для чего используется специальная сигнализация, но не передача данных.

Физический интерфейс USB прост и изящен. Конструкция кабелей и коннекторов USB не дает возможности ошибиться при подключении устройств (см. рисунок ниже, а и б). Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозначение (см. рисунок ниже, в). Гнезда типа «A» устанавливаются только на нисходящих портах хабов, вилки типа «A» — на шнурах периферийных устройств или восходящих портов хабов. Гнезда и вилки типа «B» используются только для шнуров, отсоединяемых от периферийных устройств и восходящих портов хабов (от «мелких» устройств — мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). Для малогабаритных устройств имеются разъемы mini-B, а для поддержки OTG (On-the-Go) имеются и вилки mini-A, и розетки miniAB. Хабы и устройства обеспечивают возможность «горячего» подключения и отключения с сигнализацией об этих событиях хосту.

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

Логическое устройство USB представляет собой набор независимых конечных точек (Endpoint, EP), с которыми хост-контроллер (и клиентское ПО) обменивается информацией. Каждому логическому устройству USB (как функции, так и хабу) конфигурационная часть ПО хоста назначает свой адрес (1-127), уникальный на данной шине USB. Каждая конечная точка логического устройства идентифицируется своим номером (0-15) и направлением передачи (IN — передача к хосту, OUT — от хоста). Точки IN4 и OUT4, к примеру, представляют собой разные конечные точки, с которыми могут общаться даже модули клиентского ПО. Набор конечных точек зависит от устройства, но всякое устройство USB обязательно имеет двунаправленную конечную точку 0 (EP0), через которую осуществляется его общее управление. Для прикладных целей используются конечные точки с номерами 1-15 (1-2 для низкоскоростных устройств). Адрес устройства, номер и направление конечной точки однозначно идентифицируют приемник или источник информации при обмене хост-контроллера с устройствами USB. Каждая конечная точка имеет набор характеристик, описывающих поддерживаемый тип передачи данных (изохронные данные, массивы, прерывания, управляющие передачи), размер пакета, требования к частоте обслуживания.

Устройство может выполнять несколько различных функциональных задач: например, привод CD-ROM может обеспечивать проигрывание аудиодисков и работать как устройство хранения данных. Для решения каждой задачи в устройстве определяется интерфейс — набор конечных точек, предназначенных для выполнения данной задачи, и правила их использования. Таким образом, каждое устройство должно обеспечивать один или несколько интерфейсов. Наличие нескольких интерфейсов позволяет нескольким драйверам, каждый из которых обращается только к своему интерфейсу (представляющему часть устройства USB), работать с одним и тем же устройством USB. Каждый интерфейс может иметь один или несколько альтернативных вариантов (альтернативных установок — alternate settings), из которых в данный момент активным может быть только один. Варианты различаются наборами (возможно, и характеристиками) используемых конечных точек.

Набор одновременно поддерживаемых интерфейсов составляет конфигурацию устройства. Устройство может иметь одну или несколько возможных конфигураций, из которых на этапе конфигурирования хост выбирает одну, делая ее активной. От выбранной конфигурации зависит доступная функциональность, и зачастую — потребляемая мощность. Пока устройству не назначен номер выбранной конфигурации, оно не может функционировать в прикладном смысле и ток потребления от шины не должен превышать 100 мА. Хост выбирает конфигурацию исходя из доступности всех ресурсов, затребованных данной конфигурацией, включая и ток потребления от шины.

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

Запросы, пакеты и транзакции

Для передачи или приема данных клиентское ПО посылает к каналу пакет запроса ввода/вывода — IRP (Input/Output Request Packet) и ждет уведомления о завершении его отработки. Формат IRP определяется реализацией драйвера USBD в конкретной ОС. В IRP имеются только сведения о запросе (местоположение буфера передаваемых данных в оперативной памяти и длина передачи); от свойств конкретного текущего подключения (скорость, допустимый размер пакета) драйвер устройства абстрагируется. Отработкой запроса в виде транзакций на шине USB занимается драйвер USBD; при необходимости он разбивает на части длинные запросы (пакеты), пригодные для передачи за одну транзакцию. Транзакция на шине USB — это последовательность обмена пакетами между хостом и ПУ, в ходе которой может быть передан или принят один пакет данных (возможны транзакции, в которых данные не передаются). Отработка запроса считается завершенной, когда успешно выполняются все связанные с ним транзакции. «Временные трудности», встречающиеся при их выполнении (неготовность к обмену данными), до сведения клиентского драйвера не доводятся — ему остается только ждать завершения обменов (или выхода по тайм-ауту). Однако устройство может сигнализировать о серьезных ошибках (ответом STALL), что приводит к аварийному завершению запроса, о чем уведомляется клиентский драйвер. В этом случае отбрасываются и все последующие запросы к данному каналу. Возобновление работы с данным каналом возможно лишь после явного уведомления об обработке ошибочной ситуации, которое драйвер устройства делает с помощью специального запроса (тоже вызова USBD).

Длинные запросы разбиваются на транзакции так, чтобы использовать максимальный размер пакета. Последний пакет с остатком может оказаться короче максимального размера. Хост-контроллер имеет средства обнаружения приема от устройства «неполновесного» пакета, размер которого меньше ожидаемого. В запросе IRP указывается, следует ли особым образом реагировать на это событие. Особая реакция может быть двоякой:

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

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

Коммуникационные каналы USB разделяются на два типа:

  • потоковый канал (streaming pipe) доставляет данные от одного конца канала к другому, он всегда однонаправленный. Один и тот же номер конечной точки может использоваться для двух разных потоковых каналов — ввода и вывода. Передачи данных в разных потоковых каналах друг с другом не синхронизированы. Это означает, что запросы клиентских драйверов для разных каналов, поставленные в определенном порядке друг относительно друга, могут выполняться другом порядке. Запросы для одного канала будут исполняться строго в порядке их поступления; если во время исполнения какого-либо запроса происходит серьезная ошибка (об этом устройство сообщает ответом STALL), поток останавливается. Поток может реализовывать передачи массивов, изохронные и прерывания. Потоки несут данные произвольного формата, определенного разработчиком устройства (но не спецификацией USB). В потоках типично использование транзакций, в которых длина поля данных соответствует максимальному размеру, допустимому для его конечной точки. Если требуется разделение потока на логические блоки данных, то это можно сделать, применяя в качестве признака конца блока укороченные пакеты. Если оказывается, что блок укладывается в целое число пакетов максимального размера, в качестве разделителя можно использовать пакеты с нулевой длиной поля данных;
  • канал сообщений (message pipe ) является двунаправленным. Передачи сообщений во встречных направлениях синхронизированы друг с другом и строго упорядочены. На каждое сообщение противоположная сторона обязана ответить подтверждением его приема и отработки. Последующее сообщение не может быть послано до обработки предыдущего, но при отработке ошибок возможен сброс необслуженных сообщений. Форматы сообщений определяются спецификацией USB: имеется набор стандартных сообщений (запросов и ответов) и зарезервированных идентификаторов сообщений, формат которых определяется разработчиком устройства или интерфейса.

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

Каналы различаются и по назначению:

  • основной канал сообщений (Default pipe, он же Control pipe 0) , владельцем которого является USBD, используется для доступа к конфигурационной информации всех устройств. Этот канал устанавливается с нулевой конечной точкой, EP0 (endpoint zero), которая у всех устройств всегда поддерживает только управляющие передачи;
  • клиентские каналы (Client pipes) , владельцами которых являются драйверы устройств. По этим каналам могут передаваться как потоки, так и сообщения; они поддерживают любые типы передач USB (изохронные, прерывания, массивы и управление).

Интерфейс устройства, с которым работает клиентский драйвер, представляет собой связку клиентских каналов (pipe’s bundle). Для этих каналов драйверы устройств являются единственными источниками и потребителями передаваемых данных.

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

Хост организует обмены с устройствами согласно своему плану распределения ресурсов. Для этого хост-контроллер циклически с периодом 1 мс формирует кадры (frames), в которые укладываются все запланированные транзакции (cм. рисунок ниже). Каждый кадр начинается с посылки пакета-маркера SOF (Start Of Frame), который является синхронизирующим сигналом для изохронных устройств, а также для хабов. Кадры нумеруются последовательно, в маркере SOF передаются 11 младших бит номера кадра. В режиме HS каждый кадр делится на 8 микрокадров, и пакеты SOF передаются в начале каждого микрокадра (с периодом 125 мкс). При этом во всех восьми микрокадрах SOF несет один и тот же номер кадра; новое значение номера кадра передается в нулевом микрокадре. В каждом микрокадре может быть выполнено несколько транзакций, их допустимое число зависит от скорости, длины поля данных каждой из них, а также от задержек, вносимых кабелями, хабами и устройствами. Все транзакции кадров должны быть завершены до начала интервала времени EOF (End of Frame). Период (частота) генерации микрокадров может немного варьироваться с помощью специального регистра хост-контроллера, что позволяет подстраивать частоту для изохронных передач.

Кадрирование используется и для обеспечения живучести шины. В конце каждого микрокадра выделяется интервал времени EOF (End Of Frame), на время которого хабы запрещают передачу по направлению к контроллеру. Если хаб обнаружит, что с какого-то порта в это время ведется передача данных (к хосту), этот порт отключается, изолируя «болтливое» устройство, о чем информируется USBD.

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

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

Основные свойства шины USB:

Возможность подключения до 127 физических устройств;

Автоматическое распознавание периферии;

Образование различных конфигураций;

Реализация как изохронных, так и синхронных типов передач с широким диапазоном скоростей;

Наличие механизма обработки ошибок;

Управление питанием и т.д.

Технология шины USB представлена на рис.7.1 и имеет многоуровневую звездообразную структуру (древовидную конфигурацию).

Рис.7.1. Топология шины USB

Каждую звезду образует хаб (пункт присоединения), обеспечивающий подключение одного или несколько функционеров (функ), периферийных устройств. Шина USB содержит один хост (контроллер), образующий корневой уровень и управляющий работой функционеров. Хаб является основным элементом в архитектуре USB, поддерживающей соединение нескольких хабов. В состав хаба входит один верхний потоковый порт ВПП, необходимый для подключения хаба к «хвосту», и несколько нижних потоковых портов (НПП), соединяющих его с другими хабами и (или) функционерами (рис.7.2).

Рис.7.2. Общий вид хаба

Хаб выполняет следующие функции: обнаружение присоединения (отсоединения) другого хаба или функционера; управление питанием и конфигурированием устройств, подключенных к соответствующим НПП. Хаб содержит контроллер и репитер (управляемый протоколом переключатель портов между ВПП и НПП1-НПП7). Контроллер использует интерфейсные регистры для выполнения связи с хостом, который с помощью управляющих команд конфигурирует хаб и следит за его партнерами. На рис.7.3 показана система типа «рабочий стол», содержащая хабы и функционеры.

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

Рис.7.3. Система рабочий стол, содержащая хабы и функционеры

USB-хост (центральная ЭВМ) осуществляет доступ к USB-устройствам с помощью хост-контроллера, который выполняет следующие действия:

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

Обнаружение подключенных (отключенных) устройств;

Сбор информации о состоянии системы;

Управление питанием.

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

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

Сигналы данных D+ и D- и питание (V и G – земля) в шине USB передаются от точки к точке по четырем проводам 90-омного кабеля (рис. 7.4.) с максимальной длиной 5м. Номинальное напряжение питания – 5v.

Рис.7.4. Кабель USB

Хост (хаб) обеспечивает питанием устройства USB, которые подключены к нему. Кроме того, устройства USB могут иметь автономное питание. Питание по шине USB имеет ограниченную величину.

Шина USB обеспечивает два диапазона скоростей передачи информации: низкая скорость (1,5 Мбит/с) и высокая скорость (12 Мбит/с). Низкоскоростной режим применяется для взаимодействия с интерактивными устройствами (мышью, трекболом и т.п.), а высокоскоростной режим – с адаптером телефона, аудио- или видеоустройствами. Каждому пакету данных предшествует поле синхронизации, которое позволяет приемникам согласовывать во времени их таймеры (генераторы) для приема данных. Поле синхронизации содержит синхроимпульсы, закодированные по методу NRZI с битовым заполнением.

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

USB выполняет следующие типы передач по соответствующим каналам в одном или обоих направлениях:

Управляющую спонтанную (непериодическую) передачу по типу запрос/ответ, используемую для передачи команд/состояния и обычно применяемую с целью конфигурирования устройства в момент его подключения;

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

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

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

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

Через каналы перемещается информация между хостом и конечной точкой с использованием буферной памяти. Различают два режима работы канала: поток – данные, не имеющий определенной структуры, и сообщение – данные, передаваемые в соответствии с заданным порядком. Системное программное обеспечение (ПО) монопольно владеет каналом и представляет его другим ПО. Пользователь ПО запрашивает передачи по каналу, ждет их и затем уведомляется о завершении передач данных. Конечная точка сигналом NAK может сообщить хосту о том, что она занята.

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

Управляющая передача разрешает доступ к какой-либо части устройства и предназначена для обмена информацией, типа конфигурация / команды / состояние, между пользовательским ПО и функционером. Управляющая передача в общем случае содержит информацию запроса (установочный пакет), данные и возвращаемую в хост информацию состояния функционера. Установочный пакет имеет определенную структуру, состоящую из набора команд, необходимых для установления связи между хостом и устройством USB. Описание состояния устройства имеет также определенную структуру, а данные управления, следующие за установочным пакетом, не имеют какой-либо структуры и содержат информацию о запрошенном доступе. Управляющая передача выполняется как двунаправленный поток информации по каналам сообщений. Стандарт шины USB ограничивает размеры пакета данных для высокоскоростных устройств 8, 16, 32 или 64 байтами, а низкоскоростные устройства могут иметь пакет данных не более 8 байтов. Установочный пакет всегда содержит 8 байтов. Вначале (после сброса) хост использует пакет данных размером в 8 байтов, который является достаточным для стандартных операций, а после определения типа конечной точки по ее конфигурационной информации может быть использован пакет большого размера для выполнения специфических операций. Таким образом, все данные при передаче делятся на равные части (пакеты), кроме последней части, которая содержит оставшиеся данные.

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

На рис.7.5 представлена общая схема взаимодействия компонентов шины USB.

Рис.7.5. Общая схема взаимодействия компонентов шины USB

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

В шине USB используется метод кодирования NRZI (без возвращения к нулю с инверсией). В этом случае метод кодирования NRZI состоит в том, что если бит передаваемых данных равен 0, то происходит изменение уровня напряжения, а - если равен 1, то уровень напряжения сохраняется. На рис.7.6 показан пример кодирования данных методом NRZI.

Рис.7.6. Пример кодирования методом NRZI

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

На диаграмме вначале показаны необработанные данные, содержащие поле синхрокомбинаций и пакет данных, причем синхрокомбинация имеет 7 нулей и заканчивается единичным битом, после которого начинается пакет данных. Затем на диаграмме изображены заполненные данные, которые дополнительно содержат после шести единиц вставленный бит 0. В число шести единиц входит и последний единичный бит синхрокомбинации. После этого выполняется кодирование заполненных данных методом NRZI с учетом и поля синхрокомбинации. Правило заполнения требует, чтобы бит 0 был вставлен, даже если этот бит будет последним, перед сигналом EOP (конец пакета).

Рис.7.7. Временная диаграмма этапов кодирования данных

Рассмотрим некоторые электрические требования шины USB. На рис.7.8 представлена схема симметричного шинного формирователя (драйвера) USB, содержащего два одинаковых буфера, выполненных по технологии КМОП.

Рис.7.8. Схема дифференциального формирователя

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

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

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

На рис.7.9 показана диаграмма сигналов на выходах формирователя для скорости передачи 12 Мбит/с (а) и 1.5 Мбит/с (б).

Рис.7.9. Диаграммы сигналов на выходах формирователей для скоростей передачи данных 12 Мбит/с (а) и 1.5 Мбит/с (б)

При скорости передачи данных 12 Мбит/с используется витая пара экранированного кабеля, а для скорости 1.5 Мбит/с – неэкранированный кабель с нескрученной парой проводников. Сопряжение приемопередатчиков (ПП) с помощью кабеля USB в случае высокоскоростной (а) и низкоскоростной (б) передач изображено на рис.7.10.

Из схем видно, что высокоскоростные устройства содержат резистор нагрузки (R Н) на линии D+, а низкоскоростные – на линии D-, что позволяет определить тип подключенного устройства USB. Когда устройство USB не управляет линиями D+ и D-, то на линии с R Н имеется напряжение около 3В, а на другой – близкое к 0В. Такое состояние шины называется пассивным состоянием.

Рис.7.10. Схемы сопряжения ПП хоста (хаба) и функционера (хаба) для высокоскоростной (а) и низкоскоростной (б) передач

Если устройство не подключено к нижнему порту хоста (хаба) (или отсутствует питание), то на обоих линиях D+ и D- устанавливается асимметричный низкий уровень напряжения (0,6В), который используется для определения условия рассоединения или сообщения о конце пакета (EOP). Для высокоскоростных передач условием рассоединения является наличие асимметричного нуля в течение 2,5 мс (30 единиц времени передачи бита).

Считается, что связь с устройством установлена, если напряжение на одной из линий D+ (D-) достигает выше асимметричного высокого порога в 1,5В за время 2,5 мс.

Определение факта рассоединения и связанности устройства USB показано на рис.7.11.

Рис.7.11. Установление факта рассоединения (а) и связи устройства USB (б)

Общее время передачи данных оценивается числом битов данных, умноженным на период (Т), определяемый скоростью передачи данных. На рис.7.12 представлена временная диаграмма передачи данных по дифференциальным линиям данных D+ и D-.

Рис.7.12. Временная диаграмма передачи данных

В соответствии с кодом NRZI бит 0 вызывает переключение уровней напряжения, а бит 1 сохраняет соответствующие уровни напряжения на линиях D+ и D-. Длительность асимметричного нуля в EOP равна 2Т без учета времени задержки.

Начало пакета (SOF) определяется первым битом поля синхронизации, когда пассивное состояние линий D+ и D- переходит в активное. Устройства USB поддерживают режим приостановки, который вызывается тем, что пассивное состояние линий D+ и D- удерживается более 3 мс.

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

В зависимости от источника потребления питания различают следующие типы устройств:

Хабы, получающие питание от шины и обеспечивающие питанием внутренние функциональные устройства и низшие порты;

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

Маломощные (с нагрузкой одного модуля) и высокомощные (с нагрузкой пяти модулей) устройства, потребляющие питание из шины;

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

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

Рис.7.13. Формат опознавательного пакета

Вслед за полем синхронизации для каждого пакета передается 8-битный идентификатор (ИД) младшим битом вперед. Биты D0-D3 поля ИД задают тип пакета (формат и способ обнаружения ошибок соответствующего пакета), а биты D4-D7 являются инверсными значениями младших четырех битов и служат в качестве поля проверки правильности передачи поля ИД, которые делятся на опознавательные, информационные, квитирования и специальные.

Для выбора устройства и конечной точки (КТ) в нем используется 7-битный адрес устройства и 4-битный номер КТ. Поле адреса предназначено для ввода (вывода) данных и установочных опознавателей. При сбросе или отключении питания адрес устройства принимает значение 0 и затем программируется хостом. Низкоскоростные устройства содержат до двух точек, а высокоскоростные – до 16 конечных точек. Поле адреса и номера КТ защищены 5-битовым контрольным циклическим кодом (КЦК). Циклический избыточный контроль состоит в том, что биты поля КЦК представляют собой коэффициенты двоичного полинома (5-битовый эквивалент), а байты контроля ошибок получаются путем деления этого полинома на заданный 16-битный полином. По двоичному коду остатка определяют наличие или отсутствие ошибки.

Пакет поля данных состоит из 8-битного поля ИД, поля данных (0-1023 байтов) и 16-битного поля КЦК (рис.7.14).

Рис.7.14. Формат пакета данных

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

Пакет квитирования содержит только поле ИД и предназначен для проверки успешности передачи данных. Различают три типа этого пакета: ACK (подтверждение) – пакет данных получен без ошибок и пакет ИД верен (пакет применяется при передаче данных); NAK (неподтверждение) – пакет, показывающий на невозможность устройством принять данные от хоста (временный отказ) или устройство не имеет данных для передачи хосту (кроме того, пакет используется для сообщения о временной паузе в передаче или приеме данных устройством); STALL – ответный пакет, говорящий о постоянном отказе и необходимости вмешательства программы хоста.

Опознавательный пакет SOF (начало фрейма) позволяет хабам или устройствам идентифицировать начало фрейма и синхронизировать их внутренние таймеры с таймером главной ЭВМ. Формат опознавательного пакета показан на рис.7.15.

Рис.7.15. Формат опознавательного пакета

Фрейм состоит из ряда транзакций (действий на шине), имеющих начало от одного SOF-маркера, и продолжается до начала следующего SOF-маркера. Устройство или хаб определяют начало фрейма по 8-битному ИД SOF-пакета.

Существуют следующие транзакции: массива данных, управления, прерывания и изохронного типа.

Транзакция массива данных при вводе данных в хост состоит из опознавательного пакета с запросом ввода, пакета данных (Данные (0/1)) из устройства и пакета квитирования (NAK или STALL), посылаемого устройством вслед за данными. Если пакет данных принят верным, то хост отвечает устройству пакетом ACK.

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

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

Рис.7.16. Последовательность действий хоста и устройства

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

Рис.7.17. Последовательность идентификаторов при записи и чтении массива данных

С целью синхронизации компонентов шины USB выполняется чередование пакетов с идентификатором Данные(0) и пакетов с идентификатором Данные(1). Переключение пакетов данных в передатчике выполняется после получения пакета квитирования ACK, а в приемнике – после получения очередного пакета.

Переходы управления содержат две стадии: Установка и Состояние, между которыми может присутствовать информационная стадия. Во время стадии Установки выполняется передача данных только с форматом поля ИД Данные(0) к конечной точке управления устройства.

Транзакция Установки изображена на рис.7.18.

Рис.7.18. Транзакция Установки

Сигнал квитирования ACK не выдается, если данные являются неверными. При наличии стадии данных выполняется их передача в одном направлении в соответствии с требованиями протокола. Эта стадия может состоять из нескольких транзакций ввода и вывода и размер массива данных задается в пакете Установка.

Стадия Состояния является последней в рассматриваемой последовательности и использует идентификатор Данные 0.

На рис.7.19 показана очередность транзакций и идентификаторов данных для управления чтением или записью.

Рис.7.19. Очередность транзакций и ИД данных

В стадии Состояние от устройства к хосту передается следующая информация: устройство выполнило задачу (ACK), устройство не содержит ошибок (STALL) и устройство занято (NACK).

Транзакции прерываний содержат опознаватели ввода. На рис.7.20 изображены последовательности транзакций прерываний.

Рис.7.20. Последовательности транзакций прерываний

Если устройство получает опознаватель ввода, то оно выдает данные по прерыванию в виде пакета и получает ACK или передает NACK/STALL. Пакет квитирования NAK направляется устройством, когда оно не содержит информации для нового прерывания, а пакет квитирования STALL – устройством, если оно временно приостановило работу.

Изохронные транзакции не имеют стадии квитирования. На рис.7.21 представлены стадии изохронных транзакций.

Рис.7.21. Стадии изохронных транзакций

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

Предыдущая

USB обеспечивает обмен данными между хост-компьютером и множеством периферийных устройств (ПУ). Согласно спецификации USB, устройства (devices) могут являться хабами, функциями или их комбинацией. Устройство-хаб (hub) только обеспечивает дополнительные точки подключения устройств к шине. Устройство-функция (function) USB предоставляет системе дополнительные функциональные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Комбинированное устройство (compound device), содержащее несколько функций, представляется как хаб с подключенными к нему несколькими устройствами. Устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, выполнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Работой всей системы USB управляет хост-контроллер (host controller), являющийся программно-аппаратной подсистемой хост-компьютера. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств. Шина USB является хостцентрической: единственным ведущим устройством, которое управляет обменом, является хост-компьютер, а все присоединенные к ней периферийные устройства - исключительно ведомые. Физическая топология шины USB - многоярусная звезда. Ее вершиной является хост-контроллер, объединенный с корневым хабом (root hub), как правило, двухпортовым. Хаб является устройством-разветвителем, он может являться и источником питания для подключенных к нему устройств. К каждому порту хаба может непосредственно подключаться периферийное устройство или промежуточный хаб; шина допускает до 5 уровней каскадирования хабов (не считая корневого). Поскольку комбинированные устройства внутри себя содержат хаб, их подключения к хабу 6-го яруса уже недопустимо. Каждый промежуточный хаб имеет несколько нисходящих (downstream) портов для подключения периферийных устройств (или нижележащих хабов) и один восходящий (upstream) порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба. Логическая топология USB - про¬сто звезда: для хостконтроллера хабы создают иллюзию непосредственного подключения каждого устройства. В отличие от шин расширения (ISA, PCI, PC Card), где программа взаимодействует с устройствами посредством обращений по физическим адресам ячеек памяти, портов ввода-вывода, прерываниям и каналам DMA, взаимодействие приложений с устройствами USB выполняется только через программный интерфейс. Этот интерфейс, обеспечивающий независимость обращений к устройствам, предоставляется системным ПО контроллера USB.

В отличие от громоздких дорогих шлейфов параллельных шин AT А и особенно шины SCSI с ее разнообразием разъемов и сложностью правил подключения, кабельное хозяйство USB простое и изящное. Кабель USB содержит одну экранированную витую пару с импедансом 90 Ом для сигнальных цепей и одну неэкранированную для подачи питания (+5 В), допустимая длина сегмента - до 5 м. Для низкой скорости может использоваться невитой неэкранированный кабель длиной до 3 м (он дешевле). Система кабелей и коннекторов USB не дает возможности ошибиться при подключении устройств (рис. 13.1, а и б). Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозначение (рис. 13.1, в). Гнезда типа «А» устанавливаются только на нисходящих портах хабов, вилки типа «А» - на шнурах периферийных устройств или восходящих портов хабов. Гнезда и вилки типа «В» используются только для шнуров, отсоединяемых от периферийных устройств и восходящих портов хабов (от «мелких» устройств - мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). Кроме стандартных разъемов, показанных на рисунке 19, применяются и миниатюрные варианты (рис. 20, в, г, д). Хабы и устройства обеспечивают возможность «горячего» подключения и отключения. Для этого разъемы обеспечивают более раннее соединение и позднее отсоединение питающих цепей по отношению к сигнальным, кроме того, предусмотрен протокол сигнализации подключения и отключения устройств. Назначение выводов разъемов USB приведено в табл. 9, нумерация контактов показана на рис. 20. Все кабели USB «прямые» - в них соединяются одноименные цепи разъемов.


Рис. 19. Коннекторы USB: a - вилка типа «А», б - вилка типа «В», в - символическое обозначение

Рис. 20. Гнезда USB: а - типа «А», б - типа «В» стандартное, в,г,д - миниатюрные типа «В»

Таблица 9. Назначение выводов разъема USB

В шине используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Скорость устройства, подключенного к конкретному порту, определяется хабом по уровням сигналов на линиях D+ и D-, смещаемых нагрузочными резисторами приемопередатчиков: устройства с низкой скоростью «подтягивают» к высокому уровню линию D-, с полной - D+. Подключение устройства HS определяется на этапе обмена конфигурационной информацией - физически на первое время устройство HS должно подключаться как FS. Передача по двум проводам в USB не ограничивается дифференциальными сигналами. Кроме дифференциального приемника, каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, используемых для организации аппаратного интерфейса.

Введение высокой скорости (480 Мбит/с - всего в 2 раза медленнее, чем Gigabit Ethernet) требует тщательного согласования приемопередатчиков и линии связи. На этой скорости может работать только кабель с экранированной витой парой для сигнальных линий. Для высокой скорости аппаратура USB должна иметь дополнительные специальные приемопередатчики. В отличие от формирователей потенциала для режимов FS и LS, передатчики HS являются источниками тока, ориентированными на наличие резисторов-терминаторов на обеих сигнальных линиях.

Скорость передачи данных (LS, FS или HS) выбирается разработчиком периферийного устройства в соответствии с потребностями этого устройства. Реализация низких скоростей для устройства обходится несколько дешевле (приемопередатчики проще, а кабель для LS может быть и неэкранированной невитой парой). Если в «старой» USB устройства можно было, не задумываясь, подключать в любой свободный порт любого хаба, то в USB 2.0 при наличии устройств и хабов разных версий появились возможности выбора между оптимальными, неоптимальными и неработоспособными конфигурациями.

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

В спецификации 2.0 скорость 480 Мбит/с должна уживаться с прежними, но при таком соотношении скоростей обмены на FS и LS «съедят» возможную полосу пропускания шины без всякого «удовольствия» (для пользователя). Чтобы этого не происходило, хабы USB 2.0 приобретают черты коммутаторов пакетов. Если к порту такого хаба подключено высокоскоростное устройство (или аналогичный хаб), то хаб работает в режиме повторителя, и транзакция с устройством на HS занимает весь канал до хост-контроллера на все время своего выполнения. Если же к порту хаба USB 2.0 подключается устройство или хаб 1.1, то по части канала до контроллера пакет проходит на скорости HS, запоминается в буфере хаба, а к старому устройству или хабу идет уже на его «родной» скорости FS или LS. При этом функции контроллера и хаба 2.0 (включая и корневой) усложняются, поскольку транзакции на FS и LS расщепляются и между их частями вклиниваются высокоскоростные передачи. От старых (1.1) устройств и хабов все эти тонкости скрываются, что и обеспечивает обратную совместимость. Вполне понятно, что устройство USB 2.0 сможет реализовать высокую скорость, только если по пути от него к хост-контроллеру (тоже 2.0) будут встречаться только хабы 2.0. Если это правило нарушить и между ним и контроллером 2.0 окажется старый хаб, то связь может быть установлена только в режиме FS. Если такая скорость устройство и клиентское ПО устроит (к примеру, для принтера и сканера это выльется только в большее время ожидания пользователя), то подключенное устройство работать будет, но появится сообщение о неоптимальной конфигурации соединений. По возможности ее (конфигурацию) следует исправить, благо переключения кабелей USB можно выполнять на ходу. Устройства и ПО, критичные к полосе пропускания шины, в неправильной конфигурации работать откажутся и категорично потребуют переключений. Если же хост-контроллер старый, то все преимущества USB 2.0 окажутся недоступными пользователю. В этом случае придется менять хост-контроллер (менять системную плату или приобретать PCI-карту контроллера). Контроллер и хабы USB 2.0 позволяют повысить суммарную пропускную способность шины и для старых устройств. Если устройства FS подключать к раз¬ным портам хабов USB 2.0 (включая и корневой), то для них суммарная пропускная способность шины USB возрастет по сравнению с 12 Мбит/с во столько раз, сколько используется портов высокоскоростных хабов.

Хаб является ключевым элементом системы PnP в архитектуре USB. Хаб выполняет множество функций:

  • обеспечивает физическое подключение устройств,

формируя и воспринимая

  • сигналы в соответствии со спецификацией шины на

каждом из своих портов;

  • управляет подачей питающего напряжения на

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

  • отслеживает состояние подключенных к нему устройств,

уведомляя хост об изменениях;

  • обнаруживает ошибки на шине, выполняет процедуры

восстановления и изолирует неисправные сегменты шины;

  • обеспечивает связь сегментов шины, работающих на

разных скоростях.

Хаб следит за сигналами, генерируемыми устройствами. Неисправное устройство может не вовремя «замолчать» (потерять активность) или, наоборот, что-то «бор¬мотать» (babble). Эти ситуации отслеживает ближайший к устройству хаб и за¬прещает восходящие передачи от такого устройства не позже, чем по границе (микро)кадра. Благодаря бдительности хабов эти ситуации не позволят неисправному устройству заблокировать всю шину.

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

  • не светится - порт не используется;
  • зеленый - нормальная работа;
  • желтый - ошибка;
  • зеленый мигающий - программа требует внимания

пользователя (Software attention);

  • желтый мигающий - аппаратура требует внимания

пользователя (Hardware attention).

Восходящий (upstream) порт хаба конфигурируется и внешне представляется как полноскоростной или высокоскоростной (только для USB 2.0). При подключении порт хаба USB 2.0 обеспечивает терминацию по схеме FS, в режим HS он переводится только по команде контроллера.

На рис. 13.3 приведен вариант соединения устройств и хабов, где высокоскоростным устройством USB 2.0 является только телекамера, передающая видеопоток без компрессии. Подключение принтера и сканера USB 1.1 к отдельным портам хаба 2.0, да еще и развязка их с аудиоустройствами, позволяет им использовать полосу шины по 12 Мбит/с каждому. Таким образом, из общей полосы 480 Мбит/с на «старые» устройства (USB 1.0) выделяется 3x12=36 Мбит/с. Вообще-то мож¬но говорить и о полосе в 48 Мбит/с, поскольку клавиатура и мышь подключены к отдельному порту хост-контроллера USB 2.0, но эти устройства «освоят» только малую толику из выделенных им 12 Мбит/с. Конечно, можно подключать клавиатуру и мышь к порту внешнего хаба, но с точки зрения повышения надежности системные устройства ввода лучше подключать наиболее коротким (по количеству кабелей, разъемов и промежуточных устройств) способом. Неудачной конфигурацией было бы подключение принтера (сканера) к хабу USB 1.1 - во время работы с аудиоустройствами (если они высокого качества) скорость печати (сканирования) будет падать. Неработоспособной конфигурацией явилось бы подключение телекамеры к порту хаба USB 1.1.

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

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

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

Рис. 21. Пример конфигурации соединений

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

Шина USB (U niversal S erial B us - универсальная последовательная шина) появилась по компьютерным меркам довольно давно - версия первого утвержденного варианта стандарта появилась 15 января 1996 года. Разработка стандарта была инициировна весьма авторитетными фирмами - Intel, DEC, IBM, NEC, Northen Telecom и Compaq.

Основная цель стандарта, поставленная перед его разработчиками - создать реальную возможность пользователям работать в режиме Plug&Play с периферийными устройствами. Это означает, что должно быть предусмотрено подключение устройства к работающему компьютеру, автоматическое распознавание его немедленно после подключения и последующей установки соответствующих драйверов. Кроме этого, желательно питание маломощных устройств подавать с самой шины. Скорость шины должна быть достаточной для подавляющего большинства периферийных устройств. Попутно решается историческая проблема нехватки ресурсов на внутренних шинах IBM PC совместимого компьютера - контроллер USB занимает только одно прерывание независимо от количества подключенных к шине устройств.

Практически все поставленные задачи были решены в стандарте на USB и весной 1997 года стали появляться компьютеры, оборудованные разъемами для подключения USB устройств (см. фото слева), но периферия с подключением к USB до середины 1998 года так практически и не появилась. В чем дело? Почему только к концу 1998 года уже существенно активнее производители оборудования стали предлагать на рынке устройства с USB интерфейсом? Этому есть несколько объяснений:

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

    более высокая стоимость устройств с USB по сравнению с аналогичными устройствами, имеющими стандартные интерфейсы

    отсутствие поддержки со стороны производителей программного обеспечения и, главным образом, Microsoft, хотя она и была одним из авторов стандарта. Только в Windows 98 появилась полная поддержка USB, а в Windows NT она только должна быть в 1999 году.

Сейчас USB стала активно внедряться производителями компьютерной периферии. Сенсацией стало наличие в компьютере iMAC фирмы Apple Computers только USB в качестве внешней шины.

Технические характеристики

Возможности USB следуют из ее технических характеристик:

    Высокая скорость обмена (full-speed signaling bit rate) - 12 Mb/s

    Максимальная длина кабеля для высокой скорости обмена - 5 m

    Низкая скорость обмена (low-speed signaling bit rate) - 1.5 Mb/s

    Максимальная длина кабеля для низкой скорости обмена - 3 m

    Максимальное количество подключенных устройств (включая размножители) - 127

    Возможно подключение устройств с различными скоростями обмена

    Отсутствие необходимости в установке пользователем дополнительных элементов, таких как терминаторы для SCSI

    Напряжение питания для периферийных устройств - 5 V

    Максимальный ток потребления на одно устройство - 500 mA (это не означает, что через USB можно запитать устройства с общим током потребления 127 x 500 mA=63.5 A)

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

Топология

Такой иконой официально обозначается шина USB как в Windows 98, так и на задних стенках компьютеров (к сожалению, далеко не всех), а также на всех разъемах USB. Эта икона на самом деле правильно отображает идею топологии USB. Топология USB практически не отличается от топологии обычной локальной сети на витой паре, обычно называемой "звездой". Даже терминология похожа - размножители шины также называются HUB"ами.

Условно дерево подключения USB устройств к компьютеру можно изобразить так (цифрами обозначены периферийные устройства с USB интерфейсом):

Вместо любого из устройств может также стоять HUB. Основное отличие от топологии обычной локальной сети - компьютер (или host устройство) может быть только один. HUB может быть как отдельным устройством с собственным блоком питания, так и встроенным в периферийное устройство. Наиболее часто HUB"ы встраиваются в мониторы и клавиатуры

На рисунке выше показан пример правильного соединения периферийных устройств в условную USB сеть. Так как обмен данными по USB идет только между компьютером и периферийным устройством (между устройствами обмена нет), то устройства с большими объемами приема и/или передачи данных должны подключаться либо к самому компьютеру, либо к ближайшему свободному узлу. В данном случае наивысший трафик у колонок (~1.3 Mb/s), затем идут модем и сканер, подключенные к HUB"у в мониторе и завершают цепь клавиатура, джойстик и мышь, трафик у которых близок к нулю.
Может возникнуть вопрос - почему колонки имеют такой высокий трафик? Дело в том, что колонки с USB интерфейсом существенно отличаются от обычных. Для использования таких колонок НЕ ТРЕБУЕТСЯ звуковая карта. Драйвер колонок отправляет оцифрованный звук сразу в колонки, где с помощью АЦП (ADC) он преобразуется в аналоговый сигнал и подается на динамики.

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

Сигналы USB передаются по 4-х проводному кабелю, схематично показанному на рисунке ниже:

Здесь GND - цепь "корпуса" для питания периферийных устройств, VBus - +5V также для цепей питания. Шина D+ предназначена для передачи данных по шине, а шина D- для приема данных.
Кабель для поддержки полной скорости шины (full-speed) выполняется как витая пара, защищается экраном и может также использоваться для работы в режиме минимальной скорости (low-speed). Кабель для работы только на минимальной скорости (например, для подключения мыши) может быть любым и неэкранированным.
Разъемы, используемые для подключения периферийных устройств, показаны на рисунке ниже.

Разъемы серии "А"

Разъемы серии "В"

    предназначены ТОЛЬКО для подключения к источнику, т.е. компьютеру или HUB"у.

    предназначены ТОЛЬКО для подключения к периферийному устройству

Вилка типа "A".

Вилка типа "B".

Розетка типа "А"

Розетка типа "В"

Как видно из рисунка, невозможно подключить устройство неправильно, так как разъем серии "А" можно подключить только к активному устройству на USB - HUB"у или компьютеру, а серии "В" только к собственно периферийному устройству.

USB разъемы имеют следующую нумерацию контактов:

Номер контакта

Назначение

Цвет провода

Цоколевка разъемов USB

Развитие USB

В 1999 году тот же консорциум компьютерных компаний, который инициировал разработку первой версии стандарта на шину USB, начал активно разрабатывать версию 2.0 USB, которая отличается тем, что полоса пропускания шины увеличена в 20 (!) раз, до 250 Mbits/s, что делает возможным передачу видеоданных по USB и делает ее прямым конкурентом IEEE-1394 (FireWire).
Совместимость всей ранее выпущенной периферии и высокоскоростных кабелей полностью сохраняется и сохраняется одно из самых главных достоинств USB - низкая стоимость контроллера. Контроллер стандарта 2.0 также предполагается интегрировать в chipset.
Все хорошо, но есть одно но: шина IEEE-1394 уже весьма активно используется даже в бытовых цифровых видеокамерах, для нее есть платы видеомонтажа и при постоянном падении цен на цифровые видеокамеры она будет использоваться все шире и шире. Новая же версия USB должна быть только окончательно разработана к середине 2000 года, а первые устройства с поддержкой нового варианта USB должны появиться не ранее конца 2000 года. Для компьютерной индустрии это очень большие сроки. Уже в июле 1999 года, например, фирма ASUSTeK Computers выпускает первую материнскую плату (P3B-1394) со встроенным контроллером IEEE-1394. Наверняка это не останется незамеченным и другие производители также начнут выпускать подобные платы. Поэтому к моменту выхода устройств на USB 2.0 место под солнцем может быть уже занято.