nkro клавиатуры что это

NKRO на USB. Проблемы и костыли при их решениях

Привет, GT. В одном из моих прошлых постов (в частности, про клавиатуру SteelSeries Apex M800) юзернейм monah_tuk задал интересный вопрос в комментариях: как реализуется NKRO (n-key rollover, одновременное зажатие нескольких клавиш) в USB-клавиатурах. Данный вопрос меня заинтересовал, а когда я копнул поглубже… В общем, там такие авгиевы конюшни, что на целый пост информации хватило, пусть и небольшой.

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Казалось бы, USB 2.0 даже в режиме Low-speed обеспечивает передачу до 1500 КБит в секунду (порядка 185 КБайт/с.), в чём проблема передать нажатия клавиш? Но не всё так просто.

Чтобы разобраться с тем, какие проблемы у USB-подключения, нам придётся покопаться в истории, и немного — в конструкции клавиатуры.

Проблемы rollover’а: ghosting

Допустим, у вас есть клавиатура со стандартными 104/105 клавишами. В идеальном случае, чтобы получить 100% точную информацию о том, какие клавиши зажаты, вам понадобится на 1 «проводок» больше, чем есть кнопок: 104/105 проводов от кнопок, и одна общая «земля».

Разумеется, такая разводка будет сложна и дорога, поэтому многие недорогие клавиатуры применяют внутри т.н. «матрицу» — набор пересекающихся горизонтальных и вертикальных контактов. Контроллер сканирует каждый столбец, обнаруживает сигнал, начинает сканировать «строки» и вычисляет нажатую клавишу.

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

В случае, если вы нажимаете, скажем, S и G и захотите добавить какую-нибудь третью клавишу в другом ряду, контроллер уже не может сказать, какая из линий была замкнута: в лучшем случае не обнаружит одну из трёх, в худшем — из-за особенностей разводки нарисует ещё какую-нибудь четвёртую, которую вы не нажимали. Это называется ghosting.

Лечится подобное поведение различными хитростями в области разводки: наиболее популярные сочетания вешаются на разные «линии», функциональным клавишам, которые часто являются элементами хоткеев, назначаются отдельные линии. Разводка остаётся достаточно простой, но в недорогих клавиатурах редко встречается 5+KRO — обычно дело ограничивается 3-4 одновременно зажатыми клавишами.

Кроме того, контроллер может блокировать «соседей» по блоку, чтобы убрать «лишние» срабатывания. То есть формально клавиатура может поддерживать 6KRO, и честно давать нажать CTRL+AWFBNM одновременно, но не давать зажать AWSD, ограничиваясь срабатыванием вида WAS или WDS.

Проверить свою клавиатуру вы можете с помощью вот такой штуки. У неё есть некоторые ограничения, но они обусловлены тем, что система перехватит нажатие кнопки раньше, чем браузер. Например, Print Screen или Alt+Tab отработают раньше, чем страничка сможет их «поймать».

Сейчас эта ужасная (с точки зрения работы) «дешёвая» система почти полностью вытеснена немного более сложной, «открытой» матрицей, однако, экземпляры до сих пор встречаются, особенно часто во всяких «однодолларовых» комплектных клавиатурах, которые идут вдовесок к компьютеру «из коробки».

В более дорогих (зачастую, игровых или бизнес-клавиатурах) используются более сложные схемы, несколько контроллеров, индивидуальное подключение, многослойные печатные платы, в общем, различные подходы, которые уменьшают или полностью убирают ghosting, но приводят к росту цены устройства. С потенциальными аппаратными проблемами NKRO мы разобрались, переходим к софтвёрным.

Клавиатуры до USB

Основным распространённым разъёмом для подключения клавиатуры и мышки до USB был PS/2. Вот такой, кругленький:

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Его прелесть заключалась в том, что при соблюдении всех стандартов с одного разъёма и разветвителя можно было работать и с мышью, и с клавиатурой, а ещё сами устройства ввода генерировали прерывание и отправляли информацию о нажатых кнопках / перемещении курсора. Там хоть лицом по клавиатуре катайся, если всё разведено грамотно, и rollover не упирается в аппратные возможности клавиатуры — клавиатура отправит всё, что «прочитает» контроллер.

К сожалению, у PS/2 были и недостатки (вроде проблем с Plug’n’Play и неудобного разъёма), да и повсеместное распространение USB привело к тому, что PS/2 периферия была практически полностью вытеснена с рынка. Тем не менее, встречаются вполне современные материнки с USB 3.0 и двумя(!) PS/2:
nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Комбинированные порты, кстати, благодаря особенностям распиновки (общее питание, разные pin’ы для data+/data- у мыши и клавиатуры), позволяют также подключить оба устройства через один порт с помощью переходника:

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Проблемы NKRO на USB: во всём виноват USB HID

Для работы клавиатур через USB до загрузки системы (то есть в BIOS / UEFI) используется стандартный HID-драйвер, который был разработан для максимально широкой поддержки клавиатур и USB-хостов. Класс USB HID описывает устройства таким образом, чтобы стандартная реализация USB-хоста и USB-устройства могли взаимодействовать без установки специальных драйверов.

Обычная клавиатура (разработанная с поддержкой USB HID стандарта) использует выходной (исходящий от USB-хоста) поток данных (endpoint USB-стэка) для получения информации о состоянии индикаторов (Num / Caps / Scroll Lock), и входной поток (исходящий от клавиатуры, «входящий» для USB-хоста) для отправки информации о нажатых клавишах.

Если следовать наиболее строгой спецификации USB HID v1.11, которая поддеживает режим USB Boot (и позволяет использовать USB-клавиатуру для входа в BIOS и работы в нём), то клавиатура будет отправлять пррывания на CPU каждый раз, как USB-хост будет опрашивать её, вне зависимости от того, изменилось её состояние или нет. Таким образом «эмулируется» работа PS/2 клавиатур минимальными издержками.

В данном случае клавиатура работает по стандарту USB 1.1 (иногда 2.0) Low-speed, а частота опроса порта составляет 100 Гц. В данном режиме максимальная длина пакета на USB равна 8 байтам, а отправляются они раз в 10 мс. Один из байтов зарезервирован, так что на работу клавиатуры остаётся 7 байт, т.е. количество достаточное, чтобы закодировать нажатие любой клавиши-модификатора и ещё шести других.

Получится, кто клавиатура работает в режиме 6-KRO, и он является стандартным для большинства USB-клавиатур. Сделать меньше — можно (иногда осознанно, иногда — нет, из-за ghosting’а и key jamming’а), больше — только с нарушением спецификации USB HID.

Уже после загрузки система может увеличить частоту опроса USB-порта, загрузить специальный драйвер, который позволит работать, скажем, мультимедийным клавишам и макросам.

Реализации NKRO на USB

Обходы ограничений USB HID, собственно, встречаются двух видов. В первом случае клавиатура обнаруживается фирменным ПО, переводится в какой-нибудь специальный режим и отправляет данные с контроллера напрямую в драйвер, а тот уже общается с системой. Минус такого решения — увеличивается т.н. input lag: задержка ввода. Опросив знакомых, нашёл только одну клавиатуру, которая позволила нажать 10 клавиш при подключении по USB: махровый китайский ноунейм с закосом под «игровую». Владелец живёт аж в Иркутстке, так что не удивительно, что только у него нашлась такая штука.

Второе решение подкупает своей простотой и бесхитростностью, но по сути является костылём:

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это
За скриншот спасибо MyFearGear, такую штуку заметили за Logitech G710+

Клавиатура просто представляется системе несколькими HID-устройствами, каждое из которых имеет свои 6KRO. Беглый опрос знакомых с просьбой указать модель клавиатуры и прислать такой скриншот показал, что этим «хаком» пользуются и Logitech, и A4tech, и Cougar, и SteelSeries — в общем все, у кого нашлось NKRO в описании клавиатур, подключащихся по USB.

Внимание! Прежде чем проверять свою клавиатуру, убедитесь, что у вас не подключена какая-нибудь навороченная многокнопочная USB-мышь (даже по беспроводному каналу). Так как всё многокнопочное великолепие точно так же может притворяться «лишними» клавиатурами.

Источник

Механическая клавиатура Motospeed CK888 NKRO

Это полноформатная модель с синими переключателями, адресной RGB подсветкой и возможностью обработки неограниченного количества одновременных нажатий(NKRO). Бонус — мышка, правда неоригинальная и продавец на этом заостряет внимание.

Содержание

Характеристики
Клавиатура
Распаковка и внешний вид

Судя по всему, упаковку вскрывали и что-то искали внутри.

Неизвестно, коробку помяли во время доставки или осмотра… а может и там и там.

Благо сама клавиатура не пострадала

Снизу шильдик, выдвижные ножки, так же видно две противоскользящие вставки, еще две тонких полоски можно найти на основании ножек. Со своей задачей справляются хорошо. Так же внизу расположены три дренажных отверстия.

Так же название производителя выгравировано на алюминиевой лицевой панели.

Профиль клавиш классический, у каждого ряда своя форма и изгиб.

Винты с головкой под «звездочку» не утоплены, расположены в верхнем ряде в отступах блоков клавиш в количестве четырех штук. Подсветка подчеркивает их очертания, так что незамеченными не остаются. На самом деле шурупов гораздо больше, просто они с головкой под крестовую отвертку, поменьше, утоплены и расположены под клавишами по периметру.

Так же в комплекте был клон мышки. У оригинала шнурок другой и диапазон чувствительности шире.

А так сравнивать сложно — я оригиналом не пользовался

В обзоре не буду заострять внимание на мыши — в руке лежит нормально, колесико понравилось, широкое, в остальном мало отличается от других, разве что еще цвет подсветки не скачет по кругу как в совсем дешманских моделях, а зависит от выбранной чувствительности.

Функционал

Клавиатура поддерживает 15 режимов работы подсветки, думаю каждый найдет ту, которая понравится лично ему.

Переключение режима осуществляется нажатием комбинации клавиш «Fn» + «INSERT«, цвет в большинстве случаев можно сменить, нажав «Fn» + «DEL«, а скорость анимации и яркость клавишами «Fn» + «стрелки«. Большая часть эффектов анимирована, поэтому на фото покажу статичные, а ниже оставлю короткое видео с демонстрацией, заодно можно послушать звук нажатия клавиш. Из статичных у нас только выбранный цвет, готовые пресеты под различные виды игр, которые переключаются комбинацией «Fn» + «1-5«

Или своя конфигурация, которую можно ввести, после нажатия «Fn» + «Home«. Сохранение той же комбинацией.

Ну и кадр из анимации. Красотень.

Старые клавиши легко снимаются съемником, который был в комплекте клавиатуры.

Новые абсолютно такие же по форме и размеру, но в свете вспышки более «шершавые». Кириллица расположена практически на той же высоте, что и оригинал, это связано с верхним расположением светодиодов подсветки.

С обратной стороны. Оригинал слева.

Вставил ряд QWEASD для проверки. Оба шрифта нормально просматриваются.

Через 20 минут все клавиши заменены. Сели как родные, тактильной разницы нет — выглядит отлично.

Я тут наткнулся на продажу вот такого образца с кириллицей

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

Демонстрацию работы режимов снимал с уже установленной кириллицей для наглядности

Итоги и впечатления от использования

Механическая клавиатура всегда казалась мне просто дорогой игрушкой, пока не пришлось весь день печатать на ней. После этого обычная модель вызывает примерно столько же эмоций, как пенополиэтилен после пупырчатой пленки, так что я порылся в сети и нашел абсолютно идентичную модель, чтобы было привычнее.

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

В общем, те кто много печатает, обязательно оценят удобство использования.

Модель позиционируется как игровая — NKRO(обработка неограниченного количества одновременных нажатий), блокировка кнопки «Win«, игровые пресеты подсветки, но мне кажется голубые свитчи не очень для этого подходят. Дело даже не в усилии нажатия — 50 грамм на переключатель, а перепад высоты точки срабатывания и высвобождения, что добавляет проблем в играх, требующих многократных нажатий одной и той же клавиши. То есть переключатель просто не будет успевать деактивироваться если не позволить клавише подняться достаточно высоко.

Для игр больше подходят красные свитчи или универсальные коричневые, но обычно клавиатуры с ними стоят дороже.
В бэнггуде сейчас во флешсейле можно купить модель с допами на медиа и 19 эффектами подсветки за $70
Закинул сравнение под спойлер, там же есть ссылка на пробник различных переключателей.

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

График коричневых переключателей выглядит несколько иначе, точки активаци и деактивации находятся гораздо ближе

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

Но я не говорю, что играть на синих невозможно, просто не очень комфортно.

А вот от печати я в восторге, даже прикупил механику от HP на распродаже, чтобы была замена в случае чего. В итоге не выдержал и утащил ее на работу, спустя неделю еще несколько человек заказали механику — заразительная штука )

Есть еще минус синих переключателей — их щелчки слышны в соседней комнате, поэтому ночью работать становится проблематично если в доме есть жена с хорошим слухом или маленький ребенок. После 10 часов вечера обычно переключаюсь на bluetooth клавиатуру и сижу в полной тишине.

Стоимость обозреваемой клавиатуры на данный момент составляет $54, но менеджер поделился купоном 51ff8c, снижающим цену до $45.89, что довольно неплохо.

Источник

Игровая клава: что именно делает её игровой и стоит ли оно того

Когда-то «давно» (лет 15 тому назад) геймерских клавиатур, как известно, в природе вообще не существовало как таковых. Но и с нынешним изобилием моделей с механическими кнопками, RGB-подсветкой и прочими супертехнологичными «наворотами» не так просто разобраться, чем же на самом деле настоящая «игровая клава» отличается от всех прочих.

… и, самое главное, будет ли от неё какой-то реальный толк или же можно особо не заморачиваться и играть с обычной?

Сразу скажем, что правильный ответ на эти вопросы зависит от целей, задач, личных привычек, навыков и в целом от уровня самого геймера. Потому, собственно, все профи, как правило, играют со своими клавиатурами — link.

С другой стороны, современная специализированная геймерская клавиатура, то бишь, модель изначально спроектированная и оптимизированная для работы именно с игровыми приложениями, имеет ряд конструктивных и технических отличий.

Так что, если в общем, то ответ — ДА, настоящая игровая клава отличается от обычных моделей пользовательского класса. И если интересно, чем именно, то дальше — как раз об этом.

#1 — NKRO

Это сокращенно от «N-key rollover» — сложно и непонятно, но это только поначалу. Данное сокращение означает, что клавиатура способна распознавать неограниченное количество одновременных нажатий. То есть, даже если нажать все кнопки разом, то она каждое «увидит» и распознает корректно. В отличие от старых/дешевых клав, которые распознают максимум 2 нажатия (2KPO), и в отличие от обычных неигровых (6KPO).

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

#2 — защита от случайных нажатий

… или anti-ghosting. Технология предусматривает как аппаратное ограничение на считывание лишних нажатий, так и программные решения с аналогичным функционалом. Благодаря такой защите геймерская клавиатуры автоматом фильтрует случайные команды, а значит и в игре ненужных действий будет гораздо меньше.

#3 — скорость реакции

… или время на регистрацию команд. Данный показатель у каждой клавиатуры свой, и определяется он целым рядом конкретных параметров устройства: типом конструкции, длиной хода кнопок, частотой опроса и др.

Но так называемая частота вопроса (сколько раз в секунду клавиатура проверяет ввод) — это №1. Потому смотрим описание: 1000 Гц означает, что клава проверяет ввод 125 раз каждые 8 мс. И, скажем, в турнирных боях такая модель дает реальное преимущество. В особенности, когда реально умеешь соображать и действовать быстрее соперников.

#4 — игровая клава с макросами

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Такая модель оснащается встроенной памятью и умеет обрабатывать уйму данных. На «макро-кнопки» можно назначать целые последовательности команд (при желании можно даже написать макрос и нарезать на таком «автопилоте» целые круги в Forza), которые потом активируются буквально одной кнопкой. Правда, это тоже надо уметь и иногда приходится повозиться (если в настройках игры штатные макросы не предусмотрены), но оно того стоит.

#5 — механика!

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Мембраны — не то чтобы совсем вчерашний день. Но по NKPO и скорости реакции механические клавиатуры однозначно круче, а оптико-механические модели (на лазерной оптике вместо пружинок) — еще круче — точнее, быстрее и надежнее (но дороже).

Впрочем, проще один раз нормально поиграть с механической клавиатурой, чтобы понять особенности и преимущества такой конструкции, чем долго их расписывать. Поэтому не будем… Но если стоит вопрос выбора хорошей игровой клавиатуры, то настоятельно рекомендуем сначала протестить именно «механику». Вот TOP5 Compact Gaming Keyboard — для наглядности.

Источник

Table of Contents:

Что означает НКРО? Определение!

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Это где НКРО вступает в игру. NKRO является аббревиатурой от N-Key RollOver и относится к способности клавиатуры правильно идентифицировать и регистрировать все клавиши, которые одновременно нажаты на ней. Если у вас есть клавиатура NKRO, вы можете одновременно нажимать на ней столько клавиш, сколько нужно, и клавиатура зарегистрирует каждую из них правильно.

Сколько одновременно нажатых клавиш правильно зарегистрировано на клавиатуре NKRO?

Клавиатура, поддерживающая технологию NKRO, может правильно регистрировать не более двух нажатых клавиш за раз или столько же, сколько всех клавиш на ней. В зависимости от минимального количества клавиш, которые вы можете одновременно нажимать на конкретной клавиатуре, вы можете классифицировать ее как 2-клавишное переключение , 3-клавишное переключение клавиатуры и так далее.

Производители обычно объявляют минимальное переключение клавиш, поддерживаемое их клавиатурами, заменяя букву N из аббревиатуры NKRO фактическими значениями переключения клавиш. Например, 2-клавишная клавишная клавиатура называется 2KRO клавиатура; 3-клавишная клавишная клавиатура называется 3KRO клавиатура и тд. Если минимальное переключение клавиш, поддерживаемое клавиатурой, равно всем клавишам на нем, мы называем его полным NKRO клавиатура.

Ответ на вопрос, который мы задали в заголовке этого раздела, таков:

Каковы наиболее распространенные реализации NKRO?

Другой причиной этого может быть здравый смысл: в большинстве игр геймеры обычно держат одну руку на мыши, а другую на клавиатуре. Если вы используете все свои пальцы, чтобы нажать клавишу на клавиатуре, вы можете нажимать только пять клавиш одновременно. Итак, 6-клавишного ролловера должно хватить на всех.

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Что такое двоение ключей?

Это называется ореолом, поскольку дополнительная клавиша, зарегистрированная клавиатурой, производит реальные эффекты, хотя на самом деле она не нажата. Это как призрак рядом с вами и нажимает клавиши на клавиатуре! 🙂

Ореолы ключей могут возникать по нескольким причинам:

Вторая и третья причины могут быть обработаны производителями программного обеспечения. Тем не менее, когда вы покупаете клавиатуру, важно то, что ее аппаратное обеспечение поддерживает анти-призраки. Подробнее об этом в следующем разделе этого урока.

Что такое заклинивание клавиш, иначе называемое блокированием клавиш или блокировкой клавиш?

Вам нужна клавиатура NKRO?

С другой стороны, работа с клавиатурой, которая поддерживает менее 6KRO, имеет свои недостатки. Вы никогда не можете быть уверены, что все нажимаемые вами клавиши правильно зарегистрированы в вашей любимой игре. Вы также не можете быть уверены, являются ли пропущенные буквы в ваших словах или опечатки, сделанные вами, вашей ошибкой или ошибкой клавиатуры.

Как проверить, есть ли на вашей клавиатуре NKRO?

Если вы хотите протестировать клавиатуру, чтобы увидеть, имеет ли она NKRO, 6KRO или меньше, вот несколько ресурсов для вас:

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Вы используете клавиатуру NKRO?

Простые вопросы: что такое куки и что они делают?

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Что такое печенье? Что оно делает? Почему я вижу подсказки о файлах cookie на многих сайтах? Должен ли я заблокировать куки?

Простые вопросы: что такое технология clearblack и почему она великолепна?

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Какая технология ClearBlack используется на смартфонах Lumia? Что оно делает? Что это значит? Как это работает?

Простые вопросы: что такое шрифт и что такое семейство шрифтов?

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Что такое шрифт? Что такое семейство шрифтов? Когда были впервые изобретены шрифты? Каковы характеристики шрифта? Как хранятся шрифты в Windows?

ТОП5 РЕМОНТОВ ДЛЯ НАЧИНАЮЩИХ (Декабрь 2021).

Источник

NKRO, KRO, #KRO, 6KRO и Ghosting

Введение

Набирая текст на клавиатуре мы не задумываемся как она работает, пока не столкнемся с той или иной проблемой, для решения которой уже нужно понимание внутреннего устройства. Часто пользователи и геймеры сталкиваются с проблемами связанными с одновременным нажатием нескольких клавиш. В некоторых ситуациях это неприятно, а иногда даже критично. Давайте разбираться, что такое KRO, #KRO, 6KRO, NKRO и Ghosting.

Расшифруем эти аббревиатуры:

KRO – (Key Rollover) Количество одновременных нажатий клавиш.

#KRO – символ # – это максимальное количество клавиш, которые можно нажать одновременно и не сомневаться, что сигнал будет правильно обработан и передан компьютеру. Большинство мембранных клавиатур выпускается в классах 2KRO или 3KRO. Среди механических встречаются и клавиатуры класса 20KRO.

6KRO – (6-Key Rollover) 6 одновременных нажатий клавиш.

NKRO – неограниченное количество одновременных нажатий клавиш.

Ghosting – «фантомное нажатие». Подача сигнала с клавиши, которой вы не касались.

Разберемся как фиксируются и передаются нажатия клавиш в различных клавиатурах и как это устроено.

Полноразмерная клавиатура содержит 104/105 клавиш. Для регистрации нажатия со стопроцентной точностью требуется провести от каждой кнопки до контроллера провод и один общий на все – землю. Примерно по такой схеме:

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Логично, что данная реализация сложная и дорога в производстве, виной тому, в основном, физические ограничения микроконтроллеров, на базе которых строятся клавиатуры. Дело в том, что с увеличением количества выводов у микроконтроллеров и программируемых логических микросхем растёт и их размер, что, в свою очередь, влечёт за собой рост энергопотребления, возможностей, но главное — цены. В итоге, вы можете выбрать либо дешёвый чип с небольшой производительностью, но с малым количеством входов и выходов, либо более мощную микросхему, производительность которой, однако, сильно превышает ваши требования. Но только этот мощный чип будет обладать достаточным количеством выводов, чтобы подключить каждую кнопку клавиатуры.

Поэтому многие недорогие клавиатуры строятся по принципу матрицы. Это набор пересекающихся горизонтальных и вертикальный контактов. Контроллер сканирует столбцы, обнаруживая сигнал сканирует уже строки и таким образом вычисляет нажатие.

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

В случае, если вы нажимаете, S + H и захотите нажать третью клавишу в другом ряду, контроллер уже не может сказать, какая из линий была замкнута и в лучшем случае не обнаружит одно из трёх нажатий, а в худшем, из-за особенностей разводки, определит ещё какое нибудь лишнее, которое вы не совершали.

Давайте посмотрим, что случится, если нажать несколько кнопок, находящихся одновременно в одной строке и в одном столбце.

На рисунке три кнопки нажаты одновременно. Две из них находятся в столбце «C2», и две — в строке «Rm». Это значит, что одна из нажатых кнопок делит строку с другой нажатой кнопкой, а столбец — с третьей нажатой кнопкой. Именно в такой ситуации и происходит фантомное нажатие. Представьте, что в данный момент мы опрашиваем столбец «C1» (то есть, он придавлен к земле — находится в состоянии «0»). Такой характерный аккорд нажатых кнопок приводит к следующему: даже несмотря на то, что левая верхняя кнопка не нажата, строка «R2» находится в состоянии «0», потому что она придавлена к земле столбцом «C1» (находящемся в «0») через три нажатые кнопки. В результате клавиатурный контроллер считывает левую верхнюю кнопку, как «нажатую», вне зависимости от того, нажата она на самом деле или нет. Описанная ситуация называется фантомным нажатием (ghosting), потому что некоторые комбинации одновременно нажатых кнопок вызывают фантомное срабатывание других кнопок (ghost keypresses), хотя физически эти другие кнопки и не нажаты.

Можно поймать момент возникновения фантомного нажатия и заблокировать его. Обычный человек не в состоянии одновременно нажать или отпустить две клавиши с идеальной точностью. Поэтому, сканируя матрицу достаточно быстро, мы можем предположить, что между двумя проходами по матрице изменить своё состояние может не больше одной кнопки. В таком случае, контроллер принимает одиночные нажатия и следит за возникновением ситуаций, когда между проходами матрицы оказываются нажатыми две кнопки или более. Учитывая, что сканирование матрицы происходит со скоростью, при которой штатное возникновение таких ситуаций крайне маловероятно, можно заключить, что одна из только что нажатых кнопок — призрак. Поэтому контроллер должен проигнорировать все эти нажатия. Кроме того, безопаснее сразу не сообщать компьютеру об изменениях статуса клавиатуры — сначала имеет смысл подождать, пока все эти срабатывания не пропадут.

Есть и другой подход. Можно выявить ситуацию, когда срабатывает «третья» кнопка, и заблокировать как это нажатие, так и все последующие. Блокировку не снимать до тех пор, пока фантомное срабатывание не пропадёт, и ситуация опять не станет нормальной. Для реализации этого подхода программа должна помнить, какие именно кнопки сейчас нажаты (а обычно она это помнит и так), чтобы отклонять последующие срабатывания кнопок, в строках и в столбцах которых уже зафиксированы одновременные нажатия. Если написать программу с умом, то блокироваться будут только проблемные срабатывания, а все последующие будут приниматься как обычно — кроме тех, что снова нарушат правила. Раз контроллер отвергает нажатие каждой кнопки, уже имеющей одновременные срабатывания в своей строке и столбце, то выходит, что в зависимости от статуса одних кнопок, другие могут не регистрироваться вообще. Эта ситуация широко известна как блокирование (jamming). То есть кнопки, которые препятствуют одновременным срабатываниям других кнопок, получается, «блокируют» часть клавиатуры.

С точки зрения пользователя, можно одновременно нажать все кнопки из одного столбца (не нажимая кнопок из другого), но одновременно нажать все кнопки из одной строки можно только в том случае, если в столбце у каждой из этих кнопок зафиксировано не более одного срабатывания. То же самое относится и к нажатию кнопок из одного столбца — дополнительные срабатывания фиксируются только в том случае, если кнопки находятся в строках, которые «не заняты».

Люди часто путают «фантомное срабатывание» и «блокирование срабатывания» («ghosting» и «jamming»)

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

Решается подобное поведение различными хитростями в области разводки: наиболее популярные сочетания размещаются на разных линиях, функциональным клавишам, которые часто являются элементами хоткеев, назначаются отдельные линии. Разводка остается достаточно простой, но в недорогих клавиатурах редко встречается 5+KRO — обычно дело ограничивается 3-4 одновременно зажатыми клавишами.

Сейчас эта дешёвая система почти полностью вытеснена более сложной, «открытой» матрицей, однако, экземпляры до сих пор встречаются.

В дорогих клавиатурах используются более сложные схемы, несколько контроллеров, индивидуальное подключение, многослойные печатные платы, одним словом различные подходы, которые уменьшают или полностью убирают Ghosting, но приводят к росту цены.

Так же стоит рассказать, что такое дребезг контактов в механических переключателях и про борьбу с ним. При работе с механическими кнопками возникает одна проблема — дребезг контактов. Суть его в том, что при замыкании контакт срабатывает не один раз, а в момент замыкания и размыкания происходит несколько срабатываний. Происходит это от того, что идеальный контакт возникает не сразу, а через какое то время, искрит и скрежещет, хоть это и не видно. Вот и получается, что вместо одного перепада получаем вначале серию всплесков и только потом возникает устойчивое состояние.

Но микроконтроллер работает с такой скоростью, что успевает посчитать эти всплески как устойчивые состояния. Решить эту проблему можно аппаратно, с помощью RS триггера, так и программно — внеся небольшую задержку перед следующим опросом кнопки. Задержка подбирается такой, чтобы дребезг успел прекратиться к ее окончанию.

Про PS/2 или что было до USB

Самым распространенным разъемом для подключения мыши и клавиатуры до USB был PS/2. Впервые он появился в 1987 году на компьютерах IBM PS/2. Скорость передачи данных — от 80 до 300 Кб/с и зависит от производительности подключенного устройства и программного драйвера.

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что этоСиреневый – клавиатура, зелёный – мышь

Из шести контактов в разъёме используется четыре: тактовые импульсы, данные, питание, общий.

В настоящее время подавляющее большинство изготавливаемых компьютерных мышей и клавиатур имеют разъем USB, современные материнские платы не имеют разъёма PS/2 или имеют только один разъём, хоть ещё и можно встретить материнские платы с этим разъемом, это скорее уже редкость. Современные ноутбуки и ультрабуки вовсе не имеют внешних разъемов PS/2. Также у PS/2 наблюдается ряд недостатков таких как проблемы с Plug’n’Play и неудобство самого разъема.

Сами устройства ввода генерировали прерывание и отправляли информацию о нажатых кнопках или перемещении курсора. И тут хоть стучи по клавиатуре палкой, если всё разведено грамотно, и rollover не упирается в аппаратные возможности клавиатуры — клавиатура отправит всё, что прочитает контроллер.

NKRO на USB

И так мы разобрались, что PS/2 разъем практически вышел из употребления, давайте посмотрим как обстоят дела с популярным USB.

Для работы клавиатур через USB до загрузки системы (BIOS / UEFI) используется стандартный HID-драйвер (human interface device), который был разработан для максимально широкой поддержки клавиатур и USB-хостов. Класс USB HID описывает устройства таким образом, чтобы стандартная реализация USB-хоста и USB-устройства могли взаимодействовать без установки специальных драйверов.

Обычная клавиатура (с поддержкой USB HID) использует выходной (исходящий от USB-хоста) поток данных (endpoint USB-стека) для получения информации о состоянии индикаторов (Num / Caps / Scroll Lock), и входной поток (исходящий от клавиатуры, «входящий» для USB-хоста) для отправки информации о нажатых клавишах.

Если следовать наиболее строгой спецификации USB HID v1.11, которая поддерживает режим USB Boot (и позволяет использовать USB-клавиатуру для входа в BIOS и работы в нём), то клавиатура будет отправлять прерывания на CPU каждый раз, как USB-хост будет опрашивать её, вне зависимости от того, изменилось её состояние или нет. Таким образом «эмулируется» работа PS/2 клавиатур минимальными издержками.

В данном случае клавиатура работает по стандарту USB 1.1 (иногда 2.0) Low-speed, а частота опроса порта составляет 100 Гц. В данном режиме максимальная длина пакета на USB равна 8 байтам, а отправляются они раз в 10 мс. Один из байтов зарезервирован, так что на работу клавиатуры остаётся 7 байт, т.е. количество достаточное, чтобы закодировать нажатие любой клавиши-модификатора и еще шести других.

Получится, кто клавиатура работает в режиме 6-KRO, и он является стандартным для большинства USB-клавиатур. Сделать меньше — можно, больше — только с нарушением спецификации USB HID. Уже после загрузки система может увеличить частоту опроса USB-порта, загрузить драйвер, который позволит работать с мультимедийными клавишами и макросам.

Обходы ограничений USB HID, собственно, встречаются двух видов. В первом случае клавиатура обнаруживается фирменным ПО, переводится в какой-нибудь специальный режим и отправляет данные с контроллера напрямую в драйвер, а тот уже общается с системой. Минус такого решения — увеличивается т.н. input lag: задержка ввода.

Второе решение подкупает своей простотой и бесхитростностью, но по сути является костылём:

nkro клавиатуры что это. Смотреть фото nkro клавиатуры что это. Смотреть картинку nkro клавиатуры что это. Картинка про nkro клавиатуры что это. Фото nkro клавиатуры что это

Клавиатура просто представляется в системе несколькими HID-устройствами, каждое из которых имеет свои 6KRO. Таким методом пользуются популярные производители периферии такие как Logitech, A4tech, Cougar и SteelSeries.

Кардинальное решение матричных проблем

Если вы еще раз взглянете на картинку про фантомные нажатия, то сможете заметить, что во всём виновата правая нижняя кнопка.

А ведь эта кнопка — единственная, через которую ток в данной ситуации течёт «вверх». Так что, если мы не хотим, чтобы текущие «вверх» токи мешали нам нормально считывать матрицу, то давайте введем диоды, чтобы ток мог идти по столбцам строго сверху вниз, втекая в выходы микроконтроллера.

К сожалению, сэкономить тут не получится — придётся ставить по диоду на каждую кнопку. Если же говорить о полярности, то вы уже должны были разобраться, что в данном конкретном случае диоды должны пропускать ток «сверху вниз», то есть их катоды («кончики стрелок») должны смотреть на выходы микроконтроллера (столбцы), тогда как аноды должны быть обращены ко входам (строкам).

Не имеет значения, с какой стороны кнопки располагать диод; главное — соблюсти верную полярность. Просто запомните, что в данном случае ток всегда будет течь от входов к выходам. К слову, если входы подтянуты к питанию, а выходы — в режиме ОС, то так происходить будет всегда.

При данном подходе получается, что ток всегда будет течь «вправо вниз», и это исключает появление замкнутых токовых контуров при одновременном нажатии нескольких кнопок. Кроме того, эта конструкция — единственная, которая может обеспечить клавиатуре полный NKRO. Вдобавок, нелишним будет упомянуть (хотя это и кажется очевидным), что проблема отсутствия у выходов микроконтроллера режима ОС решается теперь автоматически. Диоды, установленные последовательно с каждой кнопкой, избавляют выходы от замыкания.

Существуют моды проделанные энтузиастами по установке диодов в механические клавиатуры:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *