Большинство из нас никогда особо не задумывается о своих клавиатурах, пока они работают хорошо, но если вы на мгновение задумитесь, они отправляют сигналы только на наши компьютеры или на работе есть активный двусторонний процесс ? В сегодняшнем посте SuperUser Q&A есть ответ на любопытный вопрос читателя.
Сегодняшняя сессия вопросов и ответов проходит благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Вопрос
Читатель SuperUser Ne Mo хочет знать, посылают ли USB-клавиатуры только сигналы или они тоже их принимают:
USB-клавиатуре не нужно получать какие-либо сигналы от компьютера, только питание, верно? Или ему нужно не только отправлять сигналы, но и получать их?
USB-клавиатуры только отправляют сигналы или они тоже их принимают?
Ответ
У авторов SuperUser, LawrenceC и Дмитрия Григорьева, есть ответ. Во-первых, ЛоуренсC:
Из " Определение класса устройства для устройств с интерфейсом пользователя (HID) " Спецификация:
![]()
Чтобы изменить индикаторы клавиатуры, клавиатура принимает соответствующую команду. Таким образом, это не устройство, предназначенное только для ввода (то есть оно только выводит данные на хост). При этом существует процесс согласования и перечисления со всеми USB-устройствами, для которого требуется обмен данными между хостом и устройством. У вас не может быть USB-устройства «только для чтения». Даже до USB контроллер клавиатуры компьютера принимал команды, потому что он делал несколько вещей, кроме чтения с клавиатуры ( ссылка ):
![]()
Далее следует ответ Дмитрия Григорьева:
Для работы любого USB-устройства независимо от его класса требуется двунаправленная связь. Каждое USB-устройство (или функция с точки зрения спецификаций USB) представлено как набор конечных точек, которые можно рассматривать как буферы, принимающие или принимающие данные. Однако даже конечные точки, которые могут только отправлять данные, ждут специального пакета, называемого токеном, прежде чем они смогут ответить:
![]()
Серые прямоугольники представляют хост USB, а белые поля представляют функции USB ( источник диаграммы ).
Таким образом выполняется даже так называемая передача прерывания, когда хост USB опрашивает подключенные устройства с помощью пакетов маркеров. Отличие регулярных (групповых) передач от прерываний заключается в том, что в последнем случае время опроса невелико и гарантируется. Тем не менее, все передачи инициируются хостом.
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .
Кредит изображения: Люк Джонс (Flickr)