Как повысить частоту обновления мыши

Разгон USB мыши или Software наносит ответный удар

Разгоном мышей на сайте уже занимались, причем аппаратным (см. статью «Модификация мыши: хвостатой, оптической, вибрирующей»). Однако поводом к написанию сего опуса и программы послужила случайно попавшаяся на глаза статья на THG.RU («Разгоняем мышь: как увеличить частоту USB в четыре раза»). Безусловно, идея разгона правильная, потому что истинная 🙂 и сомнениям подвергаться не может, как бы не злопыхали апологеты номиналов 🙂 Но вот конкретная реализация – только под Windows XP SP2 и путем хака (или патча, кому как больше нравится) системного файла – удовлетворительной признана быть не может.

реклама

Краткая теория разгона.

USB мыши, как и любые другие устройства на USB шине, работают согласно стандарту этой самой шины (было бы удивительно, если бы это было не так). Стандарт же сообщает нам, что USB шина – это хост-управляемая поллинговая (опросная) шина с периодом опроса устройств в 1 миллисекунду (по версии USB1.1). Следовательно, максимально достижимая частота опроса USB мышей – 1000 опросов в секунду. Однако стандарт уточняет, что низкоскоростные (Lowspeed) устройства, к которым мыши обычно и относятся, должны запрашивать опрос не чаще, чем раз в 10 командных циклов шины, что они и делают (соблюдая стандарт).

Внимательный читатель заметит, что 10 командных циклов по 1 миллисекунде каждая даст частоту опроса в 100 раз за секунду. Почему же USB мыши по умолчанию дают частоту опроса 125? Дело в том, что драйвера хост-контроллера, писанные MS, устанавливают частоту опроса устройства по значениям степени двойки, округляя запрошенное устройством (точнее его драйвером) значение в меньшую сторону, причем в диапазоне от 1 до 32. (Стандарт USB шины позволяет запросить интервалы опроса в любое число от 1 до 255). Следовательно, запрошенный период в 10 циклов округляется до 8, что и дает искомые 125 опросов в секунду.

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

Источник

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

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