Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Варианты [ править ]

Для сопоставления ключевых позиций по строкам и столбцам требуется менее сложное компьютерное оборудование ; поэтому в прошлом использование программного обеспечения или прошивки для преобразования скан-кодов в текстовые символы было дешевле, чем подключение клавиатуры по текстовым символам. [1] Эта разница в стоимости не такая значительная, как раньше. Однако многие типы компьютеров по-прежнему используют свои традиционные скан-коды для обеспечения обратной совместимости .

Некоторые стандарты клавиатуры включают скан-код для каждой нажатой клавиши и другой для каждой отпускаемой клавиши. Кроме того, многие стандарты клавиатуры (например, стандарты, совместимые с IBM PC ) позволяют самой клавиатуре генерировать " типовые " повторяющиеся клавиши, заставляя клавиатуру многократно генерировать скан-код нажатой клавиши, пока клавиша удерживается, с отправкой скан-кода разблокировки. один раз при отпускании ключа.

Наборы скан-кодов [ править ]

В некоторых операционных системах можно обнаружить скан-код нажатия клавиши, удерживая клавишу нажатой во время загрузки компьютера. Если повезет, скан-код (или его часть) будет указан в итоговом сообщении об ошибке «застрял ключ». [Примечание: в Windows 7 отображается только один байт скан-кода.]

Совместимые с ПК [ править ]

Сканкоды на компьютерных клавиатурах, совместимых с IBM PC, представляют собой наборы от 1 до 3 байтов, которые отправляются с клавиатуры. Большинство символьных клавиш имеют однобайтовый скан-код; клавиши , которые выполняют специальные функции имеют 2-байтовых или 3-байтовых сканкоды, как правило , начиная с байта (в шестнадцатеричном формате) , или . Кроме того, несколько ключей отправляют более длинные скан-коды, эффективно имитируя серию ключей, чтобы упростить обработку различных типов программного обеспечения.E0E1E2

Клавиатуры ПК, поскольку клавиатура PS / 2 поддерживает до трех наборов скан-кодов. Чаще всего встречаются скан-коды «XT» («набор 1»), основанные на 83-клавишной клавиатуре, используемой в IBM PC XT и более ранних версиях . В основном они состоят из одного байта; младшие 7 битов определяют ключ, а старший значащий бит очищается при нажатии клавиши или устанавливается для отпускания клавиши. Некоторые дополнительные ключи имеют префикс E0(или редко, E1или E2). Первоначально они были назначены таким образом, чтобы игнорирование E0префикса (который находится в диапазоне нажатия клавиш и, следовательно, не повлияет на операционную систему, которая их не понимает), дало бы разумные результаты. Например, клавиша Enter на цифровой клавиатуре выдает скан-кодE0 1C, что соответствует скан-коду клавиши возврата 1C.

IBM PC 3270 представила свой собственный набор сканкоды ( «Set 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.

USB [ править ]

USB- клавиатуры используют новый набор скан-кодов, в основном указанный в стандарте USB. Все компьютеры, распознающие USB-клавиатуры, распознают эти новые коды сканирования. [5]

См. Также [ править ]

  • Мертвый ключ
  • Мета-ключ
  • Раскладка клавиатуры

Ссылки [ править ]

  1. ^ Например, традиционная 12-клавишная цифровая клавиатура сканируется как 3 столбца на 4 строки, что требует всего 7 подключений. Для сканирования каждой клавиши отдельно потребуется 12 подключений.
  2. ^ https://github.com/torvalds/linux/blob/master/drivers/input/keyboard/atkbd.c
  3. ^ Сканкоды клавиатуры ( раздел 10, «Внутренние сканкоды клавиатуры» ), Андрис Брауэр . Версия 1.2e, 20 мая 2004 г., дата обращения 15 ноября 2006 г.
  4. ^ Сканкоды клавиатуры ( раздел 11, «Контроллер клавиатуры AT» ), Андрис Брауэр . Версия 1.2g, 07.07.2009, дата обращения 18.07.2010.
  5. ^ Спецификация кода сканирования клавиатуры Microsoft ( Приложение C, «Страница USB-клавиатуры / клавиатуры (0x07)» ), Microsoft . Версия 1.3a, 16 марта 2000 г., дата обращения 13 октября 2018 г.

Внешние ссылки [ править ]

  • Сканкоды клавиатуры : написаны Андрисом Брауэром
  • Взаимодействие с клавиатурой AT : подробная информация о скан-кодах клавиатуры с сайтаyondlogic.org