Дескриптор устройства что это

Интерфейс USB. Часть 4. Дескрипторы и классы

В зависимости от назначения, все usb устройства разделены по классам. Это деление довольно широкое и объединяет довольно большие группы устройств. Например, класс HID (human interface device) включает все устройства человеко-машинного взаимодействия (мышки, клавиатуры и тому подобное), класс Printer — все печатающие устройства и так далее. Зачем это деление нужно?

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

Наряду с классом, определить для чего предназначен девайс, как с ним общаться и какие дрова при этом использовать, помогает пара идентификаторов VID/PID, а также номер версии устройства.

VID — это уникальный идентификатор производителя (Vendor ID), а PID — это уникальный идентификатор продукта (Product ID). Каждый VID стоит денег и покупать его надо у некоммерческой международной организации, занимающейся разработкой USB, которая называется USB Implementers Forum или просто USB-IF. Покупая VID, производитель получает в своё распоряжение пачку PID-ов от 0x0000 до 0xFFFF и гарантии того, что серьёзные производители не будут делать свои продукты с такими же VID/PID (и писать под них свои дрова). То есть его оборудование будет идентифицироваться операционкой одназначно и она будет однозначно выбирать для работы с этим оборудованием нужные дрова.

Всю информацию о себе и отдельных своих частях (классы, VID/PID, интерфейсы, конечные точки …) устройства хранят в специальных структурах данных, называемых дескрипторами (от англ. description — описание).

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

Ниже описаны структуры и назначения различных стандартных дескрипторов:

Standard Device Descriptor (стандартный дескриптор устройства) — содержит информацию об устройстве вцелом и о количестве его возможных конфигураций. Такой дескриптор может быть в устройстве только один.

Структура стандартного дескриптора устройства
Смещение
(байт)
Название поляРазмер
(байт)
Описание
0bLength1Размер дескриптора в байтах (всегда 18)
1bDescriptorType1Тип дескриптора (всегда 1)
2bcdUSB2Номер версии USB в формате BCD
4bDeviceClass1Код класса
5bDeviceSubClass1Код подкласса (всегда 0)
6bDeviceProtocol1Код протокола (всегда 0)
7bMaxPacketSize01Максимальный размер пакета для нулевой конечной точки (64 для HS, 8 — для FS и LS)
8idVendor2Идентификатор производителя
10idProduct2Идентификатор продукта
12bcdDevice2Номер версии устройства в формате BCD
14iManufacturer1Индекс дескриптора строки, описывающей производителя
15iProduct1Индекс дескриптора строки, описывающей продукт
16iSerialNumber1Индекс дескриптора строки, содержащей серийный номер устройства
17bNumConfigurations1Количество возможных конфигураций устройства

Номер версии USB может принимать следующие значения:

Коды классов бывают следующими:

Если устройство поддерживает режимы HS и FS, то у него должно быть два разных дескриптора для этих режимов, один из которых — это стандартный дескриптор устройства, а другой — уточняющий дескриптор устройства.

Device Qualifier Descriptor (уточняющий дескриптор устройства) — содержит дополнительную информацию об устройстве, для его работы на другой скорости.

Структура уточняющего дескриптора устройства
Смещение
(байт)
Название поляРазмер
(байт)
Описание
0bLength1Размер дескриптора в байтах
1bDescriptorType1Тип дескриптора
2bcdUSB2Номер версии USB в формате BCD
4bDeviceClass1Код класса
5bDeviceSubClass1Код подкласса
6bDeviceProtocol1Код протокола
7bMaxPacketSize01Максимальный размер пакета для нулевой конечной точки (64 для HS, 8 — для FS и LS)
8bNumConfigurations1Количество дополнительных конфигураций устройства
9bReserved1Зарезервировано (всегда 0)

Standard Configuration Descriptor (стандартный дескриптор конфигурации) — содержит информацию об одной из возможных конфигураций устройства.

Структура стандартного дескриптора конфигурации
Смещение
(байт)
Название поляРазмер
(байт)
Описание
0bLength1Размер дескриптора в байтах
1bDescriptorType1Тип дескриптора
2wTotalLength2Общий объём данных (в байтах), возвращаемых для данной конфигурации
4bNumInterfaces1Количество интерфейсов для данной конфигурации
5bConfigurationValue1Идентификатор конфигурации (используется при запросе SetConfiguration для установки данной конфигурации)
6iConfiguration1Индекс дескриптора строки, описывающей данную конфигурацию
7bmAttributes1Характеристики конфигурации
8MaxPower1Максимальный потребляемый ток, делённый на 2

Битовая маска атрибутов содержит следующую информацию:

Standard Interface Descriptor (стандартный дескриптор интерфейса) — содержит информацию об одном из доступных в какой-либо конфигурации интерфейсов.

Структура стандартного дескриптора интерфейса
Смещение
(байт)
Название поляРазмер
(байт)
Описание
0bLength1Размер дескриптора в байтах
1bDescriptorType1Тип дескриптора
2bInterfaceNumber1Номер интерфейса в наборе, поддерживаемом в данной конфигурации (нумерация начинается с нуля)
3bAlternateSetting1Альтернативный номер интерфейса
4bNumEndpoints1Количество конечных точек данного интерфейса (нулевая конечная точка не учитывается, поскольку она общая для всех)
5bInterfaceClass1Код класса интерфейса
6bInterfaceSubClass1Код подкласса интерфейса
7bInterfaceProtocol1Код протокола
8iInterface1Индекс дескриптора строки, содержащей описание данного интерфейса

Standard Endpoint Descriptor (стандартный дескриптор конечной точки) — содержит информацию об одной из доступных для какого-либо интерфейса конечных точек.

Структура стандартного дескриптора конечной точки
Смещение
(байт)
Название поляРазмер
(байт)
Описание
0bLength1Размер дескриптора в байтах
1bDescriptorType1Тип дескриптора
2bEndpointAddress1Адрес конечной точки
3bmAttributes1Атрибуты конечной точки
4wMaxPacketSize2Максимальный размер пакета для конечной точки
6bInterval1Интервал опроса конечной точки в миллисекундах (используется при передаче данных по прерываниям, для остальных, кроме изохронных, — игнорируется, для изохронных всегда равен 1)

Битовая маска атрибутов содержит следующую информацию:

Unicode String Descriptor (дескриптор строки) — текст в формате Unicode. Строка не содержит нуль-терминатора, а её размер вычисляется как размер дескриптора минус два.

Структура стандартного дескриптора конечной точки
Смещение
(байт)
Название поляРазмер
(байт)
Описание
0bLength1Размер дескриптора в байтах
1bDescriptorType1Тип дескриптора
2bStringNСтрока в формате Unicode

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

При подключении USB-устройства, хост с помощью управляющих передач запрашивает у устройства список дескрипторов в следующем порядке:

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

Специфические дескрипторы мы рассмотрим подробнее когда будем разрабатывать какой-нибудь конкретный девайс, какого-нибудь определённого класса, а пока на этом всё.

Источник

Сбой запроса дескриптора USB устройства под управление Windows 8/10 — что делать?

Дескриптор устройства что это. Смотреть фото Дескриптор устройства что это. Смотреть картинку Дескриптор устройства что это. Картинка про Дескриптор устройства что это. Фото Дескриптор устройства что это

Сбой запроса дескриптора usb устройства — что делать?

Случается так, что при подключении USB компьютер выдаёт «Сбой запроса дескриптора usb устройства».

Что делать в таком случае и как это исправить? Наша статья поможет вам разобраться в этой проблеме.

Что такое «сбой запроса дескриптора usb»?

Читайте также: Ошибка «Windows не удается завершить форматирование»: причины возникновения ошибки и 5 способов ее устранения

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

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

К тому же, USB почти идеально синхронизируется с операционной системой Windows.

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

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

Но что делать, если распознавания не произошло, а компьютер выдал «Сбой дескриптора запроса USB»? Ведь бывает и так, что система упрямится и не хочет подключать, например, телефон, а он именно в этот момент катастрофически нужен.

Что это вообще за «сбой»?

«Сбой запроса дескриптора USB» — или, проще говоря, «код ошибки 43», или иногда «неизвестное USB-устройство», — это показатель того, что устройство не подключено через USB-порт надлежащим образом. Компьютер или ноутбук просто не в состоянии поймать его и распознать.

Чаще всего причиной может быть физическая проблема, то есть, к примеру, поврежден USB-порт или сам шнур подключаемого устройства. Так что компьютер просто не может «прочитать» ваш телефон или планшет.

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

Дескриптор устройства что это. Смотреть фото Дескриптор устройства что это. Смотреть картинку Дескриптор устройства что это. Картинка про Дескриптор устройства что это. Фото Дескриптор устройства что это

Как выглядит проблема

Основная причина «сбоя запроса дескриптора USB-устройства»

Читайте также: Ошибки при загрузке Windows (XP/7/8/10): Разбираемся с самыми частыми

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

Неполадки могут быть, в первую очередь, именно в месте или способе подключения.

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

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

Шнур можно купить в любом магазине сотовой связи, а порт можно сменить, если, к примеру, вы использовали долгое время один и тот же, но теперь просто включитесь в соседний или задний/боковой.

И эта проблема не зря является самой распространённой, так как порты часто дают сбой, а распознать устройство в таком случае Windows просто не сможет.

Но что делать, если при смене кабелей/портов проблема так и не исчезает?

Обновление драйвера USB при «Сбое запроса дескриптора».

Читайте также: ТОП-3 Способа как обновить драйвера на Windows (Виндовс) 10

Как ни странно, дело может быть далеко не только в физической нестабильности компьютера или кабеля.

Вот, например, вторая по распространённости причина – это устаревшие, а то и вовсе отсутствующие драйвера.

Для этого их необходимо переустановить/установить, и для этого существует два очень и очень простых способа. Итак, первый:

Но если этот путь вам не подходит, или все драйвера обновлять не нужно, то для обновления есть и второй вариант. Как же это делается:

Вот и всё! Всего лишь несколько движений мышью и пару щелчков на клавиатуре, и драйверы будут обновлены, а любое устройство можно будет подключить с помощью USB-кабель уже через несколько минут, Windows моментально его распознает.

Но бывает и так, что даже это не решает проблему, или драйверы уже были переустановлены раньше. Как решить этот вопрос в таком случае?

Дескриптор устройства что это. Смотреть фото Дескриптор устройства что это. Смотреть картинку Дескриптор устройства что это. Картинка про Дескриптор устройства что это. Фото Дескриптор устройства что это

Отключение режима энергосбережения

Читайте также: 3 способа как отключить Спящий режим на Виндовс

Если «Сбой запроса дескриптора USB-устройства» на вашем Windows так никуда и не подевался, то проблема может быть в самодеятельности компьютера или ноутбука.

То есть, он сам решает, отключать ему какой-либо из портов или нет, и когда именно ему это делать. Система старается сберечь энергопотребление, и для экономии энергии начинает творить такие вот чудеса.

Чтоб решить эту проблему, нужно сего лишь отключить режим, который позволяет вашему компьютеру самовольничать:

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

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

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

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

Чтоб проверить, в чём причина, нужно войти в «Свойства» одного из уже известных нам пунктов.

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

Дескриптор устройства что это. Смотреть фото Дескриптор устройства что это. Смотреть картинку Дескриптор устройства что это. Картинка про Дескриптор устройства что это. Фото Дескриптор устройства что это

Драйвера материнской платы

Читайте также: 5 Советов по настройке файла подкачки Windows (7/8/10)

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

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

Дело буквально пяти-десяти минут, но может решить массу проблем не только с USB, но и со многими другими неполадками.

Статическое электричество и обесточивание компьютера

Да, именно так. Очередная причина, по которой USB может быть указано как «Сбой дескриптора USB-устройства».

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

В таком случае, если уж все вышеперечисленные способы не помогли, поможет только обесточивание вашего компьютера или ноутбука.

Сделать это не сложнее, чем, к примеру, обновить драйвера. И займёт у вас всего лишь пару-тройку минут. Итак, чтоб обесточить компьютер, нужно:

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

Если всё сделано правильно, как рассказано в этой инструкции, то «Сбой дескриптора USB-устройства» должен исчезнуть. А вместо него появится обнаруженное и установленное, полностью готовое к работе, устройство.

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

Дескриптор устройства что это. Смотреть фото Дескриптор устройства что это. Смотреть картинку Дескриптор устройства что это. Картинка про Дескриптор устройства что это. Фото Дескриптор устройства что это

Вывод

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

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

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

Как определить, что делать при «Сбое дескриптора USB-устройства»? Пробовать! От переустановки драйвера и до полного отключения питания.

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

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

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

И тут уже не остаётся ничего, кроме как отнести ПК к мастеру, который и будет определять, в чём же дело.

Но, надеемся, хотя бы один из способов всё же пригодится и будет полезен, и «Неизвестное USB-устройство», будь у Вас Windows 8 или Windows 10, больше не потревожит вас своим появлением.

ВИДЕО: Windows 8, 10 — периодически отключается USB (решение проблемы)

Сбой запроса дескриптора USB устройства под управление Windows 8/10 — что делать?

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *