Введение


Все мы знакомы с ситуацией, когда у нас на руках есть мышка PS/2, а подключить её некуда. Покупать переходник – идея так себе. Но мы рискнули и купили:




Данная модель пользуется большой популярностью на российском рынке.
  • Ценовой диапазон: 100 – 1000 руб.
  • Производитель: NoName.
  • Цвет: Белый, Чёрный.
  • Упаковка: На любой вкус.




Минимальная цена, которую мы видели, – 60 руб. на сайте Aliexpress:



Мы заказали вот такой за 150 руб.:



Вскрытие показало, что внутри находится печатная плата с маркировкой PS2–04H:



На плате расположен контроллер-клякса (COB), а также два конденсатора (посадочные места C1, C2).



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



Схема устройства примитивная:



В качестве контроллера выступает аналог WIT122UH:



Из описания контроллера:

Контроллер WIT122UH разработан специально для устройств считывания карт, сканеров, клавиатур, мышек и другого периферийного оборудования PS/2. Контроллер преобразует интерфейс PS/2 в USB. Контроллер не требует установки какого-либо драйвера и программного обеспечения.



Схема подключения:



Первые впечатления


Тестовый стенд:
  • Мышь PS/2 – A4Tech X3-230.
  • Клавиатура PS/2 – Logitech 350.
  • Материнская плата: ASUS TUF Gaming B450-Plus II.
  • Тестируемые порты: USB 2.0, USB 3.1, USB 3.2 Gen 2.

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

Настройки мыши


Мы снизили скорость мыши на 50%:



Позиционирование мыши стало лучше. Но акселерация ухудшилась. В Windows 10/11 нет возможности настроить акселерацию. Но есть вариант использовать стороннее ПО, например, Raw Accel.

Raw Accel – это программное обеспечение с открытым исходным кодом, позиционирующее себя как решение для геймеров и дизайнеров. Raw Accel предоставляет широкий набор функций для настройки акселерации. Нам подошел следующий график:



Мышь стала работать идеально. Мы довольны. Но остались вопросы по техническим моментам.

Спецификация USB


Интерфейс USB появился в 1996 году. Изначально он поддерживал только два режима работы:
  • Low Speed – 1500 Кбит/c.
  • Full Speed – 12 Мбит/с.

Режим Low Speed был ограничен частотой работы 125 Гц (время отклика 8 мс), режим Full Speed – 1 кГц (время отклика 1 мс). Разное оборудование работало по-разному. Для мышек и клавиатур был отведен низкоскоростной канал Low Speed, а для принтеров, модемов – Full Speed.

Первая спецификация получила название USB 1.0. В 1998 году её обновили до версии USB 1.1. В 2000-м вышла спецификация USB 2.0 с новым режимом работы:
  • High-Speed – 480 Мбит/с.

Все последующие спецификации USB 4.0, USB 3.0 включали в себя совместимость с USB 2.0 и USB 1.0.

Мало кто знает, но USB-мышь не может использовать канал выше, чем USB 1.0. Это прописано в спецификации USB. Для того, чтобы мышка использовала канал USB 2.0 (High-Speed) необходимо установить специальный драйвер (от производителя мыши).

USB HID-протокол


Компании Intel и Microsoft (создатели USB) всегда хотели добиться универсальности. Для этого они разработали специальный USB HID-протокол (HID — human interface device), и создали регламентированный класс USB HID-устройств.

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

Если ваша мышь работает без драйвера, то перед вами регламентированное HID-устройство. В 1997 году HID-протокол был интегрирован во все версии BIOS (иначе BIOS не мог работать с USB-клавиатурой и мышью).

HID-протокол позволяет создавать два класса устройств:
  • Низкоскоростные HID-устройства – 6 Кбит/с.
  • Полноскоростные HID-устройства – 512 Кбит/с.

При этом низкоскоростные HID-устройства ограничены частотой работы 125 Гц (время отклика 8 мс). Полноскоростные – 1 кГц (время отклика 1 мс).

Все USB-клавиатуры – это низкоскоростные HID-устройства. Мировой рекорд по скорости печати текста на клавиатуре – 20 знаков в секунду. USB-клавиатура позволяет набирать аж 125 знаков в секунду.

Все USB-мышки – это полноскоростные HID-устройства, т.к. им нужен более быстрый канал передачи данных, чем 6 Кбит/с.

Любое HID-устройство может самостоятельно устанавливать частоту своего опроса. Для полноскоростных устройств это:

125, 250, 500, 1000 Гц (время отклика 8, 4, 2, 1 мс).



PS/2


Интерфейс PS/2 появился в 1987 году. Скорость передачи данных — от 80 до 300 Кб/с. Частота опроса — до 200 Гц.

Герой нашего обзора — игровая мышь A4Tech X3-230 (PS/2), она передает данные на компьютер с частотой 170 Гц.



А что там наш переходник? Какие у него характеристики?

Для того, чтобы узнать скорость обмена между мышкой и переходником, воспользуемся программой USBPcap. Это свободное программное обеспечение с открытым исходным кодом, относящееся к классу USB-sniffer (от англ. to sniff — нюхать):



Программа USBPcap предлагает нам выбрать два устройства:
  1. Flash DISK 2.0.
  2. Составное USB-устройство: HID-клавиатура + HID-мышь.

Выбираем пункт №2. Получаем файл с трафиком:



Мы видим, что обмен между мышкой и компьютером зафиксирован на частоте 125 Гц (8 мс). Но за период времени [50.000 сек., 50.231 сек.] компьютер получил от мышки только 22 пакета, что в среднем составляет 100 Гц (10 мс).

Теперь понятно, почему наша мышка A4Tech так плохо работает с переходником. Часть пакетов просто не доходит до компьютера. Мышка отправляет 170 пакетов, а компьютер видит только 100.

Итоги


Переходник отлично справился с клавиатурой PS/2. Но для мышки потребовалась настройка.

Достоинства:
  1. Низкая цена.
  2. Идеально подходит для клавиатуры.
  3. После настройки мыши, также подходит и для мыши.
  4. Можно играть в игры (по ощущениям как офисная мышь 125 Гц).

Минусы:
  1. Отсутствие бренда.
  2. Отсутствие какого-либо технического описания и характеристик.
  3. В большинстве случаев потребуется калибровка мыши.
  4. Не подойдет для тех, кто хочет получить 200 Гц (от стандарта PS/2).


PS.


На рынке представлено много моделей:





Наш переходник имеет контроллер USB 1.0 Low Speed 125 Гц. Про остальные модели мы не знаем.
На этом всё. Пишите в комментариях, пользовались ли вы таким переходником и как он вам?

Комментарии (61)


  1. zenhower
    01.05.2024 08:42
    +6

    У китайских noname переходников, что я находил, всегда была какая-то проблема. Бага находилась не сразу, но через неделю переходник отправлялся в мусорку. Прямо всех подробностей проблем не помню, но часто встречалась бага с удержанием кнопки. При удержании кнопки сканкод переставал отправляться через 2-5 секунд. Это и в игры не поиграть, и с комбинацией клавиш получал проблемы.
    Заказал однажды ATEN переходник и закрыл вопрос с этой угадайкой.


    1. NNMTM
      01.05.2024 08:42

      Подскажите, пожалуйста, точную модель.


      1. zenhower
        01.05.2024 08:42

        Noname переходники как-раз и не имели маркировки, но выглядели как на первой картинке. Я даже собрал с горя пару переходников (только для клавиатуры) на основе ардуинок, но провода и платы без корпуса были не очень юзабельны, так что - ATEN.


        1. NNMTM
          01.05.2024 08:42

          Так вы говорите про Aten - я про него и спрашиваю.
          Это Aten UC100KMA или другой?


          1. NutsUnderline
            01.05.2024 08:42

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


            1. zenhower
              01.05.2024 08:42

              Имею Aten CS782DP дома, а на работу искали аналогичный, но по безналу. Через посредников перебрали китайские варианты и они все (в сравнении) даже не блико к Aten. Одно только переключение по 5-6 секунд чего стоит, уже не говорю про проблемы с 4к.


              1. NutsUnderline
                01.05.2024 08:42

                уж не такой ли у меня - надо поглядятеть.

                вот этот который почти стабильный с портом при этом ps/2, лот уже апгредили до 4К https://aliexpress.ru/item/32828268130.html

                который брал под 4К под леблом Unnlink уже отсутвует в продаже, тодже как бы ниче работал а потом стал глючить

                проблемка и aten и этих в том что начинались глюки при каких то определенных комбинациях компов разных


                1. zenhower
                  01.05.2024 08:42

                  В моем CS782DP прошивка постоянно обновляется и поддержка хорошая, посмотрите обновления у вашего.


                  1. NutsUnderline
                    01.05.2024 08:42

                    уже посмотрел и прошил давно без толку


                  1. NutsUnderline
                    01.05.2024 08:42

                    Cs1794


          1. zenhower
            01.05.2024 08:42

            А, тогда да, он.


    1. diafour
      01.05.2024 08:42

      Да, тоже встретил проблему при удержании кнопки с ноунейм переходником. Что-то с консоли настроить ещё подойдёт, а играть комфортно не получится.


  1. UplandDivan
    01.05.2024 08:42
    +50

    "Пишите в комментариях, пользовались ли вы таким переходником и как он вам?"

    Мы ещё свои мыши для COM-порта не до дыр протёрли, лет 5 ещё побегают, так что эти ваши новомодные PS/2 пока подождут)


    1. HardWrMan
      01.05.2024 08:42
      +2

      Альтернативное:

      Пишите в комментариях, пользовались ли вы таким переходником и как он вам?

      Мы такие переходники сами пачками на МК делали.

      Мы ещё свои мыши для COM-порта не до дыр протёрли, лет 5 ещё побегают, так что эти ваши новомодные PS/2 пока подождут)

      И, кстати, СОМ в PS/2 тоже.


    1. aik
      01.05.2024 08:42
      +1

      У меня к 486 мышь usb (razer вроде) подключена через цепочку usb->ps/2->com. И более-менее работает. Беспроводного логитека таким образом не получилось подключить, на первом же этапе ломается.

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


      1. NutsUnderline
        01.05.2024 08:42

        моя первая беспроводная оптическая мышь работала на обычной поверхности но плоховато но до сих пор рабочая вроде


        1. aik
          01.05.2024 08:42
          +1

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


  1. rvt
    01.05.2024 08:42
    +2

    Поставил родителям на ноутбук и мышь и клавиатуру PS/2 через такой вот переходник. Лет пять назад. Ничего, пока работает всё нормально. Правда, они (родители) не особо требовательные и я тоже ничего не тестировал. Работает и работает...


  1. yota9
    01.05.2024 08:42
    +2

    Как вариант использования такого переходника могу предложить использовать его вместе с тачпадом от старого ноутбука. Использовал самый дешевый переходник с каплей лет 5 в такой связке, проблем небыло :)


  1. sena
    01.05.2024 08:42

    Есть проблема с kvm-переключателями. При перезагрузке клавиатура не определяется вовремя и невозможно зайти в биос (после загрузки системы всё обычно работает, но тоже не всегда). Кстати похожая проблема в комбинации с kvm-переключателями была и со всякими переходниками dp-dvi,hdmi-dvi и т.п.


  1. Porohovnik
    01.05.2024 08:42
    +4

    Microsoft Natural MultiMedia Keyboard 2003 года выпуска
    Microsoft Natural MultiMedia Keyboard 2003 года выпуска

    Это моя клавиатура, конкретно ей больше 18 лет. Из особенностей, PS/2 порты на новых материках(где они ещё есть) работают странно (например, при холодном пуске они не определяют клавиатуру), приходится пользоваться переходниками, а с ними как повезёт, то нормально целый день отработают, то баг с западанием шифта после получаса работы. Всё пытаюсь найти нормальный.


    1. salnicoff
      01.05.2024 08:42
      +2

      У меня была такая. Удобная, но не пережила написания на ней кандидатской диссертации, учебника, статей и кучи кода. Шифты стало заедать. :-(


      1. select26
        01.05.2024 08:42

        Капелька WD-40 раз в пять лет решает проблему


        1. salnicoff
          01.05.2024 08:42

          Во-первых, как-то стремно лить WD-40 на пластик. Для пластика другие смазки есть, но я заморачиваться не стал, ибо пункт два. А пункт два — появилось подрастающее поколение, которое тянуло руки куда надо и куда не надо. Поэтому купил беспроводной лоджитековский комплект с клавиатурой примерно такой же формы, и убирал его на высокую полку. Этот комплект, кстати, до сих пор жив и работает, он из тех времен, когда «Лоджитек» был еще торт.


  1. Jessy_James
    01.05.2024 08:42
    +2

    Рекомендую такой:


  1. NutsUnderline
    01.05.2024 08:42
    +1

    очень интересный материал, но все таки эти шутковины - аварийная замена. у меня гемберд (внутри вроде микросхема под каплей) давно давно лежит в качестве запаски (как и комп с офф. поддержкой вин98 и родными ps/2). его неплохо бы термоклеем залить целиком так как кабель тонкий и явно настроен на перетираение


  1. tklim
    01.05.2024 08:42

    Мало кто знает, но USB-мышь не может использовать канал выше, чем USB 1.0. Это прописано в спецификации USB. Для того, чтобы мышка использовала канал USB 2.0 (High-Speed) необходимо установить специальный драйвер (от производителя мыши).

    это где такое написано?

    Vendor ID : 0x046D (Logitech Inc.)
    Product ID : 0xC52F
    USB Version : 2.0 -> but Device is Full-Speed only
    Port maximum Speed : High-Speed
    Device maximum Speed : Full-Speed
    Device Connection Speed : Full-Speed

    Как в виндовс, так и в линуксах не просит никакого драйвера. В телевизоре тоже норм.


    1. Martynov_M Автор
      01.05.2024 08:42
      +1

      Device maximum Speed : Full-Speed

      Device Connection Speed : Full-Speed

      Это прописано в HID-протоколе. Он умеет работать только с двумя режимами:

      • Low Speed – 6 Кбит/с, 125 Гц.

      • Full Speed – 512 Кбит/с, 1000 Гц.

      На большее он не способен. Но т.к. USB 2.0 унаследовал эти два режима и добавил к ним новый:

      • High-Speed – 480 Мбит/с, 8000 Гц.

      То принято считать, что режим «Full Speed» принадлежит USB 2.0.
      У вас подключено устройство, которое работает в режиме Full Speed.


  1. aik
    01.05.2024 08:42
    +1

    Пользуюсь, чаще всего для клавиатур. Для мышей пореже. В основном на стендах и в серверных стойках, где квм только ps/2, а сервера новые уже с usb идут.


  1. VBKesha
    01.05.2024 08:42

    Пробовал пользоваться, в итоге мышка работала отврато, причем это была самая обычная гениусовская нетскрол+

    Решение было просто замена мыши на USB.


  1. ValdikSS
    01.05.2024 08:42

    Есть ли обратные переходники задёшево? Периодически нужно подключить обычные USB-клавиатуру и мышь в компьютеры с PS/2.


    1. aik
      01.05.2024 08:42

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

      Для мышей хуже, только пробовать.


    1. VT100
      01.05.2024 08:42

      Как-тодавно - разломал зелёный переходник USB -> PS/2. Там было тупо 4 провода. Может есть обратная совместимость?


      1. geher
        01.05.2024 08:42
        +2

        Есть мыши, поддерживающие оба протокола и выбирающие правильный при подключении. К ним переходник обычно в комплекте шел как оаз такой, на 4 провода.

        А те, что могут работать только по одному протоколу через такой переходник не заработают.

        Что интересно, доже многие современные USB мыши сохраняют совместимость с PS/2 и могут работать через такой простой переходник.


      1. salnicoff
        01.05.2024 08:42
        +1

        Зеленый — это лоджитековский? Их мыши умели по одним проводам работать и как PS/2, и как USB, надо было только физически воткнуть в нужную «дырку», для чего такой примитивный переходник и сделали. Мыши других производителей таким свойством вроде как не обладали.


    1. Martynov_M Автор
      01.05.2024 08:42

      Есть ли обратные переходники задёшево? Периодически нужно подключить обычные USB-клавиатуру и мышь в компьютеры с PS/2.

      Поддержка «USB + PS/2» должна быть прописана в характеристиках самого устройства.
      Например, на OZON в продаже есть и клавиатуры, и мыши, в которых указано:

      • Интерфейс подключения: USB, PS/2.

      Цена от 500 руб.

      В комплекте идет стандартный переходник:

      Если поддержка двух интерфейсов «USB + PS/2» в устройстве не заявлена, то этот переходник работать не будет.


  1. sansar
    01.05.2024 08:42

    некрофилы....

    мой изврат оригинальнее...

    все демо стенды с NVR и DVR леплю с тачпадами от древних ноутов или трекболами от хз чего(на алике такого много). Пользоваться намного удобнее чем airmouse и китайские реги замечально этот hid понимают, в отличие от контроллеров тачскринов.


    1. appman54321
      01.05.2024 08:42

      А это точно безопасно?


  1. FotoHunter
    01.05.2024 08:42
    +2

    У меня такой-же переходник, как в обзоре и я тоже столкнулся с мышиной проблемой. Мышь древняя с шариком кажется Genius, на некоторых компах работала нормально, а на других дёргалась. В принципе мне было принципиально только клавиатуру подключить Multimedia Microsoft (эргономичная, изогнутая), так что мыш с шариком в стол, а пользуюсь обычной usb. Шариковую сохранил только потому, что в одной из контор, где я работал оптические мыши дохли примерно за 2 недели то двигаться переставали, то кнопки ломались...


  1. Vilos
    01.05.2024 08:42

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

    При этом скрин от старого доброго WireShark`а. Да, я понимаю, что вроде как файл формировался через USBPcap, а затем открывался типа дамп в Wireshark`e.... но давайте будем честны, USBPcap ставится модулем в Wireshark и захват не обязательно делать с консоли и потом скармиливать в Wireshark. Путь намного короче: открываем Wireshark снимаем дамп и видим сразу его расшифровку. И дааа....если уж используете какое-то ПО, то хотя бы напишите, что это Wireshark, а не просто "Получаем файл с трафиком".


    1. HardWrMan
      01.05.2024 08:42

      USBPcap ставится модулем в Wireshark

      Я, конечно, давно не переустанавливал Акулу, но насколько я помню, то там при установке если установить галку напротив "Установить USBPCap" то вызывается отдельная инсталяция этого самого USBPcap. И если он в системе уже есть, то можно не устанавливать, подхватится уже установленный (но при установке может сказать, что версия старая и давайте обновим). А в остальном согласен - захватывать можно прямо в Акуле.


    1. Martynov_M Автор
      01.05.2024 08:42

      давайте будем честны, USBPcap ставится модулем в Wireshark.

      Я установил Wireshark версию «Portable».
      USBPcap там не было. Может я что-то сделал не так.
      USBPcap я ставил отдельно.

      если уж используете какое-то ПО, то хотя бы напишите, что это Wireshark.

      В описании программы USBPcap уже указано, что файл с трафиком можно открыть в программе Wireshark.
      Поэтому для меня самый короткий путь – это установить USBPcap и следовать инструкции.


  1. GADzillo
    01.05.2024 08:42

    Самая классная фишка PS/2 - запуск компа с клавиатуры. Ни через один переходник добиться этого с USB-клавиатуры не вышло. Может кто-то сталкивался и решил такую проблему?


    1. HardWrMan
      01.05.2024 08:42
      +3

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


      1. HardWrMan
        01.05.2024 08:42
        +2

        А, забыл добавить: при этом надо убедиться, что USB порт, куда вставлена клавиатура через переходник, запитана от дежурного +5VSB. У некоторых материнских плат некоторые (а иногда - все) гнёзда постоянно сидят на нём, у некоторых материнских плат у каждой пары гнёзд (даже у хидера на передние разъёмы) переключается джамперами. Следует смотреть в мануале на материнку. Иначе по понятной причине тоже ничего работать не будет. Примеры под спойлером.

        Hidden text

        Кстати, не следует увлекаться с переключением USB гнёзд на дежурку, по причине ограниченности мощности последнего. Более того, при старении БП он первый уходит в разнос, от чего многие устройства перестают работать в USB гнёздах ну или если что-то жрущее вроде HDD подключить. Переключайте только те, что реально нужны. Но напоминаю: есть странные материнки, где гнёзда на дежурке и переключить нельзя. У меня была такая материнка на G31.


  1. MaFrance351
    01.05.2024 08:42
    +1

    Есть такой переходник, прямо как на КДПВ. Подключаю через него клавиатуру от старого брендового ПК Compaq, которая по ощущениям очень нравится.

    Там ещё есть нюанс, что дополнительные клавиши, программируемые через софт Compaq, при подключении клавы через переходник, не работают.


  1. Mizandari
    01.05.2024 08:42
    +1

    У меня такой переходник, noname, работает стабильно, с клавиатурой. Мышь ps/2 не подключал, да и нету у меня ее. Схема подключения более сложная, тк переходник втыкается в USB 3 хаб на мониторе, а он, в свою очередь, в компьютер.


  1. fearan
    01.05.2024 08:42
    +2

    У меня уже десятилетиями безпроблемно работает такой переходник с воткнутой в него оригинальной Model M 1984-го года.


  1. Sdima1357
    01.05.2024 08:42

    Все мои мышки на usb ls работают на 1000 hz. То есть отвечают с новой позицией на каждый запрос от хоста. Возможно ограничение у Вас именно в ОС


    1. HardWrMan
      01.05.2024 08:42

      Многие путают частоту опроса шины физическим контроллером (пакет SOF) и частоту поллинга системой драйвера. То, что указано в статье относится к SOF. При этом ОС может поллить драйвер с любой частотой, физический интерфейс от этого быстрее не станет. Почему так сильно отличаются частоты опроса шины? Ну, оно зависит от битрейта же. Ниже битрейт - медленнее опрос, чтобы между ними влезло определённое количество информации.

      Что касается ваших мышек, если они действительно выдают обновление каждый SOF на FS так может быть они просто FS устройства? Это, вроде, не возбраняется для HID класса, а многие игровые именно такие и есть, даже если они без дополнительных кнопок.


      1. Sdima1357
        01.05.2024 08:42

        bInterval в HID UsbEndPointDescriptor ( ответ устройства на на запрос ) и для LS и FS это интервал опроса устройства в миллисекундах. Почти у всех LS мышек и клавиатур он 10mS . Хост может опрашивать реже или чаще , но не факт, что ему ответят. Физических ограничений для 1mS интервала опроса LS interrupt HID endpoint нет. LS interrupt может читать с устройства 1000 пакетов по 8 байт в секунду. 125 Hz - это рекомендация микрософта, которой следуют многие производители.

        Я проверял: Поговорим с мышами? Или Soft USB HOST на Esp32


        1. Martynov_M Автор
          01.05.2024 08:42

          Возможно, я ошибаюсь, но HID-протокол строго регламентирован, и HID-мышь – это простейшее устройство HID-протокола.

          HID-мышь работает только в одну сторону. Она передает данные на хост. Она не умеет получать данные от хоста. Все переданные ей пакеты – игнорируются.

          Опрашивать мышку на какой-либо частоте вы не можете. Только мышка решает, на какой частоте скидывать вам пакеты на хост.

          Если в вашей мышки установлен микроконтроллер

          • USB 1.0 Full Speed – 1000 Гц.

          То мышка может скидывать пакеты на хост с частотой 1000 Гц.

          Для переключения на другие частоты вам потребуется либо драйвер от производителя:

          Либо вот такой переключатель (на корпусе мышки):

          Возможно, в вашей мышки установлен микроконтроллер, который никак не настраивается. Тогда, да, он может быть зафиксирован на частоту:
          125, 250, 500, 1000 Гц.

          Для того, чтобы определить частоту работы вашей мышки (реальную, а не теоретическую) достаточно всего лишь открыть вот эту ссылку.


          1. Sdima1357
            01.05.2024 08:42

            USB устройство вообще ничего не может инициировать(кроме сброса шины). Оно только отвечает на запросы хоста. Хост передает запрос на "IN" - device отвечает данными или отказом в передаче. Кроме того все девайсы принимают сигналы и настройки c EP0


            1. HardWrMan
              01.05.2024 08:42

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


              1. Sdima1357
                01.05.2024 08:42

                Так и есть. Но это не ограничение протокола USB LS , а реализация конкретного контроллера. И кстати 10mS bInterval это тупо копипаста с примера на дескриптор из:

                Device Class Definition
                for Human Interface
                Devices (HID)
                Firmware Specification—5/27/01
                Version 1.11

                Видимо , что 8 mS рекомендовано MS изза очень старых USB хабов , чтобы на забить шину несколькими устройствами.


                1. Martynov_M Автор
                  01.05.2024 08:42

                  Эксперимент.

                  Я запустил программу USBPcap, но никак не взаимодействовал с HID-устройствами.
                  Я не шевелил мышкой, не нажимал никаких кнопок, ничего не делал. И вот что я получил:

                  Перед вами весь USB-трафик, который прошел за 63 секунды, между моим переходником и компьютером.

                  При подключении переходник установил интервал опроса 8 мс.

                  • bInterval: 8

                  Код назначенных устройств:

                  • 2.1.0 – Составное USB-устройство

                  • 2.1.1 – HID-клавиатура

                  • 2.1.2 – HID-мышь.

                  Трафик пустой.

                  Единственное, что есть в трафике, это на 63-й секунде я нажал кнопку «q» на клавиатуре, чтобы закрыть программу USBPcap.
                  Это нажатие было зафиксировано. Больше ничего.

                  Вопрос к вам, почему трафик пустой? Где вот эти самые опросы, как вы говорите, которые хост посылает на мышку и клавиатуру каждые 1 мс? Их нет в трафике.

                  Эксперимент №2.

                  Я запустил программу USBPcap:

                  • На 7-ой секунде я нажал на кнопку мышки.

                  • На 44-й секунде я немного пошевелил мышкой.

                  • На 179-й секунде я нажал кнопку «q».

                  Я вижу, что как только HID-устройство перестает скидывать данные на хост, то хост о нём тут же забывает.
                  Я не вижу никаких опросов со стороны хоста.

                  За 180 секунд их здесь должно быть 20 тысяч опросов со стороны хоста. Их нет.


                  1. Sdima1357
                    01.05.2024 08:42
                    +1

                    Ваш анализатор их игнорирует именно потому что их будет много

                    Посмотрите осциллографом например.

                    • IN and OUT tokens contain a seven-bit device number and four-bit function number (for multifunction devices) and command the device to transmit DATAx packets, or receive the following DATAx packets, respectively.

                      • IN token expects a response from a device. The response may be a NAK or STALL response or a DATAx frame. In the latter case, the host issues an ACK handshake if appropriate.

                      • OUT token is followed immediately by a DATAx frame. The device responds with ACK, NAK, NYET, or STALL, as appropriate.

                    • SETUP operates much like an OUT token, but is used for initial device setup. It is followed by an eight-byte DATA0 frame with a standardized format.

                    Выделено мной

                    Это отсюда , почитайте, там много интересного :)


                    1. HardWrMan
                      01.05.2024 08:42
                      +1

                      Подтвержу ваши слова практикой. У меня есть вот такой аппаратный USB сниффер: https://electronix.ru/forum/topic/169431-posovetuyte-po-apparatnomu-usb-sniferu/#comment-1866918

                      Я включил в него мышу с беспроводным донглом, вот что я получил:

                      Донгл подключился на FS, установил bInterval: 2, и притих. NAKи сыпятся каждый SOF шины, если двигать то пакеты летят чаще (но не каждый запрос получает ACK):

                      Если интересно посмотреть самому детально, то лог можно взять тут: https://cloud.mail.ru/public/q2nn/xqNm6Y4aS А программу тут: https://www.usbpacketviewer.com/downloads/usbpv.zip Она не требует установки и наличия сниффера для просмотра логов. В ней есть основные декодеры, парсеры на GITе: https://github.com/UsbPacketViewer

                      PS Насколько я понял про работу физики USB, то тут хост всегда рулит и он прав, устройство не может само начать транзакции, поэтому SOF шины по сути это аппаратный поллинг статуса, в котором есть флаги, если ответ будет ACK. Во флагах - текущие запросы прерывания и/или наличие данных в IN эндпоинтах. И когда хост их примет, то он начнёт опрос всех IN эндпоинтов, которые требуют внимания. OUT эндпоинты обслуживаются хостом когда надо ему, устройство может лишь ответить принял он его или не готов принимать (для повторения позже).


                  1. Sdima1357
                    01.05.2024 08:42
                    +1

                    Вот что пишут в ограничениях на USBcap https://desowin.org/usbpcap/capture_limitations.html:

                    On this page the limitations of USBPcap are presented and some terms are
                    clarified. Prior knowledge of USB specification is higly recommended.

                    ...

                    Interrupt transfers

                    Interrupt transactions that weren’t NAK’ed are made up of three packets: IN or OUT, DATA and ACK. USBPcap packet related to interrupt transfer contains data from DATA packet.

                    То есть, если положение не обновилось то девайс отвечает NAK , и USBcap это просто не отображает.


                    1. Martynov_M Автор
                      01.05.2024 08:42
                      +1

                      Спасибо вам!
                      Да, вы правы. Всё так и есть!

                      Разобрался в документации:

                      1. Все HID-устройства взаимодействуют с хостом через точки прерывания (interrupt endpoint).

                      2. HID-устройства не всегда передают данные. Большую часть времени они молчат. Но когда они начинают передачу данных, то им необходимо самое быстрое время отклика от хоста. Добиться этого можно только через механизм прерывания (interrupt endpoint).

                      3. Параметр bInterval – определяет интервал между точками прерывания.

                      4. Значение bInterval кодируется в миллисекундах (мс), в течение которого хост обязательно должен запросить новый отчет у устройства.

                      5. Хост постоянно опрашивает USB HID-устройства.

                      6. HID-протокол реализован таким образом, что хост сканирует каждую точку прерывания (interrupt endpoint) в поисках дескриптора «interrupt IN». Этот дескриптор указывает на то, что устройство отправило на хост новые данные.

                      7. Если новых данных нет, то устройство в праве ничего не отправлять хосту, а вернуть ему NAK.


                    1. Martynov_M Автор
                      01.05.2024 08:42
                      +1

                      На интуитивном уровне мой первый комментарий был отчасти правильный. :))

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

                      Да, конечно, хост опрашивает её стабильно 125 раз в секунду (125, 250, 500, 1000 Гц).
                      Но ей этот опрос – безразличен. Она возвращает пустые пакеты NAK.

                      А когда у неё есть, что сказать, она отправляет пакеты «interrupt IN».

                      В общем, USBPcap меня подвел. Простите меня. Там (в первом комментарии) я чушь написал.
                      Спасибо, что поправили. :)