Vid pid что это
Перейти к содержимому

Vid pid что это

  • автор:

Standard USB identifiers

The set of identifiers generated for USB devices depends on whether the device is a single-interface device or a multiple-interface device.

Single-Interface USB Devices

When a new USB device is plugged in, the system-supplied USB hub driver composes the following device ID by using information extracted from the device’s device descriptor:

  • v(4) is the vendor code that the USB committee assigns to the vendor.
  • d(4) is the product code that the vendor assigns to the device.
  • r(4) is the revision code.

The hub driver extracts the vendor and product codes from the idVendor, idProduct, and bcdDevice fields of the device descriptor, respectively. These are 4-digit hexadecimal numbers.

An INF model section can also specify the following hardware ID:

and the following compatible IDs:

  • c(2) is the device class code taken from the device descriptor.
  • s(2) is the device subclass code.
  • p(2) is the protocol code.

The device class code, subclass code, and protocol code are determined by the bDeviceClass, bDeviceSubClass, and bDeviceProtocol fields of the device descriptor, respectively. These are 2-digit hexadecimal numbers.

Multiple-Interface USB Devices

Devices with multiple interfaces are called composite devices. Starting with Windows 2000, when a new USB composite device is plugged into a computer, the USB hub driver creates a physical device object (PDO) and notifies the operating system that its set of child devices has changed. After querying the hub driver for the hardware identifiers associated with the new PDO, the operating system searches the appropriate INF files to find a match for the identifiers. If it finds a match other than USB\COMPOSITE, it loads the driver indicated in the INF file. However, if no other match is found, the operating system uses the compatible ID USB\COMPOSITE, for which it loads the USB Generic Parent driver. The Generic Parent driver then creates a separate PDO and generates a separate set of hardware identifiers for each interface of the composite device.

Each interface has a device ID of the following form:

  • v(4) is the vendor code that the USB committee assigns to the vendor.
  • d(4) is the product code that the vendor assigns to the device.
  • z(2) is the interface number that is extracted from the bInterfaceNumber field of the corresponding interface descriptor.

An INF model section can also specify the following compatible IDs:

  • d(2) is the device class code taken from the device descriptor.
  • s(2) is the subclass code.
  • p(2) is the protocol code.

The device class code, subclass code, and protocol code are determined by the bInterfaceClass, bInterfaceSubClass, and bInterfaceProtocol fields of the interface descriptor, respectively. These are 2-digit hexadecimal numbers.

Collaborate with us on GitHub

The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.

Windows driver documentation

Восстанавливаем флешки

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

image

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

Ценность информации

Если информация, которая находится на умершей флешке не очень важная, то можно сразу приступать к следующим действиям. Если же для вас важнее содержимое, чем сама флешка, то для начала нужно попробовать восстановить информацию, либо с помощью бесплатной консольной утилиты PhotoRec, либо с помощью платной программы R-Studio. Попытаться восстановить информацию можно, как до перепрошивки контроллера, так и после.

Определяем контроллер

Для того чтобы помочь флешке, нужно определить модель и производителя контроллера (VID и PID). Для этого существуют разные способы и утилиты. Чтобы не быть голословным, рассмотрим пример восстановление работоспособности самой капризной, на мой взгляд, флешки Pretec i-Disk Secure:
image
После недолгой жизни она отказалась копировать, записывать информацию (ошибка ввода/вывода) и при попытке форматировать Windows недружелюбно сообщает, что это сделать не удается. Специальные утилиты для форматирования тоже отказываются работать с «больной». Кажется, произошел программный сбой контроллера и нужно срочно узнать, что именно за контроллер находится внутри этой горе-флешки.
Для этого запускаем утилиту CheckUDisk (в качестве аналогов программы, стоит упомянуть об утилитах UsbIDCheck, ChipGenius и USBDeview):
image

Поиск утилиты для прошивки контроллера

image

Итак, необходимую информацию мы получили, а именно: VID (4146), PID (ba65) и производитель (Pretec). По этой информации нам необходимо найти утилиту для перепрошивки именно этого типа контроллеров. В этом нам поможет замечательный ресурс flashboot.ru, а именно раздел базы данных флешек iFlash:

image

В соответствующих полях указываем полученные данные и, в появившихся результатах поиска, ищем похожую флешку:

Благодаря добросовестным пользователям, которые в свое время не поленились занести информацию о восстановленной флешке, мы имеем то, что нам нужно. Но если вы не нашли именно вашу модель флешки, это не страшно, так как в разных моделях может быть установлен один и тот же контроллер. Поэтому, главное, чтобы совпадал производитель, VID и PID устройства. Теперь нас интересует информация из столбцов «Контроллер» и «Утилита», ведь именно с помощью указанной утилиты мы попытаемся восстановить нашу флешку. В данном случае это UT165 1.65.28.1. Идем в раздел Файлы и указываем в качестве критерия поиска название утилиты целиком. И в этот раз нам везет (на этом сайте мне везло почти всегда) и мы можем заполучить искомую утилиту, да еще и с подробной инструкцией.

Перепрошивка контроллера

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

Отключаем флэш от компьютера.
1. Установливаем утилиту (при установке будет запрос о установке нового драйвера, выбираем AUTO-CHECK или оставляем значение по умолчанию).
2. Запускаем утилиту, подтверждаем установку драйверов, отмечаем в меню утилиты Driver > Uninstall drivers (чтобы при закрытии программы автоматически удалялись спец. драйвера).
3. Подключаем флэш, Windows предложит установить драйвер на новое устройство, нажать «автоматически», установится драйвер на устройство FABULK.
4. Нажать на «Enum» (F3), на порту появится устройство.
4.1. Если устройство не определилось, а контроллер точно UT165, запустите файл С:\Program Files\MDPT\Driver\InfUpdate.exe, в котором нужно прописать VID&PID вашей флэш (VID&PID можно узнать с помощью программы ChipGenius).
5. Если флэшка определилась, нажимаем пробел (Start). Запустится процесс форматирования. Смотрим в статус, должно стать ОК. Если процесс форматирования закончится с ошибкой, то программа выдаст её код. Для расшифровки кода ошибки смотрим в меню Help -> Error Code List.
6. Затем закрываем прогамму или деинсталируем (должны удалиться драйвера устройства FABULK, без удаления драйвера FABULK, Windows не увидит вашу флэш!), переподключаем флэш.
7. Форматируем стандартными средствами Windows.

Итог

От себя лишь добавлю, что иногда флешка не определяется, в этом случае нужно попробовать использовать другие USB-порты. Так же, вполне возможно, придется покопаться с настройками программы. То есть, хочу предупредить вас, что не все может пойти гладко и нужно проявлять терпение и целеустремленность. Часто случалось, что пять попыток перепрошить флешку оказывались тщетными, и только на шестой раз получалось, хотя ничего нового в этот шестой раз не делал.
В случае с флешкой Pretec i-Disk Secure, она у меня отформатировалась, хоть и потеряла 1-2 гигабайта объема, но это не страшно. Зато теперь, я знаю, что с этой флешкой, несмотря на ее крепкий внешний вид, нужно обходиться особенно аккуратно и вынимать из компьютера безопасно.
За свою короткую жизнь, я восстановил 32 флешки из 34-х, попадавших мне в руки. Те, которые восстановить не удалось это флешки со сгоревшим контроллером и после подключения к компьютеру они быстро нагревались. Если информация на флешке очень вам ценна и вы не пожалеете никаких денег за ее восстановление, делать это уже придется не в домашних условиях и не бесплатно.

Успехов и вам в воскрешении ваших флешек!

Введение в разработку USB периферии

Последние полгода я участвую в разработке первого в своей жизни USB-устройства и прикладного ПО к нему, и сейчас хочу поделиться своим пониманием того, как там всё работает: микроконтроллер, драйвер, прикладное ПО. Также затрону вопрос о выборе идентификаторов VID/PID. Список полезных ссылок для желающих более подробно разобраться в теме прилагается.

Контекст

Разрабатывается электронное устройство, которое будучи подключенным к датчику выполняет измерение микроперемещения и передаёт результат на ПК, где он выводится в удобной для оператора графической форме. Область применения измерительного прибора — машиностроение.

Немного о том, как всё работает

На схеме показаны основные действующие лица, участвующие в жизни разрабатываемого прибора.
Микроконтроллер — основной элемент устройства, который подаёт управляющие сигналы на датчик и принимает отклик, по которому вычисляет результат измерения. С помощью реализованного стека USB обмен данными с хостом сводится практически к работе с буферами чтения и записи. Ввиду того, что измерительный алгоритм не требует больших вычислительных мощностей и период одного измерения равен 100-150 мс выбран микроконтроллер at90usb162 (8 бит, 16 МГц, 16 кБ). В этом МК есть аппаратная поддержка USB, что значительно упрощает программную реализацию стека USB. В прочем, реализовывать стек и заниматься инициализацией МК мне не пришлось благодаря примеру USB Generic HID Implementation из сопроводительного пакета ПО. Из альтернатив фирменным примерам для AVR есть фреймворк LUFA (лицензия MIT) для AT90USBxxxx и ATMEGAxxUx и полностью программная реализация стека V-USB (GPL или коммерческая лицензия), позволяющая работать с AVR-овскими МК без аппаратной поддержки USB.

Немножко о аббревиатуре HID. Это класс USB-устройств, предназначенных для ввода данных человеком: клавиатура, мышь, игровые контроллеры. Предполагается, что у таких устройств небольшой объем передаваемой информации, как и у разрабатываемого устройства: пакеты по 8 байт с интервалом в 100-150 мс. Главное удобство работы с устройствами этого класса — наличие стандартного драйвера в ОС, что освобождает от написания своего.

Хостом (мастером, ведущим) в моём случае является ПК, а точнее встроенный в материнку контроллер USB. Согласно дескриптору (описанию) моего устройства хост опрашивает его на предмет новых посылок с периодом примерно в 20 мс. Прикладное ПО собирает принятые хостом данные, проводит небольшую обработку и рисует индикаторы, напоминающие автомобильные спидометры, на которых показываются измеряемые величины. Выводится список подключенных датчиков и их настройки, которые можно изменить: изменения будут переданы на устройство и сохранены в энергонезависимой памяти.

Одна из идей приложения — кроссплатформенность, поэтому оно разрабатывается во фреймворке Qt на С++, а обращения к ОС для считывания и передачи данных выполняются через библиотеку libusb. Последние несколько месяцев идёт активная разработка бэкенда libusb v1.0 для виновс, уже пишут о предрелизном статусе и, что более важно, у меня с ней вроде всё работает. Также есть порт libusb v0.1 для винды — LibUsb-Win32. Тема работы через WinAPI подробно и с примерами на Visual Basic и Visual C# раскрыта в книге USB Complete (о книге). Я WinAPI попробовал и мне не понравилось.

VID и PID
  • единовременно заплатить $2000 за vid
  • или стать членом USB-IF за $4000 в год.
  • Atmel. В faq перечислены правила, следуя которым можно использовать vid/pid чипа для своего устройства.
  • FTDI. Кроме использования встроенных vid/pid, компания предлагает отправить запрос на бесплатное выделение pid.
  • Microcip также предлагает отправить заявку на выделение pid.
  • Silicon Labs. Вот что пишут на форумах:
    • «SiLabs дает готовый пакет для генерации драйвера с вашим собственным описанием устройства, но vid/pid там будет от SiLabs (vid 10C4, pid EA60).»
    • «Если адаптер usb-com — от Силабса, то у них же можно бесплатно получить vid/pid. Мы уже два получили. Надо написать письмо на английском, в ответ они вышлют анкету. Ответы на анкету — письмом опять в Силабс, и через два дня присылают vid/pid. Но надо, конечно, подробно расписать проект (дата старта, объемы) и сайт свой указать (на *.com желательно).»
    • Чипы, которые реализуют usb-протокол исключительно аппаратно могут использовать встроенные в аппаратную часть vid и pid. Например, это касается чипов FTDI.
    Основные источники информации

    Отличное введение в USB (англ., р у с.) для разработчиков периферии – 30 страниц вместо многих сотен в стандарте. Более подробную информацию о разработке USB-периферии и драйверов к ней можно найти на сайте Lakeview Research, особенно хочу отметить книгу «USB Complete: The Developer’s Guide», Jan Axelson.

    Как узнать VID и PID флешки: обзор утилит

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

    Сбой в работе флеш-накопителя

    Для восстановления работоспособности флешки нужно разобраться с причиной неполадок

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

    Для чего нужны VID и PID

    Поскольку флешка — это электронное устройство, как и в любом оборудовании, у неё есть цифровой идентификатор. VID — это идентификатор производителя, а PID — устройства. Помимо них, может пригодиться и другая информация, — например, серийный номер. Каждый чип имеет своё значение. Очень важно точно знать эти параметры, иначе, если восстанавливать флешку неправильной утилитой, вы убьёте её окончательно. Поэтому, зная VID и PID, вы сможете с большой вероятностью совершить восстановление работоспособности носителя.

    Восстановление работы внешнего накопителя

    Как узнать VID и PID

    Через Диспетчер устройств

    Перейдите в «Пуск» — «Панель управления» — «Диспетчер устройств» — «Контролёры USB» — «Запоминающее устройство для USB». Во вкладке «Сведения» выберите пункт «ИД оборудования». В нижней строке вы увидите идентификаторы своей флешки.

    Обзор сведений о USB-флешке

    Утилита CheckUDisk

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

    Утилита Flash Drive Information Extractor

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

    С помощью приложения можно узнать такую информацию:

    • Потребляемый ток.
    • VID и PID.
    • Идентификатор флеш-памяти.
    • Физический объем.
    • Установленные чипы памяти.
    • Модель и производитель устройства.

    Приложение Flash Drive Information Extractor

    Разработчик рекомендует включать её за полминуты до подключения накопителя. Обращаем внимание, что с картами памяти и картридерами утилита работать не будет.

    Утилита USBDeview

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

    Утилита ChipGenius

    Продукт от китайских разработчиков. Определяет данные из контролёров флешек, кардридеров и MP3-плееров. Сможет определить такие показатели, как VID, PID, серийный номер, модель контролёра, производитель. Имеет отличную совместимость с огромным количеством накопителей. Имеется три версии программы, какая-то из них обязательно запустится.

    Диагностика с помощью утилиты ChipGenius

    Вскрыть корпус флешки

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

    Обзор информации о чипе

    Что делать дальше

    После того, как вы узнали всю необходимую информацию, воспользуйтесь этой страницей для поиска необходимой утилиты. В верхней части в соответствующие поля введите данные VID и PID и нажмите «Search». Перед вами откроется список результатов. В самой крайней левой колонке отображается производитель, во второй колонке — модель флешки, а в крайней правой — рекомендуемая утилита, которая поможет выполнить восстановление. Если вам повезёт, то вы сможете найти нужную вам программку. После завершения её работы ваша флешка будет как новая.

    Поиск устройства по данным VID и PID

    Заключение

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

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

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