Чому NKRO-клавіатура втрачає клавіші: пояснення

N-key rolover дозволяє клавіатурі повідомляти про багато одночасних натискань без фантомних клавіш, але не гарантує реєстрацію кожного натискання за будь-яких умов. Дизайн HID-звітів, прошивка, дребезг, сканування матриці, поведінка підключення та обробка вводу на боці хоста все ще можуть обмежувати великі акорди. Посібник розділяє гостинг і збої rollover, пояснює ліміти завантажувального протоколу та дескриптора, відрізняє rollover від частоти опитування і показує, як браузерний тестер клавіатури виявляє фактичний шаблон подій, залишаючись нездатним сертифікувати внутрішню матрицю або діодну схему пристрою. Зникла клавіша частіше вказує на прошивку, дребезг або матрицю, ніж на пропускну здатність USB.

Що написано на коробці проти того, що відбувається насправді

Що ви читаєте на коробціЩо це означає насправді
«Full NKRO»Прошивка здатна повідомляти про дуже велике число одночасних клавіш, але не обов’язково про кожну завжди.
«Без гостингу»Справжня діодна ізоляція запобігає фантомним клавішам у протестованих комбінаціях, але прошивочні прийоми можуть не покривати всі сценарії.
«Працює з будь-якою грою»У плати все ще є стеля дескриптора HID та цикл сканування — дуже великі акорди все ж можуть втрачати клавіші.
«N-key rollover»N задається клавіатурою, а не протоколом. Плата, що заявляє 6KRO, має практичну стелю в шість.

Специфікації не брехня, але й не повна картина. Ярлик каже, на що плата спроектована; дескриптор і прошивка кажуть, що вона реально може доставити в протестованих умовах.

«Повноцінний NKRO» входить до числа найактивніше рекламованих специфікацій клавіатур і зазвичай подається як гарантія того, що ви ніколи не втратите жодного натискання. Це формулювання вірне наполовину. Справді діодно-ізольована реалізація NKRO повністю вирішує матричний гостинг, але сам ярлик «NKRO» не доводить такої реалізації, і навіть справжня NKRO-плата не гарантує, що кожне натискання буде зафіксоване за будь-яких умов. Розрив між цими двома твердженнями породжує чималу плутанину, сталий потік необґрунтованих повернень і масу форумних суперечок між людьми, що описують одним і тим самим словом різні проблеми.

Гостинг і rollover — дві різні проблеми

Гостинг: проблема матричної розводки

Гостинг — апаратний артефакт матриці. Клавіатури сканують клавіші як сітку рядків та стовпців, а не підключають кожен перемикач індивідуально, бо індивідуальна розводка потребувала б непрактичної кількості виводів контролера. У матриці без ізолювальних діодів натискання трьох певних клавіш може зімкнути електричний шлях, що переконує контролер, ніби натиснута й четверта, неторкана клавіша. Ця фантомна реєстрація і є гостинг, і це властивість конструкції схеми, а не прошивки.

Rollover: скільки клавіш реєструється одночасно

Rollover, скорочено KRO, описує, скільки клавіш плата може повідомити одночасно. 2KRO — дві зразу, 6KRO — шість, а повноцінний NKRO — в принципі, всі.

Як NKRO усуває гостинг

NKRO — ліки від гостингу, бо коректні реалізації ставлять діод послідовно з кожним перемикачем: струм не може текти назад через ненатиснуті клавіші і створювати хибні шляхи. Коректно спроектована і коректно реалізована діодно-ізольована матриця запобігає традиційному матричному гостингу. Якщо плата справді реалізує NKRO з діодами, фантомні натискання у звичайних умовах експлуатації практично неможливі. Ця частина маркетингової заяви цілком точна. Помітьте: альтернативні конструкції матриці теж можуть досягати високого rollover без діодів на кожен перемикач; ключова різниця — чи ізольовані електричні шляхи, а не конкретна топологія.

Вид зверху на клавіатуру з багатьма одночасно натиснутими клавішами, що демонструє повноцінний N-key rollover

Межа, яку NKRO не може прибрати

Ось що маркетинг послідовно опускає. Клавіатури USB HID передають коди клавіш усередині пакетів звіту, структура яких оголошена в HID-дескрипторі пристрою, і максимальна кількість одночасних клавіш, що їх плата може повідомити, задається цим дескриптором і прошивкою, а не універсальним правилом HID. Завантажувальний протокол допускає шість звичайних клавіш плюс біти модифікаторів. Далі реалізації різняться: одні використовують більший звіт зі скінченною кількістю слотів клавіш, інші — звіти у стилі бітової карти, здатні подати більшість або всі клавіші, треті виставляють кілька логічних HID-інтерфейсів. Єдиної фіксованої стелі для всіх клавіатур немає — практична межа така, якою її оголошують дескриптор і прошивка конкретної плати.

Натисніть достатньо багато клавіш у межах одного вікна звіту, і пакету просто нікуди подіти надлишок. Прошивка NKRO піднімає цю стелю значно вище за базову плату 6KRO, використовуючи прийоми на кшталт бітових звітів або кількох логічних HID-інтерфейсів, але жодна прошивка не здатна перевищити ємність, яку її власний дескриптор оголошує хосту.

Наслідок: навіть плата, заявлена як повноцінний NKRO, може втрачати клавіші при екстремальних акордах — не через гостинг, який усунули діоди, а тому, що звіт досяг ємності, оголошеної його дескриптором. У звичайному використанні це справді рідкість. Проте саме тому NKRO не означає нескінченних клавіш із нульовою втратою за будь-якого навантаження.

Чому ваша ігрова плата все ще може втрачати клавіші

Коли плата з високим rollover на практиці втрачає клавіші, імовірні причини такі:

  • Переповнення звіту HID при незвично великих одночасних натисканнях, як описано вище.
  • Затримка прошивки або дребезгу, коли спрацьовування відбувається швидше, ніж цикл сканування встигає розв’язати чисто, — на бюджетних платах це найчастіша причина.
  • Завищена заява про NKRO, коли специфікація на папері перевищує реалізовану дійсність.
  • Обробка вводу на боці хоста або ОС — перевантажений USB-контролер, непідходящий хаб або високе навантаження процесора можуть внесати вклад, але для типової настільної клавіатури пропускна здатність USB рідко є вузьким місцем. Загублена клавіша частіше виявляється проблемою прошивки, дребезгу або конструкції матриці, ніж пропускної здатності.

Розрізнити їх дозволяє тестер, що пише в журнал сирі коди подій, які фактично отримав браузер: лише тоді видно точно, які клавіші дійшли, а які — ні. Вгадування за відчуттям від клавіатури стабільно дає хибний діагноз.

Rollover і частота опитування — не одне й те саме

Ці дві специфікації незалежні, і їх змішання веде до покупки не того апгрейду:

  • Rollover (KRO) визначає, скільки клавіш може реєструватися одночасно.
  • Частота опитування (Hz) визначає, як часто плата повідомляє комп’ютеру, зазвичай 125, 250, 500 або 1000 разів на секунду.

Плата може пропонувати опитування 1000Hz при лише 2KRO або повноцінний NKRO при скромних 125Hz. Високе опитування може скорочувати очікування на етапі звіту, а високий rollover дозволяє реєструвати більше натискань разом. Якщо скарга на сприйману затримку — досліджуйте частоту опитування, час кадру та системну затримку. Якщо скарга на клавіші, що зникають при акордах, — досліджуйте rollover і дизайн HID-звіту. Вважати їх однією специфікацією — шлях до апгрейду, що не адресує симптом.

Скільки rollover вам справді потрібно?

Співвіднесіть специфікацію з фактичним використанням, а не з маркетинговим рівнем:

  • Друк тексту: 6KRO зазвичай достатньо, бо звичайний друк включає відносно невеликі перекриваючі комбінації.
  • Масові ігри: 6KRO часто покриває два напрямки руху плюс модифікатори та призначену здібність, але перевірте комбінації, які реально використовує ваша гра.
  • Ритм-ігри, стенографія, складні макро-розкладки: повноцінний NKRO може бути цінний, бо ці сценарії навмисно використовують великі одночасні вводи.

Якщо продавець наполягає, що повноцінний NKRO необхідний незалежно від сценарію, це торгова позиція, а не технічна вимога.

Перевіряйте, а не довіряйте ярлику

Наш тестер клавіатури показує живу карту клавіш поруч із журналом подій key-down та key-up, які отримав браузер. Натисніть навмисно складний акорд і перевірте три умови: кожна натиснута клавіша підсвічється, жодна ненатиснута не підсвічється і кожна натиснута клавіша з’являється в журналі подій. Потім нарощуйте розмір акорду, поки щось не відмовить. Це виявляє, скільки одночасних клавіш ваша ОС та браузер доставили на сторінку, — практична, спостережувана браузером межа rollover. Він не може прочитати HID-дескриптор клавіатури або довести, що внутрішня матриця діодно ізольована, тому вважайте чистий результат сильним доказом, а не апаратною сертифікацією.

Екран комп'ютера з вебзастосунком тестера клавіатури, що підсвічує натиснуті клавіші для визначення меж гостингу та rollover

Якщо клавіші втрачаються лише при підключенні через хаб або лише під високим навантаженням системи, клавіатура, ймовірно, ніпричім, а несправність — у шляху підключення або конфігурації хоста. Перевірте прямо на порті материнської плати, перш ніж робити висновки про обладнання.

Цикл сканування матриці: як клавіатури насправді читають клавіші

Розуміння того, як клавіатура апаратно виявляє натискання, прояснює, чому виникає гостинг, чому діоди його запобігають і чому частота сканування значуща нарівні зі специфікаціями rollover. Процес замискуватіший за просту модель «натиснув клавішу — відправив сигнал», яку собі уявляє більшість користувачів.

Всередині клавіатури перемикачі розташовані сіткою рядків та стовпців, кожен на перетині одного рядкового та одного стовпцевого лінії. Мікроконтролер не здатен прочитати всі клавіші одночасно; замість цього він швидко сканує їх, подаючи високий рівень на один рядок за раз і читаючи всі стовпці, щоб побачити, які перемикачі цього ряду натиснуті. Потім він переходить до наступного ряду і повторює. Повне сканування типової матриці на сучасних контролерах займає помітно менше мілісекунди — точні цифри залежать від контролера та прошивки, — тому частота сканування зазвичай становить тисячі разів на секунду.

У матриці без ізолювальних діодів натискання кількох клавіш в одному рядку або стовпці може створювати ненавмисні електричні шляхи. Якщо три клавіші утворюють на сітці літеру L, струм від активного ряду може пройти через натиснуті перемикачі й повернутися неактивним рядом, переконавши контролер, що натиснута й четверта клавіша — в куті літери L. Це механізм гостингу, прямий наслідок конструкції матриці. Скан швидкий, але електричні шляхи не ізольовані.

Додавання діода послідовно з кожним перемикачем — поширений спосіб заблокувати зворотний струм і запобігти традиційним фантомним колам. Продукт, що продається як апаратний діодний NKRO, зазвичай використовує ізоляцію на кожен перемикач, але існують альтернативні конструкції матриці, і плата може повідомляти про багато одночасних клавіш, не доводячи, що використовує саме цю топологію. Сама по собі відсутність видимих діодів на кожну клавішу не визначає фактичний rollover або гостинг-поведінку плати.

З частотою сканування взаємодіє і дребезг. При змиканні механічного перемикача контакти фізично відскакують короткий час — зазвичай кілька мілісекунд залежно від конструкції, — породжуючи швидкі переходи вмкнено-вимкнено. Контролер має дочекатися, поки відскоки втихнуть, перш ніж зареєструвати натискання, тому кожен цикл сканування включає перевірку дребезгу. Якщо цикл — одна мілісекунда, а вікно дребезгу — п’ять, контролеру потрібні п’ять послідовних сканів, що показують натискання, перш ніж він зафіксує подію. Затримка дребезгу — усвідомлений компроміс: короткі вікна чутливіші, але ризикують зафіксувати шум; довгі стабільні, але додають вхідну затримку. Реалізація дребезгу — проектне рішення прошивки, тому дві клавіатури з ідентичним залізом перемикачів можуть відчуватися по-різному в чутливості.

Якщо ваша гра або застосунок регулярно затискає багато клавіш одночасно, NKRO з надійною ізоляцією може дати реальну користь. Для звичайних ігрових акордів із трьох–п’яти одночасних клавіш добре спроектованої плати 6KRO може вистачити, але точні комбінації мають значення. Перш ніж доплачувати за NKRO, протестуйте плату, якою володієте, або знайдіть модельний технічний огляд. Чистий браузерний результат — корисний доказ фактичної поведінки, а не апаратна сертифікація.

Чому діоди коштують грошей: виробнича економіка NKRO

Якщо діоди так ефективно вирішують гостинг, чому їх немає в кожній клавіатурі? Відповідь економічна, і розуміння структури витрат допомагає критичніше читати заяви виробників.

У традиційній діодно-ізольованій матриці NKRO кожен перемикач має свій діод. Сам компонент — лише частина витрат: внесок роблять розводка PCB, складання, пайка, інспекція та прошивка. Точні витрати залежать від постачальника, обсягу виробництва, конструкції матриці та того, чи використовує клавіатура іншу архітектуру, тому проста оцінка в доларах на клавішу ненадійна.

Багато бюджетних мембранних клавіатур використовують надруковані провідники на гнучких листах, а не дискретні компоненти перемикачів. Додати діоди на кожну клавішу в такій конструкції вимагало б іншої або гібридної конструкції та додаткового складання, послаблюючи частину її цінової переваги. Це не значить, що всі мембранні архітектури однакові або що високий rollover неможливий; реалізацію треба оцінювати за моделлю.

Преміальні механічні клавіатури часто рекламують NKRO як фічу, тоді як дешевші конструкції можуть використовувати інші розкладки матриці, бітові звіти або кілька логічних інтерфейсів, щоб підняти фактичний rollover. Прийом із форматом звіту може збільшити число поданих клавіш, але сам по собі не доводить, як електрична матриця поводиться з комбінаціями, схильними до гостингу. Ярлик тому не повністю описує реалізацію — ось чому модельне тестування залишається корисним.

Ця економічна структура пояснює і живучість 6KRO як стандарту. Шестиклавишний rolover досяжний на матриці без діодів за рахунок продуманої розкладки, що оминає поширені схильні до гостингу комбінації. Для виробників, нацелених на масовий ігровий ринок, 6KRO може дати достатню функціональність при меншій складності складання, а повноцінний NKRO додає запас для тих, кому він потрібен. Різниця в ціні надто сильно залежить від конструкції та моделі, щоб зводити її до універсальної роздрібної надбавки.

Покупцю практичний висновок такий: ставтеся до заяв про NKRO як до відправної точки, а не до повного опису. Тестуйте дедалі більші акорди і спостерігайте, чи не зникають натиснуті клавіші і чи не з’являються фантомні. Результат каже про те, що дійшло до цього браузера на цьому хості та підключенні; для ваших реальних комбінацій це корисніше за один ярлик, але не розкриває внутрішню конструкцію матриці.

Чи варто купувати NKRO?

Справжній діодно-ізольований NKRO покінчив із матричним гостингом у звичайних умовах експлуатації, але ярлик «NKRO» сам по собі не доводить такої реалізації, і кожна плата зберігає практичну стелю одночасних натискань, задану її HID-дескриптором та прошивкою. Трактуйте «повноцінний NKRO» як відсутність фантомних клавіш і високу фактичну ємність одночасних натискань, а не буквально кожну клавішу, завжди, за будь-якого міркуваного навантаження. Перевірте свою конкретну плату, перш ніж довіряти ярлику, розрізняйте проблеми rollover та опитування, бо

Поширені запитання

Що означає NKRO стосовно клавіатури?

N-key rolover описує здатність клавіатури реєструвати багато одночасно затиснутих клавіш без їхньої втрати чи помилкового зчитування. Система позначень проста: плата 2KRO надійно обробляє дві одночасні клавіші, 6KRO — шість, а повноцінний NKRO прагне обробити всі клавіші на платі разом. Специфікація перевіряється натисканням навмисних акордів із підтвердженням незалежної реєстрації кожної клавіші. Це важливіше всього для швидких друкарок, чиї натискання перекриваються, і для геймерів, що затискають клавіші руху одночасно з модифікаторами та призначеними здібностями. Сам ярлик при цьому нічого не каже про ліміт звіту USB HID.

Що саме таке гостинг клавіатури?

Гостинг виникає, коли натискання певної комбінації клавіш призводить до реєстрації клавіші, яку ви не торкалися. Причина криється в матричній розводці. Клавіатури сканують клавіші, розташовані сіткою рядків та стовпців, а не підключають кожну індивідуально, і в матриці без ізолювальних діодів три специфічні одночасні натискання можуть зімкнути електричний шлях, який контролер сприймає за натиснуту четверту клавішу. Дешеві мембранні клавіатури та багато клавіатур ноутбуків демонструють це легко. Правильно спроектовані плати розводять матрицю з діодами, так що жодна комбінація не створює фантомне коло, тому гостинг на таких платах практично неможливий.

Чи справді NKRO усуває гостинг?

Матриця NKRO з коректно реалізованою діодною ізоляцією спроектована так, щоб запобігати традиційному матричному гостингу у звичайних умовах експлуатації. Якщо ви спостерігаєте фантомну клавішу на клавіатурі, заявленій як NKRO, можливі пояснення включають завищену заяву, дефект прошивки або сканування, або інший режим відмови — наприклад переповнення звіту HID, лише схожий на гостинг. Браузерний тест може показати доставлений шаблон подій, але сам по собі не визначить внутрішню причину; повторіть тест на прямому підключенні, де це можливо, запишіть точний акорд і порівнюйте результат до та після будь-якого оновлення прошивки.

Якщо у клавіатури повноцінний NKRO, чи можуть клавіші все ж втрачатися?

Так, і саме ця різниця породжує більшу частину плутанини навколо специфікації. NKRO адресує гостинг — проблему матриці, — але не здатний обійти ліміт звіту USB HID, протокольне обмеження, що діє на зовсім іншому рівні. Стандартний пакет клавіатури HID містить скінченну кількість слотів для кодів клавіш. Натисніть достатньо багато клавіш у межах одного вікна звіту, і пакету просто нікуди подіти надлишок, тому частина натискань відкладається або втрачається. Практичну стелю задає дескриптор пристрою, а не ярлик на коробці. У звичайному використанні це трапляється рідко, але повністю відтворюється при стрес-тестуванні.

Що таке ліміт звіту USB HID?

Клавіатура USB HID передає коди клавіш усередині пакетів звіту, структура яких визначається HID-дескриптором пристрою. Завантажувальний протокол, що використовується при старті системи та мінімальними реалізаціями BIOS, допускає шість звичайних клавіш плюс вісім бітів модифікаторів. Повні звіти можуть використовувати інші розкладки, включаючи більші масиви клавіш або подання у стилі бітової карти, тому практична межа залежить від прошивки та дескриптора. Прошивка NKRO здатна розкрити більше ємності через такі розкладки або кілька логічних інтерфейсів, але не може перевищити те, що дескриптор оголошує хосту. Єдиної фіксованої стелі для всіх клавіатур не існує.

Чому деякі ігрові клавіатури все ще втрачають клавіші?

Поширені причини включають переповнення звіту HID при незвично великому акорді, затримку прошивки або дребезгу, завищену заяву про NKRO та проблеми обробки вводу на боці хоста. Хаб або перевантажений USB-контролер можуть внесати вклад у деяких збірках, але звичайний трафік клавіатури малий, і пропускна здатність зазвичай не перший підозрюваний: загублена клавіша частіше пов'язана з прошивкою, дребезгом або матрицею. Розрізнити ці версії дозволяє журнал фактично прибулих подій з подальшою перевіркою клавіатури прямо на іншому порті або хості. Повторюйте той самий акорд після будь-якого оновлення прошивки, щоб порівняння було контрольованим.

Як правильно перевірити NKRO та гостинг?

Використовуйте тестер клавіатури, що показує візуальну карту клавіш поруч із журналом сирих подій. Натисніть кілька клавіш одночасно і перевірте дві умови незалежно. По-перше, кожна натиснута клавіша має підсвітитися на карті: відсутня клавіша вказує на межу rollover або звіту. По-друге, жодна ненатиснута клавіша не має підсвітитися: фантомна клавіша вказує на справжній гостинг. Потім нарощуйте розмір акорду, щоб знайти, де плата фактично перестає повідомляти, і перевіряйте на прямому підключенні до порту материнської плати. Журнал сирих подій важливий, бо показує точні коди, зареєстровані операційною системою, а не інтерпретацію.

Чи достатньо 6KRO для ігор?

Для багатьох ігор 6KRO достатньо, оскільки типові акорди руху та модифікаторів включають лише кілька одночасних клавіш. Повноцінний NKRO корисніший у сценаріях на кшталт ритм-ігор, що вимагають множини одночасних вводів, стенографічного друку або складних користувацьких розкладок; звичайні ігрові акорди вміщуються у три–п'ять клавіш. Доплата виправдана, коли ваші фактичні комбінації перевищують перевірену межу поточної плати, а не просто тому, що ярлик більший. Перевіряйте клавіші, які використовує ваша гра, замість опори на універсальну маркетингову цифру, і пам'ятайте, що браузерний тест відображає підключений хост нарівні з клавіатурою.

Чи вимагає NKRO особливого типу підключення?

NKRO по USB зазвичай вимагає, щоб клавіатура використовувала формат звіту більший або гнучкіший за шестиклавишний завантажувальний протокол, і хост має прийняти цей дескриптор. Деякі старі реалізації BIOS та частина системних прошивок примушують завантажувальний протокол при старті, що може тимчасово обмежити плату до 6KRO. Застарілий інтерфейс PS/2 обробляв багатопальцевий ввод інакше, бо передавав скан-коди, а не завантажувальні звіти USB, хоча у PS/2 є власні межі протоколу та реалізації. На сучасному USB наслідок залежить від прошивки, дескриптора, підтримки хоста та застосунку, що читає події. Перевірте і тест в операційній системі, і передзавантажувальне середовище, якщо поведінка між ними різниться.

Як перевірити, чи правдиво заявлення клавіатури про NKRO?

Перевіряйте прямо, а не довіряйте специфікації. Натисніть навмисно складний акорд із множини літерних клавіш із кількома модифікаторами і переконайтеся, що жодна натиснута клавіша не зникла і жодна ненатиснута не з'явилася. Нарощуйте розмір акорду поступово, поки щось не відмовить, — так ви установите спостережуваний браузером межу плати, а не заявлений. Якщо плата втрачає клавіші всередині заявленого діапазону, зафіксуйте точну конфігурацію, записуйте кожен акорд, щоб повторити його пізніше на іншій машині, і порівняйте все це з визначенням виробника, перш ніж робити висновок, що заявлення хибне.

Пов'язані статті