Ридер бесконтактных карт RD-03AB и libusb для Windows

При подключении ридеров семейства RD-03AB по USB интерфейсу к системе, работающей под ОС Windows, управление ридером возможно через встроенный в Windows драйвер HID-устройств, или через интерфейс библиотеки USB-устройств libusb-1.0. Казалось бы, зачем изобретать велосипед: если работает HID-интерфейс, то зачем устанавливать дополнительный драйвер? На самом деле, не всё так просто 🙂 При работе через HID-интерфейс вступают ограничения скорости обмена данными, это особенно заметно, если при интенсивном обмене с ридером попробовать шевелить мышку, или быстро набирать текст на клавиатуре. В Win10 возможны и другие «спецэффекты», причём они меняются от одного апдейта системы к другому: работа через libusb позволяет если не избежать, то значительно уменьшить вероятность «сюрприза» от M$.

Консоль настройки ридера под Win10, использующая libusb-1.0

Установку драйвера WinUSB для работы  libusb-1.0 можно произвести различными способами, но удобнее всего это сделать с помощью программы zadig, которая есть в архиве с софтом ридера; также zadig можно скачать с сайта разработчика.

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

После распаковки архива, запускаем файл zadig_2.2.exe, если установка драйвера происходит в системе отличной от WinXP, или запускаем zadig_xp_2.2.exe под WinXP.

Далее, среди подключенных устройств, выбираем «Reader RD-03AB», а затем нажимаем кнопку «Replace Driver»: установщик заменит установленный системный HID-драйвер на драйвер WinUSB, замена коснётся только выбранного устройства, ридера RD-03AB.

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

После окончания операции можно видеть, что драйвер WinUSB заменил системный драйвер HidUsb.

После установки драйвера WinUSB следует запустить консоль настройки ридера ccr: в перечне найденных устройств должен появиться подключенный ридер. Отличительной особенностью является заголовок окна консоли: буква «L» после номера версии API указывает, что API написано на базе libusb-1.0. Если после номера версии API стоит буква «H» — это говорит о том, что софт работает через API, использующий драйвер HID-устройств, встроенный в Windows.

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

При подключенном ридере открываем «Диспетчер устройств», находим ридер в списке USB-устройств и удаляем его.

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