USB - интерфейсная шина
На рисунке: символ USB
USB (англ. UniversalSerialBus, произносится «ю-эс-би» — «универсальная последовательная шина») — последовательный интерфейс для передачи данных по среднескоростным и низкоскоростным периферийным устройствам в вычислительной технике. Официальным символом USB являются четыре обычные геометрические фигуры: треугольник, большой круг, квадрат и малый круг, расположенные на концах незамысловатой древовидной блок-схемы.
Все разработки спецификаций на USB-шину производятся в рамках международной некоммерческой организации USB-IF (USB ImplementersForum), объединяющей производителей и разработчиков оборудования с шиной USB.
Чтобы подключить периферийные устройства к шине USB применяется четырёхпроводный кабель, при этом витая пара в дифференциальном включении используются для передачи и приёма данных, а два провода — для поддержки питания периферийного устройства. В целом, благодаря встроенным линиям обеспечения питания USB позволяет подключать все периферийные устройства без наличия собственного источника питания (при этом, максимальная сила тока, используемого устройством по линиям питания USB-шины, не должна превышать 500 мА, а у USB 3.0 - 900 мА).
История
Самые первые спецификации для устройства USB 1.0 были представлены в 1994-1995 гг. Тогда разработка USB поддерживалась такими фирмами, как Intel, Philips, Microsoft, US Robotics. USB смог стать «общим знаменателем» для трех не связанных друг с другом стремлений разных компаний:
- Простота для любого пользователя. Старые интерфейсы (к примеру, LPT – и COM-порты) были очень просты для разработчика, но не могли обеспечить настоящий «plugandplay». Поэтому требовались новые механизмы для взаимодействия компьютера со средне- и низкоскоростными внешними устройствами — вероятно, более сложные для конструкторов, но дружественные, надёжные и пригодные к «горячему» подключению.
- Подключение к компьютеру мобильного телефона. В то время становились на ноги компьютерные сети, а телефоны осуществляли переход на цифровую передачу голоса, и не было интерфейса, годного для передачи с телефона на компьютер, как данных, так и речи.
- Расширение функциональности компьютера. В то время для того, чтобы подключить внешние периферийные устройства к персональному компьютеру применялись несколько стандартных интерфейсов (PS/2, параллельный порт, последовательный порт, SCSI, порт для подключения джойстика), и с возникновением новых внешних устройств разрабатывался и новый разъём. Предполагалось, что всех их заменит USB и заодно подхлестнёт разработку нестандартных устройств.
Поддержка USB осуществлялась в виде патча к Windows 95b, в будущем она вошла в стандартный комплектWindows 98. Устройств было небольшим, и шине дали название «Uselessserialbus», в переводе - «бесполезная последовательная шина». Правда, производители быстро признали пользу USB, и к 2000 году большинство сканеров и принтеров работали с новым интерфейсом.
Intel, Hewlett-Packard, Microsoft, Lucent (ныне Alcatel-Lucent),Philips и NEC совместно выступили с идеей по разработке более быстрой версии USB. Сама спецификация USB 2.0 получила публикацию в апреле 2000 года, и к концу 2001 года эту версию стандартизировал USB ImplementersForum. Стоит отметить, что USB 2.0 имеет обратную совместимость со всеми предшествующими версиями USB.
Примерно в середине 2000-х годов BIOS-ы компьютеров начали массово осуществлять поддержку USB. Это позволило производить загрузку с флэш-дисков; пропала необходимость PS/2-клавиатуры, к примеру, для переустановки ОС. На новых материнских платах устанавливают вплоть до 12 USB-контроллеров, по 2 порта на каждом. В большей части современных ноутбуков LPT- и COM-портов нет, всё чаще стали появляться настольные компьютеры, у которых нет этих портов.
Основные сведения
USBкабель состоит из четырех медных проводников — двух проводников питания и двух проводников данных в витой паре, а также заземленной оплётки (экрана).
USBкабели ориентированы, то есть обладают физически разными наконечниками «к хосту» и «к устройству». Возможна реализация устройства USB без кабеля, со встроенным в компьютерный корпус наконечником «к хосту». Может быть и неразъёмное встраивание кабеля в какое-либо устройство, например, в мышь (стандартом запрещено это для устройств high и fullspeed, но производители нарушают его). Существуют (хотя тоже запрещены стандартом) и пассивные удлинители USB, имеющие разъёмы «к хосту» и «от хоста».
Шина строго ориентирована и имеет понятие «главного устройства» (хост, он же USB контроллер, чаще всего встроен именно в микросхему южного моста) или «периферийного устройства». Шина обладает древовидной топологией, потому что периферийным устройством может являться разветвитель (hub), в свою очередь обладающий несколькими нисходящими разъемами «от хоста». Разветвитель является сложным электронным устройством, пассивных разветвителей не существует.
Соединение двух компьютеров либо двух периферийных устройств с помощью пассивного USB кабеля невозможно. Бывают активные кабели USB для соединения двух компьютеров, но в них входит сложная электроника, эмулирующая Ethernet адаптер, а также они требуют установки драйверов сразу с обеих сторон.
Устройства бывают запитанными от шины и нуждающимися во внешнем источнике питания. Поддерживается также дежурный режим для разветвителей и устройств по команде с шины со снятием главного питания, с сохранением дежурного питания и включением непосредственно по команде с шины.
USB имеет поддержку «горячего» подключения и отключения устройств. Это достигнуто благодаря увеличенной длине заземляющего контакта разъёма по сравнению с сигнальными проводниками. При подключении USBразъёма первыми замыкаются именно заземляющие контакты, а потенциалы корпусов 2-х устройств становятся равными и дальнейшее соединение проводников не приводит к каким-то перенапряжениям, даже когда устройства питаются от совершенно разных фаз в силовой трёхфазной сети.
Устройство USB на логическом уровне поддерживает транзакции передачи и приема данных. Каждый пакет любой транзакции содержит номер конечной точки на устройстве (endpoint). При подключении устройства все драйверы в ядре ОС считывают с устройства перечень конечных точек и создают структуры управления данными для общения со всеми конечными точками устройства. Совокупность структур данных и конечной точки в ядре ОС называют каналом (pipe).
Каналы и конечные точки относятся к одному из четырех классов — управляющий (control), поточный (bulk), прерывающий (interrupt) и изохронный (isoch). Низкоскоростные устройства, например, мышь, не могут иметь поточные и изохронные каналы.
Управляющий канал необходим для обмена с устройством отдельными короткими пакетами «вопрос-ответ». Каждое устройство имеет канал управления 0, позволяющий программному обеспечению системы прочесть краткую информацию об устройстве, список других оконечных точек, а также модели и коды производителя, используемые для выбора драйвера.
Канал прерывания дает возможность доставлять короткие пакеты в обоих направлениях, без получения на них подтверждения/ответа, но с гарантией времени осуществления доставки — пакет доставят не позже, чем через X миллисекунд. К примеру, используется в устройствах ввода (джойстики/мыши/клавиатуры).
Изохронный канал дает возможность доставки пакетов без гарантии и без подтверждений/ответов, но с гарантированной скоростью доставки в X пакетов на 1 период шины (1 КГц у full и lowspeed, 8 КГц у highspeed). Применяется для передачи видео- и аудиоинформации.
Поточный канал гарантирует доставку каждого пакета, а также поддерживает автоматическую остановку передачи данных при нежелании устройства (опустошение или переполнение буфера), но не дает гарантий задержки и скорости доставки. Используется, к примеру, в сканерах и принтерах.
Время шины разделяется на периоды, сначала контроллер передает шине пакет «начало периода». Затем в течение периода передаются все пакеты прерываний, потом изохронные пакеты в требуемом количестве, в конце передаются пакеты управления и в последнюю очередь поточные.
Контроллер всегда является активной стороной шины, передача пакета данных от самого устройства к контроллеру реализована в качестве короткого вопроса контроллера и длинного, содержащего данные, ответа устройства. Расписание перемещения пакетов для каждого периода создается совместным усилием ПО драйвера и аппаратуры контроллера, для этого большинство контроллеров используют очень сложный DMA со сложнейшей DMA-программой, формируемой драйвером.
Размером пакета для конечной точки является вшитое в таблицу конечных точек устройство константы, которое не подлежит изменению. Оно выбирается разработчиком устройства из тех, что поддерживаются основным стандартом USB.
Версии спецификации
Начальные версии
- USB 0.7: спецификация была выпущена в ноябре 1994-го.
- USB 0.8: спецификация была выпущена в декабре 1994-го.
- USB 0.9: спецификация была выпущена в апреле 1995-го.
- USB 0.99: спецификация была выпущена в августе 1995-го.
- USB 1.0 ReleaseCandidate: спецификация была выпущена в ноябре 1995-го.
USB 1.0
Спецификация была выпущена 15 января 1996-го.
Технические характеристики:
- максимальная длина кабеля в режиме с большой пропускной способностью — 5м
- максимальное число подключённых устройств (включая и размножители) — 127
- максимальная длина кабеля в режиме с маленькой пропускной способностью — 3м
- два режима передачи информации:
- режим с маленькой пропускной способностью (Low-Speed) — 1,5Мбит/с
- режим с большой пропускной способностью (Full-Speed) — 12Мбит/с
- максимальный ток, который потребляет периферийное устройство — 500 мА
- напряжение питания в периферийных устройствах — 5 В
- возможно подключение устройств, которые работают в режимах с различными пропускными способностями к одному USB контроллеру
USB 1.1
Спецификация была выпущена в сентябре 1998-го. Исправлены ошибки и проблемы, обнаруженные в версии 1.0. Является первой версией, которая получила массовое распространение.
USB 2.0
На рисунке: Логотип USB 2.0 HighSpeed
Эта спецификация выпущена в апреле 2000-го.
USB2.0 отличается от USB1.1 непосредственно введением режима Hi-speed.
У устройств USB2.0 имеется три режима работы:
- Hi-speed, скорость 25—480 Мбит/с (устройства хранения информации, видеоустройства)
- Full-speed, скорость 0,5—12 Мбит/с (устройства видео и аудио)
- Low-speed, скорость 10—1500 Кбит/c (применяется для интерактивных устройств: джойстики, мыши, клавиатуры)
USB 3.0
Окончательная спецификация USB3.0 вышла в свет в 2008. Созданием USB3.0 занимались такие компании, как Microsoft,TexasInstruments, Intel, Hewlett-Packard, NXPS emiconductors и NEC.
В спецификации USB3.0 кабели и разъёмы обновлённого стандарта функционально и физически совместимы с USB2.0. USB2.0 кабель содержит в себе 4 линии — пару для передачи/приёма данных, ноль и плюс питания. USB 3.0 добавило в дополнение еще 4 линии связи (две витые пары), в результате кабель стал намного толще. Новые контакты в USB3.0 разъемах расположены отдельно от старых на совсем другом контактном ряду. Сейчас можно с лёгкостью определить принадлежность любого кабеля к любой версии официального стандарта, просто оценив его разъём. Спецификация USB3.0 увеличивает максимальную скорость происходящей передачи данных до уровня 4,8 Гбит/с — что значительно лучше 480 Мбит/с, которые обеспечивает USB 2.0. Таким образом, полная скорость передачи увеличивается с 60 Мбайт/с до 600 Мбайт/с и дает возможность переписать 1 Тб не за 8-10 часов, а за какие-то 40 минут-1 час.
USB3.0 может похвалиться еще и большей силой тока - 900 мА вместо 500 мА. Теперь пользователь может не просто подпитывать от одного хаба увеличенное число устройств, но и эти устройства в большинстве случаев смогут избавиться от некоторых блоков питания.
Фирма Asus выпустила в продажу материнскую плату P6X58 Premium, которая имеет два USB3.0 порта. А фирма Gigabyte выпустила в продажу самую первую материнскую плату с поддержкой SATA 6Gb/s и USB3.0 для процессоров AMD — Gigabyte GA-790FXTA-UD5. Сами же порты USB 3.0 синего цвета.
Фирма Intel анонсировала предварительную версию программной модели USB 3.0 контроллера. Но в октябре 2009-го появилась информация (по данным EE Times со ссылкой на работника одной из самых крупных компаний по изготовлению персональных компьютеров), что фирма Intel решила подождать с введением поддержки USB3.0 в собственные чипсеты до 2011 года. Такое решение ведет к тому, что этот стандарт не станет массовым в ближайшем будущем.
Разъемы и кабели USB
USB Тип В
USB Тип A
Старая спецификация 1.0 регламентировала два вида разъёмов: B — на стороне периферийного устройства и A — на стороне концентратора или контроллера USB. Впоследствии были сделаны миниатюрные разъёмы для использования USB в мобильных и переносных устройствах, которые получили название Mini-USB. Новая версия этих миниатюрных разъёмов, которые назывались Micro-USB, была представлена на USB ImplementersForum 4 января месяца 2007-го.
Размеры разъёмов: USB mini B и USB mini A — 2×7 мм, USB Тип B — 7×8 мм, USB Тип A — 4×12 мм
На фото: Mini USB Тип B (справа) и Mini USB Тип A (слева)
Кроме того, существуют разъёмы типа Micro-AB и Mini-AB, с которыми соединяются соответствующие им коннекторы как типа B, так и типа A.
USB-A удачно сочетает механическую прочность и долговечность, несмотря на отсутствие какой-либо винтовой затяжки. Но уменьшенные варианты разъёмов, которые имеют тонкие пластмассовые выступы, довольно высоко выступающие из самой подложки гнезда, плохо реагируют на частое размыкание-смыкание и требуют более бережного использования.
Сигналы USB передаются с помощью двух проводов экранированного четырёхпроводного кабеля.
Обозначение |
Номер контакта |
Цвет провода |
VBUS |
1-й |
Красный |
D- |
2-й |
Белый |
D+ |
3-й |
Зелёный |
GND |
4-й |
Чёрный |
На рисунке: Размещение проводников
GND — цепь «корпуса», предназначенная для питания устройств периферии, а обозначение VBus — +5В также для всех цепей питания. Информация передается именно по проводам D+ и D- дифференциально, состояния 1 и 0 (в официальной терминологии документации diff1 и diff0 соответственно) считаются по разности потенциалов в линиях более 0,2В и если на какой-то из линий (D+ в случае diff1 и D- при diff0) потенциал относительно GND больше 2,8 В. Дифференциальный метод передачи является главным, но не единственным (к примеру, при инициализации устройство передает сообщение хосту о режиме, который поддерживает устройство (Low-Speed или Full-Speed), подтягиванием какой-то линии информации к V_BUS через резистор 1,5кОм (D+ для режимов Full-Speed и High-Speed и D- для режима Low-Speed).
На фото: Коннектор USB 3.0 тип А
На фото: Коннектор USB 3.0 тип B
На рисунке: Логотип USB 2.0 HighSpeed
Эта спецификация выпущена в апреле 2000-го.
USB2.0 отличается от USB1.1 непосредственно введением режима Hi-speed.
У устройств USB2.0 имеется три режима работы:
- Hi-speed, скорость 25—480 Мбит/с (устройства хранения информации, видеоустройства)
- Full-speed, скорость 0,5—12 Мбит/с (устройства видео и аудио)
- Low-speed, скорость 10—1500 Кбит/c (применяется для интерактивных устройств: джойстики, мыши, клавиатуры)