Введение в разработку USB периферии / Хабрахабр. Последние полгода я участвую в разработке первого в своей жизни USB- устройства и прикладного ПО к нему, и сейчас хочу поделиться своим пониманием того, как там всё работает: микроконтроллер, драйвер, прикладное ПО.
Основные участники жизнедеятельности USB периферии. HID это только прослойка между основным драйвером USB контроллера . Написание программ для обмена данными с устройствами USB HID (библиотеки. XE C++ Builder и другими IDE, поддерживающими шаблоны на языке C++. Помогите,пожалуйста,найти драйвера на USB HID-совместимое утройство.у меня беспроводные мышь и. USB Мышь не определяется HID-совместимое устройство - Windows XP Вин ХР.
Полезный сайт по C++ Builder. Что такое USB HID report descriptor? USB-HID — довольно обширный класс устройств, поэтому прежде. STM32L1xx and STM32F3xx USB-FS-Device Driver» версии 4.0.0.
Также затрону вопрос о выборе идентификаторов VID/PID. Список полезных ссылок для желающих более подробно разобраться в теме прилагается. Контекст. Разрабатывается электронное устройство, которое будучи подключенным к датчику выполняет измерение микроперемещения и передаёт результат на ПК, где он выводится в удобной для оператора графической форме. Область применения измерительного прибора — машиностроение.



Немного о том, как всё работает. На схеме показаны основные действующие лица, участвующие в жизни разрабатываемого прибора. Микроконтроллер — основной элемент устройства, который подаёт управляющие сигналы на датчик и принимает отклик, по которому вычисляет результат измерения. С помощью реализованного стека USB обмен данными с хостом сводится практически к работе с буферами чтения и записи. Ввиду того, что измерительный алгоритм не требует больших вычислительных мощностей и период одного измерения равен 1.
МГц, 1. 6 к. Б). В этом МК есть аппаратная поддержка USB, что значительно упрощает программную реализацию стека USB. В прочем, реализовывать стек и заниматься инициализацией МК мне не пришлось благодаря примеру USB Generic HID Implementation из сопроводительного пакета ПО. Из альтернатив фирменным примерам для AVR есть фреймворк LUFA (лицензия MIT) для AT9. USBxxxx и ATMEGAxx. Ux и полностью программная реализация стека V- USB (GPL или коммерческая лицензия), позволяющая работать с AVR- овскими МК без аппаратной поддержки USB.
Немножко о аббревиатуре HID. Это класс USB- устройств, предназначенных для ввода данных человеком: клавиатура, мышь, игровые контроллеры.


Предполагается, что у таких устройств небольшой объем передаваемой информации, как и у разрабатываемого устройства: пакеты по 8 байт с интервалом в 1. Главное удобство работы с устройствами этого класса — наличие стандартного драйвера в ОС, что освобождает от написания своего.
Хостом (мастером, ведущим) в моём случае является ПК, а точнее встроенный в материнку контроллер USB. Согласно дескриптору (описанию) моего устройства хост опрашивает его на предмет новых посылок с периодом примерно в 2. Прикладное ПО собирает принятые хостом данные, проводит небольшую обработку и рисует индикаторы, напоминающие автомобильные спидометры, на которых показываются измеряемые величины. Выводится список подключенных датчиков и их настройки, которые можно изменить: изменения будут переданы на устройство и сохранены в энергонезависимой памяти. Одна из идей приложения — кроссплатформенность, поэтому оно разрабатывается во фреймворке Qt на С++, а обращения к ОС для считывания и передачи данных выполняются через библиотеку libusb.
Последние несколько месяцев идёт активная разработка бэкенда libusb v. Также есть порт libusb v. Lib. Usb- Win. 32.
Тема работы через Win. API подробно и с примерами на Visual Basic и Visual C# раскрыта в книге USB Complete (о книге).
Я Win. API попробовал и мне не понравилось. VID и PID. Выпуская своё USB устройство в свет компания должна назначить ему идентификатор производителя (vid – vendor id) и продукта (pid – product id, не путать с серийным номером). Формально, уникальность необходима для предотвращения конфликтов между драйверами устройств в ОС. Хотя у меня есть подозрение, что это скорее один из способов заработать для создателей стандарта, чем единственное возможное техническое решение.
Впрочем, осуждать их за стремление заработать на созданном ими же стандарте я, конечно, не буду. В faq перечислены правила, следуя которым можно использовать vid/pid чипа для своего устройства. Кроме использования встроенных vid/pid, компания предлагает отправить запрос на бесплатное выделение pid. Microcip также предлагает отправить заявку на выделение pid.
Silicon Labs. Вот что пишут на форумах: «Si. Labs дает готовый пакет для генерации драйвера с вашим собственным описанием устройства, но vid/pid там будет от Si.
Labs (vid 1. 0C4, pid EA6. Файл Настройки Мыши X7 здесь. Если адаптер usb- com — от Силабса, то у них же можно бесплатно получить vid/pid. Мы уже два получили.
Надо написать письмо на английском, в ответ они вышлют анкету. Ответы на анкету — письмом опять в Силабс, и через два дня присылают vid/pid. Но надо, конечно, подробно расписать проект (дата старта, объемы) и сайт свой указать (на *.
Чипы, которые реализуют usb- протокол исключительно аппаратно могут использовать встроенные в аппаратную часть vid и pid. Например, это касается чипов FTDI. Основные источники информации. Отличное введение в USB (англ., рус.) для разработчиков периферии – 3. Более подробную информацию о разработке USB- периферии и драйверов к ней можно найти на сайте Lakeview Research, особенно хочу отметить книгу «USB Complete: The Developer's Guide», Jan Axelson.