Сканкод - Scancode
эта статья нужны дополнительные цитаты для проверка.Октябрь 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
А сканкод (или код сканирования) - это данные, которые компьютерные клавиатуры отправить в компьютер чтобы сообщить, какие клавиши были нажаты. Каждой клавише на клавиатуре присваивается номер или последовательность цифр.
Варианты
Сопоставление ключевых позиций по строкам и столбцам требует менее сложных компьютерное железо; поэтому в прошлом использование программного обеспечения или прошивка перевод сканкодов в текстовые символы был дешевле, чем подключение клавиатуры к текстовым символам.[1] Эта разница в стоимости не так велика, как раньше. Однако многие типы компьютеров по-прежнему используют свои традиционные скан-коды для поддержки Обратная совместимость.
Некоторые стандарты клавиатуры включают скан-код для каждой нажатой клавиши и другой для каждой отпускаемой клавиши. Кроме того, многие стандарты клавиатуры (например, Совместимость с IBM PC стандартов) позволяют самой клавиатуре генерировать "типематический "повторяющиеся клавиши, когда клавиатура сама генерирует скан-код нажатой клавиши несколько раз, пока клавиша удерживается нажатой, причем скан-код отпускания отправляется один раз при отпускании клавиши.
Наборы сканкодов
В некоторых операционных системах можно обнаружить скан-код нажатия клавиши, удерживая клавишу нажатой во время загрузки компьютера. Если повезет, скан-код (или его часть) будет указан в появившемся сообщении об ошибке «застрял ключ». [Примечание: в Windows 7 отображается только один байт скан-кода.]
Совместимость с ПК
Сканкоды на Совместимость с IBM PC компьютер клавиатуры наборы от 1 до 3 байты которые отправляются с клавиатуры. Большинство символьных клавиш имеют однобайтовый скан-код; ключи, которые выполняют специальные функции, имеют 2-байтовые или 3-байтовые скан-коды, обычно начинающиеся с байта (в шестнадцатеричном формате) E0
, E1
, или E2
. Кроме того, несколько ключей отправляют более длинные скан-коды, эффективно имитируя серию ключей, чтобы упростить обработку различных типов программного обеспечения.
Клавиатуры ПК с Клавиатура PS / 2 поддерживает до трех наборов скан-кода. Наиболее часто встречаются скан-коды "XT" ("набор 1"), основанные на 83-клавишной клавиатуре, используемой IBM PC XT и раньше. В основном они состоят из одного байта; младшие 7 битов определяют ключ, а самый старший бит очищается для нажатия клавиши или устанавливается для отпускания клавиши. Некоторые дополнительные клавиши имеют E0
(или редко, E1
или E2
) приставка. Изначально они были назначены так, чтобы игнорировать E0
префикс (который находится в диапазоне нажатия клавиш и, следовательно, не повлияет на операционную систему, которая их не понимает) даст разумные результаты. Например, клавиша Enter цифровой клавиатуры создает скан-код E0 1C
, что соответствует сканкоду клавиши возврата 1С
.
В IBM 3270 ПК представил свой собственный набор скан-кодов ("набор 3") с другой нумерацией клавиш и где отпускание клавиши обозначено F0
приставка. Для Обратная совместимость ПК 3270 преобразовал их в скан-коды XT (набор 1) с помощью дополнительной карты и расширения BIOS. Этот набор используется Linux по умолчанию, когда он обнаруживает клавиатуру PS / 2, которая может правильно поддерживать набор кодов сканирования 3.[2]
В IBM PC AT представил сканкоды "AT" ("набор 2"). На 84-клавишной клавиатуре AT это были в основном подмножества набора 3, с некоторыми отличиями, вызванными измененной компоновкой (например, положение и скан-коды клавиш функциональные клавиши изменено). Ключи добавлены, так как PC AT часто имеют разные скан-коды в наборе 2 и наборе 3, а в наборе 2 часто имеют E0
или E1
приставка. Опять же, отпускание клавиши обозначается значком F0
приставка.
Для компьютеров, начиная с IBM PC AT, контроллер клавиатуры на материнская плата переводит скан-коды AT (набор 2) в скан-коды XT (набор 1) в так называемом режим перевода.[3] Этот перевод можно отключить в сквозной режим, позволяя видеть необработанные скан-коды.[4] Следовательно, столкнется ли разработчик программного обеспечения с скан-кодами AT или XT на современном ПК-совместимом, зависит от того, как осуществляется доступ к клавиатуре.
Совместимой клавиатуре PS / 2 можно указать отправку скан-кодов в наборе 1, 2 или 3.
ключ | набор 1 (IBM PC XT ) | набор 2 (IBM PC AT ) | набор 3 (IBM 3270 ПК ) | |||
---|---|---|---|---|---|---|
Нажмите | выпуск | Нажмите | выпуск | Нажмите | выпуск | |
А (обычная буква) | 1E | 9E | 1С | F0 1C | 1С | F0 1C |
Вернуться / Войти (основная клавиатура) | 1С | 9C | 5А | F0 5A | 5А | F0 5A |
Войти (цифровая клавиатура ) | E0 1C | E0 9C | E0 5A | E0 F0 5A | 79 | F0 79 |
Осталось Клавиша Windows | E0 5B | E0 DB | E0 1F | E0 F0 1F | 8B | F0 8B |
Правая клавиша Windows | E0 5C | E0 DC | E0 27 | E0 F0 27 | 8C | F0 8C |
USB
USB клавиатуры используют новый набор скан-кодов, в основном указанный в стандарте USB. Все компьютеры, распознающие USB-клавиатуры, распознают эти новые коды сканирования.[5]
Смотрите также
использованная литература
- ^ Например, традиционная 12-клавишная цифровая клавиатура сканируется как 3 столбца на 4 строки, что требует всего 7 подключений. Для сканирования каждой клавиши отдельно потребуется 12 подключений.
- ^ https://github.com/torvalds/linux/blob/master/drivers/input/keyboard/atkbd.c
- ^ Сканкоды клавиатуры (раздел 10, «Внутренние сканкоды клавиатуры» ), Андрис Брауэр. Версия 1.2e, 20 мая 2004 г., дата обращения 15 ноября 2006 г.
- ^ Сканкоды клавиатуры (раздел 11, «Контроллер клавиатуры AT» ), Андрис Брауэр. Версия 1.2g, 07.07.2009, дата обращения 18.07.2010.
- ^ Спецификация кода сканирования клавиатуры Microsoft (Приложение C, «Страница USB-клавиатуры / клавиатуры (0x07)» ), Microsoft. Версия 1.3a, 16 марта 2000 г., дата обращения 13 октября 2018 г.
внешние ссылки
- Сканкоды клавиатуры: написано Андрисом Брауэром
- Подключение к клавиатуре AT: Подробная информация о скан-кодах клавиатуры с сайтаyondlogic.org