Протокол usb 2.0 описание. Протокол шины USB. Технические характеристики USB

  • Mini-B Connector ECN : извещение выпущено в октябре 2000 года.
  • Errata, начиная с декабря 2000 : извещение выпущено в декабре 2000 года.
  • Pull-up/Pull-down Resistors ECN
  • Errata, начиная с мая 2002 : извещение выпущено в мае 2002 года.
  • Interface Associations ECN : извещение выпущено в мае 2003 года.
    • Были добавлены новые стандарты, позволяющие ассоциировать множество интерфейсов с одной функцией устройства.
  • Rounded Chamfer ECN : извещение выпущено в октябре 2003 года.
  • Unicode ECN : извещение выпущено в феврале 2005 года.
    • Данное ECN специфицирует, что строки закодированы с использованием UTF-16LE .
  • Inter-Chip USB Supplement : извещение выпущено в марте 2006 года.
  • On-The-Go Supplement 1.3 : извещение выпущено в декабре 2006 года.
    • USB On-The-Go делает возможным связь двух USB-устройств друг с другом без отдельного USB-хоста. На практике одно из устройств играет роль хоста для другого.

USB OTG

USB 3.0

USB 3.0 находится на финальных стадиях разработки. Созданием USB 3.0 занимаются компании: Microsoft, Texas Instruments, NXP Semiconductors. В спецификации USB 3.0 разъёмы и кабели обновлённого стандарта будут физически и функционально совместимы с USB 2.0. Кабель USB 2.0 содержит в себе четыре линии - пару для приёма/передачи данных, одну - для питания и ещё одну - для заземления. В дополнение к ним USB 3.0 добавляет пять новых линий (в результате чего кабель стал гораздо толще), однако новые контакты расположены параллельно по отношению к старым на другом контактном ряду. Теперь можно будет с лёгкостью определить принадлежность кабеля к той или иной версии стандарта, просто взглянув на его разъём. Спецификация USB 3.0 повышает максимальную скорость передачи информации до 4,8 Гбит/с - что на порядок больше 480 Мбит/с, которые может обеспечить USB 2.0. USB 3.0 может похвастаться не только более высокой скоростью передачи информации, но и увеличенной силой тока с 500 мА до 900 мА. Отныне пользователь сможет не только подпитывать от одного хаба гораздо большее количество устройств, но и само аппаратное обеспечение, ранее поставлявшееся с отдельными блоками питания, избавится от них.


Здесь GND - цепь «корпуса» для питания периферийных устройств, VBus - +5 В, так же для цепей питания. Данные передаются по проводам D+ и D− дифференциально (состояния 0 и 1 (в терминологии официальной документации diff0 и diff1 соответственно) определяются по разности потенциалов межу линиями более 0,2 В и при условии, что на одной из линий (D− в случае diff0 и D+ при diff1) потенциал относительно GND выше 2,8 В. Дифференциальный способ передачи является основным, но не единственным (например, при инициализации устройство сообщает хосту о режиме, поддерживаемом устройством (Full-Speed или Low-Speed), подтягиванием одной из линий данных к V_BUS через резистор 1.5 кОм (D− для режима Low-Speed и D+ для режима Full-Speed, устройства, работающие в режиме Hi-Speed, ведут себя на этой стадии как устройства в режиме Full-Speed). Так же иногда вокруг провода присутствует волокнистая обмотка для защиты от физических повреждений. .

Коннектор USB 3.0 тип B

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

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

Недостатки USB

Хотя пиковая пропускная способность USB 2.0 составляет 480 Мбит/с (60 Мбайт/с), на практике обеспечить пропускную способность, близкую к пиковой, не удаётся. Это объясняется достаточно большими задержками шины USB между запросом на передачу данных и собственно началом передачи. Например, шина FireWire хотя и обладает меньшей пиковой пропускной способностью 400 Мбит/с, что на 80 Мбит/с меньше, чем у USB 2.0, в реальности позволяет обеспечить бо́льшую пропускную способность для обмена данными с жёсткими дисками и другими устройствами хранения информации.

USB и FireWire/1394

Протокол USB storage, представляющий собой метод передачи команд

Кроме того, USB storage не поддерживался в старых ОС (первоначальная Windows 98), и требовал установки драйвера. SBP-2 поддерживался и в них. Также в старых ОС (Windows 2000) протокол USB storage был реализован в урезанном виде, не позволяющем использовать функцию прожига CD/DVD дисков на подключенном по USB дисководе, SBP-2 никогда не имел таких ограничений.

Шина USB строго ориентирована, потому соединение 2 компьютеров или же 2 периферийных устройств требует дополнительного оборудования. Некоторые производители поддерживают соединение принтера и сканера, или же фотоапарата и принтера, но эти реализации сильно завязаны на конкретного производителя и не стандартизированы. Шина 1394/FireWire не подвержена этому недостатку (можно соединить 2 видеокамеры).

Тем не менее, ввиду лицензионной политики Apple, а также намного более высокой сложности оборудования, 1394 менее распространен, материнские платы старых компьютеров не имеют 1394 контроллера. Что касается периферии, то поддержка 1394 обычно не встречается ни в чем, кроме видеокамер и корпусов для внешних жестких дисков и CD/DVD приводов.

См. также

  • FireWire
  • TransferJet

Источники

Ссылки

  • USB News (нем.)

Всем привет. Иногда людям интересно узнать, чем USB 3.0 отличается от USB 2.0, иногда хотят понять какая версия или какой тип USB разъема имеется у них на компьютере, что за динозавр такой USB 1.0 и так далее. Давайте немного углубимся в эту тему.

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

Типы USB разъемов

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

USB type- A – один из самых распространенных типов USB разъемов. Вы могли видеть его на вашем , на , на блоке зарядного устройства и не только. Имеет множество применений. С его помощью можно подсоединять мышки и клавиатуры к компьютеру (или другому устройству), флешки, внешние накопители, смартфоны и так далее. Этот список можно еще долго продолжать, если пораскинуть мозгами.

USB type- B – разъем используется в основном для того, чтобы подключить к компьютеру принтер либо другие периферийные устройства. Получил намного меньшее распространение, нежели USB type-A.

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

Micro USB сейчас используется на смартфонах и мобильных телефонах почти всех производителей. Этот USB разъем обрел невероятную популярность среди мобильных устройств. Однако постепенно его позиции занимает USB Type-C.

Версия USB 1.0 – археологические раскопки

Прапрапрадед стандарта USB – USB 1.0 появился на свет холодным ноябрем 1995 года. Но родился он немного недоношенным и большой популярности не обрел. А вот его младший брат USB 1.1, появившийся на свет тремя годами позже, был более жизнеспособным экземпляром и смог привлечь к себе достаточно внимания.

Что касается технической части, то скорость передачи данных была небольшой, но по меркам тех времен этой скорости было более чем достаточно. Скорость составляла до 12 Мбит/с и это в режиме высокой пропускной способности.

Отличия разъемов USB 2.0 и USB 3.0

USB 2.0 и USB 3.0 – это два вполне современных USB стандарта, которые сейчас используются повсеместно в компьютерах и ноутбуках. USB 3.0, конечно же, новее и быстрее, а также имеет полную обратную совместимость с USB 2.0 устройствами. Но скорость в таком случае будет ограничена максимальной скоростью по стандарту USB 2.0.

Теоретически скорость передачи данных стандарта USB 3.0 примерно в 10 раз выше, чем у USB 2.0 (5 Гбит/с против 480 Мбит/с). Но на практике скорость обмена информацией между устройствами часто бывает ограничена самими устройствами. Хотя в целом, USB 3.0 все же выигрывает.

Технические отличия

Хоть стандарты USB 2.0 и USB 3.0 и обратносовместимы, но, тем не менее, они имеют некоторые технические отличия. USB 2.0 имеет 4 контакта – 2 для питания устройств и 2 для передачи данных. Эти 4 контакты были сохранены и в стандарте USB 3.0. Но кроме них были добавлены еще 4 контакта, которые нужны для высокой скорости передачи данных и более быстрой зарядки устройств. К слову, USB 3.0 может работать с силой тока до 1 Ампера.

В итоге шнур стандарта USB 3.0 стал толще, и его длина не превышает теперь 3 метра (в USB 2.0 максимальная длина достигала 5 метров). Зато вы сможете зарядить свой смартфон намного быстрее, даже если вы подсоедините несколько смартфонов в один разъем через разветвитель.

Естественно производители позаботились о визуальных отличиях. Можно не искать упаковку от материнской платы, чтобы посмотреть какие стандарты USB она поддерживает. И не нужно для этого лезть в настройки компьютера или в диспетчер устройств. Достаточно просто взглянуть на цвет вашего разъема. Разъем USB 3.0 почти всегда синего цвета. Очень редко он бывает еще красного цвета. В то время как USB 2.0 практически всегда черного цвета.

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

На этом, наверное, можно заканчивать разговор о том, чем отличается USB 2.0 от USB 3.0.

Вывод

Что мы узнали из этой статьи? Что USB делится на стандарты передачи данных, которые отличаются скоростью передачи данных. А также, что USB имеют большое количество типов разъемов.

И что самое интересное, о чем я забыл упомянуть в статье, это то, что типы разъемов могут комбинироваться следующим образом. Вы можете встретить полноразмерный разъем USB type-A и полноразмерный USB type-B, в то же время существует (но редко встречается) micro USB type-A и micro USB type-B (очень распространен). USB type-A может работать по протоколу USB 2.0, а может по протоколу USB 3.0. В общем при желании можно и запутаться.

А если вас беспокоит вопрос, с какими разъемами лучше выбрать себе ноутбук USB 2.0 или USB 3.0, то вообще не парьтесь. Сейчас все современные ноутбуки и компьютеры оснащены и тем и тем типом USB. Например, у меня на ноутбуке два разъема USB 2.0 и один разъем USB 3.0. И все три разъема типа USB type-A.

Вот такие они – USB!

Вы дочитали до самого конца?

Была ли эта статья полезной?

Да Нет

Что именно вам не понравилось? Статья была неполной или неправдивой?
Напишите в клмментариях и мы обещаем исправиться!

USB (Universal Serial Bus - «универсальная последовательная шина») - последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств. Для подключения используется 4-х проводный кабель, при этом два провода используются для приёма и передачи данных, а 2 провода - для питания периферийного устройства. Благодаря встроенным линиям питания USB позволяет подключать периферийные устройства без собственного источника питания.

Основные сведения о USB

Кабель USB состоит из 4 медных проводников - 2 проводника питания и 2 проводника данных в витой паре, и заземленной оплётки (экрана). Кабели USB имеют физически разные наконечники «к устройству» и «к хосту». Возможна реализация USB устройства без кабеля, со встроенным в корпус наконечником «к хосту». Возможно и неразъёмное встраивание кабеля в устройство (например, USB-клавиатура, Web-камера, USB-мышь) , хотя стандарт запрещает это для устройств full и high speed.

Шина USB строго ориентирована, т. е. имеет понятие «главное устройство» (хост, он же USB контроллер, обычно встроен в микросхему южного моста на материнской плате) и «периферийные устройства».

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

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

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

Оконечные точки , а значит, и каналы, относятся к одному из 4 классов:

  • поточный (bulk),
  • управляющий (control),
  • изохронный (isoch),
  • прерывание (interrupt).

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

Управляющий канал предназначен для обмена с устройством короткими пакетами «вопрос-ответ». Любое устройство имеет управляющий канал 0, который позволяет программному обеспечению ОС прочитать краткую информацию об устройстве, в том числе коды производителя и модели, используемые для выбора драйвера, и список других оконечных точек.

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

Изохронный канал позволяет доставлять пакеты без гарантии доставки и без ответов/подтверждений, но с гарантированной скоростью доставки в N пакетов на один период шины (1 КГц у low и full speed, 8 КГц у high speed). Используется для передачи аудио- и видеоинформации.

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

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

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

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


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

Возможности, достоинства и недостантки USB:

  • Высокая скорость обмена (full-speed signaling bit rate) - 12 Мб/с;
  • Максимальная длина кабеля для высокой скорости обмена - 5 м;
  • Низкая скорость обмена (low-speed signaling bit rate) - 1.5 Мб/с;
  • Максимальная длина кабеля для низкой скорости обмена - 3 м;
  • Максимум подключенных устройств (включая размножители) - 127;
  • Возможно подключение устройств с различными скоростями обмена;
  • Не нужно устанавливать дополнительных элементов, таких как терминаторы;
  • Напряжение питания для периферийных устройств - 5 В;
  • Максимальный ток потребления на одно устройство - 500 mA.

Сигналы USB передаются по двум проводам экранированного 4-хпроводного кабеля.

Распайка разъема USB 1.0 и USB 2.0

Тип А Тип В
Вилка
(на кабеле)
Розетка
(на компьютере)
Вилка
(на кабеле)
Розетка
(на периферийном
устройстве)

Названия и функциональные назначения выводов USB 1.0 и USB 2.0

Data (передача данных) 4 GND Ground (корпус)

Недостатки USB 2.0

Хоть максимальная скорость передачи данных USB 2.0 составляет 480 Мбит/с (60 Мбайт/с), в реальной жизни достичь таких скоростей нереально (~33,5 Мбайт/сек на практике). Это объясняется большими задержками шины USB между запросом на передачу данных и собственно началом передачи. Например, шина FireWire , хотя и обладает меньшей пиковой пропускной способностью 400 Мбит/с, что на 80 Мбит/с (10 Мбайт/с) меньше, чем у USB 2.0, в реальности позволяет обеспечить бо́льшую пропускную способность для обмена данными с жёсткими дисками и другими устройствами хранения информации. В связи с этим разнообразные мобильные накопители уже давно «упираются» в недостаточную практическую пропускную способность USB 2.0.

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

Все транзакции (обмены) с устройствами USB состоят из двух-трех пакетов, типовые последовательности пакетов в транзакциях приведены на рис. 1. Каждая транзакция планируется и начинается по инициативе хост-контроллера, который посылает пакет-маркер транзакции (token packet). Маркер транзакции описывает тип и направление передачи, адрес выбранного устройства USB и номер конечной точки. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных, определенный маркером, передает пакет данных. На этом этапе транзакции, относящиеся к изохронным передачам, завершаются — здесь нет подтверждения приема пакетов. Для остальных типов передач работает механизм подтверждения, обеспечивающий гарантированную доставку данных. Форматы пакетов приведены на рис. 2, типы пакетов — в таблице. Во всех полях пакетов, кроме поля CRC, данные передаются младшим битом вперед (на временных диаграммах младший бит изображается слева). Пакет начинается с синхропоследовательности Sync и завершается признаком конца — EOP. Тип пакета определяется полем PID. Назначение остальных полей раскрывается далее. Длина полей Sync и EOP указана для передач на FS/LS, для высокоскоростных передач поле Sync удлинено до 32 битовых интервалов, а EOP до 8 (в пакетах SOF поле EOP имеет длину 40 бит).

Все принимаемые пакеты проверяются на наличие ошибок, что позволяют принятые форматы пакета и некоторые соглашения:

  • пакет начинается с синхронизирующей последовательности, за которой следует его идентификатор PID (Packet Identificator). За идентификатором следует его инверсная копия — Check. Несовпадение двух копий считается признаком ошибки;
  • тело пакета (все поля пакета, исключая PID и признак EOP) защищается CRCкодом: 5-битным для пакетов-маркеров, 16-битным — для пакетов данных. Несовпадение CRC с ожидаемым значением считается признаком ошибки;
  • пакет завершается специальным сигналом EOP; если в пакете оказывается не целое число байт, он считается ошибочным. Ложный EOP, даже на границе байта, не позволит принять пакет из-за практически неизбежной в данной ситуации ошибки по CRC-контролю;
  • на физический уровень (в шину) данные пакета передаются с использованием вставки бит (bit stuffing, после шести единичных бит вставляется нолик), что предотвращает потерю битовой синхронизации при монотонном сигнале. Прием более шести единичных бит подряд считается ошибкой (на HS — признаком конца кадра).

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

Для обнаружения отсутствия ответа партнера на пакет каждое устройство имеет счетчик тайм-аута, который прерывает ожидание ответа по истечении некоторого времени. В USB имеется ограничение на время оборота по шине (roundtrip time): время от конца EOP сформированного пакета до получения начала ответного пакета. Для конечного устройства (и хост-контроллера) нормируется максимальная задержка ответа (response time) от конца увиденного EOP до введения им начала пакета. Для хабов нормируется задержка трансляции пакетов, для кабелей — задержка распространения сигналов. Счетчик тайм-аута должен учитывать максимальную задержку, возможную для допустимой конфигурации шины: до 5 промежуточных хабов, до 5 метров каждый кабель. Допустимое значение тайм-аута, выражаемое в битовых интервалах (bt), зависит от скорости:

  • для скоростей FS/LS задержка, вводимая одним кабельным сегментом, по сравнению с битовым интервалом (bt) невелика. Исходя из этого в USB 1.0 для расчета допустимых задержек принимается следующая модель. На каждый кабельный сегмент отводится допустимая задержка 30 нс, на хаб — 40 нс. Таким образом, пять промежуточных хабов со своими кабелями вносят во время двойного оборота задержку 700 нс, что на FS соответствует примерно 8,5 bt. Для FS-устройства задержка ответа не должна превышать 6,5 bt (а с учетом его кабеля — 7,5 bt). Исходя из этого спецификация предписывает передатчикам на FS использовать счетчик тайм-аута на 16-18 bt;
  • на скорости HS задержка в кабельном сегменте много больше битового интервала, и в USB 2.0 модель расчета несколько иная. Здесь на каждый кабельный сегмент отводится по 26 нс, а на хаб — по 4 нс плюс 36 bt. Таким образом, двукратное прохождение 6 кабельных сегментов (2×6×26 = 312 нс ≈ 150 bt) и пять хабов (2×5×4 = 40 нс ≈ 19 bt плюс 2×5×36 = 360 bt) занимает до 529 bt. Задержка ответа устройства допустима до 192 bt, а полная задержка с учетом кабелей и хабов будет до 721 bt. Исходя из этого спецификация предписывает передатчикам на HS использовать счетчик тайм-аута на 736-816 bt.

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

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

ACK — подтверждение (положительное) успешного выполнения транзакции вывода или управления;
NAK — отрицательное подтверждение, является признаком неготовности устройства к выполнению данной транзакции (нет данных для передачи хосту, отсутствует место в буфере для приема, не завершена операция управления). Это является нормальным ответом, о котором не узнает никто, кроме хост-контроллера, вынужденного повторить данную транзакцию позже. В транзакциях ввода ответ NAK устройство дает вместо пакета данных, если они не готовы;
STALL — сообщение о серьезной ошибке, которое означает, что без специального программного вмешательства работа с данной конечной точкой становится невозможной. Этот ответ доводится до сведения и драйвера USBD, отменяющего дальнейшие транзакции с этой точкой, и до клиентского драйвера, от которого и ожидается программное вмешательство, разблокирующее точку. В управляющих транзакциях (Control) ответ STALL означает невыполнимость данного запроса; разблокирования точки при этом не требуется.

Управление потоком при выводе данных, основанное только на возможности ответа NAK в случае неготовности устройства, весьма неэффективно расходует пропускную способность шины: чтобы убедиться в неготовности устройства, по шине впустую передается большой пакет данных. В USB 2.0 этой неприятности в транзакциях Bulk-OUT и Control избегают, применив протокол проб (Ping Protocol). Хост может опросить готовность устройства к приему пакета максимального размера, послав ему маркер-пробник PING. На этот маркер устройство может ответить подтверждением ACK (при готовности) или NAK (если не способно принять пакет максимального размера). Отрицательный ответ заставит хост повторить пробу позже, положительный разрешит ему выполнить транзакцию вывода данных. На транзакцию вывода после положительного ответа на пробу ответы устройства более разнообразны:

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

Высокоскоростное устройство в дескрипторах конечных точек сообщает о возможной интенсивности посылок NAK: поле bInterval для конечных точек типа Bulk и Control указывает число микрокадров, приходящееся на один NAK (0 означает, что устройство никогда не ответит NAK’ом на транзакцию вывода).

Передачи массивов, прерываний и управления обеспечивают надежную доставку данных. После успешного приема пакета приемник данных посылает подтверждение — пакет квитирования ACK. Если приемник данных обнаружил ошибку, пакет игнорируется и никакого ответа на него не посылается. Источник данных считает, что очередной пакет передан успешно, когда получает от приемника подтверждение ACK. Если подтверждение не приходит, то в следующей транзакции источник повторяет посылку того же пакета. Однако пакет подтверждения может быть потерян из-за помехи; чтобы в этом случае повторная посылка пакета приемником не воспринималась как следующая порция данных, пакеты данных нумеруются. Нумерация ведется по модулю 2 (1-битный номер): пакеты делятся на четные (с идентификатором DATA0) и нечетные (DATA1). Для каждой конечной точки (кроме изохронных) у хоста и в устройстве имеются биты-переключатели (Toggle Bit), их начальные состояния тем или иным способом согласуются. В транзакциях IN и OUT передаются и ожидаются пакеты данных с идентификаторами DATA0 или DATA1, соответствующими текущему состоянию этих бит. Приемник данных переключает свой бит в случае безошибочного приема данных с ожидаемым идентификатором, источник данных — по приему подтверждения. Если приемник получает безошибочный пакет с неожидаемым идентификатором, он посылает подтверждение ACK, но данные пакета игнорирует, поскольку этот пакет — повторная посылка уже принятых данных.

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

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

Транзакции изохронного вывода состоят из двух пакетов, посылаемых хост-контроллером, — маркера OUT и пакета данных DATA. В транзакции ввода хост посылает маркер IN, на который устройство отвечает пакетом данных, возможно, и с нулевой длиной поля данных (если нет готовых данных). Любой другой ответ устройства (как и «молчание») хостом расценивается как ошибка, приводящая к остановке данного канала.

При изохронном обмене имеется контроль достоверности (отбрасывание пакетов с ошибками) и целостности данных (обнаружение факта пропажи пакета). Контроль целостности основан на строгой детерминированности темпа обмена — в соответствии со своим дескриптором точка ожидает транзакцию с периодом 2bInterval-1 микрокадров. Для обычной изохронной конечной точки в микрокадре возможна лишь одна транзакция, и ошибка при приеме пакета выражается в отсутствии принятых данных в микрокадре, в котором они ожидаются. Таким образом, нумерация пакетов (переключатель Toggle Bit) не требуется. Полноскоростные устройства и хостконтроллеры должны посылать пакеты только типа DATA01. Для широкополосных изохронных конечных точек (USB 2.0) в каждом микрокадре возможна передача до трех пакетов данных. Любой из этих пакетов может потеряться, и для обнаружения этой ситуации требуется нумерация пакетов внутри микрокадра. Для этой нумерации введено два новых типа пакетов данных: DATA2 и MDATA. Многообразие типов пакетов кроме нумерации позволяет еще и информировать партнера по связи о своих планах на данный микрокадр. В транзакциях IN идентификатором пакета устройство указывает, сколько еще пакетов оно собирается выдать в том же микрокадре, что позволяет хосту не делать лишних попыток ввода. Так, если в микрокадре передается один пакет, то это будет DATA0; если два — последовательность будет DATA1, DATA0; три — DATA2, DATA1, DATA0. В транзакциях OUT для вывода не последнего пакета в микрокадре используется пакет MDATA (More Data), а идентификатор последнего пакета показывает, сколько было до него передано пакетов. Так, при одной транзакции вывода используется пакет DATA0, при двух — последовательность MDATA, DATA1, при трех — MDATA, MDATA, DATA2. Во всех транзакциях, кроме последней в микрокадре, должны использоваться пакеты максимального размера. Отметим, что между широкополосными транзакциями в микрокадре могут вклиниваться другие транзакции.

USB (Universal Serial Bus - «универсальная последовательная шина») - последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств. Для подключения используется 4-х проводный кабель, при этом два провода используются для приёма и передачи данных, а 2 провода - для питания периферийного устройства. Благодаря встроенным линиям питания USB позволяет подключать периферийные устройства без собственного источника питания.

Основные сведения

Кабель USB состоит из 4 медных проводников - 2 проводника питания и 2 проводника данных в витой паре, и заземленной оплётки (экрана).

Кабели USB имеют физически разные наконечники «к устройству» и «к хосту». Возможна реализация USB устройства без кабеля, со встроенным в корпус наконечником «к хосту». Возможно и неразъёмное встраивание кабеля в устройство (например, USB-клавиатура, Web-камера, USB-мышь) , хотя стандарт запрещает это для устройств full и high speed.

Шина USB строго ориентирована, т. е. имеет понятие «главное устройство» (хост, он же USB контроллер, обычно встроен в микросхему южного моста на материнской плате) и «периферийные устройства».

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

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

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

Оконечные точки , а значит, и каналы, относятся к одному из 4 классов:

1) поточный (bulk),

2) управляющий (control),

3) изохронный (isoch),

4) прерывание (interrupt).

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

Управляющий канал предназначен для обмена с устройством короткими пакетами «вопрос-ответ». Любое устройство имеет управляющий канал 0, который позволяет программному обеспечению ОС прочитать краткую информацию об устройстве, в том числе коды производителя и модели, используемые для выбора драйвера, и список других оконечных точек.

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

Изохронный канал позволяет доставлять пакеты без гарантии доставки и без ответов/подтверждений, но с гарантированной скоростью доставки в N пакетов на один период шины (1 КГц у low и full speed, 8 КГц у high speed). Используется для передачи аудио- и видеоинформации.

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

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

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

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


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

Возможности USB:

Высокая скорость обмена (full-speed signaling bit rate) - 12 Мб/с
- Максимальная длина кабеля для высокой скорости обмена - 5 м
- Низкая скорость обмена (low-speed signaling bit rate) - 1.5 Мб/с
- Максимальная длина кабеля для низкой скорости обмена - 3 м
- Максимум подключенных устройств (включая размножители) - 127
- Возможно подключение устройств с различными скоростями обмена
- Отсутствие необходимости в установке пользователем дополнительных элементов, таких как терминаторы для SCSI
- Напряжение питания для периферийных устройств - 5 В
- Максимальный ток потребления на одно устройство - 500 mA

Распайка разъема USB 1.1 и 2.0

Сигналы USB передаются по двум проводам экранированного четырёхпроводного кабеля.

Здесь:

GND - цепь «корпуса» для питания периферийных устройств
V BUS - +5V также для цепей питания
Шина D+ предназначена для передачи данных

Шина D- для приема данных.

Недостатки USB 2.0

Хотя максимальная скорость передачи данных USB 2.0 составляет 480 Мбит/с (60 Мбайт/с), в реальной жизни достичь таких скоростей нереально (~33,5 Мбайт/сек на практике). Это объясняется большими задержками шины USB между запросом на передачу данных и собственно началом передачи. Например, шина FireWire , хотя и обладает меньшей пиковой пропускной способностью 400 Мбит/с, что на 80 Мбит/с (10 Мбайт/с) меньше, чем у USB 2.0, в реальности позволяет обеспечить бо́льшую пропускную способность для обмена данными с жёсткими дисками и другими устройствами хранения информации. В связи с этим разнообразные мобильные накопители уже давно «упираются» в недостаточную практическую пропускную способность USB 2.0.