Більшість з нас ніколи не замислюються над нашими клавіатурами, якщо вони працюють добре, але якщо ви на хвилинку зупинитеся, щоб подумати про це, вони надсилають лише сигнали на наші комп’ютери або на роботі активний процес перекидання назад ? Сьогоднішня публікація запитань SuperUser містить відповідь на цікаве запитання читача.
Сьогоднішня сесія запитань і відповідей надійшла до нас люб’язно від SuperUser - підрозділу Stack Exchange, угруповання веб-сайтів із питань та відповідей на основі спільноти.
Питання
Зчитувач SuperUser Ne Mo хоче знати, чи клавіатури USB надсилають лише сигнали, чи вони також їх приймають:
Клавіатурі USB не потрібно приймати будь-які сигнали від комп’ютера, лише живлення, так? Або йому потрібно отримувати сигнали, а також надсилати їх?
Чи клавіатури USB надсилають лише сигнали, чи отримують їх також?
Відповідь
Відповідачі за нас мають співавтори SuperUser ЛоуренсC та Дмитро Григор’єв. По-перше, ЛоуренсC:
Від " Визначення класу пристроїв для пристроїв інтерфейсу людини (HID) ”Специфікація:
![]()
Щоб змінити світлодіоди клавіатури, клавіатура приймає команду для цього. Отже, це не пристрій, що має лише вхід (тобто він виводить дані лише на хост). З огляду на це, існує процес узгодження та перерахування даних з усіма пристроями USB, які потребують розмови між хостом та пристроєм. Ви не можете мати USB-пристрій, призначений лише для читання. Навіть до USB контролер клавіатури комп'ютера приймав команди, оскільки виконував кілька речей, крім читання клавіатури ( посилання ):
![]()
Далі відповідає відповідь Дмитра Григор’єва:
Будь-який USB-пристрій, незалежно від його класу, потребує двостороннього зв'язку, щоб функціонувати. Кожен USB-пристрій (або функція з точки зору специфікацій USB) представлений у вигляді набору кінцевих точок, які можна розглядати як буфери, які приймають або приймають дані. Однак навіть кінцеві точки, які можуть надсилати дані, чекають на спеціальний пакет, який називається маркером, перш ніж вони зможуть відповісти:
![]()
Сірі поля відображають USB-хост, тоді як білі поля представляють функції USB ( джерело діаграми ).
Навіть так звані передачі переривань виконуються таким чином, коли хост USB опитує підключені пристрої за допомогою маркерних пакетів. Різниця між звичайними (масовими) переказами та перериваннями полягає в тому, що час опитування невеликий і гарантований в останньому випадку. І все-таки всі передачі ініціюються хостом.
Є що додати до пояснення? Звук у коментарях. Хочете прочитати більше відповідей від інших досвідчених користувачів Stack Exchange? Ознайомтесь із повним обговоренням тут .
Кредит зображення: Люк Джонс (Flickr)