02-05-2023
USB (ю-эс-би, англ. Universal Serial Bus — «универсальная последовательная шина») — последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств в вычислительной технике. Символом USB являются четыре геометрические фигуры: большой круг, малый круг, треугольник и квадрат, расположенные на концах древовидной блок-схемы.
Разработка спецификаций на шину USB производится в рамках международной некоммерческой организации USB Implementers Forum (USB-IF), объединяющей разработчиков и производителей оборудования с шиной USB.
Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель, при этом два провода (витая пара) в дифференциальном включении используются для приёма и передачи данных, а два провода — для питания периферийного устройства. Благодаря встроенным линиям питания USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА, у USB 3.0 — 900 мА).
Содержание |
Первые спецификации для USB 1.0 были представлены в 1994—1995 годах. Разработка USB поддерживалась фирмами Intel, Microsoft, Philips, US Robotics. USB стал «общим знаменателем» под тремя не связанными друг с другом стремлениями разных компаний:
Поддержка USB вышла в виде патча к Windows 95b, в дальнейшем она вошла в стандартную поставку Windows 98. В первые годы устройств было мало, поэтому шину в шутку называли «Useless serial bus» — «бесполезная последовательная шина».[1] Впрочем, производители быстро осознали пользу USB, и уже к 2000 году большинство принтеров и сканеров работали с новым интерфейсом.
Hewlett-Packard, Intel, Lucent (ныне Alcatel-Lucent), Microsoft, NEC и Philips совместно выступили с инициативой по разработке более скоростной версии USB. Спецификация USB 2.0 была опубликована в апреле 2000 года, и в конце 2001 года эта версия была стандартизирована USB Implementers Forum. USB 2.0 является обратно совместимой со всеми предыдущими версиями USB.
Следует отметить, что в начале 2000-х годов корпорация Apple отдавала приоритет шине FireWire, в разработке которой она принимала активное участие. Ранние модели iPod были оснащены только интерфейсом FireWire, а USB отсутствовал. Впоследствии компания отказалась от FireWire в пользу USB, оставив в некоторых моделях FireWire только для подзарядки. Однако, клавиатуры и мыши, начиная со второй половины 90-х годов, имели интерфейс USB.
В середине 2000-х годов BIOS’ы компьютеров массового сегмента начали поддерживать USB (поддержка USB в корпоративном сегменте началась с середины 90-х). Это позволило загружаться с флэш-дисков, например, для переустановки ОС; пропала надобность в PS/2-клавиатуре. Современные материнские платы поддерживают до 12 USB-портов. В большинстве современных ноутбуков COM- и LPT-портов нет, всё чаще появляются настольные компьютеры без этих портов.
Пока происходило распространение USB-портов второй версии, производители внешних жёстких дисков уже «упёрлись» в ограничение USB 2.0. Потребовался новый стандарт, который и вышел в 2008 году. Уложиться в старые 4 провода не удалось, добавили 5 новых проводов. Первые материнские платы с поддержкой USB 3.0 вышли в 2011 году. На начало 2012 года USB 3.0 массово не поддерживается запоминающими устройствами и материнскими платами. Однако производители USB-накопителей уже начали поставлять на рынок устройства, поддерживающие USB 3.0. Также имеются платы расширения, добавляющие поддержку USB 3.0 в старых компьютерах.
Кабель USB состоит из 4 медных проводников — 2 проводника питания и 2 проводника данных в витой паре — и заземленной оплётки (экрана).
Кабели USB ориентированы, то есть имеют физически разные наконечники «к устройству» и «к хосту». Возможна реализация USB устройства без кабеля, со встроенным в корпус наконечником «к хосту». Возможно и неразъёмное встраивание кабеля в устройство, как в мышь (стандарт запрещает это для устройств full и high speed, но производители его нарушают). Существуют (хотя и запрещены стандартом) и пассивные USB удлинители, имеющие разъёмы «от хоста» и «к хосту».
С помощью кабелей формируется интерфейс между USB-устройствами и USB-хостом. В качестве хоста выступает программно-управляемый USB-контроллер, который обеспечивает функциональность всего интерфейса. Контроллер, как правило, интегрирован в микросхему южного моста, хотя может быть исполнен и в отдельном корпусе. Соединение контроллера с внешними устройствами происходит через USB-концентратор (другие названия — хаб, разветвитель). В силу того, что USB-шина имеет древовидную топологию, концентратор самого верхнего уровня называется корневым (root hub). Он встроен в USB-контроллер и является его неотъемлемой частью.
Для подключения внешних устройств к USB-концентратору в нем предусмотрены порты, заканчивающиеся разъемами. К разъемам с помощью кабельного хозяйства могут подключаться USB-устройства, либо USB-хабы нижних уровней. Такие хабы — активные электронные устройства (пассивных не бывает), обслуживающие несколько собственных USB-портов. С помощью USB-концентраторов допускается до пяти уровней каскадирования, не считая корневого. USB-интерфейс позволяет соединить между собой и два компьютера, но это требует наличия специальной электроники, эмулирующей Ethernet-адаптер с драйверной поддержкой с обеих сторон.
Устройства могут быть запитаны от шины, но могут и требовать внешний источник питания. По умолчанию устройствам гарантируется ток до 100 мА, а после согласования с хост-контроллером — до 500 мА. Поддерживается и дежурный режим для устройств и разветвителей по команде с шины со снятием основного питания при сохранении дежурного питания и включением по команде с шины.
USB поддерживает «горячее» подключение и отключение устройств. Это достигнуто увеличенной длиной заземляющего контакта разъёма по отношению к сигнальным. При подключении разъёма USB первыми замыкаются заземляющие контакты, потенциалы корпусов двух устройств становятся равны и дальнейшее соединение сигнальных проводников не приводит к перенапряжениям, даже если устройства питаются от разных фаз силовой трёхфазной сети.
На логическом уровне устройство USB поддерживает транзакции приема и передачи данных. Каждый пакет каждой транзакции содержит в себе номер оконечной точки (endpoint) на устройстве. При подключении устройства драйверы в ядре ОС читают с устройства список оконечных точек и создают управляющие структуры данных для общения с каждой оконечной точкой устройства. Совокупность оконечной точки и структур данных в ядре ОС называется каналом (pipe).
Оконечные точки, а значит, и каналы, относятся к одному из 4 классов — поточный (bulk), управляющий (control), изохронный (isoch) и прерывание (interrupt). Низкоскоростные устройства, такие, как мышь, не могут иметь изохронные и поточные каналы.
Управляющий канал предназначен для обмена с устройством короткими пакетами «вопрос-ответ». Любое устройство имеет управляющий канал 0, который позволяет программному обеспечению ОС прочитать краткую информацию об устройстве, в том числе коды производителя и модели, используемые для выбора драйвера, и список других оконечных точек.
Канал прерывания позволяет доставлять короткие пакеты и в том, и в другом направлении, без получения на них ответа/подтверждения, но с гарантией времени доставки — пакет будет доставлен не позже, чем через N миллисекунд. Например, используется в устройствах ввода (клавиатуры/мыши/джойстики).
Изохронный канал позволяет доставлять пакеты без гарантии доставки и без ответов/подтверждений, но с гарантированной скоростью доставки в N пакетов на один период шины (1 КГц у low и full speed, 8 КГц у high speed). Используется для передачи аудио- и видеоинформации.
Поточный канал дает гарантию доставки каждого пакета, поддерживает автоматическую приостановку передачи данных по нежеланию устройства (переполнение или опустошение буфера), но не дает гарантий скорости и задержки доставки. Используется, например, в принтерах и сканерах.
Время шины делится на периоды, в начале периода контроллер передает всей шине пакет «начало периода». Далее в течение периода передаются пакеты прерываний, потом изохронные в требуемом количестве, в оставшееся время в периоде передаются управляющие пакеты и в последнюю очередь поточные.
Активной стороной шины всегда является контроллер, передача пакета данных от устройства к контроллеру реализована как короткий вопрос контроллера и длинный, содержащий данные, ответ устройства. Расписание движения пакетов для каждого периода шины создается совместным усилием аппаратуры контроллера и ПО драйвера, для этого многие контроллеры используют крайне сложный DMA со сложной DMA-программой, формируемой драйвером.
Размер пакета для оконечной точки есть вшитая в таблицу оконечных точек устройства константа, изменению не подлежит. Он выбирается разработчиком устройства из числа тех, что поддерживаются стандартом USB
Спецификация выпущена 15 января 1996 года.
Технические характеристики:
Спецификация выпущена в сентябре 1998 года. Исправлены проблемы и ошибки, обнаруженные в версии 1.0. Первая версия, получившая массовое распространение.
Спецификация выпущена в апреле 2000 года.
USB 2.0 отличается от USB 1.1 введением режима Hi-speed.
Для устройств USB 2.0 регламентировано три режима работы:
Последующие модификации к спецификации USB публикуются в рамках Извещений об инженерных изменениях (сайте USB Implementers Forum.
USB OTG (аббр. от On-The-Go) — дальнейшее расширение спецификации USB 2.0, предназначенное для лёгкого соединения периферийных USB-устройств друг с другом без необходимости подключения к ПК. Например, цифровой фотоаппарат можно подключать к фотопринтеру напрямую, если они оба поддерживают стандарт USB OTG. К моделям КПК и коммуникаторов, поддерживающих USB OTG, можно подключать некоторые USB-устройства. Обычно это флэш-накопители, цифровые фотоаппараты, клавиатуры, мыши и другие устройства, не требующие дополнительных драйверов. Этот стандарт возник из-за резко возросшей в последнее время необходимости надёжного соединения различных устройств без использования ПК.
Хотя соединение USB OTG выглядит как одноранговое, на самом деле только создаётся такое ощущение — в действительности устройства «договариваются»: сами определяют, какое из них будет мастер-устройством (хостом), а какое — подчинённым. Одноранговый интерфейс USB существовать не может.
USB wireless — технология USB (официальная спецификация доступна с мая 2005 года), позволяющая организовать беспроводную связь с высокой скоростью передачи информации (до 480 Мбит/с на расстоянии 3 метра и до 110 Мбит/с на расстоянии 10 метров).
23 июля 2007 года USB Implementers Forum (USB-IF) объявила о сертификации шести первых потребительских продуктов с поддержкой Wireless USB.[3]
Area SD-PEU3N-2EL (USB 3.0 PCIe card), USB 3.0 хост на базе микросхемы µPD720200 фирмы Renesas
USB 3.0 хаб, демонстрационная плата на базе микросхемы VL810 фирмы VIA
Окончательная спецификация USB 3.0 появилась в 2008 году. Созданием USB 3.0 занимались компании Intel, Microsoft, Hewlett-Packard, Texas Instruments, NEC и NXP Semiconductors.
В спецификации USB 3.0 разъёмы и кабели обновлённого стандарта физически и функционально совместимы с USB 2.0. Кабель USB 2.0 содержит в себе четыре линии — пару для приёма/передачи данных, плюс и ноль питания. В дополнение к ним USB 3.0 добавляет ещё четыре линии связи (две витых пары), в результате чего кабель стал гораздо толще. Hовые контакты в разъемах USB 3.0 расположены отдельно от старых на другом контактном ряду. Теперь можно будет с лёгкостью определить принадлежность кабеля к той или иной версии стандарта, просто взглянув на его разъём. Спецификация USB 3.0 повышает максимальную скорость передачи информации до 4,8 Гбит/с — что на порядок больше 480 Мбит/с, которые может обеспечить USB 2.0. Таким образом, скорость передачи возрастает с 60 Мбайт/с до 600 Мбайт/с и позволяет передать 1 Тб не за 8-10 часов, а за 40-60 минут.
Версия 3.0 отличается не только более высокой скоростью передачи информации, но и увеличенной силой тока с 500 мА до 900 мА. Отныне пользователь может не только подпитывать от одного хаба большее количество устройств, но и сами устройства во многих случаях смогут избавиться от отдельных блоков питания.
В блоге разработчика Sarah Sharp объявлено о поддержке USB 3.0 ядром Linux, начиная с версии 2.6.31.
Компания Asus выпустила материнскую плату P6X58 Premium, у которой есть два USB 3.0 порта. А компания Gigabyte выпустила первую материнскую плату с поддержкой USB 3.0 и SATA 6Gb/s для процессоров AMD — Gigabyte GA-790FXTA-UD5. Пластик портов USB 3.0 на материнской плате синего цвета.
Фирмой Intel анонсирована предварительная версия программной модели контроллера USB 3.0[4]. Но в октябре 2009 года появилась информация (от EE Times со ссылкой на сотрудника одной из крупнейших компаний по производству персональных компьютеров), что корпорация Intel решила повременить с внедрением поддержки USB 3.0 в свои чипсеты до 2011 года. Это решение привело к тому, что до 2011 года данный стандарт не стал массовым благодаря просто покупке материнской платы - конечному покупателю придётся докупать необходимое оборудование в виде адаптера.[5].
Введение в третью аппаратную версию (англ. Rev.3) чипов Intel P/H/Q67 для построения материнских плат поддержки спецификации USB 3.0[6][7] частично решило данную проблему.
Спецификация 1.0 регламентировала два типа разъёмов: A — на стороне контроллера или концентратора USB и B — на стороне периферийного устройства. Впоследствии были разработаны миниатюрные разъёмы для применения USB в переносных и мобильных устройствах, получившие название Mini-USB. Новая версия миниатюрных разъёмов, называемых Micro-USB, была представлена USB Implementers Forum 4 января 2007 года.
Тип A | Тип B | ||||
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Существуют также разъёмы типа Mini-AB и Micro-AB, с которыми соединяются соответствующие коннекторы как типа A, так и типа B.
USB-A удачно сочетает долговечность и механическую прочность, несмотря на отсутствие винтовой затяжки. Однако уменьшенные варианты разъёмов, имеющие тонкие пластмассовые выступы, высоко выступающие из подложки гнезда, плохо переносят частое смыкание-размыкание и требуют более бережного обращения.
Сигналы USB (версии ≤2.x) передаются по двум проводам экранированного четырёхпроводного кабеля.
Номер контакта | 4 | 3 | 2 | 1 |
---|---|---|---|---|
Обозначение |
|
|
|
|
Цвет провода |
|
|
|
|
|
Здесь GND — цепь «корпуса» для питания периферийных устройств, а VBus — +5 вольт, также для цепей питания. Данные передаются дифференциально по проводам D- и D+ (diff0 и diff1 соответственно, в терминологии официальной документации). Состояния «0» и «1» определяются по разности потенциалов между линиями более 0,2 В и при условии, что на одной из линий (D− в случае diff0 и D+ при diff1) потенциал относительно GND выше 2,8 В.[8] Дифференциальный способ передачи является основным, но не единственным (например, при инициализации устройство сообщает хосту о режиме, поддерживаемом устройством (англ. Full-Speed или англ. Low-Speed), подтягиванием одной из линий данных к V_BUS через резистор 1,5 кОм (D− для режима Low-Speed и D+ для режимов Full-Speed и High-Speed)[9].
Для соблюдения достаточного уровня сигнала в кабеле и недопускания его затухания требуется коррелировать длину кабеля с сечением проводников. Принята практика указания толщины сечения провода в AWG, например «28 AWG/1P…..».
AWG | Длина, не свыше (см) |
---|---|
28 | 81 |
26 | 131 |
24 | 208 |
22 | 333 |
20 | 500 |
Тип A | Тип B | ||||
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Внешние изображения | |
---|---|
USB Тип А | |
USB Тип В | |
USB Тип B micro | |
USB тип mini B | |
USB 3.0 Powered-B | |
Расположение контактов на розетке USB 3.0 B | |
Расположение контактов на розетке USB 3.0 A |
№ контакта | A | B | micro B | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | VBUS (VCC) | VBUS (VCC) | VBUS (VCC) | ||||||||
2 | D- | D- | D- | ||||||||
3 | D+ | D+ | D+ | ||||||||
4 | GND | GND | ID | ||||||||
5 | StdA_SSTX- | StdA_SSTX- | GND | ||||||||
6 | StdA_SSTX+ | StdA_SSTX+ | StdA_SSTX- | ||||||||
7 | GND_DRAIN | GND_DRAIN | StdA_SSTX+ | ||||||||
8 | StdA_SSRX- | StdA_SSRX- | GND_DRAIN | ||||||||
9 | StdA_SSRX+ | StdA_SSRX+ | StdA_SSRX- | ||||||||
10 | StdA_SSRX+ | ||||||||||
Экран | Экран | Экран | Экран | ||||||||
|
Также существуют разъёмы USB 3.0 Micro ещё двух типов: вилка USB 3.0 Micro-A и розетка USB 3.0 Micro-AB. Визуально отличаются от USB 3.0 Micro-B «прямоугольной» (не срезанной) частью разъёма с секцией USB 2.0, что позволяет избежать подключения вилки Micro-A в розетку Micro-B, а розетку Micro-AB делает совместимой с обеими вилками.
Розетка Micro-AB будет применяться в мобильных устройствах, имеющих бортовой USB 3.0 host контроллер. Для идентификации режима хост/клиент используется вывод 4 (ID) — в вилке Micro-A он замкнут на «землю».
Новый разъём USB 3.0 Powered-B спроектирован с использованием двух дополнительных контактов, что позволяет устройствам предоставлять до 1000 мА другому устройству, например, адаптеру Wireless USB. Это позволяет избежать необходимости в источнике питания для устройства, подключаемого к Wireless USB адаптеру, делая ещё один шаг к идеальной системе беспроводной связи (без отдельного питания). При обычных проводных подключениях к хосту или хабу эти два дополнительных контакта не используются.
Дополнительные контакты питания розетки USB 3.0 Powered-B
1 | VBUS | +5V Питание |
2 | USB D- | USB 2.0 данные |
3 | USB D+ | |
4 | GND | Земля |
8 | StdA_SSRX- | SuperSpeed приём |
9 | StdA_SSRX+ | SuperSpeed приём |
7 | GND_DRAIN | Земля |
5 | StdA_SSTX- | SuperSpeed передача |
6 | StdA_SSTX+ | SuperSpeed передача |
10 | DPWR | Дополнительное питание на устройство |
11 | DGND | Земля питания устройства |
Назначение USB-устройств определяется кодами классов, которые сообщаются USB-хосту для загрузки необходимых драйверов. Коды классов позволяют унифицировать работу с однотипными устройствами разных производителей. Устройство может поддерживать один или несколько классов, количество которых определяется количеством конечных точек (USB endpoints).
Описание кодов классов: [15]
Код | Название | Примеры использования / примечание |
---|---|---|
00h | N/A | Не задано |
01h | Audio | Звуковая карта, MIDI |
02h | Communications Device Class (CDC) | Модем, Сетевая карта, COM-порт |
03h | Human Interface Device Class (HID) | Клавиатура, Мышь, Джойстик |
05h | Physical Interface Device (PID) | Джойстик с поддержкой Force feedback |
06h | Image | Веб-камера, Сканер |
07h | Printer | Принтер |
08h | Mass Storage Class (MSC) | USB-накопитель, Карта памяти, Картридер, MP3-плеер, Цифровая фотокамера |
09h | USB hub | USB-хаб |
0Ah | CDC Data | Используется совместно с классом CDC |
0Bh | Smart Card | Считыватель смарт-карт |
0Dh | Content security | Биометрический сканер |
0Eh | Video Device Class | Веб-камера |
0Fh | Personal Healthcare | Индикатор пульса, медицинское оборудование |
DCh | Diagnostic Device | Используется для проверки совместимости с USB |
E0h | Wireless Controller | Bluetooth-адаптер |
EFh | Miscellaneous | ActiveSync-устройства |
FEh | Application-specific | IrDA-устройства, режим обновления прошивки (DFU) |
FFh | Vendor-specific | На усмотрение производителя |
Хотя пиковая пропускная способность USB 2.0 составляет 480 Мбит/с (60 Мбайт/с), на практике обеспечить пропускную способность, близкую к пиковой, не удаётся (~33,5 Мбайт/с на практике). Это объясняется достаточно большими задержками шины USB между запросом на передачу данных и собственно началом передачи. Например, шина FireWire, хотя и обладает меньшей пиковой пропускной способностью 400 Мбит/с, что на 80 Мбит/с (10 Мбайт/с) меньше, чем у USB 2.0, в реальности позволяет обеспечить бо́льшую пропускную способность для обмена данными с жёсткими дисками и другими устройствами хранения информации. В связи с этим разнообразные мобильные накопители уже давно «упираются» в недостаточную практическую пропускную способность USB 2.0.
Протокол USB Mass Storage, представляющий собой метод передачи команд SCSI по шине USB, имеет бо́льшие накладные расходы, чем соответствующий ему протокол SBP-2 шины FireWire/1394. Поэтому при подключении внешнего диска или привода CD/DVD по FireWire удаётся достичь большей скорости передачи данных. Кроме того, USB Mass Storage не поддерживался в старых ОС (включая Windows 98), и требовал установки драйвера. SBP-2 же в них поддерживался изначально. Также в старых ОС (Windows 2000) протокол USB storage был реализован в урезанном виде, не позволяющем использовать функцию записи CD- и DVD-дисков на подключённом по USB дисководе, SBP-2 никогда не имел таких ограничений.
Шина USB строго ориентирована, поэтому соединение двух компьютеров требует дополнительного оборудования. Соединение оборудования без компьютера, например, принтера и сканера или же фотоаппарата и принтера было определено стандартом USB OTG, ранее же эти реализации были завязаны на конкретного производителя. Шина 1394/FireWire изначально не подвержена этому недостатку (например, можно соединить две видеокамеры).
Тем не менее, ввиду лицензионной политики Apple, а также значительно более высокой сложности оборудования, 1394 менее распространён, материнские платы многих компьютеров не имеют контроллера 1394. Что касается периферии, поддержка 1394 реализована во множестве корпусов для внешних накопителей на основе НЖМД (особенно премиум-сегмента) и приводов оптических дисков, мультимедиа интерфейсах, камкордерах.
Следует также отметить, что Apple использует в своих компьютерах и порт 1394b, известный как FireWire800, пиковая скорость передачи данных которого составляет 800 Мбит/сек.
Компьютерные шины | |
---|---|
Основные понятия | Шина адреса • Шина данных • Шина управления • Пропускные способности |
Процессоры | BSB • FSB • DMI • HyperTransport • QPI |
Внутренние | AGP • ASUS Media Bus • EISA • InfiniBand • ISA • LPC • MBus • MCA • NuBus • PCI • PCIe • PCI-X • Q-Bus • SBus • SMBus • VLB • VMEbus • Zorro III |
Ноутбуки | ExpressCard • MXM • PC Card |
Накопители | ST-506 • ESDI • ATA • eSATA • Fibre Channel • HIPPI • iSCSI • SAS • SATA • SCSI |
Периферия | 1-Wire • ADB • I²C • IEEE 1284 (LPT) • IEEE 1394 (FireWire) • Multibus • PS/2 • RS-232 • RS-485 • SPI • USB • Игровой порт |
Универсальные | Futurebus • InfiniBand • QuickRing • SCI • RapidIO • IEEE-488 • Thunderbolt (Light Peak) |
USB 2.0.