Или я тормоз или одно из двух.
Цикл опроса устройства с конечной точкой по прерыванию (endpoint:Interrupt)
однозначно определяется через дескриптор(описание) ХИД-устройства.
Если ХИД-устройство запрашивает в дескрипторе интервал опроса 10 мс, то это означает что запрос от хоста(компьютера) может прийти в интервале от 1 ДО 10мс от ПРЕДЫДУЩЕГО запроса. Т.е. от 1000 до 100 запросов в секунду.
Остается вопрос НАКУА ? Дело в том. что никто не мешает пропатчить драйвер УСБ-устройства чтобы тот плевал на то, что объявлено самим устройство и инициировать прерывание когда хочет в диапазоне 1-10мс. Устройство ОБЯЗАНОГО обработать этот запрос. Но самое главное НЕ ФАКТ что устроство УСПЕЕТ обработать тот запрос. В идеале оно выдаст NAK на запрос пришедший не вовремя и драйвер уйдет на следующий цикл ожидания. В кривом устройстве - это может вызвать все что угодно вплоть до зависания.
Для примера возмем гипотетический драйвер джойстики на прошивке мин-дога.
8 осей АЦП по 65 мкс дают больше чем 1/2 мкс только на опрос АЦП, плюс еще какое-то время на опрос кнопок, т.е. опрос состояния джойстика дает меньше 1 мс. Все ОК. Никто не мешает запросить опрос хоть 1мс.
Однако оптическая мышь на чипе ADN2051 обеспечивает получение координат не чаще чем 5,6 мс., т.е. запрос должен быть МИНИМУМ 6мс.
Т.е. получается все опять-таки зависит от железа.




Ответить с цитированием