Обычно замедляется ли опрос USB-клавиатуры, если она не используется?

Обычно замедляется ли опрос USB-клавиатуры, если она не используется?

Самые быстрые USB-клавиатуры, которые мне удалось найти, используют USB 2.0 с частотой опроса 1000 Гц.

Если я просто посмотрю фильм и не буду прикасаться к этой клавиатуре часами, действительно ли обмен данными USB туда-сюда будет повторяться каждую мс? Или я обычно перейду в некое состояние сна USB (например, опрос 1 Гц)?

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

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

(Этот вопрос касается обычных ПК с Windows, но мне также интересны устройства Android. Кстати, я думаю,ПС/2(У клавиатур нет двусторонней связи через кабель PS/2, если к клавиатуре не прикасаться, но, пожалуйста, поправьте меня, если я ошибаюсь.)

решение1

Обычно замедляется опрос USB-клавиатуры, если она не используется?

Нет, система не может определить, когда клавиатура"не используется"заранее.
Вы, пользователь, знаете, что не используете клавиатуру, но система не может определить ваши намерения.

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

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

Да, это определение протокола USB для двунаправленной связи на общем носителе.

или я обычно перейду в некое состояние сна USB (например, опрос с частотой 1 Гц)?

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

Обратите внимание, что этот опрос обычно выполняется в первую очередь контроллером USB хоста, а не ЦП хоста USB. Этот опрос может иметь минимальное влияние или нагрузку на процессор ПК или ОС.


USB — это стандарт, реализованный в аппаратном и программном обеспечении. Ожидается, что программная сторона реализации ОС будет схожей для любой ОС, включая Windows и Android.

Например, частота опроса USB-устройства определяется самим устройством и не является решением хостовой ОС.
Эта частота опроса указывается вДескриптор конечной точкии может варьироваться от «1 мс для низкоскоростных/полноскоростных устройств до 125 мкс для высокоскоростных устройств».


Я думаю, что клавиатуры PS/2 не имеют обратной связи через кабель PS/2, если клавиатура не трогается.

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

решение2

Если я просто посмотрю фильм и не буду прикасаться к этой клавиатуре в течение нескольких часов, действительно ли обмен данными по USB-порту будет продолжаться каждую мс? Или я обычно перейду в некое состояние сна USB (например, опрос с частотой 1 Гц)?

каждую мс ПК должен начинать работу с IN-запроса

На самом деле, "коммуникация" не происходит каждую мс. Но это правда, что хосты USB с низкой скоростью непрерывно посылают шине импульс "keep-alive" каждую мс. Это называется "USB-фреймы". Так что никакой фактической коммуникации здесь не происходит.

"Связь" происходит только тогда, когда хост отправляет запрос на опрос (IN), как вы справедливо заметили. Обычная частота опроса для Windows составляет 8 мс, один раз на 8 кадров, но это зависит. Если используется фирменный драйвер, как "игровая клавиатура", как вы сказали, опрос может происходить каждую 1 мс.

Да, это расточительный процесс, правда. Вот почему большинство портативных устройств используют технологию энергосбережения. Вместо того, чтобы замедлять частоту опроса, они используют стандартную функцию USB_SUSPEND. Если их внутренний алгоритм определяет, что с клавиатуры или мыши не поступает новая информация, хост выборочно приостанавливает работу каждого HID (человеко-интерфейсного устройства). Задержка входа в состояние SUSPEND составляет 8 мс. Если я правильно помню, тайм-аут бездействия составляет ~200 мс, после чего USB-провода переходят в состояние SUSPEND, без переключения.

При касании клавиатуры или мыши они генерируют событие "Wake-UP", и хост ВОЗОБНОВЛЯЕТ опрос трафика и связи USB. Да, это ВОЗОБНОВЛЕНИЕ занимает больше времени, чем обычный опрос, 15-20-50 мс, и даже больше, если вся система в какой-то степени засыпает, поэтому пользователи могут быть разочарованы "задержкой клавиатуры". Но эта активно управляемая функция приостановки действительно экономит заряд батареи.

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

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

Связанный контент