Устройства hid: Usb hid — Википедия – Что такое HID (Human Interface Device)?

Содержание

Устройства HID Human Interface Devices Windows 10 – INFO-EFFECT

На чтение 2 мин. Опубликовано

 Привет ! Мы продолжаем разбирать операционную систему Windows 10 ! Сегодня вы узнаете как настроить на своём компьютере устройства HID (Human Interface Devices). Вы сможете узнать тип и состояние устройства, сможете обновить драйвера, узнать характеристики и свойства и т.д.

Чтобы открыть параметры устройства, внизу экрана слева откройте меню “Пуск”. В открывшемся окне нажмите на вкладку или значок – Параметры.

 

пуск параметры Windows 10

 

Далее, на странице “Параметры” нажмите на вкладку – Устройства.

 

параметры устройства Windows 10

 

Далее, на странице “Устройства”, внизу страницы, нажмите на вкладку – Диспетчер устройств.

 

параметры диспетчер устройств Windows 10

 

Далее, на странице устройств нажмите два раза на вкладку – Устройства HID (Human Interface Devices). У вас откроются вложения. Нажмите два раза по вкладке устройства, чтобы открыть его параметры. Вам могут быть доступны следующие устройства:

 

– HID-совместимая сенсорная панель.

– Microsoft Input Configuration Device.

– USB-устройство ввода.

– Устройство HID на шине I2C.

 

Устройства HID Windows 10

 

Далее, в свойствах устройства вы можете узнать и настроить:

 

Общие:

– Вы можете узнать тип устройства.

– Изготовителя.

– Размещение.

– Состояние устройства.

 

Драйвер:

– Вы можете узнать поставщика драйвера.

– Дату разработки.

– Версию драйвера.

– Цифровую подпись.

– Сведения о файлах драйвера.

– Вы можете обновить драйвер.

– Вы можете откатить драйвер к предыдущему.

– Можно отключить устройство.

– Можно удалить драйвер.

 

Сведения:

– Вы можете узнать значения свойств устройства.

– Выберите свойство и вам автоматически покажут его значение.

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

 

События:

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

– Вы можете узнать дату и время события.

– Можно узнать описания и сведения событий.

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

 

параметры устройства

 

Остались вопросы ? Напиши комментарий ! Удачи !

 

Устройство сопряжения человеческого — Human interface device

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

Термин «HID» чаще всего относится к USB-HID спецификации. Этот термин был придуман Майк Ван Фландерном из Microsoft , когда он предложил, чтобы USB комитет создать Human Input Device класса рабочей группы. Рабочая группа была переименована в классе устройств интерфейса Human по предложению Тома Шмидта DEC , поскольку предлагаемый стандарт поддерживается двунаправленная связь.

HID стандарт

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

Рабочий комитет с участием представителей нескольких известных компаний разработали HID стандарт. Список участников приводится в разделе «Определение класса устройств для устройств Human Interface (HID)» документ. Понятие самоописательного расширяемого протокола изначально пришло от Mike Van Фландерного и Manolito Адана во время работы над проектом под названием «Raptor» в Microsoft , и независимо от Стива Макгоуэн, который работал по протоколу устройства для доступа к шине , а в Форте . После сравнения заметок на конференции разработчиков игр Consumer, Стив и Майк согласились сотрудничать над новым стандартом для формирующейся универсальной последовательной шины (USB).

HID протокол имеет свои ограничения, но все современные основные операционные системы будут распознавать стандартные HID устройство USB, такие как клавиатуры и мыши, без необходимости специализированного драйвера. При установке, сообщение о том , что «A„HID-совместимое устройство“было признано» , как правило , на экране появляется. Для сравнения, это сообщение не появляется , как правило , для устройств , подключенных через PS / 2 6-контактный DIN разъемы , которые предшествовали USB. PS / 2 обычно не поддерживают подключи и работай , а это означает , что подключения PS / 2 клавиатуры или мыши с компьютером включенному не всегда работает и может представлять опасность для материнской платы компьютера. Кроме того, стандарт PS / 2 не поддерживает HID протокол. Человеческий класс интерфейс устройство USB описывает USB HID.

Компоненты HID протокола

В HID протокола есть 2 лица: «хост» и «устройство». Устройство является объектом , который непосредственно взаимодействует с человеком, такие как клавиатура или мышь. Хост осуществляет связь с устройством и принимает входные данные от устройства на действиях , выполняемых человеком. Выходные потоки данных от хоста к устройству , а затем к человеку. Наиболее распространенным примером хоста является PC , но некоторые сотовые телефоны и карманные компьютеры также могут быть хозяевами.

HID протокол делает внедрение устройств очень просто. Устройства определяют свои пакеты данных , а затем представить «HID дескриптор» к хосту. Дескриптор HID является жестко закодирован массивом байт , который описывает пакеты данных устройства. Это включает в себя: сколько пакетов устройство поддерживает, размер пакетов, и назначение каждого байта и бита в пакете. Например, клавиатура с кнопкой калькулятор программа может сказать хозяину , что нажата / снятия состояния кнопки сохраняется как 2 — го бита в 6 байт пакета данных с номером 4 (обратите внимание: эти места являются только иллюстративными и конкретного устройства) , Устройство обычно хранит HID дескриптор в ПЗУ и не нужно внутренне понимать или анализировать HID дескриптор. Некоторые мыши и клавиатуры аппаратных средств на рынке сегодня реализуется с использованием только 8-битный процессор .

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

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

  • Клавиатура — Любой из первых 256 кодов клавиша ( «использования») , определенных в таблицах HID Usage, страница 7 Использования может быть сообщена с помощью клавиатуры , используя протокол загрузки, но большинство систем обрабатывать только подмножество этих клавиш. Большинство систем поддерживают все 104 клавиш на AT-101 IBM макете, плюс три дополнительные клавиши , предназначенные для Microsoft Windows 95 (левой и правой клавиши Windows , и на клавишу Меню ). Многие системы также поддерживают дополнительные клавиши на основном западноевропейский 105-, 106- корейский, бразильский ABNT 107- и японской DOS / V 109-клавишных раскладках. Кнопки, ручки и кнопки, которые не сообщили о Usage Page 7 не доступны. Например, ключи QWERTY конкретной клавиатуры США будут функционировать , но калькулятор и ключи Logoff не потому , что они определяются по использованию Page 12 и не могут быть представлены в протоколе загрузки.
  • Мышь — только по оси Х, Y-ось, а первые 3 кнопки будут доступны. Любые дополнительные функции на мыши не будет функционировать.

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

HID определение устройства

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

Другие протоколы, использующие HID

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

  • Bluetooth HID — Используется для мыши и клавиатуры, которые подключаются через Bluetooth
  • Серийное HID — используется в Microsoft, Windows Media Center приемников дистанционного управления ПК.
  • ZigBee устройство ввода — ZigBee ( RF4CE ) поддерживает HID устройства через профиль входного устройства ZigBee.
  • HID над I²C — Используется для встроенных устройств в Microsoft Windows 8
  • HOgp (HID над ГАТТ) — Используется для газоразрядных устройств , подключенных с помощью технологии Bluetooth низкой энергии

Смотрите также

Рекомендации

внешняя ссылка

что это такое и что делать, если она не работает или не распознается компьютерной системой?

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

Human Interface Device: что это за оборудование в общем смысле?

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

Общий принцип работы HID-устройств

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

HID-клавиатура: что это такое?

Теперь несколько слов непосредственно о клавиатурных блоках. Давайте посмотрим, какие есть виды HID-клавиатур. Что это за устройства, нетрудно сообразить, если просто оценить их визуально. Среди них встречаются и стандартные блоки по типу тех, которые используются на стационарных ПК (стандарт PS/2), и уменьшенные по размерам клавиатуры без цифровых панелей по типу тех, что устанавливаются на ноутбуках с диагоналями экрана 13 дюймов и меньше.

Игровая HID-клавиатура

Также можно встретить целые мультимедийные системы, игровые усеченные панели, клавиатуры на мягкой подкладке, сворачивающиеся чуть ли не в трубочку, совершенно миниатюрные блоки с 22, 18, 11 или 10 клавишами и т. д. Вообще считается, что теоретически можно создать блок с 256 клавишами (диапазон ввода/вывода 0-255). Но особой популярностью в последнее время пользуются устройства, на которых положения основных кнопок с литерами и символами изменены, что соответствует заводской установке нестандартной раскладки.

Что делать, если USB-клавиатура не работает: простейшее решение

С основными понятиями ясность внесена. Теперь кратко остановимся на ситуациях, связанных с тем, что клавиатура ПК стандарта HID по каким-то причинам не работает. Устранить неполадки можно несколькими простейшими методами. Первым и самым простым решением, поскольку клавиатурный блок подключается либо непосредственно через USB-порт, либо через беспроводный модуль (но тоже через USB), является смена используемого порта. Вполне возможно, что он просто не работает или имеет другой класс (например, клавиатура рассчитана на подключение через интерфейс USB 3.0, а кабель вставлен в порт USB 2.0).

Различия между интерфейсами USB 2.0/3.0

Отличить разъемы и штекеры можно по цвету (USB 3.0 соответствует синяя окраска).

Переустановка драйвера

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

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

Удаление HID-устройства из системы

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

Управляющее ПО USB-контроллеров

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

Обновление драйверов USB-контроллеров

В этом случае рекомендуется обновить драйверы всех контроллеров, находящихся в соответствующем разделе все того же «Диспетчера устройств». Для установки самых свежих версий драйверов в обоих случаях можно воспользоваться специальными программами вроде iObit Driver Booster, которые способны находить и устанавливать обновленное программное обеспечение без участия пользователя.

Включение USB в BIOS

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

Включение поддержки USB-клавиатуры в BIOS

Для верности зайдите в параметры BIOS/UEFI сразу же после включения компьютера и найдите там пункты вроде USB Keyboard Support или USB Legacy Support. Для них должен быть выставлен параметр Enabled. В некоторых модификациях BIOS можно встретить настройки вроде EHCI Hand-Off и XHCI Hand-Off, отвечающие за ручное переключение между стандартами USB 2.0/3.0. При наличии на компьютере именно Windows-системы они должны быть деактивированы (значение Disabled). В устаревших версиях BIOS также встречается параметр Plug & Play OS, позволяющий автоматически распознавать подключаемые PNP-устройства. Он должен быть включен (значение Yes).

Программирование простейших USB-устройств на Delphi | Мир ПК

Но ведь мало только физически подсоединить устройство к компьютеру, нужно еще и наладить обмен данными между ними. Как же выбрать порт и организовать подключение? Несколько лет назад стандартным решением было использование COM-порта. Кстати, до сих пор различные специалисты доустанавливают на промышленные компьютеры по 8, по 16, а то и по 32 COM-порта (есть целая категория различных PCI-плат расширения последовательных портов, контроллеров и т. д.). Таким образом, если нужно подключить несколько внешних устройств с интерфейсом RS-232, могут потребоваться дорогие адаптеры и экзотические платы расширения, которые по старой традиции неделями плывут в Россию на пароходах. Кстати, название обычного переходника «адаптер DB9m/DB25f» у менеджера компьютерного магазина может вызвать разве что раздражение.

Что такое HID-устройство

Сейчас практически все устройства подключаются к компьютеру через USB-интерфейс. Поэтому во многих новых ПК COM-порт отсутствует вообще.

USB-интерфейс — типовое решение по сопряжению нового внешнего устройства с компьютером, точнее, это HID-интерфейс, базирующийся на протоколе USB 1.1.

Хотя многие и считают, что HID-интерфейс (Human Interface Device) предназначен исключительно для клавиатуры, мыши и джойстика, он годится для множества решений, связанных с сопряжением внешних устройств и компьютера.

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

Свойства HID-устройства

С точки зрения организации программной поддержки HID-устройства, все выглядит достаточно привлекательно: для работы под управлением Windows можно быстро создавать понятный компактный код на базе готовых проверенных алгоритмов. При этом у разработчика останется масса времени на реализацию собственного протокола обмена данными верхнего уровня, поскольку необходимый уровень абстрагирования уже организован за счет HID-протокола (см. таблицу). Кроме того, программисту легко проводить отладку написанного протокола обмена (разумеется, при наличии работающего HID-устройства) — благодаря относительной жесткости самого протокола достаточно просто разработать программу поддержки устройства компьютером. Еще бы! Массу работы уже взял на себя создатель HID-устройства.

Основные характеристики протокола обмена данными для HID-устройства

Организация обмена данными между HID-устройством и компьютером

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

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

Особенности программирования HID-устройств

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

В Windows за доступ к HID-устройствам отвечает системная служба HidServ. Подробнее о функциях запросов к HID-устройствам и других особенностях работы с HID-драйвером рассказывается в работе П. В. Агурова «Интерфейс USB. Практика использования и программирования» (СПб.: БХВ-Петербург, 2005).

Программирование HID-устройств на «верхнем уровне»

Нелегкую жизнь «прикладных» программистов, работающих на Паскале, облегчает проверенный модуль HID. PAS, программная оболочка для hid. dll (Hid User Library — как указано в свойствах файла). В комментариях к файлу сообщается, что в основе его лежат модули hidsdi.h и hidpi.h корпорации Microsoft. А сам файл HID. PAS — часть пакета JEDI (http://jvcl.sourceforge.net ).

Для работы с HID-устройством в среде Delphi for win32 применяется компонент TJvHidDeviceController, представляющий собой удобный глобальный менеджер для доступа к HID-устройствам. А уже на его базе можно получить объектный экземпляр для работы с конкретным устройством.

Основные свойства и события компонента TJvHidDeviceController

Рассмотрим компонент TJvHidDeviceController более подробно. Событие OnArrival срабатывает на поступление (подключение) в систему HID-устройства, доступ к устройству предоставляется в обработчике этого события через экземпляр класса TJvHidDevice. Простое событие OnDeviceChange реагирует на изменение состояния устройства, оно только сигнализирует об изменениях в системе. Событие OnDeviceData срабатывает при поступлении данных от одного из HID-устройств и передает обработчику следующее: HidDev: TJvHidDevice; — устрой-ство, от которого были получены данные;

Основные характеристики протокола обмена данными для HID-устройства 

Событие OnDeviceDataError уведомляет об ошибке передачи данных, передавая в процедуру обработки параметры HidDev: TJvHidDevice; — HID-устройство и Error: DWORD; — код ошибки. Событие OnDeviceUnplug уведомляет об извлечении устройства из списка установленных в системе. Типы обработчиков событий на Plug и Unplug одинаковы (в исходном тексте: TJvHidUnplugEvent = TJvHidPlugEvent). В обработчик передается объект класса TJvHidDevice, соответствующий HID-устройству.

Для последовательного перечисления имеющихся в системе HID-устройств по вызову метода Enumerate предназначено событие OnEnumerate, т. е. в обработчике события найденные устройства последовательно передаются в виде объектов. Это событие принудительно инициируется методом Enumerate, использующимся для «проведения» имеющихся HID-устройств через обработчик, например при ревизии состояния HID-устройств по инициативе хоста (компьютера).

Событие OnRemoval срабатывает на физическое извлечение устройства из системы и имеет тот же тип обработчика TJvHidUnplugEvent, что и для OnDeviceUnplug. Функция CountByProductName выдает количество устройств, удовлетворяющих указанному в аргументе имени продукта, а CountByVendorName — указанному в аргументе имени производителя.

Основные свойства и события класса TJvHidDevice

Класс TJvHidDevice — виртуальное представление отдельно взятого HID-устройства. Новый объект этого класса можно получить, как было уже сказано, из события OnArrival или OnEnumerate. Функционал классов TJvHidDeviceController и TJvHidDevice частично дублируется, поскольку в первом из них интегрированы общий инструментарий для работы с набором имеющихся в системе HID-устройств и механизм доступа к одному из них. Устройство можно однозначно идентифицировать по свойствам SerialNumber, ProductName и VendorName. Чтобы получить сведения о поступлении данных с применением такого объекта, можно воспользоваться событием OnData. Отсылка данных ведется через метод WriteFile (в строгом смысле — через функцию). WriteFile — это оболочка системной функции WriteFile (kernel32).

Чтобы проконтролировать факт извлечения устройства, следует присвоить свой обработчик событию OnUnplug. Перед началом обмена данными с HID-устройством нужно удостовериться в самой возможности такого обмена с помощью HasReadWriteAccess. В этом классе на возникновение ошибки обмена данными даже есть отдельное событие OnDataError.

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

Метод ScanDevices (листинг 1) предназначен для инициирования процесса поиска в системе необходимого HID-устройства. Большая часть кода, за исключением вызова метода Enumerate, необязательна и обеспечивает гибкость приложения, например, для того, чтобы в эту же тестовую программу можно было добавить возможность работы по интерфейсу, отличному от HID. Метод AddError выводит в окно отладочную информацию в процессе работы программы.

Основные характеристики протокола обмена данными для HID-устройства

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

Основные характеристики протокола обмена данными для HID-устройства 

Прежде чем рассматривать дальнейшую реализацию проекта, следует немного рассказать о принятом формате обмена данными верхнего уровня, т. е. о структуре, призванной быть посредником между методами приема-передачи данных и конкретной решаемой прикладной задачей. Дело в том, что здесь разработчику предоставляется возможность реализовать свои творческие способности. Вернее, разработчикам, потому что процесс создания нового протокола очень часто бывает двусторонним, и при этом первую скрипку играет тот, кому труднее реализовывать алгоритм обмена. В общем, каким бы ни был протокол обмена, всегда приятно делать каждую программную сущность максимально наглядной и самодостаточной, пусть даже в ущерб некоторым общепринятым традициям. Ибо лучшее решение — то, которое будет реализовано в сжатые сроки с минимальной привязкой к программной среде и с большими возможностями дальнейшего развития. На основе этих принципов был создан протокол обмена верхнего уровня, где главное понятие — «команда». Из листинга 3 видно, насколько автор любит строковые данные, не раз спасавшие его при отладке программных модулей. Как же замечательно, что у нас вообще есть тип String! Все команды протокола делятся на категории (классы), внутри которых существует код команды, однозначно характеризующий ее назначение. Параметр edParam служит для отсылки данных в устройство, а параметр edAnswerData содержит в себе полученные от устройства данные. Строковый тип описанных членов записи позволяет свободно и наглядно манипулировать данными в формате HEX-строки. И что самое приятное, формат описанной записи идеологически стоит где-то посередине между ее непосредственным назначением и различными формами ее представления (INI, HEX, XML и т. д.)

Основные характеристики протокола обмена данными для HID-устройства

Выполнение команды, т. е. отсылка данных в устройство, реализовано с применением отсылки пакетов данных длиной 8 байт (листинг 4). Эта длина — не единственное решение, такой выбор продиктован требованиями протокола верхнего уровня и в каждом конкретном случае может быть другим. Это, что называется, дело вкуса. Странный флаг IsUSBMode в методе ExecuteCommand (листинг 5 на «Мир ПК-диске») оставлен как напоминание о том, что вместо работы с USB нам может потребоваться использовать COM-порт или какой-то другой интерфейс. В начале отсылаемой группы данных в устройство передается синхросерия произвольно выбранного формата (например, 3E3E3E2B), сообщающая устройству, что у него на входе вполне легальные данные. Напомню, что в данном случае речь идет не столько о HID, сколько о специфическом протоколе верхнего уровня, идеологически оторванном от «железа» и предназначенном для решения особых прикладных задач.

Основные характеристики протокола обмена данными для HID-устройства

В обработчике GetDataExecutor полученных от устройства данных (пакет по 8 байт) использовано специально созданное событие OnNewInputData для передачи первично обработанных данных на дальнейшую обработку, причем с указанием их старого и нового значений (листинг 6 на «Мир ПК-диске»). Таким образом, события поступления необработанных данных и указание на дальнейшую обработку развязываются, позволяя добавлять какой-то специфический алгоритм предупреждения на раннем этапе ошибочной, повторной или ненужной входной информации.

Представленные здесь примеры работы с HID-устройством иллюстрируют общую идею статьи — относительную простоту программирования нестандартных HID-устройств средствами Delphi.

Программирование простейших USB-устройств на Delphi

Схема. Обмен информацией с USB HID устройством

Среди устройств, подключаемых к компьютеру по шине USB, имеется класс так называемых HID (Human Interface Devices) — устройств взаимодействия человека с компьютером. “Слабое звено” здесь — человек, поэтому выходящий за его возможности высокоскоростной обмен большими объемами информации не требуется. Это значительно упрощает как аппаратную, так и программную реализацию интерфейса подобных устройств.
Хотя первоначально к HID были отнесены компьютерные клавиатуры, мыши, джойстики и другие устройства ручного ввода информации, сегодня по тем же принципам подключают к разъему USB компьютера программаторы и многие другие изделия. Облегчает эту задачу наличие доступных (их легко найти в Интернете) программных драйверов для встраивания в компьютерные и микроконтроллерные программы.
В предлагаемой статье автор на примере разработанных им демонстрационного HID на микроконтроллере ATmega88 и взаимодействующей с ним компьютерной программы рассказывает, как организовать и использовать связь HID с компьютером по интерфейсу USB.

Демонстрационное микроконтроллерное HID (далее по тексту — устройство) собрано на макетной плате по схеме, изображенной на рис. 1. Оно способно принимать по шине USB команды на включение и выключение светодиодов HL2 и HL3 и передавать по той же шине информацию о состоянии кнопок SB1 и SB2. Используется режим LS (Low Speed) шины USB — скорость до 1,5 Мбит/с, предусмотренный как спецификацией USB 2.0 [1], так и более старой USB 1.1 [2]

В режиме LS допускается соединение устройства с компьютером дешевым неэкранированным USB-кабелем На одном конце стандартного кабеля имеется вилка USB-AM, подключаемая к компьютеру, а на другом — вилка USB-BM для соединения с устройством, оборудованным розеткой USB-BF (XS1).
Поскольку уровни сигналов, подаваемых на сигнальные линии D+ и D-, не должны превышать 3,3 В, а микроконтроллер DD1 питается напряжением 5 В, предусмотрены ограничивающие напряжение на этих линиях стабилитроны VD1 и VD2 Резисторы R1 и R2 не только служат элементами ограничите лей, но и устраняют колебания (“звон”) на перепадах сигналов, принимаемых микроконтроллером.
С помощью резистора R4 на линии D- устанавливается уровень напряжения, по которому контроллер USB компьютера опознает подключенное устройство. Микроконтроллер DD1 после получения питания с линии Vbus или в случае принудительной установки в исходное состояние устанавливает на своем выводе РС2 и на контакте 2 разъема XS1 низкий уровень, означающий для контроллера USB, что устройство не подключено, а после небольшой паузы — высокий (подключено низкоскоростное устройство) Без этого устройство иногда опознается компьютером некорректно

Светодиод HL1 сигнализирует о наличии напряжения питания микроконтроллера. Конденсаторы С1 и С2 — блокировочные в цепи питания. Проводами, заканчивающимися стрелками (в верхнем правом углу схемы), микроконтроллер DD1, не извлекая из устройства, подключают к программатору для загрузки программы Конфигурация микроконтроллера должна соответствовать показанной на рис. 2 (изображен фрагмент окна “Configuration and Security bits” программы PonyProg).
Программа, исполняемая микроконтроллером DD1, содержит драйвер USB, разработанный Кристианом Старкйоганом (Christian Starkjohann) из фирмы OBJECTIVE DEVELOPMENT Software GmbH, распространяемый бесплатно. Он написан в основном на языке С, а входящий в нее обработчик внешнего прерывания, обеспечивающий прием и передачу сигналов по шине USB, — на языке ассемблера. Автору драйвера удалось реализовать программное декодирование сигналов “на лету” в реальном масштабе времени. Об этом имеется интересная статья [3].

Принятый в USB способ передачи двоичных последовательностей NRZI (Non Return to Zero Invert — без возврата к нулю с инвертированием) иллюстрируют графики на рис. 3. При передаче каждого нуля текущий уровень сигнала инвертируется, а при передаче единицы он остается неизменным Когда таким способом передается длинная последовательность нулей, уровень сигнала изменяется с каждым новым разрядом, так что синхронизация приемника не представляет трудности. Но когда передается длинная последовательность единиц, изменения сигнала отсутствуют и синхронизация легко сбивается. Эту проблему решают битстаффингом — после каждых шести единиц подряд в последовательность вставляют незначащий ноль, чем принудительно вызывают изменение уровня. Из принятой последовательности такие нули удаляют.

Программа для микроконтроллера написана на языке С в интегрированной среде разработки AVR STUDIO 4.14.589 с установленным плагином AVR GCC. Плагин встраивается в среду разработки после установки свободно распространяемого пакета программ WinAVR.
Важная часть микроконтроллерной программы — дескриптор сообщения, содержащий информацию об устройстве, передаваемую им компьютеру. Дескриптор описываемого устройства (он находится в файле out_data.c) создан с помощью бесплатно распространяемой программы HID Descriptor Toolwww.download.intel.com/intelpress/usb/Examples/ZipFiles/DT.zip Описание дескриптора в программе представлено в табл. 1.

USAGE PAGE и USAGE — эти элементы определяют назначение устройства. Программа HID Descriptor Tool предлагает много вариантов для стандартных устройств, для нестандартного же выбираем Vendor Defined Page 1 и Vendor Usage 1 — назначение задает поставщик устройства.
COLLECTION — объединяет следующие за ним элементы в группу, которую замыкает элемент END COLLECTION. Группа может быть прикладной (application), физической (physical) или логической (logical), как в рассматриваемом случае.
REPORT ID — идентификатор сообщения, указано его значение (номер сообщения) 0x77. В данном случае идентификатор единственный, но бывают устройства, где необходимо наличие нескольких. Например, в статье [4] описан адаптер для подключения к компьютеру по шине USB четырех джойстиков от игровых приставок. В его дескрипторе четыре идентификатора — для каждого джойстика.
USAGE — следуя за идентификатором, этот элемент задает начало “конечной точки” — буфера длиной в несколько байтов, где устройство временно хранит информацию, принятую от компьютера или ожидающую передачи ему. Каждое USB-устройство имеет хотя бы одну конечную точку, которая предназначена для передачи его типа и параметров, инициализации и конфигурирования. Кроме нулевой, устройства могут иметь дополнительные конечные точки В частности, одну или две низкоскоростные. В рассматриваемом дескрипторе описаны дополнительные входная конечная точка INPUT для информации, предназначенной компьютеру, и выходная конечная точка OUTPUT для информации, принятой от него.
За элементом USAGE следует описание свойств конечной точки INPUT (элемент с таким названием завершает их список). Элементы LOGICAL_MINIMUM и LOGICAL_MAXIMUM задают допустимый интервал хранящихся в буфере конечной точки значений. В данном случае это 0 и 1 чего вполне достаточно для передачи состояния кнопок устройства. Элемент REPORT COUNT задает число двоичных разрядов в элементе данных конечной точки, a REPORT SIZE — число элементов такой размерности, умещающихся в буфере. Конечная точка INPUT имеет буфер рассчитанный на три восьмиразрядных слова (байта).

Следующий элемент USAGE обозначает начало описания свойств конечной точки OUTPUT. Для нее определены другие пределы значений (от 0 до 255), а размер ее буфера — восемь байтов.
Созданный дескриптор можно проверить средствами программы НЮ Descriptor Tool. Предоставляется возможность сохранить дескриптор в нескольких форматах, один из которых — заголовочный файл языка С. Вместе с программой поставляется набор готовых дескрипторов для различных стандартных USB HID устройств.

Обмен данными с устройством ведется по прерываниям, что отражено в дескрипторах конечных точек, описанных в файле usbdrv.c (табл. 2). Этот фрагмент программы компилируется условно, только при ненулевом значении константы USB_CFG_HAVE_INTRIN_ ENDPOINT В данном случае в файле usbconfig.h ей присвоено значение 2 (кроме нулевой, имеются еще две конечные точки).
Число 7 — длина дескриптора в байтах. Константа USBDESCR_ENDPOINT заданная в файле usbdrv.h, означает, что данный дескриптор описывает конечную точку. Число 0x81 показывает, что эта точка — входная номер 1, а 0x03 означает, что она предназначена для обмена информацией по прерываниям Число 8 задает максимально возможную длину передаваемого пакета в байтах. Константа USB_CFG_INTR_POLL_ INTERVAL определена в файле usbcon-fig.h со значением 10 — это период опроса устройства компьютером в миллисекундах.
В следующем дескрипторе число 0x01 говорит о том, что описывается выходная конечная точка номер 1, остальные параметры аналогичны описанным выше.
Для приема информации от компьютера в программе микроконтроллера имеется функция usbFunctionWriteOut, которая определена в файле main.с. Она помещает принятую по шине USB информацию в массив in_data. Вызов этой функции происходит из описанной в файле usbdrv.c функции usbProcessRx.
Каждая транзакция (цикл обмена информацией) состоит из трех пакетов. Первый пакет посылает компьютер. Это маркер (Token Packet), в котором содержатся сведения о типе и направлении передачи, адресе устройства и номере конечной точки. Формат этого пакета в режиме LS показан в табл. 3 [2, 3]. Передаваемые двоичные разряды образуют непрерывную последовательность, начинающуюся с младшего разряда поля SYNC (синхронизация). Значение этого поля — 0x80. Почему выбрано именно оно, становится ясным из рис. 4.

Поле PID — идентификатор пакета (Packet Identifier), причем его четыре старших разряда образованы поразрядной инверсией четырех младших (табл. 4). Именно при указанном здесь значении PID (ОхЕ1) программа микроконтроллера вызывает, как показано в табл. 5, упоминавшуюся выше функцию usbFunctionWnteOut.

Семиразрядное поле адреса (ADDR) позволяет адресовать до 127 “функций”, подключенных к шине USB устройств и их отдельных блоков с адресами 0x1—Ox7R Еще один адрес, нулевой, используется только при конфигурировании. В рассматриваемом случае адрес единственной функции описанного выше HID — 0x77. Он указан в дескрипторе сообщения.
Четырехразрядное поле ENDP задает номер (от 0 до 15) выходной конечной точки. Здесь он равен 1. Далее следует CRC5 — пятиразрядный циклический избыточный код полей ADDR и ENDR служащий для контроля правильности приема их содержимого. Завершает пакет интервал ЕОР (End of Packet — конец пакета) длительностью минимум в два тактовых интервала.

Второй пакет, называемый Data Packet (пакет данных), также посылает компьютер. Его формат показан в табл. 6. Поле SYNC здесь такое же, как в пакете-маркере. В поле PID четных пакетов содержится код ОхСЗ, а нечетных — Ох4В Поле DATA несет восемь байтов информации, пересылаемой в адресованную маркером конечную точку, и сопровождается 16-разрядным на этот раз циклическим избыточным кодом.
Завершает транзакцию третий пакет, посылаемый устройством компьютеру (табл. 7) и сообщающий о ее результате в поле PID: OxD2 (ACK) — подтверждение приема. Ох5А (NAC) — неподтверждение приема, в буфере конечной точки еще имеется необработанная информация, 0x1 Е (STALL) — обнаружена ошибка.
Ограниченный объем журнальной статьи не дает возможности описать обмен по шине USB более подробно. Необходимые сведения можно найти как в спецификациях [1, 2], так и в статьях [3, 5, 6].

При разработке программы пришлось столкнуться с особенностями программирования сторожевого таймера микроконтроллера ATmega88 с помощью компилятора AVR GCC. Если для установки нужной выдержки этого таймера использовать последовательность команд, представленную в табл. 8, то оказывается, что значение разряда WDP3 в регистре WDTCSR остается нулевым и сторожевой таймер по-прежнему перезапускает микроконтроллер каждые 16 мс.

Чтобы определить, почему так происходит, пришлось дизассемблировать фрагмент созданного компилятором программного кода Результат показан в табл. 9. В отличие от микроконтроллера ATmega88, у которого регистр управления сторожевым таймером расположен в адресном пространстве ввода/вывода, регистр управления и состояния сторожевого таймера WDTCSR микроконтроллера ATmega88 находится в адресном пространстве дополнительных регистров ввода/вывода, и доступ к нему возможен только как к ячейке памяти.

По этой причине компилятор задает адрес регистра WDTCSR в регистре Z (R30 — младший байт, R31 — старший байт) и лишь затем заносит необходимое значение выдержки в регистр общего назначения. Только на пятом такте происходит запись этого значения в регистр WDTCSR. А это недопустимо, в описании микроконтроллера ATmega88 [7] прямо сказано, что после записи единиц в разряды WDCE и WDE новое значение выдержки необходимо задать в течение четырех тактов, пока не произошло аппаратное обнуление разряда WDCE.

Чтобы выполнить это условие, следует задавать режим сторожевого таймера последовательностью команд, приведенной в табл. 10. Новое значение выдержки будет записано уже на третьем такте, разряд WDP3 примет значение 1 и сторожевой таймер станет перезапускать микроконтроллер каждые 4 с. В этом можно убедиться, если в бесконечном цикле опроса состояния кнопок закомментировать команду asm(“wdr”), повторно скомпилировать программу и загрузить результат в микроконтроллер. В окне рассмотренной ниже программы USB_HID.exe можно будет наблюдать, как каждые 4 с устройство станет отключаться от шины USB и после небольшой паузы подключаться к ней заново.

Приложенная к статье компьютерная программа USB_HID.exe демонстрирует обмен информацией между компьютером и описанным устройством. Она разработана в среде визуального программирования C++ Builder 6 с использованием компонента TJvHidDeviceController, созданного Робертом Мартином Марк-вардтом (Robert Martin Marquardt) из международного сообщества программистов Project Jedi. Без этого компонента, установленного в среде программирования, исходный текст программы будет компилироваться с ошибкой.

Для его установки необходимо запустить на компьютере среду C++ Builder 6, распаковать в любом удобном месте архив   HIDKomponente.zip , в папке HIDKomponenteBCB выбрать пакетный файл HidBcb.bpk и запустить его. В среде C++ Builder 6 откроется окно Диспетчера Пакетов (Package Manager) с именем Package HidBcb.bpk. В нем видны две папки: Contains — содержимое пакета устанавливаемого компонента и Requires — список пакетов, необходимых для поддержки компонента в операционной системе. В верхней части окна следует щелкнуть левой кнопкой мыши по экранной кнопке Install, проект компонента откомпилируется и появится сообщение о том, что он установлен и зарегистрирован. Теперь, выполнив команду Component Configure Palette из главного меню среды C++ Builder, откроем окно Palette Properties, где в левой части виден список всех установленных компонентов.

Переместившись с помощью полосы прокрутки в нижнюю часть списка, можно увидеть название закладки нового компонента в палитре компонентов — Project JEDI. После щелчка левой кнопкой мыши по названию закладки в правой части окна появится изображение пиктограммы компонента и его название — TJvhiddevicecontroller. Экранной кнопкой Move Up в нижней части окна можно переместить закладку вверх по списку, чтобы она стала более удобной для поиска и доступа. Закладку Project JEDI и пиктограмму этого компонента можно увидеть и в палитре компонентов среды C++ Builder.

Теперь можно распаковать архив   USB_HID.zip   и в папке с таким же названием двойным щелчком левой кнопкой мыши по файлу USB_HID.bpr открыть в среде разработки проект программы. Ее исходный текст сосредоточен в файле UnUSBHID.cpp.
В начале этого файла описаны обработчики событий — щелчков по трем экранным кнопкам, имеющимся в окне программы. При наступлении любого из них в буфер поочередно записываются идентификатор сообщения устройства REPORTJD = 0x77 и числа 0x55, ОхАА (команды включения свето-диодов в устройстве). Если устройство подключено к шине USB компьютера, процедура WriteFile(BufOut, ToWrite, Written) передает эту информацию его выходной конечной точке. Параметр ToWrite указывает, сколько байтов следует передать в буфер BufOut, а в параметре Written функция возвращает число реально переданных байтов.

Функция JvHidDeviceControllerl Enumerate выполняет перечисление всех устройств, подключенных в данный момент к шине USB, если произошло подключение к шине устройства, уже зарегистрированного в операционной системе (ОС) компьютера или отключение ранее подключенного устройства. В программе присутствует невидимый в ее окне компонент ListBoxl типа TListBox, хранящий список подключенных устройств. Если устройство имеет название, оно добавляется в список. Если название обнаруженному устройству не присвоено, в список заносятся его VID (идентификатор производителя) и PID (идентификатор устройства). Нужное устройство выбирается из списка по его названию, заданному строкой программы S=”USB устройство обмена данными”.

В архиве имеется также вариант рассматриваемой программы USBHIDWind. ехе с видимым окном компонента ListBoxl, что позволяет пользователю просматривать список подключенных к шине USB устройств и наблюдать за его изменениями при подключении или отключении устройств.
Функция JvHidDeviceControllerl Device Change выполняет подготовку и обновление списка устройств она же выводит сообщение об отсутствии необходимого.
Функция ShowRead заносит информацию, полученную от устройства, в массив Р и определяет, какие кнопки устройства нажаты В окно программы выводятся сообщения: “Белая кнопка = х” и “Черная кнопка = х”, где х — 0 или 1 в зависимости от состояния кнопок.
Функция JvHidDeviceControllerl Device DataError обнаруживает ошибки приема информации от устройства и выводит сообщения о них.

При первом соединении изготовленного устройства с компьютером ОС Windows находит его и выдает на экран сообщение: “Найдено новое устройство — USB-устройство обмена данными”. Вскоре это сообщение сменяется другим: “Найдено новое устройство — USB HID совместимое устройство”. Для принятия решения о том, какой драйвер назначить найденному устройству, ОС использует INF-файл (в Windows XP он называется mput.inf) После того как ОС самостоятельно найдет и установит драйвер, появится следующее сообщение: “Новое оборудование установлено и готово к использованию” Теперь, пройдя по пути “Пуск—»Настройка-»Панель управления -> Система —> Оборудование -> Диспетчер устройств”, можно увидеть обнаруженное устройство в списке зарегистрированных в системе. Его название выведено во множественном числе: “Устройства HID (Human Interface Devices)”, потому что устройство состоит как бы из двух частей — HID интерфейса и пользовательского интерфейса Обмен информацией происходит со второй частью устройства. Наведя на строку “USB HID совместимое устройство” указатель мыши и щелкнув один раз. в открывшемся меню выберем “Свойства” и на закладке “Общее” увидим: “Размещение О (USB устройство обмена данными)”.

Когда устройство подключено к шине USB, окно программы USB_HID.exe выглядит, как показано на рис. 5. Если же устройство не подключено или ОС не смогла его обнаружить, на месте надписей, отображающих состояние кнопок, будет выведено: “Устройство обмена данными не подключено”
Если нажать на кнопку SB1 (в изготовленной конструкции она черного цвета), то включится светодиод HL2 зеленого цвета свечения, а в окне программы синяя надпись “Черная кнопка = 0” сменится красной “Черная кнопка = 1” и останется такой до отпускания кнопки. Нажатие на белую кнопку SB2 приведет к включению желтого светодиода HL3, что будет аналогичным образом отображено в окне программы.
При нажатии на экранную кнопку “Зеленый светодиод” на некоторое время будет включен светодиод HL2 на плате устройства. Точно так же при нажатии на экранную кнопку “Желтый светодиод” поведет себя светодиод HL3, а при нажатии на кнопку “Зажечь оба” — HL2 и HL3 одновременно.

Прилагаемые архивы:
19_58_52__18_03_2010.zip
19_59_22__18_03_2010.zip
19_59_36__18_03_2010.zip
19_59_51__18_03_2010.zip

“Радио” № 3, 2010г.
С. СУРОВ, г. Нижний Новгород

Post Views: 453

Как подключить 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-устройства. При этом операционная система не разделяет устройства на типы, не определяет модель устройства (как это, например, бывает с жесткими дисками и флеш-картами).

HID (Human Interface Device) – устройство, подключаемое к вычислительной технике для участия в работе человека. Говоря проще, HID – устройство ввода информации. Необходимы устройства ввода для непосредственного участия человека в работе компьютера: введение исходных данных для вычислений, выбор параметров действия, редактирование имеющихся данных и результатов и т.д.

Типы HID-устройств.

Устройства ввода различаются по типу вводимой информации.

Текстовая информация:

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

Звуковая информация:

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

 

Графическая информация:

Сканер — устройство для считывания плоского изображения и представления его в растровой электронной форме.

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

Веб-камера — цифровая видео или фотокамера, способная в реальном времени фиксировать изображения, предназначенные для дальнейшей передачи по сети Интернет как в потоковом режиме, так и за определенные промежутки времени.

Плата захвата (тюнер) — электронное для преобразования аналогового видеосигнала в цифровой видеопоток. Используется для захвата телесигнала, сигнала с камер видеонаблюдения и др.

HID-устройства HID-устройства HID-устройства HID-устройства

HID-устройства управления различаются по функционалу. 

Относительное позиционирование (обрабатывают информацию о перемещении):

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

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

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

Тачпад – сенсорная панель, применяемая, в основном, в портативных компьютерах. В отличие от трекпоинта, считывающего давление пальца, тачпад считывает емкостные характеристики при соприкосновении пальца и емкостных датчиков. Поэтому управление тачпадом с помощью непроводящих предметов (ручка, карандаш,стилус) достаточно проблематично.

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

HID-устройства HID-устройства HID-устройства HID-устройства HID-устройства

 

Абсолютное позиционирование (высчитывают абсолютные координаты на плоскости, в качестве которой выступает устройство):

Графический планшет — это устройство для ввода графики (отдельных линий и рисунков) от руки непосредственно в компьютер. Состоит из пера и плоского планшета, чувствительного к нажатию пера.

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

HID-устройства HID-устройства

Отдельно хочется выделить специальные HID-устройства для компьютерных игр:

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

Кейпады – специальные игровые клавиатуры-приставки, в которых кнопки скомбинированы для максимального удобства игрока (в современные модели встраивается мини-джойстик).

Руль и педали – манипуляторы для жанра рэйсинг (автогонки).

Джойстик – используется для жанра авиасимуляторов.

Геймпады – специальные игровые манипуляторы, используемые в аркадных жанрах (перешли с игровых кансолей).

HID-устройства HID-устройства HID-устройства HID-устройства

Танцевальная платформа – специальные платформы с датчиками давления. Управление производится с помощью ног. Используется для игр жанра «танцевальные аркады».

Музыкальные инструменты (гитары, барабаны) – специальные манипуляторы в форме музыкальных инструментов с кнопками и датчиками давления. Используется для игр жанра «музыкальные аркады».

HID-устройства HID-устройства

Leave a comment