Устройство управляющее usb подключенное устройство это устройство
Под распиновкой USB разъема понимают порядок физического размещения конструктивных элементов в штекере с использованием универсальной последовательной шины (на англ. Universal Serial Bus) в её различных спецификациях. USB стал основным и самым популярным интерфейсом с момента своего создания 15 января 1996 г. Он был призван соединить с компьютером внешние периферийные устройства с помощью единого для всех алгоритма обмена информацией и заменить устаревшие: параллельный LTP, RS-232 и даже FireWire.
Цоколевка
Схема USB разъема зависит от спецификации этого интерфейса его типов. Они визуально отличаются и для того, чтобы их не перепутать при подключении к оборудованию, обратите внимание на следующие: А –для компьютера или хаб-концентратора; B – для периферийного устройства. Первые версии разъемов (до USB2.0) физически ничем не различались между собой и имели четыре контакта: 1,4 – для подачи плюса (+5 В) и минуса (Gnd) питающего напряжения; 2,3 – для дифференциальной передачи данных. Для наглядности приведем их изображения и цоколевку на рисунке выше.
Провода кабеля USB имеют разные цвета, на картинки выше вы можете посмотреть какой цвет используется для передачи сигналов а какой для питания У всех видов USB существуют дополнительные модификаций для применения в переносных мобильных устройствах. Это миниатюрные разъемы имеют в обозначении слова «mini» или«micro». Повсеместно мы встречаемся с ними в повседневной жизни и применяем для подзарядки сотовых телефонов и других мобильных гаджетов.
Характеристики USB
Параметры USB улучшались с ростом популярности у пользователей. Вместе с увеличением производительности компьютерной техники постепенно повышались и требования к качеству передачи информации. Для удовлетворения возрастающих потребностей разрабатывались обновленные спецификации USB от версии 1.1 до 3.2 Gen2x2.
USB1.1
USB1.1 массово использовался для оснащения компьютерных устройств до апреля 2000 г. Его базовые свойства приводили в восторг многих пользователей. Рассмотрим их поподробнее, для одного подключаемого устройства (если не указано иного):
- поддержка двух скоростей обмена информацией: высокая (до 12 Мбит/с) и низкая (до 1,5 Мбит/с);
- длинна кабеля: 3 м (неэкранированный), 5 м (экранированный);
- число периферийных устройств на одно подключение - до 127;
- напряжение питания – до +5 В;
- максимальный потребляемый ток – до 500 мА;
- одновременное использование двух скоростей передачи данных на одной шине – возможно.
В режиме низкой скорости обычно подключали: компьютерные мышки, клавиатуры, модемы, джойстики, в высокоскоростном: автоматические телефонные станции, лазерные и струйные принтеры, внешние жесткие диски, видеокамеры.
USB2.0
Наиболее распространенным, в настоящее время, из-за своей простоты и дешевизны является высокоскоростной 2.0. В этот стандарт, по сравнению с предшественником, был добавлен новый параметр «High-Speed». С ним скорость обмена данными увеличивалась до 480 Мбит/с, при этом другие характеристики не изменились. Для выделения этой особенности был придуман специальный логотип «Hi-Speed».
USB3.0
В 2008 году разработчики представили миру новую спецификацию - USB3.0. Скоростной режим у неё значительно вырос и составил 5 Гбит/с (SuperSpeed). Максимальный потребляемый ток для устройств повысился до 900 мА. Для повышения производительности в этот стандарт добавлено еще 5 контактов, которые размещены в разъеме отдельно. В последующем (с 31 июля 2013 г.) создали новые USB3.1: до 5 Гбит/с (SuperSpeed); 3.2 до 10 Гбит/с (SuperSpeed+).
На базе архитектуры USB3.0 в 2013 г. появились в продаже оптические кабели, способные передавать данные на скорости до 1 ГБ/с и расстоянии до 100 м. Однако подача питания до оконечных устройств по ним невозможна.
22 сентября 2017 г. на рынок выведена USB3.2 с заявленной пропускной способностью (с использованием двухполосной передачи через разъем Type-C) до 10 Гбит/с (SuperSpeed) и 20 Гбит/с (SuperSpeed+). Она стала последней версией в спецификации 3.x. Первые коммерческие продукты, с её применением, появились в России уже в начале 2020 г.
USB3.2 только начинают встречаться в продаже. Несмотря на это, уже с 2019 года в сети можно найти данные о спецификации нового интерфейса USB4. Для него заявленный предельный скоростным режимом составляет 40 Гбит/с.
Особенности
Несомненными преимуществами интерфейса, кроме возможности обменивается данными в едином формате, стали: возможность переподключения устройства, без перезагрузки компьютера (горячая замена); осуществление питания от одного USB-разъема сразу нескольких гаджетов. Эти свойства позволили значительно сократить число PCI-слотов на материнской плате, раннее использовавшихся для подключения внешнего периферийного оборудования.
У всех USB-интерфейсов сохраняется обратная совместимость с предыдущими поколениями спецификаций.
Разработчики
Интерфейс USB является плодом совместных усилий разработчиков многих компаний, на протяжении многих лет. На начальном этапе его созданием занималась некоммерческая компанией USB Implementers Forum. В дальнейшем развитии и продвижении в массы принимали участие такие известные брэнды: Compaq, IBM, Intel, Philips, NEC, DEC, Microsoft, US Robotics, Nortel и др.
Интерфейс USB, название которого переводится как «универсальная последовательная шина», успешно решил задачу, которая ставилась его создателями. Он практически вытеснил все морально устаревшие внешние интерфейсы для подключения периферии к компьютеру, возведя в ранг само собой разумеющихся такие функции, как «горячее» подключение, автоматическая индентификация и установка драйверов, простое расширение количества портов, подключение устройств по цепочке.
Благодаря USB мы имеем внешние сменные накопители, не требующие специальных приводов для своей работы, нам не требуются дополнительные устройства и ПО для обмена данными с любыми мультимедийными, коммуникационными устройствами. USB — по-настоящему универсальный и гибкий интерфейс, снявший большое количество ограничений и упростивший работу с компьютером для людей, слабо разбирающихся в технике.
Тем не менее на сегодня у USB имеются недостатки, и самым главным из них является низкая пропускная способность. Все мы знаем, что интерфейс USB версии 2.0 поддерживает режим работы High Speed, обеспечивающий в теории скорость обмена в 480 Мбит/с (около 60 МБ/с). Но из-за особенностей протокола обмена данными и архитектурных решений, примененных в USB, реализовать такую скорость на практике не представляется возможным. Максимум, что мы можем получить от USB 2.0, — это порядка 35—38 МБ/с.
Этой пропускной способности уже не хватает внешним накопителям, особенно настольным жестким дискам, которые сегодня способны выдавать данные с постоянной скоростью выше 150 МБ/с. Совершенно не хватает скорости USB 2.0 для внешних видеокарт, устанавливаемых в мониторах с подключением по USB: доступные разрешения приходится ограничивать, а передаваемые данные — тем или иным способом сжимать. Не хватает скорости для веб-камер, устройств видеозахвата, ТВ-тюнеров с поддержкой HD.
Интерфейс USB 3.0 получил статус официального в 2008 году, но на рынок реально пришел в конце 2009-го. Как и раньше, он был разработан корпорацией Intel при поддержке консорциума USB IF. При создании новой версии универсального интерфейса разработчики ставили перед собой сразу четыре противоречивые задачи:
1) повысить скорость подключения устройств как минимум в 10 раз;
2) обеспечить полную совместимость с USB 2.0 как для устройств, так и для хоста;
3) обеспечить экономичный расход энергии шиной и устройствами;
4) улучшить возможности питания устройств по интерфейсу USB.
Заметим, что задача снижения энергопотребления стала особенно актуальной с развитием мобильных технологий. Дело в том, что во многих ноутбуках подключение внутренних устройств осуществляется по интерфейсу USB, проложенному внутри корпуса. Это касается прежде всего веб-камер, кардридеров, модулей Bluetooth, некоторых модулей Wi-Fi. В то же время интерфейс USB изначально не был рассчитан на мобильные системы и имеет достаточно простую схему управления энергопотреблением. Кроме того, в силу особенностей архитектуры он интенсивно «нагружает» все каналы (трафик, по сути, является широковещательным, доводится до всех устройств).
Все вышеперечисленные задачи были успешно решены, но не совсем стандартным способом.
Скорость
Интерфейс USB 3.0 — это фактически новый интерфейс, сохраняющий совместимость с прежними вариантами реализации универсального интерфейса. Принцип кодирования и модуляции был позаимствован у современных последовательных интерфейсов PCI Express и Serial ATA, хотя протокол обмена данными совершенно другой. Архитектурно USB 3.0 представляет собой все тот же хост-центрический интерфейс с физической топологией «многоуровневая звезда», но с логической топологией «шина» (все устройства равноудалены от центра и нумеруются последовательно). Для оптимизации прохождения трафика введена маршрутизация, которую осуществляют хабы (включая корневой хаб, объединенный с контроллером).
Пропускная способность USB 3.0 первой версии составляет 5 Гбит/с (как у шины PCI Express 2.0), или около 500 МБ/с (из-за применения кодирования 8b/10b каждый байт представлен 10 битами). Однако это еще не предел, и разработчики заявляют о возможности безболезненного масштабирования скорости в несколько раз. При этом больше не потребуется пересматривать основы интерфейса, как это было сделано с USB 3.0.
Для реализации требуемой пропускной способности не удалось использовать прежний электрический интерфейс, и USB 3.0 фактически представляет собой два различных интерфейса. Разъемы и кабели содержат электрические линии как старого USB 1.0/2.0, так и нового USB 3.0. Соответственно, новый интерфейс (режим работы) получил название SuperSpeed, или сокращенно SS. При подключении устройств на стадии согласования скоростей выбирается один из двух интерфейсов. При этом в режиме SuperSpeed из прежнего интерфейса USB 2.0 используется только питание.
Для обеспечения нормальной работы схемы «двойного» интерфейса пришлось придумать особые разъемы, которые, с одной стороны, были бы полностью совместимы с портами USB 1.0/2.0, а с другой — обеспечивали возможность использования нового интерфейса.
Кабель USB 3.0 содержит как неэкранированные линии старого интерфейса, так и экранированные — нового. В первой версии интерфейса линии по-прежнему электрические, однако стандарт допускает в перспективе их замену на оптические, с добавлением нового вида разъемов.
Порты USB 3.0
Как известно, в интерфейсе USB предусмотрено два вида портов — Type A и Type B. Это не прихоть разработчиков, а особенность реализации хост-центрического интерфейса, в котором имеется четкая иерархия: хост (вычислительное ядро) полностью управляет всеми устройствами, подключенными к нему. Поскольку одно и то же физическое устройство может выполнять функции и хоста, и периферийного устройства, порты пришлось сделать разными во избежание путаницы.
Порт типа А (нисходящий) принадлежит хосту, к нему подключаются периферийные устройства. В стандарте USB 3.0 дополнительные контакты нового интерфейса реализованы за счет варьирования глубины их расположения в разъеме.
Внешне разъем выглядит почти так же (производители могут маркировать их цветом, обычно синим), но в его глубине можно обнаружить новые контактные площадки. Порт типа A допускает установку как старого кабеля, так и нового, с линиями SuperSpeed.
Порт типа B (восходящий) располагается на периферийном устройстве, для которого по каким-либо соображениям желательно использовать отсоединяемый, а не фиксированный кабель. В данном случае дополнительные контакты расположены рядом с основными, с изменением формы розетки и вилки.
Тем не менее совместимость со старыми разъемами и кабелями сохранилась.
Кроме того, в стандарте USB 3.0 появилась возможность подачи дополнительного питания на устройство (до 5 Вт), с одновременным увеличением мощности, подаваемой по основным линиям питания (до 4,5 Вт). Для этих целей разработан особый вид разъема — Powered Type A/Type B.
Для компактных и портативных устройств создан разъем Micro USB 3.0, который представляет собой фактически два разъема рядом (из-за высокой плотности основной разъем не удалось дооснастить новыми контактами). Также сохранилась функция USB OTG, благодаря которой через один разъем можно подключать устройство и как хост, и как периферию.
Энергопотребление
Для снижения энергопотребления проделана большая работа, которая заключается в изменении самих принципов взаимодействия хоста с устройствами (устройства с устройствами по-прежнему работать не могут). Каждая из линий подключения устройств может находиться в одном из 4 состояний, характеризующихся различным энергопотреблением.
Пересылка всего трафика через все линии и порты, сделанная в USB 1.0/2.0 для упрощения логики работы хабов, отменена — хабы осуществляют маршрутизацию, посылая пакеты только в те порты, которые необходимы для достижения конкретного устройства. Кроме того, хаб с упреждением информирует каждое устройство об ожидаемой нагрузке, а значит, устройство способно самостоятельно управлять линией, по которой оно подключено к хабу. Динамически меняя состояние линий, вся шина может существенно сэкономить энергию, которая в данном случае не расходуется зря.
Интересно также отметить, что энергию в USB 3.0 могут экономить не только устройства, но и сам хост. Каждое устройство обязано предоставить информацию о том, какую минимальную скорость обслуживания оно способно «выдержать» без ущерба для функционирования. На основе этих данных хост (читай — ноутбук или портативный плеер) может перейти в максимально «глубокое» состояние энергопотребления — понизить частоту процессора, например. Конечно, если среди подключенных устройств встретятся модели, не поддерживающие USB 3.0, описанная схема работать не будет.
Итоги
Таким образом, мы можем подвести промежуточные итоги.
1) USB 3.0 — это совершенно новый интерфейс, реализованный параллельно со старым.
2) Совместимость с USB 2.0 сохраняется в полном объеме.
3) Для работы USB 3.0 требуется новый кабель, содержащий новые разъемы и дополнительные линии. По стоимости он будет существенно отличаться от старого.
4) Хабы USB 3.0 реализуют более сложную логику, а потому будут ощутимо дороже.
5) Помимо достижения более высокой скорости (в 10,4 раза выше, чем у USB 2.0), новый интерфейс обеспечит более экономный расход энергии, что актуально для мобильных систем.
Периферийное устройство с интерфейсом USB можно разделить на две части — интерфейсную и функциональную (см. рисунок ниже). Физически они могут объединяться и на одной микросхеме, но логически их функции четко разделимы.
Все протокольные и сигнальные функции USB обеспечивает блок последовательного интерфейса, SIE (Serial Interface Engine). В сторону USB блок SIE «смотрит» своим портом USB (комплектом приемопередатчиков). Блок SIE занимается последовательным приемом и передачей пакетов, выполняя подсчеты и проверки CRC, вставку битов (bit stuffing) при передаче и их удаление при приеме, кодирование NRZI, проверку форматов, отработку подтверждений и отслеживание корректной последовательности пакетов. С функциональной частью устройства блок SIE обменивается только «чистыми» пользовательскими данными. SIE сигнализирует о приходе очередного пакета к той или иной конечной точке, принимает от функциональной части данные к выдаче (вводу по запросу хоста), сообщает о выполнении этой операции. Количество и тип поддерживаемых конечных точек зависят от реализации SIE. Самые сложные в плане поддержки — точки типа Control, по этой причине многие устройства USB поддерживают лишь одну (обязательную) управляющую точку — EP0. С каждой поддерживаемой точкой в SIE связана буферная память, объем которой должен соответствовать максимальному размеру пакета, заявленному в дескрипторе точки. Блок SIE ведает и всеми дескрипторами (они размещаются в его локальной памяти) — сообщает их хосту по запросам, устанавливает конфигурацию и альтернативные установки. SIE отрабатывает и все запросы хоста, стандартные и специфические (управляет конечными точками, организует засыпание и пробуждение).
Устройство USB должно поддерживать возможность работы на полной, низкой или высокой скорости, в зависимости от требуемой скорости передачи данных и исходя из технико-экономических соображений. Низкоскоростные устройства (и их кабели) обходятся несколько дешевле, но их широкое использование невыгодно с точки зрения производительности шины в целом. Высокоскоростной порт USB требуется только при довольно высокой производительности функциональной части устройства, его применение несколько удорожает устройство (правда, на фоне стоимости функциональной части это не так существенно).
Как правило, периферийные устройства с USB имеют встроенный микроконтроллер, который и является источником и приемником информации, посылаемой через конечные точки. Микроконтроллер должен подчиняться указаниям от шины — выполнять сброс и приостановку по сигналам от порта, отрабатывать установки конфигурации и интерфейсов. Запросы управления стандартными свойствами (остановка и разблокирование точек, разрешение посылки удаленного пробуждения) доходят до контроллера опосредованно — в первую очередь их отрабатывает SIE.
Интерфейс между SIE и микроконтроллером обеспечивает передачу данных с необходимыми сигналами управления, а также генерацию прерываний (или иную сигнализацию) для микроконтроллера по таким событиям, как приход пакета, освобождение буфера передающей EP, срабатывание меток времени (для изохронных точек), неисправимые протокольные ошибки, вызывающие блокировку конечных точек.
Состояния устройств
Устройство USB должно поддерживать все состояния, определенные спецификацией:
- «Подключено» (Attached State) — устройство подключено к хабу, но питание от шины не подано, устройство не может никак себя проявить и не управляемо хостом. Если питание от шины не используется (даже для SIE), то это состояние отсутствует;
- «Запитано» (Powered State) — устройство подключено к порту и ему подано питание, устройство может заявить о себе, подтягивая резистором линию D+ или D- к шине питания. Это промежуточная ступенька к «дежурному» состоянию;
- «Дежурное» состояние (Default State) по включению питания, подключению к порту или по сбросу от порта: устройство имеет нулевой адрес (USB Default Address) и отзывается только на обращения к EP0, потребляет от шины не более 100 мА;
- «Адресовано» (Addressed State) — запросом Set_Address ему назначен уникальный адрес на шине (1–127), но отзывается только на обращения к EP0, потребляет от шины не более 100 мА;
- «Сконфигурировано» (Configured State) — запросом Set_Configuration выбрана конфигурация, устройство отзывается на обращения ко всем точкам, описанным в данной конфигурации, и может потреблять от шины заявленный ток. При необходимости можно изменять альтернативные установки интерфесов запросом Set_Interface;
- «Приостановлено» (Suspended Mode) — устройство подключено, запитано (хотя бы по минимуму), но приостановлено (прекращение активности порта, к которому оно подключено). Ему до приостановки мог быть назначен адрес и установлена конфигурация, однако хост не может использовать функции этого устройства, пока не будет выполнено возобновление (resume), которое вернет устройство в состояние, бывшее до приостановки. В этом состоянии устройство может подать сигнал удаленного пробуждения, если оно обладает этой возможностью и хост разрешил ее использовать.
USB поддерживает динамическое конфигурирование, отслеживая подключение и отключение устройств. USB позволяет идентифицировать подключаемые устройства, определять их потребности в ресурсах (полоса пропускания, питание от шины), выбирать нужную конфигурацию и управлять устройствами, что обеспечивает полную поддержку PnP. Для этих целей определены «правила поведения» подключаемых устройств, система дескрипторов и стандартные управляющие запросы к устройствам. Ключевую роль в системе PnP играют хабы, позволяющие селективно управлять работой подсоединенных к ним сегментов шины, что требуется на этапе конфигурирования. В процессе работы шины постоянно идет процесс нумерации (enumeration) устройств, отслеживающий изменения физической топологии.
Автоматическое конфигурирование
Если новое устройство является хабом, хост, сконфигурировав его, таким же способом определяет подключенные к нему устройства, идентифицирует их, назначает адреса и конфигурирует. Если новое устройство является функцией, уведомление о подключении передается заинтересованному ПО и, при необходимости, для него загружаются клиентские драйверы.
Когда устройство отключается, хаб автоматически запрещает соответствующий порт и сообщает об отключении хосту, который удаляет сведения о данном устройстве из всех рабочих структур данных (но не из реестра Windows!). Если отключается устройство-функция, уведомление посылается заинтересованному ПО. Если отключается хаб, процесс удаления выполняется для всех подключенных к нему устройств.
Идентификация и классификация устройств
В дескрипторе устройства имеются 2-байтные поля, идентифицирующие устройство в целом:
- idVendor — идентификатор производителя (VID — Vendor Id), назначаемый USB-IF;
- idProduct и bcdDevice — идентификатор продукта (PID — Product Id) и его версии (DID — Device Id), определяются производителем.
Кроме того, здесь могут присутствовать ссылки на строковые дескрипторы, в которых содержатся текстовые названия изготовителя и устройства, а также его серийный номер. Эти текстовые описания имеют произвольную длину и формат (но кодируются в UNICODE), на эти строковые дескрипторы указывают индексы в полях iManufacturer, iProduct и iSerialNumber.
Коды класса, подкласса и протокола присутствуют не только в дескрипторах интерфейсов, но и в дескрипторе устройства. Здесь нулевой код класса означает, что устройство состоит из набора независимых интерфейсов, каждому из которых может быть назначен свой код класса, подкласса и протокола. При этом и подкласс и протокол устройства тоже нулевые (то есть устройство в целом стандартно охарактеризовать нельзя). «Штатный» код класса устройства означает, что его интерфейсы не являются независимыми (агрегированные интерфейсы). При этом код подкласса (тоже от USB-IF) является дополнительным квалификатором. «Штатный» код протокола означает, что устройство поддерживает все протоколы, требуемые для устройства данного класса и подкласса. Нулевой код протокола устройства означает, что протоколы могут быть определены только для отдельных интерфейсов.
Классификация устройств USB относится не к потребительским функциям, выполняемым устройствами, а к способам коммуникаций между хостом и устройствами. Классификация позволяет обобщать характеристики интерфейсов, при этом, как правило, код протокола задает состав, тип конечных точек и правила их использования, а подкласс определяет форматы данных, передаваемых через те или иные конечные точки. Классификация позволяет сократить многообразие (разнотипность) драйверов, требуемых для различных устройств, — драйвер может абстрагироваться от конкретного устройства-функции, которое он обслуживает. Операционная система связывает имеющиеся в ее распоряжении клиентские драйверы с конкретными интерфейсами устройств, используя коды классов/подклассов и протокола, а также идентификаторы производителя, продукта и его версии.
Таблица. Некоторые стандартные классы и протоколы устройств
Дескрипторы
В USB принята иерархия дескрипторов, описывающих все свойства устройств. Стандартные дескрипторы USB начинаются с байта длины дескриптора, за которым следует байт, определяющий тип дескриптора.
- дескриптор устройства, Device Descriptor (тип 1), описывающий устройство в целом (версия USB, класс, производитель, модель, протокол, число возможных конфигураций). Для HS-устройств общее описание дополняется дескриптором-квалификатором, Device Qualfier Descriptor (тип 6), в котором указывается, сколько у устройства будет конфигураций при работе на иной скорости (дескриптор устройства относится к той скорости, на которой устройство работает в данный момент);
- дескрипторы конфигурации, Configuration Descriptor, (тип 2), описывающие число интерфейсов, атрибуты (способ питания и возможность генерации удаленного пробуждения) и мощность, потребляемую от шины в каждой конфигурации для текущей скорости. Для HS-устройств имеются и дескрипторы конфигураций для иной скорости, Other Speed Configuration Descriptor (тип 7), описывающие те же параметры с тем же форматом;
- дескрипторы интерфейсов, Interface Descriptor (тип 4), для каждого из интерфейсов, доступных в указанной конфигурации, сообщает число прикладных конечных точек, класс и протокол интерфейса. В конфигурации может быть несколько альтернативных вариантов (alternate settings) данного интерфейса, каждому из которых соответствует свой дескриптор интерфейса. Первичным интерфейсом (primary interface) называют нулевой альтернативный вариант (alternate settings = 0);
- дескрипторы конечных точек, Endpoint Descriptor (тип 5) определяют номер и направление точки, атрибуты (тип передач), максимальный размер поля данных и интервал обслуживания (для точек периодических передач);
- строковые дескрипторы, String Descriptor (тип 3) — необязательные текстовые строки информации, которые могут отображаться хостом. Ссылки (однобайтные индексы) на строковые дескрипторы имеются в дескрипторах устройства, конфигураций и интерфейсов. Нулевое значение индекса означает отсутствие строкового дескриптора для данной структуры. Строки состоят из 2-байтных символов UNICODE, явного терминатора строки нет — конец определяется по длине, заявленной в заголовке дескриптора. Строковые дескрипторы могут присутствовать в устройствах на разных языках; для выбора нужного дескриптора в запросе кроме индекса указывается и 16-битный идентификатор языка (LanguageID). Строковый дескриптор, вызываемый по нулевому индексу (с любым кодом языка), в своем теле содержит список поддерживаемых идентификаторов языка. Значения LanguageID для некоторых языков:
— русский — 0419h;
— английский (США) — 0409h;
— английский (Великобритания) — 0809h;
— белорусский — 0423h;
— украинский — 0422h; - специфические дескрипторы, Class-Specific Descriptor, могут использоваться в устройствах определенных классов. Так, например, для хабов имеется дескриптор интерфейса питания, Interface Power (тип 8). Специфические дескрипторы также должны начинаться с поля длины и типа.
Дескрипторы от устройств хост получает по запросам Get_Descriptor, указав тип дескриптора. Таким способом можно явно запросить дескриптор устройства (и квалификатор), дескриптор конфигурации (для текущей и иной скорости) и дескриптор строки (а также дескриптор OTG). Дескрипторы интерфейсов и конечных точек по отдельности не адресуются, они пристраиваются «хвостом» к дескриптору конфигурации. Возможность чтения всех имеющихся дескрипторов обязательна для всех устройств, дополнительно может поддерживаться и запись дескрипторов (запросом Set_Descriptor). Положительный ответ устройства на транзакцию записи дескриптора означает, что он принят и устройство будет подчиниться его свойствам.
По запросу дескриптора конфигурации устройство выдает целую цепочку дескрипторов, начинающуюся с собственно дескриптора конфигурации. За ней для каждого доступного интерфейса следует дескриптор первичного интерфейса и его конечных точек, за которым следуют все альтернативные варианты со своими конечными точками. Общая длина всего описания конфигурации заранее не известна, она указывается в поле wTotalLength дескриптора конфигурации. Так что для получения конфигурации сначала выполняют запрос, указав длину собственно дескриптора конфигурации (9, хотя достаточно и 4), а потом его повторяют с длиной, прочитанной из данного поля.
В приведенных ниже таблицах и описаниях перед мнемоническими названиями полей префикс b означает байт, w — двухбайтное слово, bm — битовую карту, i — целое число (однобайтный индекс), bcd — неупакованный BCD-формат, id — идентификатор (не число). Отметим, что в пакетах слово передается младшим байтом вперед, так что обращение к слову, размещенному в памяти хоста, будет естественным для процессоров x86 (младший байт по меньшему адресу) и не требует перестановки байтов.
Вроде мы слышали, что USB 3.0 — это круче, чем USB 2.0. Но чем именно — знают не все. А тут еще появляются какие-то форматы Gen 1, Gen 2, маркировки Superspeed. Разбираемся, что значат все эти маркировки и чем они отличаются друг от друга. Спойлер: версий USB всего четыре.
USB 2.0
Когда-то было слово только USB 1.0. Сейчас это уже практически архаика, которую даже на старых устройствах почти не встретить. Еще 20 лет назад на смену первопроходцу USB 1.0 пришел улучшенный USB 2.0. Как и первая версия, эта спецификация использует два вида проводов. По витой паре идет передача данных, а по второму типу провода — питание устройства, от которого и идет передача информации. Но такой тип подключения подходил только для устройств с малым потреблением тока. Для принтеров и другой офисной техники использовались свои блоки питания.
USB версии 2.0 могут работать в трех режимах:
- Low-speed, 10–1500 Кбит/c (клавиатуры, геймпады, мыши)
- Full-speed, 0,5–12 Мбит/с (аудио и видеоустройства)
- High-speed, 25–480 Мбит/с (видеоустройства, устройства для хранения данных)
USB 3.0
Стандарт USB 3.0 появился в 2008 году и до сих пор используется во многих устройствах. Скорость передачи данных выросла с 480 Мбит/с до 5 Гбит/с. Помимо скорости передачи данных, USB 3.0 отличается от версии 2.0 и силой тока. В отличие от более ранней версии, которая выдавала 500 мА, USB 3.0 способен отдавать до 4.5 Вт (5 В, 900 мА).
Новое поколение USB обратно совместима с предыдущими версиями. То есть USB 3.0 может работать и с разъемами USB 2.0 и даже 1.1. Но в этом случае буду ограничения по скорости. Подключив USB 3.0 к устройству с USB 2.0 скорость, вы получите не больше 480 Мбит/с — стандарт для версии 2.0. И наоборот, кабель 2.0 не станет более скоростным, если подключить его в устройство с USB 3.0. Это связано с количеством проводов, используемых в конкретной технологии. В версии USB 2.0 всего 4 провода, тогда как у USB 3.0 их 8.
Если вы хотите получить скорость передачи, заявленную стандартом USB 3.0, оба устройства и кабель должны быть именно версии 3.0.
USB 3.1
В 2013 году появляется версия USB 3.1 с максимальной заявленной скорость передачи данных до 10 Гбит/с, выходной мощностью до 100 Вт (20 В, 5 А). С появлением USB 3.1 произошла революция в маркировках всех стандартов. Но с ней мы разберемся чуть позже. А пока запомним главное: пропускная способность USB 3.1 увеличилась вдвое по сравнению с версией 3.0. И одновременно с обновленным стандартом появился и принципиально новый разъем — USB type-С. Он навсегда решил проблему неправильного подключения кабеля, так как стал симметричным и универсальным, и теперь все равно, какой стороной подключать провод к устройству.
USB 3.2
В 2017 году появилась информация о новой версии — USB 3.2. Она получила сразу два канала (больше проводов богу проводов) по 10 Гбит/с в каждую сторону и суммарную скорость в 20 Гбит/с. Стандарт USB 3.2 также обратно совместим с режимами USB 3.1, 3.0 и ниже. Поддерживается типом подключения USB-C на более современных гаджетах.
Типы разъемов
Версий разъемов USB несколько, и для каждого есть свое предназначение.
- type-А — клавиатуры, флешки, мышии т. п.
- type-B — офисная техника (принтеры, сканеры) и т. п.
- mini type-B — кардридеры, модемы, цифровые камеры и т. п.
- micro type-B — была наиболее распространенной в последние годы . Большинство смартфонов использовали именно этот тип подключения, пока не появился type-C. До сих пор остается довольно актуальным.
- type-C — наиболее актуальный и перспективный разъем, полностью симметричный и двухсторонний. Появился одновременно со стандартом USB 3.1 и актуален для более поздних версий стандартов USB.
Superspeed, Gen или как разобраться в маркировках стандартов USB
Как только в типах стандартов появилась USB 3.1, привычная цифровая маркировка изменилась и здорово запуталась. Вполне понятный и простой USB 3.0 автоматически превратился в USB 3.1 Gen 1 и ему была присвоена маркировка SuperSpeed. А непосредственно сам USB 3.1 стал называться USB 3.1 Gen 2 с маркировкой SuperSpeed +.
Но и это уже потеряло свою актуальность с выходом стандарта USB 3.2. Он получил название USB 3.2 Gen 2×2 и маркировку SuperSpeed ++. В итоге маркировка всех предшествующих стандартов опять меняется. Теперь USB 3.0, она же USB 3.1 Gen 1, превращается задним числом в USB 3.2 Gen 1 с прежней маркировкой SuperSpeed. А USB 3.1, ставшая USB 3.1 Gen 2, тоже поднялась до USB 3.2 Gen 2. При этом конструктивно все стандарты остались прежними — изменяются только названия. Если вы уже запутались во всех этих цифрах и маркировках, таблица ниже поможет внести ясность в актуальных названиях.
Если еще более кратко, то сейчас опознать стандарты USB можно так:
USB 3.0 — это USB 3.2 Gen 1, он же Superspeed
USB 3.1 — это USB 3.2 Gen 2, он же Superspeed+
USB 3.2 — это USB 3.2 Gen 2x2, он же Superspeed++
Читайте также: