Hid совместимое устройство управления что это
Перейти к содержимому

Hid совместимое устройство управления что это

  • автор:

Hid совместимое устройство управления что это

Приобщение к миру USB-устройств на примере микроконтроллеров от Silicon Laboratories

Устройства от Silicon Laboratories не пользуются широкой популярностью в любительских кругах, им далеко до таких флагманов, как Atmel. Однако у них есть и вполне доступные простому смертному микроконтроллеры основных линеек в корпусе TQFP, и стартовые комплекты USB ToolStick (о чем совсем недавно упоминалось на хабре). Я сам начал свое знакомство с микропроцессорной техникой, работая с «силабсами», и вполне успешно.
В данной статье я расскажу, каким образом можно организовать связь компьютера с МК, используя USB-интерфейс, и как Silabs попытались сделать это простым для разработчика.
В качестве испытуемого будем использовать плату С8051F320DK, с микроконтроллером соответственно F32x серии, поддерживающей USB аппаратно, и Keil’овскую среду разработки uVision4.

Перед тем, как начинать копать в сторону реализации связи по USB необходимо определиться с некоторыми базовыми аспектами протокола: какое место занимает устройство в топологии (хост или ведомое устройство) и какой характер будет иметь информация, передаваемая по интерфейсу.

  • Управляющие посылки (control transfers) – используются для конфигурирования устройств во время их подключения и для управления устройствами в процессе работы. Протокол обеспечивает гарантированную доставку данных.
  • Передачи массивов данных (bulk data transfers) – это передачи без каких-либо обязательств по задержке доставки и скорости передачи. Передачи массивов могут занимать всю полосу пропускания шины, свободную от передач других типов. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Доставка гарантированная — при случайной ошибке выполняется повтор. Передачи массивов уместны для обмена данными с принтерами, сканерами, устройствами хранения и т. п.
  • Прерывания (interrupt transfers) – короткие передачи, которые имеют спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство.
    Предел времени обслуживания устанавливается в диапазоне 10-255 мс для
    низкой, 1-255 мс для полной скорости, на высокой скорости можно заказать и 125 мкс. При случайных ошибках обмена выполняется повтор. Прерывания используются, например, при вводе символов с клавиатуры или для передачи сообщения о перемещении мыши.
  • Изохронные передачи (isochronous transfers) – непрерывные передачи в реальном времени, занимающие предварительно согласованную часть пропускной способности шины с гарантированным временем задержки доставки. Позволяют на полной скорости организовать канал с полосой 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно заполнить и менее емкими каналами). На высокой скорости конечная точка может получить канал до 24 Мбайт/с (192 Мбит/с). В случае обнаружения ошибки изохронные данные не повторяются — недействительные пакеты игнорируются. Изохронные передачи нужны для потоковых устройств: видеокамер, цифровых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD).
Создание USB совместимого HID-устройства типа джойстик
  • простота реализации;
  • компактный код;
  • поддержка Windows (не нужны дополнительные драйвера).
  1. конфигурацию дескриптора HID-устройства;
  2. процедуры передачи данных;
  3. дескриптор имени HID-устройства.
Начинаем с дескриптора устройства
  • диапазон значений, в котором будет действовать Throttle – LOGICAL_MINIMUM(0) и LOGICAL_MAXIMUM(255),
  • задаем размер этого диапазона(один байт) – REPORT_SIZE (8) и
  • количество органов управления данного типа – REPORT_COUNT (1).
  • диапазон значений — LOGICAL_MINIMUM(0) и LOGICAL_MAXIMUM(1);
  • размер диапазона(один бит) — REPORT_SIZE (1);
  • количество кнопок больше одной, поэтому тут уже необходимо использовать поле байтовой длины, значит REPORT_COUNT (8);

Для упрощения задачи составления дескриптора можно воспользоваться программой, лежащей на www.usb.org (HID Descriptor Tool). В комплекте с программой предоставляются примеры конфигураций некоторых HID-устройств, которые можно корректировать под свою задачу или создавать собственное HID-устройство.
На этом описание джойстика заканчивается и нужно подготовить данные для передачи в PC.

Процедуры передачи данных

Находим в примере следующий код:
void IN_Report(void)

В этой процедуре идет составление отправляемого пакета, который после через хитрый указатель (на самом деле это просто структура из указателя и его длины) и передается нашим устройством. Главное аккуратно составить пакет, о чем нам и намекает комментарий, а дальше уже с ним сделают все без нашего участия.
Теперь расскажу о том, как и откуда мы берем переменные VECTOR и BUTTONS (обе, к слову, имеют тип unsigned char размером в байт).
Глобальной переменной VECTOR присваиваются значения с АЦП во время возникновения прерывания от него:
void ADC_Conver_ISR(void) interrupt 10

Глобальная переменная BUTTONS аналогично изменяет значение в зависимости от нажатия кнопок. Кнопки опрашиваются по прерыванию от таймера. Таймер настраивайте в соответствии с личными предпочтениями.
void Timer2_ISR (void) interrupt 5

else

if ((P2 & Sw2)==0) // Проверка нажатия кнопки #2

else

TF2H = 0; // Очистка флага прерываний Timer2
>

Дескриптор имени HID-устройства

Напоследок можем скорректировать строковые данные, чтобы устройство имело то название, какое мы хотим (в моем примере «JOYSTICK-HABR»).
Ищем строковый дескриптор String2Desc, переписываем
#define STR2LEN sizeof («JOYSTICK-HABR») * 2

Идентификация HID-устройства

После компиляции проекта и программирования микроконтроллера можно подключить устройство к USB-порту. Хост определяет, что устройство принадлежит к HID классу и передает управление устройством соответствующему драйверу.
image
Теперь в Windows идем в Панель управления->Игровые устройства и видим там нашего пассажира. Смотрим свойства и проверяем функциональность.
image
Низкая скорость передачи является главным ограничением HID-варианта построения устройства. Максимально возможная скорость передачи данных при такой организации обмена составляет 64 Кбит/сек. Такой показатель в сравнении с 12 Мбит/сек полной скорости USB-шины выглядит минусом HID-технологии в вопросе выбора конкретной USB-реализации. Однако для многих задач коммуникации указанной скорости вполне хватает и HID-архитектура как специализированный инструмент занимает достойное место среди способов организации обмена данными.

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

Создание полноценного USB-устройства с использованием инструментария Silabs USBXpress

Но вот наступает момент, когда вам необходимо использовать свой протокол работы с устройством на МК. При этом хотелось бы передавать много данных на большой скорости, и делать все это с помощью своего ноутбука, в котором много USB и ни одного COM, да еще и ваше устройство должно быть не больше спичечного коробка, и лепить на плату USB-UART на микросхеме FT232RL нет никакой возможности.
Тут-то ребята из Silabs и решили облегчить всем жизнь и показать “дорогу в будущее”, без тяжелого ломанья зубов об написание собственных дров и прошивок.
USBXpress Development Kit – это законченное решение для МК и хоста (PC), обеспечивающее простую работу с протоколом USB с помощью высокоуровневого API для обоих сторон. Не требуется особых знаний ни самого протокола USB, ни написания драйверов. Так пишут силабовцы в своем гайде.
image
Кстати о Programmer’s Guid: занимая всего 30 страниц, он крайне прост и доходчив. Примеры же лично мне не нравятся, часто встречаются очень кривые места, программы же под PC вообще лучше не смотреть, крайне нечитабельны.
USBXpress DK предоставляется к микроконтроллерам линеек C8051F32x, C8051F34x и для CP210x (USB-to-UART Bridge Controller). Библиотека USBXpress включает в свой состав библиотеку нижнего уровня, драйверы USB для ПК и DLL-библиотеку для разработки приложений на верхнем уровне. Ну и, конечно же, набор документации и примеров.
В библиотеке реализована передача данных только в режиме BULK. При использовании всех функций библиотеки, их реализация займет всего 3 Кбайта Flash-памяти микроконтроллера.

Firmware
  1. Написание USB-дескриптора;
  2. Инициализация устройства и USB на борту;
  3. Обработка входящих данных и формирование исходящего пакета;
  4. Обработка прерываний.
Написание USB-дескриптора

В отличие от HID с его хитро формализованной структурой тут все просто
code const UINT USB_VID = 0x10C4;
code const UINT USB_PID = 0xEA61;
code const BYTE USB_MfrStr[] = ;
code const BYTE USB_ProductStr[] = ;
code const BYTE USB_SerialStr[] = ;
code const BYTE USB_MaxPower = 15;
code const BYTE USB_PwAttributes = 0x80;
code const UINT USB_bcdDevice = 0x0100;

С VID, PID и именами думаю все понятно, плюс еще можно задавать максимальный ток параметром MaxPower (макс.ток = _MaxPower*2), PwAttributes — параметр отвечающий за удаленный wake-up хоста, и bcdDevice — номер релиза устройства.

Нюанс инициализации устройства и USB на борту

0x40; // Disable Watchdog timer
USB_Clock_Start(); // Init USB clock *before* calling USB_Init
USB_Init(USB_VID,USB_PID,USB_MfrStr,USB_ProductStr,USB_SerialStr,USB_MaxPower,USB_PwAttributes,USB_bcdDevice);

Здесь, как требует комментарий, в первую очередь необходимо инициализировать тактовый генератор для USB перед самой его инициализацией, только потом провести остальные стартовые операции для МК — Initialize(); — который настраивает порты, таймер и АЦП; затем разрешаем прерывания от USB.

Обработка входящих данных и формирование исходящего пакета

Вот подобрались к самому главному
//. продолжение main
while (1)

// конец main
>

Out_Packet – пакет, принятый от хоста;
In_Packet — пакет, отправляемый хосту;
Суть ясна, МК постоянно обновляет отправляемый пакет и считывает статус полученного.

Обработка прерываний

Теперь в 2-х словах о том, откуда получаем значения в отправляемый пакет. Как и в примере с HID, состояния кнопок получаем по прерываниям от таймера, а значения АЦП и термометра — по прерываниям от АЦП.
Вот здесь один тонкий момент — при инициализации АЦП настраиваем его так, чтобы конвертирование значений происходило по переполнению таймера (того же, который мы используем для кнопок), а само же прерывание от АЦП возникает по завершению конвертирования. И тут кроме получения значений преобразователя в конце процедуры вызываем API функцию
Block_Write(In_Packet, 8)
которая и отправляет собранные данные на компьютер.
Получение команд от компьютера происходит в процедуре обработки прерываний от USB:
void USB_API_TEST_ISR(void) interrupt 16

if (INTVAL & DEV_SUSPEND)

if (INTVAL & DEV_CONFIGURED)

>

Этот момент подробно расписан в Programmer’s Guid. Суть в том, что вызывается API-функция Get_Interrupt_Source(), возвращающая код причины возникновения API прерывания. Далее код анализируется и выполняется необходимое действие.

Программ на PC

Разбирать программу для компьютера я не буду. Силабовцы предоставили примеры на Visual Basic и на C, но, даже не заглядывая в исходники, подключить библиотеку в используемой вами среде разработки и прочитать пару страниц о функциях сложности вызвать не должно.
Поэтому я воспользуюсь уже скомпилированной программой из примера.

Итак, компилируем проект для МК, зашиваем, устанавливаем универсальные драйвера для USBXpress и подключаем отладочную плату. Система определит новое устройство и установит для него драйвера.
Посмотрим после установки, что творится в диспетчере устройств Винды:
image
Теперь запускаем программу:
image
Видим, что она правильно нашла устройство.
image
Все, теперь можно тут потыкать кнопки, поморгать диодами, погреть МК руками, увидеть как растет температура.

Заключение

В целом создание USB устройства с помощью библиотек USBXpress оказалось более быстрым и прозрачным процессом, нежели используя HID-архитектуру. Да и скорость будет однозначно выше. Наиболее тонким местом является то, что библиотека закрыта, и узнать насколько надежным является это решение невозможно, к тому же доступен только BULK режим передачи данных.

Общие сведения об устройствах с HID-интерфейсом

Устройства с HID-интерфейсом — это определение класса устройств для замены соединителей в стиле PS/2 универсальным драйвером USB для поддержки устройств HID, таких как клавиатуры, мыши, игровые контроллеры и т. д. До HID устройства могли использовать только строго определенные протоколы для мышей и клавиатуры. Для внедрения оборудования требуется либо перегрузить данные в существующий протокол, либо создать нестандартное оборудование с собственным специализированным драйвером. HID обеспечивает поддержку этих устройств «режима загрузки», добавляя поддержку инновационных инноваций с помощью расширяемых, стандартизированных и легко программируемых интерфейсов.

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

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

Основные понятия HID

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

Отчеты

Приложения и HID-устройства обмениваются данными через отчеты. Существует три типа отчетов:

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

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

Таблицы использования

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

Как подключить HID-совместимую мышь?

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

Что такое HID-совместимые устройства?

И начать, пожалуй, стоит с самого определения того, что собой представляют такие девайсы. Аббревиатура образована путем сокращения английского термина Human Interface Device, что буквально означает «устройство с человеческим интерфейсом». В общем понимании такие девайсы принято характеризовать, как устройства, предназначенные для работы их с человеком. Изначально в этот класс в основном входили только девайсы, рассчитанные на подключение через порты USB, но сегодня их номенклатура расширилась весьма существенно. Несмотря на такое заумное название вся эта периферия поддерживает стандарт Plug&Play, что соответствует термину вроде «подключил и играй». Иными словами, та же HID-совместимая мышь может просто подключена к компьютеру или ноутбуку, а дальнейшие действия пользователя могут состоять разве что только в персонализированной настройке манипулятора.

Стандартное подключение и определение HID-совместимой мыши

Если рассматривать данный вопрос с практической точки зрения, сегодня любое устройство управления, подключаемое посредством интерфейсов USB, Bluetooth или даже Wi-Fi, распознается именно как стандарт HID. Как уже понятно, к съемным накопителям это не относится.

Проверка работоспособности драйвера мыши

Что же касается подключения HID-совместимой мыши, достаточно просто использовать нужный тип соединения с компьютером или ноутбуком, а использовать можно и проводные, и беспроводные устройства. Обычно сразу же после того, как система сообщит, что обнаружено новое устройство, начнется поиск и установка драйвера, который необходим для обеспечения работы девайса (впрочем, как и для любого другого оборудования).

Нужно ли устанавливать драйвер HID-совместимой мыши в Windows 7 и выше?

В Windows-системах последних поколений имеются достаточно обширные собственные базы данных драйверов, включая и онлайн-хранилища, из которых и выбирается наиболее подходящее управляющее программное обеспечение. Таким образом, после того, как драйвер HID-совместимой мыши будет найден и установлен, в системном трее появится всплывающее уведомление о том, что устройство подключено и готов к работе. Если же будет выдано сообщение, что в процессе инсталляции управляющего ПО нужный драйвер найден не был, или с его установкой возникли проблемы, его придется интегрировать в систему самостоятельно. Однако большей частью это касается специализированных многокнопочных игровых мышек, поскольку обычные манипуляторы с колесиком, двумя или тремя кнопками определяются Windows-системами без проблем.

Сведения об установленном стандартном драйвере мыши

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

Установка «родных» драйверов устройства

Если рассматривать именно современные игровые манипуляторы с намного более широкими возможностями, нежели у стандартных моделей, как правило, при их покупке носитель с драйверами поставляется в обязательно порядке. Установить необходимое ПО можно самостоятельно непосредственно с носителя или, используя «Диспетчер устройств» с пунктом обновления драйвера, указать путь к диску с программным обеспечением или дать системе возможность самостоятельного поиска драйверов на локальном компьютере. Первый вариант выглядит более предпочтительным, если на носителе с драйверами имеются специальные инсталляторы в виде исполняемых EXE-файлов, а второй подходит для случаев, когда драйверы представлены в виде файлов формата INF, SYS и др.

Примечание: если драйвер HID-совместимой мыши в Windows 10 по каким-то причинам не устанавливается, или в процессе инсталляции возникают разного рода ошибки, можно попытаться изначально запустить инсталлятор (если таковой действительно имеется в наличии) в режиме совместимости с операционной системой версии ниже.

Способы настройки мыши в Windows 10

Кроме того, настройку манипулятора после установки драйвера можно и через классическую «Панель управления», и через меню «Параметры», выбрав соответствующие разделы («Мышь» или «Устройства»).

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

Автоматизированные базы данных и программы для установки и обновления драйверов

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

Программа для обновления драйверов Driver Booster

Не менее просто можно применять и утилиты, предназначенные исключительно для обновления управляющего ПО вроде Driver Booster, которые, правда, ищут и устанавливают драйверы абсолютно для всего оборудования, которое будет найдено в процессе начального сканирования, а не только для какого-то одного устройства, зато обращаются исключительно к сайтам производителей и разработчиков программного обеспечения, что исключает попадание на компьютеры вирусов или неработоспособность оборудования после установки необходимых пакетов драйверов. Кроме того, применение таких программ актуально и в том случае, если подключение мыши осуществляется посредством Bluetooth, когда может потребоваться обновление драйвера соответствующего беспроводного адаптера.

Ручной поиск специфичного драйвера

Наконец, если в той же Windows 10 HID-совместимая мышь не работает именно по причине отсутствия драйвера, найти его можно самостоятельно, обратившись к ресурсу производителя.

Определение идентификаторов мыши для поиска драйвера

Чтобы выполнить поиск наиболее соответствующего ПО, в «Диспетчер устройств» на вкладке сведений нужно выбрать пункт показа ИД оборудования и задавать поиск драйвера по наиболее длинной строке, в которой содержатся идентификаторы VID и PID, учитывая при этом и версию системы, и ее разрядность.

Что такое HID-совместимое устройство управления потребителями?

Молодая женщина руки, работающие на компьютере

У вашего компьютера есть несколько способов подключения к внешним устройствам, но универсальная последовательная шина — или USB, как ее обычно называют, — вероятно, наиболее универсальная. Его можно использовать для подключения к принтерам, флэш-накопителям и множеству других внешних устройств или для приема ввода с клавиатуры или мыши. Ваша мышь и клавиатура являются примерами так называемых устройств интерфейса пользователя. Любое устройство, совместимое с HID, использует универсальный стандартный драйвер и не требует установки какого-либо специального программного обеспечения.

Устанавливая стандарт

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

Что такое устройство с интерфейсом пользователя (HID). Hid совместимое устройство что это

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

В ходе расследования атак HID в качестве жертв использовались компьютеры с Windows 10 (1607). В первом случае антивирус Касперского работал отлично. Во втором случае операционная система сама блокировала устройство. Действительно, попытки подключить вторую клавиатуру к компьютеру не увенчались успехом.

Стандарт упрощения принадлежностей

HID в диспетчере устройств Windows.

‘User Interface Device’ — это шаблон, созданный для упрощения процесса установки устройств ввода. До появления HID существовало несколько специальных протоколов для каждого типа устройств ввода.

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

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

Протокол HID облегчает компаниям создание широко совместимых аксессуаров. Все современные операционные системы поддерживают протокол HID. Подключите USB-клавиатуру к компьютеру под управлением Windows, Mac, Chromebook или даже к планшету Android, и она сразу же заработает. Все это благодаря технологии HID.

HID и приложения

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

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

Когда устройство HID подключено, его функция передается операционной системе. Операционная система интерпретирует данные и сортирует устройство. Это позволяет приложениям и играм ориентироваться на категории устройств, а не на конкретные модели.

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

Типы устройств интерфейса пользователя

Как упоминалось выше, периферийные устройства USB являются наиболее распространенными устройствами пользовательского интерфейса, но существуют и другие типы.

USB-устройства относятся к категории ‘USB-HID’. К ним относятся обычные клавиатуры, мыши, сайты, трекпады и игровые элементы управления. Другие устройства USB-HID включают термометры, аудиоаппаратуру, медицинское оборудование, телефоны и фитнес-оборудование.

Еще один распространенный тип — Bluetooth-HID. Это тот же протокол USB-HID с небольшими изменениями для Bluetooth. Как и ожидалось, они похожи на USB-HID, но подключаются через Bluetooth. Мыши Bluetooth работают независимо от того, подключены ли они к компьютеру Windows, Mac или Chromebook.

Устройства пользовательского интерфейса — одни из самых распространенных устройств, используемых в компьютерах. Мы действительно не оценили, насколько они просты в использовании. Было время, когда это было не так просто.

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

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

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

HID-совместимый драйвер сенсорного экрана отсутствует и больше не доступен в диспетчере устройств

Драйверы CCID для считывателей OMNIKEY: 1021, 3021, 3121, 5022, 5023, 5122, 5422, 5025, 5127 Mini, 5127 Reader Core, 5427 G2, 6121 Архитектура: x64, публичные заметки включены в пакет x86.

Версия: 1.1.4.2315 для Windows 7, 8, 10.

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

  • Yandex Browser
  • Opera Browser
  • Avast Free Antivirus
  • World of Tanks
  • World of Warships

Подробнее о пакете драйверов:

Версия драйвера (программа установки):.

19.0.25.10, 19.3.32.11 Операционные системы:.

Windows 8.1, Windows 10 Размер операционной системы:.

64-бит (x64) Размер файла: 0,6 мб

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

Для их подключения используются либо интерфейсы USB и соответствующие порты, либо беспроводные модули Wi-Fi и Bluetooth. Кстати, последние два также относятся к категории USBHID. С модулями Wi-Fi все понятно. Мыши и клавиатуры лишь условно можно назвать беспроводными, поэтому для их подключения к корпусу компьютера требуется подключение беспроводного адаптера к соответствующему USB-порту. С Bluetooth не все ясно, поскольку при подключении к тому же ноутбуку со встроенным модулем Bluetooth порт USB может вообще не понадобиться.

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

ЧТО ТАКОЕ HID-СОВМЕСТИМОЕ УСТРОЙСТВО УПРАВЛЕНИЯ ПОТРЕБИТЕЛЕМ? — ВОКРУГ-ДОМ — 2022

Ваш компьютер имеет несколько способов подключения к внешним устройствам, но универсальная последовательная шина (или USB, как ее обычно сокращают), вероятно, является самой гибкой. Его можно использовать для подключения к принтерам, флэш-накопителям и многим другим внешним устройствам, а также для загрузки данных с клавиатуры или мыши. Мыши и клавиатуры являются примерами так называемых устройств человеческого интерфейса. Каждое HID-совместимое устройство использует универсальный стандартный драйвер и не требует установки специального драйвера.

Женщина держит руку на мышке и клавиатуре. Источник: pablocalvog / iStock / Getty Images

Установка стандарта

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

Что такое шрифты? Что такое семейство шрифтов? Когда были изобретены шрифты? Каковы функции шрифта? Как хранятся шрифты в Windows?

Что такое 802.11ax, 802.11ad, 802.11ac и 802.11n? что такое Wi-Fi 6, Wi-Fi 5 и так далее?

Что такое Wi-Fi 6, Wi-Fi 5 или Wi-Fi 4? Что такое 802.11ax, 802.11ac или 802.11n? Что означают эти аббревиатуры? Что такое 802.11AD?

Для получения дополнительной информации см. статью Раджи о Хабре выше. Это поможет вам понять, что и как делать для других проектов USB HID. А еще лучше — начните с него:-)

Для Windows 8.1 / 7:

  1. На клавиатуре нажмите клавишу с логотипом Windows и введите «Устранение неполадок», затем нажмите «Устранение неполадок».
  2. Нажмите Настроить устройство.Настройте устройство в Устранении неполадок
  3. Теперь нажмите «Далее» и следуйте инструкциям, отображаемым на экране, чтобы исправить любую обнаруженную проблему.
  4. Откройте диспетчер устройств и посмотрите, отображается ли на экране HID Complaint Touch Screen.

После завершения процесса устранения неполадок перезапустите Device Management и посмотрите, появился ли там HID-совместимый сенсорный экран. Если нет, перейдите к следующему решению.

Решение 3. Удалите и переустановите сенсорный экран и обновите драйверы набора микросхем

Если операционная программа не обновляется регулярно, система может работать не так, как ожидается. Эта проблема может возникнуть, если вы используете старый HID-совместимый драйвер или, скорее всего, вы никогда не устанавливали драйвер сенсорного экрана, потому что устройство было отключено. По этой причине устройство не может быть активировано, если не установлен соответствующий драйвер.

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

Шаг 1: Удалите Ghost Drivers

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

  1. В поле поиска Windows введите «Командная строка» и щелкните правой кнопкой мыши первый результат и нажмите «Запуск от имени администратора» с правами администратора.Откройте командную строку из поиска Windows
  2. В командной строке введите: set devmgr_show_nonpresent_devices = 1

Нажмите и введите. Из этого нет выхода, поскольку он просто активирует настройки, позволяющие появление скрытых устройств в Управлении устройствами.

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

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

Примеры атак

Выполнение настоящей HID-атаки можно начать с быстрого создания локального пользователя. Это показано на примере Windows 10 Build 1607.

Я согласен — это полезно. Подключите Microarduina к чужому USB-порту, и через несколько секунд у вас уже будет локальная учетная запись с заранее заданными параметрами имени пользователя/пароля.

Давайте немного углубимся. Давайте немного усложним задачу. Подготовьте свой FTP-сервер и загрузите рабочую нагрузку. Загрузка файлов и как это сделать. Это занимает немного больше времени из-за загрузки, но это того стоит, например, для сессии администратора.

Объясните пункты файлов. Да, вы можете набрать и выполнить все команды, но предметом обсуждения снова является ограничение по времени выполнения. Неизвестно, как долго сервер может реагировать на команды (на это влияет скорость интернет-соединения, скорость компьютера и куча разных факторов). Также стоит учесть, что в тесте можно использовать SSD (вроде бы все работает), но при подключении к компьютеру HDD. Думаю, вы поняли суть.

Вы могли заметить, что USB-клавиатура определяется BIOS до запуска операционной системы. UEFI обычно имеет широкую поддержку USB-портов, с готовыми профилями HID и USB-накопителями. Большой объем флэш-памяти современных материнских плат и унифицированная структура UEFI позволяют загружать низкоуровневые бэкдоры простым вводом с Arduino на низкоуровневое хакерское устройство.

Как защититься от HID-атак

Как мне кажется, самый безопасный способ защиты операционной системы — это блокировка учетных записей (с помощью паролей, RFID-чипов или биометрических сканеров) при выходе из компьютера. Секретными хитростями атаки являются отсутствие паролей и скорость, поэтому маловероятно, что пятиконечник поставит его на заблокированный компьютер (хотя некоторые более крупные существа применяют практику выключать экран, а не блокировать компьютер. (Вы воспринимаете, это не работает). Можно также полностью отключить неиспользуемые порты USB (в BIOS или, конечно, в BIOS), но почему это помешает злоумышленнику получить легальную клавиатуру и подключить симулятор Arduino? Только параметры политики безопасности и программное обеспечение сторонних производителей для контроля USB-подключений.

Что касается Windows, существуют различные решения. Во-первых, полная борьба с вирусами. Они уже научились определять категории BADUSB и блокировать такие устройства. Например, одним из аспектов Антивирусного сервера Касперского является функция «Защита от атак BADUSB» при формировании политики безопасности.

Формирование политики безопасности с помощью Kaspersky Management Server

Во-вторых, существуют средства борьбы с этим типом атак с помощью групповых политик. Вам нужно открыть gpedit.msc и перейти в раздел ‘Конфигурация компьютера → Административные стандарты → Система → Ограничения на установку устройств’. Этот раздел содержит несколько правил. ‘Prevent installation of devices not described by other policy settings’ должно быть ‘Prevent installation of devices not described by other policy settings’. Суть правила заключается в том, что, если оно включено, драйверы для новых устройств не будут устанавливаться автоматически, если только это устройство не определено явным образом политикой. Конечно, у такого подхода есть небольшие недостатки, но при правильной настройке проблем возникнуть не должно.

Настройка правил групповой политики Windows

В ходе расследования атак HID в качестве жертв использовались компьютеры с Windows 10 (1607). В первом случае антивирус Касперского работал отлично. Во втором случае операционная система сама блокировала устройство. Действительно, попытки подключить вторую клавиатуру к компьютеру не увенчались успехом.

В Linux вы можете использовать udev и его правила. Вам необходимо создать файл /etc/udev/rules.d/10-usbblock.ru и ввести в него следующее содержимое (вы можете блокировать все классы).

Это заблокирует добавление новых устройств HID

А это команда для разблокировки:.

Заключение

Моделирование клавиатуры — опасный инструмент в чужих руках. Это было наглядно продемонстрировано на выставке Black Hat в 2014 году. Троянское оборудование в домашних условиях вызвало волну интереса к этой теме.

Первоначально в серьезность угрозы было трудно поверить, и интернет был освобожден для Usbola. После публикации статьи Computer Ebola шутки закончились. Более того, Карстен Нол подлил масла в огонь, создав список уязвимых устройств, которые легко могут быть использованы для осуществления атак, подобных BADUSB.

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

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

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