Механизм опроса USB - PullRequest
       5

Механизм опроса USB

6 голосов
/ 27 января 2011

Почему USB использует механизм опроса вместо прерывания для обнаружения устройства?

Я читал здесь о переполнении стека, что если событие

  1. Синхронное (т.е. вы знаете, когда ожидать его в небольшом окне)
  2. Не срочно(т. е. медленный интервал опроса не имеет вредных последствий), и
  3. Частый (т. е. большинство ваших циклов опроса создают «хит»)

, тогда мы можем использовать опрос.Но в случае USB обнаружение устройств происходит не часто, поэтому лучше использовать механизм прерываний.

Спасибо за ваши ответы,

Zaheer

1 Ответ

6 голосов
/ 27 января 2011

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

Вы спросили

Почему механизм опроса USB вместо прерывания обнаруживает устройство?

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

Обратите внимание, что при обнаружении нового устройства все три точки, в которых рекомендуется опрос, не пройдены. Действительно, мы никогда не знаем, когда ожидать появления нового USB-устройства на шине (# 1), это случается редко (# 3) и в устройстве не активно, обнаружение его немедленно не является приоритетом (# 2). Зачем тратить время и энергию на проверку события, которое вряд ли произойдет?

...